f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAgMJgAQAAAABAAAAAAAAAAIhOeQEAAAAAAAAAAEAAOAAMAEAAIAAeAAYAAAAEAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAoAIAAAAAAACgAgAAAAAAAAgAAAAAAAAAAwAAAAQAAADgAgAAAAAAAOACAAAAAAAA4AIAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAAAAAAAAABAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEyyYAEAAAAATLJgAQAAAAAAEAAAAAAAAAEAAAAFAAAAgLJgAQAAAACAwmABAAAAAIDCYAEAAAAAwN8WAAAAAADA3xYAAAAAAAAQAAAAAAAAAQAAAAYAAABAkncBAAAAAECydwEAAAAAQLJ3AQAAAAAgnQAAAAAAACCdAAAAAAAAABAAAAAAAAABAAAABgAAAIAveAEAAAAAgF94AQAAAACAX3gBAAAAAJAMAAAAAAAAaFgAAAAAAAAAEAAAAAAAAAcAAAAEAAAAQJJ3AQAAAABAoncBAAAAAECidwEAAAAAAAAAAAAAAAANAAAAAAAAAAgAAAAAAAAAAgAAAAYAAACwH3gBAAAAALA/eAEAAAAAsD94AQAAAABQAgAAAAAAAFACAAAAAAAACAAAAAAAAABS5XRkBAAAAECSdwEAAAAAQLJ3AQAAAABAsncBAAAAACCdAAAAAAAAwJ0AAAAAAAABAAAAAAAAAFDldGQEAAAARKRcAQAAAABEpFwBAAAAAESkXAEAAAAArJYAAAAAAACslgAAAAAAAAQAAAAAAAAAUeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAPwCAAAAAAAA/AIAAAAAAAD8AgAAAAAAACAAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAC9saWI2NC9sZC1saW51eC14ODYtNjQuc28uMgAEAAAAEAAAAAEAAABHTlUAAAAAAAIAAAAGAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABKAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAIgAAAAAAAAAAAAAAAAAAAAAAAABzAAAAIAAAAAAAAAAAAAAAAAAAAAAAAACHAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAEQAAAAAAAAAAAAAAAAAAAAAAAADzAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAkAQAAEgAAAAAAAAAAAAAAAAAAAAAAAABbAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACZAQAAEQAAAAAAAAAAAAAAAAAAAAAAAADMAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACoAgAAEgAAAAAAAAAAAAAAAAAAAAAAAABpAwAAEgAAAAAAAAAAAAAAAAAAAAAAAABvAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAClAwAAEgAAAAAAAAAAAAAAAAAAAAAAAACsAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAACBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA+BAAAEgAAAAAAAAAAAAAAAAAAAAAAAADSBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5BQAAEgAAAAAAAAAAAAAAAAAAAAAAAACBBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADRBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAgBgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA/BwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC1BwAAEgAAAAAAAAAAAAAAAAAAAAAAAABACAAAEgAAAAAAAAAAAAAAAAAAAAAAAACjCAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/CAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACNCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACLCgAAEgAAAAAAAAAAAAAAAAAAAAAAAADUCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5CwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6CwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAQDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwDAAAEgAAAAAAAAAAAAAAAAAAAAAAAABtDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC+DAAAEgAAAAAAAAAAAAAAAAAAAAAAAAADDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAsDQAAEgAAAAAAAAAAAAAAAAAAAAAAAACYDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABTDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACgDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADeDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0DwAAEgAAAAAAAAAAAAAAAAAAAAAAAADODwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAmEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSEAAAEQAAAAAAAAAAAAAAAAAAAAAAAADMEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUEQAAEgAAAAAAAAAAAAAAAAAAAAAAAABOEQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9EQAAEgAAAAAAAAAAAAAAAAAAAAAAAACOEQAAEgAAAAAAAAAAAAAAAAAAAAAAAACUEQAAEgAAAAAAAAAAAAAAAAAAAAAAAACbEQAAEgAAAAAAAAAAAAAAAAAAAAAAAADeEQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA2EgAAEgAAAAAAAAAAAAAAAAAAAAAAAABcEgAAEgAAAAAAAAAAAAAAAAAAAAAAAACrEgAAEgAAAAAAAAAAAAAAAAAAAAAAAAACEwAAEgAAAAAAAAAAAAAAAAAAAAAAAABNEwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB8EwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqEwAAEgAAAAAAAAAAAAAAAAAAAAAAAABUFAAAEgAAAAAAAAAAAAAAAAAAAAAAAACoFAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB+FQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC8FQAAEgAAAAAAAAAAAAAAAAAAAAAAAADrFQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAqFgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3FgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC8FgAAEgAAAAAAAAAAAAAAAAAAAAAAAADDFgAAEQAAAAAAAAAAAAAAAAAAAAAAAABpFwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC7FwAAEgAAAAAAAAAAAAAAAAAAAAAAAADdGAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSGQAAEgAAAAAAAAAAAAAAAAAAAAAAAABmGQAAEgAAAAAAAAAAAAAAAAAAAAAAAACgGQAAEgAAAAAAAAAAAAAAAAAAAAAAAADhGQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnGgAAEQAAAAAAAAAAAAAAAAAAAAAAAABgGgAAEQAAAAAAAAAAAAAAAAAAAAAAAACNGgAAEQAAAAAAAAAAAAAAAAAAAAAAAAC+GgAAEQAAAAAAAAAAAAAAAAAAAAAAAAD1GgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAhGwAAEgAAAAAAAAAAAAAAAAAAAAAAAABbGwAAEgAAAAAAAAAAAAAAAAAAAAAAAACjGwAAEgAAAAAAAAAAAAAAAAAAAAAAAADpGwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAdHAAAEgAAAAAAAAAAAAAAAAAAAAAAAABLHAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HAAAEgAAAAAAAAAAAAAAAAAAAAAAAACkHAAAEgAAAAAAAAAAAAAAAAAAAAAAAABrHQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEHgAAEgAAAAAAAAAAAAAAAAAAAAAAAABdHgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HgAAEgAAAAAAAAAAAAAAAAAAAAAAAADGHgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdHgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeHwAAEgAAAAAAAAAAAAAAAAAAAAAAAABjHwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9HwAAEgAAAAAAAAAAAAAAAAAAAAAAAADJHwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUIAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFIAAAEgAAAAAAAAAAAAAAAAAAAAAAAACfIAAAEQAAAAAAAAAAAAAAAAAAAAAAAACmIAAAEgAAAAAAAAAAAAAAAAAAAAAAAADmIAAAEgAAAAAAAAAAAAAAAAAAAAAAAADtIAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAuIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0IgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzIgAAEQAAAAAAAAAAAAAAAAAAAAAAAACXIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9IgAAEgAAAAAAAAAAAAAAAAAAAAAAAADuIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/IgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5IwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxJAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSJAAAEgAAAAAAAAAAAAAAAAAAAAAAAACQJAAAEgAAAAAAAAAAAAAAAAAAAAAAAACtJAAAEQAAAAAAAAAAAAAAAAAAAAAAAADEJAAAEgAAAAAAAAAAAAAAAAAAAAAAAADqJAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/JAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAaJQAAEgAAAAAAAAAAAAAAAAAAAAAAAABVJQAAEgAAAAAAAAAAAAAAAAAAAAAAAAChJQAAEgAAAAAAAAAAAAAAAAAAAAAAAADSJQAAEgAAAAAAAAAAAAAAAAAAAAAAAAADJgAAEgAAAAAAAAAAAAAAAAAAAAAAAADcJgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0KAAAEgAAAAAAAAAAAAAAAAAAAAAAAABvKAAAEgAAAAAAAAAAAAAAAAAAAAAAAABHKQAAEgAAAAAAAAAAAAAAAAAAAAAAAAByKQAAEgAAAAAAAAAAAAAAAAAAAAAAAACrKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADMKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADTKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADxKQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAWKgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeKgAAEgAAAAAAAAAAAAAAAAAAAAAAAACWKgAAEgAAAAAAAAAAAAAAAAAAAAAAAABQKwAAEgAAAAAAAAAAAAAAAAAAAAAAAACeKwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3KwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB1LAAAEgAAAAAAAAAAAAAAAAAAAAAAAACVLAAAEgAAAAAAAAAAAAAAAAAAAAAAAACxLAAAEgAAAAAAAAAAAAAAAAAAAAAAAADNLAAAEgAAAAAAAAAAAAAAAAAAAAAAAADpLAAAEgAAAAAAAAAAAAAAAAAAAAAAAACGLQAAEgAAAAAAAAAAAAAAAAAAAAAAAACNLQAAEgAAAAAAAAAAAAAAAAAAAAAAAADYLQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA9LgAAEgAAAAAAAAAAAAAAAAAAAAAAAABjLgAAEgAAAAAAAAAAAAAAAAAAAAAAAABiLwAAEgAAAAAAAAAAAAAAAAAAAAAAAACTLwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC7LwAAEgAAAAAAAAAAAAAAAAAAAAAAAADhLwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD8LwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAZMAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA9MAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEMQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4MQAAEgAAAAAAAAAAAAAAAAAAAAAAAABsMQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC+MQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAOMgAAEQAAAAAAAAAAAAAAAAAAAAAAAAAvMgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeMgAAEgAAAAAAAAAAAAAAAAAAAAAAAACGMgAAEgAAAAAAAAAAAAAAAAAAAAAAAADuMgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAfMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6MwAAEgAAAAAAAAAAAAAAAAAAAAAAAABnMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7MwAAEgAAAAAAAAAAAAAAAAAAAAAAAACPMwAAEgAAAAAAAAAAAAAAAAAAAAAAAADFMwAAEgAAAAAAAAAAAAAAAAAAAAAAAADwMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4NAAAEgAAAAAAAAAAAAAAAAAAAAAAAABVNAAAEgAAAAAAAAAAAAAAAAAAAAAAAACNNAAAEgAAAAAAAAAAAAAAAAAAAAAAAADANAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3NAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwNQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB4NQAAEgAAAAAAAAAAAAAAAAAAAAAAAACuNQAAEgAAAAAAAAAAAAAAAAAAAAAAAADaNQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA1NgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA7NgAAEgAAAAAAAAAAAAAAAAAAAAAAAABVNgAAEgAAAAAAAAAAAAAAAAAAAAAAAABdNgAAEgAAAAAAAAAAAAAAAAAAAAAAAACINgAAEgAAAAAAAAAAAAAAAAAAAAAAAADENgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAENwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnNwAAEgAAAAAAAAAAAAAAAAAAAAAAAABINwAAEgAAAAAAAAAAAAAAAAAAAAAAAACVNwAAEgAAAAAAAAAAAAAAAAAAAAAAAADFNwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAHOAAAEgAAAAAAAAAAAAAAAAAAAAAAAABpOAAAEgAAAAAAAAAAAAAAAAAAAAAAAACdOAAAEgAAAAAAAAAAAAAAAAAAAAAAAADIOAAAEgAAAAAAAAAAAAAAAAAAAAAAAABTOQAAEgAAAAAAAAAAAAAAAAAAAAAAAACROQAAEgAAAAAAAAAAAAAAAAAAAAAAAADAOQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD0OQAAEgAAAAAAAAAAAAAAAAAAAAAAAABFOgAAEgAAAAAAAAAAAAAAAAAAAAAAAACgOgAAEgAAAAAAAAAAAAAAAAAAAAAAAADSOgAAEgAAAAAAAAAAAAAAAAAAAAAAAAACOwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4OwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2OwAAEgAAAAAAAAAAAAAAAAAAAAAAAAArPAAAEgAAAAAAAAAAAAAAAAAAAAAAAACOPAAAEgAAAAAAAAAAAAAAAAAAAAAAAADIPAAAEgAAAAAAAAAAAAAAAAAAAAAAAAADPQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3PQAAEgAAAAAAAAAAAAAAAAAAAAAAAABnPQAAEgAAAAAAAAAAAAAAAAAAAAAAAACfPQAAEgAAAAAAAAAAAAAAAAAAAAAAAADKPQAAEgAAAAAAAAAAAAAAAAAAAAAAAADnPQAAEgAAAAAAAAAAAAAAAAAAAAAAAAASPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6PgAAEgAAAAAAAAAAAAAAAAAAAAAAAABhPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB8PgAAEgAAAAAAAAAAAAAAAAAAAAAAAACfPgAAEgAAAAAAAAAAAAAAAAAAAAAAAADXPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAALPwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5PwAAEgAAAAAAAAAAAAAAAAAAAAAAAABwPwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqPwAAEgAAAAAAAAAAAAAAAAAAAAAAAABoQAAAEgAAAAAAAAAAAAAAAAAAAAAAAACEQAAAEgAAAAAAAAAAAAAAAAAAAAAAAACtQAAAEgAAAAAAAAAAAAAAAAAAAAAAAADjQAAAEgAAAAAAAAAAAAAAAAAAAAAAAAALQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxQQAAEgAAAAAAAAAAAAAAAAAAAAAAAABhQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7QQAAEgAAAAAAAAAAAAAAAAAAAAAAAACnQQAAEgAAAAAAAAAAAAAAAAAAAAAAAADOQQAAEgAAAAAAAAAAAAAAAAAAAAAAAADzQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbQgAAEgAAAAAAAAAAAAAAAAAAAAAAAABXQgAAEgAAAAAAAAAAAAAAAAAAAAAAAACAQgAAEgAAAAAAAAAAAAAAAAAAAAAAAAChQgAAEgAAAAAAAAAAAAAAAAAAAAAAAADsQgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXQwAAEgAAAAAAAAAAAAAAAAAAAAAAAABBQwAAEgAAAAAAAAAAAAAAAAAAAAAAAAByQwAAEgAAAAAAAAAAAAAAAAAAAAAAAACgQwAAEgAAAAAAAAAAAAAAAAAAAAAAAADXQwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAORAAAEgAAAAAAAAAAAAAAAAAAAAAAAABIRAAAEgAAAAAAAAAAAAAAAAAAAAAAAACFRAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3RAAAEgAAAAAAAAAAAAAAAAAAAAAAAADlRAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAURQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxRQAAEgAAAAAAAAAAAAAAAAAAAAAAAABpRQAAEgAAAAAAAAAAAAAAAAAAAAAAAACnRQAAEgAAAAAAAAAAAAAAAAAAAAAAAADQRQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD9RQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAgRgAAEgAAAAAAAAAAAAAAAAAAAAAAAABYRgAAEgAAAAAAAAAAAAAAAAAAAAAAAACLRgAAEgAAAAAAAAAAAAAAAAAAAAAAAADORgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD6RgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAlRwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5RwAAEgAAAAAAAAAAAAAAAAAAAAAAAACiRwAAEgAAAAAAAAAAAAAAAAAAAAAAAADtRwAAEgAAAAAAAAAAAAAAAAAAAAAAAAApSAAAEgAAAAAAAAAAAAAAAAAAAAAAAABYSAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3SAAAEgAAAAAAAAAAAAAAAAAAAAAAAAABSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABeSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABkSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABqSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABwSQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6SQAAEgAAAAAAAAAAAAAAAAAAAAAAAADASQAAEgAAAAAAAAAAAAAAAAAAAAAAAADHSQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7SQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAfSgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnSgAAEgAAAAAAAAAAAAAAAAAAAAAAAADiSgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAZSwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9SwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3SwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqTAAAEgAAAAAAAAAAAAAAAAAAAAAAAADWTAAAEgAAAAAAAAAAAAAAAAAAAAAAAABLTQAAEgAAAAAAAAAAAAAAAAAAAAAAAACBTQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAWTgAAEgAAAAAAAAAAAAAAAAAAAAAAAACFTgAAEgAAAAAAAAAAAAAAAAAAAAAAAABcTwAAEgAAAAAAAAAAAAAAAAAAAAAAAACNTwAAEgAAAAAAAAAAAAAAAAAAAAAAAADWTwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAtUAAAEgAAAAAAAAAAAAAAAAAAAAAAAABbUAAAEQAAAAAAAAAAAAAAAAAAAAAAAACfUAAAEgAAAAAAAAAAAAAAAAAAAAAAAADSUAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAlUQAAEgAAAAAAAAAAAAAAAAAAAAAAAABSUQAAEgAAAAAAAAAAAAAAAAAAAAAAAACcUQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD0UQAAEgAAAAAAAAAAAAAAAAAAAAAAAAATUgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwUgAAEgAAAAAAAAAAAAAAAAAAAAAAAABRUgAAEgAAAAAAAAAAAAAAAAAAAAAAAABsUgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB1UgAAEgAAAAAAAAAAAAAAAAAAAAAAAADYUwAAEgAAAAAAAAAAAAAAAAAAAAAAAADvUwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAKVQAAEgAAAAAAAAAAAAAAAAAAAAAAAAATVQAAEgAAAAAAAAAAAAAAAAAAAAAAAADgXAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7XAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxXQAAEgAAAAAAAAAAAAAAAAAAAAAAAABnXQAAEgAAAAAAAAAAAAAAAAAAAAAAAACbXQAAEgAAAAAAAAAAAAAAAAAAAAAAAADKXQAAEgAAAAAAAAAAAAAAAAAAAAAAAADYXQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnXgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzXgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9XgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAJXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAeXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAmXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAuXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3XwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA+XwAAEgAAAAAAAAAAAAAAAAAAAAAAAABFXwAAEgAAAAAAAAAAAAAAAAAAAAAAAABMXwAAEQAAAAAAAAAAAAAAAAAAAAAAAAB/XwAAEgAAAAAAAAAAAAAAAAAAAAAAAACzXwAAEgAAAAAAAAAAAAAAAAAAAAAAAADnXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAjYAAAEgAAAAAAAAAAAAAAAAAAAAAAAABfYAAAEQAAAAAAAAAAAAAAAAAAAAAAAACIYAAAEgAAAAAAAAAAAAAAAAAAAAAAAADOYAAAEgAAAAAAAAAAAAAAAAAAAAAAAAALYQAAEgAAAAAAAAAAAAAAAAAAAAAAAABEYQAAEgAAAAAAAAAAAAAAAAAAAAAAAACCYQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC/YQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD5YQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3YgAAEQAAAAAAAAAAAAAAAAAAAAAAAABsYgAAEQAAAAAAAAAAAAAAAAAAAAAAAACSYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACiYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACyYgAAEgAAAAAAAAAAAAAAAAAAAAAAAADGYgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdYgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAMYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAiYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4YwAAEgAAAAAAAAAAAAAAAAAAAAAAAABOYwAAEgAAAAAAAAAAAAAAAAAAAAAAAABWYwAAEgAAAAAAAAAAAAAAAAAAAAAAAACgYwAAEgAAAAAAAAAAAAAAAAAAAAAAAADUYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAPZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABYZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABnZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABzZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACFZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACKZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACWZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACjZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACpZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACwZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADAZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADFZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADNZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAiZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAtZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABCZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABJZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABRZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABbZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABmZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAACRZQAAEgAAAAAAAAAAAAAAAAAAAAAAAADVZQAAEQAAAAAAAAAAAAAAAAAAAAAAAADmZQAAEgAAAAAAAAAAAAAAAAAAAAAAAADzZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAtZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA7ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABCZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACNZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACWZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACfZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACmZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACuZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC2ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC8ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADDZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADHZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADMZgAAEgAAAAAAAAAAAAAA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AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACAAIAAgABAAIAAgABAAEAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAQABAAIABwACAAEAAQABAAEAAQAHAAEAAQABAAEACAACAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAgAIAAUABQABAAUABQAFAAIAAQABAAEAAQAJAAIABQACAAIAAgAKAAIAAgAFAAUAAgACAAEABQAFAAUACwACAAIAAgAFAAIABQACAAIAAgAMAAIABQACAAEAAQABAAgAAQAGAAYABgAGAAEAAgACAAYAAgACAAYAAgAGAAYAAgACAAIABQAFAAUABQAFAAYABgAGAAEAAQABAAIAAgACAAIACAACAAgAAgANAAEAAQABAAEAAgACAAUABQAFAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAEAAQAWaQAAUAAAABAAAAABAAEAMmkAAFAAAAAQAAAAAQABADxpAABQAAAAEAAAAAEACABHaQAAUAAAABAAAAABAAEAm2kAAMAAAAAAAAAAdRppCQAABQAmaQAAAAAAAHUaaQkAAAYAJmkAAAAAAAB1GmkJAAALACZpAAAAAAAAdRppCQAAAgAmaQAAEAAAABNpaQ0AAAcAUWkAABAAAAB0GWkJAAAIAFtpAAAQAAAAFGlpDQAAAwBnaQAAEAAAABZpaQ0AAAoAcWkAABAAAAAXaWkNAAANAHtpAAAQAAAAlJGWBgAABACFaQAAEAAAAJaRlgYAAAwAkGkAAAAAAAATaWkNAAAJAFFpAAAAAAAAAAAAABAAAADBAQAAEAAAABoAAAACSAAAEAAQAAIEILgAsAAAAgAAAEAAAAACwrATAAAAAAAAAQAEAgCAAUQQQA3AwQAaFEEAQAAAAQBQAAAAAAABgMAEBAUIAsAACAAIAACAQAAAIAEgQAAAABUwCBEAAAAAAxiBAJAAQjAqAAAABABAABgAAAQKIAAYgAqQigUAIMEBAADDAQAAyAEAAMoBAADNAQAA0QEAANMBAADVAQAA2QEAAN8BAADkAQAA6QEAAO0BAADyAQAA9AEAAPwBAABwTUm+4a4cKYCxqxOATKCbQNxntYDRsSvhZxSPIo2w/iNaN4DSN2qcYiGfexP/BmPEu6r1VHEzgSTYU9PlYmBTlOIvl7WPloqWOSSad5GdAOYDJXAGVptIdip9Lndtjru4jfEOCFv0s9iweVIYL9O9+LnnMumbL0c4F8RR2EisXUg/Wy2oS5CvKT2CQurT7w5qvy4vSjFXKkrc1n4bal/72rZ+I1puX/sqTvX8K+LLx9xYJ1ZsgNxvjNXTQ8z+vlSN85ksTOMGEl34oVXOYDQmfpeWFE6l4YuuNlNiDmBSBM7BdzkO/JksP1trJs5YSQceu6hODsZ3OW4Id3Hf6xw+AF9fbGliY19zdGFydF9tYWluAF9fZ21vbl9zdGFydF9fAF9pbml0AF9maW5pAF9JVE1fZGVyZWdpc3RlclRNQ2xvbmVUYWJsZQBfSVRNX3JlZ2lzdGVyVE1DbG9uZVRhYmxlAF9fY3hhX2ZpbmFsaXplAF9Kdl9SZWdpc3RlckNsYXNzZXMAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEzVmVyaWZ5VmVyc2lvbkVpaVBLYwBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMjZmaXhlZF9hZGRyZXNzX2VtcHR5X3N0cmluZ0UAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0RGVzdHJveU1lc3NhZ2VFUEt2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxM09uU2h1dGRvd25SdW5FUEZ2UEt2RVMzXwBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTFJbml0U0NDSW1wbEVQTlMxXzExU0NDSW5mb0Jhc2VFAF9aTjZnb29nbGU4cHJvdG9idWYyOF9UaW1lc3RhbXBfZGVmYXVsdF9pbnN0YW5jZV9FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxN0Fzc2lnbkRlc2NyaXB0b3JzRVBLTlMxXzE1RGVzY3JpcHRvclRhYmxlRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMjlJbnRlcm5hbE1ldGFkYXRhV2l0aEFyZW5hQmFzZUlOUzBfMTVVbmtub3duRmllbGRTZXRFTlMxXzI1SW50ZXJuYWxNZXRhZGF0YVdpdGhBcmVuYUVFMjdtdXRhYmxlX3Vua25vd25fZmllbGRzX3Nsb3dFdgBfWk42Z29vZ2xlOHByb3RvYnVmMTVVbmtub3duRmllbGRTZXQ5TWVyZ2VGcm9tRVJLUzFfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNEFyZW5hU3RyaW5nUHRyMTRDcmVhdGVJbnN0YW5jZUVQTlMwXzVBcmVuYUVQS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlM1XzExY2hhcl90cmFpdHNJY0VFTlM1XzlhbGxvY2F0b3JJY0VFRUUAX1pud20AX1pONmdvb2dsZThwcm90b2J1ZjE1VW5rbm93bkZpZWxkU2V0MTNDbGVhckZhbGxiYWNrRXYAX1pkbFB2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMTZWZXJpZnlVdGY4U3RyaW5nRVBLY2lOUzJfOU9wZXJhdGlvbkVTNF8AX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTE1UmVhZFRhZ0ZhbGxiYWNrRWoAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGU5UmVhZEJ5dGVzRVBOUzBfMmlvMTZDb2RlZElucHV0U3RyZWFtRVBOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNl8xMWNoYXJfdHJhaXRzSWNFRU5TNl85YWxsb2NhdG9ySWNFRUVFAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMFdpcmVGb3JtYXQ5U2tpcEZpZWxkRVBOUzBfMmlvMTZDb2RlZElucHV0U3RyZWFtRWpQTlMwXzE1VW5rbm93bkZpZWxkU2V0RQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtMjdSZWFkVmFyaW50U2l6ZUFzSW50RmFsbGJhY2tFdgBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtMzVJbmNyZW1lbnRSZWN1cnNpb25EZXB0aEFuZFB1c2hMaW1pdEVpAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0zNERlY3JlbWVudFJlY3Vyc2lvbkRlcHRoQW5kUG9wTGltaXRFaQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTI0V3JpdGVNZXNzYWdlTWF5YmVUb0FycmF5RWlSS05TMF8xMU1lc3NhZ2VMaXRlRVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGUyM1dyaXRlU3RyaW5nTWF5YmVBbGlhc2VkRWlSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMzXzExY2hhcl90cmFpdHNJY0VFTlMzXzlhbGxvY2F0b3JJY0VFRUVQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMFdpcmVGb3JtYXQyMlNlcmlhbGl6ZVVua25vd25GaWVsZHNFUktOUzBfMTVVbmtub3duRmllbGRTZXRFUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTdDb2RlZE91dHB1dFN0cmVhbTI2V3JpdGVTdHJpbmdXaXRoU2l6ZVRvQXJyYXlFUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFUGgAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEwV2lyZUZvcm1hdDI5U2VyaWFsaXplVW5rbm93bkZpZWxkc1RvQXJyYXlFUktOUzBfMTVVbmtub3duRmllbGRTZXRFUGgAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEwV2lyZUZvcm1hdDI0Q29tcHV0ZVVua25vd25GaWVsZHNTaXplRVJLTlMwXzE1VW5rbm93bkZpZWxkU2V0RQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTNSZWZsZWN0aW9uT3BzNU1lcmdlRVJLTlMwXzdNZXNzYWdlRVBTM18AX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFYVNFUktTNV8AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIwUmVwZWF0ZWRQdHJGaWVsZEJhc2UxNEludGVybmFsRXh0ZW5kRWkAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIwUmVwZWF0ZWRQdHJGaWVsZEJhc2UxOE1lcmdlRnJvbUlubmVyTG9vcElOUzBfMTZSZXBlYXRlZFB0ckZpZWxkSU5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlM1XzExY2hhcl90cmFpdHNJY0VFTlM1XzlhbGxvY2F0b3JJY0VFRUVFMTFUeXBlSGFuZGxlckVFRXZQUHZTRl9paQBfWk42Z29vZ2xlOHByb3RvYnVmNUFyZW5hMThDcmVhdGVNYXliZU1lc3NhZ2VJTlMwXzNBbnlFSkVFRVBUX1BTMV9EcE9UMF8AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGUyMldyaXRlQnl0ZXNNYXliZUFsaWFzZWRFaVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTIwUmVhZFZhcmludDMyRmFsbGJhY2tFagBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTlXcml0ZUVudW1FaWlQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWYzQW55NUNsZWFyRXYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIwUmVwZWF0ZWRQdHJGaWVsZEJhc2U3UmVzZXJ2ZUVpAF9aTjZnb29nbGU4cHJvdG9idWYzQW55MjdNZXJnZVBhcnRpYWxGcm9tQ29kZWRTdHJlYW1FUE5TMF8yaW8xNkNvZGVkSW5wdXRTdHJlYW1FAF9aTks2Z29vZ2xlOHByb3RvYnVmM0FueTM5SW50ZXJuYWxTZXJpYWxpemVXaXRoQ2FjaGVkU2l6ZXNUb0FycmF5RVBoAF9aTks2Z29vZ2xlOHByb3RvYnVmM0FueTEyQnl0ZVNpemVMb25nRXYAX1pONmdvb2dsZThwcm90b2J1ZjE2UmVwZWF0ZWRQdHJGaWVsZElOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TMl8xMWNoYXJfdHJhaXRzSWNFRU5TMl85YWxsb2NhdG9ySWNFRUVFRUQxRXYAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTIwUmVhZFZhcmludDY0RmFsbGJhY2tFdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMjFhcmVuYV9kZXN0cnVjdF9vYmplY3RJTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRUVFdlB2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWw5QXJlbmFJbXBsMjhBbGxvY2F0ZUFsaWduZWRBbmRBZGRDbGVhbnVwRW1QRnZQdkUAX1pOSzZnb29nbGU4cHJvdG9idWY1QXJlbmExN09uQXJlbmFBbGxvY2F0aW9uRVBLU3Q5dHlwZV9pbmZvbQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTlXcml0ZUJvb2xFaWJQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMTFXcml0ZVN0cmluZ0VpUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTEwV3JpdGVJbnQzMkVpaVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjdNZXNzYWdlOU1lcmdlRnJvbUVSS1MxXwBfWlRWTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMk1hcEZpZWxkQmFzZUUAX1pONmdvb2dsZThwcm90b2J1ZjVBcmVuYTEzT3duRGVzdHJ1Y3RvcklOUzBfOGludGVybmFsMTJXcmFwcGVkTXV0ZXhFRUV2UFRfAF9aTks2Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTJNYXBGaWVsZEJhc2UyNFN5bmNNYXBXaXRoUmVwZWF0ZWRGaWVsZEV2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMk1hcEZpZWxkQmFzZTExU2V0TWFwRGlydHlFdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTJNYXBGaWVsZEJhc2VEMkV2AF9fc3RhY2tfY2hrX2ZhaWwAX1puYW0AX1pkYVB2AF9aTjZnb29nbGU4cHJvdG9idWYyaW8xN0NvZGVkT3V0cHV0U3RyZWFtMjFXcml0ZVZhcmludDMyU2xvd1BhdGhFagBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTEwV3JpdGVJbnQ2NEVpbFBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjlUaW1lc3RhbXBDMUVSS1MxXwBfWk42Z29vZ2xlOHByb3RvYnVmNUFyZW5hMThDcmVhdGVNYXliZU1lc3NhZ2VJTlMwXzlUaW1lc3RhbXBFSkVFRVBUX1BTMV9EcE9UMF8AX1pONmdvb2dsZThwcm90b2J1ZjlUaW1lc3RhbXAyN01lcmdlUGFydGlhbEZyb21Db2RlZFN0cmVhbUVQTlMwXzJpbzE2Q29kZWRJbnB1dFN0cmVhbUUAX1pOSzZnb29nbGU4cHJvdG9idWY5VGltZXN0YW1wMzlJbnRlcm5hbFNlcmlhbGl6ZVdpdGhDYWNoZWRTaXplc1RvQXJyYXlFUGgAX1pOSzZnb29nbGU4cHJvdG9idWY5VGltZXN0YW1wMTJCeXRlU2l6ZUxvbmdFdgBfWk42Z29vZ2xlOHByb3RvYnVmOVRpbWVzdGFtcDlNZXJnZUZyb21FUktTMV8AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDlBcmVuYUltcGwxNUFsbG9jYXRlQWxpZ25lZEVtAF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTE2SW50ZXJuYWxHZXRUYWJsZUV2AF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTIwR2V0TWF5YmVBcmVuYVBvaW50ZXJFdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTlTa2lwRmllbGRFUE5TMF8yaW8xNkNvZGVkSW5wdXRTdHJlYW1FagBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVDMUVSS1M1XwBfWk5LNmdvb2dsZThwcm90b2J1ZjZNYXBLZXkxNEdldFN0cmluZ1ZhbHVlRXYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIxYXJlbmFfZGVzdHJ1Y3Rfb2JqZWN0SU5TMF8xNlJlcGVhdGVkUHRyRmllbGRJTlMwXzdNZXNzYWdlRUVFRUV2UHYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEwTG9nTWVzc2FnZUMxRU5TMF84TG9nTGV2ZWxFUEtjaQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTBMb2dNZXNzYWdlbHNFUEtjAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMUxvZ0ZpbmlzaGVyYVNFUk5TMV8xMExvZ01lc3NhZ2VFAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMExvZ01lc3NhZ2VEMUV2AF9aTks2Z29vZ2xlOHByb3RvYnVmNk1hcEtleTR0eXBlRXYAX1pOU3QzX18xMTNfX3RyZWVfcmVtb3ZlSVBOU18xNl9fdHJlZV9ub2RlX2Jhc2VJUHZFRUVFdlRfUzVfAGJjbXAAbWVtY21wAF9aTjZnb29nbGU4cHJvdG9idWYxNUZpZWxkRGVzY3JpcHRvcjE0a0NwcFR5cGVUb05hbWVFAF9aTjZnb29nbGU4cHJvdG9idWY1QXJlbmExM093bkRlc3RydWN0b3JJTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRUVFdlBUXwBtZW1zZXQAX1pOU3QzX18xMjdfX3RyZWVfYmFsYW5jZV9hZnRlcl9pbnNlcnRJUE5TXzE2X190cmVlX25vZGVfYmFzZUlQdkVFRUV2VF9TNV8AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDlBcmVuYUltcGwxMEFkZENsZWFudXBFUHZQRnZTM19FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxOWFyZW5hX2RlbGV0ZV9vYmplY3RJTlMwXzdNZXNzYWdlRUVFdlB2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMWFyZW5hX2Rlc3RydWN0X29iamVjdElOUzFfMjlJbnRlcm5hbE1ldGFkYXRhV2l0aEFyZW5hQmFzZUlOUzBfMTVVbmtub3duRmllbGRTZXRFTlMxXzI1SW50ZXJuYWxNZXRhZGF0YVdpdGhBcmVuYUVFOUNvbnRhaW5lckVFRXZQdgBfWk42Z29vZ2xlOHByb3RvYnVmM0FueTlNZXJnZUZyb21FUktTMV8AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIxYXJlbmFfZGVzdHJ1Y3Rfb2JqZWN0SU5TMV8xMldyYXBwZWRNdXRleEVFRXZQdgBfWk5TdDNfXzE1bXV0ZXhEMUV2AF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0xMlNraXBGYWxsYmFja0VpaQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTFHZW5lcmljU3dhcEVQTlMwXzExTWVzc2FnZUxpdGVFUzNfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNEFkZERlc2NyaXB0b3JzRVBLTlMxXzE1RGVzY3JpcHRvclRhYmxlRQBzY2NfaW5mb19UaW1lc3RhbXBfZ29vZ2xlXzJmcHJvdG9idWZfMmZ0aW1lc3RhbXBfMmVwcm90bwBzY2NfaW5mb19BbnlfZ29vZ2xlXzJmcHJvdG9idWZfMmZhbnlfMmVwcm90bwBkZXNjcmlwdG9yX3RhYmxlX2dvb2dsZV8yZnByb3RvYnVmXzJmYW55XzJlcHJvdG8AZGVzY3JpcHRvcl90YWJsZV9nb29nbGVfMmZwcm90b2J1Zl8yZnRpbWVzdGFtcF8yZXByb3RvAF9aTks2Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UxMUdldFR5cGVOYW1lRXYAX1pOSzZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTI1SW5pdGlhbGl6YXRpb25FcnJvclN0cmluZ0V2AF9aTjZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTIxQ2hlY2tUeXBlQW5kTWVyZ2VGcm9tRVJLTlMwXzExTWVzc2FnZUxpdGVFAF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTMxU2VyaWFsaXplV2l0aENhY2hlZFNpemVzVG9BcnJheUVQaABfWk42Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UyMERpc2NhcmRVbmtub3duRmllbGRzRXYAX1pOSzZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTEzU3BhY2VVc2VkTG9uZ0V2AF9aTjZnb29nbGU4cHJvdG9idWY3TWVzc2FnZThDb3B5RnJvbUVSS1MxXwBfWk5LNmdvb2dsZThwcm90b2J1ZjdNZXNzYWdlMTNTZXRDYWNoZWRTaXplRWkAX19jeGFfcHVyZV92aXJ0dWFsAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNEFyZW5hU3RyaW5nUHRyMjFDcmVhdGVJbnN0YW5jZU5vQXJlbmFFUEtOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFAF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZThHZXRBcmVuYUV2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMTBXcml0ZUJ5dGVzRWlSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMzXzExY2hhcl90cmFpdHNJY0VFTlMzXzlhbGxvY2F0b3JJY0VFRUVQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMTFXcml0ZVVJbnQzMkVpalBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pOU3QzX18xNW11dGV4NnVubG9ja0V2AF9aTktTdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU3Y29tcGFyZUVtbVBLY20AX1pOU3QzX18xNW11dGV4NGxvY2tFdgBfWk5LNGxsdm01UmVnZXg1bWF0Y2hFTlNfOVN0cmluZ1JlZkVQTlNfMTVTbWFsbFZlY3RvckltcGxJUzFfRUVQTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzVfMTFjaGFyX3RyYWl0c0ljRUVOUzVfOWFsbG9jYXRvckljRUVFRQBmcmVlAF9aTjRsbHZtNVJlZ2V4RDFFdgBtZW1jcHkAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmluc2VydEVtUEtjAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTZhcHBlbmRFUEtjAF9aTjRsbHZtNVJlZ2V4QzFFTlNfOVN0cmluZ1JlZkVOUzBfMTBSZWdleEZsYWdzRQBfWk5LNGxsdm01UmVnZXg3aXNWYWxpZEVSTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRQBzdGRlcnIAX1pOS1N0M19fMTIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFMjBfX3Rocm93X2xlbmd0aF9lcnJvckV2AHN0cmxlbgBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVDMUVSS1M1X21tUktTNF8AX1pOU3QzX18xNnZlY3RvcklOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlM0X0lTNl9FRUUyMV9fcHVzaF9iYWNrX3Nsb3dfcGF0aElSS1M2X0VFdk9UXwBfWk5TdDNfXzE2dmVjdG9ySU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOUzRfSVM2X0VFRTIxX19wdXNoX2JhY2tfc2xvd19wYXRoSVM2X0VFdk9UXwBhYm9ydABfWk5LU3QzX18xMjBfX3ZlY3Rvcl9iYXNlX2NvbW1vbklMYjFFRTIwX190aHJvd19sZW5ndGhfZXJyb3JFdgBfWk40bGx2bTI0RGlzYWJsZUFCSUJyZWFraW5nQ2hlY2tzRQBfWk5LNWNsYW5nMTVEaXJlY3RvcnlMb29rdXA3Z2V0TmFtZUV2AF9aTjdhbmRyb2lkNGJhc2U5U2hvdWxkTG9nRU5TMF8xMUxvZ1NldmVyaXR5RVBLYwBfX2Vycm5vX2xvY2F0aW9uAF9aTjdhbmRyb2lkNGJhc2UxMExvZ01lc3NhZ2VDMUVQS2NqTlMwXzExTG9nU2V2ZXJpdHlFUzNfaQBfWk43YW5kcm9pZDRiYXNlMTBMb2dNZXNzYWdlNnN0cmVhbUV2AF9aTlN0M19fMTI0X19wdXRfY2hhcmFjdGVyX3NlcXVlbmNlSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFUk5TXzEzYmFzaWNfb3N0cmVhbUlUX1QwX0VFUzdfUEtTNF9tAF9aTlN0M19fMWxzSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVSTlNfMTNiYXNpY19vc3RyZWFtSVRfVDBfRUVTOV9SS05TXzEyYmFzaWNfc3RyaW5nSVM2X1M3X1QxX0VFAF9aTjdhbmRyb2lkNGJhc2UxMExvZ01lc3NhZ2VEMUV2AF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnNlbnRyeUMxRVJTM18AX1pOS1N0M19fMThpb3NfYmFzZTZnZXRsb2NFdgBfWk5TdDNfXzE1Y3R5cGVJY0UyaWRFAF9aTktTdDNfXzE2bG9jYWxlOXVzZV9mYWNldEVSTlMwXzJpZEUAX1pOU3QzX18xNmxvY2FsZUQxRXYAX1pOU3QzX18xOGlvc19iYXNlNWNsZWFyRWoAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU2c2VudHJ5RDFFdgBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2YXBwZW5kRVBLY20AX1pOSzZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTE2U2hvcnREZWJ1Z1N0cmluZ0V2AF9aTks2Z29vZ2xlOHByb3RvYnVmM0FueThVbnBhY2tUb0VQTlMwXzdNZXNzYWdlRQBfWk42Z29vZ2xlOHByb3RvYnVmM0FueThQYWNrRnJvbUVSS05TMF83TWVzc2FnZUUAX1pOU3QzX18xNl9fdHJlZUlOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlNfNGxlc3NJUzZfRUVOUzRfSVM2X0VFRTRmaW5kSVM2X0VFTlNfMTVfX3RyZWVfaXRlcmF0b3JJUzZfUE5TXzExX190cmVlX25vZGVJUzZfUHZFRWxFRVJLVF8AX1pONGxsdm0zdmZzMTdnZXRSZWFsRmlsZVN5c3RlbUV2AF9aTlN0M19fMTZfX3RyZWVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRsZXNzSVM2X0VFTlM0X0lTNl9FRUUxMl9fZmluZF9lcXVhbElTNl9FRVJQTlNfMTZfX3RyZWVfbm9kZV9iYXNlSVB2RUVSUE5TXzE1X190cmVlX2VuZF9ub2RlSVNGX0VFUktUXwBfWk5LU3QzX18xNl9fdHJlZUlOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlNfNGxlc3NJUzZfRUVOUzRfSVM2X0VFRTE0X19jb3VudF91bmlxdWVJUzZfRUVtUktUXwBfWk40bGx2bTN2ZnMxMEZpbGVTeXN0ZW0xNmdldEJ1ZmZlckZvckZpbGVFUktOU181VHdpbmVFbGJiAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTlfX2dyb3dfYnlFbW1tbW1tAF9aTlN0M19fMTZfX3RyZWVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRsZXNzSVM2X0VFTlM0X0lTNl9FRUU3ZGVzdHJveUVQTlNfMTFfX3RyZWVfbm9kZUlTNl9QdkVFAF9aTjRsbHZtMTVTbWFsbFZlY3RvckJhc2VJbUU4Z3Jvd19wb2RFUHZtbQBfWk40bGx2bTNzeXMyZnMxM21ha2VfYWJzb2x1dGVFUk5TXzE1U21hbGxWZWN0b3JJbXBsSWNFRQBfWk5LU3QzX18xMTBlcnJvcl9jb2RlN21lc3NhZ2VFdgBtZW1jaHIAX1pONWNsYW5nMTRGcm9udGVuZEFjdGlvbkMyRXYAX1pONGxsdm0zdmZzMThJbk1lbW9yeUZpbGVTeXN0ZW1DMUViAF9aTjRsbHZtM3N5czRwYXRoNmFwcGVuZEVSTlNfMTVTbWFsbFZlY3RvckltcGxJY0VFUktOU181VHdpbmVFUzdfUzdfUzdfAF9aTjRsbHZtMTJNZW1vcnlCdWZmZXIxMmdldE1lbUJ1ZmZlckVOU185U3RyaW5nUmVmRVMxX2IAX1pONGxsdm0zdmZzMThJbk1lbW9yeUZpbGVTeXN0ZW03YWRkRmlsZUVSS05TXzVUd2luZUVsTlN0M19fMTEwdW5pcXVlX3B0cklOU18xMk1lbW9yeUJ1ZmZlckVOUzVfMTRkZWZhdWx0X2RlbGV0ZUlTN19FRUVFTlNfOE9wdGlvbmFsSWpFRVNDX05TQl9JTlNfM3N5czJmczlmaWxlX3R5cGVFRUVOU0JfSU5TRV81cGVybXNFRUUAX1pONGxsdm0zdmZzMTdPdmVybGF5RmlsZVN5c3RlbUMxRU5TXzE4SW50cnVzaXZlUmVmQ250UHRySU5TMF8xMEZpbGVTeXN0ZW1FRUUAX1pONGxsdm0zdmZzMTdPdmVybGF5RmlsZVN5c3RlbTExcHVzaE92ZXJsYXlFTlNfMThJbnRydXNpdmVSZWZDbnRQdHJJTlMwXzEwRmlsZVN5c3RlbUVFRQBleGl0AF9aTlN0M19fMTZ2ZWN0b3JJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TNF9JUzZfRUVFNWVyYXNlRU5TXzExX193cmFwX2l0ZXJJUEtTNl9FRVNDXwBMTFZNSW5pdGlhbGl6ZUFBcmNoNjRUYXJnZXRJbmZvAExMVk1Jbml0aWFsaXplQVJNVGFyZ2V0SW5mbwBMTFZNSW5pdGlhbGl6ZUJQRlRhcmdldEluZm8ATExWTUluaXRpYWxpemVYODZUYXJnZXRJbmZvAF9aTjVjbGFuZzd0b29saW5nMzBhZGRUYXJnZXRBbmRNb2RlRm9yUHJvZ3JhbU5hbWVFUk5TdDNfXzE2dmVjdG9ySU5TMV8xMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUVOUzZfSVM4X0VFRUVONGxsdm05U3RyaW5nUmVmRQBnZXRlbnYAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmFzc2lnbkVQS2MAX1pONWNsYW5nMTFGaWxlTWFuYWdlckMxRVJLTlNfMTdGaWxlU3lzdGVtT3B0aW9uc0VONGxsdm0xOEludHJ1c2l2ZVJlZkNudFB0cklOUzRfM3ZmczEwRmlsZVN5c3RlbUVFRQBfWk41Y2xhbmcyMlBDSENvbnRhaW5lck9wZXJhdGlvbnNDMUV2AF9aTjVjbGFuZzd0b29saW5nMTRUb29sSW52b2NhdGlvbkMxRU5TdDNfXzE2dmVjdG9ySU5TMl8xMmJhc2ljX3N0cmluZ0ljTlMyXzExY2hhcl90cmFpdHNJY0VFTlMyXzlhbGxvY2F0b3JJY0VFRUVOUzdfSVM5X0VFRUVOUzJfMTB1bmlxdWVfcHRySU5TXzE0RnJvbnRlbmRBY3Rpb25FTlMyXzE0ZGVmYXVsdF9kZWxldGVJU0RfRUVFRVBOU18xMUZpbGVNYW5hZ2VyRU5TMl8xMHNoYXJlZF9wdHJJTlNfMjJQQ0hDb250YWluZXJPcGVyYXRpb25zRUVFAF9aTlN0M19fMTE5X19zaGFyZWRfd2Vha19jb3VudDE0X19yZWxlYXNlX3dlYWtFdgBfWk41Y2xhbmc3dG9vbGluZzE0VG9vbEludm9jYXRpb24zcnVuRXYAX1pONWNsYW5nN3Rvb2xpbmcxNFRvb2xJbnZvY2F0aW9uRDFFdgBfWk41Y2xhbmcxMUZpbGVNYW5hZ2VyRDFFdgBfWk40bGx2bTN2ZnMxMEZpbGVTeXN0ZW1EMkV2AF9aTks0bGx2bTN2ZnM2U3RhdHVzMTFpc0RpcmVjdG9yeUV2AF9aTks0bGx2bTVUd2luZTNzdHJFdgBfWk5TdDNfXzEyMV9fbXVybXVyMl9vcl9jaXR5aGFzaEltTG02NEVFY2xFUEt2bQBfWk5TdDNfXzEyMV9fbXVybXVyMl9vcl9jaXR5aGFzaEltTG02NEVFMThfX2hhc2hfbGVuXzBfdG9fMTZFUEtjbQBfWk40bGx2bTE1U21hbGxWZWN0b3JJbXBsSU41Y2xhbmcxN0Zyb250ZW5kSW5wdXRGaWxlRUVhU0VSS1MzXwBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRWxzRWkAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVsc0VtAF9aTjVjbGFuZzE3RGlhZ25vc3RpY3NFbmdpbmUxMXNldFNldmVyaXR5RWpOU180ZGlhZzhTZXZlcml0eUVOU18xNFNvdXJjZUxvY2F0aW9uRQBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjE2QWRkUHJhZ21hSGFuZGxlckVONGxsdm05U3RyaW5nUmVmRVBOU18xM1ByYWdtYUhhbmRsZXJFAF9aVFZONWNsYW5nMThQUENoYWluZWRDYWxsYmFja3NFAF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yMTlFbnRlck1haW5Tb3VyY2VGaWxlRXYAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IzTGV4RVJOU181VG9rZW5FAF9aTjVjbGFuZzE0RnJvbnRlbmRBY3Rpb25EMkV2AF9aTjRsbHZtMjNTbWFsbFZlY3RvclRlbXBsYXRlQmFzZUlONWNsYW5nMTdGcm9udGVuZElucHV0RmlsZUVMYjBFRTRncm93RW0AX1pONGxsdm0xNVNtYWxsVmVjdG9yQmFzZUlqRTEzbWFsbG9jRm9yR3Jvd0VtbVJtAF9aTjVjbGFuZzExUFBDYWxsYmFja3NEMkV2AF9aTks1Y2xhbmcxM1NvdXJjZU1hbmFnZXIxM2xvYWRTTG9jRW50cnlFalBiAF9fY3hhX2d1YXJkX2FjcXVpcmUAX19jeGFfZ3VhcmRfcmVsZWFzZQBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRWxzRVBLdgBfWk41Y2xhbmcxNE1hY3JvRGlyZWN0aXZlMTNnZXREZWZpbml0aW9uRXYAX1pOSzVjbGFuZzEzU291cmNlTWFuYWdlcjIzZ2V0RXhwYW5zaW9uTG9jU2xvd0Nhc2VFTlNfMTRTb3VyY2VMb2NhdGlvbkUAX1pONWNsYW5nMTNQcmFnbWFIYW5kbGVyRDJFdgBfWk41Y2xhbmcxMUZpbGVNYW5hZ2VyMTJnZXREaXJlY3RvcnlFTjRsbHZtOVN0cmluZ1JlZkViAF9aTjVjbGFuZzExRmlsZU1hbmFnZXI3Z2V0RmlsZUVONGxsdm05U3RyaW5nUmVmRWJiAF9aTjRsbHZtM3N5czRwYXRoMTFpc19hYnNvbHV0ZUVSS05TXzVUd2luZUVOUzFfNVN0eWxlRQBfWk40bGx2bTNzeXM0cGF0aDExcGFyZW50X3BhdGhFTlNfOVN0cmluZ1JlZkVOUzFfNVN0eWxlRQBfWk41Y2xhbmcxM1NvdXJjZU1hbmFnZXIyOGdldE1lbW9yeUJ1ZmZlckZvckZpbGVPck5vbmVFUEtOU185RmlsZUVudHJ5RQBfWk5LNWNsYW5nMTNTb3VyY2VNYW5hZ2VyMjRnZXRGYWtlQnVmZmVyRm9yUmVjb3ZlcnlFdgBfWk5LNmdvb2dsZThwcm90b2J1ZjdNZXNzYWdlMTFEZWJ1Z1N0cmluZ0V2AF9aTlN0M19fMXBsSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU18xMmJhc2ljX3N0cmluZ0lUX1QwX1QxX0VFUEtTNl9SS1M5XwBjZWlsZgBfWk5TdDNfXzExMl9fbmV4dF9wcmltZUVtAG1lbW1vdmUAX1pOSzVjbGFuZzEzU291cmNlTWFuYWdlcjEzZ2V0RmlsZUlEU2xvd0VqAF9aTks1Y2xhbmcxM1NvdXJjZU1hbmFnZXIxMWdldEZpbGVuYW1lRU5TXzE0U291cmNlTG9jYXRpb25FAF9aTks1Y2xhbmcxNFNvdXJjZUxvY2F0aW9uMTNwcmludFRvU3RyaW5nRVJLTlNfMTNTb3VyY2VNYW5hZ2VyRQBfWk5TdDNfXzExOV9fc2hhcmVkX3dlYWtfY291bnREMkV2AF9aTjRsbHZtMTdkZWFsbG9jYXRlX2J1ZmZlckVQdm1tAF9aTks0bGx2bTN2ZnMxMEZpbGVTeXN0ZW0xMWdldFJlYWxQYXRoRVJLTlNfNVR3aW5lRVJOU18xNVNtYWxsVmVjdG9ySW1wbEljRUUAX1pONGxsdm0zdmZzMTBGaWxlU3lzdGVtN2lzTG9jYWxFUktOU181VHdpbmVFUmIAX1pOSzRsbHZtM3ZmczEwRmlsZVN5c3RlbTEybWFrZUFic29sdXRlRVJOU18xNVNtYWxsVmVjdG9ySW1wbEljRUUAX1pONWNsYW5nMjZQcmVwcm9jZXNzb3JGcm9udGVuZEFjdGlvbjE3Q3JlYXRlQVNUQ29uc3VtZXJFUk5TXzE2Q29tcGlsZXJJbnN0YW5jZUVONGxsdm05U3RyaW5nUmVmRQBfWk41Y2xhbmcxNEZyb250ZW5kQWN0aW9uMjJzaG91bGRFcmFzZU91dHB1dEZpbGVzRXYAX1pONWNsYW5nMTRGcm9udGVuZEFjdGlvbjEzRW5kU291cmNlRmlsZUV2AF9aTjVjbGFuZzExUFBDYWxsYmFja3MxMEhhc0luY2x1ZGVFTlNfMTRTb3VyY2VMb2NhdGlvbkVONGxsdm05U3RyaW5nUmVmRWJOUzJfOE9wdGlvbmFsSU5TXzEyRmlsZUVudHJ5UmVmRUVFTlNfNlNyY01ncjE4Q2hhcmFjdGVyaXN0aWNLaW5kRQBfWk5LU3QzX18xMTlfX3NoYXJlZF93ZWFrX2NvdW50MTNfX2dldF9kZWxldGVyRVJLU3Q5dHlwZV9pbmZvAF9aTjZnb29nbGU4cHJvdG9idWYyM1NodXRkb3duUHJvdG9idWZMaWJyYXJ5RXYAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IxM0xleEhlYWRlck5hbWVFUk5TXzVUb2tlbkViAF9aTks1Y2xhbmcxMlByZXByb2Nlc3NvcjExZ2V0U3BlbGxpbmdFUktOU181VG9rZW5FUk40bGx2bTE1U21hbGxWZWN0b3JJbXBsSWNFRVBiAF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yMjZHZXRJbmNsdWRlRmlsZW5hbWVTcGVsbGluZ0VOU18xNFNvdXJjZUxvY2F0aW9uRVJONGxsdm05U3RyaW5nUmVmRQBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjE5Q2hlY2tFbmRPZkRpcmVjdGl2ZUVQS2NiAF9aTks0bGx2bTEzU3RyaW5nTWFwSW1wbDdGaW5kS2V5RU5TXzlTdHJpbmdSZWZFAF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yMjZEaXNjYXJkVW50aWxFbmRPZkRpcmVjdGl2ZUV2AF9aTjRsbHZtM3N5czRwYXRoNm5hdGl2ZUVSTlNfMTVTbWFsbFZlY3RvckltcGxJY0VFTlMxXzVTdHlsZUUAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IxMExvb2t1cEZpbGVFTlNfMTRTb3VyY2VMb2NhdGlvbkVONGxsdm05U3RyaW5nUmVmRWJQS05TXzE1RGlyZWN0b3J5TG9va3VwRVBLTlNfOUZpbGVFbnRyeUVSUzZfUE5TMl8xNVNtYWxsVmVjdG9ySW1wbEljRUVTRF9QTlNfOU1vZHVsZU1hcDExS25vd25IZWFkZXJFUGJTSF9iAF9aTjVjbGFuZzVMZXhlcjE5Z2V0TG9jRm9yRW5kT2ZUb2tlbkVOU18xNFNvdXJjZUxvY2F0aW9uRWpSS05TXzEzU291cmNlTWFuYWdlckVSS05TXzExTGFuZ09wdGlvbnNFAF9aTks1Y2xhbmcxMkZ1bmN0aW9uRGVjbDI5Z2V0VGVtcGxhdGVTcGVjaWFsaXphdGlvbkluZm9FdgBfWk5LNWNsYW5nMTNDWFhSZWNvcmREZWNsMjlnZXRUZW1wbGF0ZVNwZWNpYWxpemF0aW9uS2luZEV2AF9aTks1Y2xhbmc3VmFyRGVjbDI5Z2V0VGVtcGxhdGVTcGVjaWFsaXphdGlvbktpbmRFdgBfWk41Y2xhbmcxMUFTVE5vZGVLaW5kMTFnZXRGcm9tTm9kZUVSS05TXzREZWNsRQBfWk5LNWNsYW5nMTJGdW5jdGlvbkRlY2wyN2dldE1lbWJlclNwZWNpYWxpemF0aW9uSW5mb0V2AF9aTjRsbHZtMTVTbWFsbFZlY3RvckJhc2VJakU4Z3Jvd19wb2RFUHZtbQBfWk40bGx2bTE1YWxsb2NhdGVfYnVmZmVyRW1tAF9aTjVjbGFuZzExRGVjbENvbnRleHQ3Y2xhc3NvZkVQS05TXzREZWNsRQBfWk41Y2xhbmc0RGVjbDE3Y2FzdFRvRGVjbENvbnRleHRFUEtTMF8AX1pOSzVjbGFuZzExRGVjbENvbnRleHQxMWRlY2xzX2JlZ2luRXYAX1pOSzVjbGFuZzREZWNsOGdldEF0dHJzRXYAX1pOSzVjbGFuZzEyQ2FwdHVyZWREZWNsN2dldEJvZHlFdgBfWk5LNWNsYW5nMTdPYmpDSW50ZXJmYWNlRGVjbDIyTG9hZEV4dGVybmFsRGVmaW5pdGlvbkV2AF9aTks1Y2xhbmcxN0NsYXNzVGVtcGxhdGVEZWNsMThnZXRTcGVjaWFsaXphdGlvbnNFdgBfWk5LNWNsYW5nMTBSZWNvcmREZWNsMTlpc0luamVjdGVkQ2xhc3NOYW1lRXYAX1pOSzVjbGFuZzIwRnVuY3Rpb25UZW1wbGF0ZURlY2wxOGdldFNwZWNpYWxpemF0aW9uc0V2AF9aTks1Y2xhbmcxMkZ1bmN0aW9uRGVjbDI5Z2V0VGVtcGxhdGVTcGVjaWFsaXphdGlvbktpbmRFdgBfWk5LNWNsYW5nMTVWYXJUZW1wbGF0ZURlY2wxOGdldFNwZWNpYWxpemF0aW9uc0V2AF9aR1ZaTks1Y2xhbmcyNFRlbXBsYXRlVGVtcGxhdGVQYXJtRGVjbDE4Z2V0RGVmYXVsdEFyZ3VtZW50RXZFN05vbmVMb2MAX1paTks1Y2xhbmcyNFRlbXBsYXRlVGVtcGxhdGVQYXJtRGVjbDE4Z2V0RGVmYXVsdEFyZ3VtZW50RXZFN05vbmVMb2MAX1pONWNsYW5nN1ZhckRlY2w3Z2V0SW5pdEV2AF9aTks1Y2xhbmcxMVBhcm1WYXJEZWNsMTNoYXNEZWZhdWx0QXJnRXYAX1pONWNsYW5nMTFQYXJtVmFyRGVjbDI3Z2V0VW5pbnN0YW50aWF0ZWREZWZhdWx0QXJnRXYAX1pONWNsYW5nMTFQYXJtVmFyRGVjbDEzZ2V0RGVmYXVsdEFyZ0V2AF9aTjVjbGFuZzExT01QQ2hpbGRyZW4xMWdldENoaWxkcmVuRXYAX1pONWNsYW5nMTFBU1ROb2RlS2luZDExZ2V0RnJvbU5vZGVFUktOU180U3RtdEUAX1pONWNsYW5nNFN0bXQ4Y2hpbGRyZW5FdgBfWk5LNWNsYW5nMTZTdG10SXRlcmF0b3JCYXNlMTFHZXREZWNsRXhwckV2AF9aTjVjbGFuZzE2U3RtdEl0ZXJhdG9yQmFzZThOZXh0RGVjbEViAF9aTjVjbGFuZzE2U3RtdEl0ZXJhdG9yQmFzZTZOZXh0VkFFdgBfWk5LNWNsYW5nMTBMYW1iZGFFeHByMTNjYXB0dXJlX2JlZ2luRXYAX1pOSzVjbGFuZzEwTGFtYmRhRXhwcjEzaXNJbml0Q2FwdHVyZUVQS05TXzEzTGFtYmRhQ2FwdHVyZUUAX1pOSzVjbGFuZzEwTGFtYmRhRXhwcjE0Z2V0TGFtYmRhQ2xhc3NFdgBfWk5LNWNsYW5nNERlY2wxM2dldEFTVENvbnRleHRFdgBfWk5LNWNsYW5nMTBBU1RDb250ZXh0MjBnZXRPYmpDSW50ZXJmYWNlVHlwZUVQS05TXzE3T2JqQ0ludGVyZmFjZURlY2xFUFMxXwBfWk41Y2xhbmcxMkNhcHR1cmVkU3RtdDE1Z2V0Q2FwdHVyZWREZWNsRXYAX1pOSzVjbGFuZzE5TmVzdGVkTmFtZVNwZWNpZmllcjdnZXRLaW5kRXYAX1pOSzVjbGFuZzIyTmVzdGVkTmFtZVNwZWNpZmllckxvYzEwZ2V0VHlwZUxvY0V2AF9aTjVjbGFuZzEyVGVtcGxhdGVOYW1lQzFFUE5TXzEyVGVtcGxhdGVEZWNsRQBfWk5LNWNsYW5nMTJUZW1wbGF0ZU5hbWUyNmdldEFzRGVwZW5kZW50VGVtcGxhdGVOYW1lRXYAX1pOSzVjbGFuZzEyVGVtcGxhdGVOYW1lMjZnZXRBc1F1YWxpZmllZFRlbXBsYXRlTmFtZUV2AF9aTjVjbGFuZzdUeXBlTG9jMjRnZXRMb2NhbEFsaWdubWVudEZvclR5cGVFTlNfOFF1YWxUeXBlRQBfWk5LNWNsYW5nMjlTdWJzdFRlbXBsYXRlVHlwZVBhcm1QYWNrVHlwZTE1Z2V0QXJndW1lbnRQYWNrRXYAX1pOSzVjbGFuZzE5RGVwZW5kZW50RXh0SW50VHlwZTE0Z2V0TnVtQml0c0V4cHJFdgBfWk5LNWNsYW5nMTFBdXRvVHlwZUxvYzE4Z2V0Q29uY2VwdE5hbWVJbmZvRXYAX1pOSzVjbGFuZzRUeXBlMjdnZXRVbnF1YWxpZmllZERlc3VnYXJlZFR5cGVFdgBfWk41Y2xhbmcxMlRlbXBsYXRlTmFtZUMxRVB2AF9aTks1Y2xhbmcyM09NUFVzZXNBbGxvY2F0b3JzQ2xhdXNlMTZnZXRBbGxvY2F0b3JEYXRhRWoAX1pOSzVjbGFuZzEzQ1hYUmVjb3JkRGVjbDE0RGVmaW5pdGlvbkRhdGExNmdldEJhc2VzU2xvd0Nhc2VFdgBfWk5LNWNsYW5nMTJGdW5jdGlvbkRlY2wxMmdldE51bVBhcmFtc0V2AF9aTks1Y2xhbmcxOENYWENvbnN0cnVjdG9yRGVjbDEwaW5pdF9iZWdpbkV2AF9aTks1Y2xhbmc0RGVjbDE1aGFzRGVmaW5pbmdBdHRyRXYAX1pONWNsYW5nNERlY2wxOWNhc3RGcm9tRGVjbENvbnRleHRFUEtOU18xMURlY2xDb250ZXh0RQBfWk5LNWNsYW5nMTNDWFhSZWNvcmREZWNsMjFnZXRMYW1iZGFDYWxsT3BlcmF0b3JFdgBfWk5LNWNsYW5nMTNTb3VyY2VNYW5hZ2VyMTZnZXRDaGFyYWN0ZXJEYXRhRU5TXzE0U291cmNlTG9jYXRpb25FUGIAX1pOSzRsbHZtOVN0cmluZ1JlZjE3ZmluZF9maXJzdF9ub3Rfb2ZFUzBfbQBfWk5LNGxsdm05U3RyaW5nUmVmMTZmaW5kX2xhc3Rfbm90X29mRVMwX20AX1pONWNsYW5nNUxleGVyMTFnZXRTcGVsbGluZ0VSS05TXzVUb2tlbkVSS05TXzEzU291cmNlTWFuYWdlckVSS05TXzExTGFuZ09wdGlvbnNFUGIAX1pOSzVjbGFuZzlNYWNyb0FyZ3MxNmdldFVuZXhwQXJndW1lbnRFagBfWk5LNWNsYW5nOU1hY3JvQXJnczIwQXJnTmVlZHNQcmVleHBhbnNpb25FUEtOU181VG9rZW5FUk5TXzEyUHJlcHJvY2Vzc29yRQBfWk41Y2xhbmc5TWFjcm9BcmdzMTdnZXRQcmVFeHBBcmd1bWVudEVqUk5TXzEyUHJlcHJvY2Vzc29yRQBfWk41Y2xhbmc5TWFjcm9BcmdzMTJnZXRBcmdMZW5ndGhFUEtOU181VG9rZW5FAF9aTjVjbGFuZzVMZXhlcjEzZ2V0U291cmNlVGV4dEVOU18xNUNoYXJTb3VyY2VSYW5nZUVSS05TXzEzU291cmNlTWFuYWdlckVSS05TXzExTGFuZ09wdGlvbnNFUGIAX1pOSzVjbGFuZzEyUHJlcHJvY2Vzc29yMjV1cGRhdGVPdXRPZkRhdGVJZGVudGlmaWVyRVJOU18xNElkZW50aWZpZXJJbmZvRQBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjIxdXBkYXRlTW9kdWxlTWFjcm9JbmZvRVBLTlNfMTRJZGVudGlmaWVySW5mb0VSTlMwXzE1TW9kdWxlTWFjcm9JbmZvRQBmb3BlbgBmc2VlawBmdGVsbABfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2cmVzaXplRW1jAGZyZWFkAGZjbG9zZQBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRWxzRWwAX1pOU3QzX18xMTFfX2NhbGxfb25jZUVSVm1QdlBGdlMyX0UAcmVhbGxvYwBtYWxsb2MAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFQzJJRG5FRVBLYwBfWk42Z29vZ2xlOHByb3RvYnVmMTFTdHJpbmdQaWVjZUMySU5TdDNfXzE5YWxsb2NhdG9ySWNFRUVFUktOUzNfMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRVRfRUUAX1pOSzZnb29nbGU4cHJvdG9idWYxMU1lc3NhZ2VMaXRlMTdTZXJpYWxpemVBc1N0cmluZ0V2AF9aTjZnb29nbGU4cHJvdG9idWY0dXRpbDE4QmluYXJ5VG9Kc29uU3RyaW5nRVBOUzFfMTJUeXBlUmVzb2x2ZXJFUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNF8xMWNoYXJfdHJhaXRzSWNFRU5TNF85YWxsb2NhdG9ySWNFRUVFU0NfUFNBX1JLTlMxXzE2SnNvblByaW50T3B0aW9uc0UAX1pONmdvb2dsZThwcm90b2J1ZjExU3RyaW5nUGllY2UxOExvZ0ZhdGFsU2l6ZVRvb0JpZ0VtUEtjAF9aTjZnb29nbGU4cHJvdG9idWY0dXRpbDE4SnNvblRvQmluYXJ5U3RyaW5nRVBOUzFfMTJUeXBlUmVzb2x2ZXJFUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNF8xMWNoYXJfdHJhaXRzSWNFRU5TNF85YWxsb2NhdG9ySWNFRUVFTlMwXzExU3RyaW5nUGllY2VFUFNBX1JLTlMxXzE2SnNvblBhcnNlT3B0aW9uc0UAX1pOSzZnb29nbGU4cHJvdG9idWY0dXRpbDZTdGF0dXM4VG9TdHJpbmdFdgBfWk42Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTE1UGFyc2VGcm9tU3RyaW5nRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzJfMTFjaGFyX3RyYWl0c0ljRUVOUzJfOWFsbG9jYXRvckljRUVFRQBfWk42Z29vZ2xlOHByb3RvYnVmMTREZXNjcmlwdG9yUG9vbDE0Z2VuZXJhdGVkX3Bvb2xFdgBfWk42Z29vZ2xlOHByb3RvYnVmNHV0aWwzMk5ld1R5cGVSZXNvbHZlckZvckRlc2NyaXB0b3JQb29sRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzJfMTFjaGFyX3RyYWl0c0ljRUVOUzJfOWFsbG9jYXRvckljRUVFRVBLTlMwXzE0RGVzY3JpcHRvclBvb2xFAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xOFN0cmluZ091dHB1dFN0cmVhbUMxRVBOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFAF9aTjZnb29nbGU4cHJvdG9idWY0dXRpbDE4SnNvblRvQmluYXJ5U3RyZWFtRVBOUzFfMTJUeXBlUmVzb2x2ZXJFUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNF8xMWNoYXJfdHJhaXRzSWNFRU5TNF85YWxsb2NhdG9ySWNFRUVFUE5TMF8yaW8xOVplcm9Db3B5SW5wdXRTdHJlYW1FUE5TRF8yMFplcm9Db3B5T3V0cHV0U3RyZWFtRVJLTlMxXzE2SnNvblBhcnNlT3B0aW9uc0UAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2QXJyYXlJbnB1dFN0cmVhbUMxRVBLdmlpAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xN0NvZGVkT3V0cHV0U3RyZWFtQzFFUE5TMV8yMFplcm9Db3B5T3V0cHV0U3RyZWFtRQBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUyMlNlcmlhbGl6ZVRvQ29kZWRTdHJlYW1FUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTdDb2RlZE91dHB1dFN0cmVhbUQxRXYAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTI0ZGVmYXVsdF9yZWN1cnNpb25fbGltaXRfRQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtN1JlZnJlc2hFdgBfWk42Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTIwUGFyc2VGcm9tQ29kZWRTdHJlYW1FUE5TMF8yaW8xNkNvZGVkSW5wdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW1EMUV2AF9aTktTdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU1cmZpbmRFY20AX1pOOVppcFdyaXRlcjE4U3RhcnRFbnRyeVdpdGhUaW1lRU5TdDNfXzExN2Jhc2ljX3N0cmluZ192aWV3SWNOUzBfMTFjaGFyX3RyYWl0c0ljRUVFRW1sAF9aTjlaaXBXcml0ZXIxMFdyaXRlQnl0ZXNFUEt2bQBfWk45WmlwV3JpdGVyMTFGaW5pc2hFbnRyeUV2AF9aTjlaaXBXcml0ZXIxNUVycm9yQ29kZVN0cmluZ0VpAF9aTjlaaXBXcml0ZXJDMUVQOF9JT19GSUxFAHN0cmVycm9yAF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTE3U2VyaWFsaXplVG9TdHJpbmdFUE5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMyXzExY2hhcl90cmFpdHNJY0VFTlMyXzlhbGxvY2F0b3JJY0VFRUUAX1pOU3QzX18xMTJfX2hhc2hfdGFibGVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRoYXNoSVM2X0VFTlNfOGVxdWFsX3RvSVM2X0VFTlM0X0lTNl9FRUUyNV9fZW1wbGFjZV91bmlxdWVfa2V5X2FyZ3NJUzZfSlJLUzZfRUVFTlNfNHBhaXJJTlNfMTVfX2hhc2hfaXRlcmF0b3JJUE5TXzExX19oYXNoX25vZGVJUzZfUHZFRUVFYkVFUktUX0RwT1QwXwBfWk45WmlwV3JpdGVyNkZpbmlzaEV2AHN0cmNhc2VjbXAAX1pOU3QzX18xMTJfX2hhc2hfdGFibGVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRoYXNoSVM2X0VFTlNfOGVxdWFsX3RvSVM2X0VFTlM0X0lTNl9FRUU2cmVoYXNoRW0AX1pOU3QzX18xMTJfX2hhc2hfdGFibGVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRoYXNoSVM2X0VFTlNfOGVxdWFsX3RvSVM2X0VFTlM0X0lTNl9FRUU4X19yZWhhc2hFbQByZWFscGF0aABnZXRjd2QAX1pUQ05TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRQBfWlRWTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAF9aVFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBfWlRUTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAF9aTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMUV2AF9aTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMEV2AF9aVHYwX24yNF9OU3QzX18xMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUQxRXYAX1pUdjBfbjI0X05TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRDBFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMkV2AF9aTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUQwRXYAX1pOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFN3NlZWtvZmZFeE5TXzhpb3NfYmFzZTdzZWVrZGlyRWoAX1pOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFOXVuZGVyZmxvd0V2AF9aTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTlwYmFja2ZhaWxFaQBfWk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU4b3ZlcmZsb3dFaQBfWk5LU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFM3N0ckV2AF9aVElOU3QzX18xMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAX1pUU05TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBfWlRJTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAX1pUU05TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAF9aTlN0M19fMTZ2ZWN0b3JJaU5TXzlhbGxvY2F0b3JJaUVFRTIxX19wdXNoX2JhY2tfc2xvd19wYXRoSVJLaUVFdk9UXwBfWk5TdDNfXzE2X190cmVlSU5TXzEyX192YWx1ZV90eXBlSWlpRUVOU18xOV9fbWFwX3ZhbHVlX2NvbXBhcmVJaVMyX05TXzRsZXNzSWlFRUxiMUVFRU5TXzlhbGxvY2F0b3JJUzJfRUVFN2Rlc3Ryb3lFUE5TXzExX190cmVlX25vZGVJUzJfUHZFRQBfWk5TdDNfXzE2dmVjdG9ySWlOU185YWxsb2NhdG9ySWlFRUUyMV9fcHVzaF9iYWNrX3Nsb3dfcGF0aElpRUV2T1RfAF9aTlN0M19fMTZ2ZWN0b3JJaU5TXzlhbGxvY2F0b3JJaUVFRThfX2FwcGVuZEVtAF9aTlN0M19fMTZfX3RyZWVJTlNfMTJfX3ZhbHVlX3R5cGVJaU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVFRU5TXzE5X19tYXBfdmFsdWVfY29tcGFyZUlpUzhfTlNfNGxlc3NJaUVFTGIxRUVFTlM1X0lTOF9FRUU3ZGVzdHJveUVQTlNfMTFfX3RyZWVfbm9kZUlTOF9QdkVFAF9aTlN0M19fMThpb3NfYmFzZTRpbml0RVB2AF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVDMkV2AF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVEMkV2AF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDJFdgBfWk5TdDNfXzE5YmFzaWNfaW9zSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVEMkV2AF9fY3R5cGVfYl9sb2MAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFN3JlcGxhY2VFbW1QS2NtAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTlwdXNoX2JhY2tFYwBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU3cmVzZXJ2ZUVtAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTZhc3NpZ25FUEtjbQBfX21lbW1vdmVfY2hrAHN0cnRvbABzdHJ0b3VsAHN0cnRvbGwAc3RydG91bGwAc3RydG9mAHN0cnRvZABmd3JpdGUAX1pUSU5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVEMUV2AF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDBFdgBfWlR2MF9uMjRfTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDFFdgBfWlR2MF9uMjRfTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDBFdgBfWlRWTjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU1aW1idWVFUktOU182bG9jYWxlRQBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnNldGJ1ZkVQY2wAX1pOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTRzeW5jRXYAX1pOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTlzaG93bWFueWNFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnhzZ2V0bkVQY2wAX1pOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTV1Zmxvd0V2AF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU2eHNwdXRuRVBLY2wAX1pUSU5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBfWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHN0cmNocgBzbnByaW50ZgBfX3ZzbnByaW50Zl9jaGsAcHRocmVhZF9yd2xvY2tfaW5pdABwdGhyZWFkX3J3bG9ja19kZXN0cm95AF9aTlN0M19fMTZfX3NvcnRJUk5TXzZfX2xlc3NJaWlFRVBpRUV2VDBfUzVfVF8AcHRocmVhZF9yd2xvY2tfd3Jsb2NrAHB0aHJlYWRfcndsb2NrX3VubG9jawBwdGhyZWFkX3J3bG9ja19yZGxvY2sAbWVtcmNocgBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2YXBwZW5kRW1jAF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFbHNFdABfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRTV3cml0ZUVQS2NsAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTVlcmFzZUVtbQBfX3Rsc19nZXRfYWRkcgBzaWdlbXB0eXNldABzaWdhY3Rpb24Ac3lzY29uZgBtbWFwAHNpZ2FsdHN0YWNrAHNjaGVkX2dldGNwdQBhbGFybQBzaWduYWwAbmFub3NsZWVwAHJhaXNlAHRpbWUAc3lzY2FsbABfWk5TdDNfXzE2dGhyZWFkMjBoYXJkd2FyZV9jb25jdXJyZW5jeUV2AG9wZW4AcmVhZABjbG9zZQBjbG9ja19nZXR0aW1lAHBlcnJvcgBnZXRwaWQAcGlwZQBmY250bABzdHJkdXAAbHNlZWsAc3RybmxlbgBzdHJjbXAAc3RybmNweQBnZXRhdXh2YWwAc2lnZmlsbHNldABwdGhyZWFkX3NpZ21hc2sAbXVubWFwAF9aTlN0OWV4Y2VwdGlvbkQyRXYAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRDJFdgBfWlRJU3Q5ZXhjZXB0aW9uAF9fbWVtY3B5X2NoawBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRWxzRWoAbGRleHAAbGRleHBmAGxkZXhwbAB0cnVuY2wAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmluc2VydEVtbWMAX19pc25hbmwAX19pc2luZmwAZnJleHBsAF9faXNuYW4AX19pc2luZgBmcmV4cABmZXJyb3IAbmFuAG5hbmYAc2NoZWRfeWllbGQAc3RyY3B5AGdldHRpbWVvZmRheQBwdGhyZWFkX3NlbGYAcHRocmVhZF9nZXRzY2hlZHBhcmFtAHB0aHJlYWRfc2V0c3BlY2lmaWMAcHRocmVhZF9rZXlfY3JlYXRlAHB0aHJlYWRfZ2V0c3BlY2lmaWMAbW9kZgBjZWlsAGZsb29yAF9aTlN0M19fMTZjaHJvbm8xMnN5c3RlbV9jbG9jazExZnJvbV90aW1lX3RFbABfWk5LU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFN2NvbXBhcmVFbW1QS2MAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmFwcGVuZEVSS1M1X21tAHJld2luZABsb2NhbHRpbWVfcgBnbXRpbWVfcgBta3RpbWUAX19tZW1zZXRfY2hrAG1hZHZpc2UAX19mcHJpbnRmX2NoawBmZmx1c2gAX19pc29jOTlfc3NjYW5mAE9QRU5TU0xfbWVtb3J5X2FsbG9jAE9QRU5TU0xfbWVtb3J5X2ZyZWUAc2RhbGxvY3gAT1BFTlNTTF9tZW1vcnlfZ2V0X3NpemUAYnNlYXJjaABmcHV0cwBwdGhyZWFkX29uY2UAcHRocmVhZF9tdXRleF9sb2NrAHB0aHJlYWRfbXV0ZXhfdW5sb2NrAHFzb3J0AGxpYnB0aHJlYWQuc28uMABHTElCQ18yLjIuNQBsaWJtLnNvLjYAbGlicnQuc28uMQBsaWJjLnNvLjYAR0xJQkNfMi4zAEdMSUJDXzIuMy40AEdMSUJDXzIuNABHTElCQ18yLjYAR0xJQkNfMi43AEdMSUJDXzIuMTQAR0xJQkNfMi4xNgBsZC1saW51eC14ODYtNjQuc28uMgAkT1JJR0lOLy4uL2xpYjY0OiRPUklHSU4vbGliNjQAbGlicHJvdG9idWYtY3BwLWZ1bGwuc28AbGliYmFzZS5zbwBsaWJjbGFuZy1jcHAuc28uMTRnaXQAbGliemlwYXJjaGl2ZS5zbwBsaWJjKysuc28AbGliZGwuc28uMgBsaWJnY2Nfcy5zby4xAAAAAABwsncBAAAAAAgAAAAAAAAAkF94AQAAAAB4sncBAAAAAAgAAAAAAAAAqF94AQAAAACAsncBAAAAAAgAAAAAAAAAwF94AQAAAACIsncBAAAAAAgAAAAAAAAA2F94AQAAAACQsncBAAAAAAgAAAAAAAAA8F94AQAAAACYsncBAAAAAAgAAAAAAAAAEGB4AQAAAACgsncBAAAAAAgAAAAAAAAAQGB4AQAAAACosncBAAAAAAgAAAAAAAAAWGB4AQAAAACwsncBAAAAAAgAAAAAAAAAgGB4AQAAAAC4sncBAAAAAAgAAAAAAAAAmGB4AQAAAADAsncBAAAAAAgAAAAAAAAAsGB4AQAAAADIsncBAAAAAAgAAAAAAAAAyGB4AQAAAADQsncBAAAAAAgAAAAAAAAA6GB4AQAAAADYsncBAAAAAAgAAAAAAAAAAGF4AQAAAADgsncBAAAAAAgAAAAAAAAAGGF4AQAAAADosncBAAAAAAgAAAAAAAAAMGF4AQAAAADwsncBAAAAAAgAAAAAAAAAUGF4AQAAAAD4sncBAAAAAAgAAAAAAAAAaGF4AQAAAAAAs3cBAAAAAAgAAAAAAAAAgGF4AQAAAAAgs3cBAAAAAAgAAAAAAAAAYOZ3AQAAAAAws3cBAAAAAAgAAAAAAAAAUGx4AQAAAAA4s3cBAAAAAAgAAAAAAAAAiGx4AQAAAABAs3cBAAAAAAgAAAAAAAAAsGx4AQAAAABIs3cBAAAAAAgAAAAAAAAA0Gx4AQAAAABQs3cBAAAAAAgAAAAAAAAAEG14AQAAAABYs3cBAAAAAAgAAAAAAAAAOG14AQAAAABgs3cBAAAAAAgAAAAAAAAA6G14AQAAAABos3cBAAAAAAgAAAAAAAAAAG54AQAAAABws3cBAAAAAAgAAAAAAAAAMG54AQAAAAB4s3cBAAAAAAgAAAAAAAAAYG54AQAAAACAs3cBAAAAAAgAAAAAAAAASG94AQAAAACIs3cBAAAAAAgAAAAAAAAAeG94AQAAAACQs3cBAAAAAAgAAAAAAAAAMHB4AQAAAACYs3cBAAAAAAgAAAAAAAAAUHB4AQAAAACgs3cBAAAAAAgAAAAAAAAAgHB4AQAAAACos3cBAAAAAAgAAAAAAAAAqHB4AQAAAACws3cBAAAAAAgAAAAAAAAA0HB4AQAAAAC4s3cBAAAAAAgAAAAAAAAACHF4AQAAAADAs3cBAAAAAAgAAAAAAAAAOHF4AQAAAADIs3cBAAAAAAgAAAAAAAAAYHF4AQAAAADQs3cBAAAAAAgAAAAAAAAAcBMCAAAAAADYs3cBAAAAAAgAAAAAAAAAvYNRAQAAAADos3cBAAAAAAgAAAAAAAAAaHF4AQAAAADws3cBAAAAAAgAAAAAAAAAcLJ3AQAAAAD4s3cBAAAAAAgAAAAAAAAAELN3AQAAAAAItHcBAAAAAAgAAAAAAAAAYBwCAAAAAAAQtHcBAAAAAAgAAAAAAAAAMLN3AQAAAAAYtHcBAAAAAAgAAAAAAAAAEBECAAAAAAAgtHcBAAAAAAgAAAAAAAAAcHF4AQAAAAAwtHcBAAAAAAgAAAAAAAAAoHJ4AQAAAABQtHcBAAAAAAgAAAAAAAAAUNFgAQAAAABYtHcBAAAAAAgAAAAAAAAAwNFgAQAAAABotHcBAAAAAAgAAAAAAAAAQORhAQAAAABwtHcBAAAAAAgAAAAAAAAAUORhAQAAAAB4tHcBAAAAAAgAAAAAAAAAYORhAQAAAACAtHcBAAAAAAgAAAAAAAAAgORhAQAAAACItHcBAAAAAAgAAAAAAAAAgNJgAQAAAACQtHcBAAAAAAgAAAAAAAAAYONgAQAAAACotHcBAAAAAAgAAAAAAAAAYNNgAQAAAACwtHcBAAAAAAgAAAAAAAAAsNlgAQAAAAC4tHcBAAAAAAgAAAAAAAAAwNZgAQAAAADItHcBAAAAAAgAAAAAAAAAkORhAQAAAADQtHcBAAAAAAgAAAAAAAAAoORhAQAAAADYtHcBAAAAAAgAAAAAAAAAENhgAQAAAADgtHcBAAAAAAgAAAAAAAAAsOJgAQAAAADotHcBAAAAAAgAAAAAAAAAwNpgAQAAAAAAtXcBAAAAAAgAAAAAAAAAQNJgAQAAAAAItXcBAAAAAAgAAAAAAAAAUORgAQAAAAAgtXcBAAAAAAgAAAAAAAAA4OZgAQAAAAAotXcBAAAAAAgAAAAAAAAAkOdgAQAAAAA4tXcBAAAAAAgAAAAAAAAAsORhAQAAAABAtXcBAAAAAAgAAAAAAAAAwORhAQAAAABItXcBAAAAAAgAAAAAAAAA0ORhAQAAAABQtXcBAAAAAAgAAAAAAAAA8ORhAQAAAABYtXcBAAAAAAgAAAAAAAAAAOhgAQAAAABgtXcBAAAAAAgAAAAAAAAAkPBgAQAAAAB4tXcBAAAAAAgAAAAAAAAAkOhgAQAAAACAtXcBAAAAAAgAAAAAAAAAoOtgAQAAAACItXcBAAAAAAgAAAAAAAAAcOpgAQAAAACYtXcBAAAAAAgAAAAAAAAAAOVhAQAAAACgtXcBAAAAAAgAAAAAAAAAoORhAQAAAACotXcBAAAAAAgAAAAAAAAA8OpgAQAAAACwtXcBAAAAAAgAAAAAAAAA4O5gAQAAAAC4tXcBAAAAAAgAAAAAAAAAwOxgAQAAAADQtXcBAAAAAAgAAAAAAAAAwOdgAQAAAADYtXcBAAAAAAgAAAAAAAAAUPFgAQAAAADwtXcBAAAAAAgAAAAAAAAAwPJgAQAAAAD4tXcBAAAAAAgAAAAAAAAAUPNgAQAAAAAItncBAAAAAAgAAAAAAAAAEOVhAQAAAAAQtncBAAAAAAgAAAAAAAAAIOVhAQAAAAAYtncBAAAAAAgAAAAAAAAAMOVhAQAAAAAgtncBAAAAAAgAAAAAAAAAUOVhAQAAAAAotncBAAAAAAgAAAAAAAAAwPNgAQAAAAAwtncBAAAAAAgAAAAAAAAAcPlgAQAAAABItncBAAAAAAgAAAAAAAAAEPRgAQAAAABQtncBAAAAAAgAAAAAAAAAUPdgAQAAAABYtncBAAAAAAgAAAAAAAAA0PVgAQAAAABotncBAAAAAAgAAAAAAAAAYOVhAQAAAABwtncBAAAAAAgAAAAAAAAAoORhAQAAAAB4tncBAAAAAAgAAAAAAAAAcPZgAQAAAACAtncBAAAAAAgAAAAAAAAAQPhgAQAAAACItncBAAAAAAgAAAAAAAAA0PdgAQAAAACgtncBAAAAAAgAAAAAAAAAgPNgAQAAAACotncBAAAAAAgAAAAAAAAAMPpgAQAAAADAtncBAAAAAAgAAAAAAAAAgP5gAQAAAADItncBAAAAAAgAAAAAAAAAcP9gAQAAAADYtncBAAAAAAgAAAAAAAAAcOVhAQAAAADgtncBAAAAAAgAAAAAAAAAgOVhAQAAAADotncBAAAAAAgAAAAAAAAAkOVhAQAAAADwtncBAAAAAAgAAAAAAAAAsOVhAQAAAAD4tncBAAAAAAgAAAAAAAAA4P9gAQAAAAAAt3cBAAAAAAgAAAAAAAAAsAthAQAAAAAYt3cBAAAAAAgAAAAAAAAA4ABhAQAAAAAgt3cBAAAAAAgAAAAAAAAA0AVhAQAAAAAot3cBAAAAAAgAAAAAAAAAwANhAQAAAAA4t3cBAAAAAAgAAAAAAAAAwOVhAQAAAABAt3cBAAAAAAgAAAAAAAAAoORhAQAAAABIt3cBAAAAAAgAAAAAAAAAcARhAQAAAABQt3cBAAAAAAgAAAAAAAAAAAthAQAAAABYt3cBAAAAAAgAAAAAAAAAUAdhAQAAAABwt3cBAAAAAAgAAAAAAAAAoP9gAQAAAAB4t3cBAAAAAAgAAAAAAAAAsAxhAQAAAACQt3cBAAAAAAgAAAAAAAAAYA5hAQAAAACYt3cBAAAAAAgAAAAAAAAAIA9hAQAAAACot3cBAAAAAAgAAAAAAAAA0OVhAQAAAACwt3cBAAAAAAgAAAAAAAAA4OVhAQAAAAC4t3cBAAAAAAgAAAAAAAAA8OVhAQAAAADAt3cBAAAAAAgAAAAAAAAAEOZhAQAAAADIt3cBAAAAAAgAAAAAAAAAkA9hAQAAAADQt3cBAAAAAAgAAAAAAAAAUBdhAQAAAADot3cBAAAAAAgAAAAAAAAAABBhAQAAAADwt3cBAAAAAAgAAAAAAAAA0BNhAQAAAAD4t3cBAAAAAAgAAAAAAAAAEBJhAQAAAAAIuHcBAAAAAAgAAAAAAAAAIOZhAQAAAAAQuHcBAAAAAAgAAAAAAAAAoORhAQAAAAAYuHcBAAAAAAgAAAAAAAAA8BJhAQAAAAAguHcBAAAAAAgAAAAAAAAA4BVhAQAAAAAouHcBAAAAAAgAAAAAAAAAcBRhAQAAAABAuHcBAAAAAAgAAAAAAAAAUA9hAQAAAABIuHcBAAAAAAgAAAAAAAAAEBhhAQAAAABguHcBAAAAAAgAAAAAAAAAICBhAQAAAABouHcBAAAAAAgAAAAAAAAAsCFhAQAAAAB4uHcBAAAAAAgAAAAAAAAAMOZhAQAAAACAuHcBAAAAAAgAAAAAAAAAQOZhAQAAAACIuHcBAAAAAAgAAAAAAAAAUOZhAQAAAACQuHcBAAAAAAgAAAAAAAAAcOZhAQAAAACYuHcBAAAAAAgAAAAAAAAAICJhAQAAAACguHcBAAAAAAgAAAAAAAAAYDlhAQAAAAC4uHcBAAAAAAgAAAAAAAAAgCVhAQAAAADAuHcBAAAAAAgAAAAAAAAA0DRhAQAAAADIuHcBAAAAAAgAAAAAAAAAAC5hAQAAAADYuHcBAAAAAAgAAAAAAAAAgOZhAQAAAADguHcBAAAAAAgAAAAAAAAAoORhAQAAAADouHcBAAAAAAgAAAAAAAAA4DBhAQAAAADwuHcBAAAAAAgAAAAAAAAAsDhhAQAAAAD4uHcBAAAAAAgAAAAAAAAAQDhhAQAAAAAQuXcBAAAAAAgAAAAAAAAA4CFhAQAAAAAYuXcBAAAAAAgAAAAAAAAAgDthAQAAAAAwuXcBAAAAAAgAAAAAAAAAUDxhAQAAAAA4uXcBAAAAAAgAAAAAAAAAwDxhAQAAAABIuXcBAAAAAAgAAAAAAAAAkOZhAQAAAABQuXcBAAAAAAgAAAAAAAAAoOZhAQAAAABYuXcBAAAAAAgAAAAAAAAAsOZhAQAAAABguXcBAAAAAAgAAAAAAAAA0OZhAQAAAABouXcBAAAAAAgAAAAAAAAAgD1hAQAAAABwuXcBAAAAAAgAAAAAAAAAsEFhAQAAAACIuXcBAAAAAAgAAAAAAAAAsD1hAQAAAACQuXcBAAAAAAgAAAAAAAAAgD9hAQAAAACYuXcBAAAAAAgAAAAAAAAA0D5hAQAAAACouXcBAAAAAAgAAAAAAAAA4OZhAQAAAACwuXcBAAAAAAgAAAAAAAAAoORhAQAAAAC4uXcBAAAAAAgAAAAAAAAAID9hAQAAAADAuXcBAAAAAAgAAAAAAAAA4EBhAQAAAADIuXcBAAAAAAgAAAAAAAAA0D9hAQAAAADguXcBAAAAAAgAAAAAAAAAQD1hAQAAAADouXcBAAAAAAgAAAAAAAAAYEJhAQAAAAAAuncBAAAAAAgAAAAAAAAAoFNiAQAAAAAIuncBAAAAAAgAAAAAAAAAUOphAQAAAAAQuncBAAAAAAgAAAAAAAAAcOphAQAAAAAYuncBAAAAAAgAAAAAAAAAkOphAQAAAAAguncBAAAAAAgAAAAAAAAA0OphAQAAAAAouncBAAAAAAgAAAAAAAAA4OphAQAAAAAwuncBAAAAAAgAAAAAAAAA8OphAQAAAAA4uncBAAAAAAgAAAAAAAAAAOthAQAAAABAuncBAAAAAAgAAAAAAAAAYOthAQAAAABQuncBAAAAAAgAAAAAAAAAcOthAQAAAABYuncBAAAAAAgAAAAAAAAAgOthAQAAAABguncBAAAAAAgAAAAAAAAAIO1hAQAAAABouncBAAAAAAgAAAAAAAAA8O1hAQAAAAB4uncBAAAAAAgAAAAAAAAAQO5hAQAAAACAuncBAAAAAAgAAAAAAAAAoORhAQAAAACIuncBAAAAAAgAAAAAAAAA0O5hAQAAAACYuncBAAAAAAgAAAAAAAAAEENhAQAAAACouncBAAAAAAgAAAAAAAAAsO9hAQAAAAC4uncBAAAAAAgAAAAAAAAA8EJhAQAAAADAuncBAAAAAAgAAAAAAAAA0O9hAQAAAADIuncBAAAAAAgAAAAAAAAA4O9hAQAAAADguncBAAAAAAgAAAAAAAAA4FRiAQAAAADouncBAAAAAAgAAAAAAAAAAPBhAQAAAADwuncBAAAAAAgAAAAAAAAAIPBhAQAAAAD4uncBAAAAAAgAAAAAAAAAQPBhAQAAAAAAu3cBAAAAAAgAAAAAAAAAgPBhAQAAAAAIu3cBAAAAAAgAAAAAAAAAkPBhAQAAAAAQu3cBAAAAAAgAAAAAAAAA8OphAQAAAAAYu3cBAAAAAAgAAAAAAAAAoPBhAQAAAAAgu3cBAAAAAAgAAAAAAAAAAPFhAQAAAAAwu3cBAAAAAAgAAAAAAAAAEPFhAQAAAAA4u3cBAAAAAAgAAAAAAAAAIPFhAQAAAABAu3cBAAAAAAgAAAAAAAAAwPJhAQAAAABIu3cBAAAAAAgAAAAAAAAAkPNhAQAAAABYu3cBAAAAAAgAAAAAAAAA4PNhAQAAAABgu3cBAAAAAAgAAAAAAAAAoORhAQAAAABou3cBAAAAAAgAAAAAAAAAcPRhAQAAAAB4u3cBAAAAAAgAAAAAAAAAsENhAQAAAACIu3cBAAAAAAgAAAAAAAAAUPVhAQAAAACYu3cBAAAAAAgAAAAAAAAAkENhAQAAAACgu3cBAAAAAAgAAAAAAAAAcPVhAQAAAACou3cBAAAAAAgAAAAAAAAAgPVhAQAAAADAu3cBAAAAAAgAAAAAAAAAMEdhAQAAAADIu3cBAAAAAAgAAAAAAAAAUEhhAQAAAADYu3cBAAAAAAgAAAAAAAAA8OZhAQAAAADgu3cBAAAAAAgAAAAAAAAAAOdhAQAAAADou3cBAAAAAAgAAAAAAAAAEOdhAQAAAADwu3cBAAAAAAgAAAAAAAAAMOdhAQAAAAD4u3cBAAAAAAgAAAAAAAAAwEhhAQAAAAAAvHcBAAAAAAgAAAAAAAAAAFphAQAAAAAYvHcBAAAAAAgAAAAAAAAAsElhAQAAAAAgvHcBAAAAAAgAAAAAAAAAEFZhAQAAAAAovHcBAAAAAAgAAAAAAAAAsE1hAQAAAAA4vHcBAAAAAAgAAAAAAAAAQOdhAQAAAABAvHcBAAAAAAgAAAAAAAAAoORhAQAAAABIvHcBAAAAAAgAAAAAAAAAkFNhAQAAAABQvHcBAAAAAAgAAAAAAAAAUFlhAQAAAABYvHcBAAAAAAgAAAAAAAAAIFhhAQAAAABwvHcBAAAAAAgAAAAAAAAAgEhhAQAAAAB4vHcBAAAAAAgAAAAAAAAAIFthAQAAAACQvHcBAAAAAAgAAAAAAAAAIFZiAQAAAACYvHcBAAAAAAgAAAAAAAAAoPVhAQAAAACgvHcBAAAAAAgAAAAAAAAAwPVhAQAAAACovHcBAAAAAAgAAAAAAAAA4PVhAQAAAACwvHcBAAAAAAgAAAAAAAAAIPZhAQAAAAC4vHcBAAAAAAgAAAAAAAAAMPZhAQAAAADAvHcBAAAAAAgAAAAAAAAA8OphAQAAAADIvHcBAAAAAAgAAAAAAAAAQPZhAQAAAADQvHcBAAAAAAgAAAAAAAAAgPZhAQAAAADgvHcBAAAAAAgAAAAAAAAAkPZhAQAAAADovHcBAAAAAAgAAAAAAAAAoPZhAQAAAADwvHcBAAAAAAgAAAAAAAAAQPhhAQAAAAD4vHcBAAAAAAgAAAAAAAAA0PhhAQAAAAAIvXcBAAAAAAgAAAAAAAAAIPlhAQAAAAAQvXcBAAAAAAgAAAAAAAAAoORhAQAAAAAYvXcBAAAAAAgAAAAAAAAAsPlhAQAAAAAovXcBAAAAAAgAAAAAAAAA0FthAQAAAAA4vXcBAAAAAAgAAAAAAAAAQPphAQAAAABIvXcBAAAAAAgAAAAAAAAAsFthAQAAAABQvXcBAAAAAAgAAAAAAAAAYPphAQAAAABYvXcBAAAAAAgAAAAAAAAAcPphAQAAAABwvXcBAAAAAAgAAAAAAAAAMF9hAQAAAAB4vXcBAAAAAAgAAAAAAAAAAGBhAQAAAACIvXcBAAAAAAgAAAAAAAAAUOdhAQAAAACQvXcBAAAAAAgAAAAAAAAAYOdhAQAAAACYvXcBAAAAAAgAAAAAAAAAcOdhAQAAAACgvXcBAAAAAAgAAAAAAAAAkOdhAQAAAACovXcBAAAAAAgAAAAAAAAAcGBhAQAAAACwvXcBAAAAAAgAAAAAAAAAYHNhAQAAAADIvXcBAAAAAAgAAAAAAAAAcGJhAQAAAADQvXcBAAAAAAgAAAAAAAAAcG5hAQAAAADYvXcBAAAAAAgAAAAAAAAA4GdhAQAAAADovXcBAAAAAAgAAAAAAAAAoOdhAQAAAADwvXcBAAAAAAgAAAAAAAAAoORhAQAAAAD4vXcBAAAAAAgAAAAAAAAA0GthAQAAAAAAvncBAAAAAAgAAAAAAAAAsHJhAQAAAAAIvncBAAAAAAgAAAAAAAAA4HBhAQAAAAAgvncBAAAAAAgAAAAAAAAAMGBhAQAAAAAovncBAAAAAAgAAAAAAAAAAHVhAQAAAABAvncBAAAAAAgAAAAAAAAA4HZhAQAAAABIvncBAAAAAAgAAAAAAAAAYHdhAQAAAABYvncBAAAAAAgAAAAAAAAAsOdhAQAAAABgvncBAAAAAAgAAAAAAAAAwOdhAQAAAABovncBAAAAAAgAAAAAAAAA0OdhAQAAAABwvncBAAAAAAgAAAAAAAAA8OdhAQAAAAB4vncBAAAAAAgAAAAAAAAAMHhhAQAAAACAvncBAAAAAAgAAAAAAAAA4H1hAQAAAACYvncBAAAAAAgAAAAAAAAAoHhhAQAAAACgvncBAAAAAAgAAAAAAAAA8HphAQAAAACovncBAAAAAAgAAAAAAAAAEHphAQAAAAC4vncBAAAAAAgAAAAAAAAAAOhhAQAAAADAvncBAAAAAAgAAAAAAAAAoORhAQAAAADIvncBAAAAAAgAAAAAAAAAcHphAQAAAADQvncBAAAAAAgAAAAAAAAAgHxhAQAAAADYvncBAAAAAAgAAAAAAAAAYHthAQAAAADwvncBAAAAAAgAAAAAAAAA8HdhAQAAAAD4vncBAAAAAAgAAAAAAAAAkH5hAQAAAAAQv3cBAAAAAAgAAAAAAAAA0IBhAQAAAAAYv3cBAAAAAAgAAAAAAAAAoIFhAQAAAAAov3cBAAAAAAgAAAAAAAAAEOhhAQAAAAAwv3cBAAAAAAgAAAAAAAAAIOhhAQAAAAA4v3cBAAAAAAgAAAAAAAAAMOhhAQAAAABAv3cBAAAAAAgAAAAAAAAAUOhhAQAAAABIv3cBAAAAAAgAAAAAAAAAEIJhAQAAAABQv3cBAAAAAAgAAAAAAAAAcIlhAQAAAABov3cBAAAAAAgAAAAAAAAAAINhAQAAAABwv3cBAAAAAAgAAAAAAAAAwIVhAQAAAAB4v3cBAAAAAAgAAAAAAAAAoIRhAQAAAACIv3cBAAAAAAgAAAAAAAAAYOhhAQAAAACQv3cBAAAAAAgAAAAAAAAAoORhAQAAAACYv3cBAAAAAAgAAAAAAAAAEIVhAQAAAACgv3cBAAAAAAgAAAAAAAAAwIhhAQAAAACov3cBAAAAAAgAAAAAAAAA8IZhAQAAAADAv3cBAAAAAAgAAAAAAAAA0IFhAQAAAADIv3cBAAAAAAgAAAAAAAAAQIphAQAAAADgv3cBAAAAAAgAAAAAAAAA8IthAQAAAADov3cBAAAAAAgAAAAAAAAAsIxhAQAAAAD4v3cBAAAAAAgAAAAAAAAAcOhhAQAAAAAAwHcBAAAAAAgAAAAAAAAAgOhhAQAAAAAIwHcBAAAAAAgAAAAAAAAAkOhhAQAAAAAQwHcBAAAAAAgAAAAAAAAAsOhhAQAAAAAYwHcBAAAAAAgAAAAAAAAAII1hAQAAAAAgwHcBAAAAAAgAAAAAAAAA4JNhAQAAAAA4wHcBAAAAAAgAAAAAAAAAkI1hAQAAAABAwHcBAAAAAAgAAAAAAAAAYJFhAQAAAABIwHcBAAAAAAgAAAAAAAAAoI9hAQAAAABYwHcBAAAAAAgAAAAAAAAAwOhhAQAAAABgwHcBAAAAAAgAAAAAAAAAoORhAQAAAABowHcBAAAAAAgAAAAAAAAAgJBhAQAAAABwwHcBAAAAAAgAAAAAAAAAcJJhAQAAAAB4wHcBAAAAAAgAAAAAAAAAAJJhAQAAAACQwHcBAAAAAAgAAAAAAAAA4IxhAQAAAACYwHcBAAAAAAgAAAAAAAAAoJRhAQAAAACwwHcBAAAAAAgAAAAAAAAAsJZhAQAAAAC4wHcBAAAAAAgAAAAAAAAAYJdhAQAAAADIwHcBAAAAAAgAAAAAAAAA0OhhAQAAAADQwHcBAAAAAAgAAAAAAAAA4OhhAQAAAADYwHcBAAAAAAgAAAAAAAAA8OhhAQAAAADgwHcBAAAAAAgAAAAAAAAAEOlhAQAAAADowHcBAAAAAAgAAAAAAAAA0JdhAQAAAADwwHcBAAAAAAgAAAAAAAAAgKBhAQAAAAAIwXcBAAAAAAgAAAAAAAAAcJhhAQAAAAAQwXcBAAAAAAgAAAAAAAAAAJxhAQAAAAAYwXcBAAAAAAgAAAAAAAAAoJphAQAAAAAowXcBAAAAAAgAAAAAAAAAIOlhAQAAAAAwwXcBAAAAAAgAAAAAAAAAoORhAQAAAAA4wXcBAAAAAAgAAAAAAAAAQJthAQAAAABAwXcBAAAAAAgAAAAAAAAAwJ5hAQAAAABIwXcBAAAAAAgAAAAAAAAAQJ1hAQAAAABgwXcBAAAAAAgAAAAAAAAAkJdhAQAAAABowXcBAAAAAAgAAAAAAAAAUKFhAQAAAACAwXcBAAAAAAgAAAAAAAAAQKRhAQAAAACIwXcBAAAAAAgAAAAAAAAAIKVhAQAAAACYwXcBAAAAAAgAAAAAAAAAMOlhAQAAAACgwXcBAAAAAAgAAAAAAAAAQOlhAQAAAACowXcBAAAAAAgAAAAAAAAAUOlhAQAAAACwwXcBAAAAAAgAAAAAAAAAcOlhAQAAAAC4wXcBAAAAAAgAAAAAAAAAkKVhAQAAAADAwXcBAAAAAAgAAAAAAAAAoK5hAQAAAADYwXcBAAAAAAgAAAAAAAAAAKdhAQAAAADgwXcBAAAAAAgAAAAAAAAA4KphAQAAAADowXcBAAAAAAgAAAAAAAAAQKlhAQAAAAD4wXcBAAAAAAgAAAAAAAAAgOlhAQAAAAAAwncBAAAAAAgAAAAAAAAAoORhAQAAAAAIwncBAAAAAAgAAAAAAAAA0KlhAQAAAAAQwncBAAAAAAgAAAAAAAAA8K1hAQAAAAAYwncBAAAAAAgAAAAAAAAAoKthAQAAAAAwwncBAAAAAAgAAAAAAAAAUKVhAQAAAAA4wncBAAAAAAgAAAAAAAAAkK9hAQAAAABQwncBAAAAAAgAAAAAAAAAALFhAQAAAABYwncBAAAAAAgAAAAAAAAAcLFhAQAAAABowncBAAAAAAgAAAAAAAAAkOlhAQAAAABwwncBAAAAAAgAAAAAAAAAoOlhAQAAAAB4wncBAAAAAAgAAAAAAAAAsOlhAQAAAACAwncBAAAAAAgAAAAAAAAA0OlhAQAAAACIwncBAAAAAAgAAAAAAAAAMLJhAQAAAACQwncBAAAAAAgAAAAAAAAAQLphAQAAAACowncBAAAAAAgAAAAAAAAAALNhAQAAAACwwncBAAAAAAgAAAAAAAAAcLZhAQAAAAC4wncBAAAAAAgAAAAAAAAAALVhAQAAAADIwncBAAAAAAgAAAAAAAAA4OlhAQAAAADQwncBAAAAAAgAAAAAAAAAoORhAQAAAADYwncBAAAAAAgAAAAAAAAAsLVhAQAAAADgwncBAAAAAAgAAAAAAAAAELhhAQAAAADowncBAAAAAAgAAAAAAAAAALdhAQAAAAAAw3cBAAAAAAgAAAAAAAAA8LFhAQAAAAAIw3cBAAAAAAgAAAAAAAAAELthAQAAAAAgw3cBAAAAAAgAAAAAAAAAYL1hAQAAAAAow3cBAAAAAAgAAAAAAAAA8L1hAQAAAAA4w3cBAAAAAAgAAAAAAAAA8OlhAQAAAABAw3cBAAAAAAgAAAAAAAAAAOphAQAAAABIw3cBAAAAAAgAAAAAAAAAEOphAQAAAABQw3cBAAAAAAgAAAAAAAAAMOphAQAAAABYw3cBAAAAAAgAAAAAAAAAYL5hAQAAAABgw3cBAAAAAAgAAAAAAAAAkMdhAQAAAAB4w3cBAAAAAAgAAAAAAAAAEL9hAQAAAACAw3cBAAAAAAgAAAAAAAAAEMNhAQAAAACIw3cBAAAAAAgAAAAAAAAAEMFhAQAAAACYw3cBAAAAAAgAAAAAAAAAQOphAQAAAACgw3cBAAAAAAgAAAAAAAAAoORhAQAAAACow3cBAAAAAAgAAAAAAAAAgMFhAQAAAACww3cBAAAAAAgAAAAAAAAAkMVhAQAAAAC4w3cBAAAAAAgAAAAAAAAAIMRhAQAAAADQw3cBAAAAAAgAAAAAAAAAIL5hAQAAAADYw3cBAAAAAAgAAAAAAAAAUMhhAQAAAADww3cBAAAAAAgAAAAAAAAAcNphAQAAAAD4w3cBAAAAAAgAAAAAAAAAEPthAQAAAAAAxHcBAAAAAAgAAAAAAAAAgPthAQAAAAAIxHcBAAAAAAgAAAAAAAAAAPxhAQAAAAAQxHcBAAAAAAgAAAAAAAAAIP1hAQAAAAAYxHcBAAAAAAgAAAAAAAAAoP1hAQAAAAAgxHcBAAAAAAgAAAAAAAAAsP1hAQAAAAAoxHcBAAAAAAgAAAAAAAAAQP5hAQAAAAAwxHcBAAAAAAgAAAAAAAAAMNphAQAAAAA4xHcBAAAAAAgAAAAAAAAAoN9hAQAAAABAxHcBAAAAAAgAAAAAAAAAYP5hAQAAAABIxHcBAAAAAAgAAAAAAAAAoNthAQAAAABQxHcBAAAAAAgAAAAAAAAAgP5hAQAAAABYxHcBAAAAAAgAAAAAAAAAwP9hAQAAAABgxHcBAAAAAAgAAAAAAAAA0AJiAQAAAABoxHcBAAAAAAgAAAAAAAAA0ARiAQAAAABwxHcBAAAAAAgAAAAAAAAAAAViAQAAAAB4xHcBAAAAAAgAAAAAAAAAEAViAQAAAACAxHcBAAAAAAgAAAAAAAAAwAViAQAAAACIxHcBAAAAAAgAAAAAAAAA8AViAQAAAACQxHcBAAAAAAgAAAAAAAAAAAZiAQAAAACYxHcBAAAAAAgAAAAAAAAAMAZiAQAAAACwxHcBAAAAAAgAAAAAAAAA0NphAQAAAAC4xHcBAAAAAAgAAAAAAAAA0CViAQAAAADAxHcBAAAAAAgAAAAAAAAAQCZiAQAAAADIxHcBAAAAAAgAAAAAAAAAwCZiAQAAAADQxHcBAAAAAAgAAAAAAAAA4CdiAQAAAADYxHcBAAAAAAgAAAAAAAAAoP1hAQAAAADgxHcBAAAAAAgAAAAAAAAAsP1hAQAAAADoxHcBAAAAAAgAAAAAAAAAQP5hAQAAAADwxHcBAAAAAAgAAAAAAAAA8NlhAQAAAAD4xHcBAAAAAAgAAAAAAAAAYN9hAQAAAAAAxXcBAAAAAAgAAAAAAAAAYChiAQAAAAAIxXcBAAAAAAgAAAAAAAAAMNthAQAAAAAQxXcBAAAAAAgAAAAAAAAAgChiAQAAAAAYxXcBAAAAAAgAAAAAAAAAwCliAQAAAAAgxXcBAAAAAAgAAAAAAAAA0CxiAQAAAAAoxXcBAAAAAAgAAAAAAAAA0ARiAQAAAAAwxXcBAAAAAAgAAAAAAAAAAAViAQAAAAA4xXcBAAAAAAgAAAAAAAAAEAViAQAAAABAxXcBAAAAAAgAAAAAAAAAwAViAQAAAABIxXcBAAAAAAgAAAAAAAAA0C5iAQAAAABQxXcBAAAAAAgAAAAAAAAA4C5iAQAAAABYxXcBAAAAAAgAAAAAAAAAEC9iAQAAAABwxXcBAAAAAAgAAAAAAAAA4OBhAQAAAAB4xXcBAAAAAAgAAAAAAAAAkDBiAQAAAACAxXcBAAAAAAgAAAAAAAAAADFiAQAAAACIxXcBAAAAAAgAAAAAAAAAgDFiAQAAAACQxXcBAAAAAAgAAAAAAAAAoDJiAQAAAACYxXcBAAAAAAgAAAAAAAAAIDNiAQAAAACgxXcBAAAAAAgAAAAAAAAAMDNiAQAAAACoxXcBAAAAAAgAAAAAAAAAwDNiAQAAAACwxXcBAAAAAAgAAAAAAAAAoOBhAQAAAAC4xXcBAAAAAAgAAAAAAAAAAORhAQAAAADAxXcBAAAAAAgAAAAAAAAA4DNiAQAAAADIxXcBAAAAAAgAAAAAAAAAQOFhAQAAAADQxXcBAAAAAAgAAAAAAAAAADRiAQAAAADYxXcBAAAAAAgAAAAAAAAAQDViAQAAAADgxXcBAAAAAAgAAAAAAAAA4DdiAQAAAADoxXcBAAAAAAgAAAAAAAAAoDliAQAAAADwxXcBAAAAAAgAAAAAAAAA0DliAQAAAAD4xXcBAAAAAAgAAAAAAAAA4DliAQAAAAAAxncBAAAAAAgAAAAAAAAAkDpiAQAAAAAIxncBAAAAAAgAAAAAAAAAwDpiAQAAAAAQxncBAAAAAAgAAAAAAAAA0DpiAQAAAAAYxncBAAAAAAgAAAAAAAAAADtiAQAAAAAwxncBAAAAAAgAAAAAAAAAoFNiAQAAAAA4xncBAAAAAAgAAAAAAAAAYFRiAQAAAABAxncBAAAAAAgAAAAAAAAAcOphAQAAAABIxncBAAAAAAgAAAAAAAAAkOphAQAAAABQxncBAAAAAAgAAAAAAAAA0OphAQAAAABYxncBAAAAAAgAAAAAAAAA4OphAQAAAABgxncBAAAAAAgAAAAAAAAA8OphAQAAAABoxncBAAAAAAgAAAAAAAAAAOthAQAAAABwxncBAAAAAAgAAAAAAAAAYOthAQAAAACAxncBAAAAAAgAAAAAAAAAcOthAQAAAACIxncBAAAAAAgAAAAAAAAAgOthAQAAAACQxncBAAAAAAgAAAAAAAAAIO1hAQAAAACYxncBAAAAAAgAAAAAAAAA8O1hAQAAAACoxncBAAAAAAgAAAAAAAAAQO5hAQAAAACwxncBAAAAAAgAAAAAAAAAoORhAQAAAAC4xncBAAAAAAgAAAAAAAAA0O5hAQAAAADYxncBAAAAAAgAAAAAAAAAsO9hAQAAAADwxncBAAAAAAgAAAAAAAAA0O9hAQAAAAD4xncBAAAAAAgAAAAAAAAA4O9hAQAAAAAQx3cBAAAAAAgAAAAAAAAAcFRiAQAAAAAYx3cBAAAAAAgAAAAAAAAA0FRiAQAAAAAgx3cBAAAAAAgAAAAAAAAAcOphAQAAAAAox3cBAAAAAAgAAAAAAAAAkOphAQAAAAAwx3cBAAAAAAgAAAAAAAAA0OphAQAAAAA4x3cBAAAAAAgAAAAAAAAA4OphAQAAAABAx3cBAAAAAAgAAAAAAAAA8OphAQAAAABIx3cBAAAAAAgAAAAAAAAAAOthAQAAAABQx3cBAAAAAAgAAAAAAAAAYOthAQAAAABgx3cBAAAAAAgAAAAAAAAAcOthAQAAAABox3cBAAAAAAgAAAAAAAAAgOthAQAAAABwx3cBAAAAAAgAAAAAAAAAIO1hAQAAAAB4x3cBAAAAAAgAAAAAAAAA8O1hAQAAAACIx3cBAAAAAAgAAAAAAAAAQO5hAQAAAACQx3cBAAAAAAgAAAAAAAAAoORhAQAAAACYx3cBAAAAAAgAAAAAAAAA0O5hAQAAAADQx3cBAAAAAAgAAAAAAAAA0O9hAQAAAADYx3cBAAAAAAgAAAAAAAAA4O9hAQAAAADwx3cBAAAAAAgAAAAAAAAA4FRiAQAAAAD4x3cBAAAAAAgAAAAAAAAAoFViAQAAAAAAyHcBAAAAAAgAAAAAAAAAIPBhAQAAAAAIyHcBAAAAAAgAAAAAAAAAQPBhAQAAAAAQyHcBAAAAAAgAAAAAAAAAgPBhAQAAAAAYyHcBAAAAAAgAAAAAAAAAkPBhAQAAAAAgyHcBAAAAAAgAAAAAAAAA8OphAQAAAAAoyHcBAAAAAAgAAAAAAAAAoPBhAQAAAAAwyHcBAAAAAAgAAAAAAAAAAPFhAQAAAABAyHcBAAAAAAgAAAAAAAAAEPFhAQAAAABIyHcBAAAAAAgAAAAAAAAAIPFhAQAAAABQyHcBAAAAAAgAAAAAAAAAwPJhAQAAAABYyHcBAAAAAAgAAAAAAAAAkPNhAQAAAABoyHcBAAAAAAgAAAAAAAAA4PNhAQAAAABwyHcBAAAAAAgAAAAAAAAAoORhAQAAAAB4yHcBAAAAAAgAAAAAAAAAcPRhAQAAAACYyHcBAAAAAAgAAAAAAAAAUPVhAQAAAACwyHcBAAAAAAgAAAAAAAAAcPVhAQAAAAC4yHcBAAAAAAgAAAAAAAAAgPVhAQAAAADQyHcBAAAAAAgAAAAAAAAAsFViAQAAAADYyHcBAAAAAAgAAAAAAAAAEFZiAQAAAADgyHcBAAAAAAgAAAAAAAAAIPBhAQAAAADoyHcBAAAAAAgAAAAAAAAAQPBhAQAAAADwyHcBAAAAAAgAAAAAAAAAgPBhAQAAAAD4yHcBAAAAAAgAAAAAAAAAkPBhAQAAAAAAyXcBAAAAAAgAAAAAAAAA8OphAQAAAAAIyXcBAAAAAAgAAAAAAAAAoPBhAQAAAAAQyXcBAAAAAAgAAAAAAAAAAPFhAQAAAAAgyXcBAAAAAAgAAAAAAAAAEPFhAQAAAAAoyXcBAAAAAAgAAAAAAAAAIPFhAQAAAAAwyXcBAAAAAAgAAAAAAAAAwPJhAQAAAAA4yXcBAAAAAAgAAAAAAAAAkPNhAQAAAABIyXcBAAAAAAgAAAAAAAAA4PNhAQAAAABQyXcBAAAAAAgAAAAAAAAAoORhAQAAAABYyXcBAAAAAAgAAAAAAAAAcPRhAQAAAACQyXcBAAAAAAgAAAAAAAAAcPVhAQAAAACYyXcBAAAAAAgAAAAAAAAAgPVhAQAAAACwyXcBAAAAAAgAAAAAAAAAIFZiAQAAAAC4yXcBAAAAAAgAAAAAAAAA4FZiAQAAAADAyXcBAAAAAAgAAAAAAAAAwPVhAQAAAADIyXcBAAAAAAgAAAAAAAAA4PVhAQAAAADQyXcBAAAAAAgAAAAAAAAAIPZhAQAAAADYyXcBAAAAAAgAAAAAAAAAMPZhAQAAAADgyXcBAAAAAAgAAAAAAAAA8OphAQAAAADoyXcBAAAAAAgAAAAAAAAAQPZhAQAAAADwyXcBAAAAAAgAAAAAAAAAgPZhAQAAAAAAyncBAAAAAAgAAAAAAAAAkPZhAQAAAAAIyncBAAAAAAgAAAAAAAAAoPZhAQAAAAAQyncBAAAAAAgAAAAAAAAAQPhhAQAAAAAYyncBAAAAAAgAAAAAAAAA0PhhAQAAAAAoyncBAAAAAAgAAAAAAAAAIPlhAQAAAAAwyncBAAAAAAgAAAAAAAAAoORhAQAAAAA4yncBAAAAAAgAAAAAAAAAsPlhAQAAAABYyncBAAAAAAgAAAAAAAAAQPphAQAAAABwyncBAAAAAAgAAAAAAAAAYPphAQAAAAB4yncBAAAAAAgAAAAAAAAAcPphAQAAAACQyncBAAAAAAgAAAAAAAAA8FZiAQAAAACYyncBAAAAAAgAAAAAAAAAUFdiAQAAAACgyncBAAAAAAgAAAAAAAAAwPVhAQAAAACoyncBAAAAAAgAAAAAAAAA4PVhAQAAAACwyncBAAAAAAgAAAAAAAAAIPZhAQAAAAC4yncBAAAAAAgAAAAAAAAAMPZhAQAAAADAyncBAAAAAAgAAAAAAAAA8OphAQAAAADIyncBAAAAAAgAAAAAAAAAQPZhAQAAAADQyncBAAAAAAgAAAAAAAAAgPZhAQAAAADgyncBAAAAAAgAAAAAAAAAkPZhAQAAAADoyncBAAAAAAgAAAAAAAAAoPZhAQAAAADwyncBAAAAAAgAAAAAAAAA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0MJiAQAAAAA4zncBAAAAAAgAAAAAAAAAcHJjAQAAAABAzncBAAAAAAgAAAAAAAAAgHJjAQAAAABIzncBAAAAAAgAAAAAAAAA8LhiAQAAAABQzncBAAAAAAgAAAAAAAAA8OphAQAAAABYzncBAAAAAAgAAAAAAAAAMMNiAQAAAABgzncBAAAAAAgAAAAAAAAAIMpiAQAAAAB4zncBAAAAAAgAAAAAAAAAoMNiAQAAAACAzncBAAAAAAgAAAAAAAAAwMZiAQAAAACIzncBAAAAAAgAAAAAAAAAUMViAQAAAACYzncBAAAAAAgAAAAAAAAAkHJjAQAAAACgzncBAAAAAAgAAAAAAAAAoORhAQAAAACozncBAAAAAAgAAAAAAAAAAMZiAQAAAACwzncBAAAAAAgAAAAAAAAAsMhiAQAAAAC4zncBAAAAAAgAAAAAAAAAYMdiAQAAAADQzncBAAAAAAgAAAAAAAAA8MJiAQAAAADYzncBAAAAAAgAAAAAAAAA4MpiAQAAAADwzncBAAAAAAgAAAAAAAAAkMtiAQAAAAD4zncBAAAAAAgAAAAAAAAAAMxiAQAAAAAIz3cBAAAAAAgAAAAAAAAAoHJjAQAAAAAQz3cBAAAAAAgAAAAAAAAAsHJjAQAAAAAYz3cBAAAAAAgAAAAAAAAA8LhiAQAAAAAgz3cBAAAAAAgAAAAAAAAA8OphAQAAAAAoz3cBAAAAAAgAAAAAAAAAsMxiAQAAAAAwz3cBAAAAAAgAAAAAAAAAsNJiAQAAAABIz3cBAAAAAAgAAAAAAAAA4MxiAQAAAABQz3cBAAAAAAgAAAAAAAAA4M9iAQAAAABYz3cBAAAAAAgAAAAAAAAAkM5iAQAAAABoz3cBAAAAAAgAAAAAAAAAwHJjAQAAAABwz3cBAAAAAAgAAAAAAAAAoORhAQAAAAB4z3cBAAAAAAgAAAAAAAAAAM9iAQAAAACAz3cBAAAAAAgAAAAAAAAAwNFiAQAAAACIz3cBAAAAAAgAAAAAAAAAcNBiAQAAAACgz3cBAAAAAAgAAAAAAAAAcMxiAQAAAACoz3cBAAAAAAgAAAAAAAAAgNNiAQAAAADAz3cBAAAAAAgAAAAAAAAAcNViAQAAAADIz3cBAAAAAAgAAAAAAAAAANZiAQAAAADYz3cBAAAAAAgAAAAAAAAA0HJjAQAAAADgz3cBAAAAAAgAAAAAAAAA4HJjAQAAAADoz3cBAAAAAAgAAAAAAAAA8LhiAQAAAADwz3cBAAAAAAgAAAAAAAAA8OphAQAAAAD4z3cBAAAAAAgAAAAAAAAAYNZiAQAAAAAA0HcBAAAAAAgAAAAAAAAAMN9iAQAAAAAY0HcBAAAAAAgAAAAAAAAAwNZiAQAAAAAg0HcBAAAAAAgAAAAAAAAAcNtiAQAAAAAo0HcBAAAAAAgAAAAAAAAAMNhiAQAAAAA40HcBAAAAAAgAAAAAAAAA8HJjAQAAAABA0HcBAAAAAAgAAAAAAAAAoORhAQAAAABI0HcBAAAAAAgAAAAAAAAAoNhiAQAAAABQ0HcBAAAAAAgAAAAAAAAAAN5iAQAAAABY0HcBAAAAAAgAAAAAAAAAANxiAQAAAABw0HcBAAAAAAgAAAAAAAAAINZiAQAAAAB40HcBAAAAAAgAAAAAAAAA8N9iAQAAAACQ0HcBAAAAAAgAAAAAAAAAsHRjAQAAAACY0HcBAAAAAAgAAAAAAAAAIHVjAQAAAACg0HcBAAAAAAgAAAAAAAAAoHVjAQAAAACo0HcBAAAAAAgAAAAAAAAAwHVjAQAAAACw0HcBAAAAAAgAAAAAAAAAAHZjAQAAAAC40HcBAAAAAAgAAAAAAAAAEHZjAQAAAADA0HcBAAAAAAgAAAAAAAAA8OphAQAAAADI0HcBAAAAAAgAAAAAAAAAIHZjAQAAAADQ0HcBAAAAAAgAAAAAAAAAgHZjAQAAAADg0HcBAAAAAAgAAAAAAAAAkHZjAQAAAADo0HcBAAAAAAgAAAAAAAAAoHZjAQAAAADw0HcBAAAAAAgAAAAAAAAA8HdjAQAAAAD40HcBAAAAAAgAAAAAAAAAkHhjAQAAAAAI0XcBAAAAAAgAAAAAAAAA4HhjAQAAAAAQ0XcBAAAAAAgAAAAAAAAAoORhAQAAAAAY0XcBAAAAAAgAAAAAAAAAcHljAQAAAAAo0XcBAAAAAAgAAAAAAAAAsOBiAQAAAAA40XcBAAAAAAgAAAAAAAAAwHljAQAAAABI0XcBAAAAAAgAAAAAAAAAkOBiAQAAAABQ0XcBAAAAAAgAAAAAAAAA0HljAQAAAABY0XcBAAAAAAgAAAAAAAAA4HljAQAAAABw0XcBAAAAAAgAAAAAAAAAcOJiAQAAAAB40XcBAAAAAAgAAAAAAAAAYONiAQAAAACI0XcBAAAAAAgAAAAAAAAAAHNjAQAAAACQ0XcBAAAAAAgAAAAAAAAAEHNjAQAAAACY0XcBAAAAAAgAAAAAAAAA8LhiAQAAAACg0XcBAAAAAAgAAAAAAAAA8OphAQAAAACo0XcBAAAAAAgAAAAAAAAAwONiAQAAAACw0XcBAAAAAAgAAAAAAAAAsPBiAQAAAADI0XcBAAAAAAgAAAAAAAAAkORiAQAAAADQ0XcBAAAAAAgAAAAAAAAA0OxiAQAAAADY0XcBAAAAAAgAAAAAAAAAoOdiAQAAAADo0XcBAAAAAAgAAAAAAAAAIHNjAQAAAADw0XcBAAAAAAgAAAAAAAAAoORhAQAAAAD40XcBAAAAAAgAAAAAAAAAAOtiAQAAAAAA0ncBAAAAAAgAAAAAAAAAAPBiAQAAAAAI0ncBAAAAAAgAAAAAAAAAsO5iAQAAAAAg0ncBAAAAAAgAAAAAAAAAgONiAQAAAAAo0ncBAAAAAAgAAAAAAAAAoPFiAQAAAABA0ncBAAAAAAgAAAAAAAAAcPNiAQAAAABI0ncBAAAAAAgAAAAAAAAA4PNiAQAAAABY0ncBAAAAAAgAAAAAAAAAMHNjAQAAAABg0ncBAAAAAAgAAAAAAAAAQHNjAQAAAABo0ncBAAAAAAgAAAAAAAAA8LhiAQAAAABw0ncBAAAAAAgAAAAAAAAA8OphAQAAAAB40ncBAAAAAAgAAAAAAAAAkPRiAQAAAACA0ncBAAAAAAgAAAAAAAAA8P5iAQAAAACY0ncBAAAAAAgAAAAAAAAAUPViAQAAAACg0ncBAAAAAAgAAAAAAAAAYPtiAQAAAACo0ncBAAAAAAgAAAAAAAAAcPhiAQAAAAC40ncBAAAAAAgAAAAAAAAAUHNjAQAAAADA0ncBAAAAAAgAAAAAAAAAoORhAQAAAADI0ncBAAAAAAgAAAAAAAAAwPliAQAAAADQ0ncBAAAAAAgAAAAAAAAAQP5iAQAAAADY0ncBAAAAAAgAAAAAAAAAcPxiAQAAAADw0ncBAAAAAAgAAAAAAAAAUPRiAQAAAAD40ncBAAAAAAgAAAAAAAAA4P9iAQAAAAAQ03cBAAAAAAgAAAAAAAAAUAFjAQAAAAAY03cBAAAAAAgAAAAAAAAA4AFjAQAAAAAo03cBAAAAAAgAAAAAAAAAYHNjAQAAAAAw03cBAAAAAAgAAAAAAAAAcHNjAQAAAAA403cBAAAAAAgAAAAAAAAA8LhiAQAAAABA03cBAAAAAAgAAAAAAAAA8OphAQAAAABI03cBAAAAAAgAAAAAAAAAQAJjAQAAAABQ03cBAAAAAAgAAAAAAAAAwAljAQAAAABo03cBAAAAAAgAAAAAAAAAoAJjAQAAAABw03cBAAAAAAgAAAAAAAAAoAVjAQAAAAB403cBAAAAAAgAAAAAAAAAYARjAQAAAACI03cBAAAAAAgAAAAAAAAAgHNjAQAAAACQ03cBAAAAAAgAAAAAAAAAoORhAQAAAACY03cBAAAAAAgAAAAAAAAA0ARjAQAAAACg03cBAAAAAAgAAAAAAAAAkAhjAQAAAACo03cBAAAAAAgAAAAAAAAAMAZjAQAAAADA03cBAAAAAAgAAAAAAAAAAAJjAQAAAADI03cBAAAAAAgAAAAAAAAAgApjAQAAAADg03cBAAAAAAgAAAAAAAAAAAxjAQAAAADo03cBAAAAAAgAAAAAAAAAcAxjAQAAAAD403cBAAAAAAgAAAAAAAAAkHNjAQAAAAAA1HcBAAAAAAgAAAAAAAAAoHNjAQAAAAAI1HcBAAAAAAgAAAAAAAAA8LhiAQAAAAAQ1HcBAAAAAAgAAAAAAAAA8OphAQAAAAAY1HcBAAAAAAgAAAAAAAAAIA1jAQAAAAAg1HcBAAAAAAgAAAAAAAAAYBRjAQAAAAA41HcBAAAAAAgAAAAAAAAAwA1jAQAAAABA1HcBAAAAAAgAAAAAAAAAcBJjAQAAAABI1HcBAAAAAAgAAAAAAAAAABBjAQAAAABY1HcBAAAAAAgAAAAAAAAAsHNjAQAAAABg1HcBAAAAAAgAAAAAAAAAoORhAQAAAABo1HcBAAAAAAgAAAAAAAAAMBFjAQAAAABw1HcBAAAAAAgAAAAAAAAAsBNjAQAAAAB41HcBAAAAAAgAAAAAAAAAQBNjAQAAAACQ1HcBAAAAAAgAAAAAAAAA4AxjAQAAAACY1HcBAAAAAAgAAAAAAAAAQBVjAQAAAACw1HcBAAAAAAgAAAAAAAAAcBZjAQAAAAC41HcBAAAAAAgAAAAAAAAA4BZjAQAAAADI1HcBAAAAAAgAAAAAAAAAwHNjAQAAAADQ1HcBAAAAAAgAAAAAAAAA0HNjAQAAAADY1HcBAAAAAAgAAAAAAAAA8LhiAQAAAADg1HcBAAAAAAgAAAAAAAAA8OphAQAAAADo1HcBAAAAAAgAAAAAAAAAkBdjAQAAAADw1HcBAAAAAAgAAAAAAAAAoB9jAQAAAAAI1XcBAAAAAAgAAAAAAAAAYBhjAQAAAAAQ1XcBAAAAAAgAAAAAAAAA0BtjAQAAAAAY1XcBAAAAAAgAAAAAAAAAYBpjAQAAAAAo1XcBAAAAAAgAAAAAAAAA4HNjAQAAAAAw1XcBAAAAAAgAAAAAAAAAoORhAQAAAAA41XcBAAAAAAgAAAAAAAAAEBtjAQAAAABA1XcBAAAAAAgAAAAAAAAAcB1jAQAAAABI1XcBAAAAAAgAAAAAAAAAYBxjAQAAAABg1XcBAAAAAAgAAAAAAAAAUBdjAQAAAABo1XcBAAAAAAgAAAAAAAAAcCBjAQAAAACA1XcBAAAAAAgAAAAAAAAAgCRjAQAAAACI1XcBAAAAAAgAAAAAAAAAoCVjAQAAAACY1XcBAAAAAAgAAAAAAAAA8HNjAQAAAACg1XcBAAAAAAgAAAAAAAAAAHRjAQAAAACo1XcBAAAAAAgAAAAAAAAA8LhiAQAAAACw1XcBAAAAAAgAAAAAAAAA8OphAQAAAAC41XcBAAAAAAgAAAAAAAAAACZjAQAAAADA1XcBAAAAAAgAAAAAAAAAgDljAQAAAADY1XcBAAAAAAgAAAAAAAAAEChjAQAAAADg1XcBAAAAAAgAAAAAAAAAoDJjAQAAAADo1XcBAAAAAAgAAAAAAAAAEC1jAQAAAAD41XcBAAAAAAgAAAAAAAAAEHRjAQAAAAAA1ncBAAAAAAgAAAAAAAAAoORhAQAAAAAI1ncBAAAAAAgAAAAAAAAA8C5jAQAAAAAQ1ncBAAAAAAgAAAAAAAAA0DhjAQAAAAAY1ncBAAAAAAgAAAAAAAAAADVjAQAAAAAw1ncBAAAAAAgAAAAAAAAAwCVjAQAAAAA41ncBAAAAAAgAAAAAAAAA8DpjAQAAAABQ1ncBAAAAAAgAAAAAAAAAQDxjAQAAAABY1ncBAAAAAAgAAAAAAAAAAD1jAQAAAABo1ncBAAAAAAgAAAAAAAAAIHRjAQAAAABw1ncBAAAAAAgAAAAAAAAAMHRjAQAAAAB41ncBAAAAAAgAAAAAAAAA8LhiAQAAAACA1ncBAAAAAAgAAAAAAAAA8OphAQAAAACI1ncBAAAAAAgAAAAAAAAAYD1jAQAAAACQ1ncBAAAAAAgAAAAAAAAAwERjAQAAAACo1ncBAAAAAAgAAAAAAAAA0D1jAQAAAACw1ncBAAAAAAgAAAAAAAAAYEFjAQAAAAC41ncBAAAAAAgAAAAAAAAAoD9jAQAAAADI1ncBAAAAAAgAAAAAAAAAQHRjAQAAAADQ1ncBAAAAAAgAAAAAAAAAoORhAQAAAADY1ncBAAAAAAgAAAAAAAAAgEBjAQAAAADg1ncBAAAAAAgAAAAAAAAAUENjAQAAAADo1ncBAAAAAAgAAAAAAAAAAEJjAQAAAAAA13cBAAAAAAgAAAAAAAAAID1jAQAAAAAI13cBAAAAAAgAAAAAAAAAgEVjAQAAAAAg13cBAAAAAAgAAAAAAAAAoEdjAQAAAAAo13cBAAAAAAgAAAAAAAAAgEhjAQAAAAA413cBAAAAAAgAAAAAAAAAUHRjAQAAAABA13cBAAAAAAgAAAAAAAAAYHRjAQAAAABI13cBAAAAAAgAAAAAAAAA8LhiAQAAAABQ13cBAAAAAAgAAAAAAAAA8OphAQAAAABY13cBAAAAAAgAAAAAAAAA4EhjAQAAAABg13cBAAAAAAgAAAAAAAAAoFRjAQAAAAB413cBAAAAAAgAAAAAAAAAEEpjAQAAAACA13cBAAAAAAgAAAAAAAAA0FBjAQAAAACI13cBAAAAAAgAAAAAAAAAkE1jAQAAAACY13cBAAAAAAgAAAAAAAAAcHRjAQAAAACg13cBAAAAAAgAAAAAAAAAoORhAQAAAACo13cBAAAAAAgAAAAAAAAAAE9jAQAAAACw13cBAAAAAAgAAAAAAAAA8FNjAQAAAAC413cBAAAAAAgAAAAAAAAAAFJjAQAAAADQ13cBAAAAAAgAAAAAAAAAoEhjAQAAAADY13cBAAAAAAgAAAAAAAAAsFVjAQAAAADw13cBAAAAAAgAAAAAAAAAMFdjAQAAAAD413cBAAAAAAgAAAAAAAAA0FdjAQAAAAAI2HcBAAAAAAgAAAAAAAAAgHRjAQAAAAAQ2HcBAAAAAAgAAAAAAAAAkHRjAQAAAAAY2HcBAAAAAAgAAAAAAAAA8LhiAQAAAAAg2HcBAAAAAAgAAAAAAAAA8OphAQAAAAAo2HcBAAAAAAgAAAAAAAAAMFhjAQAAAAAw2HcBAAAAAAgAAAAAAAAAUGNjAQAAAABI2HcBAAAAAAgAAAAAAAAAIFljAQAAAABQ2HcBAAAAAAgAAAAAAAAAYF5jAQAAAABY2HcBAAAAAAgAAAAAAAAA8FtjAQAAAABo2HcBAAAAAAgAAAAAAAAAoHRjAQAAAABw2HcBAAAAAAgAAAAAAAAAoORhAQAAAAB42HcBAAAAAAgAAAAAAAAAAF1jAQAAAACA2HcBAAAAAAgAAAAAAAAAwGBjAQAAAACI2HcBAAAAAAgAAAAAAAAAUF9jAQAAAACg2HcBAAAAAAgAAAAAAAAA8FdjAQAAAACo2HcBAAAAAAgAAAAAAAAAUGRjAQAAAADA2HcBAAAAAAgAAAAAAAAAYG1jAQAAAADI2HcBAAAAAAgAAAAAAAAA8HljAQAAAADQ2HcBAAAAAAgAAAAAAAAAYHpjAQAAAADY2HcBAAAAAAgAAAAAAAAA4HpjAQAAAADg2HcBAAAAAAgAAAAAAAAAAHxjAQAAAADo2HcBAAAAAAgAAAAAAAAAgHxjAQAAAADw2HcBAAAAAAgAAAAAAAAAkHxjAQAAAAD42HcBAAAAAAgAAAAAAAAAIH1jAQAAAAAA2XcBAAAAAAgAAAAAAAAAIG1jAQAAAAAI2XcBAAAAAAgAAAAAAAAAYHBjAQAAAAAQ2XcBAAAAAAgAAAAAAAAAQH1jAQAAAAAY2XcBAAAAAAgAAAAAAAAAwG1jAQAAAAAg2XcBAAAAAAgAAAAAAAAAYH1jAQAAAAAo2XcBAAAAAAgAAAAAAAAAgH5jAQAAAAAw2XcBAAAAAAgAAAAAAAAAEIFjAQAAAAA42XcBAAAAAAgAAAAAAAAAsIJjAQAAAABA2XcBAAAAAAgAAAAAAAAA4IJjAQAAAABI2XcBAAAAAAgAAAAAAAAA8IJjAQAAAABQ2XcBAAAAAAgAAAAAAAAAoINjAQAAAABY2XcBAAAAAAgAAAAAAAAA0INjAQAAAABg2XcBAAAAAAgAAAAAAAAA4INjAQAAAABo2XcBAAAAAAgAAAAAAAAAEIRjAQAAAACA2XcBAAAAAAgAAAAAAAAAsHRjAQAAAACI2XcBAAAAAAgAAAAAAAAAIJxjAQAAAACQ2XcBAAAAAAgAAAAAAAAAoHVjAQAAAACY2XcBAAAAAAgAAAAAAAAAwHVjAQAAAACg2XcBAAAAAAgAAAAAAAAAAHZjAQAAAACo2XcBAAAAAAgAAAAAAAAAEHZjAQAAAACw2XcBAAAAAAgAAAAAAAAA8OphAQAAAAC42XcBAAAAAAgAAAAAAAAAIHZjAQAAAADA2XcBAAAAAAgAAAAAAAAAgHZjAQAAAADQ2XcBAAAAAAgAAAAAAAAAkHZjAQAAAADY2XcBAAAAAAgAAAAAAAAAoHZjAQAAAADg2XcBAAAAAAgAAAAAAAAA8HdjAQAAAADo2XcBAAAAAAgAAAAAAAAAkHhjAQAAAAD42XcBAAAAAAgAAAAAAAAA4HhjAQAAAAAA2ncBAAAAAAgAAAAAAAAAoORhAQAAAAAI2ncBAAAAAAgAAAAAAAAAcHljAQAAAAAo2ncBAAAAAAgAAAAAAAAAwHljAQAAAABA2ncBAAAAAAgAAAAAAAAA0HljAQAAAABI2ncBAAAAAAgAAAAAAAAA4HljAQAAAABg2ncBAAAAAAgAAAAAAAAAMJxjAQAAAABo2ncBAAAAAAgAAAAAAAAAsJxjAQAAAABw2ncBAAAAAAgAAAAAAAAAoHVjAQAAAAB42ncBAAAAAAgAAAAAAAAAwHVjAQAAAACA2ncBAAAAAAgAAAAAAAAAAHZjAQAAAACI2ncBAAAAAAgAAAAAAAAAEHZjAQAAAACQ2ncBAAAAAAgAAAAAAAAA8OphAQAAAACY2ncBAAAAAAgAAAAAAAAAIHZjAQAAAACg2ncBAAAAAAgAAAAAAAAAgHZjAQAAAACw2ncBAAAAAAgAAAAAAAAAkHZjAQAAAAC42ncBAAAAAAgAAAAAAAAAoHZjAQAAAADA2ncBAAAAAAgAAAAAAAAA8HdjAQAAAADI2ncBAAAAAAgAAAAAAAAAkHhjAQAAAADY2ncBAAAAAAgAAAAAAAAA4HhjAQAAAADg2ncBAAAAAAgAAAAAAAAAoORhAQAAAADo2ncBAAAAAAgAAAAAAAAAcHljAQAAAAAg23cBAAAAAAgAAAAAAAAA0HljAQAAAAAo23cBAAAAAAgAAAAAAAAA4HljAQAAAAAw23cBAAAAAAgAAAAAAAAA8GJ4AQAAAAA423cBAAAAAAgAAAAAAAAAGGN4AQAAAABA23cBAAAAAAgAAAAAAAAAMGN4AQAAAABI23cBAAAAAAgAAAAAAAAASGN4AQAAAABQ23cBAAAAAAgAAAAAAAAAYGN4AQAAAABg23cBAAAAAAgAAAAAAAAA8HZ4AQAAAABo23cBAAAAAAgAAAAAAAAAGHd4AQAAAABw23cBAAAAAAgAAAAAAAAAUHd4AQAAAAB423cBAAAAAAgAAAAAAAAAcHd4AQAAAACA23cBAAAAAAgAAAAAAAAAkHd4AQAAAACI23cBAAAAAAgAAAAAAAAA4Hd4AQAAAACQ23cBAAAAAAgAAAAAAAAAYAlbAQAAAACY23cBAAAAAAgAAAAAAAAAEZrGAAAAAACo23cBAAAAAAgAAAAAAAAA6Hd4AQAAAACw23cBAAAAAAgAAAAAAAAAMNt3AQAAAAC423cBAAAAAAgAAAAAAAAAEAxbAQAAAADI23cBAAAAAAgAAAAAAAAAIAxbAQAAAADQ23cBAAAAAAgAAAAAAAAAYNt3AQAAAADY23cBAAAAAAgAAAAAAAAAwAhbAQAAAADg23cBAAAAAAgAAAAAAAAA8Hd4AQAAAAAQ3HcBAAAAAAgAAAAAAAAA8MVjAQAAAAAY3HcBAAAAAAgAAAAAAAAAgMZjAQAAAAAo3HcBAAAAAAgAAAAAAAAA8AJkAQAAAAAw3HcBAAAAAAgAAAAAAAAAAANkAQAAAAA43HcBAAAAAAgAAAAAAAAA8LhiAQAAAABA3HcBAAAAAAgAAAAAAAAA8OphAQAAAABI3HcBAAAAAAgAAAAAAAAA4MZjAQAAAABQ3HcBAAAAAAgAAAAAAAAAkM1jAQAAAABo3HcBAAAAAAgAAAAAAAAAMMdjAQAAAABw3HcBAAAAAAgAAAAAAAAAoMpjAQAAAAB43HcBAAAAAAgAAAAAAAAAEMljAQAAAACI3HcBAAAAAAgAAAAAAAAAEANkAQAAAACQ3HcBAAAAAAgAAAAAAAAAoORhAQAAAACY3HcBAAAAAAgAAAAAAAAAwMljAQAAAACg3HcBAAAAAAgAAAAAAAAAQMxjAQAAAACo3HcBAAAAAAgAAAAAAAAAMMtjAQAAAADA3HcBAAAAAAgAAAAAAAAAoMZjAQAAAADI3HcBAAAAAAgAAAAAAAAAYM5jAQAAAADg3HcBAAAAAAgAAAAAAAAAYNBjAQAAAADo3HcBAAAAAAgAAAAAAAAAMNFjAQAAAAD43HcBAAAAAAgAAAAAAAAAIANkAQAAAAAA3XcBAAAAAAgAAAAAAAAAMANkAQAAAAAI3XcBAAAAAAgAAAAAAAAA8LhiAQAAAAAQ3XcBAAAAAAgAAAAAAAAA8OphAQAAAAAY3XcBAAAAAAgAAAAAAAAAkNFjAQAAAAAg3XcBAAAAAAgAAAAAAAAAsNpjAQAAAAA43XcBAAAAAAgAAAAAAAAAYNJjAQAAAABA3XcBAAAAAAgAAAAAAAAAoNZjAQAAAABI3XcBAAAAAAgAAAAAAAAAwNRjAQAAAABY3XcBAAAAAAgAAAAAAAAAQANkAQAAAABg3XcBAAAAAAgAAAAAAAAAoORhAQAAAABo3XcBAAAAAAgAAAAAAAAAUNVjAQAAAABw3XcBAAAAAAgAAAAAAAAAANpjAQAAAAB43XcBAAAAAAgAAAAAAAAAANhjAQAAAACQ3XcBAAAAAAgAAAAAAAAAUNFjAQAAAACY3XcBAAAAAAgAAAAAAAAAsNtjAQAAAACw3XcBAAAAAAgAAAAAAAAAwNxjAQAAAAC43XcBAAAAAAgAAAAAAAAAUN1jAQAAAADI3XcBAAAAAAgAAAAAAAAAUANkAQAAAADQ3XcBAAAAAAgAAAAAAAAAYANkAQAAAADY3XcBAAAAAAgAAAAAAAAA8LhiAQAAAADg3XcBAAAAAAgAAAAAAAAA8OphAQAAAADo3XcBAAAAAAgAAAAAAAAAsN1jAQAAAADw3XcBAAAAAAgAAAAAAAAAkONjAQAAAAAI3ncBAAAAAAgAAAAAAAAAAN5jAQAAAAAQ3ncBAAAAAAgAAAAAAAAA4OBjAQAAAAAY3ncBAAAAAAgAAAAAAAAAoN9jAQAAAAAo3ncBAAAAAAgAAAAAAAAAcANkAQAAAAAw3ncBAAAAAAgAAAAAAAAAoORhAQAAAAA43ncBAAAAAAgAAAAAAAAAQOBjAQAAAABA3ncBAAAAAAgAAAAAAAAAYOJjAQAAAABI3ncBAAAAAAgAAAAAAAAAUOFjAQAAAABg3ncBAAAAAAgAAAAAAAAAcN1jAQAAAABo3ncBAAAAAAgAAAAAAAAAUORjAQAAAACA3ncBAAAAAAgAAAAAAAAAYOVjAQAAAACI3ncBAAAAAAgAAAAAAAAA8OVjAQAAAACY3ncBAAAAAAgAAAAAAAAAgANkAQAAAACg3ncBAAAAAAgAAAAAAAAAkANkAQAAAACo3ncBAAAAAAgAAAAAAAAA8LhiAQAAAACw3ncBAAAAAAgAAAAAAAAA8OphAQAAAAC43ncBAAAAAAgAAAAAAAAA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AAAAAAgAAAAAAAAA4IlkAQAAAABA6ncBAAAAAAgAAAAAAAAAQPVkAQAAAABI6ncBAAAAAAgAAAAAAAAAUPVkAQAAAABQ6ncBAAAAAAgAAAAAAAAA8LhiAQAAAABY6ncBAAAAAAgAAAAAAAAA8OphAQAAAABg6ncBAAAAAAgAAAAAAAAAQIpkAQAAAABo6ncBAAAAAAgAAAAAAAAAgJFkAQAAAACA6ncBAAAAAAgAAAAAAAAAsIpkAQAAAACI6ncBAAAAAAgAAAAAAAAAQI5kAQAAAACQ6ncBAAAAAAgAAAAAAAAAoIxkAQAAAACg6ncBAAAAAAgAAAAAAAAAYPVkAQAAAACo6ncBAAAAAAgAAAAAAAAAoORhAQAAAACw6ncBAAAAAAgAAAAAAAAAUI1kAQAAAAC46ncBAAAAAAgAAAAAAAAAMJBkAQAAAADA6ncBAAAAAAgAAAAAAAAA4I5kAQAAAADY6ncBAAAAAAgAAAAAAAAAAIpkAQAAAADg6ncBAAAAAAgAAAAAAAAAQJJkAQAAAAD46ncBAAAAAAgAAAAAAAAAEJRkAQAAAAAA63cBAAAAAAgAAAAAAAAAgJRkAQAAAAAQ63cBAAAAAAgAAAAAAAAAcPVkAQAAAAAY63cBAAAAAAgAAAAAAAAAgPVkAQAAAAAg63cBAAAAAAgAAAAAAAAA8LhiAQAAAAAo63cBAAAAAAgAAAAAAAAA8OphAQAAAAAw63cBAAAAAAgAAAAAAAAAMJVkAQAAAAA463cBAAAAAAgAAAAAAAAAEJ9kAQAAAABQ63cBAAAAAAgAAAAAAAAA8JVkAQAAAABY63cBAAAAAAgAAAAAAAAAgJtkAQAAAABg63cBAAAAAAgAAAAAAAAA8JhkAQAAAABw63cBAAAAAAgAAAAAAAAAkPVkAQAAAAB463cBAAAAAAgAAAAAAAAAoORhAQAAAACA63cBAAAAAAgAAAAAAAAAEJpkAQAAAACI63cBAAAAAAgAAAAAAAAAYJ5kAQAAAACQ63cBAAAAAAgAAAAAAAAAkJxkAQAAAACo63cBAAAAAAgAAAAAAAAA8JRkAQAAAACw63cBAAAAAAgAAAAAAAAAAKBkAQAAAADI63cBAAAAAAgAAAAAAAAAUKJkAQAAAADQ63cBAAAAAAgAAAAAAAAAMKNkAQAAAADg63cBAAAAAAgAAAAAAAAA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YC9mAQAAAADQ8ncBAAAAAAgAAAAAAAAAcC9mAQAAAADY8ncBAAAAAAgAAAAAAAAAgC9mAQAAAADg8ncBAAAAAAgAAAAAAAAAwKZlAQAAAADo8ncBAAAAAAgAAAAAAAAA4KtlAQAAAAD48ncBAAAAAAgAAAAAAAAAwK1lAQAAAAAA83cBAAAAAAgAAAAAAAAAUK5lAQAAAAAI83cBAAAAAAgAAAAAAAAAkC9mAQAAAAAQ83cBAAAAAAgAAAAAAAAAoC9mAQAAAAAY83cBAAAAAAgAAAAAAAAAsC9mAQAAAAAg83cBAAAAAAgAAAAAAAAAwC9mAQAAAAAo83cBAAAAAAgAAAAAAAAA0C9mAQAAAAAw83cBAAAAAAgAAAAAAAAA4C9mAQAAAAA483cBAAAAAAgAAAAAAAAA8C9mAQAAAABY83cBAAAAAAgAAAAAAAAA8K5lAQAAAABg83cBAAAAAAgAAAAAAAAAIK9lAQAAAABo83cBAAAAAAgAAAAAAAAAYK9lAQAAAABw83cBAAAAAAgAAAAAAAAA8DNmAQAAAAB483cBAAAAAAgAAAAAAAAAADRmAQAAAACA83cBAAAAAAgAAAAAAAAA8LNlAQAAAACI83cBAAAAAAgAAAAAAAAAEDRmAQAAAACQ83cBAAAAAAgAAAAAAAAAIDRmAQAAAACY83cBAAAAAAgAAAAAAAAAMDRmAQAAAACg83cBAAAAAAgAAAAAAAAAILhlAQAAAACo83cBAAAAAAgAAAAAAAAAQDRmAQAAAACw83cBAAAAAAgAAAAAAAAAUDRmAQAAAAC483cBAAAAAAgAAAAAAAAAYDRmAQAAAADA83cBAAAAAAgAAAAAAAAAcDRmAQAAAADI83cBAAAAAAgAAAAAAAAAgDRmAQAAAADQ83cBAAAAAAgAAAAAAAAAkDRmAQAAAADY83cBAAAAAAgAAAAAAAAAoDRmAQAAAADg83cBAAAAAAgAAAAAAAAAsDRmAQAAAADo83cBAAAAAAgAAAAAAAAAwDRmAQAAAADw83cBAAAAAAgAAAAAAAAA0DRmAQAAAAD483cBAAAAAAgAAAAAAAAA4DRmAQAAAAAA9HcBAAAAAAgAAAAAAAAA8DRmAQAAAAAI9HcBAAAAAAgAAAAAAAAAADVmAQAAAAAQ9HcBAAAAAAgAAAAAAAAAEDVmAQAAAAAY9HcBAAAAAAgAAAAAAAAAIDVmAQAAAAAg9HcBAAAAAAgAAAAAAAAAMDVmAQAAAAAo9HcBAAAAAAgAAAAAAAAAQDVmAQAAAAAw9HcBAAAAAAgAAAAAAAAAUDVmAQAAAAA49HcBAAAAAAgAAAAAAAAAYLplAQAAAABA9HcBAAAAAAgAAAAAAAAAMLxlAQAAAABI9HcBAAAAAAgAAAAAAAAAgL1lAQAAAABQ9HcBAAAAAAgAAAAAAAAAEL9lAQAAAABg9HcBAAAAAAgAAAAAAAAAYDVmAQAAAABo9HcBAAAAAAgAAAAAAAAAcMBlAQAAAABw9HcBAAAAAAgAAAAAAAAAIMJlAQAAAAB49HcBAAAAAAgAAAAAAAAA0MNlAQAAAACA9HcBAAAAAAgAAAAAAAAAcDVmAQAAAACI9HcBAAAAAAgAAAAAAAAAgDVmAQAAAACQ9HcBAAAAAAgAAAAAAAAAIMZlAQAAAACY9HcBAAAAAAgAAAAAAAAAkDVmAQAAAACg9HcBAAAAAAgAAAAAAAAAoDVmAQAAAACo9HcBAAAAAAgAAAAAAAAAsDVmAQAAAACw9HcBAAAAAAgAAAAAAAAAwDVmAQAAAADQ9HcBAAAAAAgAAAAAAAAAcMhlAQAAAADY9HcBAAAAAAgAAAAAAAAAkMhlAQAAAADg9HcBAAAAAAgAAAAAAAAA0DVmAQAAAAAA9XcBAAAAAAgAAAAAAAAAgMllAQAAAAAI9XcBAAAAAAgAAAAAAAAAoMllAQAAAAAQ9XcBAAAAAAgAAAAAAAAA0DVmAQAAAAAo9XcBAAAAAAgAAAAAAAAAMEtmAQAAAAAw9XcBAAAAAAgAAAAAAAAAEP5lAQAAAAA49XcBAAAAAAgAAAAAAAAAIP5lAQAAAABA9XcBAAAAAAgAAAAAAAAAUP5lAQAAAABI9XcBAAAAAAgAAAAAAAAAcP5lAQAAAABQ9XcBAAAAAAgAAAAAAAAAgP5lAQAAAABY9XcBAAAAAAgAAAAAAAAAkP5lAQAAAABw9XcBAAAAAAgAAAAAAAAAYBVmAQAAAAB49XcBAAAAAAgAAAAAAAAAoBVmAQAAAACA9XcBAAAAAAgAAAAAAAAA4BVmAQAAAACI9XcBAAAAAAgAAAAAAAAAkBZmAQAAAACQ9XcBAAAAAAgAAAAAAAAAkBdmAQAAAACY9XcBAAAAAAgAAAAAAAAAsBdmAQAAAACg9XcBAAAAAAgAAAAAAAAAwBdmAQAAAADQ9XcBAAAAAAgAAAAAAAAAQEtmAQAAAADY9XcBAAAAAAgAAAAAAAAAYEtmAQAAAADg9XcBAAAAAAgAAAAAAAAAkEtmAQAAAADw9XcBAAAAAAgAAAAAAAAAoEtmAQAAAAD49XcBAAAAAAgAAAAAAAAAJYRRAQAAAAAA9ncBAAAAAAgAAAAAAAAA5ewRAQAAAAAI9ncBAAAAAAgAAAAAAAAAtU8KAQAAAAAQ9ncBAAAAAAgAAAAAAAAA11YdAAAAAAAY9ncBAAAAAAgAAAAAAAAAS94YAAAAAAAg9ncBAAAAAAgAAAAAAAAAkp/GAAAAAAAo9ncBAAAAAAgAAAAAAAAAeFy7AAAAAAAw9ncBAAAAAAgAAAAAAAAA62gQAAAAAAA49ncBAAAAAAgAAAAAAAAAaskSAQAAAABA9ncBAAAAAAgAAAAAAAAAAe0RAQAAAABI9ncBAAAAAAgAAAAAAAAAN9rjAAAAAABQ9ncBAAAAAAgAAAAAAAAAA8cZAQAAAABY9ncBAAAAAAgAAAAAAAAA34gbAAAAAABg9ncBAAAAAAgAAAAAAAAAG+0RAQAAAABo9ncBAAAAAAgAAAAAAAAA7FYdAAAAAABw9ncBAAAAAAgAAAAAAAAAD65XAQAAAAB49ncBAAAAAAgAAAAAAAAA5oG7AAAAAACA9ncBAAAAAAgAAAAAAAAANK5XAQAAAACI9ncBAAAAAAgAAAAAAAAAmDDkAAAAAACQ9ncBAAAAAAgAAAAAAAAAhzsFAAAAAACY9ncBAAAAAAgAAAAAAAAAUYRRAQAAAACg9ncBAAAAAAgAAAAAAAAACW7kAAAAAACo9ncBAAAAAAgAAAAAAAAA8HYWAAAAAACw9ncBAAAAAAgAAAAAAAAAyg5WAQAAAAC49ncBAAAAAAgAAAAAAAAAQRAbAQAAAADA9ncBAAAAAAgAAAAAAAAA4WwqAQAAAADI9ncBAAAAAAgAAAAAAAAAUcUWAAAAAADQ9ncBAAAAAAgAAAAAAAAAKm7kAAAAAADY9ncBAAAAAAgAAAAAAAAA0mIKAQAAAADg9ncBAAAAAAgAAAAAAAAAn6P8AAAAAADo9ncBAAAAAAgAAAAAAAAA7ZAbAQAAAADw9ncBAAAAAAgAAAAAAAAAiSYZAAAAAAD49ncBAAAAAAgAAAAAAAAAL+0RAQAAAAAA93cBAAAAAAgAAAAAAAAAU65XAQAAAAAI93cBAAAAAAgAAAAAAAAAmzsFAAAAAAAQ93cBAAAAAAgAAAAAAAAAniYZAAAAAAAY93cBAAAAAAgAAAAAAAAA5kQFAAAAAAAg93cBAAAAAAgAAAAAAAAAQW7kAAAAAAAo93cBAAAAAAgAAAAAAAAAd8oPAAAAAAAw93cBAAAAAAgAAAAAAAAAIugPAAAAAAA493cBAAAAAAgAAAAAAAAAJccZAQAAAABA93cBAAAAAAgAAAAAAAAALGYKAQAAAABI93cBAAAAAAgAAAAAAAAAOGYKAQAAAABQ93cBAAAAAAgAAAAAAAAAhaLjAAAAAABY93cBAAAAAAgAAAAAAAAAC2kQAAAAAABg93cBAAAAAAgAAAAAAAAA55YdAAAAAABo93cBAAAAAAgAAAAAAAAAX65XAQAAAABw93cBAAAAAAgAAAAAAAAAPPURAQAAAAB493cBAAAAAAgAAAAAAAAAsp/GAAAAAACA93cBAAAAAAgAAAAAAAAAQNAOAQAAAACI93cBAAAAAAgAAAAAAAAAXSLHAAAAAACQ93cBAAAAAAgAAAAAAAAAJ6wTAQAAAACY93cBAAAAAAgAAAAAAAAAudIWAAAAAACg93cBAAAAAAgAAAAAAAAAnMgaAAAAAACo93cBAAAAAAgAAAAAAAAATW7kAAAAAACw93cBAAAAAAgAAAAAAAAA/2wqAQAAAAC493cBAAAAAAgAAAAAAAAACm0qAQAAAADA93cBAAAAAAgAAAAAAAAAS9AOAQAAAADI93cBAAAAAAgAAAAAAAAAMzvHAAAAAADQ93cBAAAAAAgAAAAAAAAADSQCAAAAAADY93cBAAAAAAgAAAAAAAAA3Q5WAQAAAADg93cBAAAAAAgAAAAAAAAASUMdAAAAAADo93cBAAAAAAgAAAAAAAAARvURAQAAAADw93cBAAAAAAgAAAAAAAAAy98bAAAAAAD493cBAAAAAAgAAAAAAAAAg6UbAQAAAAAA+HcBAAAAAAgAAAAAAAAA8pYdAAAAAAAI+HcBAAAAAAgAAAAAAAAA6kxRAQAAAAAQ+HcBAAAAAAgAAAAAAAAAVdAOAQAAAAAY+HcBAAAAAAgAAAAAAAAAqCYZAAAAAAAg+HcBAAAAAAgAAAAAAAAAPyj8AAAAAAAo+HcBAAAAAAgAAAAAAAAATc8bAQAAAAAw+HcBAAAAAAgAAAAAAAAALsoQAAAAAAA4+HcBAAAAAAgAAAAAAAAAXBYaAQAAAABA+HcBAAAAAAgAAAAAAAAAxvgOAQAAAABI+HcBAAAAAAgAAAAAAAAA/KK7AAAAAABQ+HcBAAAAAAgAAAAAAAAA3t8bAAAAAABY+HcBAAAAAAgAAAAAAAAAUNK7AAAAAABg+HcBAAAAAAgAAAAAAAAA0fAVAAAAAABo+HcBAAAAAAgAAAAAAAAAksrBAAAAAABw+HcBAAAAAAgAAAAAAAAAB5cdAAAAAAB4+HcBAAAAAAgAAAAAAAAANvQfAAAAAACA+HcBAAAAAAgAAAAAAAAA0BTGAAAAAACI+HcBAAAAAAgAAAAAAAAAmBYXAAAAAACQ+HcBAAAAAAgAAAAAAAAAhLBXAQAAAACY+HcBAAAAAAgAAAAAAAAA5RTGAAAAAACg+HcBAAAAAAgAAAAAAAAAzznEAAAAAACo+HcBAAAAAAgAAAAAAAAA5PAVAAAAAACw+HcBAAAAAAgAAAAAAAAAqqgKAQAAAAC4+HcBAAAAAAgAAAAAAAAAACfGAAAAAADA+HcBAAAAAAgAAAAAAAAAGpcdAAAAAADI+HcBAAAAAAgAAAAAAAAAFyQCAAAAAADQ+HcBAAAAAAgAAAAAAAAAxN8bAQAAAADY+HcBAAAAAAgAAAAAAAAAl5zhAAAAAADg+HcBAAAAAAgAAAAAAAAAWCgXAAAAAADo+HcBAAAAAAgAAAAAAAAAUCj8AAAAAADw+HcBAAAAAAgAAAAAAAAAKRJWAQAAAAD4+HcBAAAAAAgAAAAAAAAAH+ThAAAAAAAA+XcBAAAAAAgAAAAAAAAAVkMdAAAAAAAI+XcBAAAAAAgAAAAAAAAAPBJWAQAAAAAQ+XcBAAAAAAgAAAAAAAAAaUMdAAAAAAAY+XcBAAAAAAgAAAAAAAAAqe1RAQAAAAAg+XcBAAAAAAgAAAAAAAAApsgaAAAAAAAo+XcBAAAAAAgAAAAAAAAAbygXAAAAAAAw+XcBAAAAAAgAAAAAAAAAZtAOAQAAAAA4+XcBAAAAAAgAAAAAAAAAP8oQAAAAAABA+XcBAAAAAAgAAAAAAAAA3zBWAQAAAABI+XcBAAAAAAgAAAAAAAAA1/gOAQAAAABQ+XcBAAAAAAgAAAAAAAAAjVZRAQAAAABY+XcBAAAAAAgAAAAAAAAAL5cdAAAAAABg+XcBAAAAAAgAAAAAAAAAd9AOAQAAAABo+XcBAAAAAAgAAAAAAAAAkiUWAAAAAABw+XcBAAAAAAgAAAAAAAAAHXoYAAAAAAB4+XcBAAAAAAgAAAAAAAAAsFMaAAAAAACA+XcBAAAAAAgAAAAAAAAALugPAAAAAACI+XcBAAAAAAgAAAAAAAAAIoAIAQAAAACQ+XcBAAAAAAgAAAAAAAAAsaP8AAAAAACY+XcBAAAAAAgAAAAAAAAAf23fAAAAAACg+XcBAAAAAAgAAAAAAAAAkKLjAAAAAACo+XcBAAAAAAgAAAAAAAAAPjn8AAAAAACw+XcBAAAAAAgAAAAAAAAAe3XfAAAAAAC4+XcBAAAAAAgAAAAAAAAAUadSAQAAAADA+XcBAAAAAAgAAAAAAAAAu18PAQAAAADI+XcBAAAAAAgAAAAAAAAA4TXGAAAAAADQ+XcBAAAAAAgAAAAAAAAAwYsIAQAAAADY+XcBAAAAAAgAAAAAAAAAlbBXAQAAAADg+XcBAAAAAAgAAAAAAAAA4znEAAAAAADo+XcBAAAAAAgAAAAAAAAAlF/GAAAAAADw+XcBAAAAAAgAAAAAAAAAjo4SAQAAAAD4+XcBAAAAAAgAAAAAAAAAqqLjAAAAAAAA+ncBAAAAAAgAAAAAAAAAJK5VAQAAAAAI+ncBAAAAAAgAAAAAAAAASegPAAAAAAAQ+ncBAAAAAAgAAAAAAAAAy18PAQAAAAAY+ncBAAAAAAgAAAAAAAAAu8gaAAAAAAAg+ncBAAAAAAgAAAAAAAAAyaP8AAAAAAAo+ncBAAAAAAgAAAAAAAAAkKXjAAAAAAAw+ncBAAAAAAgAAAAAAAAA9TBWAQAAAAA4+ncBAAAAAAgAAAAAAAAAQe4PAAAAAABA+ncBAAAAAAgAAAAAAAAAvagKAQAAAABI+ncBAAAAAAgAAAAAAAAAMHoYAAAAAABQ+ncBAAAAAAgAAAAAAAAACDFWAQAAAABY+ncBAAAAAAgAAAAAAAAA7t8bAAAAAABg+ncBAAAAAAgAAAAAAAAAyqgKAQAAAABo+ncBAAAAAAgAAAAAAAAAn/EPAAAAAABw+ncBAAAAAAgAAAAAAAAAdOQbAAAAAAB4+ncBAAAAAAgAAAAAAAAA2z8CAAAAAACA+ncBAAAAAAgAAAAAAAAAKv4fAAAAAACI+ncBAAAAAAgAAAAAAAAAlNAOAQAAAACQ+ncBAAAAAAgAAAAAAAAAfUb8AAAAAACY+ncBAAAAAAgAAAAAAAAAzosIAQAAAACg+ncBAAAAAAgAAAAAAAAA/n4YAAAAAACo+ncBAAAAAAgAAAAAAAAAikb8AAAAAACw+ncBAAAAAAgAAAAAAAAAmY4SAQAAAAC4+ncBAAAAAAgAAAAAAAAAwFj8AAAAAADA+ncBAAAAAAgAAAAAAAAA3tMaAAAAAADI+ncBAAAAAAgAAAAAAAAA2qP8AAAAAADQ+ncBAAAAAAgAAAAAAAAAolZRAQAAAADY+ncBAAAAAAgAAAAAAAAAGmoKAQAAAADg+ncBAAAAAAgAAAAAAAAAONwOAQAAAADo+ncBAAAAAAgAAAAAAAAAFhMFAAAAAADw+ncBAAAAAAgAAAAAAAAAUKEIAQAAAAD4+ncBAAAAAAgAAAAAAAAAOf4fAAAAAAAA+3cBAAAAAAgAAAAAAAAA7znEAAAAAAAI+3cBAAAAAAgAAAAAAAAAL7/8AAAAAAAQ+3cBAAAAAAgAAAAAAAAA6tMaAAAAAAAY+3cBAAAAAAgAAAAAAAAA118PAQAAAAAg+3cBAAAAAAgAAAAAAAAAKq5VAQAAAAAo+3cBAAAAAAgAAAAAAAAA2d8bAQAAAAAw+3cBAAAAAAgAAAAAAAAAYAEbAQAAAAA4+3cBAAAAAAgAAAAAAAAAFzFWAQAAAABA+3cBAAAAAAgAAAAAAAAArW0RAQAAAABI+3cBAAAAAAgAAAAAAAAAh3XfAAAAAABQ+3cBAAAAAAgAAAAAAAAApo4SAQAAAABY+3cBAAAAAAgAAAAAAAAAmLlXAQAAAABg+3cBAAAAAAgAAAAAAAAAWTcWAAAAAABo+3cBAAAAAAgAAAAAAAAA0qgKAQAAAABw+3cBAAAAAAgAAAAAAAAABn8YAAAAAAB4+3cBAAAAAAgAAAAAAAAAEn8YAAAAAACA+3cBAAAAAAgAAAAAAAAADNkOAQAAAACI+3cBAAAAAAgAAAAAAAAAu20RAQAAAACQ+3cBAAAAAAgAAAAAAAAA4doKAQAAAACY+3cBAAAAAAgAAAAAAAAAZXUKAQAAAACg+3cBAAAAAAgAAAAAAAAA7NoKAQAAAACo+3cBAAAAAAgAAAAAAAAAZcsYAAAAAACw+3cBAAAAAAgAAAAAAAAAS+UbAQAAAAC4+3cBAAAAAAgAAAAAAAAAoMsdAAAAAADA+3cBAAAAAAgAAAAAAAAAHRwQAAAAAADI+3cBAAAAAAgAAAAAAAAAgOQbAAAAAADQ+3cBAAAAAAgAAAAAAAAAVOUbAQAAAADY+3cBAAAAAAgAAAAAAAAAfEMdAAAAAADg+3cBAAAAAAgAAAAAAAAASKrjAAAAAADo+3cBAAAAAAgAAAAAAAAAkZnfAAAAAADw+3cBAAAAAAgAAAAAAAAAJJ7jAAAAAAD4+3cBAAAAAAgAAAAAAAAAmDwgAAAAAAAA/HcBAAAAAAgAAAAAAAAA/NoKAQAAAAAI/HcBAAAAAAgAAAAAAAAAr1ZRAQAAAAAQ/HcBAAAAAAgAAAAAAAAAja3fAAAAAAAY/HcBAAAAAAgAAAAAAAAA+tMaAAAAAAAg/HcBAAAAAAgAAAAAAAAAu44SAQAAAAAo/HcBAAAAAAgAAAAAAAAAb6EIAQAAAAAw/HcBAAAAAAgAAAAAAAAANtsaAAAAAAA4/HcBAAAAAAgAAAAAAAAAxo4SAQAAAABA/HcBAAAAAAgAAAAAAAAAbAEbAQAAAABI/HcBAAAAAAgAAAAAAAAABtsKAQAAAABQ/HcBAAAAAAgAAAAAAAAAVKrjAAAAAABY/HcBAAAAAAgAAAAAAAAANNUVAAAAAABg/HcBAAAAAAgAAAAAAAAAFj8LAQAAAABo/HcBAAAAAAgAAAAAAAAALxwQAAAAAABw/HcBAAAAAAgAAAAAAAAAADrEAAAAAAB4/HcBAAAAAAgAAAAAAAAA2YAJAQAAAACA/HcBAAAAAAgAAAAAAAAAXeUbAQAAAACI/HcBAAAAAAgAAAAAAAAAma3fAAAAAACQ/HcBAAAAAAgAAAAAAAAAfNkVAAAAAACY/HcBAAAAAAgAAAAAAAAAMqwTAQAAAACg/HcBAAAAAAgAAAAAAAAAMc4dAAAAAACo/HcBAAAAAAgAAAAAAAAAY+UbAQAAAACw/HcBAAAAAAgAAAAAAAAAYs4YAAAAAAC4/HcBAAAAAAgAAAAAAAAAiDAFAAAAAADA/HcBAAAAAAgAAAAAAAAAjNkVAAAAAADI/HcBAAAAAAgAAAAAAAAATUkgAAAAAADQ/HcBAAAAAAgAAAAAAAAApBsUAQAAAADY/HcBAAAAAAgAAAAAAAAAC3T8AAAAAADg/HcBAAAAAAgAAAAAAAAAIj8LAQAAAADo/HcBAAAAAAgAAAAAAAAAcgEbAQAAAADw/HcBAAAAAAgAAAAAAAAAseNaAQAAAAD4/HcBAAAAAAgAAAAAAAAAPM4dAAAAAAAA/XcBAAAAAAgAAAAAAAAAetYdAAAAAAAI/XcBAAAAAAgAAAAAAAAAcs4YAAAAAAAQ/XcBAAAAAAgAAAAAAAAAOa5VAQAAAAAY/XcBAAAAAAgAAAAAAAAADDrEAAAAAAAg/XcBAAAAAAgAAAAAAAAAS+IRAQAAAAAo/XcBAAAAAAgAAAAAAAAA9EwgAAAAAAAw/XcBAAAAAAgAAAAAAAAAZjcWAAAAAAA4/XcBAAAAAAgAAAAAAAAAjWQaAAAAAABA/XcBAAAAAAgAAAAAAAAAsBsUAQAAAABI/XcBAAAAAAgAAAAAAAAAsj7EAAAAAABQ/XcBAAAAAAgAAAAAAAAAtggbAQAAAABY/XcBAAAAAAgAAAAAAAAAp9IYAAAAAABg/XcBAAAAAAgAAAAAAAAAE5USAQAAAABo/XcBAAAAAAgAAAAAAAAA9VC7AAAAAABw/XcBAAAAAAgAAAAAAAAAitYdAAAAAAB4/XcBAAAAAAgAAAAAAAAAWuIRAQAAAACA/XcBAAAAAAgAAAAAAAAAhU4dAAAAAACI/XcBAAAAAAgAAAAAAAAAfwbgAAAAAACQ/XcBAAAAAAgAAAAAAAAAFdkOAQAAAACY/XcBAAAAAAgAAAAAAAAAbZz8AAAAAACg/XcBAAAAAAgAAAAAAAAAH5USAQAAAACo/XcBAAAAAAgAAAAAAAAAaEcKAQAAAACw/XcBAAAAAAgAAAAAAAAAvRsUAQAAAAC4/XcBAAAAAAgAAAAAAAAAwONaAQAAAADA/XcBAAAAAAgAAAAAAAAAyRsUAQAAAADI/XcBAAAAAAgAAAAAAAAAdB4QAAAAAADQ/XcBAAAAAAgAAAAAAAAAcn4KAQAAAADY/XcBAAAAAAgAAAAAAAAAsGhRAQAAAADg/XcBAAAAAAgAAAAAAAAAMp7jAAAAAADo/XcBAAAAAAgAAAAAAAAAgGkaAAAAAADw/XcBAAAAAAgAAAAAAAAAppfGAAAAAAD4/XcBAAAAAAgAAAAAAAAAo0lWAQAAAAAA/ncBAAAAAAgAAAAAAAAAltYdAAAAAAAI/ncBAAAAAAgAAAAAAAAA9iEQAAAAAAAQ/ncBAAAAAAgAAAAAAAAAyAgbAQAAAAAY/ncBAAAAAAgAAAAAAAAAD0HEAAAAAAAg/ncBAAAAAAgAAAAAAAAADli7AAAAAAAo/ncBAAAAAAgAAAAAAAAAqJoCAQAAAAAw/ncBAAAAAAgAAAAAAAAAtZ78AAAAAAA4/ncBAAAAAAgAAAAAAAAAvy0cAAAAAABA/ncBAAAAAAgAAAAAAAAA0xsUAQAAAABI/ncBAAAAAAgAAAAAAAAAY6rjAAAAAABQ/ncBAAAAAAgAAAAAAAAARdsaAAAAAABY/ncBAAAAAAgAAAAAAAAAotYdAAAAAABg/ncBAAAAAAgAAAAAAAAAxbfEAAAAAABo/ncBAAAAAAgAAAAAAAAARdwOAQAAAABw/ncBAAAAAAgAAAAAAAAAM77jAAAAAAB4/ncBAAAAAAgAAAAAAAAAtnZRAQAAAACA/ncBAAAAAAgAAAAAAAAAe34KAQAAAACI/ncBAAAAAAgAAAAAAAAAzrfEAAAAAACQ/ncBAAAAAAgAAAAAAAAAeYBRAQAAAACY/ncBAAAAAAgAAAAAAAAA4RsUAQAAAACg/ncBAAAAAAgAAAAAAAAAcjcWAAAAAACo/ncBAAAAAAgAAAAAAAAAkU4dAAAAAACw/ncBAAAAAAgAAAAAAAAAGdYYAAAAAAC4/ncBAAAAAAgAAAAAAAAA1fVaAQAAAADA/ncBAAAAAAgAAAAAAAAAY8IaAAAAAADI/ncBAAAAAAgAAAAAAAAArLnEAAAAAADQ/ncBAAAAAAgAAAAAAAAAO57jAAAAAADY/ncBAAAAAAgAAAAAAAAAnzUcAAAAAADg/ncBAAAAAAgAAAAAAAAAGli7AAAAAADo/ncBAAAAAAgAAAAAAAAA0uEOAQAAAADw/ncBAAAAAAgAAAAAAAAAxp78AAAAAAD4/ncBAAAAAAgAAAAAAAAAm5HhAAAAAAAA/3cBAAAAAAgAAAAAAAAA0ukRAQAAAAAI/3cBAAAAAAgAAAAAAAAAMT8LAQAAAAAQ/3cBAAAAAAgAAAAAAAAA40ULAQAAAAAY/3cBAAAAAAgAAAAAAAAAOwIeAAAAAAAg/3cBAAAAAAgAAAAAAAAA70ULAQAAAAAo/3cBAAAAAAgAAAAAAAAASK5VAQAAAAAw/3cBAAAAAAgAAAAAAAAAipXhAAAAAAA4/3cBAAAAAAgAAAAAAAAASTUFAAAAAABA/3cBAAAAAAgAAAAAAAAAKdYYAAAAAABI/3cBAAAAAAgAAAAAAAAAO6sfAAAAAABQ/3cBAAAAAAgAAAAAAAAAI/taAQAAAABY/3cBAAAAAAgAAAAAAAAAfNfFAAAAAABg/3cBAAAAAAgAAAAAAAAA5eMOAQAAAABo/3cBAAAAAAgAAAAAAAAAf9vFAAAAAABw/3cBAAAAAAgAAAAAAAAA+0ULAQAAAAB4/3cBAAAAAAgAAAAAAAAAmZXhAAAAAACA/3cBAAAAAAgAAAAAAAAA9OMOAQAAAACI/3cBAAAAAAgAAAAAAAAAkC4QAAAAAACQ/3cBAAAAAAgAAAAAAAAAhTcWAAAAAACY/3cBAAAAAAgAAAAAAAAAyrEfAAAAAACg/3cBAAAAAAgAAAAAAAAAyPAfAAAAAACo/3cBAAAAAAgAAAAAAAAAjTgcAAAAAACw/3cBAAAAAAgAAAAAAAAATJ7jAAAAAAC4/3cBAAAAAAgAAAAAAAAAcsIaAAAAAADA/3cBAAAAAAgAAAAAAAAAoTcWAAAAAADI/3cBAAAAAAgAAAAAAAAAdODFAAAAAADQ/3cBAAAAAAgAAAAAAAAAA5nhAAAAAADY/3cBAAAAAAgAAAAAAAAAG/5VAQAAAADg/3cBAAAAAAgAAAAAAAAA9cUaAAAAAADo/3cBAAAAAAgAAAAAAAAAoktWAQAAAADw/3cBAAAAAAgAAAAAAAAAQFYQAAAAAAD4/3cBAAAAAAgAAAAAAAAAIgZWAQAAAAAAAHgBAAAAAAgAAAAAAAAAKxADAQAAAAAIAHgBAAAAAAgAAAAAAAAATtsaAAAAAAAQAHgBAAAAAAgAAAAAAAAABeQOAQAAAAAYAHgBAAAAAAgAAAAAAAAAmNkVAAAAAAAgAHgBAAAAAAgAAAAAAAAAJli7AAAAAAAoAHgBAAAAAAgAAAAAAAAAWVYQAAAAAAAwAHgBAAAAAAgAAAAAAAAAhX4KAQAAAAA4AHgBAAAAAAgAAAAAAAAAm1VXAQAAAABAAHgBAAAAAAgAAAAAAAAADsYaAAAAAABIAHgBAAAAAAgAAAAAAAAA1EIcAAAAAABQAHgBAAAAAAgAAAAAAAAA3ukRAQAAAABYAHgBAAAAAAgAAAAAAAAAsZRXAQAAAABgAHgBAAAAAAgAAAAAAAAADqRXAQAAAABoAHgBAAAAAAgAAAAAAAAAKJUSAQAAAABwAHgBAAAAAAgAAAAAAAAAtJfGAAAAAAB4AHgBAAAAAAgAAAAAAAAAwTcWAAAAAACAAHgBAAAAAAgAAAAAAAAA/BDGAAAAAACIAHgBAAAAAAgAAAAAAAAAKb8ZAQAAAACQAHgBAAAAAAgAAAAAAAAA9WQQAAAAAACYAHgBAAAAAAgAAAAAAAAAQL7jAAAAAACgAHgBAAAAAAgAAAAAAAAAINkOAQAAAACoAHgBAAAAAAgAAAAAAAAAaC8dAAAAAACwAHgBAAAAAAgAAAAAAAAAZp7jAAAAAAC4AHgBAAAAAAgAAAAAAAAACUYLAQAAAADAAHgBAAAAAAgAAAAAAAAAQxADAQAAAADIAHgBAAAAAAgAAAAAAAAAHuQOAQAAAADQAHgBAAAAAAgAAAAAAAAA0FIdAAAAAADYAHgBAAAAAAgAAAAAAAAAk5sOAQAAAADgAHgBAAAAAAgAAAAAAAAASMMZAQAAAADoAHgBAAAAAAgAAAAAAAAAXhADAQAAAADwAHgBAAAAAAgAAAAAAAAA/ukRAQAAAAD4AHgBAAAAAAgAAAAAAAAAN9YYAAAAAAAAAXgBAAAAAAgAAAAAAAAAKaRXAQAAAAAIAXgBAAAAAAgAAAAAAAAAkq8OAQAAAAAQAXgBAAAAAAgAAAAAAAAARKRXAQAAAAAYAXgBAAAAAAgAAAAAAAAAnn4KAQAAAAAgAXgBAAAAAAgAAAAAAAAAJ8YaAAAAAAAoAXgBAAAAAAgAAAAAAAAA0QgbAQAAAABQAXgBAAAAAAgAAAAAAAAAQD9oAQAAAABYAXgBAAAAAAgAAAAAAAAAcD9oAQAAAABgAXgBAAAAAAgAAAAAAAAAoD9oAQAAAABwAXgBAAAAAAgAAAAAAAAAsD9oAQAAAACIAXgBAAAAAAgAAAAAAAAAMFloAQAAAACQAXgBAAAAAAgAAAAAAAAAYFloAQAAAACYAXgBAAAAAAgAAAAAAAAAkFloAQAAAACgAXgBAAAAAAgAAAAAAAAAgFpoAQAAAAC4AXgBAAAAAAgAAAAAAAAAMKpoAQAAAADAAXgBAAAAAAgAAAAAAAAAQKtoAQAAAADIAXgBAAAAAAgAAAAAAAAAYKtoAQAAAADQAXgBAAAAAAgAAAAAAAAA4LNoAQAAAADYAXgBAAAAAAgAAAAAAAAAMLVoAQAAAADwAXgBAAAAAAgAAAAAAAAAoAJ4AQAAAAD4AXgBAAAAAAgAAAAAAAAAQD5pAQAAAAAAAngBAAAAAAgAAAAAAAAAsD5pAQAAAAAYAngBAAAAAAgAAAAAAAAAoAJ4AQAAAAAgAngBAAAAAAgAAAAAAAAAMD9pAQAAAAAoAngBAAAAAAgAAAAAAAAAsD9pAQAAAAAwAngBAAAAAAgAAAAAAAAA+AF4AQAAAAA4AngBAAAAAAgAAAAAAAAAaAJ4AQAAAABAAngBAAAAAAgAAAAAAAAAkAJ4AQAAAABIAngBAAAAAAgAAAAAAAAAIAJ4AQAAAACoAngBAAAAAAgAAAAAAAAALEJbAQAAAADAAngBAAAAAAgAAAAAAAAAOAN4AQAAAADIAngBAAAAAAgAAAAAAAAAQEBpAQAAAADQAngBAAAAAAgAAAAAAAAAcEBpAQAAAADoAngBAAAAAAgAAAAAAAAAsEBpAQAAAADwAngBAAAAAAgAAAAAAAAAoEFpAQAAAAAQA3gBAAAAAAgAAAAAAAAAsEFpAQAAAAAgA3gBAAAAAAgAAAAAAAAA8EFpAQAAAAAwA3gBAAAAAAgAAAAAAAAAUEJpAQAAAABAA3gBAAAAAAgAAAAAAAAAckJbAQAAAABYA3gBAAAAAAgAAAAAAAAAkAN4AQAAAABgA3gBAAAAAAgAAAAAAAAAUJ9pAQAAAABoA3gBAAAAAAgAAAAAAAAAkJ9pAQAAAABwA3gBAAAAAAgAAAAAAAAAgFJpAQAAAAB4A3gBAAAAAAgAAAAAAAAAoFJpAQAAAACAA3gBAAAAAAgAAAAAAAAA4J9pAQAAAACIA3gBAAAAAAgAAAAAAAAAQFRpAQAAAACYA3gBAAAAAAgAAAAAAAAAyEVbAQAAAACgA3gBAAAAAAgAAAAAAAAAqAN4AQAAAACwA3gBAAAAAAgAAAAAAAAA4UVbAQAAAADAA3gBAAAAAAgAAAAAAAAAqAN4AQAAAADIA3gBAAAAAAgAAAAAAAAAUJ9pAQAAAADQA3gBAAAAAAgAAAAAAAAAMKBpAQAAAADYA3gBAAAAAAgAAAAAAAAAQKBpAQAAAADgA3gBAAAAAAgAAAAAAAAAUKBpAQAAAADoA3gB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AAAAAAgAAAAAAAAAwF94AQAAAACwX3gBAAAAAAgAAAAAAAAAQMRgAQAAAAC4X3gBAAAAAAgAAAAAAAAAEGB4AQAAAADIX3gBAAAAAAgAAAAAAAAA4MRgAQAAAADgX3gBAAAAAAgAAAAAAAAAYMVgAQAAAAD4X3gBAAAAAAgAAAAAAAAA4MVgAQAAAAAAYHgBAAAAAAgAAAAAAAAAEGB4AQAAAAAIYHgBAAAAAAgAAAAAAAAAgGB4AQAAAAAYYHgBAAAAAAgAAAAAAAAAcMZgAQAAAAAgYHgBAAAAAAgAAAAAAAAAmGR4AQAAAAAoYHgBAAAAAAgAAAAAAAAAWGB4AQAAAAAwYHgBAAAAAAgAAAAAAAAAQGB4AQAAAABIYHgBAAAAAAgAAAAAAAAAUMdgAQAAAABgYHgBAAAAAAgAAAAAAAAA0MdgAQAAAABoYHgBAAAAAAgAAAAAAAAAmGR4AQAAAABwYHgBAAAAAAgAAAAAAAAAmGB4AQAAAACIYHgBAAAAAAgAAAAAAAAAcMhgAQAAAACQYHgBAAAAAAgAAAAAAAAAmGB4AQAAAACgYHgBAAAAAAgAAAAAAAAAEMlgAQAAAAC4YHgBAAAAAAgAAAAAAAAAkMlgAQAAAADAYHgBAAAAAAgAAAAAAAAAmGB4AQAAAADQYHgBAAAAAAgAAAAAAAAAAMpgAQAAAADYYHgBAAAAAAgAAAAAAAAAEGB4AQAAAADgYHgBAAAAAAgAAAAAAAAA6GB4AQAAAADwYHgBAAAAAAgAAAAAAAAAkMpgAQAAAAAIYXgBAAAAAAgAAAAAAAAAAMtgAQAAAAAQYXgBAAAAAAgAAAAAAAAAGGF4AQAAAAAgYXgBAAAAAAgAAAAAAAAA4MtgAQAAAAAoYXgBAAAAAAgAAAAAAAAAMGF4AQAAAAA4YXgBAAAAAAgAAAAAAAAAUMxgAQAAAABAYXgBAAAAAAgAAAAAAAAAUGF4AQAAAABIYXgBAAAAAAgAAAAAAAAAaGF4AQAAAABYYXgBAAAAAAgAAAAAAAAAcM1gAQAAAABgYXgBAAAAAAgAAAAAAAAAgGF4AQAAAABwYXgBAAAAAAgAAAAAAAAA4M1gAQAAAAB4YXgBAAAAAAgAAAAAAAAAgGF4AQAAAACIYXgBAAAAAAgAAAAAAAAAUM5gAQAAAACgYXgBAAAAAAgAAAAAAAAA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AAAAAAEAAABUAAAAAAAAAAAAAAB4YHgBAAAAAAEAAABUAAAAAAAAAAAAAAAQs3cBAAAAAAEAAABVAAAAAAAAAAAAAAAYs3cBAAAAAAEAAABWAAAAAAAAAAAAAAAozXcBAAAAAAEAAABWAAAAAAAAAAAAAABgtHcBAAAAAAEAAABXAAAAAAAAAAAAAAAwtXcBAAAAAAEAAABXAAAAAAAAAAAAAAAAtncBAAAAAAEAAABXAAAAAAAAAAAAAADQtncBAAAAAAEAAABXAAAAAAAAAAAAAACgt3cBAAAAAAEAAABXAAAAAAAAAAAAAABwuHcBAAAAAAEAAABXAAAAAAAAAAAAAABAuXcBAAAAAAEAAABXAAAAAAAAAAAAAADQu3cBAAAAAAEAAABXAAAAAAAAAAAAAACAvXcBAAAAAAEAAABXAAAAAAAAAAAAAABQvncBAAAAAAEAAABXAAAAAAAAAAAAAAAgv3cBAAAAAAEAAABXAAAAAAAAAAAAAADwv3cBAAAAAAEAAABXAAAAAAAAAAAAAADAwHcBAAAAAAEAAABXAAAAAAAAAAAAAACQwXcBAAAAAAEAAABXAAAAAAAAAAAAAABgwncBAAAAAAEAAABXAAAAAAAAAAAAAAAww3cBAAAAAAEAAABXAAAAAAAAAAAAAAAIzHcBAAAAAAEAAABXAAAAAAAAAAAAAAAwzncBAAAAAAEAAABXAAAAAAAAAAAAAAAAz3cBAAAAAAEAAABXAAAAAAAAAAAAAADQz3cBAAAAAAEAAABXAAAAAAAAAAAAAACA0XcBAAAAAAEAAABXAAAAAAAAAAAAAABQ0ncBAAAAAAEAAABXAAAAAAAAAAAAAAAg03cBAAAAAAEAAABXAAAAAAAAAAAAAADw03cBAAAAAAEAAABXAAAAAAAAAAAAAADA1HcBAAAAAAEAAABXAAAAAAAAAAAAAACQ1XcBAAAAAAEAAABXAAAAAAAAAAAAAABg1ncBAAAAAAEAAABXAAAAAAAAAAAAAAAw13cBAAAAAAEAAABXAAAAAAAAAAAAAAAA2HcBAAAAAAEAAABXAAAAAAAAAAAAAAAg3HcBAAAAAAEAAABXAAAAAAAAAAAAAADw3HcBAAAAAAEAAABXAAAAAAAAAAAAAADA3XcBAAAAAAEAAABXAAAAAAAAAAAAAACQ3ncBAAAAAAEAAABXAAAAAAAAAAAAAABg33cBAAAAAAEAAABXAAAAAAAAAAAAAADg4HcBAAAAAAEAAABXAAAAAAAAAAAAAACw4XcBAAAAAAEAAABXAAAAAAAAAAAAAACA4ncBAAAAAAEAAABXAAAAAAAAAAAAAAD443cBAAAAAAEAAABXAAAAAAAAAAAAAADI5HcBAAAAAAEAAABXAAAAAAAAAAAAAAD45ncBAAAAAAEAAABXAAAAAAAAAAAAAADI53cBAAAAAAEAAABXAAAAAAAAAAAAAACY6HcBAAAAAAEAAABXAAAAAAAAAAAAAABo6XcBAAAAAAEAAABXAAAAAAAAAAAAAAA46ncBAAAAAAEAAABXAAAAAAAAAAAAAAAI63cBAAAAAAEAAABXAAAAAAAAAAAAAADY63cBAAAAAAEAAABXAAAAAAAAAAAAAACo7HcBAAAAAAEAAABXAAAAAAAAAAAAAAB47XcBAAAAAAEAAABXAAAAAAAAAAAAAABI7ncBAAAAAAEAAABXAAAAAAAAAAAAAAAY73cBAAAAAAEAAABXAAAAAAAAAAAAAADo73cBAAAAAAEAAABXAAAAAAAAAAAAAAC48HcBAAAAAAEAAABXAAAAAAAAAAAAAACI8XcBAAAAAAEAAABXAAAAAAAAAAAAAACYtHcBAAAAAAEAAABYAAAAAAAAAAAAAABotXcBAAAAAAEAAABYAAAAAAAAAAAAAAA4tncBAAAAAAEAAABYAAAAAAAAAAAAAAAIt3cBAAAAAAEAAABYAAAAAAAAAAAAAADYt3cBAAAAAAEAAABYAAAAAAAAAAAAAACouHcBAAAAAAEAAABYAAAAAAAAAAAAAAB4uXcBAAAAAAEAAABYAAAAAAAAAAAAAABIuncBAAAAAAEAAABYAAAAAAAAAAAAAAAou3cBAAAAAAEAAABYAAAAAAAAAAAAAAAIvHcBAAAAAAEAAABYAAAAAAAAAAAAAADYvHcBAAAAAAEAAABYAAAAAAAAAAAAAAC4vXcBAAAAAAEAAABYAAAAAAAAAAAAAACIvncBAAAAAAEAAABYAAAAAAAAAAAAAABYv3cBAAAAAAEAAABYAAAAAAAAAAAAAAAowHcBAAAAAAEAAABYAAAAAAAAAAAAAAD4wHcBAAAAAAEAAABYAAAAAAAAAAAAAADIwXcBAAAAAAEAAABYAAAAAAAAAAAAAACYwncBAAAAAAEAAABYAAAAAAAAAAAAAABow3cBAAAAAAEAAABYAAAAAAAAAAAAAAB4xncBAAAAAAEAAABYAAAAAAAAAAAAAABYx3cBAAAAAAEAAABYAAAAAAAAAAAAAAA4yHcBAAAAAAEAAABYAAAAAAAAAAAAAAAYyXcBAAAAAAEAAABYAAAAAAAAAAAAAAD4yXcBAAAAAAEAAABYAAAAAAAAAAAAAADYyncBAAAAAAEAAABYAAAAAAAAAAAAAABAzHcBAAAAAAEAAABYAAAAAAAAAAAAAABozncBAAAAAAEAAABYAAAAAAAAAAAAAAA4z3cBAAAAAAEAAABYAAAAAAAAAAAAAAAI0HcBAAAAAAEAAABYAAAAAAAAAAAAAADY0HcBAAAAAAEAAABYAAAAAAAAAAAAAAC40XcBAAAAAAEAAABYAAAAAAAAAAAAAACI0ncBAAAAAAEAAABYAAAAAAAAAAAAAABY03cBAAAAAAEAAABYAAAAAAAAAAAAAAAo1HcBAAAAAAEAAABYAAAAAAAAAAAAAAD41HcBAAAAAAEAAABYAAAAAAAAAAAAAADI1XcBAAAAAAEAAABYAAAAAAAAAAAAAACY1ncBAAAAAAEAAABYAAAAAAAAAAAAAABo13cBAAAAAAEAAABYAAAAAAAAAAAAAAA42HcBAAAAAAEAAABYAAAAAAAAAAAAAADI2XcBAAAAAAEAAABYAAAAAAAAAAAAAACo2ncBAAAAAAEAAABYAAAAAAAAAAAAAABY3HcBAAAAAAEAAABYAAAAAAAAAAAAAAAo3XcBAAAAAAEAAABYAAAAAAAAAAAAAAD43XcBAAAAAAEAAABYAAAAAAAAAAAAAADI3ncBAAAAAAEAAABYAAAAAAAAAAAAAACY33cBAAAAAAEAAABYAAAAAAAAAAAAAAAY4XcBAAAAAAEAAABYAAAAAAAAAAAAAADo4XcBAAAAAAEAAABYAAAAAAAAAAAAAAC44ncBAAAAAAEAAABYAAAAAAAAAAAAAAAw5HcBAAAAAAEAAABYAAAAAAAAAAAAAAAA5XcBAAAAAAEAAABYAAAAAAAAAAAAAAAw53cBAAAAAAEAAABYAAAAAAAAAAAAAAAA6HcBAAAAAAEAAABYAAAAAAAAAAAAAADQ6HcBAAAAAAEAAABYAAAAAAAAAAAAAACg6XcBAAAAAAEAAABYAAAAAAAAAAAAAABw6ncBAAAAAAEAAABYAAAAAAAAAAAAAABA63cBAAAAAAEAAABYAAAAAAAAAAAAAAAQ7HcBAAAAAAEAAABYAAAAAAAAAAAAAADg7HcBAAAAAAEAAABYAAAAAAAAAAAAAACw7XcBAAAAAAEAAABYAAAAAAAAAAAAAACA7ncBAAAAAAEAAABYAAAAAAAAAAAAAABQ73cBAAAAAAEAAABYAAAAAAAAAAAAAAAg8HcBAAAAAAEAAABYAAAAAAAAAAAAAADw8HcBAAAAAAEAAABYAAAAAAAAAAAAAADA8XcBAAAAAAEAAABYAAAAAAAAAAAAAACgtHcBAAAAAAEAAABZAAAAAAAAAAAAAABwtXcBAAAAAAEAAABZAAAAAAAAAAAAAABAtncBAAAAAAEAAABZAAAAAAAAAAAAAAAQt3cBAAAAAAEAAABZAAAAAAAAAAAAAADgt3cBAAAAAAEAAABZAAAAAAAAAAAAAACwuHcBAAAAAAEAAABZAAAAAAAAAAAAAACAuXcBAAAAAAEAAABZAAAAAAAAAAAAAAAQvHcBAAAAAAEAAABZAAAAAAAAAAAAAADAvXcBAAAAAAEAAABZAAAAAAAAAAAAAACQvncBAAAAAAEAAABZAAAAAAAAAAAAAABgv3cBAAAAAAEAAABZAAAAAAAAAAAAAAAwwHcBAAAAAAEAAABZAAAAAAAAAAAAAAAAwXcBAAAAAAEAAABZAAAAAAAAAAAAAADQwXcBAAAAAAEAAABZAAAAAAAAAAAAAACgwncBAAAAAAEAAABZAAAAAAAAAAAAAABww3cBAAAAAAEAAABZAAAAAAAAAAAAAABIzHcBAAAAAAEAAABZAAAAAAAAAAAAAABwzncBAAAAAAEAAABZAAAAAAAAAAAAAABAz3cBAAAAAAEAAABZAAAAAAAAAAAAAAAQ0HcBAAAAAAEAAABZAAAAAAAAAAAAAADA0XcBAAAAAAEAAABZAAAAAAAAAAAAAACQ0ncBAAAAAAEAAABZAAAAAAAAAAAAAABg03cBAAAAAAEAAABZAAAAAAAAAAAAAAAw1HcBAAAAAAEAAABZAAAAAAAAAAAAAAAA1XcBAAAAAAEAAABZAAAAAAAAAAAAAADQ1XcBAAAAAAEAAABZAAAAAAAAAAAAAACg1ncBAAAAAAEAAABZAAAAAAAAAAAAAABw13cBAAAAAAEAAABZAAAAAAAAAAAAAABA2HcBAAAAAAEAAABZAAAAAAAAAAAAAABg3HcBAAAAAAEAAABZAAAAAAAAAAAAAAAw3XcBAAAAAAEAAABZAAAAAAAAAAAAAAAA3ncBAAAAAAEAAABZAAAAAAAAAAAAAADQ3ncBAAAAAAEAAABZAAAAAAAAAAAAAACg33cBAAAAAAEAAABZAAAAAAAAAAAAAAAg4XcBAAAAAAEAAABZAAAAAAAAAAAAAADw4XcBAAAAAAEAAABZAAAAAAAAAAAAAADA4ncBAAAAAAEAAABZAAAAAAAAAAAAAAA45HcBAAAAAAEAAABZAAAAAAAAAAAAAAAI5XcBAAAAAAEAAABZAAAAAAAAAAAAAAA453cBAAAAAAEAAABZAAAAAAAAAAAAAAAI6HcBAAAAAAEAAABZAAAAAAAAAAAAAADY6HcBAAAAAAEAAABZAAAAAAAAAAAAAACo6XcBAAAAAAEAAABZAAAAAAAAAAAAAAB46ncBAAAAAAEAAABZAAAAAAAAAAAAAABI63cBAAAAAAEAAABZAAAAAAAAAAAAAAAY7HcBAAAAAAEAAABZAAAAAAAAAAAAAADo7HcBAAAAAAEAAABZAAAAAAAAAAAAAAC47XcBAAAAAAEAAABZAAAAAAAAAAAAAACI7ncBAAAAAAEAAABZAAAAAAAAAAAAAABY73cBAAAAAAEAAABZAAAAAAAAAAAAAAAo8HcBAAAAAAEAAABZAAAAAAAAAAAAAAD48HcBAAAAAAEAAABZAAAAAAAAAAAAAADI8XcBAAAAAAEAAABZAAAAAAAAAAAAAADAtHcBAAAAAAEAAABaAAAAAAAAAAAAAACQtXcBAAAAAAEAAABaAAAAAAAAAAAAAABgtncBAAAAAAEAAABaAAAAAAAAAAAAAAAwt3cBAAAAAAEAAABaAAAAAAAAAAAAAAAAuHcBAAAAAAEAAABaAAAAAAAAAAAAAADQuHcBAAAAAAEAAABaAAAAAAAAAAAAAACguXcBAAAAAAEAAABaAAAAAAAAAAAAAABwuncBAAAAAAEAAABaAAAAAAAAAAAAAABQu3cBAAAAAAEAAABaAAAAAAAAAAAAAAAwvHcBAAAAAAEAAABaAAAAAAAAAAAAAAAAvXcBAAAAAAEAAABaAAAAAAAAAAAAAADgvXcBAAAAAAEAAABaAAAAAAAAAAAAAACwvncBAAAAAAEAAABaAAAAAAAAAAAAAACAv3cBAAAAAAEAAABaAAAAAAAAAAAAAABQwHcBAAAAAAEAAABaAAAAAAAAAAAAAAAgwXcBAAAAAAEAAABaAAAAAAAAAAAAAADwwXcBAAAAAAEAAABaAAAAAAAAAAAAAADAwncBAAAAAAEAAABaAAAAAAAAAAAAAACQw3cBAAAAAAEAAABaAAAAAAAAAAAAAACgxncBAAAAAAEAAABaAAAAAAAAAAAAAACAx3cBAAAAAAEAAABaAAAAAAAAAAAAAABgyHcBAAAAAAEAAABaAAAAAAAAAAAAAABAyXcBAAAAAAEAAABaAAAAAAAAAAAAAAAgyncBAAAAAAEAAABaAAAAAAAAAAAAAAAAy3cBAAAAAAEAAABaAAAAAAAAAAAAAABozHcBAAAAAAEAAABaAAAAAAAAAAAAAACQzncBAAAAAAEAAABaAAAAAAAAAAAAAABgz3cBAAAAAAEAAABaAAAAAAAAAAAAAAAw0HcBAAAAAAEAAABaAAAAAAAAAAAAAAAA0XcBAAAAAAEAAABaAAAAAAAAAAAAAADg0XcBAAAAAAEAAABaAAAAAAAAAAAAAACw0ncBAAAAAAEAAABaAAAAAAAAAAAAAACA03cBAAAAAAEAAABaAAAAAAAAAAAAAABQ1HcBAAAAAAEAAABaAAAAAAAAAAAAAAAg1XcBAAAAAAEAAABaAAAAAAAAAAAAAADw1XcBAAAAAAEAAABaAAAAAAAAAAAAAADA1ncBAAAAAAEAAABaAAAAAAAAAAAAAACQ13cBAAAAAAEAAABaAAAAAAAAAAAAAABg2HcBAAAAAAEAAABaAAAAAAAAAAAAAADw2XcBAAAAAAEAAABaAAAAAAAAAAAAAADQ2ncBAAAAAAEAAABaAAAAAAAAAAAAAACA3HcBAAAAAAEAAABaAAAAAAAAAAAAAABQ3XcBAAAAAAEAAABaAAAAAAAAAAAAAAAg3ncBAAAAAAEAAABaAAAAAAAAAAAAAADw3ncBAAAAAAEAAABaAAAAAAAAAAAAAADA33cBAAAAAAEAAABaAAAAAAAAAAAAAABA4XcBAAAAAAEAAABaAAAAAAAAAAAAAAAQ4ncBAAAAAAEAAABaAAAAAAAAAAAAAADg4ncBAAAAAAEAAABaAAAAAAAAAAAAAABY5HcBAAAAAAEAAABaAAAAAAAAAAAAAAAo5XcBAAAAAAEAAABaAAAAAAAAAAAAAABY53cBAAAAAAEAAABaAAAAAAAAAAAAAAAo6HcBAAAAAAEAAABaAAAAAAAAAAAAAAD46HcBAAAAAAEAAABaAAAAAAAAAAAAAADI6XcBAAAAAAEAAABaAAAAAAAAAAAAAACY6ncBAAAAAAEAAABaAAAAAAAAAAAAAABo63cBAAAAAAEAAABaAAAAAAAAAAAAAAA47HcBAAAAAAEAAABaAAAAAAAAAAAAAAAI7XcBAAAAAAEAAABaAAAAAAAAAAAAAADY7XcBAAAAAAEAAABaAAAAAAAAAAAAAACo7ncBAAAAAAEAAABaAAAAAAAAAAAAAAB473cBAAAAAAEAAABaAAAAAAAAAAAAAABI8HcBAAAAAAEAAABaAAAAAAAAAAAAAAAY8XcBAAAAAAEAAABaAAAAAAAAAAAAAADo8XcBAAAAAAEAAABaAAAAAAAAAAAAAADwtHcBAAAAAAEAAABbAAAAAAAAAAAAAADAtXcBAAAAAAEAAABbAAAAAAAAAAAAAACQtncBAAAAAAEAAABbAAAAAAAAAAAAAABgt3cBAAAAAAEAAABbAAAAAAAAAAAAAAAwuHcBAAAAAAEAAABbAAAAAAAAAAAAAAAAuXcBAAAAAAEAAABbAAAAAAAAAAAAAADQuXcBAAAAAAEAAABbAAAAAAAAAAAAAACguncBAAAAAAEAAABbAAAAAAAAAAAAAACAu3cBAAAAAAEAAABbAAAAAAAAAAAAAABgvHcBAAAAAAEAAABbAAAAAAAAAAAAAAAwvXcBAAAAAAEAAABbAAAAAAAAAAAAAAAQvncBAAAAAAEAAABbAAAAAAAAAAAAAADgvncBAAAAAAEAAABbAAAAAAAAAAAAAACwv3cBAAAAAAEAAABbAAAAAAAAAAAAAACAwHcBAAAAAAEAAABbAAAAAAAAAAAAAABQwXcBAAAAAAEAAABbAAAAAAAAAAAAAAAgwncBAAAAAAEAAABbAAAAAAAAAAAAAADwwncBAAAAAAEAAABbAAAAAAAAAAAAAADAw3cBAAAAAAEAAABbAAAAAAAAAAAAAADQxncBAAAAAAEAAABbAAAAAAAAAAAAAACwx3cBAAAAAAEAAABbAAAAAAAAAAAAAACQyHcBAAAAAAEAAABbAAAAAAAAAAAAAABwyXcBAAAAAAEAAABbAAAAAAAAAAAAAABQyncBAAAAAAEAAABbAAAAAAAAAAAAAAAwy3cBAAAAAAEAAABbAAAAAAAAAAAAAACYzHcBAAAAAAEAAABbAAAAAAAAAAAAAADAzncBAAAAAAEAAABbAAAAAAAAAAAAAACQz3cBAAAAAAEAAABbAAAAAAAAAAAAAABg0HcBAAAAAAEAAABbAAAAAAAAAAAAAAAw0XcBAAAAAAEAAABbAAAAAAAAAAAAAAAQ0ncBAAAAAAEAAABbAAAAAAAAAAAAAADg0ncBAAAAAAEAAABbAAAAAAAAAAAAAACw03cBAAAAAAEAAABbAAAAAAAAAAAAAACA1HcBAAAAAAEAAABbAAAAAAAAAAAAAABQ1XcBAAAAAAEAAABbAAAAAAAAAAAAAAAg1ncBAAAAAAEAAABbAAAAAAAAAAAAAADw1ncBAAAAAAEAAABbAAAAAAAAAAAAAADA13cBAAAAAAEAAABbAAAAAAAAAAAAAACQ2HcBAAAAAAEAAABbAAAAAAAAAAAAAAAg2ncBAAAAAAEAAABbAAAAAAAAAAAAAAAA23cBAAAAAAEAAABbAAAAAAAAAAAAAACw3HcBAAAAAAEAAABbAAAAAAAAAAAAAACA3XcBAAAAAAEAAABbAAAAAAAAAAAAAABQ3ncBAAAAAAEAAABbAAAAAAAAAAAAAAAg33cBAAAAAAEAAABbAAAAAAAAAAAAAADw33cBAAAAAAEAAABbAAAAAAAAAAAAAABw4XcBAAAAAAEAAABbAAAAAAAAAAAAAABA4ncBAAAAAAEAAABbAAAAAAAAAAAAAAAQ43cBAAAAAAEAAABbAAAAAAAAAAAAAACI5HcBAAAAAAEAAABbAAAAAAAAAAAAAABY5XcBAAAAAAEAAABbAAAAAAAAAAAAAACI53cBAAAAAAEAAABbAAAAAAAAAAAAAABY6HcBAAAAAAEAAABbAAAAAAAAAAAAAAAo6XcBAAAAAAEAAABbAAAAAAAAAAAAAAD46XcBAAAAAAEAAABbAAAAAAAAAAAAAADI6ncBAAAAAAEAAABbAAAAAAAAAAAAAACY63cBAAAAAAEAAABbAAAAAAAAAAAAAABo7HcBAAAAAAEAAABbAAAAAAAAAAAAAAA47XcBAAAAAAEAAABbAAAAAAAAAAAAAAAI7ncBAAAAAAEAAABbAAAAAAAAAAAAAADY7ncBAAAAAAEAAABbAAAAAAAAAAAAAACo73cBAAAAAAEAAABbAAAAAAAAAAAAAAB48HcBAAAAAAEAAABbAAAAAAAAAAAAAABI8XcBAAAAAAEAAABbAAAAAAAAAAAAAAAY8ncBAAAAAAEAAABbAAAAAAAAAAAAAAD4tHcBAAAAAAEAAABcAAAAAAAAAAAAAADItXcBAAAAAAEAAABcAAAAAAAAAAAAAACYtncBAAAAAAEAAABcAAAAAAAAAAAAAABot3cBAAAAAAEAAABcAAAAAAAAAAAAAAA4uHcBAAAAAAEAAABcAAAAAAAAAAAAAAAIuXcBAAAAAAEAAABcAAAAAAAAAAAAAADYuXcBAAAAAAEAAABcAAAAAAAAAAAAAABovHcBAAAAAAEAAABcAAAAAAAAAAAAAAAYvncBAAAAAAEAAABcAAAAAAAAAAAAAADovncBAAAAAAEAAABcAAAAAAAAAAAAAAC4v3cBAAAAAAEAAABcAAAAAAAAAAAAAACIwHcBAAAAAAEAAABcAAAAAAAAAAAAAABYwXcBAAAAAAEAAABcAAAAAAAAAAAAAAAowncBAAAAAAEAAABcAAAAAAAAAAAAAAD4wncBAAAAAAEAAABcAAAAAAAAAAAAAADIw3cBAAAAAAEAAABcAAAAAAAAAAAAAAC4x3cBAAAAAAEAAABcAAAAAAAAAAAAAAB4yXcBAAAAAAEAAABcAAAAAAAAAAAAAAA4y3cBAAAAAAEAAABcAAAAAAAAAAAAAACgzHcBAAAAAAEAAABcAAAAAAAAAAAAAADIzncBAAAAAAEAAABcAAAAAAAAAAAAAACYz3cBAAAAAAEAAABcAAAAAAAAAAAAAABo0HcBAAAAAAEAAABcAAAAAAAAAAAAAAAY0ncBAAAAAAEAAABcAAAAAAAAAAAAAADo0ncBAAAAAAEAAABcAAAAAAAAAAAAAAC403cBAAAAAAEAAABcAAAAAAAAAAAAAACI1HcBAAAAAAEAAABcAAAAAAAAAAAAAABY1XcBAAAAAAEAAABcAAAAAAAAAAAAAAAo1ncBAAAAAAEAAABcAAAAAAAAAAAAAAD41ncBAAAAAAEAAABcAAAAAAAAAAAAAADI13cBAAAAAAEAAABcAAAAAAAAAAAAAACY2HcBAAAAAAEAAABcAAAAAAAAAAAAAAAI23cBAAAAAAEAAABcAAAAAAAAAAAAAAC43HcBAAAAAAEAAABcAAAAAAAAAAAAAACI3XcBAAAAAAEAAABcAAAAAAAAAAAAAABY3ncBAAAAAAEAAABcAAAAAAAAAAAAAAAo33cBAAAAAAEAAABcAAAAAAAAAAAAAAD433cBAAAAAAEAAABcAAAAAAAAAAAAAAB44XcBAAAAAAEAAABcAAAAAAAAAAAAAABI4ncBAAAAAAEAAABcAAAAAAAAAAAAAAAY43cBAAAAAAEAAABcAAAAAAAAAAAAAACQ5HcBAAAAAAEAAABcAAAAAAAAAAAAAABg5XcBAAAAAAEAAABcAAAAAAAAAAAAAACQ53cBAAAAAAEAAABcAAAAAAAAAAAAAABg6HcBAAAAAAEAAABcAAAAAAAAAAAAAAAw6XcBAAAAAAEAAABcAAAAAAAAAAAAAAAA6ncBAAAAAAEAAABcAAAAAAAAAAAAAADQ6ncBAAAAAAEAAABcAAAAAAAAAAAAAACg63cBAAAAAAEAAABcAAAAAAAAAAAAAABw7HcBAAAAAAEAAABcAAAAAAAAAAAAAABA7XcBAAAAAAEAAABcAAAAAAAAAAAAAAAQ7ncBAAAAAAEAAABcAAAAAAAAAAAAAADg7ncBAAAAAAEAAABcAAAAAAAAAAAAAACw73cBAAAAAAEAAABcAAAAAAAAAAAAAACA8HcBAAAAAAEAAABcAAAAAAAAAAAAAABQ8XcBAAAAAAEAAABcAAAAAAAAAAAAAAAg8ncBAAAAAAEAAABcAAAAAAAAAAAAAACQuncBAAAAAAEAAABdAAAAAAAAAAAAAABwu3cBAAAAAAEAAABdAAAAAAAAAAAAAAAgvXcBAAAAAAEAAABdAAAAAAAAAAAAAADAxncBAAAAAAEAAABdAAAAAAAAAAAAAACgx3cBAAAAAAEAAABdAAAAAAAAAAAAAACAyHcBAAAAAAEAAABdAAAAAAAAAAAAAABgyXcBAAAAAAEAAABdAAAAAAAAAAAAAABAyncBAAAAAAEAAABdAAAAAAAAAAAAAAAgy3cBAAAAAAEAAABdAAAAAAAAAAAAAAAg0XcBAAAAAAEAAABdAAAAAAAAAAAAAAAQ2ncBAAAAAAEAAABdAAAAAAAAAAAAAADw2ncBAAAAAAEAAABdAAAAAAAAAAAAAACwuncBAAAAAAEAAABeAAAAAAAAAAAAAACQu3cBAAAAAAEAAABeAAAAAAAAAAAAAABAvXcBAAAAAAEAAABeAAAAAAAAAAAAAADgxncBAAAAAAEAAABeAAAAAAAAAAAAAADAx3cBAAAAAAEAAABeAAAAAAAAAAAAAACgyHcBAAAAAAEAAABeAAAAAAAAAAAAAACAyXcBAAAAAAEAAABeAAAAAAAAAAAAAABgyncBAAAAAAEAAABeAAAAAAAAAAAAAABAy3cBAAAAAAEAAABeAAAAAAAAAAAAAABA0XcBAAAAAAEAAABeAAAAAAAAAAAAAAAw2ncBAAAAAAEAAABeAAAAAAAAAAAAAAAQ23cBAAAAAAEAAABeAAAAAAAAAAAAAADoxncBAAAAAAEAAABfAAAAAAAAAAAAAADIx3cBAAAAAAEAAABfAAAAAAAAAAAAAACoyHcBAAAAAAEAAABfAAAAAAAAAAAAAACIyXcBAAAAAAEAAABfAAAAAAAAAAAAAABoyncBAAAAAAEAAABfAAAAAAAAAAAAAABIy3cBAAAAAAEAAABfAAAAAAAAAAAAAAA42ncBAAAAAAEAAABfAAAAAAAAAAAAAAAY23cBAAAAAAEAAABfAAAAAAAAAAAAAADwA3gBAAAAAAEAAABfAAAAAAAAAAAAAAAAC3gBAAAAAAEAAABfAAAAAAAAAAAAAAAADngBAAAAAAEAAABfAAAAAAAAAAAAAACwO3gBAAAAAAEAAABfAAAAAAAAAAAAAAC4O3gBAAAAAAEAAABfAAAAAAAAAAAAAADAO3gBAAAAAAEAAABfAAAAAAAAAAAAAADIO3gBAAAAAAEAAABfAAAAAAAAAAAAAADQO3gBAAAAAAEAAABfAAAAAAAAAAAAAADYO3gBAAAAAAEAAABfAAAAAAAAAAAAAACoPXgBAAAAAAEAAABfAAAAAAAAAAAAAACwPXgBAAAAAAEAAABfAAAAAAAAAAAAAABoQngBAAAAAAYAAABtAAAAAAAAAAAAAABIZXgBAAAAAAEAAABzAAAAAAAAAAAAAABQZXgBAAAAAAEAAABzAAAAAAAAAAAAAABYZXgBAAAAAAEAAABzAAAAAAAAAAAAAABgZXgBAAAAAAEAAABzAAAAAAAAAAAAAABoZXgBAAAAAAEAAABzAAAAAAAAAAAAAABwZXgBAAAAAAEAAABzAAAAAAAAAAAAAAB4ZXgBAAAAAAEAAABzAAAAAAAAAAAAAACAZXgBAAAAAAEAAABzAAAAAAAAAAAAAACIZXgBAAAAAAEAAABzAAAAAAAAAAAAAABwQngBAAAAAAYAAAB8AAAAAAAAAAAAAAB4QngBAAAAAAYAAACpAAAAAAAAAAAAAADI9HcBAAAAAAEAAAC1AAAAAAAAAAAAAAD49HcBAAAAAAEAAAC1AAAAAAAAAAAAAACo9XcBAAAAAAEAAADGAAAAAAAAAAAAAACw9XcBAAAAAAEAAADHAAAAAAAAAAAAAAC49XcBAAAAAAEAAADIAAAAAAAAAAAAAADI8ncBAAAAAAEAAADJAAAAAAAAAAAAAADw8ncBAAAAAAEAAADKAAAAAAAAAAAAAABA83cBAAAAAAEAAADLAAAAAAAAAAAAAABY9HcBAAAAAAEAAADMAAAAAAAAAAAAAADo9XcBAAAAAAEAAADNAAAAAAAAAAAAAABoAXgBAAAAAAEAAADNAAAAAAAAAAAAAACwQngBAAAAAAYAAAAcAQAAAAAAAAAAAACAQngBAAAAAAYAAAAvAQAAAAAAAAAAAABgAngBAAAAAAEAAABRAQAAAAAAAAAAAACIAngBAAAAAAEAAABRAQAAAAAAAAAAAACwAngBAAAAAAEAAABRAQAAAAAAAAAAAABoAngBAAAAAAEAAABSAQAAAAAAAAAAAABwAngBAAAAAAEAAABTAQAAAAAAAAAAAACQAngBAAAAAAEAAABUAQAAAAAAAAAAAACYAngBAAAAAAEAAABVAQAAAAAAAAAAAACgAngBAAAAAAEAAABWAQAAEAAAAAAAAAA4A3gBAAAAAAEAAABWAQAAEAAAAAAAAACQA3gBAAAAAAEAAABWAQAAEAAAAAAAAACgCngBAAAAAAEAAABWAQAAEAAAAAAAAABADHgBAAAAAAEAAABWAQAAEAAAAAAAAACYDHgBAAAAAAEAAABWAQAAEAAAAAAAAADwDHgBAAAAAAEAAABWAQAAEAAAAAAAAABIDXgBAAAAAAEAAABWAQAAEAAAAAAAAACgDXgBAAAAAAEAAABWAQAAEAAAAAAAAABIDngBAAAAAAEAAABWAQAAEAAAAAAAAACwOXgBAAAAAAEAAABWAQAAEAAAAAAAAAAQOngBAAAAAAEAAABWAQAAEAAAAAAAAABAPHgBAAAAAAEAAABWAQAAEAAAAAAAAACwPHgBAAAAAAEAAABWAQAAEAAAAAAAAAAAPXgBAAAAAAEAAABWAQAAEAAAAAAAAABQPXgBAAAAAAEAAABWAQAAEAAAAAAAAAAgPngBAAAAAAEAAABWAQAAEAAAAAAAAADYAngBAAAAAAEAAABXAQAAAAAAAAAAAADgAngBAAAAAAEAAABYAQAAAAAAAAAAAAD4AngBAAAAAAEAAABZAQAAAAAAAAAAAAAAA3gBAAAAAAEAAABaAQAAAAAAAAAAAAAIA3gBAAAAAAEAAABbAQAAAAAAAAAAAAAYA3gBAAAAAAEAAABcAQAAAAAAAAAAAAAoA3gBAAAAAAEAAABdAQAAAAAAAAAAAABIA3gBAAAAAAEAAABeAQAAAAAAAAAAAACoA3gBAAAAAAEAAABfAQAAEAAAAAAAAAC4CngBAAAAAAEAAABfAQAAEAAAAAAAAAC4DXgBAAAAAAEAAABfAQAAEAAAAAAAAADIOXgBAAAAAAEAAABfAQAAEAAAAAAAAADYOXgBAAAAAAEAAABfAQAAEAAAAAAAAADgO3gBAAAAAAEAAABfAQAAEAAAAAAAAABoPXgBAAAAAAEAAABfAQAAEAAAAAAAAAB4PXgBAAAAAAEAAABfAQAAEAAAAAAAAADAPXgBAAAAAAEAAABfAQAAEAAAAAAAAAAgOngBAAAAAAEAAACPAQAAAAAAAAAAAAC4QngBAAAAAAYAAAC3AQAAAAAAAAAAAADAQngBAAAAAAYAAAC4AQAAAAAAAAAAAADIQngBAAAAAAYAAAC5AQAAAAAAAAAAAADQQngBAAAAAAYAAAC6AQAAAAAAAAAAAAD4QngBAAAAAAcAAAABAAAAAAAAAAAAAAAAQ3gBAAAAAAcAAAACAAAAAAAAAAAAAAAIQ3gBAAAAAAcAAAAFAAAAAAAAAAAAAAAQQ3gBAAAAAAcAAAAHAAAAAAAAAAAAAAAYQ3gBAAAAAAcAAAAKAAAAAAAAAAAAAAAgQ3gBAAAAAAcAAAALAAAAAAAAAAAAAAAoQ3gBAAAAAAcAAAANAAAAAAAAAAAAAAAwQ3gBAAAAAAcAAAAOAAAAAAAAAAAAAAA4Q3gBAAAAAAcAAAAPAAAAAAAAAAAAAABAQ3gBAAAAAAcAAAAQAAAAAAAAAAAAAABIQ3gBAAAAAAcAAAARAAAA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AAAAAAAAAAAASHgBAAAAAAcAAADCAAAAAAAAAAAAAAAISHgBAAAAAAcAAADDAAAAAAAAAAAAAAAQSHgBAAAAAAcAAACiAAAAAAAAAAAAAAAYSHgBAAAAAAcAAACjAAAAAAAAAAAAAAAgSHgBAAAAAAcAAACkAAAAAAAAAAAAAAAoSHgBAAAAAAcAAACtAAAAAAAAAAAAAAAwSHgBAAAAAAcAAAC+AAAAAAAAAAAAAAA4SHgBAAAAAAcAAAC/AAAAAAAAAAAAAABASHgBAAAAAAcAAADBAAAAAAAAAAAAAABISHgBAAAAAAcAAADEAAAAAAAAAAAAAABQSHgBAAAAAAcAAADFAAAAAAAAAAAAAABYSHgBAAAAAAcAAADOAAAAAAAAAAAAAABgSHgBAAAAAAcAAADPAAAAAAAAAAAAAABoSHgBAAAAAAcAAADQAAAAAAAAAAAAAABwSHgBAAAAAAcAAADRAAAAAAAAAAAAAAB4SHgBAAAAAAcAAADSAAAAAAAAAAAAAACASHgBAAAAAAcAAADTAAAAAAAAAAAAAACISHgBAAAAAAcAAADUAAAAAAAAAAAAAACQSHgBAAAAAAcAAADVAAAAAAAAAAAAAACYSHgBAAAAAAcAAADWAAAAAAAAAAAAAACgSHgBAAAAAAcAAADXAAAAAAAAAAAAAACoSHgBAAAAAAcAAADYAAAAAAAAAAAAAACwSHgBAAAAAAcAAADZAAAAAAAAAAAAAAC4SHgBAAAAAAcAAADaAAAAAAAAAAAAAADASHgBAAAAAAcAAADbAAAAAAAAAAAAAADISHgBAAAAAAcAAADcAAAAAAAAAAAAAADQSHgBAAAAAAcAAADdAAAAAAAAAAAAAADYSHgBAAAAAAcAAADfAAAAAAAAAAAAAADgSHgBAAAAAAcAAADgAAAAAAAAAAAAAADoSHgBAAAAAAcAAADhAAAAAAAAAAAAAADwSHgBAAAAAAcAAADiAAAAAAAAAAAAAAD4SHgBAAAAAAcAAADjAAAAAAAAAAAAAAAASXgBAAAAAAcAAADkAAAAAAAAAAAAAAAISXgBAAAAAAcAAADlAAAAAAAAAAAAAAAQSXgBAAAAAAcAAADmAAAAAAAAAAAAAAAYSXgBAAAAAAcAAADnAAAAAAAAAAAAAAAgSXgBAAAAAAcAAADoAAAAAAAAAAAAAAAoSXgB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AAAAAAAAAAAIT3gBAAAAAAcAAAC2AQAAAAAAAAAAAAAQT3gBAAAAAAcAAAC3AQAAAAAAAAAAAAAYT3gBAAAAAAcAAAC4AQAAAAAAAAAAAAAgT3gBAAAAAAcAAAC5AQAAAAAAAAAAAAAoT3gBAAAAAAcAAAC6AQAAAAAAAAAAAAAwT3gBAAAAAAcAAAC7AQAAAAAAAAAAAAA4T3gBAAAAAAcAAAC8AQAAAAAAAAAAAABAT3gBAAAAAAcAAAC9AQAAAAAAAAAAAABIT3gBAAAAAAcAAAC+AQAAAAAAAAAAAABQT3gBAAAAAAcAAAC/AQAAAAAAAAAAAABYT3gBAAAAAAcAAADAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AACAfwAAgP8AAACAAACAvwEAAgD//39/AAAAX///f/8AAAAAAAAAAAAAAABlw14Bu8NeAT/EXgHDxF4BlhVfAVMVXwHuFV8BJBZfAVIWXwGMFl8BxhZfAVMXXwHgF18BbRhfAaMYXwE/Ul8BZFNfAWRTXwH0Ul8BsVJfASJTXwEAAAAAAAAAAAAAAAD/////CAAAAP///////////////ygAAAAQAAAAGAAAACAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8YAAAAEAAAAP////8IAAAA////////////////KAAAADAAAAAQAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////oAAAABAAAACoAAAAKAAAAEAAAACIAAAAkAAAAJgAAABYAAAAcAAAAP////8IAAAA////////////////EAAAACAAAAAoAAAA////////////////CAAAABAAAAAAAAAAAQAAACAAAAAoAAAA////////////////CAAAABAAAAAAAAAAAQAAAP////8IAAAA////////////////EAAAAHgAAAAgAAAAKAAAAP///////////////wgAAAAQAAAAAAAAAAEAAAD/////CAAAAP///////////////xAAAACoAAAAkAAAAHgAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAAGAAAACAAAAD/////CAAAAP///////////////ygAAAAQAAAA/////wgAAAD///////////////8QAAAA/////wgAAAD///////////////8QAAAAGAAAAAAAAAAAAAAAAAAAAAoaa3l0aGUvcHJvdG8vYW5hbHlzaXMucHJvdG8SC2t5dGhlLnByb3RvGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhlreXRoZS9wcm90by9zdG9yYWdlLnByb3RvIoMBCg9BbmFseXNpc1JlcXVlc3QSMQoLY29tcGlsYXRpb24YASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSGQoRZmlsZV9kYXRhX3NlcnZpY2UYAiABKAkSEAoIcmV2aXNpb24YAyABKAkSEAoIYnVpbGRfaWQYBCABKAkiUgoOQW5hbHlzaXNPdXRwdXQSDQoFdmFsdWUYASABKAwSMQoMZmluYWxfcmVzdWx0GAogASgLMhsua3l0aGUucHJvdG8uQW5hbHlzaXNSZXN1bHQikgEKDkFuYWx5c2lzUmVzdWx0EjIKBnN0YXR1cxgBIAEoDjIiLmt5dGhlLnByb3RvLkFuYWx5c2lzUmVzdWx0LlN0YXR1cxIPCgdzdW1tYXJ5GAIgASgJIjsKBlN0YXR1cxIMCghDT01QTEVURRAAEg4KCklOQ09NUExFVEUQARITCg9JTlZBTElEX1JFUVVFU1QQAiKKBAoPQ29tcGlsYXRpb25Vbml0EiIKBnZfbmFtZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEj4KDnJlcXVpcmVkX2lucHV0GAMgAygLMiYua3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LkZpbGVJbnB1dBIaChJoYXNfY29tcGlsZV9lcnJvcnMYBCABKAgSEAoIYXJndW1lbnQYBSADKAkSEwoLc291cmNlX2ZpbGUYBiADKAkSEgoKb3V0cHV0X2tleRgHIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgIIAEoCRIVCg1lbnRyeV9jb250ZXh0GAkgASgJEjUKC2Vudmlyb25tZW50GAogAygLMiAua3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LkVudhIlCgdkZXRhaWxzGAsgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueRqBAQoJRmlsZUlucHV0EiIKBnZfbmFtZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEiMKBGluZm8YAiABKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbxIlCgdkZXRhaWxzGAQgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUoECAMQBBoiCgNFbnYSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCUoECAIQAyKtBQoIS3ppcEluZm8SMwoHY29ycG9yYRgBIAMoCzIiLmt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnBvcmFFbnRyeRIMCgRzaXplGAQgASgDEhYKDmFic29sdXRlX3BhdGhzGAYgAygJEhwKFGNyaXRpY2FsX2t6aXBfZXJyb3JzGAUgAygJGskDCgpDb3JwdXNJbmZvEl4KGGxhbmd1YWdlX3JlcXVpcmVkX2lucHV0cxgEIAMoCzI8Lmt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnB1c0luZm8uTGFuZ3VhZ2VSZXF1aXJlZElucHV0c0VudHJ5Ek8KEGxhbmd1YWdlX3NvdXJjZXMYBSADKAsyNS5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLkxhbmd1YWdlU291cmNlc0VudHJ5Gh8KDlJlcXVpcmVkSW5wdXRzEg0KBWNvdW50GAEgASgFGm4KG0xhbmd1YWdlUmVxdWlyZWRJbnB1dHNFbnRyeRILCgNrZXkYASABKAkSPgoFdmFsdWUYAiABKAsyLy5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLlJlcXVpcmVkSW5wdXRzOgI4ARpnChRMYW5ndWFnZVNvdXJjZXNFbnRyeRILCgNrZXkYASABKAkSPgoFdmFsdWUYAiABKAsyLy5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLlJlcXVpcmVkSW5wdXRzOgI4AUoECAEQAkoECAIQA0oECAMQBBpQCgxDb3Jwb3JhRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAua3l0aGUucHJvdG8uS3ppcEluZm8uQ29ycHVzSW5mbzoCOAFKBAgCEANKBAgDEAQiRQoNQnVpbGRNZXRhZGF0YRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI0CgxGaWxlc1JlcXVlc3QSJAoFZmlsZXMYASADKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbyIoCghGaWxlSW5mbxIMCgRwYXRoGAEgASgJEg4KBmRpZ2VzdBgCIAEoCSJRCghGaWxlRGF0YRIPCgdjb250ZW50GAEgASgMEiMKBGluZm8YAiABKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbxIPCgdtaXNzaW5nGAMgASgIImUKEUNvbXBpbGF0aW9uQnVuZGxlEioKBHVuaXQYASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSJAoFZmlsZXMYAiADKAsyFS5reXRoZS5wcm90by5GaWxlRGF0YSKSAQoSSW5kZXhlZENvbXBpbGF0aW9uEioKBHVuaXQYASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSNAoFaW5kZXgYAiABKAsyJS5reXRoZS5wcm90by5JbmRleGVkQ29tcGlsYXRpb24uSW5kZXgaGgoFSW5kZXgSEQoJcmV2aXNpb25zGAEgAygJQjcKH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9aEWFuYWx5c2lzX2dvX3Byb3Rv+AEBYgZwcm90bzMAAAAAAAAAAAAAAAAAAAAAAP////84AAAACQAAAP////8oAAAAEAAAAP////8gAAAAFwAAAP////9AAAAAHwAAAP////8oAAAAJgAAAP////+wAAAANQAAAP////8YAAAAOwAAAEIAAAAwAAAARAAAAEsAAAAwAAAATQAAAP/////oAAAAVAAAAFsAAAAwAAAAXQAAAP////+4AAAAZgAAAP////8gAAAAbAAAAP////8wAAAAcgAAAP////8oAAAAeQAAAP////8oAAAAgQAAAP////84AAAAiAAAAP////8wAAAAjgAAAP////8oAAAAAAAAAAAAAAAAAAAAAAAwQwAAMEUAAAAAAAAAAAAAAIAAAACA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UGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2Ym1pdmxpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fVkJNSVZMSU5UUklOX0gKI2RlZmluZSBfX1ZCTUlWTElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmJtaSxhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2Ym1pLGF2eDUxMnZsIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJxaTEyOCgoX192MTZxaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2sxNiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXgydmFyX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpOChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJxaTI1NigoX192MzJxaSlfX0EsIChfX3YzMnFpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4MnZhcl9lcGk4KF9fbTI1NmkgX19BLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2syX3Blcm11dGV4MnZhcl9lcGk4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwgX19tbWFzazMyIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fSSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleDJ2YXJfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV4dmFyX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFycWkxMjgoKF9fdjE2cWkpX19CLCAoX192MTZxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXh2YXJfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV4dmFyX2VwaTggKF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwKICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4dmFyX2VwaTggKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFycWkyNTYoKF9fdjMycWkpIF9fQiwgKF9fdjMycWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleHZhcl9lcGk4IChfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwKICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRleHZhcl9lcGk4IChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsCiAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbXVsdGlzaGlmdHFiMTI4KChfX3YxNnFpKV9fWCwgKF9fdjE2cWkpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cG11bHRpc2hpZnRxYjI1NigoX192MzJxaSlfX1gsIChfX3YzMnFpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX211bHRpc2hpZnRfZXBpNjRfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgAvKj09PS0tLS0gZW1taW50cmluLmggLSBTU0UyIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fRU1NSU5UUklOX0gKI2RlZmluZSBfX0VNTUlOVFJJTl9ICgojaW5jbHVkZSA8eG1taW50cmluLmg+Cgp0eXBlZGVmIGRvdWJsZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwoKdHlwZWRlZiBkb3VibGUgX19tMTI4ZF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDEpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fbTEyOGlfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxKSkpOwoKLyogVHlwZSBkZWZpbmVzLiAgKi8KdHlwZWRlZiBkb3VibGUgX192MmRmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX3YyZGkgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYpKSk7CnR5cGVkZWYgc2hvcnQgX192OGhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKdHlwZWRlZiBjaGFyIF9fdjE2cWkgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSkpOwoKLyogVW5zaWduZWQgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX192MmR1IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdjhodSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3YxNnF1IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKCi8qIFdlIG5lZWQgYW4gZXhwbGljaXRseSBzaWduZWQgdmFyaWFudCBmb3IgY2hhci4gTm90ZSB0aGF0IHRoaXMgc2hvdWxkbid0CiAqIGFwcGVhciBpbiB0aGUgaW50ZXJmYWNlIHRob3VnaC4gKi8KdHlwZWRlZiBzaWduZWQgY2hhciBfX3YxNnFzIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19NTVggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtbXgsc3NlMiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKLy8vIEFkZHMgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaW4gYm90aCBvcGVyYW5kcyBhbmQgcmV0dXJucyB0aGUKLy8vICAgIHN1bSBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0Ci8vLyAgICBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFNEIC8gQUREU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHN1bSBvZiB0aGUgbG93ZXIgNjQgYml0cyBvZiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkCi8vLyAgICBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX2FbMF0gKz0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCi8vLyBBZGRzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERQRCAvIEFERFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkoKF9fdjJkZilfX2EgKyAoX192MmRmKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kCi8vLyAgICBmcm9tIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZgovLy8gICAgdGhlIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJTRCAvIFNVQlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWludWVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBkaWZmZXJlbmNlIG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSAtPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIFN1YnRyYWN0cyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1VCUEQgLyBTVUJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hIC0gKF9fdjJkZilfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpbiBib3RoIG9wZXJhbmRzIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgcHJvZHVjdCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNVUxTRCAvIE1VTFNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBwcm9kdWN0IG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSAqPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIE11bHRpcGxpZXMgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1VTFBEIC8gTVVMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hICogKF9fdjJkZilfX2IpOwp9CgovLy8gRGl2aWRlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiB0aGUgZmlyc3Qgb3BlcmFuZCBieSB0aGUKLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcXVvdGllbnQgaW4gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWU0QgLyBESVZTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBkaXZpc29yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgcXVvdGllbnQgb2YgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlCi8vLyAgICBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9kaXZfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19hWzBdIC89IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gUGVyZm9ybXMgYW4gZWxlbWVudC1ieS1lbGVtZW50IGRpdmlzaW9uIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWUEQgLyBESVZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGl2aXNvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Rpdl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hIC8gKF9fdjJkZilfX2IpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YKLy8vICAgIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyBpdCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gICAgVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUU0QgLyBTUVJUU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgdXBwZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIGNvcGllZCB0byB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBzcXVhcmUgcm9vdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoaXMgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHNxdWFyZSByb290IG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIG9wZXJhbmQgXGEgX19iLCBhbmQgd2hvc2UgdXBwZXIgNjQKLy8vICAgIGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIG9wZXJhbmQgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3FydF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX20xMjhkIF9fYyA9IF9fYnVpbHRpbl9pYTMyX3NxcnRzZCgoX192MmRmKV9fYik7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290IG9mIHRoZSBlYWNoIG9mIHR3byB2YWx1ZXMgc3RvcmVkIGluIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1FSVFBEIC8gU1FSVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlCi8vLyAgICB2YWx1ZXMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcXJ0X3BkKF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NxcnRwZCgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyBsb3dlciA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgYm90aCBvcGVyYW5kcywgYW5kCi8vLyAgICByZXR1cm5zIHRoZSBsZXNzZXIgb2YgdGhlIHBhaXIgb2YgdmFsdWVzIGluIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1JTlNEIC8gTUlOU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtaW5pbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21pbnNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBkb3VibGVdIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVzc2VyIG9mIGVhY2ggcGFpciBvZgovLy8gICAgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNSU5QRCAvIE1JTlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZXMKLy8vICAgIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21pbl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbWlucGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGxvd2VyIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiBib3RoIG9wZXJhbmRzLCBhbmQKLy8vICAgIHJldHVybnMgdGhlIGdyZWF0ZXIgb2YgdGhlIHBhaXIgb2YgdmFsdWVzIGluIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BWFNEIC8gTUFYU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtYXhpbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBkb3VibGVdIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgY29udGFpbmluZyB0aGUgZ3JlYXRlciBvZiBlYWNoIHBhaXIKLy8vICAgIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFYUEQgLyBNQVhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5EIC8gUEFORCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYW5kX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkoKF9fdjJkdSlfX2EgJiAoX192MmR1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLCB1c2luZwovLy8gICAgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5ETiAvIFBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4gVGhlCi8vLyAgICBvbmUncyBjb21wbGVtZW50IG9mIHRoaXMgdmFsdWUgaXMgdXNlZCBpbiB0aGUgYml0d2lzZSBBTkQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByaWdodCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgQU5EIG9mIHRoZQovLy8gICAgdmFsdWVzIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYW5kbm90X3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkofihfX3YyZHUpX19hICYgKF9fdjJkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIE9SIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQT1IgLyBQT1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgT1Igb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fb3JfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKSgoX192MmR1KV9fYSB8IChfX3YyZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBYT1Igb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBYT1IgLyBQWE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBiaXR3aXNlIFhPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV94b3JfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKSgoX192MmR1KV9fYSBeIChfX3YyZHUpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAKLy8vICAgIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBFUVBEIC8gQ01QRVFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBlcXBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIGxlc3MgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuIEVhY2ggY29tcGFyaXNvbgovLy8gICAgeWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRQRCAvIENNUExUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsdF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbHRwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVBEIC8gQ01QTEVQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGxlX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsZXBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExUUEQgLyBDTVBMVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcGx0cGQoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTEVQRCAvIENNUExFUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBnZV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbGVwZCgoX192MmRmKV9fYiwgKF9fdjJkZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBvcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgQSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIGVhY2gKLy8vICAgIG90aGVyIGlmIG5laXRoZXIgdmFsdWUgaXMgYSBOYU4uIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwKLy8vICAgIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QT1JEUEQgLyBDTVBPUkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG9yZF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wb3JkcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgdW5vcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgQSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAidW5vcmRlcmVkIiB3aXRoIHJlc3BlY3QgdG8gZWFjaAovLy8gICAgb3RoZXIgaWYgb25lIG9yIGJvdGggdmFsdWVzIGFyZSBOYU4uIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvcgovLy8gICAgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QVU5PUkRQRCAvIENNUFVOT1JEUEQgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXB1bm9yZF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wdW5vcmRwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSB1bmVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkVRUEQgLyBDTVBORVFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5lcV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbmVxcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGxlc3MgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFBEIC8gQ01QTkxUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sdHBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTEVQRCAvIENNUE5MRVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmxlX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBubGVwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUUEQgLyBDTVBOTFRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5ndF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbmx0cGQoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MRVBEIC8gQ01QTkxFUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBuZ2VfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sZXBkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIGZvciBlcXVhbGl0eS4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBFUVNEIC8gQ01QRVFTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBlcXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFNEIC8gQ01QTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsdHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVNEIC8gQ01QTEVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGxlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsZXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlCi8vLyAgICBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFNEIC8gQ01QTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3Rfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19tMTI4ZCBfX2MgPSBfX2J1aWx0aW5faWEzMl9jbXBsdHNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExFU0QgLyBDTVBMRVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ2Vfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19tMTI4ZCBfX2MgPSBfX2J1aWx0aW5faWEzMl9jbXBsZXNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLiBBIHBhaXIKLy8vICAgIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIGVhY2ggb3RoZXIgaWYKLy8vICAgIG5laXRoZXIgdmFsdWUgaXMgYSBOYU4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE9SRFNEIC8gQ01QT1JEU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBvcmRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG9yZHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgInVub3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLiBBIHBhaXIKLy8vICAgIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAidW5vcmRlcmVkIiB3aXRoIHJlc3BlY3QgdG8gZWFjaCBvdGhlciBpZgovLy8gICAgb25lIG9yIGJvdGggdmFsdWVzIGFyZSBOYU4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFVOT1JEU0QgLyBDTVBVTk9SRFNEIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wdW5vcmRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcHVub3Jkc2QoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyB1bmVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBORVFTRCAvIENNUE5FUVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmVxX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBuZXFzZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIG5vdCBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcKLy8vICAgIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFNEIC8gQ01QTkxUU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sdHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFU0QgLyBDTVBOTEVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyAgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubGVfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sZXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgY29ycmVzcG9uZGluZwovLy8gICAgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUU0QgLyBDTVBOTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5ndF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX20xMjhkIF9fYyA9IF9fYnVpbHRpbl9pYTMyX2NtcG5sdHNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTEVTRCAvIENNUE5MRVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmdlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fbTEyOGQgX19jID0gX19idWlsdGluX2lhMzJfY21wbmxlc2QoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4ZCkgeyBfX2NbMF0sIF9fYVsxXSB9Owp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSBmb3IgZXF1YWxpdHkuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWllcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkZXEoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4KLy8vICAgIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNEIC8gQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pc2RsdCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlsZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkbGUoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUKLy8vICAgIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNEIC8gQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWd0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pc2RndCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlnZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkZ2UoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyB1bmVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTRCAvIENPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWluZXFfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWlzZG5lcSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSBmb3IgZXF1YWxpdHkuIFRoZQovLy8gICAgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWllcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGVxKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU0QgLyBVQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taWx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taXNkbHQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVUNPTUlTRCAvIFVDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pbGVfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pc2RsZSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZQovLy8gICAgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlcgovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlndF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGd0KChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuICBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlnZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGdlKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdW5lcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbgovLy8gICAgdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlcgovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0LiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taW5lcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZG5lcSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29udmVydHMgdGhlIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIHR3byBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50Ci8vLyAgICB2YWx1ZXMsIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyAgICBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IHZlY3RvciBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBEMlBTIC8gQ1ZUUEQyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRwZF9wcyhfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRwZDJwcygoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgbG93ZXIgdHdvIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludAovLy8gICAgdmFsdWVzLCByZXR1cm5lZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIHR3bwovLy8gICAgZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJQRCAvIENWVFBTMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIHR3byBzaW5nbGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBhcmUgY29udmVydGVkIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLiBUaGUKLy8vICAgIHVwcGVyIHR3byBlbGVtZW50cyBhcmUgdW51c2VkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHBzX3BkKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDAsIDEpLCBfX3YyZGYpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvd2VyIHR3byBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggaTMyXSBpbnRvIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcywgcmV0dXJuZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vICAgIFRoZSB1cHBlciB0d28gZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlREUTJQRCAvIENWVERRMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIGxvd2VyIHR3byBpbnRlZ2VyIGVsZW1lbnRzIGFyZQovLy8gICAgY29udmVydGVkIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLgovLy8KLy8vICAgIFRoZSB1cHBlciB0d28gZWxlbWVudHMgYXJlIHVudXNlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkzMl9wZChfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19hLCAoX192NHNpKV9fYSwgMCwgMSksIF9fdjJkZik7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgdHdvIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGludG8gdHdvIHNpZ25lZCAzMi1iaXQgaW50ZWdlciB2YWx1ZXMsCi8vLyAgICByZXR1cm5lZCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIG9mIHRoZSByZXN1bHQgdmVjdG9yIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUEQyRFEgLyBDVlRQRDJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0cGRfZXBpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0cGQyZHEoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvdy1vcmRlciBlbGVtZW50IG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdCi8vLyAgICBpbnRvIGEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTRDJTSSAvIENWVFNEMlNJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2Rfc2kzMihfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzZDJzaSgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50IG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIsIGludG8gYQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSwgcmV0dXJuZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSByZXN1bHQgdmVjdG9yIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDk2IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0QyU1MgLyBDVlRTRDJTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA5NiBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgaXMgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgZnJvbSB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzZF9zcyhfX20xMjggX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHNkMnNzKChfX3Y0c2YpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb252ZXJ0cyBhIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSwgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIsIGludG8KLy8vICAgIGEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSwgcmV0dXJuZWQgaW4gdGhlIGxvd2VyIDY0IGJpdHMgb2YKLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IHZlY3RvcgovLy8gICAgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNJMlNEIC8gQ1ZUU0kyU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlCi8vLyAgICBjb3BpZWQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIGZyb20gdGhlIHNlY29uZCBwYXJhbWV0ZXIuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQKLy8vICAgIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMzJfc2QoX19tMTI4ZCBfX2EsIGludCBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSBsb3dlciBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0sIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLCBpbnRvIGEKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUsIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCB2ZWN0b3IKLy8vICAgIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTUzJTRCAvIENWVFNTMlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB1cHBlciA2NCBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyB1c2VkIGluIHRoZSBjb252ZXJzaW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgZnJvbSB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c3Nfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byB0d28gc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcywKLy8vICAgIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8KLy8vICAgIElmIHRoZSByZXN1bHQgb2YgZWl0aGVyIGNvbnZlcnNpb24gaXMgaW5leGFjdCwgdGhlIHJlc3VsdCBpcyB0cnVuY2F0ZWQKLy8vICAgIChyb3VuZGVkIHRvd2FyZHMgemVybykgcmVnYXJkbGVzcyBvZiB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nLiBUaGUgdXBwZXIKLy8vICAgIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCB2ZWN0b3IgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUUEQyRFEgLyBDVlRUUEQyRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvbnZlcnRlZCB2YWx1ZXMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRwZF9lcGkzMihfX20xMjhkIF9fYSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHEoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvdy1vcmRlciBlbGVtZW50IG9mIGEgWzIgeCBkb3VibGVdIHZlY3RvciBpbnRvIGEgMzItYml0Ci8vLyAgICBzaWduZWQgaW50ZWdlciB2YWx1ZSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNEMlNJIC8gQ1ZUVFNEMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dHNkX3NpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNkMnNpKChfX3YyZGYpX19hKTsKfQoKLy8vIENvbnZlcnRzIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byB0d28gc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcywKLy8vICAgIHJldHVybmVkIGluIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEQyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGRfcGkzMihfX20xMjhkIF9fYSkKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfY3Z0cGQycGkoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIHR3byBzaWduZWQgMzItYml0IGludGVnZXIgdmFsdWVzLAovLy8gICAgcmV0dXJuZWQgaW4gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyAgICBJZiB0aGUgcmVzdWx0IG9mIGVpdGhlciBjb252ZXJzaW9uIGlzIGluZXhhY3QsIHRoZSByZXN1bHQgaXMgdHJ1bmNhdGVkCi8vLyAgICAocm91bmRlZCB0b3dhcmRzIHplcm8pIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgTVhDU1Igc2V0dGluZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRUUEQyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0dHBkX3BpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJwaSgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgdHdvIHNpZ25lZCAzMi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhIDY0LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggaTMyXSBpbnRvIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcywgcmV0dXJuZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGkzMl9wZChfX202NCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0cGkycGQoKF9fdjJzaSlfX2EpOwp9CgovLy8gUmV0dXJucyB0aGUgbG93LW9yZGVyIGVsZW1lbnQgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gYXMKLy8vICAgIGEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSByZXR1cm5lZC4KLy8vIFxyZXR1cm5zIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSBjb3BpZWQgZnJvbSB0aGUgbG93ZXIgNjQKLy8vICAgIGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzZF9mNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CgovLy8gTG9hZHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gZnJvbSBhbiBhbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQRCAvIE1PVkFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gaGFzIHRvIGJlIDE2LWJ5dGUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkX3BkKGRvdWJsZSBjb25zdCAqX19kcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTEyOGQqKV9fZHA7Cn0KCi8vLyBMb2FkcyBhIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgZnJvbSBhIHNwZWNpZmllZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGFuZCBkdXBsaWNhdGVzIGl0IHRvIGJvdGggdmVjdG9yIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRERVUCAvIE1PVkREVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIGFuZAovLy8gICAgZHVwbGljYXRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkMV9wZChkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkMV9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBkb3VibGUgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkMV9wZF9zdHJ1Y3QqKV9fZHApLT5fX3U7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3UsIF9fdSB9Owp9CgojZGVmaW5lICAgICAgICBfbW1fbG9hZF9wZDEoZHApICAgICAgICBfbW1fbG9hZDFfcGQoZHApCgovLy8gTG9hZHMgdHdvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLCBpbiByZXZlcnNlIG9yZGVyLCBmcm9tIGFuIGFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUEQgLyBNT1ZBUEQgPC9jPiBpbnN0cnVjdGlvbiArCi8vLyBuZWVkZWQgc2h1ZmZsaW5nIGluc3RydWN0aW9ucy4gSW4gQVZYIG1vZGUsIHRoZSBzaHVmZmxpbmcgbWF5IGJlIGNvbWJpbmVkCi8vLyB3aXRoIHRoZSBcYyBWTU9WQVBELCByZXN1bHRpbmcgaW4gb25seSBhIFxjIFZQRVJNSUxQRCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSAxNi1ieXRlIGFsaWduZWQgcG9pbnRlciB0byBhbiBhcnJheSBvZiBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyB0byBiZQovLy8gICAgbG9hZGVkIGluIHJldmVyc2Ugb3JkZXIuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByZXZlcnNlZCBsb2FkZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRyX3BkKGRvdWJsZSBjb25zdCAqX19kcCkKewogIF9fbTEyOGQgX191ID0gKihjb25zdCBfX20xMjhkKilfX2RwOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fdSwgKF9fdjJkZilfX3UsIDEsIDApOwp9CgovLy8gTG9hZHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gZnJvbSBhbgovLy8gICAgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBEIC8gTU9WVVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHVfcGQoZG91YmxlIGNvbnN0ICpfX2RwKQp7CiAgc3RydWN0IF9fbG9hZHVfcGQgewogICAgX19tMTI4ZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wZCopX19kcCktPl9fdjsKfQoKLy8vIExvYWRzIGEgNjQtYml0IGludGVnZXIgdmFsdWUgdG8gdGhlIGxvdyBlbGVtZW50IG9mIGEgMTI4LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IgYW5kIGNsZWFycyB0aGUgdXBwZXIgZWxlbWVudC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkdV9zaTY0KHZvaWQgY29uc3QgKl9fYSkKewogIHN0cnVjdCBfX2xvYWR1X3NpNjQgewogICAgbG9uZyBsb25nIF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBsb25nIGxvbmcgX191ID0gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9zaTY0KilfX2EpLT5fX3Y7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjJkaSl7X191LCAwTEx9Owp9CgovLy8gTG9hZHMgYSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWR1X3NpMzIodm9pZCBjb25zdCAqX19hKQp7CiAgc3RydWN0IF9fbG9hZHVfc2kzMiB7CiAgICBpbnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludCBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3NpMzIqKV9fYSktPl9fdjsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192NHNpKXtfX3UsIDAsIDAsIDB9Owp9CgovLy8gTG9hZHMgYSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBwb2ludGVyIHRvIGEgMTYtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHVfc2kxNih2b2lkIGNvbnN0ICpfX2EpCnsKICBzdHJ1Y3QgX19sb2FkdV9zaTE2IHsKICAgIHNob3J0IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBzaG9ydCBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3NpMTYqKV9fYSktPl9fdjsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192OGhpKXtfX3UsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Owp9CgovLy8gTG9hZHMgYSA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTRCAvIE1PVlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgZG91YmxlLXByZWNpc2lvbiB2YWx1ZS4KLy8vICAgIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9zZChkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkX3NkX3N0cnVjdCB7CiAgICBkb3VibGUgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGRvdWJsZSBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX21tX2xvYWRfc2Rfc3RydWN0KilfX2RwKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX191LCAwIH07Cn0KCi8vLyBMb2FkcyBhIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaW50byB0aGUgaGlnaC1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdAovLy8gICAgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvdy1vcmRlciBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgbG93LW9yZGVyCi8vLyAgICBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZIUEQgLyBNT1ZIUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNjQtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgdmFsdWUgdGhhdCBpcyBsb2FkZWQuIFRoZSBsb2FkZWQgdmFsdWUgaXMgd3JpdHRlbiB0byBiaXRzCi8vLyAgICBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90IGhhdmUKLy8vICAgIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkaF9wZChfX20xMjhkIF9fYSwgZG91YmxlIGNvbnN0ICpfX2RwKQp7CiAgc3RydWN0IF9fbW1fbG9hZGhfcGRfc3RydWN0IHsKICAgIGRvdWJsZSBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgZG91YmxlIF9fdSA9ICgoY29uc3Qgc3RydWN0IF9fbW1fbG9hZGhfcGRfc3RydWN0KilfX2RwKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX19hWzBdLCBfX3UgfTsKfQoKLy8vIExvYWRzIGEgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpbnRvIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBoaWdoLW9yZGVyIGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZQovLy8gICAgaGlnaC1vcmRlciBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUEQgLyBNT1ZMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBhIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlIHRoYXQgaXMgbG9hZGVkLiBUaGUgbG9hZGVkIHZhbHVlIGlzIHdyaXR0ZW4gdG8gYml0cwovLy8gICAgWzYzOjBdIG9mIHRoZSByZXN1bHQuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0bwovLy8gICAgYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRsX3BkKF9fbTEyOGQgX19hLCBkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkbF9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBkb3VibGUgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkbF9wZF9zdHJ1Y3QqKV9fZHApLT5fX3U7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3UsIF9fYVsxXSB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aXRoCi8vLyAgICB1bnNwZWNpZmllZCBjb250ZW50LiBUaGlzIGNvdWxkIGJlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gYW5vdGhlcgovLy8gICAgaW50cmluc2ljIGZ1bmN0aW9uIHdoZXJlIHRoZSBhcmd1bWVudCBpcyByZXF1aXJlZCBidXQgdGhlIHZhbHVlIGlzIG5vdAovLy8gICAgYWN0dWFsbHkgdXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2l0aCB1bnNwZWNpZmllZAovLy8gICAgY29udGVudC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VuZGVmaW5lZF9wZCh2b2lkKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3VuZGVmMTI4KCk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgb2YgdGhlIHZlY3RvciBhcmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG93ZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfc2QoZG91YmxlIF9fdykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX193LCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLCB3aXRoIGVhY2gKLy8vICAgIG9mIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkREVVAgLyBNT1ZMSFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9wZChkb3VibGUgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3csIF9fdyB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgd2l0aCBlYWNoCi8vLyAgICBvZiB0aGUgdHdvIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUKLy8vICAgIHNwZWNpZmllZCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQIC8gTU9WTEhQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9wZDEoZG91YmxlIF9fdykKewogIHJldHVybiBfbW1fc2V0MV9wZChfX3cpOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXQovLy8gICAgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQRCAvIFVOUENLTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3gKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDY0Ci8vLyAgICBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcGQoZG91YmxlIF9fdywgZG91YmxlIF9feCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX194LCBfX3cgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0sCi8vLyAgICBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyIHdpdGggdGhlIHNwZWNpZmllZCBkb3VibGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLTFBEIC8gVU5QQ0tMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciA2NAovLy8gICAgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9feAovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfcGQoZG91YmxlIF9fdywgZG91YmxlIF9feCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX193LCBfX3ggfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0KLy8vICAgIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIC8gWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2l0aAovLy8gICAgYWxsIGVsZW1lbnRzIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0emVyb19wZCh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyAwLCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgYXJlIHNldCB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRQRCAvIEJMRU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHdyaXR0ZW4gdG8gdGhlCi8vLyAgICB1cHBlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIHdyaXR0ZW4gdG8gdGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSA9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0QgLyBNT1ZTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVfc2QoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX21tX3N0b3JlX3NkX3N0cnVjdCB7CiAgICBkb3VibGUgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fbW1fc3RvcmVfc2Rfc3RydWN0KilfX2RwKS0+X191ID0gX19hWzBdOwp9CgovLy8gTW92ZXMgcGFja2VkIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdIHRvIGEgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+Vk1PVkFQRCAvIE1PVkFQUzwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhbiBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBzdG9yZSB0d28KLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBwYWNrZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZQovLy8gICAgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9wZChkb3VibGUgKl9fZHAsIF9fbTEyOGQgX19hKQp7CiAgKihfX20xMjhkKilfX2RwID0gX19hOwp9CgovLy8gTW92ZXMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdHdpY2UgdG8KLy8vICAgIHRoZSB1cHBlciBhbmQgbG93ZXIgNjQgYml0cyBvZiBhIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgIDxjPiBWTU9WRERVUCArIFZNT1ZBUEQgLyBNT1ZMSFBTICsgTU9WQVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBzdG9yZSB0d28gZG91YmxlLXByZWNpc2lvbgovLy8gICAgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBhcmUgY29waWVkIHRvIGVhY2gKLy8vICAgIG9mIHRoZSB2YWx1ZXMgaW4gXGEgX19kcC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlMV9wZChkb3VibGUgKl9fZHAsIF9fbTEyOGQgX19hKQp7CiAgX19hID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19hLCAwLCAwKTsKICBfbW1fc3RvcmVfcGQoX19kcCwgX19hKTsKfQoKLy8vIE1vdmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHR3aWNlIHRvCi8vLyAgICB0aGUgdXBwZXIgYW5kIGxvd2VyIDY0IGJpdHMgb2YgYSBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICA8Yz4gVk1PVkREVVAgKyBWTU9WQVBEIC8gTU9WTEhQUyArIE1PVkFQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjYW4gc3RvcmUgdHdvIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgYXJlIGNvcGllZCB0byBlYWNoCi8vLyAgICBvZiB0aGUgdmFsdWVzIGluIFxhIF9fZHAuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9wZDEoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIF9tbV9zdG9yZTFfcGQoX19kcCwgX19hKTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGFuIHVuYWxpZ25lZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZVUEQgLyBNT1ZVUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX3N0b3JldV9wZCB7CiAgICBfX20xMjhkX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BkKilfX2RwKS0+X192ID0gX19hOwp9CgovLy8gU3RvcmVzIHR3byBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcywgaW4gcmV2ZXJzZSBvcmRlciwgZnJvbSBhIDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYSAxNi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byBhIHNodWZmbGluZyBpbnN0cnVjdGlvbiBmb2xsb3dlZCBieSBhCi8vLyA8Yz4gVk1PVkFQRCAvIE1PVkFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxNi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgY2FuIHN0b3JlIHR3bwovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgcmV2ZXJzZWQgYW5kCi8vLyAgICBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXJfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19hLCAoX192MmRmKV9fYSwgMSwgMCk7CiAgKihfX20xMjhkICopX19kcCA9IF9fYTsKfQoKLy8vIFN0b3JlcyB0aGUgdXBwZXIgNjQgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkhQRCAvIE1PVkhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVoX3BkKGRvdWJsZSAqX19kcCwgX19tMTI4ZCBfX2EpCnsKICBzdHJ1Y3QgX19tbV9zdG9yZWhfcGRfc3RydWN0IHsKICAgIGRvdWJsZSBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWhfcGRfc3RydWN0KilfX2RwKS0+X191ID0gX19hWzFdOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTFBEIC8gTU9WTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZWxfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX21tX3N0b3JlaF9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX21tX3N0b3JlaF9wZF9zdHJ1Y3QqKV9fZHApLT5fX3UgPSBfX2FbMF07Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzE2IHggaThdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciA4IGJpdHMgb2YgZWFjaCBzdW0gaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhCi8vLyAgICAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8KLy8vICAgIFRoZSBpbnRlZ2VyIGVsZW1lbnRzIG9mIGJvdGggcGFyYW1ldGVycyBjYW4gYmUgZWl0aGVyIHNpZ25lZCBvciB1bnNpZ25lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFEREIgLyBQQUREQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YxNnF1KV9fYSArIChfX3YxNnF1KV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzggeCBpMTZdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciAxNiBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERXIC8gUEFERFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjhodSlfX2EgKyAoX192OGh1KV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBpMzJdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciAzMiBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBREREIC8gUEFEREQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjRzdSlfX2EgKyAoX192NHN1KV9fYik7Cn0KCi8vLyBBZGRzIHR3byBzaWduZWQgb3IgdW5zaWduZWQgNjQtYml0IGludGVnZXIgdmFsdWVzLCByZXR1cm5pbmcgdGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIG9mIHRoZSBzdW0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlci4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgc3VtIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fYWRkX3NpNjQoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGRxKChfX3YxZGkpX19hLCAoX192MWRpKV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBpNjRdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciA2NCBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERRIC8gUEFERFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgKyAoX192MmR1KV9fYik7Cn0KCi8vLyBBZGRzLCB3aXRoIHNhdHVyYXRpb24sIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0Ci8vLyAgICBzaWduZWQgWzE2IHggaThdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mCi8vLyAgICBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlCi8vLyAgICBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERTQiAvIFBBRERTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3RvciBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQgc3VtcyBvZgovLy8gICAgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc19lcGk4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWRkc2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3JzLCBzYXZpbmcgZWFjaCBzdW0gaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZgovLy8gICAgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBQb3NpdGl2ZSBzdW1zIGdyZWF0ZXIgdGhhbiAweDdGRkYKLy8vICAgIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBOZWdhdGl2ZSBzdW1zIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0bwovLy8gICAgMHg4MDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQUREU1cgLyBQQUREU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2F0dXJhdGVkIHN1bXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhZGRzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgdW5zaWduZWQgWzE2IHggaThdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50Ci8vLyAgICBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuIDB4RkYKLy8vICAgIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gTmVnYXRpdmUgc3VtcyBhcmUgc2F0dXJhdGVkIHRvIDB4MDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERVU0IgLyBQQUREVVNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZCBzdW1zCi8vLyAgICBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX2VwdTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhZGR1c2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgdW5zaWduZWQgWzggeCBpMTZdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50Ci8vLyAgICBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweEZGRkYgYXJlIHNhdHVyYXRlZCB0byAweEZGRkYuIE5lZ2F0aXZlIHN1bXMgYXJlIHNhdHVyYXRlZCB0byAweDAwMDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERVU0IgLyBQQUREVVNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZCBzdW1zCi8vLyAgICBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWRkdXN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBDb21wdXRlcyB0aGUgcm91bmRlZCBhdmVyYWdlcyBvZiBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3bwovLy8gICAgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9ycywgc2F2aW5nIGVhY2ggcmVzdWx0IGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFWR0IgLyBQQVZHQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZGVkCi8vLyAgICBhdmVyYWdlcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hdmdfZXB1OChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGF2Z2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQ29tcHV0ZXMgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28KLy8vICAgIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHJlc3VsdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBVkdXIC8gUEFWR1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgcm91bmRlZAovLy8gICAgYXZlcmFnZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYXZnX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYXZndzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBwcm9kdWNpbmcgZWlnaHQgaW50ZXJtZWRpYXRlIDMyLWJpdCBzaWduZWQgaW50ZWdlciBwcm9kdWN0cywgYW5kCi8vLyAgICBhZGRzIHRoZSBjb25zZWN1dGl2ZSBwYWlycyBvZiAzMi1iaXQgcHJvZHVjdHMgdG8gZm9ybSBhIDEyOC1iaXQgc2lnbmVkCi8vLyAgICBbNCB4IGkzMl0gdmVjdG9yLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFsxNTowXSBvZiBib3RoIHBhcmFtZXRlcnMgYXJlIG11bHRpcGxpZWQgcHJvZHVjaW5nIGEKLy8vICAgIDMyLWJpdCBwcm9kdWN0LCBiaXRzIFszMToxNl0gb2YgYm90aCBwYXJhbWV0ZXJzIGFyZSBtdWx0aXBsaWVkIHByb2R1Y2luZwovLy8gICAgYSAzMi1iaXQgcHJvZHVjdCwgYW5kIHRoZSBzdW0gb2YgdGhvc2UgdHdvIHByb2R1Y3RzIGJlY29tZXMgYml0cyBbMzE6MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNQUREV0QgLyBQTUFERFdEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHNpZ25lZCBbNCB4IGkzMl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMKLy8vICAgIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGRfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtYWRkd2QxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XQovLy8gICAgdmVjdG9ycywgc2F2aW5nIHRoZSBncmVhdGVyIHZhbHVlIGZyb20gZWFjaCBjb21wYXJpc29uIGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFNXIC8gUE1BWFNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWUgb2YKLy8vICAgIGVhY2ggY29tcGFyaXNvbi4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1heHN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XQovLy8gICAgdmVjdG9ycywgc2F2aW5nIHRoZSBncmVhdGVyIHZhbHVlIGZyb20gZWFjaCBjb21wYXJpc29uIGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFVCIC8gUE1BWFVCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWUgb2YKLy8vICAgIGVhY2ggY29tcGFyaXNvbi4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcHU4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWF4dWIxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHNtYWxsZXIgdmFsdWUgZnJvbSBlYWNoIGNvbXBhcmlzb24gaW4gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOU1cgLyBQTUlOU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc21hbGxlciB2YWx1ZSBvZgovLy8gICAgZWFjaCBjb21wYXJpc29uLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWluc3cxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHNtYWxsZXIgdmFsdWUgZnJvbSBlYWNoIGNvbXBhcmlzb24gaW4gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOVUIgLyBQTUlOVUIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc21hbGxlciB2YWx1ZSBvZgovLy8gICAgZWFjaCBjb21wYXJpc29uLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwdTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtaW51YjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHVwcGVyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSByZXN1bHQgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMSFcgLyBQTVVMSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgdXBwZXIgMTYgYml0cyBvZgovLy8gICAgZWFjaCBvZiB0aGUgZWlnaHQgMzItYml0IHByb2R1Y3RzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsaGlfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtdWxodzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gdW5zaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHVwcGVyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHJlc3VsdCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNVUxIVVcgLyBQTVVMSFVXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHVwcGVyIDE2IGJpdHMKLy8vICAgIG9mIGVhY2ggb2YgdGhlIGVpZ2h0IDMyLWJpdCBwcm9kdWN0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhpX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbXVsaHV3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSByZXN1bHQgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMTFcgLyBQTVVMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgbG93ZXIgMTYgYml0cyBvZgovLy8gICAgZWFjaCBvZiB0aGUgZWlnaHQgMzItYml0IHByb2R1Y3RzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsbG9fZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGh1KV9fYSAqIChfX3Y4aHUpX19iKTsKfQoKLy8vIE11bHRpcGxpZXMgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgYml0cwovLy8gICAgb2YgdGhlIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIGFuZCByZXR1cm5zIHRoZSA2NC1iaXQgdW5zaWduZWQKLy8vICAgIHByb2R1Y3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1VTFVEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3Qgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbXVsX3N1MzIoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG11bHVkcSgoX192MnNpKV9fYSwgKF9fdjJzaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBsb3dlcgovLy8gICAgYml0cyBvZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gWzIgeCBpNjRdIHZlY3RvcnMsIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgNjQtYml0IHByb2R1Y3RzIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIGEgWzIgeCBpNjRdIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1VTFVEUSAvIFBNVUxVRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIFsyIHggaTY0XSB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgWzIgeCBpNjRdIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSBbMiB4IGk2NF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3Qgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9lcHUzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG11bHVkcTEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IpOwp9CgovLy8gQ29tcHV0ZXMgdGhlIGFic29sdXRlIGRpZmZlcmVuY2VzIG9mIGNvcnJlc3BvbmRpbmcgOC1iaXQgaW50ZWdlcgovLy8gICAgdmFsdWVzIGluIHR3byAxMjgtYml0IHZlY3RvcnMuIFN1bXMgdGhlIGZpcnN0IDggYWJzb2x1dGUgZGlmZmVyZW5jZXMsIGFuZAovLy8gICAgc2VwYXJhdGVseSBzdW1zIHRoZSBzZWNvbmQgOCBhYnNvbHV0ZSBkaWZmZXJlbmNlcy4gUGFja3MgdGhlc2UgdHdvCi8vLyAgICB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlciBzdW1zIGludG8gdGhlIHVwcGVyIGFuZCBsb3dlciBlbGVtZW50cyBvZiBhCi8vLyAgICBbMiB4IGk2NF0gdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0FEQlcgLyBQU0FEQlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSBbMiB4IGk2NF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgdGhlIHNldHMgb2YgYWJzb2x1dGUKLy8vICAgIGRpZmZlcmVuY2VzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NhZF9lcHU4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2FkYncxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IGludGVnZXIgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQkIgLyBQU1VCQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzCi8vLyAgICBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YxNnF1KV9fYSAtIChfX3YxNnF1KV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXIgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlcgLyBQU1VCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzCi8vLyAgICBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGh1KV9fYSAtIChfX3Y4aHUpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIG9wZXJhbmRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1VCRCAvIFBTVUJEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y0c3UpX19hIC0gKF9fdjRzdSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIHNpZ25lZCBvciB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB2YWx1ZXMgYW5kIHdyaXRlcyB0aGUKLy8vICAgIGRpZmZlcmVuY2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNVQlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2Ugb2YgdGhlIHZhbHVlcyBpbgovLy8gICAgdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zdWJfc2k2NChfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnEoKF9fdjFkaSlfX2EsIChfX3YxZGkpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gWzIgeCBpNjRdIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTVUJRIC8gUFNVQlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YgdGhlIHZhbHVlcwovLy8gICAgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgLSAoX192MmR1KV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgY29ycmVzcG9uZGluZyA4LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0IGFuZAovLy8gICAgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gICAgRGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLCBhbmQgZGlmZmVyZW5jZXMgbGVzcwovLy8gICAgdGhhbiAweDgwIGFyZSBzYXR1cmF0ZWQgdG8gMHg4MC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlNCIC8gUFNVQlNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHN1YnNiMTI4KChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyBjb3JyZXNwb25kaW5nIDE2LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0IGFuZAovLy8gICAgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gICAgRGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRiwgYW5kIHZhbHVlcyBsZXNzCi8vLyAgICB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlNXIC8gUFNVQlNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzdWJzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIGNvcnJlc3BvbmRpbmcgOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0Ci8vLyAgICBhbmQgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gRGlmZmVyZW5jZXMgbGVzcyB0aGFuIDB4MDAgYXJlIHNhdHVyYXRlZCB0byAweDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1VCVVNCIC8gUFNVQlVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXB1OChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHN1YnVzYjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0Ci8vLyAgICBhbmQgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gRGlmZmVyZW5jZXMgbGVzcyB0aGFuIDB4MDAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4MDAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlVTVyAvIFBTVUJVU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgZGlmZmVyZW5jZXMgb2YgdGhlIHZhbHVlcyBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJzX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3VidXN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFORCAvIFBBTkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgQU5EIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hbmRfc2kxMjgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MmR1KV9fYSAmIChfX3YyZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdHdvIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzLCB1c2luZyB0aGUKLy8vICAgIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5ETiAvIFBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0IHNvdXJjZSBvcGVyYW5kLiBUaGUgb25lJ3MgY29tcGxlbWVudAovLy8gICAgb2YgdGhpcyB2YWx1ZSBpcyB1c2VkIGluIHRoZSBiaXR3aXNlIEFORC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIG9uZSdzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCB0aGUgdmFsdWVzIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZG5vdF9zaTEyOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKH4oX192MmR1KV9fYSAmIChfX3YyZHUpX19iKTsKfQovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIE9SIG9mIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE9SIC8gUE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIE9SIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9vcl9zaTEyOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZHUpX19hIHwgKF9fdjJkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiB0d28gMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBYT1IgLyBQWE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBpbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1feG9yX3NpMTI4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgXiAoX192MmR1KV9fYik7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQKLy8vICAgIG51bWJlciBvZiBieXRlcy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9zbGxpX3NpMTI4KF9fbTEyOGkgYSwgY29uc3QgaW50IGltbSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEUSAvIFBTTExEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gaW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGxlZnQtc2hpZnQgb3BlcmFuZAovLy8gICAgXGEgYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQgdmFsdWUuCiNkZWZpbmUgX21tX3NsbGlfc2kxMjgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGxkcWkxMjhfYnl0ZXNoaWZ0KChfX3YyZGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX2JzbGxpX3NpMTI4KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsZHFpMTI4X2J5dGVzaGlmdCgoX192MmRpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExXIC8gUFNMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTE2KF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsd2kxMjgoKF9fdjhoaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExXIC8gUFNMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGx3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEIC8gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEIC8gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGxkMTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCA2NC1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExRIC8gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTY0KF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2xscWkxMjgoKF9fdjJkaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCA2NC1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExRIC8gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzbGxxMTI4KChfX3YyZGkpX19hLCAoX192MmRpKV9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IHZhbHVlIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQKLy8vICAgIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24KLy8vICAgIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSQVcgLyBQU1JBVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBiaXRzIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhaV9lcGkxNihfX20xMjhpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXdpMTI4KChfX3Y4aGkpX19hLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIDE2LWJpdCB2YWx1ZSBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kCi8vLyAgICBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduCi8vLyAgICBiaXQgb2YgdGhlIGluaXRpYWwgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkFXIC8gUFNSQVcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXcxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBmaWxsZWQgd2l0aCB0aGUgc2lnbgovLy8gICAgYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JBRCAvIFBTUkFEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEFuIGludGVnZXIgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZQovLy8gICAgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMzItYml0IHZhbHVlIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQKLy8vICAgIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24KLy8vICAgIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSQUQgLyBQU1JBRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgaW4gd2hpY2ggYml0cyBbNjM6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhZDEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQKLy8vICAgIG51bWJlciBvZiBieXRlcy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fc3JsaV9zaTEyOChfX20xMjhpIGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMRFEgLyBQU1JMRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIGltbQovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBieXRlcyB0byByaWdodC1zaGlmdCBvcGVyYW5kCi8vLyAgICBcYSBhLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWUuCiNkZWZpbmUgX21tX3NybGlfc2kxMjgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmxkcWkxMjhfYnl0ZXNoaWZ0KChfX3YyZGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX2JzcmxpX3NpMTI4KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsZHFpMTI4X2J5dGVzaGlmdCgoX192MmRpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggb2YgMTYtYml0IHZhbHVlcyBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZCBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkxXIC8gUFNSTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlCi8vLyAgICBpbiBvcGVyYW5kIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfZXBpMTYoX19tMTI4aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Bzcmx3aTEyOCgoX192OGhpKV9fYSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCBvZiAxNi1iaXQgdmFsdWVzIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSTFcgLyBQU1JMVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgaW4gd2hpY2ggYml0cyBbNjM6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIG9mIDMyLWJpdCB2YWx1ZXMgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMRCAvIFBTUkxEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEFuIGludGVnZXIgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZQovLy8gICAgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggb2YgMzItYml0IHZhbHVlcyBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZCBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkxEIC8gUFNSTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JsX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNybGQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCBvZiA2NC1iaXQgdmFsdWVzIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSTFEgLyBQU1JMUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBiaXRzIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JsaV9lcGk2NChfX20xMjhpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHNybHFpMTI4KChfX3YyZGkpX19hLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIG9mIDY0LWJpdCB2YWx1ZXMgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMUSAvIFBTUkxRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbiB3aGljaCBiaXRzIFs2MzowXSBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZSBpbiBvcGVyYW5kIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzcmxxMTI4KChfX3YyZGkpX19hLCAoX192MmRpKV9fY291bnQpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyBmb3IgZXF1YWxpdHkuIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRgovLy8gICAgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFUUIgLyBQQ01QRVFCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MTZxaSlfX2EgPT0gKF9fdjE2cWkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLAovLy8gICAgMHhGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVFXIC8gUENNUEVRVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y4aGkpX19hID09IChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLAovLy8gICAgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVRRCAvIFBDTVBFUUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192NHNpKV9fYSA9PSAoX192NHNpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBhcmUKLy8vICAgIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvcgovLy8gICAgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBHVEIgLyBQQ01QR1RCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGd0X2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgY29tcGFyaXNvbiwgYnV0IF9fdjE2cWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjE2cXMuICovCiAgcmV0dXJuIChfX20xMjhpKSgoX192MTZxcylfX2EgPiAoX192MTZxcylfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgMTYtYml0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdCBvcGVyYW5kCi8vLyAgICBhcmUgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUVyAvIFBDTVBHVFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGhpKV9fYSA+IChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDMyLWJpdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9ycyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3Qgb3BlcmFuZAovLy8gICAgYXJlIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QR1REIC8gUENNUEdURCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBndF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y0c2kpX19hID4gKF9fdjRzaSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgOC1iaXQgdmFsdWVzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvcnMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0IG9wZXJhbmQgYXJlIGxlc3MKLy8vICAgIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUQiAvIFBDTVBHVEIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gX21tX2NtcGd0X2VwaTgoX19iLCBfX2EpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgMTYtYml0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdCBvcGVyYW5kCi8vLyAgICBhcmUgbGVzcyB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUVyAvIFBDTVBHVFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIF9tbV9jbXBndF9lcGkxNihfX2IsIF9fYSk7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZ25lZCAzMi1iaXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcnMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0IG9wZXJhbmQKLy8vICAgIGFyZSBsZXNzIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdURCAvIFBDTVBHVEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIF9tbV9jbXBndF9lcGkzMihfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBDb252ZXJ0cyBhIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSBmcm9tIHRoZSBzZWNvbmQgb3BlcmFuZCBpbnRvIGEKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgYW5kIHJldHVybnMgaXQgaW4gdGhlIGxvd2VyIGVsZW1lbnQgb2YgYSBbMiB4Ci8vLyAgICBkb3VibGVdIHZlY3RvcjsgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIHJldHVybmVkIHZlY3RvciBpcyBjb3BpZWQgZnJvbQovLy8gICAgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNJMlNEIC8gQ1ZUU0kyU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpNjRfc2QoX19tMTI4ZCBfX2EsIGxvbmcgbG9uZyBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSBmaXJzdCAobG93ZXIpIGVsZW1lbnQgb2YgYSB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGludG8gYQovLy8gICAgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgcm91bmRpbmcgbW9kZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0QyU0kgLyBDVlRTRDJTSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgNjQgYml0cyBhcmUgdXNlZCBpbiB0aGUKLy8vICAgIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBzaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNkX3NpNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0c2Qyc2k2NCgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgZmlyc3QgKGxvd2VyKSBlbGVtZW50IG9mIGEgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGEKLy8vICAgIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNEMlNJIC8gQ1ZUVFNEMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dHNkX3NpNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNkMnNpNjQoKF9fdjJkZilfX2EpOwp9CiNlbmRpZgoKLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs0IHggaTMyXSBpbnRvIGEgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlREUTJQUyAvIENWVERRMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkzMl9wcyhfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0c2kpX19hLCBfX3Y0c2YpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMkRRIC8gQ1ZUUFMyRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHBzX2VwaTMyKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHEoKF9fdjRzZilfX2EpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbNCB4IGkzMl0sCi8vLyAgICB0cnVuY2F0aW5nIHRoZSByZXN1bHQgd2hlbiBpdCBpcyBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUUFMyRFEgLyBDVlRUUFMyRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRwc19lcGkzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcSgoX192NHNmKV9fYSk7Cn0KCi8vLyBSZXR1cm5zIGEgdmVjdG9yIG9mIFs0IHggaTMyXSB3aGVyZSB0aGUgbG93ZXN0IGVsZW1lbnQgaXMgdGhlIGlucHV0Ci8vLyAgICBvcGVyYW5kIGFuZCB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFyZSB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMzJfc2kxMjgoaW50IF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y0c2kpeyBfX2EsIDAsIDAsIDAgfTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFJldHVybnMgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdoZXJlIHRoZSBsb3dlciBlbGVtZW50IGlzIHRoZSBpbnB1dAovLy8gICAgb3BlcmFuZCBhbmQgdGhlIHVwcGVyIGVsZW1lbnQgaXMgemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBzaWduZWQgaW50ZWdlciBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpNjRfc2kxMjgobG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3YyZGkpeyBfX2EsIDAgfTsKfQojZW5kaWYKCi8vLyBNb3ZlcyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBhIHZlY3RvciBvZiBbNCB4IGkzMl0gdG8gYQovLy8gICAgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgYXJlIG1vdmVkIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBzaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2kxMjhfc2kzMihfX20xMjhpIF9fYSkKewogIF9fdjRzaSBfX2IgPSAoX192NHNpKV9fYTsKICByZXR1cm4gX19iWzBdOwp9CgojaWZkZWYgX194ODZfNjRfXwovLy8gTW92ZXMgdGhlIGxlYXN0IHNpZ25pZmljYW50IDY0IGJpdHMgb2YgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHRvIGEKLy8vICAgIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSBsZWFzdCBzaWduaWZpY2FudCA2NCBiaXRzIGFyZSBtb3ZlZCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMTI4X3NpNjQoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CiNlbmRpZgoKLy8vIE1vdmVzIHBhY2tlZCBpbnRlZ2VyIHZhbHVlcyBmcm9tIGFuIGFsaWduZWQgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24KLy8vICAgIHRvIGVsZW1lbnRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRFFBIC8gTU9WRFFBIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQW4gYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgaW50ZWdlciB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9zaTEyOChfX20xMjhpIGNvbnN0ICpfX3ApCnsKICByZXR1cm4gKl9fcDsKfQoKLy8vIE1vdmVzIHBhY2tlZCBpbnRlZ2VyIHZhbHVlcyBmcm9tIGFuIHVuYWxpZ25lZCAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbgovLy8gICAgdG8gZWxlbWVudHMgaW4gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEUVUgLyBNT1ZEUVUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkdV9zaTEyOChfX20xMjhpX3UgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3NpMTI4IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfc2kxMjgqKV9fcCktPl9fdjsKfQoKLy8vIFJldHVybnMgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdoZXJlIHRoZSBsb3dlciBlbGVtZW50IGlzIHRha2VuIGZyb20KLy8vICAgIHRoZSBsb3dlciBlbGVtZW50IG9mIHRoZSBvcGVyYW5kLCBhbmQgdGhlIHVwcGVyIGVsZW1lbnQgaXMgemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgbG93ZXIgb3JkZXIgYml0cyBjb250YWluIHRoZQovLy8gICAgbW92ZWQgdmFsdWUuIFRoZSBoaWdoZXIgb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRsX2VwaTY0KF9fbTEyOGlfdSBjb25zdCAqX19wKQp7CiAgc3RydWN0IF9fbW1fbG9hZGxfZXBpNjRfc3RydWN0IHsKICAgIGxvbmcgbG9uZyBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpIHsgKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkbF9lcGk2NF9zdHJ1Y3QqKV9fcCktPl9fdSwgMH07Cn0KCi8vLyBHZW5lcmF0ZXMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2l0aCB1bnNwZWNpZmllZCBjb250ZW50LgovLy8gICAgVGhpcyBjb3VsZCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIGFub3RoZXIgaW50cmluc2ljIGZ1bmN0aW9uIHdoZXJlIHRoZQovLy8gICAgYXJndW1lbnQgaXMgcmVxdWlyZWQgYnV0IHRoZSB2YWx1ZSBpcyBub3QgYWN0dWFsbHkgdXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2l0aCB1bnNwZWNpZmllZCBjb250ZW50LgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5kZWZpbmVkX3NpMTI4KHZvaWQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdW5kZWYxMjgoKTsKfQoKLy8vIEluaXRpYWxpemVzIGJvdGggNjQtYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3ExCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccGFyYW0gX19xMAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbiB2ZWN0b3Igb2YgWzIgeCBpNjRdLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcwovLy8gICAgcHJvdmlkZWQgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0X2VwaTY0eChsb25nIGxvbmcgX19xMSwgbG9uZyBsb25nIF9fcTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgX19xMCwgX19xMSB9Owp9CgovLy8gSW5pdGlhbGl6ZXMgYm90aCA2NC1iaXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdpdGgKLy8vICAgIHRoZSBzcGVjaWZpZWQgNjQtYml0IGludGVnZXIgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vIFxwYXJhbSBfX3EwCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpNjQoX19tNjQgX19xMSwgX19tNjQgX19xMCkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0eCgobG9uZyBsb25nKV9fcTEsIChsb25nIGxvbmcpX19xMCk7Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgMzItYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9faTIKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2kxCi8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzozMl0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpMzIoaW50IF9faTMsIGludCBfX2kyLCBpbnQgX19pMSwgaW50IF9faTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192NHNpKXsgX19pMCwgX19pMSwgX19pMiwgX19pM307Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgMTYtYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3c3Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6MTEyXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3c2Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6OTZdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fdzUKLy8vICAgIEEgMTYtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjgwXSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3c0Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX193MwovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSBkZXN0aW5hdGlvbgovLy8gICAgdmVjdG9yLgovLy8gXHBhcmFtIF9fdzIKLy8vICAgIEEgMTYtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjMyXSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3cxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6MF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpMTYoc2hvcnQgX193Nywgc2hvcnQgX193Niwgc2hvcnQgX193NSwgc2hvcnQgX193NCwgc2hvcnQgX193Mywgc2hvcnQgX193Miwgc2hvcnQgX193MSwgc2hvcnQgX193MCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y4aGkpeyBfX3cwLCBfX3cxLCBfX3cyLCBfX3czLCBfX3c0LCBfX3c1LCBfX3c2LCBfX3c3IH07Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgOC1iaXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHdpdGgKLy8vICAgIHRoZSBzcGVjaWZpZWQgOC1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19iMTUKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzEyNzoxMjBdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTQKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzExOToxMTJdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTMKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzExMToxMDRdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzEwMzo5Nl0gb2YgdGhlIGRlc3RpbmF0aW9uIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IxMQovLy8gICAgSW5pdGlhbGl6ZXMgYml0cyBbOTU6ODhdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTAKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzg3OjgwXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjkKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzc5OjcyXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjgKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzcxOjY0XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjcKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzYzOjU2XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjYKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzU1OjQ4XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjUKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzQ3OjQwXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjQKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzM5OjMyXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjMKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzMxOjI0XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjIKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzIzOjE2XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjEKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzE1OjhdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMAovLy8gICAgSW5pdGlhbGl6ZXMgYml0cyBbNzowXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcwovLy8gICAgcHJvdmlkZWQgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0X2VwaTgoY2hhciBfX2IxNSwgY2hhciBfX2IxNCwgY2hhciBfX2IxMywgY2hhciBfX2IxMiwgY2hhciBfX2IxMSwgY2hhciBfX2IxMCwgY2hhciBfX2I5LCBjaGFyIF9fYjgsIGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLCBjaGFyIF9fYjIsIGNoYXIgX19iMSwgY2hhciBfX2IwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjE2cWkpeyBfX2IwLCBfX2IxLCBfX2IyLCBfX2IzLCBfX2I0LCBfX2I1LCBfX2I2LCBfX2I3LCBfX2I4LCBfX2I5LCBfX2IxMCwgX19iMTEsIF9fYjEyLCBfX2IxMywgX19iMTQsIF9fYjE1IH07Cn0KCi8vLyBJbml0aWFsaXplcyBib3RoIHZhbHVlcyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igd2l0aCB0aGUKLy8vICAgIHNwZWNpZmllZCA2NC1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3EKLy8vICAgIEludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCBib3RoCi8vLyAgICBlbGVtZW50cyBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpNjR4KGxvbmcgbG9uZyBfX3EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NHgoX19xLCBfX3EpOwp9CgovLy8gSW5pdGlhbGl6ZXMgYm90aCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCB0aGUKLy8vICAgIHNwZWNpZmllZCA2NC1iaXQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19xCi8vLyAgICBBIDY0LWJpdCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCBhbGwgZWxlbWVudHMKLy8vICAgIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHByb3ZpZGVkIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9lcGk2NChfX202NCBfX3EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NChfX3EsIF9fcSk7Cn0KCi8vLyBJbml0aWFsaXplcyBhbGwgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdpdGggdGhlCi8vLyAgICBzcGVjaWZpZWQgMzItYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faQovLy8gICAgQSAzMi1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpMzIoaW50IF9faSkKewogIHJldHVybiBfbW1fc2V0X2VwaTMyKF9faSwgX19pLCBfX2ksIF9faSk7Cn0KCi8vLyBJbml0aWFsaXplcyBhbGwgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIHdpdGggdGhlCi8vLyAgICBzcGVjaWZpZWQgMTYtYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSAxNi1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpMTYoc2hvcnQgX193KQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpMTYoX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3cpOwp9CgovLy8gSW5pdGlhbGl6ZXMgYWxsIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB3aXRoIHRoZQovLy8gICAgc3BlY2lmaWVkIDgtYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gOC1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpOChjaGFyIF9fYikKewogIHJldHVybiBfbW1fc2V0X2VwaTgoX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19xMAovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHBhcmFtIF9fcTEKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX2VwaTY0KF9fbTY0IF9fcTAsIF9fbTY0IF9fcTEpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NChfX3ExLCBfX3EwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTIKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfZXBpMzIoaW50IF9faTAsIGludCBfX2kxLCBpbnQgX19pMiwgaW50IF9faTMpCnsKICByZXR1cm4gX21tX3NldF9lcGkzMihfX2kzLCBfX2kyLCBfX2kxLCBfX2kwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzIKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3czCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193NAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzUKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3c2Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTExOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzcKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6MTEyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfZXBpMTYoc2hvcnQgX193MCwgc2hvcnQgX193MSwgc2hvcnQgX193Miwgc2hvcnQgX193Mywgc2hvcnQgX193NCwgc2hvcnQgX193NSwgc2hvcnQgX193Niwgc2hvcnQgX193NykKewogIHJldHVybiBfbW1fc2V0X2VwaTE2KF9fdzcsIF9fdzYsIF9fdzUsIF9fdzQsIF9fdzMsIF9fdzIsIF9fdzEsIF9fdzApOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgOC1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYjAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzk6MzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjQwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjYKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iOAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzcxOjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo3Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjExCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzoxMjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0cl9lcGk4KGNoYXIgX19iMCwgY2hhciBfX2IxLCBjaGFyIF9fYjIsIGNoYXIgX19iMywgY2hhciBfX2I0LCBjaGFyIF9fYjUsIGNoYXIgX19iNiwgY2hhciBfX2I3LCBjaGFyIF9fYjgsIGNoYXIgX19iOSwgY2hhciBfX2IxMCwgY2hhciBfX2IxMSwgY2hhciBfX2IxMiwgY2hhciBfX2IxMywgY2hhciBfX2IxNCwgY2hhciBfX2IxNSkKewogIHJldHVybiBfbW1fc2V0X2VwaTgoX19iMTUsIF9fYjE0LCBfX2IxMywgX19iMTIsIF9fYjExLCBfX2IxMCwgX19iOSwgX19iOCwgX19iNywgX19iNiwgX19iNSwgX19iNCwgX19iMywgX19iMiwgX19iMSwgX19iMCk7Cn0KCi8vLyBDcmVhdGVzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyAvIFhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8KLy8vICAgIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXR6ZXJvX3NpMTI4KHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgMExMLCAwTEwgfTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYSBtZW1vcnkgbG9jYXRpb24gYWxpZ25lZCBvbiBhCi8vLyAgICAxMjgtYml0IGJvdW5kYXJ5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYW4gYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGludGVnZXIKLy8vICAgIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9zaTEyOChfX20xMjhpICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgKl9fcCA9IF9fYjsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBTIC8gTU9WVVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kxMjgoX19tMTI4aV91ICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMTI4IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfc2kxMjgqKV9fcCktPl9fdiA9IF9fYjsKfQoKLy8vIFN0b3JlcyBhIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIGZyb20gdGhlIGxvdyBlbGVtZW50IG9mIGEgMTI4LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNjQtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JldV9zaTY0KHZvaWQgKl9fcCwgX19tMTI4aSBfX2IpCnsKICBzdHJ1Y3QgX19zdG9yZXVfc2k2NCB7CiAgICBsb25nIGxvbmcgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3NpNjQqKV9fcCktPl9fdiA9ICgoX192MmRpKV9fYilbMF07Cn0KCi8vLyBTdG9yZXMgYSAzMi1iaXQgaW50ZWdlciB2YWx1ZSBmcm9tIHRoZSBsb3cgZWxlbWVudCBvZiBhIDEyOC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kzMih2b2lkICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMzIgewogICAgaW50IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9zaTMyKilfX3ApLT5fX3YgPSAoKF9fdjRzaSlfX2IpWzBdOwp9CgovLy8gU3RvcmVzIGEgMTYtYml0IGludGVnZXIgdmFsdWUgZnJvbSB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDE2LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kxNih2b2lkICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMTYgewogICAgc2hvcnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3NpMTYqKV9fcCktPl9fdiA9ICgoX192OGhpKV9fYilbMF07Cn0KCi8vLyBNb3ZlcyBieXRlcyBzZWxlY3RlZCBieSB0aGUgbWFzayBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFdoZW4gYSBtYXNrIGJpdCBpcyAxLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgYnl0ZSBpcyB3cml0dGVuLCBvdGhlcndpc2UgaXQgaXMgbm90IHdyaXR0ZW4uCi8vLwovLy8gICAgVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlCi8vLyAgICB1c2VkIGFnYWluIHNvb24pLiBFeGNlcHRpb24gYW5kIHRyYXAgYmVoYXZpb3IgZm9yIGVsZW1lbnRzIG5vdCBzZWxlY3RlZAovLy8gICAgZm9yIHN0b3JhZ2UgdG8gbWVtb3J5IGFyZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZEUVUgLyBNQVNLTU9WRFFVIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4KLy8vIFxwYXJhbSBfX24KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YKLy8vICAgIGVhY2ggYnl0ZSByZXByZXNlbnRzIHRoZSBtYXNrIGJpdHMuCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYW4gdW5hbGlnbmVkIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIHdoZXJlIHRoZSBzcGVjaWZpZWQKLy8vICAgIHZhbHVlcyBhcmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXNrbW92ZXVfc2kxMjgoX19tMTI4aSBfX2QsIF9fbTEyOGkgX19uLCBjaGFyICpfX3ApCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrbW92ZHF1KChfX3YxNnFpKV9fZCwgKF9fdjE2cWkpX19uLCBfX3ApOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGk2NF0gdG8KLy8vICAgIGEgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUFMgLyBNT1ZMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBsb3dlciA2NCBiaXRzCi8vLyAgICBvZiB0aGUgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlbF9lcGk2NChfX20xMjhpX3UgKl9fcCwgX19tMTI4aSBfX2EpCnsKICBzdHJ1Y3QgX19tbV9zdG9yZWxfZXBpNjRfc3RydWN0IHsKICAgIGxvbmcgbG9uZyBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWxfZXBpNjRfc3RydWN0KilfX3ApLT5fX3UgPSBfX2FbMF07Cn0KCi8vLyBTdG9yZXMgYSAxMjgtYml0IGZsb2F0aW5nIHBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYSAxMjgtYml0Ci8vLyAgICBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyAgICBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUKLy8vICAgIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5UUFMgLyBNT1ZOVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHRoZSAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIDY0LWJpdCB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RyZWFtX3BkKGRvdWJsZSAqX19wLCBfX20xMjhkIF9fYSkKewogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192MmRmKV9fYSwgKF9fdjJkZiopX19wKTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYSAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vICAgIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZQovLy8gICAgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlRQUyAvIE1PVk5UUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gdGhlIDEyOC1iaXQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdXNlZCB0byBzdG9yZSB0aGUgdmFsdWUuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9zaTEyOChfX20xMjhpICpfX3AsIF9fbTEyOGkgX19hKQp7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3YyZGkpX19hLCAoX192MmRpKilfX3ApOwp9CgovLy8gU3RvcmVzIGEgMzItYml0IGludGVnZXIgdmFsdWUgaW4gdGhlIHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gICAgVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlCi8vLyAgICB1c2VkIGFnYWluIHNvb24pLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVk5USSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0aGUgMzItYml0IG1lbW9yeSBsb2NhdGlvbiB1c2VkIHRvIHN0b3JlIHRoZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlMiIpKSkKX21tX3N0cmVhbV9zaTMyKGludCAqX19wLCBpbnQgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbW92bnRpKF9fcCwgX19hKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFN0b3JlcyBhIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIGluIHRoZSBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vICAgIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZQovLy8gICAgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZOVElRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHRoZSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UyIikpKQpfbW1fc3RyZWFtX3NpNjQobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZudGk2NChfX3AsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIFRoZSBjYWNoZSBsaW5lIGNvbnRhaW5pbmcgXGEgX19wIGlzIGZsdXNoZWQgYW5kIGludmFsaWRhdGVkIGZyb20gYWxsCi8vLyAgICBjYWNoZXMgaW4gdGhlIGNvaGVyZW5jeSBkb21haW4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ0xGTFVTSCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNhY2hlIGxpbmUgdG8gYmUKLy8vICAgIGZsdXNoZWQuCnZvaWQgX21tX2NsZmx1c2godm9pZCBjb25zdCAqIF9fcCk7CgovLy8gRm9yY2VzIHN0cm9uZyBtZW1vcnkgb3JkZXJpbmcgKHNlcmlhbGl6YXRpb24pIGJldHdlZW4gbG9hZAovLy8gICAgaW5zdHJ1Y3Rpb25zIHByZWNlZGluZyB0aGlzIGluc3RydWN0aW9uIGFuZCBsb2FkIGluc3RydWN0aW9ucyBmb2xsb3dpbmcKLy8vICAgIHRoaXMgaW5zdHJ1Y3Rpb24sIGVuc3VyaW5nIHRoZSBzeXN0ZW0gY29tcGxldGVzIGFsbCBwcmV2aW91cyBsb2FkcyBiZWZvcmUKLy8vICAgIGV4ZWN1dGluZyBzdWJzZXF1ZW50IGxvYWRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExGRU5DRSA8L2M+IGluc3RydWN0aW9uLgovLy8Kdm9pZCBfbW1fbGZlbmNlKHZvaWQpOwoKLy8vIEZvcmNlcyBzdHJvbmcgbWVtb3J5IG9yZGVyaW5nIChzZXJpYWxpemF0aW9uKSBiZXR3ZWVuIGxvYWQgYW5kIHN0b3JlCi8vLyAgICBpbnN0cnVjdGlvbnMgcHJlY2VkaW5nIHRoaXMgaW5zdHJ1Y3Rpb24gYW5kIGxvYWQgYW5kIHN0b3JlIGluc3RydWN0aW9ucwovLy8gICAgZm9sbG93aW5nIHRoaXMgaW5zdHJ1Y3Rpb24sIGVuc3VyaW5nIHRoYXQgdGhlIHN5c3RlbSBjb21wbGV0ZXMgYWxsCi8vLyAgICBwcmV2aW91cyBtZW1vcnkgYWNjZXNzZXMgYmVmb3JlIGV4ZWN1dGluZyBzdWJzZXF1ZW50IG1lbW9yeSBhY2Nlc3Nlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNRkVOQ0UgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCnZvaWQgX21tX21mZW5jZSh2b2lkKTsKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgovLy8gQ29udmVydHMgMTYtYml0IHNpZ25lZCBpbnRlZ2VycyBmcm9tIGJvdGggMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZHMgaW50byA4LWJpdCBzaWduZWQgaW50ZWdlcnMsIGFuZCBwYWNrcyB0aGUgcmVzdWx0cyBpbnRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFBvc2l0aXZlIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RiBhcmUgc2F0dXJhdGVkIHRvIDB4N0YuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQUNLU1NXQiAvIFBBQ0tTU1dCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMKLy8vICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBWYWx1ZXMgbGVzcwovLy8gICB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkIFs4IHggaThdIHZhbHVlcyBhcmUKLy8vICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMKLy8vICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBWYWx1ZXMgbGVzcwovLy8gICB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkIFs4IHggaThdIHZhbHVlcyBhcmUKLy8vICAgd3JpdHRlbiB0byB0aGUgaGlnaGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9wYWNrc19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFja3Nzd2IxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbnZlcnRzIDMyLWJpdCBzaWduZWQgaW50ZWdlcnMgZnJvbSBib3RoIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmRzIGludG8gMTYtYml0IHNpZ25lZCBpbnRlZ2VycywgYW5kIHBhY2tzIHRoZSByZXN1bHRzIGludG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFDS1NTRFcgLyBQQUNLU1NEVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGhpZ2hlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcGFja3NfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhY2tzc2R3MTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fYik7Cn0KCi8vLyBDb252ZXJ0cyAxNi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kcyBpbnRvIDgtYml0IHVuc2lnbmVkIGludGVnZXJzLCBhbmQgcGFja3MgdGhlIHJlc3VsdHMgaW50byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAweDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFDS1VTV0IgLyBQQUNLVVNXQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0uIEVhY2ggMTYtYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGFuIDgtYml0IHVuc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gVmFsdWVzIGdyZWF0ZXIgdGhhbiAweEZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gVmFsdWVzIGxlc3MKLy8vICAgIHRoYW4gMHgwMCBhcmUgc2F0dXJhdGVkIHRvIDB4MDAuIFRoZSBjb252ZXJ0ZWQgWzggeCBpOF0gdmFsdWVzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XS4gRWFjaCAxNi1iaXQgZWxlbWVudCBpcyB0cmVhdGVkIGFzCi8vLyAgICBhIHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAweDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMC4gVGhlIGNvbnZlcnRlZCBbOCB4IGk4XSB2YWx1ZXMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSBoaWdoZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2t1c19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFja3Vzd2IxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEV4dHJhY3RzIDE2IGJpdHMgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLCB1c2luZwovLy8gICAgdGhlIGltbWVkaWF0ZS12YWx1ZSBwYXJhbWV0ZXIgYXMgYSBzZWxlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVYVFJXIC8gUEVYVFJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUuIEJpdHMgWzI6MF0gc2VsZWN0cyB2YWx1ZXMgZnJvbSBcYSBfX2EgdG8gYmUgYXNzaWduZWQKLy8vICAgIHRvIGJpdHNbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIDAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzE1OjBdIG9mIFxhIF9fYS4gXG4KLy8vICAgIDAwMTogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzMxOjE2XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAwMTA6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs0NzozMl0gb2YgXGEgX19hLiBcbgovLy8gICAgMDExOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbNjM6NDhdIG9mIFxhIF9fYS4gXG4KLy8vICAgIDEwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzc5OjY0XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAxMDE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo4MF0gb2YgXGEgX19hLiBcbgovLy8gICAgMTEwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTExOjk2XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAxMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFsxMjc6MTEyXSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyLCB3aG9zZSBsb3dlciAxNiBiaXRzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIgYW5kIHRoZSByZW1haW5pbmcgYml0cyBhcmUgYXNzaWduZWQgemVyb3MuCiNkZWZpbmUgX21tX2V4dHJhY3RfZXBpMTYoYSwgaW1tKSBcCiAgKChpbnQpKHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjhoaSgoX192OGhpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSkpCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgZmlyc3QgbWFraW5nIGEgY29weSBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyLCBhbmQgdGhlbiBpbnNlcnRpbmcgdGhlIGxvd2VyIDE2IGJpdHMKLy8vICAgIG9mIGFuIGludGVnZXIgcGFyYW1ldGVyIGludG8gYW4gb2Zmc2V0IHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlLXZhbHVlCi8vLyAgICBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBJTlNSVyAvIFBJTlNSVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUKLy8vICAgIHJlc3VsdCBhbmQgdGhlbiBvbmUgb2YgdGhlIGVpZ2h0IGVsZW1lbnRzIGluIHRoZSByZXN1bHQgaXMgcmVwbGFjZWQgYnkKLy8vICAgIHRoZSBsb3dlciAxNiBiaXRzIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEFuIGludGVnZXIuIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSB3cml0dGVuIHRvIHRoZQovLy8gICAgcmVzdWx0IGJlZ2lubmluZyBhdCBhbiBvZmZzZXQgc3BlY2lmaWVkIGJ5IFxhIF9faW1tLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgc3BlY2lmeWluZyB0aGUgYml0IG9mZnNldCBpbiB0aGUgcmVzdWx0IGF0IHdoaWNoIHRoZQovLy8gICAgbG93ZXIgMTYgYml0cyBvZiBcYSBfX2IgYXJlIHdyaXR0ZW4uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9pbnNlcnRfZXBpMTYoYSwgYiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjhoaSgoX192OGhpKShfX20xMjhpKShhKSwgKGludCkoYiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSkpKQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIG9mIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIDgtYml0Ci8vLyAgICBlbGVtZW50IGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMTYgeCBpOF0gdG8gY3JlYXRlIGEgMTYtYml0IG1hc2sKLy8vICAgIHZhbHVlLCB6ZXJvLWV4dGVuZHMgdGhlIHZhbHVlLCBhbmQgd3JpdGVzIGl0IHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVk1TS0IgLyBQTU9WTVNLQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgd2l0aCBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIDgtYml0IGVsZW1lbnQgaW4gXGEgX19hLAovLy8gICAgd3JpdHRlbiB0byBiaXRzIFsxNTowXS4gVGhlIG90aGVyIGJpdHMgYXJlIGFzc2lnbmVkIHplcm9zLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbWFza19lcGk4KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Btb3Ztc2tiMTI4KChfX3YxNnFpKV9fYSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBzaHVmZmxpbmcgZm91ciAzMi1iaXQKLy8vICAgIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIsIHVzaW5nIHRoZSBpbW1lZGlhdGUtdmFsdWUKLy8vICAgIHBhcmFtZXRlciBhcyBhIHNwZWNpZmllci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX3NodWZmbGVfZXBpMzIoX19tMTI4aSBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZEIC8gUFNIVUZEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIGltbQovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIGNvbnRhaW5pbmcgYW4gOC1iaXQgdmFsdWUgc3BlY2lmeWluZyB3aGljaCBlbGVtZW50cyB0bwovLy8gICAgY29weSBmcm9tIGEuIFRoZSBkZXN0aW5hdGlvbnMgd2l0aGluIHRoZSAxMjgtYml0IGRlc3RpbmF0aW9uIGFyZSBhc3NpZ25lZAovLy8gICAgdmFsdWVzIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBCaXRzIFsxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2MzozMl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU6NF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXQgdmFsdWUgYXNzaWdubWVudHM6IFxuCi8vLyAgICAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzMxOjBdIG9mIFxhIGEuIFxuCi8vLyAgICAwMTogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzYzOjMyXSBvZiBcYSBhLiBcbgovLy8gICAgMTA6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo2NF0gb2YgXGEgYS4gXG4KLy8vICAgIDExOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTI3Ojk2XSBvZiBcYSBhLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fc2h1ZmZsZV9lcGkzMihhLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNodWZkKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBzaHVmZmxpbmcgZm91ciBsb3dlciAxNi1iaXQKLy8vICAgIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0sIHVzaW5nIHRoZSBpbW1lZGlhdGUKLy8vICAgIHZhbHVlIHBhcmFtZXRlciBhcyBhIHNwZWNpZmllci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX3NodWZmbGVsb19lcGkxNihfX20xMjhpIGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0hVRkxXIC8gUFNIVUZMVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBCaXRzIFsxMjc6NjRdIGFyZSBjb3BpZWQgdG8gYml0cwovLy8gICAgWzEyNzo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvIGNvcHkgZnJvbSBcYSBhLiBcbgovLy8gICAgQml0c1sxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbMzoyXSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzMxOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0c1s1OjRdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbNDc6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdCB2YWx1ZSBhc3NpZ25tZW50czogXG4KLy8vICAgIDAwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTU6MF0gb2YgXGEgYS4gXG4KLy8vICAgIDAxOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMzE6MTZdIG9mIFxhIGEuIFxuCi8vLyAgICAxMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzQ3OjMyXSBvZiBcYSBhLiBcbgovLy8gICAgMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs2Mzo0OF0gb2YgXGEgYS4gXG4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVsb19lcGkxNihhLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNodWZsdygoX192OGhpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgc2h1ZmZsaW5nIGZvdXIgdXBwZXIgMTYtYml0Ci8vLyAgICBlbGVtZW50cyBvZiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLCB1c2luZyB0aGUgaW1tZWRpYXRlCi8vLyAgICB2YWx1ZSBwYXJhbWV0ZXIgYXMgYSBzcGVjaWZpZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9zaHVmZmxlaGlfZXBpMTYoX19tMTI4aSBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZIVyAvIFBTSFVGSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XS4gQml0cyBbNjM6MF0gYXJlIGNvcGllZCB0byBiaXRzCi8vLyAgICBbNjM6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvIGNvcHkgZnJvbSBcYSBhLiBcbgovLy8gICAgQml0c1sxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbNzk6NjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbNTo0XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbNzo2XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzEyNzoxMTJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXQgdmFsdWUgYXNzaWdubWVudHM6IFxuCi8vLyAgICAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzc5OjY0XSBvZiBcYSBhLiBcbgovLy8gICAgMDE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo4MF0gb2YgXGEgYS4gXG4KLy8vICAgIDEwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTExOjk2XSBvZiBcYSBhLiBcbgovLy8gICAgMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFsxMjc6MTEyXSBvZiBcYSBhLiBcbgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fc2h1ZmZsZWhpX2VwaTE2KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2h1Zmh3KChfX3Y4aGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIChpbmRleCA4LTE1KSB2YWx1ZXMgZnJvbSB0d28gMTI4LWJpdCB2ZWN0b3JzCi8vLyAgICBvZiBbMTYgeCBpOF0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFVOUENLSEJXIC8gUFVOUENLSEJXIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyAgICBCaXRzIFs3MTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNzowXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNzk6NzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbODc6ODBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbOTU6ODhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTAzOjk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzExMToxMDRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTE5OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTAzOjk2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjEyMF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBcbgovLy8gICAgQml0cyBbNzE6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs3OTo3Ml0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs4Nzo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMDM6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjcyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTExOjEwNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTk6MTEyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjEyMF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjEyMF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iLCA4LCAxNis4LCA5LCAxNis5LCAxMCwgMTYrMTAsIDExLCAxNisxMSwgMTIsIDE2KzEyLCAxMywgMTYrMTMsIDE0LCAxNisxNCwgMTUsIDE2KzE1KTsKfQoKLy8vIFVucGFja3MgdGhlIGhpZ2gtb3JkZXIgKGluZGV4IDQtNykgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzggeCBpMTZdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0hXRCAvIFBVTlBDS0hXRCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gICAgQml0cyBbNzk6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE1OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTE6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTExOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyAgICBCaXRzIFs3OTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTE6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjgwXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IsIDQsIDgrNCwgNSwgOCs1LCA2LCA4KzYsIDcsIDgrNyk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIChpbmRleCAyLDMpIHZhbHVlcyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTMyXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVU5QQ0tIRFEgLyBQVU5QQ0tIRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMTowXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2NDozMl0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IsIDIsIDQrMiwgMywgNCszKTsKfQoKLy8vIFVucGFja3MgdGhlIGhpZ2gtb3JkZXIgNjQtYml0IGVsZW1lbnRzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpNjRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0hRRFEgLyBQVU5QQ0tIUURRIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFxuCi8vLyAgICBCaXRzIFsxMjc6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBcbgovLy8gICAgQml0cyBbMTI3OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgKF9fdjJkaSlfX2IsIDEsIDIrMSk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgKGluZGV4IDAtNykgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzE2IHggaThdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xCVyAvIFBVTlBDS0xCVyA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBcbgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxNTo4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzIzOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjI0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzM5OjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzQ3OjQwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs4Nzo4MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU1OjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo1Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTU6OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsyMzoxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszOTozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNzk6NzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0Nzo0MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs1NTo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTExOjEwNF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjU2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6MTIwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNrbG9fZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IsIDAsIDE2KzAsIDEsIDE2KzEsIDIsIDE2KzIsIDMsIDE2KzMsIDQsIDE2KzQsIDUsIDE2KzUsIDYsIDE2KzYsIDcsIDE2KzcpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93LW9yZGVyIChpbmRleCAwLTMpIHZhbHVlcyBmcm9tIGVhY2ggb2YgdGhlIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFs4IHggaTE2XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFVOUENLTFdEIC8gUFVOUENLTFdEIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyAgICBCaXRzIFsxNTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMzE6MTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzQ3OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNDc6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNjM6NDhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gICAgQml0cyBbMTU6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IsIDAsIDgrMCwgMSwgOCsxLCAyLCA4KzIsIDMsIDgrMyk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgKGluZGV4IDAsMSkgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMzJdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xEUSAvIFBVTlBDS0xEUSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBcbgovLy8gICAgQml0cyBbMzE6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzY0OjMyXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs2MzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2tsb19lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iLCAwLCA0KzAsIDEsIDQrMSk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgNjQtYml0IGVsZW1lbnRzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpNjRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xRRFEgLyBQVU5QQ0tMUURRIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gXG4KLy8vICAgIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNrbG9fZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19hLCAoX192MmRpKV9fYiwgMCwgMiswKTsKfQoKLy8vIFJldHVybnMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGFzIGEgNjQtYml0Ci8vLyAgICBpbnRlZ2VyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVkRRMlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZC4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIG1vdmVkIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlcGk2NF9waTY0KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIChfX202NClfX2FbMF07Cn0KCi8vLyBNb3ZlcyB0aGUgNjQtYml0IG9wZXJhbmQgdG8gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCB6ZXJvaW5nIHRoZQovLy8gICAgdXBwZXIgYml0cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZEK1ZNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIGZyb20KLy8vICAgIHRoZSBvcGVyYW5kLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgYXNzaWduZWQgemVyb3MuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZwaTY0X2VwaTY0KF9fbTY0IF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3YyZGkpeyAobG9uZyBsb25nKV9fYSwgMCB9Owp9CgovLy8gTW92ZXMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGEgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IsIHplcm9pbmcgdGhlIHVwcGVyIGJpdHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQuIFRoZSBsb3dlciA2NCBiaXRzIGFyZSBtb3ZlZCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZSB2YWx1ZSBmcm9tCi8vLyAgICB0aGUgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGFzc2lnbmVkIHplcm9zLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZV9lcGk2NChfX20xMjhpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgX21tX3NldHplcm9fc2kxMjgoKSwgMCwgMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIDY0LWJpdCBlbGVtZW50cyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsyIHggZG91YmxlXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeAovLy8gICAgZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUEQgLyBVTlBDS0hQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbMTI3OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iLCAxLCAyKzEpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93LW9yZGVyIDY0LWJpdCBlbGVtZW50cyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMKLy8vICAgIG9mIFsyIHggZG91YmxlXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeAovLy8gICAgZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUEQgLyBVTlBDS0xQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfX2IsIDAsIDIrMCk7Cn0KCi8vLyBFeHRyYWN0cyB0aGUgc2lnbiBiaXRzIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpbiB0aGUgMTI4LWJpdAovLy8gICAgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgemVyby1leHRlbmRzIHRoZSB2YWx1ZSwgYW5kIHdyaXRlcyBpdCB0byB0aGUKLy8vICAgIGxvdy1vcmRlciBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTVNLUEQgLyBNT1ZNU0tQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB3aXRoIHNpZ24gYml0cyB0bwovLy8gICAgYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgVGhlIHNpZ24gYml0cyBmcm9tIGVhY2ggb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgaW4gXGEgX19hLAovLy8gICAgd3JpdHRlbiB0byBiaXRzIFsxOjBdLiBUaGUgcmVtYWluaW5nIGJpdHMgYXJlIGFzc2lnbmVkIHZhbHVlcyBvZiB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbWFza19wZChfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9tb3Ztc2twZCgoX192MmRmKV9fYSk7Cn0KCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBmcm9tIHR3bwovLy8gICAgMTI4LWJpdCB2ZWN0b3IgcGFyYW1ldGVycyBvZiBbMiB4IGRvdWJsZV0sIHVzaW5nIHRoZSBpbW1lZGlhdGUtdmFsdWUKLy8vICAgICBwYXJhbWV0ZXIgYXMgYSBzcGVjaWZpZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9zaHVmZmxlX3BkKF9fbTEyOGQgYSwgX19tMTI4ZCBiLCBjb25zdCBpbnQgaSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNIVUZQRCAvIFNIVUZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBpCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgdmFsdWUuIFRoZSBsZWFzdCBzaWduaWZpY2FudCB0d28gYml0cyBzcGVjaWZ5IHdoaWNoCi8vLyAgICBlbGVtZW50cyB0byBjb3B5IGZyb20gXGEgYSBhbmQgXGEgYjogXG4KLy8vICAgIEJpdFswXSA9IDA6IGxvd2VyIGVsZW1lbnQgb2YgXGEgYSBjb3BpZWQgdG8gbG93ZXIgZWxlbWVudCBvZiByZXN1bHQuIFxuCi8vLyAgICBCaXRbMF0gPSAxOiB1cHBlciBlbGVtZW50IG9mIFxhIGEgY29waWVkIHRvIGxvd2VyIGVsZW1lbnQgb2YgcmVzdWx0LiBcbgovLy8gICAgQml0WzFdID0gMDogbG93ZXIgZWxlbWVudCBvZiBcYSBiIGNvcGllZCB0byB1cHBlciBlbGVtZW50IG9mIHJlc3VsdC4gXG4KLy8vICAgIEJpdFsxXSA9IDE6IHVwcGVyIGVsZW1lbnQgb2YgXGEgYiBjb3BpZWQgdG8gdXBwZXIgZWxlbWVudCBvZiByZXN1bHQuIFxuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVfcGQoYSwgYiwgaSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zaHVmcGQoKF9fdjJkZikoX19tMTI4ZCkoYSksIChfX3YyZGYpKF9fbTEyOGQpKGIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpKSkpCgovLy8gQ2FzdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNhbWUKLy8vICAgIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jYXN0cGRfcHMoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2E7Cn0KCi8vLyBDYXN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGEgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2FzdHBkX3NpMTI4KF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Nhc3Rwc19wZChfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2FzdHBzX3NpMTI4KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19hOwp9CgovLy8gQ2FzdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGludG8gYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc2FtZQovLy8gICAgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Nhc3RzaTEyOF9wcyhfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3IKLy8vICAgIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc2FtZQovLy8gICAgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jYXN0c2kxMjhfcGQoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGQpX19hOwp9CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIEluZGljYXRlcyB0aGF0IGEgc3BpbiBsb29wIGlzIGJlaW5nIGV4ZWN1dGVkIGZvciB0aGUgcHVycG9zZXMgb2YKLy8vICAgIG9wdGltaXppbmcgcG93ZXIgY29uc3VtcHRpb24gZHVyaW5nIHRoZSBsb29wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBVVNFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwp2b2lkIF9tbV9wYXVzZSh2b2lkKTsKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19NTVgKCiNkZWZpbmUgX01NX1NIVUZGTEUyKHgsIHkpICgoKHgpIDw8IDEpIHwgKHkpKQoKI2RlZmluZSBfTU1fREVOT1JNQUxTX1pFUk9fT04gICAoMHgwMDQwVSkKI2RlZmluZSBfTU1fREVOT1JNQUxTX1pFUk9fT0ZGICAoMHgwMDAwVSkKCiNkZWZpbmUgX01NX0RFTk9STUFMU19aRVJPX01BU0sgKDB4MDA0MFUpCgojZGVmaW5lIF9NTV9HRVRfREVOT1JNQUxTX1pFUk9fTU9ERSgpIChfbW1fZ2V0Y3NyKCkgJiBfTU1fREVOT1JNQUxTX1pFUk9fTUFTSykKI2RlZmluZSBfTU1fU0VUX0RFTk9STUFMU19aRVJPX01PREUoeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fREVOT1JNQUxTX1pFUk9fTUFTSykgfCAoeCkpKQoKI2VuZGlmIC8qIF9fRU1NSU5UUklOX0ggKi8KAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0gZ2ZuaWludHJpbi5oIC0gR0ZOSSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxnZm5paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0dGTklJTlRSSU5fSAojZGVmaW5lIF9fR0ZOSUlOVFJJTl9ICgovKiBEZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHNpbXBsZSBmb3JtIChubyBtYXNraW5nKS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBZTU0gdW5tYXNrZWQgZm9ybS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfWSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eCxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBaTU0gZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX1ogX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBWTFggZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX1ZMMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYncsYXZ4NTEydmwsZ2ZuaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfVkwyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyxhdng1MTJ2bCxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKI2RlZmluZSBfbW1fZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZnZjJwOGFmZmluZWludnFiX3YxNnFpKChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKCiNkZWZpbmUgX21tX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVxYl92MTZxaSgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZ2YycDhtdWxfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11bGJfdjE2cWkoKF9fdjE2cWkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19CKTsKfQoKI2lmZGVmIF9fQVZYSU5UUklOX0gKI2RlZmluZSBfbW0yNTZfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZnZjJwOGFmZmluZWludnFiX3YzMnFpKChfX3YzMnFpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKCiNkZWZpbmUgX21tMjU2X2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVxYl92MzJxaSgoX192MzJxaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19ZCl9tbTI1Nl9nZjJwOG11bF9lcGk4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdmdmMnA4bXVsYl92MzJxaSgoX192MzJxaSkgX19BLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX0IpOwp9CiNlbmRpZiAvKiBfX0FWWElOVFJJTl9IICovCgojaWZkZWYgX19BVlg1MTJCV0lOVFJJTl9ICiNkZWZpbmUgX21tNTEyX2dmMnA4YWZmaW5laW52X2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVpbnZxYl92NjRxaSgoX192NjRxaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dmMnA4YWZmaW5laW52X2VwaTY0X2VwaTgoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KShVKSwgXAogICAgICAgICAoX192NjRxaSlfbW01MTJfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSwgXAogICAgICAgICAoX192NjRxaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChVLCBBLCBCLCBJKSBcCiAgX21tNTEyX21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOCgoX19tNTEyaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgIFUsIEEsIEIsIEkpCgojZGVmaW5lIF9tbTUxMl9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmdmMnA4YWZmaW5lcWJfdjY0cWkoKF9fdjY0cWkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19nZjJwOGFmZmluZV9lcGk2NF9lcGk4KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NCkoVSksIFwKICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoVSwgQSwgQiwgSSkgXAogIF9tbTUxMl9tYXNrX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoKF9fbTUxMmkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICBVLCBBLCBCLCBJKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfWgpfbW01MTJfZ2YycDhtdWxfZXBpOChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11bGJfdjY0cWkoKF9fdjY0cWkpIF9fQSwKICAgICAgICAgICAgICAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfWgpfbW01MTJfbWFza19nZjJwOG11bF9lcGk4KF9fbTUxMmkgX19TLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fVSwKICAgICAgICAgICAgICAoX192NjRxaSkgX21tNTEyX2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSU19aCl9tbTUxMl9tYXNrel9nZjJwOG11bF9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19nZjJwOG11bF9lcGk4KChfX201MTJpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VLCBfX0EsIF9fQik7Cn0KI2VuZGlmIC8qIF9fQVZYNTEyQldJTlRSSU5fSCAqLwoKI2lmZGVmIF9fQVZYNTEyVkxCV0lOVFJJTl9ICiNkZWZpbmUgX21tX21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgIChfX3YxNnFpKV9tbV9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW1fbWFza19nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KChfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFwKICAgICAgICAgVSwgQSwgQiwgSSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW0yNTZfbWFza19nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KChfX20yNTZpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgVSwgQSwgQiwgSSkKCiNkZWZpbmUgX21tX21hc2tfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgIChfX3YxNnFpKV9tbV9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW1fbWFza19nZjJwOGFmZmluZV9lcGk2NF9lcGk4KChfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFUsIEEsIEIsIEkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAoX192MzJxaSlfbW0yNTZfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChBLCBCLCBJKSwgXAogICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChVLCBBLCBCLCBJKSBcCiAgX21tMjU2X21hc2tfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOCgoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgIFUsIEEsIEIsIEkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSU19WTDEyOApfbW1fbWFza19nZjJwOG11bF9lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fVSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSU19WTDEyOApfbW1fbWFza3pfZ2YycDhtdWxfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfZ2YycDhtdWxfZXBpOCgoX19tMTI4aSlfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgpfbW0yNTZfbWFza19nZjJwOG11bF9lcGk4KF9fbTI1NmkgX19TLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fVSwKICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgpfbW0yNTZfbWFza3pfZ2YycDhtdWxfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfZ2YycDhtdWxfZXBpOCgoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CiNlbmRpZiAvKiBfX0FWWDUxMlZMQldJTlRSSU5fSCAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX1kKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19aCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfVkwxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgoKI2VuZGlmIC8qIF9fR0ZOSUlOVFJJTl9IICovCgoALyo9PT0tLS0tIHBjb25maWdpbnRyaW4uaCAtIFg4NiBwbGF0Zm9ybSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cGNvbmZpZ2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19QQ09ORklHSU5UUklOX0gKI2RlZmluZSBfX1BDT05GSUdJTlRSSU5fSAoKI2RlZmluZSBfX1BDT05GSUdfS0VZX1BST0dSQU0gMHgwMDAwMDAwMQoKI2lmIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKQoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygicGNvbmZpZyIpKSkKCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9wY29uZmlnX3UzMih1bnNpZ25lZCBpbnQgX19sZWFmLCBfX1NJWkVfVFlQRV9fIF9fZFtdKQp7CiAgdW5zaWduZWQgaW50IF9fcmVzdWx0OwogIF9fYXNtX18gKCJwY29uZmlnIgogICAgICAgICAgIDogIj1hIiAoX19yZXN1bHQpLCAiPWIiIChfX2RbMF0pLCAiPWMiIChfX2RbMV0pLCAiPWQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiYSIgKF9fbGVhZiksICJiIiAoX19kWzBdKSwgImMiIChfX2RbMV0pLCAiZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJjYyIpOwogIHJldHVybiBfX3Jlc3VsdDsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKSAqLwoKI2VuZGlmCgAvKj09PS0tLS0geHNhdmVjaW50cmluLmggLSBYU0FWRUMgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHhzYXZlY2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19YU0FWRUNJTlRSSU5fSAojZGVmaW5lIF9fWFNBVkVDSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygieHNhdmVjIikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlYyh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94c2F2ZWMoX19wLCBfX20pOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmVjNjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmVjNjQoX19wLCBfX20pOwp9CiNlbmRpZgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAgaW4gcmVnZXhwIABwYXR0ZXJuIHRvbyBsYXJnZSAtIHJldmVyc2UgY29tcGlsZSBmYWlsZWQAWzpwdW5jdDpdAHVuaGFuZGxlZCBvcGNvZGU6IABqb2JfLnNpemUoKSA9IAB7JWQsJWR9ACg/LW06XikAKD8tbTokKQBPbGRfU29nZGlhbgAlczogdW5hYmxlIHRvIGZpbmQgTE9BRCBzZWdtZW50IGZvciBwYzogJXAsIHN0YXJ0X2FkZHI6ICV6eABsZW4gKyAxIDwgc2l6ZW9mKHN5bWJvbF9idWZfKQBhbgBhUwA8ACsrAG1tACwgZW5kX3BvcyA9IAAlZAB7AG91dCAhPSBudWxscHRyAFJlYWRlckxvY2sgcmV0dXJuaW5nIABUWkRJUgB0emRhdGEAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9jaXBoZXIvY2lwaGVyLmMARmFpbGVkIHRvIGNyZWF0ZSBQLTI1NiBncm91cC4KAERSQkcgQ2xlYXIgS0FUADx1bmtub3duPgBzeXN0ZW0gbGlicmFyeQBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvZXh0cmFjdG9yL2N4eF9leHRyYWN0b3IuY2MALS1jdWRhLWhvc3Qtb25seQAtREtZVEhFX0lTX1JVTk5JTkc9MQBvYmplY3RpdmVjAENoZWNrIGZhaWxlZDogbm9kZS5nZXRNZW1vaXphdGlvbkRhdGEoKSAhPSBudWxscHRyAF9fY2xhbmdfaGlwX2NtYXRoLmgALyo9PT0tLS0tIGFkeGludHJpbi5oIC0gQURYIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhZHhpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQURYSU5UUklOX0gKI2RlZmluZSBfX0FEWElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgovKiBJbnRyaW5zaWNzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbmx5IGlmIF9fQURYX18gZGVmaW5lZCAqLwpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFkeCIpKSkKX2FkZGNhcnJ5eF91MzIodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBpbnQgX194LCB1bnNpZ25lZCBpbnQgX195LAogICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZGRjYXJyeXhfdTMyKF9fY2YsIF9feCwgX195LCBfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFkeCIpKSkKX2FkZGNhcnJ5eF91NjQodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBsb25nIGxvbmcgX194LAogICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX195LCB1bnNpZ25lZCBsb25nIGxvbmcgICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkY2Fycnl4X3U2NChfX2NmLCBfX3gsIF9feSwgX19wKTsKfQojZW5kaWYKCi8qIEludHJpbnNpY3MgdGhhdCBhcmUgYWxzbyBhdmFpbGFibGUgaWYgX19BRFhfXyB1bmRlZmluZWQgKi8Kc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9hZGRjYXJyeV91MzIodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBpbnQgX194LCB1bnNpZ25lZCBpbnQgX195LAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2FkZGNhcnJ5eF91MzIoX19jZiwgX194LCBfX3ksIF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfYWRkY2FycnlfdTY0KHVuc2lnbmVkIGNoYXIgX19jZiwgdW5zaWduZWQgbG9uZyBsb25nIF9feCwKICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX195LCB1bnNpZ25lZCBsb25nIGxvbmcgICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkY2Fycnl4X3U2NChfX2NmLCBfX3gsIF9feSwgX19wKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfc3ViYm9ycm93X3UzMih1bnNpZ25lZCBjaGFyIF9fY2YsIHVuc2lnbmVkIGludCBfX3gsIHVuc2lnbmVkIGludCBfX3ksCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc3ViYm9ycm93X3UzMihfX2NmLCBfX3gsIF9feSwgX19wKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9zdWJib3Jyb3dfdTY0KHVuc2lnbmVkIGNoYXIgX19jZiwgdW5zaWduZWQgbG9uZyBsb25nIF9feCwKICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9feSwgdW5zaWduZWQgbG9uZyBsb25nICAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3N1YmJvcnJvd191NjQoX19jZiwgX194LCBfX3ksIF9fcCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19BRFhJTlRSSU5fSCAqLwoALyo9PT0tLS0tIGFsdGl2ZWMuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgdHlwZSBnZW5lcmljIG1hdGggLS0tLS0tLS0tLS0tLS0tPT09KlwKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKXCo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ki8KCiNpZm5kZWYgX19BTFRJVkVDX0gKI2RlZmluZSBfX0FMVElWRUNfSAoKI2lmbmRlZiBfX0FMVElWRUNfXwojZXJyb3IgIkFsdGlWZWMgc3VwcG9ydCBub3QgZW5hYmxlZCIKI2VuZGlmCgovKiBDb25zdGFudHMgZm9yIG1hcHBpbmcgQ1I2IGJpdHMgdG8gcHJlZGljYXRlIHJlc3VsdC4gKi8KCiNkZWZpbmUgX19DUjZfRVEgMAojZGVmaW5lIF9fQ1I2X0VRX1JFViAxCiNkZWZpbmUgX19DUjZfTFQgMgojZGVmaW5lIF9fQ1I2X0xUX1JFViAzCgovKiBDb25zdGFudHMgZm9yIHZlY190ZXN0X2RhdGFfY2xhc3MgKi8KI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfTiAoMSA8PCAwKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9QICgxIDw8IDEpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMIChfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfUCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1pFUk9fTiAoMTw8MikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9aRVJPX1AgKDE8PDMpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfWkVSTyAoX19WRUNfQ0xBU1NfRlBfWkVST19QICAgICAgICAgICB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9aRVJPX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfTiAoMTw8NCkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QICgxPDw1KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZIChfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTkFOICgxPDw2KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX05PVF9OT1JNQUwgKF9fVkVDX0NMQVNTX0ZQX05BTiAgICAgICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMICB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9aRVJPICAgICAgIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZKQoKI2RlZmluZSBfX0FUVFJTX29fYWkgX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19hbHdheXNfaW5saW5lX18pKQoKI2luY2x1ZGUgPHN0ZGRlZi5oPgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfcGVybSgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Blcm0oCiAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfcGVybSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19wZXJtKAogICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfcGVybSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKTsKCi8qIHZlY19hYnMgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzX3YxNnFpIHZlY19hYnMKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY19hYnNfdjhoaSB2ZWNfYWJzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzX3Y0c2kgdmVjX2FicwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hYnModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAtX19hKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2QoX19hLCAtX19hKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2Ficyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZhYnNzcChfX2EpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludCkoMHg3RkZGRkZGRik7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYWJzKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZhYnNkcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2Fic3MgKi8KI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3YxNnFpIHZlY19hYnNzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzc192OGhpIHZlY19hYnNzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzc192NHNpIHZlY19hYnNzCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hYnNzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKAogICAgICBfX2EsIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoKHZlY3RvciBzaWduZWQgY2hhcikoMCksIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWJzcyh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2goCiAgICAgIF9fYSwgX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNpZ25lZCBzaG9ydCkoMCksIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2Fic3ModmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygKICAgICAgX19hLCBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKCh2ZWN0b3Igc2lnbmVkIGludCkoMCksIF9fYSkpOwp9CgovKiB2ZWNfYWJzZCAqLwojaWYgZGVmaW5lZChfX1BPV0VSOV9WRUNUT1JfXykKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWJzZHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhYnNkdWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhYnNkdXcoX19hLCBfX2IpOwp9CgojZW5kaWYgLyogRW5kIF9fUE9XRVI5X1ZFQ1RPUl9fICovCgovKiB2ZWNfYWRkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYWRkKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2FkZF91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1cW0oX19hLCBfX2IpOwp9CiNlbGlmIGRlZmluZWQoX19WU1hfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgLy8gTGl0dGxlIGVuZGlhbiBzeXN0ZW1zIG9uIENQVSdzIHByaW9yIHRvIFBvd2VyOCBkb24ndCByZWFsbHkgZXhpc3QKICAvLyBzbyBzY2FsYXJpemluZyBpcyBmaW5lLgogIHJldHVybiBfX2EgKyBfX2I7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSArICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fY2FycnkgPSBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3V3KAogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7CiAgX19jYXJyeSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2NhcnJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19jYXJyeSwgMCwgMCwgMCwgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTUsIDAsIDAsIDAsIDApOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fcmVzICsgX19jYXJyeSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfYWRkKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmIC8vIF9fUE9XRVI4X1ZFQ1RPUl9fCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYWRkKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQojZW5kaWYgLy8gX19WU1hfXwoKLyogdmVjX2FkZGUgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRldXFtKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkZV91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmFkZGV1cW0oX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYykgewogIHZlY3RvciBzaWduZWQgaW50IF9fbWFzayA9IHsxLCAxLCAxLCAxfTsKICB2ZWN0b3Igc2lnbmVkIGludCBfX2NhcnJ5ID0gX19jICYgX19tYXNrOwogIHJldHVybiB2ZWNfYWRkKHZlY19hZGQoX19hLCBfX2IpLCBfX2NhcnJ5KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19tYXNrID0gezEsIDEsIDEsIDF9OwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZCh2ZWNfYWRkKF9fYSwgX19iKSwgX19jYXJyeSk7Cn0KCi8qIHZlY19hZGRlYyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkZWModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZGVjKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRlY3VxKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkZWNfdTEyOCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192YWRkZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKI2lmZGVmIF9fcG93ZXJwYzY0X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRlYyh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYykgewoKICBzaWduZWQgaW50IF9fcmVzdWx0WzRdOwogIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICB1bnNpZ25lZCBpbnQgX190ZW1wYSA9ICh1bnNpZ25lZCBpbnQpIF9fYVtpXTsKICAgIHVuc2lnbmVkIGludCBfX3RlbXBiID0gKHVuc2lnbmVkIGludCkgX19iW2ldOwogICAgdW5zaWduZWQgaW50IF9fdGVtcGMgPSAodW5zaWduZWQgaW50KSBfX2NbaV07CiAgICBfX3RlbXBjID0gX190ZW1wYyAmIDB4MDAwMDAwMDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYiA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGI7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYyA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGM7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19zdW0gPSBfX2xvbmdhICsgX19sb25nYiArIF9fbG9uZ2M7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPSAoX19zdW0gPj4gMzIpICYgMHgwMTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3RlbXByZXMgPSAodW5zaWduZWQgaW50KSBfX3JlczsKICAgIF9fcmVzdWx0W2ldID0gKHNpZ25lZCBpbnQpIF9fdGVtcHJlczsKICB9CgogIHZlY3RvciBzaWduZWQgaW50IHJldCA9IHsgX19yZXN1bHRbMF0sIF9fcmVzdWx0WzFdLCBfX3Jlc3VsdFsyXSwgX19yZXN1bHRbM10gfTsKICByZXR1cm4gcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWRkZWModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKCiAgdW5zaWduZWQgaW50IF9fcmVzdWx0WzRdOwogIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICB1bnNpZ25lZCBpbnQgX190ZW1wYyA9IF9fY1tpXSAmIDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYVtpXTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xvbmdiID0gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19iW2ldOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbG9uZ2MgPSAodW5zaWduZWQgbG9uZyBsb25nKSBfX3RlbXBjOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fc3VtID0gX19sb25nYSArIF9fbG9uZ2IgKyBfX2xvbmdjOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKF9fc3VtID4+IDMyKSAmIDB4MDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX190ZW1wcmVzID0gKHVuc2lnbmVkIGludCkgX19yZXM7CiAgICBfX3Jlc3VsdFtpXSA9IChzaWduZWQgaW50KSBfX3RlbXByZXM7CiAgfQoKICB2ZWN0b3IgdW5zaWduZWQgaW50IHJldCA9IHsgX19yZXN1bHRbMF0sIF9fcmVzdWx0WzFdLCBfX3Jlc3VsdFsyXSwgX19yZXN1bHRbM10gfTsKICByZXR1cm4gcmV0Owp9CiNlbmRpZiAvLyBfX3Bvd2VycGM2NF9fCiNlbmRpZiAvLyBfX1BPV0VSOF9WRUNUT1JfXwoKLyogdmVjX3ZhZGR1Ym0gKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFkZHVibSB2ZWNfdmFkZHVibQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKLyogdmVjX3ZhZGR1aG0gKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFkZHVobSB2ZWNfdmFkZHVobQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFkZHVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkdWhtKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkdWhtKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhtKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFkZHVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCi8qIHZlY192YWRkdXdtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d20gdmVjX3ZhZGR1d20KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkdXdtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkdXdtKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhZGR1d20odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFkZHV3bSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFkZHV3bSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKLyogdmVjX3ZhZGRmcCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192YWRkZnAgdmVjX3ZhZGRmcAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZhZGRmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKLyogdmVjX2FkZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRjKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3V3KF9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1cSgKICAgICAgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOClfX2EsICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRjdXEoX19hLCBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192YWRkY3VxKF9fYSwgX19iKTsKfQojZW5kaWYgLy8gZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQoKLyogdmVjX3ZhZGRjdXcgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmFkZGN1dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1dyhfX2EsIF9fYik7Cn0KCi8qIHZlY19hZGRzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicygodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2JzKF9fYSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1YnMoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGRzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGRzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzaHMoX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWhzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocygodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZHModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzd3MoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc3dzKCh2ZWN0b3IgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZHModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHN3cyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdXdzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHV3cygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d3MoX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgovKiB2ZWNfdmFkZHNicyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHNicyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkc2JzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzYnMoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhZGRzYnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicyhfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZhZGR1YnMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVicyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWJzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicygodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1YnModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWJzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qIHZlY192YWRkc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkc2hzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFkZHNocyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkc2hzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzaHMoX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCi8qIHZlY192YWRkdWhzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1aHModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1aHMoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1aHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1aHMoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192YWRkc3dzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFkZHN3cyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHN3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkc3dzKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzd3MoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFkZHN3cyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc3dzKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKLyogdmVjX3ZhZGR1d3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdXdzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1d3ModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHV3cygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d3MoX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKLyogdmVjX3ZhZGR1cW0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkdXFtKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1cW0odmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCi8qIHZlY192YWRkZXVxbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZhZGRldXFtKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRldXFtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkZXVxbSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3ZhZGRjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkY3VxKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdmFkZGN1cSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRjdXEoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmFkZGVjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkZWN1cSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdmFkZGVjdXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmIC8vIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKCi8qIHZlY19hbmQgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFuZCB2ZWNfYW5kCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2FuZCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FuZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CiNlbmRpZgoKLyogdmVjX3ZhbmQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CiNlbmRpZgoKLyogdmVjX2FuZGMgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFuZGMgdmVjX2FuZGMKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KI2VuZGlmCgovKiB2ZWNfdmFuZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CiNlbmRpZgoKLyogdmVjX2F2ZyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYXZnKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3NiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hdmcodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3ViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYXZnKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhdmdzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2F2Zyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zhdmd1aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hdmcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3N3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2F2Zyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3V3KF9fYSwgX19iKTsKfQoKLyogdmVjX3ZhdmdzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZhdmdzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhdmdzYihfX2EsIF9fYik7Cn0KCi8qIHZlY192YXZndWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1Yih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YXZndWIoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmF2Z3NoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmF2Z3NoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3NoKF9fYSwgX19iKTsKfQoKLyogdmVjX3Zhdmd1aCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zhdmd1aChfX2EsIF9fYik7Cn0KCi8qIHZlY192YXZnc3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmF2Z3N3KHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YXZnc3coX19hLCBfX2IpOwp9CgovKiB2ZWNfdmF2Z3V3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3V3KF9fYSwgX19iKTsKfQoKLyogdmVjX2NlaWwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2NlaWwodmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaXAoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaXAoX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19jZWlsKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5kcCAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZHAodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfY2VpbChfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmRwKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIHZlY19jZWlsKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJmaXAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cmZpcCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZmlwKF9fYSk7Cn0KCi8qIHZlY19jbXBiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2NtcGIodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBiZnAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGJmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBiZnAoX19hLCBfX2IpOwp9CgovKiB2ZWNfY21wZXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfY21wZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWgoKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoKCh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBlcSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1dyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3KCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBlcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoCiAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkKAogICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYik7Cn0KI2VsaWYgZGVmaW5lZChfX1ZTWF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciBib29sIGludCBfX3dvcmRjbXAgPQogICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fd29yZGNtcCAmPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3dvcmRjbXAsIF9fd29yZGNtcCwgMywgMCwgMSwgMik7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX193b3JkY21wLCBfX3dvcmRjbXAsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMywgMyk7CiNlbHNlCiAgX193b3JkY21wICY9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fd29yZGNtcCwgX193b3JkY21wLCAxLCAyLCAzLCAwKTsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3dvcmRjbXAsIF9fd29yZGNtcCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAyLCAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZXEodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZjbXBlcXNwKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h2Y21wZXFkcChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cSgKICAgICAgKHZlY3RvciBib29sIF9faW50MTI4KV9fYSwgKHZlY3RvciBib29sIF9faW50MTI4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXEoCiAgICAgICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2EsICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCi8qIHZlY19jbXBuZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192Y21wbmViKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5laCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5laCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWgoKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV3KCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIF9faW50MTI4KSB+KF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVxKAogICAgICAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19hLCAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBfX2ludDEyOCkgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cSgKICAgICAgKHZlY3RvciBib29sIF9faW50MTI4KV9fYSwgKHZlY3RvciBib29sIF9faW50MTI4KV9fYikpOwp9CiNlbmRpZgoKLyogdmVjX2NtcG5leiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpiKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbmV6KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpiKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpoKCh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV6aCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmV6KHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5lencoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV6dygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2NudGx6X2xzYmIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emxzYmIoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemxzYmIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnRsel9sc2JiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emxzYmIoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemxzYmIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnR0el9sc2JiKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpsc2JiKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpsc2JiKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfY250dHpfbHNiYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpsc2JiKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpsc2JiKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHlidyhfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwcnR5YncoX19hKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3Bhcml0eV9sc2JiKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHlicShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19wYXJpdHlfbHNiYih2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cHJ0eWJxKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHliZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwcnR5YmQoX19hKTsKfQoKI2Vsc2UKLyogdmVjX2NtcG5lICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KI2VuZGlmCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKQogICAgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZCgodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKQogICAgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZCgodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZykKICAgIH4oX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoKHZlY3RvciBsb25nIGxvbmcpX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpKTsKfQojZWxpZiBkZWZpbmVkKF9fVlNYX18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZyl+KAogICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKX4oCiAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKX4oCiAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKSk7Cn0KI2VuZGlmCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZykKICAgIH4oX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoKHZlY3RvciBsb25nIGxvbmcpX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpKTsKfQojZW5kaWYKCi8qIHZlY19jbXBndCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2NtcGd0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2goX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZ3QodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3coX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBndCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1dyhfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBndCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWQoX19hLCBfX2IpOwp9CiNlbGlmIGRlZmluZWQoX19WU1hfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGludCBfX3NndHcgPSAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX2NtcGd0KAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHNpZ25lZCBpbnQpX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fdWd0dyA9ICh2ZWN0b3IgdW5zaWduZWQgaW50KXZlY19jbXBndCgKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19lcXcgPSAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfY21wZXEoCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2EsICh2ZWN0b3Igc2lnbmVkIGludClfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX3VndHcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3VndHcsIF9fdWd0dywgMywgMCwgMSwgMikgJiBfX2VxdzsKICBfX3NndHcgfD0gKHZlY3RvciBzaWduZWQgaW50KV9fdWd0dzsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3NndHcsIF9fc2d0dywgMSwgMSwgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKTsKI2Vsc2UKICBfX3VndHcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3VndHcsIF9fdWd0dywgMSwgMiwgMywgMCkgJiBfX2VxdzsKICBfX3NndHcgfD0gKHZlY3RvciBzaWduZWQgaW50KV9fdWd0dzsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3NndHcsIF9fc2d0dywgMCwgMCwgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX191Z3R3ID0gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX2NtcGd0KAogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2VxdyA9ICh2ZWN0b3IgdW5zaWduZWQgaW50KXZlY19jbXBlcSgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fZXF3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX191Z3R3LCBfX3VndHcsIDMsIDAsIDEsIDIpICYgX19lcXc7CiAgX191Z3R3IHw9IF9fZXF3OwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdWd0dywgX191Z3R3LCAxLCAxLCAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpOwojZWxzZQogIF9fZXF3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX191Z3R3LCBfX3VndHcsIDEsIDIsIDMsIDApICYgX19lcXc7CiAgX191Z3R3IHw9IF9fZXF3OwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdWd0dywgX191Z3R3LCAwLCAwLCAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpOwojZW5kaWYKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX2NtcGd0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF94dmNtcGd0ZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3EoCiAgICAgICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2EsICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIF9faW50MTI4KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxKAogICAgICAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19hLCAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19iKTsKfQojZW5kaWYKCi8qIHZlY19jbXBnZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZ2UodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZ2UodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZjbXBnZXNwKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQojZW5kaWYKCi8qIHZlY192Y21wZ2VmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBnZWZwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcChfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3RzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3RzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndHViICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBndHViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndHNoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3RzaCh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaChfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3R1aCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGd0dWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWgoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmNtcGd0c3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3Rzdyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzdyhfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3R1dyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBndHV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3KF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndGZwICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGd0ZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwKF9fYSwgX19iKTsKfQoKLyogdmVjX2NtcGxlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbGUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbGUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBsZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfY21wbHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBsdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBsdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2NtcGx0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGd0KF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wbHQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBsdCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGd0KF9fYiwgX19hKTsKfQojZW5kaWYKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY19wb3BjbnQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250aChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRoKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnR3KF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcG9wY250KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250ZChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBvcGNudGQoX19hKTsKfQoKI2RlZmluZSB2ZWNfdmNseiB2ZWNfY250bHoKLyogdmVjX2NudGx6ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemIoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY250bHoodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemgoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpoKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsencoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfY250bHoodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsencoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudGx6KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2x6ZChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2x6ZChfX2EpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCgovKiB2ZWNfY250dHogKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emIoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6YihfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbnR0eih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6aChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emgoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnR0eih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY250dHoodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpkKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpkKF9fYSk7Cn0KCi8qIHZlY19maXJzdF9tYXRjaF9pbmRleCAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gMzsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWF0Y2hfaW5kZXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gNDsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDQ7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWF0Y2hfaW5kZXgodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKLyogdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIC8qIENvbXBhcmUgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBvZiB0d28gdmVjdG9ycyB3aXRoIGVpdGhlciBhbmQgT1IgdGhlCiAgICAgcmVzdWx0LiBFaXRoZXIgdGhlIGVsZW1lbnRzIGFyZSBlcXVhbCBvciBvbmUgd2lsbCBlcXVhbCB0aGUgY29tcGFyaXNvbgogICAgIHJlc3VsdCBpZiBlaXRoZXIgaXMgemVyby4KICAqLwogIHZlY3RvciBib29sIGNoYXIgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBjaGFyIF9fdG1wMiA9IF9fdG1wMSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgY2hhcilfX3RtcDEsIF9fYSkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIGJvb2wgY2hhciBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIGNoYXIgX190bXAyID0gX190bXAxIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX190bXAxLCBfX2EpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgYm9vbCBzaG9ydCBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIHNob3J0IF9fdG1wMiA9IF9fdG1wMSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fdG1wMSwgX19iKTsKCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2Vsc2UKICAgICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdG1wMik7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgdmVjdG9yIGJvb2wgc2hvcnQgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBzaG9ydCBfX3RtcDIgPSBfX3RtcDEgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciBib29sIGludCBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIGludCBfX3RtcDIgPSBfX3RtcDEgfCB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgaW50KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBpbnQpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgYm9vbCBpbnQgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBpbnQgX190bXAyID0gX190bXAxIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGludClfX3RtcDEsIF9fYik7CgogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdG1wMik7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKLyogdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgovKiB2ZWNfZmlyc3RfbWlzbWF0Y2hfb3JfZW9zX2luZGV4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gNTsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDU7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWlzbWF0Y2hfb3JfZW9zX2luZGV4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2aWV4cGRwKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSxfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlICBfX0FUVFJTX29fYWkKdmVjX2luc2VydF9leHAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZpZXhwZHAoX19hLF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZpZXhwc3AoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2aWV4cHNwKF9fYSxfX2IpOwp9CgojaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGNoYXIgKl9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeGxfbGVuKGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfeGxfbGVuKGNvbnN0IHNpZ25lZCBzaG9ydCAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2bChfX2EsIChfX2IgPDwgNTYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGludCAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgaW50ICpfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hsX2xlbihjb25zdCBmbG9hdCAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbihjb25zdCBzaWduZWQgX19pbnQxMjggKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBfX2ludDEyOClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbihjb25zdCB1bnNpZ25lZCBfX2ludDEyOCAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX2EsIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeGxfbGVuKGNvbnN0IGRvdWJsZSAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbl9yKGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYSwgc2l6ZV90IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2bGwoX19hLCAoX19iIDw8IDU2KSk7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19tYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoMTYgLSBfX2IsIChpbnQgKilOVUxMKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgKICAgICAgKHZlY3RvciBpbnQpX19yZXMsICh2ZWN0b3IgaW50KV9fcmVzLCBfX21hc2spOwp9CgovLyB2ZWNfeHN0X2xlbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3N0eHZsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCAoX19jIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIHNob3J0ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmwoKHZlY3RvciBpbnQpX19hLCBfX2IsIChfX2MgPDwgNTYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9sZW4odmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgaW50ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgZmxvYXQgX19hLCBmbG9hdCAqX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmwoKHZlY3RvciBpbnQpX19hLCBfX2IsIChfX2MgPDwgNTYpKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgX19pbnQxMjggKl9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3N0eHZsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCAoX19jIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4ICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9sZW4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgZG91YmxlIF9fYSwgZG91YmxlICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbl9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKDE2IC0gX19jLCAoaW50ICopTlVMTCk7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19yZXMgPQogICAgICBfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2EsIF9fbWFzayk7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmxsKCh2ZWN0b3IgaW50KV9fcmVzLCBfX2IsIChfX2MgPDwgNTYpKTsKfQojZW5kaWYKI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSOV9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQojZGVmaW5lIF9fdmVjX2xkcm1iKFBUUiwgQ05UKSB2ZWNfeGxfbGVuX3IoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikoUFRSKSwgKENOVCkpCiNkZWZpbmUgX192ZWNfc3RybWIoUFRSLCBDTlQsIFZBTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgdmVjX3hzdF9sZW5fcigoVkFMKSwgKHVuc2lnbmVkIGNoYXIgKikoUFRSKSwgKENOVCkpCiNlbHNlCiNkZWZpbmUgX192ZWNfbGRybWIgX19idWlsdGluX3ZzeF9sZHJtYgojZGVmaW5lIF9fdmVjX3N0cm1iIF9fYnVpbHRpbl92c3hfc3RybWIKI2VuZGlmCgovKiB2ZWNfY3BzZ24gKi8KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2Nwc2duKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNwc2duc3AoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfY3BzZ24odmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3BzZ25kcChfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfY3RmICovCgojaWZkZWYgX19WU1hfXwovLyBUaGVyZSBhcmUgc29tZSBmdW5jdGlvbnMgdGhhdCBoYXZlIGRpZmZlcmVudCBzaWduYXR1cmVzIHdpdGggdGhlIFhMIGNvbXBpbGVyCi8vIGZyb20gdGhvc2UgaW4gQ2xhbmcvR0NDIGFuZCBkb2N1bWVudGVkIGluIHRoZSBQVklQUi4gVGhpcyBtYWNybyBlbnN1cmVzIHRoYXQKLy8gdGhlIFhMLWNvbXBhdGlibGUgc2lnbmF0dXJlcyBhcmUgdXNlZCBmb3IgdGhvc2UgZnVuY3Rpb25zLgojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0ZihfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjZnN4KCh2ZWN0b3IgaW50KShfX2EpLCAoX19iKSksICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjZnV4KCh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IpKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAoX19idWlsdGluX3ZzeF94dmN2dXhkc3AoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYSkpICogICAgICBcCiAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiAtIChfX2IpKSA8PCAyMykpLCAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAoX19idWlsdGluX3ZzeF94dmN2c3hkc3AoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2EpKSAqICAgICAgICBcCiAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiAtIChfX2IpKSA8PCAyMykpKQojZWxzZSAvLyBfX1hMX0NPTVBBVF9BTFRJVkVDX18KI2RlZmluZSB2ZWNfY3RmKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdmNmc3goKHZlY3RvciBpbnQpKF9fYSksIChfX2IpKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdmNmdXgoKHZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fYikpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IChfX2J1aWx0aW5fY29udmVydHZlY3RvcigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoX19hKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlKSAqICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMIC0gKF9fYikpICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IChfX2J1aWx0aW5fY29udmVydHZlY3RvcigodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlKSAqICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMIC0gKF9fYikpICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpKSkKI2VuZGlmIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZWxzZQojZGVmaW5lIHZlY19jdGYoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192Y2ZzeCgodmVjdG9yIGludCkoX19hKSwgKF9fYikpLCAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192Y2Z1eCgodmVjdG9yIHVuc2lnbmVkIGludCkoX19hKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19iKSkpCiNlbmRpZgoKLyogdmVjX2N0ZCAqLwojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY19jdGQoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3Igc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY19kb3VibGVlKCh2ZWN0b3Igc2lnbmVkIGludCkoX19hKSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY19kb3VibGVlKCh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpKSAqICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUpICogICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoX19hKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUpICogICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpKQojZW5kaWYgLy8gX19WU1hfXwoKLyogdmVjX3ZjZnN4ICovCgojZGVmaW5lIHZlY192Y2Z1eCBfX2J1aWx0aW5fYWx0aXZlY192Y2Z1eAovKiB2ZWNfdmNmdXggKi8KCiNkZWZpbmUgdmVjX3ZjZnN4KF9fYSwgX19iKSBfX2J1aWx0aW5fYWx0aXZlY192Y2ZzeCgodmVjdG9yIGludCkoX19hKSwgKF9fYikpCgovKiB2ZWNfY3RzICovCgojaWZkZWYgX19WU1hfXwojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0cyhfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fYWx0aXZlY192Y3RzeHMoKHZlY3RvciBmbG9hdCkoX19hKSwgKF9fYikpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIChfX2IpKSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbHNlIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZGVmaW5lIHZlY19jdHMoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmN0c3hzKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyAoX19iKSkgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsgICAgICAgICAgXAogICAgICAgICAgIH0pKQojZW5kaWYgLy8gX19YTF9DT01QQVRfQUxUSVZFQ19fCiNlbHNlCiNkZWZpbmUgdmVjX2N0cyBfX2J1aWx0aW5fYWx0aXZlY192Y3RzeHMKI2VuZGlmCgovKiB2ZWNfdmN0c3hzICovCgojZGVmaW5lIHZlY192Y3RzeHMgX19idWlsdGluX2FsdGl2ZWNfdmN0c3hzCgovKiB2ZWNfY3R1ICovCgojaWZkZWYgX19WU1hfXwojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0dShfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMoKHZlY3RvciBmbG9hdCkoX19hKSwgKF9fYikpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbHNlIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZGVmaW5lIHZlY19jdHUoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmN0dXhzKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyBfX2IpICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpOyAgICAgICAgXAogICAgICAgICAgIH0pKQojZW5kaWYgLy8gX19YTF9DT01QQVRfQUxUSVZFQ19fCiNlbHNlCiNkZWZpbmUgdmVjX2N0dSBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KLyogdmVjX2N0c2wgKi8KCiNpZmRlZiBfX1ZTWF9fCiNkZWZpbmUgdmVjX2N0c2woX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KSh2ZWN0b3IgdW5zaWduZWQpKCgweDdmICsgKF9fYikpIDw8IDIzKTsgICAgICBcCiAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHZjdnNwc3hkcyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h4c2xkd2koX19yZXQsIF9fcmV0LCAxKSk7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3JldCwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpOyAgICAgICAgICBcCiAgICAgICAgICAgfSkpCgovKiB2ZWNfY3R1bCAqLwoKI2RlZmluZSB2ZWNfY3R1bChfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIGZsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgZmxvYXQpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgZmxvYXQpKHZlY3RvciB1bnNpZ25lZCkoKDB4N2YgKyAoX19iKSkgPDwgMjMpOyAgICAgIFwKICAgICAgICAgICAgICAgX19idWlsdGluX3ZzeF94dmN2c3B1eGRzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHhzbGR3aShfX3JldCwgX19yZXQsIDEpKTsgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIH0pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19yZXQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkoX19hKSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMICsgX19iKSAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpOyAgICAgICAgICAgIFwKICAgICAgICAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fcmV0LCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTsgICAgICAgIFwKICAgICAgICAgICB9KSkKI2VuZGlmCiNlbHNlIC8vIF9fTElUVExFX0VORElBTl9fCi8qIHZlY19jdHNsICovCgojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY19jdHNsKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19yZXQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkoX19hKSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiArIChfX2IpKSA8PCAyMyk7ICAgICAgXAogICAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZzcHN4ZHMoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgfSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyBfX2IpICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsgICAgICAgICAgXAogICAgICAgICAgIH0pKQoKLyogdmVjX2N0dWwgKi8KCiNkZWZpbmUgdmVjX2N0dWwoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KSh2ZWN0b3IgdW5zaWduZWQpKCgweDdmICsgKF9fYikpIDw8IDIzKTsgICAgICBcCiAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHZjdnNwdXhkcyhfX3JldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3JldCwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyk7ICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbmRpZgojZW5kaWYgLy8gX19MSVRUTEVfRU5ESUFOX18KCi8qIHZlY192Y3R1eHMgKi8KCiNkZWZpbmUgdmVjX3ZjdHV4cyBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMKCi8qIHZlY19zaWduZXh0ICovCgojaWZkZWYgX19QT1dFUjlfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zaWduZXh0aSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRzYjJ3KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmV4dGkodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHNoMncoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zaWduZXh0bGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2IyZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRsbCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2gyZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRsbCh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHN3MmQoX19hKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2QycShfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3NpZ25lZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHNpZ25lZCBpbnQsIHZlY3RvciBzaWduZWQgaW50LCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3Igc2lnbmVkIGludCk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19zaWduZWQyKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpIHsgX19hWzBdLCBfX2FbMV0sIF9fYlswXSwgX19iWzFdIH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkZSh2ZWN0b3IgZG91YmxlIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3Igc2lnbmVkIGludCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdmRwc3h3cyhfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkbyh2ZWN0b3IgZG91YmxlIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHBzeHdzKF9fYSk7CiNlbHNlCiAgdmVjdG9yIHNpZ25lZCBpbnQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdW5zaWduZWQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHVuc2lnbmVkIGludCwgdmVjdG9yIHVuc2lnbmVkIGludCwgdW5zaWduZWQgY29uc3QgaW50IF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY191bnNpZ25lZDIodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KSB7IF9fYVswXSwgX19hWzFdLCBfX2JbMF0sIF9fYlsxXSB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWRlKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHB1eHdzKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWRvKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19hKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmV0ID0gX19idWlsdGluX3ZzeF94dmN2ZHB1eHdzKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX2Zsb2F0ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIGZsb2F0LCB2ZWN0b3IgZmxvYXQsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgdmVjdG9yIGZsb2F0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgZmxvYXQpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdDIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdCkgeyBfX2FbMF0sIF9fYVsxXSwgX19iWzBdLCBfX2JbMV0gfTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQyKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KSB7IF9fYVswXSwgX19hWzFdLCBfX2JbMF0sIF9fYlsxXSB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdDIodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpIHsgX19hWzBdLCBfX2FbMV0sIF9fYlswXSwgX19iWzFdIH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2Zsb2F0ZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIGZsb2F0IF9fcmV0ID0gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2Zsb2F0ZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRlKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciBmbG9hdCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdmRwc3AoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHBzcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRvKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKI2Vsc2UKICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZzeGRzcChfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwojZWxzZQogIHZlY3RvciBmbG9hdCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdnV4ZHNwKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdG8odmVjdG9yIGRvdWJsZSBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdmRwc3AoX19hKTsKI2Vsc2UKICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHNwKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX2RvdWJsZSAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgZG91YmxlKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIHZlY3RvciBkb3VibGUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdnN4d2RwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3h3ZHAoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19kb3VibGVlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eHdkcCh2ZWNfc2xkKF9fYSwgX19hLCA0KSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdnV4d2RwKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzcGRwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3BkcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWgodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIGRvdWJsZSBfX3JldCA9IHtfX2FbMF0sIF9fYVsxXX07CiAgcmV0dXJuIF9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzBdLCBfX2FbMV19OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWgodmVjdG9yIGZsb2F0IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzBdLCBfX2FbMV19OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWwodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIGRvdWJsZSBfX3JldCA9IHtfX2FbMl0sIF9fYVszXX07CiAgcmV0dXJuIF9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlbCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzJdLCBfX2FbM119OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWwodmVjdG9yIGZsb2F0IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzJdLCBfX2FbM119OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZW8odmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzeHdkcChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzeHdkcCh2ZWNfc2xkKF9fYSwgX19hLCA0KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91Ymxlbyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2dXh3ZHAoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2dXh3ZHAodmVjX3NsZChfX2EsIF9fYSwgNCkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZW8odmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3BkcChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzcGRwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2VuZGlmCn0KCi8qIHZlY19jdmYgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2N2Zih2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIHZlY19kb3VibGVlKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2N2Zih2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfZmxvYXRlKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfZGl2ICovCgovKiBJbnRlZ2VyIHZlY3RvciBkaXZpZGVzICh2ZWN0b3JzIGFyZSBzY2FsYXJpemVkLCBlbGVtZW50cyBkaXZpZGVkCiAgIGFuZCB0aGUgdmVjdG9ycyByZWFzc2VtYmxlZCkuCiovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19kaXYodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19kaXYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19kaXYodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfZGl2KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQojZW5kaWYKCi8qIHZlY19kaXZlICovCgojaWZkZWYgX19QT1dFUjEwX1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZGl2ZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZkaXZldXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmRpdmVzZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19kaXZlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXVkKF9fYSwgX19iKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXVxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZkaXZlc3EoX19hLCBfX2IpOwp9CiNlbmRpZgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KI2VuZGlmIC8qIF9fUE9XRVIxMF9WRUNUT1JfXyAqLwoKLyogdmVjX3h2dGRpdiAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfdGVzdF9zd2Rpdih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGRpdmRwKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfdGVzdF9zd2RpdnModmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGRpdnNwKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19kc3MgKi8KCiNkZWZpbmUgdmVjX2RzcyBfX2J1aWx0aW5fYWx0aXZlY19kc3MKCi8qIHZlY19kc3NhbGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2ZWNfZHNzYWxsKHZvaWQpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19kc3NhbGwoKTsKfQoKLyogdmVjX2RzdCAqLwojZGVmaW5lIHZlY19kc3QoX19QVFIsIF9fQ1csIF9fU1RSKSBcCiAgX19idWlsdGluX2FsdGl2ZWNfZHN0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHN0ICovCiNkZWZpbmUgdmVjX2RzdHN0KF9fUFRSLCBfX0NXLCBfX1NUUikgXAogIF9fYnVpbHRpbl9hbHRpdmVjX2RzdHN0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHN0dCAqLwojZGVmaW5lIHZlY19kc3RzdHQoX19QVFIsIF9fQ1csIF9fU1RSKSBcCiAgX19idWlsdGluX2FsdGl2ZWNfZHN0c3R0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHQgKi8KI2RlZmluZSB2ZWNfZHN0dChfX1BUUiwgX19DVywgX19TVFIpIFwKICBfX2J1aWx0aW5fYWx0aXZlY19kc3R0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2VxdiAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXF2KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHhsZXF2KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfZXF2KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h4bGVxdigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h4bGVxdigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19lcXYodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2Vxdih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfZXhwdGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19leHB0ZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHB0ZWZwKF9fYSk7Cn0KCi8qIHZlY192ZXhwdGVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZleHB0ZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4cHRlZnAoX19hKTsKfQoKLyogdmVjX2Zsb29yICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19mbG9vcih2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpbShfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpbShfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2Zsb29yKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpbShfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5kbSAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZG0odmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfZmxvb3IoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JvdW5kbSh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfZmxvb3IoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmZpbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZmltKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaW0oX19hKTsKfQoKLyogdmVjX2xkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX2xkKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgcGl4ZWwgKl9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sZChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgovKiB2ZWNfbHZ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdngobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2eChsb25nIF9fYSwgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2eChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKLyogdmVjX2xkZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZlYngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkZShsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdmVieChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2xkZShsb25nIF9fYSwgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWh4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZlaHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdmV3eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZGUobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZXd4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZld3goX19hLCBfX2IpOwp9CgovKiB2ZWNfbHZlYnggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2ZWJ4KGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZlYngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2ZWJ4KGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWJ4KF9fYSwgX19iKTsKfQoKLyogdmVjX2x2ZWh4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmVoeChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWh4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZlaHgobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdmVoeChfX2EsIF9fYik7Cn0KCi8qIHZlY19sdmV3eCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2ZXd4KGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdmV3eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdmV3eChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZld3goX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmV3eChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZXd4KF9fYSwgX19iKTsKfQoKLyogdmVjX2xkbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgcGl4ZWwgKl9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2xkbChsb25nIF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCi8qIHZlY19sdnhsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZ4bChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2eGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgovKiB2ZWNfbG9nZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2xvZ2UodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bG9nZWZwKF9fYSk7Cn0KCi8qIHZlY192bG9nZWZwICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmxvZ2VmcCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zsb2dlZnAoX19hKTsKfQoKLyogdmVjX2x2c2wgKi8KCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c2woaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c2woaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX2x2c2woaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c2woaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19sdnNyICovCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnNyKGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnNyKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBzaG9ydCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNyKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNyKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbHZzcihpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgZmxvYXQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbHZzcihpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfbWFkZCAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWxhZGQodmVjdG9yIHNpZ25lZCBzaG9ydCwgdmVjdG9yIHNpZ25lZCBzaG9ydCwgdmVjdG9yIHNpZ25lZCBzaG9ydCk7CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3Igc2lnbmVkIHNob3J0LCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCk7CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciBzaWduZWQgc2hvcnQsIHZlY3RvciBzaWduZWQgc2hvcnQpOwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCwgdmVjdG9yIHVuc2lnbmVkIHNob3J0KTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19tYWRkKAogICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiB2ZWNfbWxhZGQoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYWRkKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX21hZGQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbWFkZCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYykgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWFkZGFzcChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1hZGRmcChfX2EsIF9fYiwgX19jKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tYWRkKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dm1hZGRhZHAoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdm1hZGRmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtYWRkZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYiwgdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWFkZGZwKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfbWFkZHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfbWFkZHModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1oYWRkc2hzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdm1oYWRkc2hzICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1oYWRkc2hzKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWhhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19tc3ViICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19tc3ViKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtc3ViYXNwKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbXN1Yih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtc3ViYWRwKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX21heCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWF4KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWF4KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tYXgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tYXgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2QoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzZChfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1ZCgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHVkKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWF4c3AoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4ZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWF4ZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZtYXhzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtYXh1YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtYXhzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1heHNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtYXhzaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1heHNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdm1heHVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWF4dWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWF4dWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1heHVoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192bWF4c3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWF4c3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZtYXhzdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWF4c3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfdm1heHV3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1heHV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1heHV3KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bWF4dXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZtYXhmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtYXhmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtYXhzcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhmcChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfbWVyZ2VoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tZXJnZWgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tZXJnZWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VoKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21lcmdlaCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgKHZlY3RvciBkb3VibGUpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CiNlbmRpZgoKLyogdmVjX3ZtcmdoYiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnaGIgdmVjX3ZtcmdoYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1yZ2hiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bXJnaGIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZtcmdoYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKLyogdmVjX3ZtcmdoaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnaGggdmVjX3ZtcmdoaAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2hoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtcmdoaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1yZ2hoKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZtcmdoaCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDEwLCAweDExLCAweDAyLCAweDAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxNiwgMHgxNykpOwp9CgovKiB2ZWNfdm1yZ2h3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZtcmdodyB2ZWNfdm1yZ2h3CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2h3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bXJnaHcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3Ztcmdodyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192bXJnaHcodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKLyogdmVjX21lcmdlbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VsKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX21lcmdlbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDE4LCAweDE5LCAweDBBLCAweDBCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MUMsIDB4MUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDE4LCAweDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19tZXJnZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgxOCwgMHgxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAweDFCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tZXJnZWwodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgKHZlY3RvciBkb3VibGUpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CiNlbmRpZgoKLyogdmVjX3ZtcmdsYiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnbGIgdmVjX3ZtcmdsYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1yZ2xiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bXJnbGIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZtcmdsYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKLyogdmVjX3ZtcmdsaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnbGggdmVjX3ZtcmdsaAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2xoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtcmdsaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1yZ2xoKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZtcmdsaCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDE4LCAweDE5LCAweDBBLCAweDBCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MUMsIDB4MUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRikpOwp9CgovKiB2ZWNfdm1yZ2x3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZtcmdsdyB2ZWNfdm1yZ2x3CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2x3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bXJnbHcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3Ztcmdsdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDE4LCAweDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192bXJnbHcodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgxOCwgMHgxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAweDFCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY19tZXJnZWUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX21lcmdlZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21lcmdlZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX21lcmdlaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VlKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VoKF9fYSwgX19iKTsKfQoKLyogdmVjX21lcmdlbyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VvKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VvKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tZXJnZW8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX21lcmdlbChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19tZXJnZW8odmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWwoX19hLCBfX2IpOwp9CgojZW5kaWYKCi8qIHZlY19tZnZzY3IgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19tZnZzY3Iodm9pZCkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tZnZzY3IoKTsKfQoKLyogdmVjX21pbiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWluKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWluKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19taW4odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19taW4odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc2QoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zZChfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51ZCgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnVkKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWluc3AoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWluZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZtaW5zYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtaW51YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtaW5zaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1pbnNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtaW5zaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1pbnNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdm1pbnVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWludWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWludWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1pbnVoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192bWluc3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWluc3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZtaW5zdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWluc3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfdm1pbnV3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1pbnV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1pbnV3KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bWludXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZtaW5mcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtaW5mcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtaW5zcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5mcChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfbWxhZGQgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdm1sYWRkdWhtIHZlY19tbGFkZAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWxhZGQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21sYWRkKAogICAgdmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiAodmVjdG9yIHNob3J0KV9fYiArICh2ZWN0b3Igc2hvcnQpX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCi8qIHZlY192bWxhZGR1aG0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtbGFkZHVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192bWxhZGR1aG0oCiAgICB2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqICh2ZWN0b3Igc2hvcnQpX19iICsgKHZlY3RvciBzaG9ydClfX2M7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtbGFkZHVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWxhZGR1aG0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKLyogdmVjX21yYWRkcyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX21yYWRkcyh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaHJhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY192bWhyYWRkc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1ocmFkZHNocyh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaHJhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19tc3VtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXN1bSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3VtbWJtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXN1bSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW11Ym0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tc3VtKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3Vtc2htKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXN1bSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX21zdW1jICovCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX21zdW1jKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW1jdWQoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdm1zdW1tYm0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1zdW1tYm0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bW1ibShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3VtdWJtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3VtdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW11Ym0oX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY192bXN1bXNobSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXN1bXNobSh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXNobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3VtdWhtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3VtdWhtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX21zdW1zICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXN1bXModmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXNocyhfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21zdW1zKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVocyhfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3Vtc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3Vtc2hzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3Vtc2hzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdm1zdW11aHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1zdW11aHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3VtdWhzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfbXR2c2NyICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBzaG9ydCBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIHBpeGVsIF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBpbnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIGZsb2F0IF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgovKiB2ZWNfbXVsICovCgovKiBJbnRlZ2VyIHZlY3RvciBtdWx0aXBsaWNhdGlvbiB3aWxsIGludm9sdmUgbXVsdGlwbGljYXRpb24gb2YgdGhlIG9kZC9ldmVuCiAgIGVsZW1lbnRzIHNlcGFyYXRlbHksIHRoZW4gdHJ1bmNhdGluZyB0aGUgcmVzdWx0cyBhbmQgbW92aW5nIHRvIHRoZQogICByZXN1bHQgdmVjdG9yLgoqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbXVsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX211bCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tdWwodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CiNlbmRpZgoKLyogVGhlIHZtdWxvcyogYW5kIHZtdWxlcyogaW5zdHJ1Y3Rpb25zIGhhdmUgYSBiaWcgZW5kaWFuIGJpYXMsIHNvCiAgIHdlIG11c3QgcmV2ZXJzZSB0aGUgbWVhbmluZyBvZiAiZXZlbiIgYW5kICJvZGQiIGZvciBsaXR0bGUgZW5kaWFuLiAgKi8KCi8qIHZlY19tdWxlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tdWxlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2IoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91YihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWIoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX211bGUodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zaChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2goX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX211bGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWgoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zdyhfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc3coX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3V3KF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1dyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zZChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2QoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvdWQoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVkKF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdm11bGVzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxlc2IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2IoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZtdWxldWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXVsZXViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3ViKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1YihfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdm11bGVzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXVsZXNoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvc2goX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNoKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192bXVsZXVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxldWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWgoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX211bGggKi8KCiNpZmRlZiBfX1BPV0VSMTBfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tdWxoKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxoc3coX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGh1dyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsaHNkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bGgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxodWQoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX211bG8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX211bG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNiKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXViKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91YihfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXVsbyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zaChfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXN3KF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zdyhfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsbyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldXcoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3V3KF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNkKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zZChfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1ZChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvdWQoX19hLCBfX2IpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY192bXVsb3NiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm11bG9zYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNiKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdm11bG91YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxvdWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWIoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3ViKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192bXVsb3NoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxvc2godmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGVzaChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvc2goX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZtdWxvdWggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm11bG91aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiAgdmVjX25hbmQgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19uYW5kKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX25hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKH4oKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSh+KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYikpOwp9CgojZW5kaWYKCi8qIHZlY19ubWFkZCAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbm1hZGQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bm1hZGRhc3AoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19ubWFkZCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dm5tYWRkYWRwKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX25tc3ViICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19ubXN1Yih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19jKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZubXN1YmFzcChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm5tc3ViZnAoX19hLCBfX2IsIF9fYyk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbm1zdWIodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZubXN1YmFkcChfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCi8qIHZlY192bm1zdWJmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZubXN1YmZwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IsIHZlY3RvciBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm5tc3ViZnAoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19ub3IgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdm5vciB2ZWNfbm9yCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX25vcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX25vcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbm9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19ub3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19ub3IodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgfigodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbm9yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgIH4oKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KI2VuZGlmCgovKiB2ZWNfdm5vciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm5vcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Zub3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm5vcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bm9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zub3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm5vcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm5vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY192bm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Zub3IodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgIH4oKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbm9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19vciAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192b3IgdmVjX29yCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQojZW5kaWYKCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfb3JjKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfb3JjKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX29yYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogcmV0dXJuICh2ZWN0b3IgZmxvYXQpKF9fYSB8IH4odmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KSgodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCB+X19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgfl9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpKF9fYSB8IH4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZvciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192b3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192b3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KI2VuZGlmCgovKiB2ZWNfcGFjayAqLwoKLyogVGhlIHZhcmlvdXMgdmVjdG9yIHBhY2sgaW5zdHJ1Y3Rpb25zIGhhdmUgYSBiaWctZW5kaWFuIGJpYXMsIHNvIGZvcgogICBsaXR0bGUgZW5kaWFuIHdlIG11c3QgaGFuZGxlIHJldmVyc2VkIGVsZW1lbnQgbnVtYmVyaW5nLiAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAyLCAweDA0LCAweDA2LCAweDA4LCAweDBBLCAweDBDLCAweDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTIsIDB4MTQsIDB4MTYsIDB4MTgsIDB4MUEsIDB4MUMsIDB4MUUpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAyLCAweDA0LCAweDA2LCAweDA4LCAweDBBLCAweDBDLCAweDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTIsIDB4MTQsIDB4MTYsIDB4MTgsIDB4MUEsIDB4MUMsIDB4MUUpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAxLCAweDAzLCAweDA1LCAweDA3LCAweDA5LCAweDBCLCAweDBELCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEsIDB4MTMsIDB4MTUsIDB4MTcsIDB4MTksIDB4MUIsIDB4MUQsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAxLCAweDAzLCAweDA1LCAweDA3LCAweDA5LCAweDBCLCAweDBELCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEsIDB4MTMsIDB4MTUsIDB4MTcsIDB4MTksIDB4MUIsIDB4MUQsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2sodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDQsIDB4MDUsIDB4MDgsIDB4MDksIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxNCwgMHgxNSwgMHgxOCwgMHgxOSwgMHgxQywgMHgxRCkpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAyLCAweDAzLCAweDA2LCAweDA3LCAweDBBLCAweDBCLCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MTYsIDB4MTcsIDB4MUEsIDB4MUIsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDA0LCAweDA1LCAweDA4LCAweDA5LCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTEsIDB4MTQsIDB4MTUsIDB4MTgsIDB4MTksIDB4MUMsIDB4MUQpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2sodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE4LCAweDE5LCAweDFBLCAweDFCKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpIChfX2FbMF0sIF9fYVsxXSwgX19iWzBdLCBfX2JbMV0pOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tfdG9fc2hvcnRfZnAzMih2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIGZsb2F0IF9fcmVzYSA9IF9fYnVpbHRpbl92c3hfeHZjdnNwaHAoX19hKTsKICB2ZWN0b3IgZmxvYXQgX19yZXNiID0gX19idWlsdGluX3ZzeF94dmN2c3BocChfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfbWVyZ2VlKF9fcmVzYSwgX19yZXNiKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfbWVyZ2VvKF9fcmVzYSwgX19yZXNiKTsKI2VuZGlmCn0KCiNlbmRpZgovKiB2ZWNfdnBrdWh1bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVtIHZlY192cGt1aHVtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGt1aHVtKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDEsIDB4MDMsIDB4MDUsIDB4MDcsIDB4MDksIDB4MEIsIDB4MEQsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMSwgMHgxMywgMHgxNSwgMHgxNywgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRikpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGt1aHVtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnBrdWh1bSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDIsIDB4MDQsIDB4MDYsIDB4MDgsIDB4MEEsIDB4MEMsIDB4MEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMiwgMHgxNCwgMHgxNiwgMHgxOCwgMHgxQSwgMHgxQywgMHgxRSkpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgovKiB2ZWNfdnBrdXd1bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VtIHZlY192cGt1d3VtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192cGt1d3VtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDA0LCAweDA1LCAweDA4LCAweDA5LCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTEsIDB4MTQsIDB4MTUsIDB4MTgsIDB4MTksIDB4MUMsIDB4MUQpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cGt1d3VtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDIsIDB4MDMsIDB4MDYsIDB4MDcsIDB4MEEsIDB4MEIsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgxNiwgMHgxNywgMHgxQSwgMHgxQiwgMHgxRSwgMHgxRikpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cGt1d3VtKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgovKiB2ZWNfdnBrdWR1bSAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1bSB2ZWNfdnBrdWR1bQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zwa3VkdW0odmVjdG9yIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE4LCAweDE5LCAweDFBLCAweDFCKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgaW50KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGt1ZHVtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192cGt1ZHVtKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpdmVjX3Blcm0oCiAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBsb25nIGxvbmcpX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KXZlY19wZXJtKAogICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfcGFja3B4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfcGFja3B4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192cGtweChfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnBrcHgoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3Zwa3B4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrcHgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zwa3B4KF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192cGtweChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfcGFja3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3BhY2tzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3Noc3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHNzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3ModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2tzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3c3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3NzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdXd1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19wYWNrcyh2ZWN0b3IgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzZHNzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2RzcyhfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFja3ModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1cyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3Noc3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cGtzaHNzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3Noc3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHNzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192cGtzZHNzICovCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zwa3Nkc3ModmVjdG9yIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzZHNzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2RzcyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3VodXMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zwa3VodXModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3Zwa3VkdXMgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zwa3VkdXModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1cyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3N3c3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrc3dzcyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3c3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3NzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192cGt1d3VzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrdXd1cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY19wYWNrc3UgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2R1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NkdXMoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VkdXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdnBrc2h1cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGtzaHVzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnBrc2h1cyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdnBrc3d1cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnBrc3d1cyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zwa3N3dXModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdXd1cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdnBrc2R1cyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGtzZHVzKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2R1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NkdXMoX19hLCBfX2IpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY19wZXJtICovCgovLyBUaGUgdnBlcm0gaW5zdHJ1Y3Rpb24gaXMgZGVmaW5lZCBhcmNoaXRlY3R1cmFsbHkgd2l0aCBhIGJpZy1lbmRpYW4gYmlhcy4KLy8gRm9yIGxpdHRsZSBlbmRpYW4sIHdlIHN3YXAgdGhlIGlucHV0IG9wZXJhbmRzIGFuZCBpbnZlcnQgdGhlIHBlcm11dGUKLy8gY29udHJvbCB2ZWN0b3IuICBPbmx5IHRoZSByaWdodG1vc3QgNSBiaXRzIG1hdHRlciwgc28gd2UgY291bGQgdXNlCi8vIGEgdmVjdG9yIG9mIGFsbCAzMXMgaW5zdGVhZCBvZiBhbGwgMjU1cyB0byBwZXJmb3JtIHRoZSBpbnZlcnNpb24uCi8vIEhvd2V2ZXIsIHdoZW4gdGhlIFBDViBpcyBub3QgYSBjb25zdGFudCwgdXNpbmcgMjU1IGhhcyBhbiBhZHZhbnRhZ2UKLy8gaW4gdGhhdCB0aGUgdmVjX3hvciBjYW4gYmUgcmVjb2duaXplZCBhcyBhIHZlY19ub3IgKGFuZCBmb3IgUDggYW5kCi8vIGxhdGVyLCBwb3NzaWJseSBhIHZlY19uYW5kKS4KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Blcm0oCiAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgKICAgICAgKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY19wZXJtKAogICAgdmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koX19iLCBfX2EsIF9fZCk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koX19hLCBfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYiwgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYiwgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2EsIF9fZCk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3ZwZXJtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY192cGVybSgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGVybSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3ZwZXJtKAogICAgdmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnBlcm0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY192cGVybSgKICAgIHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBwaXhlbCBfX2EsIHZlY3RvciBwaXhlbCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZwZXJtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGVybSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfdnBlcm0odmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLCBfX2MpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfdnBlcm0oCiAgICB2ZWN0b3IgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGxvbmcgbG9uZyBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX3JlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZXNwKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZWZwKF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcmUodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJlZHAoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJlZnAoX19hKTsKfQoKLyogdmVjX3JsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ybCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192cmxiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZybGIoKHZlY3RvciBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfcmwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZybGgoKHZlY3RvciBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19ybCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19ybCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGQoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKF9fYiA8PCBfX2EpfChfX2IgPj4gKChfX0NIQVJfQklUX18gKiBzaXplb2YodmVjdG9yIHNpZ25lZCBfX2ludDEyOCkpIC0gX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JsKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKF9fYiA8PCBfX2EpfChfX2IgPj4gKChfX0NIQVJfQklUX18gKiBzaXplb2YodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSkgLSBfX2EpKTsKfQojZW5kaWYKCi8qIHZlY19ybG1pICovCiNpZmRlZiBfX1BPV0VSOV9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmxtaSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHdtaShfX2EsIF9fYywgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3JsbWkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxkbWkoX19hLCBfX2MsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JsbWkodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxxbWkoX19hLCBfX2MsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19ybG1pKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJscW1pKF9fYSwgX19jLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3Jsbm0gKi8KI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ybG5tKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IE9uZUJ5dGUgPSB7IDB4OCwgMHg4LCAweDgsIDB4OCB9OwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmx3bm0oX19hLCAoKF9fYyA8PCBPbmVCeXRlKSB8IF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmxubSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBPbmVCeXRlID0geyAweDgsIDB4OCB9OwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxkbm0oX19hLCAoKF9fYyA8PCBPbmVCeXRlKSB8IF9fYikpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19ybG5tKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICAvLyBNZXJnZSBfX2IgYW5kIF9fYyB1c2luZyBhbiBhcHByb3ByaWF0ZSBzaHVmZmxlLgogIHZlY3RvciB1bnNpZ25lZCBjaGFyIFRtcEIgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIFRtcEMgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19jOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIE1hc2tBbmRTaGlmdCA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihUbXBCLCBUbXBDLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE2LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwojZWxzZQogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihUbXBCLCBUbXBDLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMxLCAzMCwgMTUsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiNlbmRpZgogICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJscW5tKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkgTWFza0FuZFNoaWZ0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3Jsbm0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIC8vIE1lcmdlIF9fYiBhbmQgX19jIHVzaW5nIGFuIGFwcHJvcHJpYXRlIHNodWZmbGUuCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgVG1wQiA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgVG1wQyA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2M7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgTWFza0FuZFNoaWZ0ID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKFRtcEIsIFRtcEMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTYsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiNlbHNlCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKFRtcEIsIFRtcEMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzEsIDMwLCAxNSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKI2VuZGlmCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHFubShfX2EsICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpIE1hc2tBbmRTaGlmdCk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJsYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnJsYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192cmxiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnJsYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnJsYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnJsaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnJsaCh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cmxoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cmxoKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnJsdyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZybHcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnJsdyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnJsdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCi8qIHZlY19yb3VuZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfcm91bmQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpbihfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJkcGkoX19hKTsKfQoKLyogdmVjX3JpbnQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JpbnQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaWMoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JpbnQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJkcGljKF9fYSk7Cn0KCi8qIHZlY19yb3VuZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JvdW5kYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpYyhfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmRjKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpYyhfX2EpOwp9CgovKiB2ZWNfbmVhcmJ5aW50ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19uZWFyYnlpbnQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbmVhcmJ5aW50KHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJmaW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cmZpbih2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZmluKF9fYSk7Cn0KCi8qIHZlY19zcXJ0ICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcXJ0KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnNxcnRzcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2c3FydGRwKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfcnNxcnRlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yc3FydGUodmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNxcnRlc3AoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJzcXJ0ZWZwKF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcnNxcnRlKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3FydGVkcChfX2EpOwp9CiNlbmRpZgoKc3RhdGljIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JzcXJ0KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3BwY19yc3FydGYoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19yc3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fcHBjX3JzcXJ0ZChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3Zyc3FydGVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gX192ZWN0b3IgZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnJzcXJ0ZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJzcXJ0ZWZwKF9fYSk7Cn0KCi8qIHZlY194dnRzcXJ0ICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY190ZXN0X3N3c3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dHNxcnRkcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY190ZXN0X3N3c3FydHModmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dHNxcnRzcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3NlbCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c2VsXzRzaSB2ZWNfc2VsCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19zZWwoCiAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2VsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgY2hhcilfX2MpIHwgKF9fYiAmICh2ZWN0b3IgYm9vbCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NlbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYykgfAogICAgICAgICAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NlbCgKICAgIHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciBib29sIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBib29sIHNob3J0KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGludClfX2MpIHwgKF9fYiAmICh2ZWN0b3IgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NlbCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19jKSB8IChfX2IgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBib29sIGludClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciBpbnQgX19yZXMgPSAoKHZlY3RvciBpbnQpX19hICYgfih2ZWN0b3IgaW50KV9fYykgfAogICAgICAgICAgICAgICAgICAgICAoKHZlY3RvciBpbnQpX19iICYgKHZlY3RvciBpbnQpX19jKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2VsKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHZlY3RvciBpbnQgX19yZXMgPSAoKHZlY3RvciBpbnQpX19hICYgfih2ZWN0b3IgaW50KV9fYykgfAogICAgICAgICAgICAgICAgICAgICAoKHZlY3RvciBpbnQpX19iICYgKHZlY3RvciBpbnQpX19jKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2MpIHsKICB2ZWN0b3IgbG9uZyBsb25nIF9fcmVzID0gKCh2ZWN0b3IgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIGxvbmcgbG9uZylfX2MpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2ZWN0b3IgbG9uZyBsb25nKV9fYiAmICh2ZWN0b3IgbG9uZyBsb25nKV9fYyk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICB2ZWN0b3IgbG9uZyBsb25nIF9fcmVzID0gKCh2ZWN0b3IgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIGxvbmcgbG9uZylfX2MpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2ZWN0b3IgbG9uZyBsb25nKV9fYiAmICh2ZWN0b3IgbG9uZyBsb25nKV9fYyk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYykgfAogICAgICAgICAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdnNlbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfdnNlbCgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3Igc2lnbmVkIGNoYXIpX19jKSB8IChfX2IgJiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX19hICYgfl9fYykgfCAoX19iICYgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY192c2VsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciBib29sIGNoYXIpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfdnNlbCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MpIHwKICAgICAgICAgKF9fYiAmICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2VsKAogICAgdmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgc2hvcnQpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgc2hvcnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGludClfX2MpIHwgKF9fYiAmICh2ZWN0b3IgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNlbCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNlbCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgYm9vbCBpbnQpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICgodmVjdG9yIGludClfX2EgJiB+KHZlY3RvciBpbnQpX19jKSB8CiAgICAgICAgICAgICAgICAgICAgICgodmVjdG9yIGludClfX2IgJiAodmVjdG9yIGludClfX2MpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICgodmVjdG9yIGludClfX2EgJiB+KHZlY3RvciBpbnQpX19jKSB8CiAgICAgICAgICAgICAgICAgICAgICgodmVjdG9yIGludClfX2IgJiAodmVjdG9yIGludClfX2MpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgovKiB2ZWNfc2wgKi8KCi8vIHZlY19zbCBkb2VzIG1vZHVsbyBhcml0aG1ldGljIG9uIF9fYiBmaXJzdCwgc28gX19iIGlzIGFsbG93ZWQgdG8gYmUgbW9yZQovLyB0aGFuIHRoZSBsZW5ndGggb2YgX19hLgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSA8PCAoX19iICUKICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKHNpemVvZih1bnNpZ25lZCBjaGFyKSAqIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgPDwgKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKHNpemVvZih1bnNpZ25lZCBzaG9ydCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpdmVjX3NsKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSA8PCAoX19iICUKICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludCkoc2l6ZW9mKHVuc2lnbmVkIGludCkgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpdmVjX3NsKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIDw8IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNwbHRiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpOwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgX19iICU9ICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShzaXplb2YodW5zaWduZWQgbG9uZyBsb25nKSAqIF9fQ0hBUl9CSVRfXyk7CgogIC8vIEJpZyBlbmRpYW4gZWxlbWVudCBvbmUgKHRoZSByaWdodCBkb3VibGV3b3JkKSBjYW4gYmUgbGVmdCBzaGlmdGVkIGFzLWlzLgogIC8vIFRoZSBvdGhlciBlbGVtZW50IG5lZWRzIHRvIGJlIHN3YXBwZWQgaW50byB0aGUgcmlnaHQgZG91Ymxld29yZCBhbmQKICAvLyBzaGlmdGVkLiBUaGVuIHRoZSByaWdodCBkb3VibGV3b3JkcyBvZiB0aGUgdHdvIHJlc3VsdCB2ZWN0b3JzIGFyZSBtZXJnZWQuCiAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19yaWdodGVsdCA9CiAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKI2Vsc2UKICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDE1KSk7CiNlbmRpZgogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxLCAwKTsKICBfX2IgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMSwgMCk7CiAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19sZWZ0ZWx0ID0KICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fbGVmdGVsdCA9ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2woCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2xlZnRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yaWdodGVsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19sZWZ0ZWx0LCAwLCAyKTsKI2Vsc2UKICBfX2xlZnRlbHQgPSAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19sZWZ0ZWx0LAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3ZzcGx0YigodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAxNSkpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2xlZnRlbHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmlnaHRlbHQsIDEsIDMpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbGIgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNsYiB2ZWNfdnNsYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2xiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zbChfX2EsIF9fYik7Cn0KCi8qIHZlY192c2xoICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGggdmVjX3ZzbGgKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbGgodmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2woX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2xoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NsKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzbHcgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNsdyB2ZWNfdnNsdwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbHcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zbChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2x3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2woX19hLCBfX2IpOwp9CgovKiB2ZWNfc2xkICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRvaV80c2kgdmVjX3NsZAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2xkKAogICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbGQoCiAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xkKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbGQodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NsZCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xkKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xkKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xkKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3NsZCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3NsZHcgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xkdyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsZHcoCiAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsZHcodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGR3KHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19zbGQoX19hLCBfX2IsICgoX19jIDw8IDIpICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xkdyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsZHcodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19zbGQoX19hLCBfX2IsICgoX19jIDw8IDIpICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQojZW5kaWYKCiNpZmRlZiBfX1BPV0VSOV9WRUNUT1JfXwovKiB2ZWNfc2x2ICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2x2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbHYoX19hLCBfX2IpOwp9CgovKiB2ZWNfc3J2ICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3J2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcnYoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbGRvaSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsZG9pKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnNsZG9pKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c2xkb2kodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY2hhciBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgovKiB2ZWNfc2xsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbGwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbGwodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnNsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2wodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c2wodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc2xvICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Nsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Nsbyh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbG8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNsbyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNsbyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3BsYXQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwNykgKiAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDE7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwNykgKiAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDE7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDcpICogMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDcpICogMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBjb25zdCBpbnQgX19iKSB7CiAgdW5zaWduZWQgY2hhciBiMCA9IChfX2IgJiAweDAzKSAqIDQ7CiAgdW5zaWduZWQgY2hhciBiMSA9IGIwICsgMSwgYjIgPSBiMCArIDIsIGIzID0gYjAgKyAzOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMykgKiA0OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzLCBiMCwgYjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjIsIGIzLCBiMCwgYjEsIGIyLCBiMykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB1bnNpZ25lZCBjb25zdCBpbnQgX19iKSB7CiAgdW5zaWduZWQgY2hhciBiMCA9IChfX2IgJiAweDAzKSAqIDQ7CiAgdW5zaWduZWQgY2hhciBiMSA9IGIwICsgMSwgYjIgPSBiMCArIDIsIGIzID0gYjAgKyAzOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDMpICogNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxLCBiMiA9IGIwICsgMiwgYjMgPSBiMCArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjIsIGIzLCBiMCwgYjEsIGIyLCBiMywgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMpKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDEpICogODsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxLCBiMiA9IGIwICsgMiwgYjMgPSBiMCArIDMsIGI0ID0gYjAgKyA0LCBiNSA9IGIwICsgNSwKICAgICAgICAgICAgICAgIGI2ID0gYjAgKyA2LCBiNyA9IGIwICsgNzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiMCwgYjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNykpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnNwbHRiICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcGx0YiB2ZWNfdnNwbHRiCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3BsdGIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNwbHRiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY192c3BsdGIodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCi8qIHZlY192c3BsdGggKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNwbHRoIHZlY192c3BsdGgKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0aCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iLCBiMSwgX19iLCBiMSwgX19iLCBiMSwgX19iLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcGx0aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3BsdGgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfdnNwbHRoKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKLyogdmVjX3ZzcGx0dyAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdHcgdmVjX3ZzcGx0dwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSA0OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxLCBiMiA9IF9fYiArIDIsIGIzID0gX19iICsgMzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iLCBiMSwgYjIsIGIzLCBfX2IsIGIxLCBiMiwgYjMsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMSwgYjIsIGIzLCBfX2IsIGIxLCBiMiwgYjMpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzcGx0dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCi8qIHZlY19zcGxhdF9zOCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdGlzYiB2ZWNfc3BsYXRfczgKCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3BsYXRfczgoc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCi8qIHZlY192c3BsdGlzYiAqLwoKLy8gRklYTUU6IHBhcmFtZXRlciBzaG91bGQgYmUgdHJlYXRlZCBhcyA1LWJpdCBzaWduZWQgbGl0ZXJhbApzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3BsdGlzYihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcikoX19hKTsKfQoKLyogdmVjX3NwbGF0X3MxNiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdGlzaCB2ZWNfc3BsYXRfczE2CgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0X3MxNihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCkoX19hKTsKfQoKLyogdmVjX3ZzcGx0aXNoICovCgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0aXNoKHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHNob3J0KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfczMyICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcGx0aXN3IHZlY19zcGxhdF9zMzIKCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0X3MzMihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpKF9fYSk7Cn0KCi8qIHZlY192c3BsdGlzdyAqLwoKLy8gRklYTUU6IHBhcmFtZXRlciBzaG91bGQgYmUgdHJlYXRlZCBhcyA1LWJpdCBzaWduZWQgbGl0ZXJhbApzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNwbHRpc3coc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfdTggKi8KCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcGxhdF91OCh1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCi8qIHZlY19zcGxhdF91MTYgKi8KCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRfdTE2KHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfdTMyICovCgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdF91MzIoc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpOwp9CgovKiB2ZWNfc3IgKi8KCi8vIHZlY19zciBkb2VzIG1vZHVsbyBhcml0aG1ldGljIG9uIF9fYiBmaXJzdCwgc28gX19iIGlzIGFsbG93ZWQgdG8gYmUgbW9yZQovLyB0aGFuIHRoZSBsZW5ndGggb2YgX19hLgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSA+PgogICAgICAgICAoX19iICUgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShzaXplb2YodW5zaWduZWQgY2hhcikgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hID4+CiAgICAgICAgIChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShzaXplb2YodW5zaWduZWQgc2hvcnQpICogX19DSEFSX0JJVF9fKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NyKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCl2ZWNfc3IoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hID4+CiAgICAgICAgIChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGludCkoc2l6ZW9mKHVuc2lnbmVkIGludCkgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hID4+IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc3IoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX2IgJT0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpICogX19DSEFSX0JJVF9fKTsKCiAgLy8gQmlnIGVuZGlhbiBlbGVtZW50IHplcm8gKHRoZSBsZWZ0IGRvdWJsZXdvcmQpIGNhbiBiZSByaWdodCBzaGlmdGVkIGFzLWlzLgogIC8vIEhvd2V2ZXIgdGhlIHNoaWZ0IGFtb3VudCBtdXN0IGJlIGluIHRoZSByaWdodCBkb3VibGV3b3JkLgogIC8vIFRoZSBvdGhlciBlbGVtZW50IG5lZWRzIHRvIGJlIHN3YXBwZWQgaW50byB0aGUgbGVmdCBkb3VibGV3b3JkIGFuZAogIC8vIHNoaWZ0ZWQuIFRoZW4gdGhlIGxlZnQgZG91Ymxld29yZHMgb2YgdGhlIHR3byByZXN1bHQgdmVjdG9ycyBhcmUgbWVyZ2VkLgogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19zd2Fwc2hpZnQgPQogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMSwgMCk7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xlZnRlbHQgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKAogICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fc3dhcHNoaWZ0KTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19sZWZ0ZWx0ID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19sZWZ0ZWx0LAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3ZzcGx0YigodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19zd2Fwc2hpZnQsIDApKTsKI2Vsc2UKICBfX2xlZnRlbHQgPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3IoCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2xlZnRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX3N3YXBzaGlmdCwgMTUpKTsKI2VuZGlmCiAgX19hID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDEsIDApOwogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yaWdodGVsdCA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19iKTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19yaWdodGVsdCA9ICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yaWdodGVsdCwgX19sZWZ0ZWx0LCAxLCAzKTsKI2Vsc2UKICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19yaWdodGVsdCwKICAgICAgKHZlY3RvciBzaWduZWQgaW50KXZlY192c3BsdGIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTUpKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19sZWZ0ZWx0LCBfX3JpZ2h0ZWx0LCAwLCAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBsb25nIGxvbmcpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY192c3JiICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcmIgdmVjX3ZzcmIKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzcmIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zcihfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfc3IoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnNyaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3JoIHZlY192c3JoCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3JoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNyaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19zcihfX2EsIF9fYik7Cn0KCi8qIHZlY192c3J3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcncgdmVjX3ZzcncKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3J3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc3IoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNydyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3NyKF9fYSwgX19iKTsKfQoKLyogdmVjX3NyYSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcmFiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcmEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoKHZlY3RvciBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zcmEodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c3JhdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSA+PiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hID4+IF9fYik7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fYiAlPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKiBfX0NIQVJfQklUX18pOwogIHJldHVybiBfX2EgPj4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fYiAlPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKiBfX0NIQVJfQklUX18pOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSA+PiBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzcmFiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3JhYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzcmFiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnNyYWggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcmFoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcmFoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JhaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKLyogdmVjX3ZzcmF3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyYXcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3JhdyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3Jhdyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyYXcoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgovKiB2ZWNfc3JsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcmwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zcmwodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnNyICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c3IodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3JvICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Nybyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Nybyh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3Zzcm8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNybyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNybyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIHBpeGVsIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBpbnQgX19hLCBsb25nIF9fYiwgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGZsb2F0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dnggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHBpeGVsIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0ZSAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWJ4KCh2ZWN0b3IgY2hhcilfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVieCgodmVjdG9yIGNoYXIpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoKHZlY3RvciBzaG9ydClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWh4KCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGZsb2F0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dmVieCAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVieCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWJ4KCh2ZWN0b3IgY2hhcilfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVieCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfX2IsIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVieCgodmVjdG9yIGNoYXIpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZlYngodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWJ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfc3R2ZWh4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZlaHgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9fYiwgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoKHZlY3RvciBzaG9ydClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVoeCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWh4KCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZld3ggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZld3godmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZXd4KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZXd4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgZmxvYXQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZXd4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfc3RsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBib29sIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGZsb2F0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZ4bCAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBmbG9hdCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC0gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zdWIodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3ViKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYgLy8gZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJgogICAgICAgLy8gZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3ViKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCi8qIHZlY192c3VidWJtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1Ym0gdmVjX3ZzdWJ1Ym0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC0gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCi8qIHZlY192c3VidWhtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aG0gdmVjX3ZzdWJ1aG0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJ1aG0odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnVobSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVobSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1aG0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgovKiB2ZWNfdnN1YnV3bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdtIHZlY192c3VidXdtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnV3bSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnV3bSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3VidXdtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1d20odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1d20odmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3bSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCi8qIHZlY192c3ViZnAgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnN1YmZwIHZlY192c3ViZnAKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192c3ViZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCi8qIHZlY19zdWJjICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludCkgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoX19hLCBfX2IpOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18KI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXEoX19hLCBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfc3ViY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQojZW5kaWYgLy8gX19QT1dFUjhfVkVDVE9SX18KCi8qIHZlY192c3ViY3V3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdWJjdXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoX19hLCBfX2IpOwp9CgovKiB2ZWNfc3VicyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNicyhfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWJzKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3Vicyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1YnModmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3Vicyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2hzKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdWJzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1YnModmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnN3cygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdWJzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzd3MoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnV3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1d3MoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZzdWJzYnMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJzYnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2JzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnNicyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2JzKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3Vic2JzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoX19hLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qIHZlY192c3VidWJzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1YnModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVicyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3VidWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVicyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovKiB2ZWNfdnN1YnNocyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnNocyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzaHModmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnNocyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2hzKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdnN1YnVocyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVocyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3VidWhzKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWhzKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3VidWhzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWhzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdnN1YnN3cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzd3ModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzd3MoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnN3cyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKCh2ZWN0b3IgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzd3ModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnN3cyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCi8qIHZlY192c3VidXdzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnV3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3VidXdzKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1d3MoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY192c3VidXFtICovCgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1cW0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVxbSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1Yl91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1cW0oX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1YmV1cW0gKi8KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmV1cW0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmV1cW0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJldXFtKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJldXFtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZXVxbShfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1YmVfdTEyOCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJldXFtKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdnN1YmN1cSAqLwoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192c3ViY3VxKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmN1cSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXEoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1YmVjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192c3ViZWN1cSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmVjdXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgojaWZkZWYgX19wb3dlcnBjNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmVjKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19hZGRlYyhfX2EsIH5fX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJlYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiB2ZWNfYWRkZWMoX19hLCB+X19iLCBfX2MpOwp9CiNlbmRpZgoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19zdWJlYyh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZWModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19zdWJlY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJlY3VxKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZiAvLyBfX1BPV0VSOF9WRUNUT1JfXwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJlKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICB2ZWN0b3Igc2lnbmVkIGludCBfX21hc2sgPSB7MSwgMSwgMSwgMX07CiAgdmVjdG9yIHNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZGUoX19hLCB+X19iLCBfX2NhcnJ5KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19tYXNrID0gezEsIDEsIDEsIDF9OwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZGUoX19hLCB+X19iLCBfX2NhcnJ5KTsKfQovKiB2ZWNfc3VtNHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdW00cyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTRzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3VtNHModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VtNHVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdW00cyh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2hzKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzdW00c2JzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW00c2JzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2JzKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzdW00dWJzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW00dWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTR1YnMoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1bTRzaHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnN1bTRzaHModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2hzKF9fYSwgX19iKTsKfQoKLyogdmVjX3N1bTJzICovCgovKiBUaGUgdnN1bTJzd3MgaW5zdHJ1Y3Rpb24gaGFzIGEgYmlnLWVuZGlhbiBiaWFzLCBzbyB0aGF0IHRoZSBzZWNvbmQKICAgaW5wdXQgdmVjdG9yIGFuZCB0aGUgcmVzdWx0IGFsd2F5cyByZWZlcmVuY2UgYmlnLWVuZGlhbiBlbGVtZW50cwogICAxIGFuZCAzIChsaXR0bGUtZW5kaWFuIGVsZW1lbnQgMCBhbmQgMikuICBGb3IgZWFzZSBvZiBwb3J0aW5nIHRoZQogICBwcm9ncmFtbWVyIHdhbnRzIGVsZW1lbnRzIDEgYW5kIDMgaW4gYm90aCBjYXNlcywgc28gZm9yIGxpdHRsZQogICBlbmRpYW4gd2UgbXVzdCBwZXJmb3JtIHNvbWUgcGVybXV0ZXMuICAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfc3VtMnModmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciBpbnQgX19jID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19wZXJtKAogICAgICBfX2IsIF9fYiwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSg0LCA1LCA2LCA3LCAwLCAxLCAyLCAzLCAxMiwgMTMsIDE0LCAxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExKSk7CiAgX19jID0gX19idWlsdGluX2FsdGl2ZWNfdnN1bTJzd3MoX19hLCBfX2MpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYywgX19jLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDQsIDUsIDYsIDcsIDAsIDEsIDIsIDMsIDEyLCAxMywgMTQsIDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTJzd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZzdW0yc3dzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192c3VtMnN3cyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIGludCBfX2MgPSAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYiwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDQsIDUsIDYsIDcsIDAsIDEsIDIsIDMsIDEyLCAxMywgMTQsIDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEpKTsKICBfX2MgPSBfX2J1aWx0aW5fYWx0aXZlY192c3VtMnN3cyhfX2EsIF9fYyk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19jLCBfX2MsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoNCwgNSwgNiwgNywgMCwgMSwgMiwgMywgMTIsIDEzLCAxNCwgMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsIDksIDEwLCAxMSkpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VtMnN3cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfc3VtcyAqLwoKLyogVGhlIHZzdW1zd3MgaW5zdHJ1Y3Rpb24gaGFzIGEgYmlnLWVuZGlhbiBiaWFzLCBzbyB0aGF0IHRoZSBzZWNvbmQKICAgaW5wdXQgdmVjdG9yIGFuZCB0aGUgcmVzdWx0IGFsd2F5cyByZWZlcmVuY2UgYmlnLWVuZGlhbiBlbGVtZW50IDMKICAgKGxpdHRsZS1lbmRpYW4gZWxlbWVudCAwKS4gIEZvciBlYXNlIG9mIHBvcnRpbmcgdGhlIHByb2dyYW1tZXIKICAgd2FudHMgZWxlbWVudCAzIGluIGJvdGggY2FzZXMsIHNvIGZvciBsaXR0bGUgZW5kaWFuIHdlIG11c3QgcGVyZm9ybQogICBzb21lIHBlcm11dGVzLiAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1bXModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19iID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdChfX2IsIDMpOwogIF9fYiA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKDAsIDAsIDAsIF9fYlswXSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZzdW1zd3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW1zd3ModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19iID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdChfX2IsIDMpOwogIF9fYiA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKDAsIDAsIDAsIF9fYlswXSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3RydW5jICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY190cnVuYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpeihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpeihfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3RydW5jKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpeihfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5keiAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZHoodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfdHJ1bmMoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JvdW5keih2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfdHJ1bmMoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmZpeiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZml6KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaXooX19hKTsKfQoKLyogdmVjX3VucGFja2ggKi8KCi8qIFRoZSB2ZWN0b3IgdW5wYWNrIGluc3RydWN0aW9ucyBhbGwgaGF2ZSBhIGJpZy1lbmRpYW4gYmlhcywgc28gZm9yCiAgIGxpdHRsZSBlbmRpYW4gd2UgbXVzdCByZXZlcnNlIHRoZSBtZWFuaW5ncyBvZiAiaGlnaCIgYW5kICJsb3cuIiAgKi8KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmVjX3Z1cGtocHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNkZWZpbmUgdmVjX3Z1cGtscHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNlbHNlCiNkZWZpbmUgdmVjX3Z1cGtocHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNkZWZpbmUgdmVjX3Z1cGtscHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNraCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY191bnBhY2toKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdW5wYWNraCh2ZWN0b3Igc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2goKHZlY3RvciBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goKHZlY3RvciBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIHBpeGVsIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtocHgoKHZlY3RvciBzaG9ydClfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY191bnBhY2toKHZlY3RvciBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGJvb2wgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzdygodmVjdG9yIGludClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoX19hWzBdLCBfX2FbMV0pOwp9CiNlbmRpZgoKLyogdmVjX3Z1cGtoc2IgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Z1cGtoc2IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzYigodmVjdG9yIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKLyogdmVjX3Z1cGtoc2ggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192dXBraHNoKHZlY3RvciBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2goX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzaCh2ZWN0b3IgcGl4ZWwgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfdnVwa2hzdyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY192dXBraHN3KHZlY3RvciBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z1cGtoc3codmVjdG9yIGJvb2wgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzdygodmVjdG9yIGludClfX2EpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY191bnBhY2tsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY191bnBhY2tsKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2wodmVjdG9yIGJvb2wgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY191bnBhY2tsKHZlY3RvciBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgcGl4ZWwgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX3VucGFja2wodmVjdG9yIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzdyhfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coKHZlY3RvciBpbnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKShfX2FbMl0sIF9fYVszXSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnVwa2xzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnVwa2xzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNiKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfdnVwa2xzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Z1cGtsc2godmVjdG9yIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNoKHZlY3RvciBib29sIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNoKCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKCh2ZWN0b3Igc2hvcnQpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNoKHZlY3RvciBwaXhlbCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtocHgoKHZlY3RvciBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2VuZGlmCn0KCi8qIHZlY192dXBrbHN3ICovCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX3Z1cGtsc3codmVjdG9yIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzdyhfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnVwa2xzdyh2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coKHZlY3RvciBpbnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3ZzeF9sZCAqLwoKI2lmZGVmIF9fVlNYX18KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCBzaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192c3hfbGQoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgbG9uZyBsb25nICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfbHh2ZDJ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZkMngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBkb3VibGUgKl9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X2x4dmQyeChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgZG91YmxlICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19idWlsdGluX3ZzeF9seHZkMngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCBzaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKI2VuZGlmCgovKiB2ZWNfdnN4X3N0ICovCgojaWZkZWYgX19WU1hfXwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGZsb2F0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeCgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeCgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgZG91YmxlIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMngoKHZlY3RvciBkb3VibGUpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGRvdWJsZSBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMngoKHZlY3RvciBkb3VibGUpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKI2VuZGlmCgojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY194eHBlcm1kaSBfX2J1aWx0aW5fdnN4X3h4cGVybWRpCiNkZWZpbmUgdmVjX3h4c2xkd2kgX19idWlsdGluX3ZzeF94eHNsZHdpCiNkZWZpbmUgdmVjX3Blcm1pKF9fYSwgX19iLCBfX2MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBzaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSksICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSksICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSkpCiNlbmRpZgoKLyogdmVjX3hvciAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192eG9yIHZlY194b3IKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgXgogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4KICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4KICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnhvciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSBeICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIF4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KI2VuZGlmCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZXh0ZW5zaW9ucyBmb3IgQ0JFQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogdmVjX2V4dHJhY3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHhmXTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweGZdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHhmXTsKfQoKc3RhdGljIF9faW5saW5lX18gc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDddOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHg3XTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hW19fYiAmIDB4N107Cn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDNdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDFdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDFdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hW19fYiAmIDB4MV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2V4dHJhY3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgxXTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCgojZGVmaW5lIHZlY19pbnNlcnQ0YiBfX2J1aWx0aW5fdnN4X2luc2VydHdvcmQKI2RlZmluZSB2ZWNfZXh0cmFjdDRiIF9fYnVpbHRpbl92c3hfZXh0cmFjdHV3b3JkCgovKiB2ZWNfZXh0cmFjdF9leHAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X2V4cCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZ4ZXhwc3AoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3RfZXhwKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZ4ZXhwZHAoX19hKTsKfQoKLyogdmVjX2V4dHJhY3Rfc2lnICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdF9zaWcodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2eHNpZ3NwKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X3NpZyAodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnhzaWdkcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X2ZwMzJfZnJvbV9zaG9ydGgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIC0xLCAxLCAtMSwgMiwgLTEsIDMsIC0xKTsKI2Vsc2UKICAgICAgICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIC0xLCAwLCAtMSwgMSwgLTEsIDIsIC0xLCAzKTsKI2VuZGlmCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdmhwc3AoX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdF9mcDMyX2Zyb21fc2hvcnRsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgICAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA0LCAtMSwgNSwgLTEsIDYsIC0xLCA3LCAtMSk7CiNlbHNlCiAgICAgICAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAtMSwgNCwgLTEsIDUsIC0xLCA2LCAtMSwgNyk7CiNlbmRpZgogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZocHNwKF9fYik7Cn0KI2VuZGlmIC8qIF9fUE9XRVI5X1ZFQ1RPUl9fICovCgovKiB2ZWNfaW5zZXJ0ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19pbnNlcnQoc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19pbnNlcnQodW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQoc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydChzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydChzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfaW5zZXJ0KGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19pbnNlcnQoZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgovKiB2ZWNfbHZseCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciBib29sIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2bHgoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2hvcnQpKDApLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgYm9vbCBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZseChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgcGl4ZWwpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2bHgoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGludCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGludCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZseChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgZmxvYXQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCi8qIHZlY19sdmx4bCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseGwoaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciBzaWduZWQgY2hhcikoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgYm9vbCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmx4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHNob3J0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3Igc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX2x2bHhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHBpeGVsKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2bHhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmx4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgZmxvYXQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCi8qIHZlY19sdnJ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGJvb2wgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZyeChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNob3J0KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIHNob3J0KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sdnJ4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBwaXhlbCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZyeChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgYm9vbCBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgZmxvYXQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnJ4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBmbG9hdCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKLyogdmVjX2x2cnhsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4bChpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGRsKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGJvb2wgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2cnhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaG9ydCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLCB2ZWNfbGRsKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZyeGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBwaXhlbCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZyeGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4bChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2cnhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBmbG9hdCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgZmxvYXQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKLyogdmVjX3N0dmx4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZseGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3Igc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dnJ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZyeGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3Igc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKLyogdmVjX3Byb21vdGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUoc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19yZXMgPSAodmVjdG9yIHNpZ25lZCBjaGFyKSgwKTsKICBfX3Jlc1tfX2IgJiAweDddID0gX19hOwogIHJldHVybiBfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19yZXMgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19wcm9tb3RlKHNob3J0IF9fYSwgaW50IF9fYikgewogIHZlY3RvciBzaG9ydCBfX3JlcyA9ICh2ZWN0b3Igc2hvcnQpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIHNob3J0IF9fYSwgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3JlcyA9ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfcHJvbW90ZShpbnQgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICh2ZWN0b3IgaW50KSgwKTsKICBfX3Jlc1tfX2IgJiAweDNdID0gX19hOwogIHJldHVybiBfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUodW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPSAodmVjdG9yIHVuc2lnbmVkIGludCkoMCk7CiAgX19yZXNbX19iICYgMHgzXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUoZmxvYXQgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIGZsb2F0IF9fcmVzID0gKHZlY3RvciBmbG9hdCkoMCk7CiAgX19yZXNbX19iICYgMHgzXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19wcm9tb3RlKGRvdWJsZSBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3IgZG91YmxlIF9fcmVzID0gKHZlY3RvciBkb3VibGUpKDApOwogIF9fcmVzW19fYiAmIDB4MV0gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Byb21vdGUoc2lnbmVkIGxvbmcgbG9uZyBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoMCk7CiAgX19yZXNbX19iICYgMHgxXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKDApOwogIF9fcmVzW19fYiAmIDB4MV0gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CiNlbmRpZgoKLyogdmVjX3NwbGF0cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0cyh1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0cyhzaG9ydCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCkoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKGludCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdHModW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCkoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdHMoc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYSk7Cn0KCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NwbGF0cyh1bnNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkoX19hKTsKfQoKI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcGxhdHMoZmxvYXQgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKF9fYSk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHByZWRpY2F0ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgovKiB2ZWNfYWxsX2VxICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVCwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFQsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFQsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVCwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xULCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVCwgX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfTFQsICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVCwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX2dlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2IsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNob3J0KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUSwgKHZlY3RvciBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVEsIF9fYiwgKHZlY3RvciBzaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3FfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXFfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xULCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0xULCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVCwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RkcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfaW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19hbGxfaW4odmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKLyogdmVjX2FsbF9sZSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0VRLCBfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGdlZnBfcChfX0NSNl9MVCwgX19iLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlZHBfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzcV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX2x0ICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2IsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFQsIF9fYiwgKHZlY3RvciBzaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVCwgX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RkcF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmFuICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmFuKHZlY3RvciBmbG9hdCBfX2EpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9FUSwgX19hLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmFuKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfRVEsIF9fYSwgX19hKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmUgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0VRLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUSwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUSwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9FUSwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9FUSwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUSwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVEsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9FUSwgKHZlY3RvciBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX25nZSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25nZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlc3BfcChfX0NSNl9FUSwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmdlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmd0ICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmd0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ubGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX2FsbF9ubGUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ubGUodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlZHBfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ubHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX2FsbF9ubHQodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ubHQodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9udW1lcmljICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpCnZlY19hbGxfbnVtZXJpYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfTFQsIF9fYSwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVCwgX19hLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX251bWVyaWModmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9MVCwgX19hLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9lcSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9FUV9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcWZwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZXFkcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXFfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfZ2UgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFRfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaG9ydClfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgaW50KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVF9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xUX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlc3BfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGdlZnBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUV9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVFfUkVWLCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRX1JFViwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3FfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X2xlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCBfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0xUX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzcV9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXFfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfbHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVFfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnBfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndGRwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9uYW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uYW4odmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZXFzcF9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcF9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2EpOwojZW5kaWYKfQojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmFuKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X25lICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xUX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcCgKICAgICAgX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVxX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9uZ2UgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmdlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X25ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25ndCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfbmxlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmxlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25sZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9ubHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ubHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndHNwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmx0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndGRwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X251bWVyaWMgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9udW1lcmljKHZlY3RvciBmbG9hdCBfX2EpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9udW1lcmljKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X291dCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2FueV9vdXQodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCi8qIFBvd2VyIDggQ3J5cHRvIGZ1bmN0aW9ucwpOb3RlOiBXZSBkaXZlcmdlIGZyb20gdGhlIGN1cnJlbnQgR0NDIGltcGxlbWVudGF0aW9uIHdpdGggcmVnYXJkCnRvIGNyeXB0b2dyYXBoeSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgYXMgZm9sbG93czoKLSBPbmx5IHRoZSBTSEEgYW5kIEFFUyBpbnN0cnVjdGlvbnMgYW5kIGJ1aWx0aW5zIGFyZSBkaXNhYmxlZCBieSAtbW5vLWNyeXB0bwotIFRoZSByZW1haW5pbmcgb25lcyBhcmUgb25seSBhdmFpbGFibGUgb24gUG93ZXI4IGFuZCB1cCBzbwogIHJlcXVpcmUgLW1wb3dlcjgtdmVjdG9yClRoZSBqdXN0aWZpY2F0aW9uIGZvciB0aGlzIGlzIHRoYXQgZXhwb3J0IHJlcXVpcmVtZW50cyByZXF1aXJlIHRoYXQKQ2F0ZWdvcnk6VmVjdG9yLkNyeXB0byBpcyBvcHRpb25hbCAoaS5lLiBjb21wbGlhbnQgaGFyZHdhcmUgbWF5IG5vdCBwcm92aWRlCnN1cHBvcnQpLiBBcyBhIHJlc3VsdCwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHR1cm4gb2ZmIHN1cHBvcnQgZm9yIHRob3NlLgpUaGUgcmVtYWluaW5nIG9uZXMgKGN1cnJlbnRseSBjb250cm9sbGVkIGJ5IC1tY3J5cHRvIGZvciBHQ0MpIHN0aWxsCm5lZWQgdG8gYmUgcHJvdmlkZWQgb24gY29tcGxpYW50IGhhcmR3YXJlIGV2ZW4gaWYgVmVjdG9yLkNyeXB0byBpcyBub3QKcHJvdmlkZWQuCiovCiNpZmRlZiBfX0NSWVBUT19fCiNkZWZpbmUgdmVjX3Nib3hfYmUgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzYm94CiNkZWZpbmUgdmVjX2NpcGhlcl9iZSBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdmNpcGhlcgojZGVmaW5lIHZlY19jaXBoZXJsYXN0X2JlIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192Y2lwaGVybGFzdAojZGVmaW5lIHZlY19uY2lwaGVyX2JlIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192bmNpcGhlcgojZGVmaW5lIHZlY19uY2lwaGVybGFzdF9iZSBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdm5jaXBoZXJsYXN0CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKX19idWlsdGluX2NyeXB0b192c2JveCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnNib3goX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdmNpcGhlcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192Y2lwaGVyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdmNpcGhlcmxhc3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZjaXBoZXJsYXN0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdm5jaXBoZXIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZuY2lwaGVyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdm5jaXBoZXJsYXN0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdm5jaXBoZXJsYXN0KF9fYSwgX19iKTsKfQoKI2RlZmluZSBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYWQgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzaGFzaWdtYWQKI2RlZmluZSBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYXcgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzaGFzaWdtYXcKCiNkZWZpbmUgdmVjX3NoYXNpZ21hX2JlKFgsIFksIFopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKFgpLCB2ZWN0b3IgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYXcsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYWQpKChYKSwgKFkpLCAoWikpCiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19wZXJteG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwZXJteG9yKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wZXJteG9yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwZXJteG9yKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Blcm14b3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKX19idWlsdGluX2NyeXB0b192cGVybXhvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSBfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKAogICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cGVybXhvcigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwbXN1bWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwbXN1bWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCl9fYnVpbHRpbl9jcnlwdG9fdnBtc3VtYih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cG1zdW1oKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKX19idWlsdGluX2NyeXB0b192cG1zdW1iKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBtc3VtdyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCl9fYnVpbHRpbl9jcnlwdG9fdnBtc3VtYih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cG1zdW1kKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmdiYmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Z2JiZCgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKI2RlZmluZSB2ZWNfcG1zdW1fYmUgX19idWlsdGluX2NyeXB0b192cG1zdW1iCiNkZWZpbmUgdmVjX2diIF9fYnVpbHRpbl9hbHRpdmVjX3ZnYmJkCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZnYmJkKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Z2JiZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2diYih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmdiYmQoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19nYmIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmdiYmQoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YnBlcm1xKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmJwZXJtcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmJwZXJtcSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YnBlcm1xKF9fYSwgX19iKTsKfQoKI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19icGVybSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmJwZXJtcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CiNlbmRpZgojZW5kaWYKCgovKiB2ZWNfcmV2ZSAqLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgY2hhciB2ZWNfcmV2ZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgNCwgMywgMiwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBzaWduZWQgY2hhciB2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JldmUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgaW50IHZlY19yZXZlKHZlY3RvciBib29sIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIGludCB2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgaW50CnZlY19yZXZlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgc2hvcnQgdmVjX3JldmUodmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmV2ZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGZsb2F0IHZlY19yZXZlKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgYm9vbCBsb25nIGxvbmcKdmVjX3JldmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19yZXZlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3JldmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgZG91YmxlIHZlY19yZXZlKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxLCAwKTsKfQojZW5kaWYKCi8qIHZlY19yZXZiICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQgfTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsIF9faW5kaWNlcyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2LCA5LCA4LCAxMSwgMTAsIDEzLCAxMiwgMTUsIDE0IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyIH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyIH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgMywgMiwgMSwgMCwgNywgNiwgNSwgNCwgMTEsIDEwLCA5LCA4LCAxNSwgMTQsIDEzLCAxMiB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgZmxvYXQgX19hKSB7CiB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIgfTsKIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIGRvdWJsZSBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDggfTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsIF9faW5kaWNlcyk7Cn0KI2VuZGlmIC8qIEVuZCBfX1ZTWF9fICovCgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAgfTsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW5kaWNlcyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCB9OwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KXZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbmRpY2VzKTsKfQojZW5kaWYgLyogRU5EIF9fUE9XRVI4X1ZFQ1RPUl9fICYmIF9fcG93ZXJwYzY0X18gKi8KCi8qIHZlY194bCAqLwoKI2RlZmluZSB2ZWNfeGxkMiB2ZWNfeGwKI2RlZmluZSB2ZWNfeGx3NCB2ZWNfeGwKdHlwZWRlZiB2ZWN0b3Igc2lnbmVkIGNoYXIgdW5hbGlnbmVkX3ZlY19zY2hhciBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHVuc2lnbmVkIGNoYXIgdW5hbGlnbmVkX3ZlY191Y2hhciBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBzaG9ydCB1bmFsaWduZWRfdmVjX3NzaG9ydCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHVuc2lnbmVkIHNob3J0IHVuYWxpZ25lZF92ZWNfdXNob3J0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3Igc2lnbmVkIGludCB1bmFsaWduZWRfdmVjX3NpbnQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciB1bnNpZ25lZCBpbnQgdW5hbGlnbmVkX3ZlY191aW50IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdW5hbGlnbmVkX3ZlY19mbG9hdCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIGNoYXIgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NjaGFyICopKF9fcHRyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfdWNoYXIqKShfX3B0ciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY19zc2hvcnQgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3VzaG9ydCAqKV9fYWRkcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBpbnQgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY19zaW50ICopX19hZGRyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgaW50CnZlY194bChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3VpbnQgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBmbG9hdCB2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfZmxvYXQgKilfX2FkZHI7Cn0KCiNpZmRlZiBfX1ZTWF9fCnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgdW5hbGlnbmVkX3ZlY19zbGwgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgdW5hbGlnbmVkX3ZlY191bGwgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciBkb3VibGUgdW5hbGlnbmVkX3ZlY19kb3VibGUgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NsbCAqKV9fYWRkcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY191bGwgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBkb3VibGUgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG91YmxlICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfZG91YmxlICopX19hZGRyOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgICAgICAgICAgICAgICAgICAgIFwKICAgIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCB1bmFsaWduZWRfdmVjX3NpMTI4IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggdW5hbGlnbmVkX3ZlY191aTEyOAogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIF9faW50MTI4CnZlY194bChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBfX2ludDEyOCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NpMTI4ICopX19hZGRyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgKdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgX19pbnQxMjggKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY191aTEyOCAqKV9fYWRkcjsKfQojZW5kaWYKCi8qIHZlY194bF9iZSAqLwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjID0gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYyA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeGxfYmUocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYyA9ICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2ZDJ4X2JlKF9fb2Zmc2V0LCBfX3B0cik7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjID0gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHhfYmUoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4X2JlKF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X2x4dnc0eF9iZShfX29mZnNldCwgX19wdHIpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZkMnhfYmUoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfbHh2ZDJ4X2JlKF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY194bF9iZShzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwgY29uc3QgZG91YmxlICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgICAgICAgICAgICAgICAgICAgIFwKICAgIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF9iZShzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwgY29uc3Qgc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHJldHVybiB2ZWNfeGwoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfYmUoc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHJldHVybiB2ZWNfeGwoX19vZmZzZXQsIF9fcHRyKTsKfQojZW5kaWYKI2Vsc2UKICAjZGVmaW5lIHZlY194bF9iZSB2ZWNfeGwKI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19WU1hfXykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKCi8qIHZlY3RfeGxfc2V4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBjaGFyICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wb2ludGVyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKihfX3BvaW50ZXIgKyBfX29mZnNldCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX3NleHQocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgovKiB2ZWNfeGxfemV4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfemV4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF96ZXh0KHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF96ZXh0KHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfemV4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wb2ludGVyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKihfX3BvaW50ZXIgKyBfX29mZnNldCk7Cn0KCiNlbmRpZgoKLyogdmVjX3hsZHMgKi8KI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bGRzKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgbG9uZyBsb25nICpfX2FkZHIgPSAoc2lnbmVkIGxvbmcgbG9uZyopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpICpfX2FkZHI7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bGRzKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHVuc2lnbmVkIGxvbmcgbG9uZyAqX19hZGRyID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHVuYWxpZ25lZF92ZWNfdWxsKSAqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeGxkcyhwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvdWJsZSAqX19wdHIpIHsKICBkb3VibGUgKl9fYWRkciA9IChkb3VibGUqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHVuYWxpZ25lZF92ZWNfZG91YmxlKSAqX19hZGRyOwp9CgovKiB2ZWNfbG9hZF9zcGxhdHMgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sb2FkX3NwbGF0cyhzaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIHNpZ25lZCBpbnQgKl9fYWRkciA9IChzaWduZWQgaW50KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCkqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgaW50ICpfX2FkZHIgPSAoc2lnbmVkIGludCopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICB1bnNpZ25lZCBpbnQgKl9fYWRkciA9ICh1bnNpZ25lZCBpbnQqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0cikgewogIHVuc2lnbmVkIGludCAqX19hZGRyID0gKHVuc2lnbmVkIGludCopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCkqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19sb2FkX3NwbGF0cyhzaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICBmbG9hdCAqX19hZGRyID0gKGZsb2F0KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfbG9hZF9zcGxhdHModW5zaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICBmbG9hdCAqX19hZGRyID0gKGZsb2F0KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKl9fYWRkcjsKfQojZW5kaWYKCi8qIHZlY194c3QgKi8KCiNkZWZpbmUgdmVjX3hzdGQyIHZlY194c3QKI2RlZmluZSB2ZWNfeHN0dzQgdmVjX3hzdApzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QodmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsIHNpZ25lZCBjaGFyICpfX3B0cikgewogICoodW5hbGlnbmVkX3ZlY19zY2hhciAqKShfX3B0ciArIF9fb2Zmc2V0KSA9IF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICAqKHVuYWxpZ25lZF92ZWNfdWNoYXIgKikoX19wdHIgKyBfX29mZnNldCkgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KHZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY19zc2hvcnQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY191c2hvcnQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LCBzaWduZWQgaW50ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY19zaW50ICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsIHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfdWludCAqKV9fYWRkciA9IF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3QodmVjdG9yIGZsb2F0IF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfZmxvYXQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfc2xsICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY191bGwgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBkb3VibGUgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfZG91YmxlICopX19hZGRyID0gX192ZWM7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgX19pbnQxMjggKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgKih1bmFsaWduZWRfdmVjX3NpMTI4ICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDEyOCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfdWkxMjggKilfX2FkZHIgPSBfX3ZlYzsKfQojZW5kaWYKCi8qIHZlY194c3RfdHJ1bmMgKi8KCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1ZTWF9fKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAoc2lnbmVkIGNoYXIpX192ZWNbMF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdF90cnVuYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgY2hhcilfX3ZlY1swXTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0X3RydW5jKHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgc2hvcnQpX192ZWNbMF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdF90cnVuYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICAqKF9fcHRyICsgX19vZmZzZXQpID0gKHVuc2lnbmVkIHNob3J0KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgaW50KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgaW50KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgbG9uZyBsb25nKV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgbG9uZyBsb25nKV9fdmVjWzBdOwp9CiNlbmRpZgoKLyogdmVjX3hzdF9iZSAqLwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX3B0cikgewogIHZlY3RvciBzaWduZWQgY2hhciBfX3RtcCA9CiAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX192ZWMsIF9fdmVjLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHR5cGVkZWYgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoc2l6ZW9mKF9fdG1wKSkpKSBkb3VibGUgX192ZWN0b3JfZG91YmxlOwogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgoX192ZWN0b3JfZG91YmxlKV9fdG1wLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX190bXAgPQogICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLCAxMiwgMTEsIDEwLCA5LCA4KTsKICB0eXBlZGVmIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKHNpemVvZihfX3RtcCkpKSkgZG91YmxlIF9fdmVjdG9yX2RvdWJsZTsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMnhfYmUoKF9fdmVjdG9yX2RvdWJsZSlfX3RtcCwgX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9iZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fdG1wID0KICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHR5cGVkZWYgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoc2l6ZW9mKF9fdG1wKSkpKSBkb3VibGUgX192ZWN0b3JfZG91YmxlOwogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgoX192ZWN0b3JfZG91YmxlKV9fdG1wLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX190bXAgPQogICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShzaXplb2YoX190bXApKSkpIGRvdWJsZSBfX3ZlY3Rvcl9kb3VibGU7CiAgX19idWlsdGluX3ZzeF9zdHh2ZDJ4X2JlKChfX3ZlY3Rvcl9kb3VibGUpX190bXAsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHhfYmUoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4X2JlKCh2ZWN0b3IgaW50KV9fdmVjLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBmbG9hdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHhfYmUoKHZlY3RvciBpbnQpX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMnhfYmUoKHZlY3RvciBkb3VibGUpX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2ZDJ4X2JlKCh2ZWN0b3IgZG91YmxlKV9fdmVjLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBkb3VibGUgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICpfX3B0cikgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgodmVjdG9yIGRvdWJsZSlfX3ZlYywgX19vZmZzZXQsIF9fcHRyKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHZlY194c3QoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHZlY194c3QoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KI2VuZGlmCiNlbHNlCiAgI2RlZmluZSB2ZWNfeHN0X2JlIHZlY194c3QKI2VuZGlmCgojaWZkZWYgX19QT1dFUjlfVkVDVE9SX18KI2RlZmluZSB2ZWNfdGVzdF9kYXRhX2NsYXNzKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZ0c3RkY3NwKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgIFwKICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfeHZ0c3RkY2RwKCh2ZWN0b3IgZG91YmxlKShfX2EpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IpKSkKCiNlbmRpZiAvKiAjaWZkZWYgX19QT1dFUjlfVkVDVE9SX18gKi8KCnN0YXRpYyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiAtX19hOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX25lZyh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiAtX19hOwp9CgojZW5kaWYKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfbmVnKHZlY3RvciBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KI2VuZGlmCgpzdGF0aWMgdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbmVnKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAtX19hOwp9CgpzdGF0aWMgdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbmFicyh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIC0gdmVjX2FicyhfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gLSB2ZWNfYWJzKF9fYSk7Cn0KCiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfbmFicyh2ZWN0b3IgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc2QoX19hLCAtX19hKTsKfQojZW5kaWYKCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdyhfX2EsIC1fX2EpOwp9CgpzdGF0aWMgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19uYWJzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yZWNpcGRpdih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fcHBjX3JlY2lwZGl2ZihfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcmVjaXBkaXYodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3BwY19yZWNpcGRpdmQoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVIxMF9WRUNUT1JfXwoKLyogdmVjX2V4dHJhY3RtICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHJhY3RibShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRyYWN0aG0oX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdG0odmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHJhY3R3bShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0cmFjdGRtKF9fYSk7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRyYWN0cW0oX19hKTsKfQojZW5kaWYKCi8qIHZlY19leHBhbmRtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2V4cGFuZG0odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHBhbmRibShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19leHBhbmRtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4cGFuZGhtKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHBhbmRtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHBhbmR3bShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXhwYW5kbSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXhwYW5kZG0oX19hKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2V4cGFuZG0odmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXhwYW5kcW0oX19hKTsKfQojZW5kaWYKCi8qIHZlY19jbnRtICovCgojZGVmaW5lIHZlY19jbnRtKF9fYSwgX19tcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgdW5zaWduZWQgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iYigoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iaCgoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1idygoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iZCgoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpKQoKLyogdmVjX2dlbltifGh8d3xkfHFdbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19nZW5ibSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcmJtKF9fYm0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19nZW5obSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcmhtKF9fYm0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZ2Vud20odW5zaWduZWQgbG9uZyBsb25nIF9fYm0pIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfbXR2c3J3bShfX2JtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2dlbmRtKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2JtKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX210dnNyZG0oX19ibSk7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19nZW5xbSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcnFtKF9fYm0pOwp9CiNlbmRpZgoKLyogdmVjX3BkZXAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZGVwKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGRlcGQoX19hLCBfX2IpOwp9CgovKiB2ZWNfcGV4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3BleHQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwZXh0ZChfX2EsIF9fYik7Cn0KCi8qIHZlY19jZnVnZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NmdWdlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2Z1Z2VkKF9fYSwgX19iKTsKfQoKLyogdmVjX2duYiAqLwoKI2RlZmluZSB2ZWNfZ25iKF9fYSwgX19iKSBfX2J1aWx0aW5fYWx0aXZlY192Z25iKF9fYSwgX19iKQoKLyogdmVjX3Rlcm5hcnlsb2dpYyAqLwojaWZkZWYgX19WU1hfXwojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18KI2RlZmluZSB2ZWNfdGVybmFyeWxvZ2ljKF9fYSwgX19iLCBfX2MsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSkKI2Vsc2UKI2RlZmluZSB2ZWNfdGVybmFyeWxvZ2ljKF9fYSwgX19iLCBfX2MsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSkKI2VuZGlmIC8qIF9fU0laRU9GX0lOVDEyOF9fICovCiNlbmRpZiAvKiBfX1ZTWF9fICovCgovKiB2ZWNfZ2VucGN2bSAqLwoKI2lmZGVmIF9fVlNYX18KI2RlZmluZSB2ZWNfZ2VucGN2bShfX2EsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZibSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZobSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3Z3bSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZkbSgoX19hKSwgKGludCkoX19pbW0pKSkKI2VuZGlmIC8qIF9fVlNYX18gKi8KCi8qIHZlY19jbHJfZmlyc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Nscl9maXJzdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBpbnQgX19uKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xycmIoX19hLCBfX24pOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xybGIoIF9fYSwgX19uKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY2xyX2ZpcnN0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgaW50IF9fbikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNscnJiKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX24pOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xybGIoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fbik7CiNlbmRpZgp9CgovKiB2ZWNfY2xyX2xhc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Nscl9sYXN0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGludCBfX24pIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJsYihfX2EsIF9fbik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJyYiggX19hLCBfX24pOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbHJfbGFzdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGludCBfX24pIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJsYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19uKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNscnJiKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX24pOwojZW5kaWYKfQoKLyogdmVjX2NudGx6bSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudGx6bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemRtKF9fYSwgX19iKTsKfQoKLyogdmVjX2NudHR6bSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudHR6bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emRtKF9fYSwgX19iKTsKfQoKLyogdmVjX21vZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tb2QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbW9kKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgJSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbW9kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAlIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21vZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX21vZCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tb2QodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAgX19hICUgX19iOwp9CiNlbmRpZgoKLyogdmVjX3NsZGJpICovCgojZGVmaW5lIHZlY19zbGRiKF9fYSwgX19iLCBfX2MpIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRiaShfX2EsIF9fYiwgKF9fYyAmIDB4NykpCgovKiB2ZWNfc3JkYmkgKi8KCiNkZWZpbmUgdmVjX3NyZGIoX19hLCBfX2IsIF9fYykgX19idWlsdGluX2FsdGl2ZWNfdnNyZGJpKF9fYSwgX19iLCAoX19jICYgMHg3KSkKCi8qIHZlY19pbnNlcnRsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHJ4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaGx4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3cngoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3bHgoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2J2cngoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnNidmx4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHZyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2h2bHgoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3dnJ4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zd3ZseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCi8qIHZlY19pbnNlcnRoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaGx4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHJ4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3bHgoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3cngoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2J2bHgoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnNidnJ4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHZseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2h2cngoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3dmx4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zd3ZyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCi8qIHZlY19leHRyYWN0bCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX2V4dHJhY3RsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWJ2cngoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWJ2bHgoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0bCgKICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWh2cngoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWh2bHgoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0bCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dGR1d3ZyeChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmV0ID0gX19idWlsdGluX2FsdGl2ZWNfdmV4dGR1d3ZseChfX2EsIF9fYiwgX19jKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDgpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3RsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkZHZyeChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmV0ID0gX19idWlsdGluX2FsdGl2ZWNfdmV4dGRkdmx4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgovKiB2ZWNfZXh0cmFjdGggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0aCgKICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVidmx4KF9fYSwgX19iLCBfX2MpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQgPSBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVidnJ4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdGgoCiAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVodmx4KF9fYSwgX19iLCBfX2MpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQgPSBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVodnJ4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdGgoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdXd2bHgoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdXd2cngoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0aCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZGR2bHgoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkZHZyeChfX2EsIF9fYiwgX19jKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDgpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18KCi8qIHZlY19wZXJteCAqLwoKI2RlZmluZSB2ZWNfcGVybXgoX19hLCBfX2IsIF9fYywgX19kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5fdnN4X3h4cGVybXgoKF9fYSksIChfX2IpLCAoX19jKSwgKF9fZCkpCgovKiB2ZWNfYmxlbmR2ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmIoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYmxlbmR2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2YihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2aChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYmxlbmR2KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2aChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdncoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHhibGVuZHZ3KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2ZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmQoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2dyhfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmQoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19yZXBsYWNlX2VsdCAqLwoKI2RlZmluZSB2ZWNfcmVwbGFjZV9lbHQgX19idWlsdGluX2FsdGl2ZWNfdmVjX3JlcGxhY2VfZWx0CgovKiB2ZWNfcmVwbGFjZV91bmFsaWduZWQgKi8KCiNkZWZpbmUgdmVjX3JlcGxhY2VfdW5hbGlnbmVkIF9fYnVpbHRpbl9hbHRpdmVjX3ZlY19yZXBsYWNlX3VuYWxpZ25lZAoKLyogdmVjX3NwbGF0aSAqLwoKI2RlZmluZSB2ZWNfc3BsYXRpKF9fYSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIHNpZ25lZCBpbnQpX19hKSwgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIHVuc2lnbmVkIGludClfX2EpLCBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIGZsb2F0KV9fYSkpCgovKiB2ZWNfc3BhdGlkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRpZChjb25zdCBmbG9hdCBfX2EpIHsKICByZXR1cm4gKCh2ZWN0b3IgZG91YmxlKSgoZG91YmxlKV9fYSkpOwp9CgovKiB2ZWNfc3BsYXRpX2lucyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19zcGxhdGlfaW5zKAogICAgdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgX19iLCBjb25zdCBzaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX2FbMSAtIF9fYl0gPSBfX2M7CiAgX19hWzMgLSBfX2JdID0gX19jOwojZWxzZQogIF9fYVtfX2JdID0gX19jOwogIF9fYVsyICsgX19iXSA9IF9fYzsKI2VuZGlmCiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0aV9pbnMoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50IF9fYiwgY29uc3QgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX2FbMSAtIF9fYl0gPSBfX2M7CiAgX19hWzMgLSBfX2JdID0gX19jOwojZWxzZQogIF9fYVtfX2JdID0gX19jOwogIF9fYVsyICsgX19iXSA9IF9fYzsKI2VuZGlmCiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRpX2lucyh2ZWN0b3IgZmxvYXQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgX19iLCBjb25zdCBmbG9hdCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19hWzEgLSBfX2JdID0gX19jOwogIF9fYVszIC0gX19iXSA9IF9fYzsKI2Vsc2UKICBfX2FbX19iXSA9IF9fYzsKICBfX2FbMiArIF9fYl0gPSBfX2M7CiNlbmRpZgogIHJldHVybiBfX2E7Cn0KCi8qIHZlY190ZXN0X2xzYmJfYWxsX29uZXMgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX3Rlc3RfbHNiYl9hbGxfb25lcyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnRsc2JiKF9fYSwgMSk7Cn0KCi8qIHZlY190ZXN0X2xzYmJfYWxsX3plcm9zICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpCnZlY190ZXN0X2xzYmJfYWxsX3plcm9zKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGxzYmIoX19hLCAwKTsKfQojZW5kaWYgLyogX19WU1hfXyAqLwoKLyogdmVjX3N0cmlsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N0cmlsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYmwoKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3RyaWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdHJpbCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhyKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaGwoKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdHJpbCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsKF9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfc3RyaWxfcCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaWxfcCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX3N0cmlsX3AodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicl9wKF9fQ1I2X0VRLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpbF9wKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlobF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaWxfcCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocl9wKF9fQ1I2X0VRLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsX3AoX19DUjZfRVEsIF9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfc3RyaXIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3RyaXIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdHJpcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N0cmlyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaGwoKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocigodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N0cmlyKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHIoX19hKTsKI2VuZGlmCn0KCi8qIHZlY19zdHJpcl9wICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpcl9wKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlibF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaXJfcCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX3N0cmlyX3AodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlobF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhyX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpcl9wKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsX3AoX19DUjZfRVEsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHJfcChfX0NSNl9FUSwgX19hKTsKI2VuZGlmCn0KCi8qIHZzW2wgfCByIHwgcmFdICovCgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgPDwgKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKHNpemVvZih1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hIDw8IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YodW5zaWduZWQgX19pbnQxMjgpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgPj4gKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKHNpemVvZih1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKAogICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4KSgoKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOClfX2EpID4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkoc2l6ZW9mKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4KSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICgKICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSgoKHZlY3RvciBzaWduZWQgX19pbnQxMjgpX19hKSA+PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hID4+IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YodW5zaWduZWQgX19pbnQxMjgpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKI2VuZGlmIC8qIF9fU0laRU9GX0lOVDEyOF9fICovCiNlbmRpZiAvKiBfX1BPV0VSMTBfVkVDVE9SX18gKi8KCiN1bmRlZiBfX0FUVFJTX29fYWkKCiNlbmRpZiAvKiBfX0FMVElWRUNfSCAqLwoALyo9PT0tLS0tIGFtbWludHJpbi5oIC0gU1NFNGEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FNTUlOVFJJTl9ICiNkZWZpbmUgX19BTU1JTlRSSU5fSAoKI2luY2x1ZGUgPHBtbWludHJpbi5oPgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNzZTRhIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGF0IHRoZSBpbmRleCBcYSBpZHggYW5kIG9mIHRoZSBsZW5ndGggXGEgbGVuLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fZXh0cmFjdGlfc2k2NChfX20xMjhpIHgsIGNvbnN0IGludCBsZW4sIGNvbnN0IGludCBpZHgpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEVYVFJRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIHgKLy8vICAgIFRoZSB2YWx1ZSBmcm9tIHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBsZW4KLy8vICAgIEJpdHMgWzU6MF0gc3BlY2lmeSB0aGUgbGVuZ3RoOyB0aGUgb3RoZXIgYml0cyBhcmUgaWdub3JlZC4gSWYgYml0cyBbNTowXQovLy8gICAgYXJlIHplcm8sIHRoZSBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuCi8vLyBccGFyYW0gaWR4Ci8vLyAgICBCaXRzIFs1OjBdIHNwZWNpZnkgdGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQ7IHRoZSBvdGhlcgovLy8gICAgYml0cyBhcmUgaWdub3JlZC4gSWYgdGhlIHN1bSBvZiB0aGUgaW5kZXggYW5kIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gNjQsCi8vLyAgICB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4gSWYgdGhlIGxlbmd0aCBhbmQgaW5kZXggYXJlIGJvdGggemVybywgYml0cwovLy8gICAgWzYzOjBdIG9mIHBhcmFtZXRlciBcYSB4IGFyZSBleHRyYWN0ZWQuIElmIHRoZSBsZW5ndGggaXMgemVybyBidXQgdGhlCi8vLyAgICBpbmRleCBpcyBub24temVybywgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZSBiaXRzCi8vLyAgICBleHRyYWN0ZWQgZnJvbSB0aGUgc291cmNlIG9wZXJhbmQuCiNkZWZpbmUgX21tX2V4dHJhY3RpX3NpNjQoeCwgbGVuLCBpZHgpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cnFpKChfX3YyZGkpKF9fbTEyOGkpKHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikobGVuKSwgKGNoYXIpKGlkeCkpKQoKLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGF0IHRoZSBpbmRleCBhbmQgb2YgdGhlIGxlbmd0aCBzcGVjaWZpZWQgYnkKLy8vICAgIFxhIF9feS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFWFRSUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3gKLy8vICAgIFRoZSB2YWx1ZSBmcm9tIHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBfX3kKLy8vICAgIFNwZWNpZmllcyB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBhdCBbMTM6OF0gYW5kIHRoZQovLy8gICAgbGVuZ3RoIGF0IFs1OjBdOyBhbGwgb3RoZXIgYml0cyBhcmUgaWdub3JlZC4gSWYgYml0cyBbNTowXSBhcmUgemVybywgdGhlCi8vLyAgICBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuIElmIHRoZSBzdW0gb2YgdGhlIGluZGV4IGFuZCBsZW5ndGggaXMKLy8vICAgIGdyZWF0ZXIgdGhhbiA2NCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZSBsZW5ndGggYW5kIGluZGV4IGFyZQovLy8gICAgYm90aCB6ZXJvLCBiaXRzIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgX194IGFyZSBleHRyYWN0ZWQuIElmIHRoZSBsZW5ndGgKLy8vICAgIGlzIHplcm8gYnV0IHRoZSBpbmRleCBpcyBub24temVybywgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUgYml0cyBleHRyYWN0ZWQKLy8vICAgIGZyb20gdGhlIHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZXh0cmFjdF9zaTY0KF9fbTEyOGkgX194LCBfX20xMjhpIF9feSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRycSgoX192MmRpKV9feCwgKF9fdjE2cWkpX195KTsKfQoKLy8vIEluc2VydHMgYml0cyBvZiBhIHNwZWNpZmllZCBsZW5ndGggZnJvbSB0aGUgc291cmNlIGludGVnZXIgdmVjdG9yCi8vLyAgICBcYSB5IGludG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uIGludGVnZXIgdmVjdG9yIFxhIHggYXQKLy8vICAgIHRoZSBpbmRleCBcYSBpZHggYW5kIG9mIHRoZSBsZW5ndGggXGEgbGVuLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1faW5zZXJ0aV9zaTY0KF9fbTEyOGkgeCwgX19tMTI4aSB5LCBjb25zdCBpbnQgbGVuLAovLy8gY29uc3QgaW50IGlkeCk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gSU5TRVJUUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSB4Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gb3BlcmFuZCB3aGVyZSBiaXRzIHdpbGwgYmUgaW5zZXJ0ZWQuIFRoZSBpbnNlcnRlZCBiaXRzCi8vLyAgICBhcmUgZGVmaW5lZCBieSB0aGUgbGVuZ3RoIFxhIGxlbiBhbmQgYnkgdGhlIGluZGV4IFxhIGlkeCBzcGVjaWZ5aW5nIHRoZQovLy8gICAgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LgovLy8gXHBhcmFtIHkKLy8vICAgIFRoZSBzb3VyY2Ugb3BlcmFuZCBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIGV4dHJhY3RlZC4gVGhlIGV4dHJhY3RlZAovLy8gICAgYml0cyBhcmUgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2Ygb3BlcmFuZCBcYSB5IG9mIGxlbmd0aCBcYSBsZW4uCi8vLyBccGFyYW0gbGVuCi8vLyAgICBCaXRzIFs1OjBdIHNwZWNpZnkgdGhlIGxlbmd0aDsgdGhlIG90aGVyIGJpdHMgYXJlIGlnbm9yZWQuIElmIGJpdHMgWzU6MF0KLy8vICAgIGFyZSB6ZXJvLCB0aGUgbGVuZ3RoIGlzIGludGVycHJldGVkIGFzIDY0LgovLy8gXHBhcmFtIGlkeAovLy8gICAgQml0cyBbNTowXSBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0OyB0aGUgb3RoZXIKLy8vICAgIGJpdHMgYXJlIGlnbm9yZWQuIElmIHRoZSBzdW0gb2YgdGhlIGluZGV4IGFuZCBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIDY0LAovLy8gICAgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZSBsZW5ndGggYW5kIGluZGV4IGFyZSBib3RoIHplcm8sIGJpdHMKLy8vICAgIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgeSBhcmUgaW5zZXJ0ZWQgaW50byBwYXJhbWV0ZXIgXGEgeC4gSWYgdGhlIGxlbmd0aAovLy8gICAgaXMgemVybyBidXQgdGhlIGluZGV4IGlzIG5vbi16ZXJvLCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBvcmlnaW5hbCBsb3dlciA2NC1iaXRzIG9mCi8vLyAgICBkZXN0aW5hdGlvbiBvcGVyYW5kIFxhIHggd2l0aCB0aGUgc3BlY2lmaWVkIGJpdGZpZWxkcyByZXBsYWNlZCBieSB0aGUKLy8vICAgIGxvd2VyIGJpdHMgb2Ygc291cmNlIG9wZXJhbmQgXGEgeS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJldHVybiB2YWx1ZQovLy8gICAgYXJlIHVuZGVmaW5lZC4KI2RlZmluZSBfbW1faW5zZXJ0aV9zaTY0KHgsIHksIGxlbiwgaWR4KSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2luc2VydHFpKChfX3YyZGkpKF9fbTEyOGkpKHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShsZW4pLCAoY2hhcikoaWR4KSkpCgovLy8gSW5zZXJ0cyBiaXRzIG9mIGEgc3BlY2lmaWVkIGxlbmd0aCBmcm9tIHRoZSBzb3VyY2UgaW50ZWdlciB2ZWN0b3IKLy8vICAgIFxhIF9feSBpbnRvIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbiBpbnRlZ2VyIHZlY3RvciBcYSBfX3gKLy8vICAgIGF0IHRoZSBpbmRleCBhbmQgb2YgdGhlIGxlbmd0aCBzcGVjaWZpZWQgYnkgXGEgX195LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IElOU0VSVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX194Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gb3BlcmFuZCB3aGVyZSBiaXRzIHdpbGwgYmUgaW5zZXJ0ZWQuIFRoZSBpbnNlcnRlZCBiaXRzCi8vLyAgICBhcmUgZGVmaW5lZCBieSB0aGUgbGVuZ3RoIGFuZCBieSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdAovLy8gICAgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgXGEgX195LgovLy8gXHBhcmFtIF9feQovLy8gICAgVGhlIHNvdXJjZSBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIGJpdHMgdG8gYmUgZXh0cmFjdGVkLiBUaGUgZXh0cmFjdGVkCi8vLyAgICBiaXRzIGFyZSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBvcGVyYW5kIFxhIF9feSB3aXRoIGxlbmd0aAovLy8gICAgc3BlY2lmaWVkIGJ5IGJpdHMgWzY5OjY0XS4gVGhlc2UgYXJlIGluc2VydGVkIGludG8gdGhlIGRlc3RpbmF0aW9uIGF0IHRoZQovLy8gICAgaW5kZXggc3BlY2lmaWVkIGJ5IGJpdHMgWzc3OjcyXTsgYWxsIG90aGVyIGJpdHMgYXJlIGlnbm9yZWQuIElmIGJpdHMKLy8vICAgIFs2OTo2NF0gYXJlIHplcm8sIHRoZSBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuIElmIHRoZSBzdW0gb2YgdGhlCi8vLyAgICBpbmRleCBhbmQgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiA2NCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZQovLy8gICAgbGVuZ3RoIGFuZCBpbmRleCBhcmUgYm90aCB6ZXJvLCBiaXRzIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgX195IGFyZQovLy8gICAgaW5zZXJ0ZWQgaW50byBwYXJhbWV0ZXIgXGEgX194LiBJZiB0aGUgbGVuZ3RoIGlzIHplcm8gYnV0IHRoZSBpbmRleCBpcwovLy8gICAgbm9uLXplcm8sIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGxvd2VyIDY0LWJpdHMgb2YKLy8vICAgIGRlc3RpbmF0aW9uIG9wZXJhbmQgXGEgX194IHdpdGggdGhlIHNwZWNpZmllZCBiaXRmaWVsZHMgcmVwbGFjZWQgYnkgdGhlCi8vLyAgICBsb3dlciBiaXRzIG9mIHNvdXJjZSBvcGVyYW5kIFxhIF9feS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJldHVybgovLy8gICAgdmFsdWUgYXJlIHVuZGVmaW5lZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2luc2VydF9zaTY0KF9fbTEyOGkgX194LCBfX20xMjhpIF9feSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9pbnNlcnRxKChfX3YyZGkpX194LCAoX192MmRpKV9feSk7Cn0KCi8vLyBTdG9yZXMgYSA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpbiBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyAgICBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUKLy8vICAgIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WTlRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIFRoZSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHJlZ2lzdGVyIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9zZChkb3VibGUgKl9fcCwgX19tMTI4ZCBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZudHNkKF9fcCwgKF9fdjJkZilfX2EpOwp9CgovLy8gU3RvcmVzIGEgMzItYml0IHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgaW4gYSAzMi1iaXQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4gVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcwovLy8gICAgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZSB1c2VkIGFnYWluIHNvb24pLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVk5UU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBUaGUgMzItYml0IG1lbW9yeSBsb2NhdGlvbiB1c2VkIHRvIHN0b3JlIHRoZSByZWdpc3RlciB2YWx1ZS4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIFRoZSAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCByZWdpc3RlciB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdHJlYW1fc3MoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21vdm50c3MoX19wLCAoX192NHNmKV9fYSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX0FNTUlOVFJJTl9IICovCgBhbXhpbnRyaW4uaABhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaAAvKj09PS0tLS0tLSBjZXQuaCAtQ29udHJvbC1mbG93IEVuZm9yY2VtZW50IFRlY2hub2xvZ3kgIGZlYXR1cmUgLS0tLS0tLS0tLS0tPT09CiAqIEFkZCB4ODYgZmVhdHVyZSB3aXRoIElCVCBhbmQvb3IgU0hTVEsgYml0cyB0byBFTEYgcHJvZ3JhbSBwcm9wZXJ0eSBpZiB0aGV5CiAqIGFyZSBlbmFibGVkLiBPdGhlcndpc2UsIGNvbnRlbnRzIGluIHRoaXMgaGVhZGVyIGZpbGUgYXJlIHVudXNlZC4gVGhpcyBmaWxlCiAqIGlzIG1haW5seSBkZXNpZ24gZm9yIGFzc2VtYmx5IHNvdXJjZSBjb2RlIHdoaWNoIHdhbnQgdG8gZW5hYmxlIENFVC4KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NFVF9ICiNkZWZpbmUgX19DRVRfSAoKI2lmZGVmIF9fQVNTRU1CTEVSX18KCiNpZm5kZWYgX19DRVRfXwojIGRlZmluZSBfQ0VUX0VOREJSCiNlbmRpZgoKI2lmZGVmIF9fQ0VUX18KCiMgaWZkZWYgX19MUDY0X18KIyAgaWYgX19DRVRfXyAmIDB4MQojICAgIGRlZmluZSBfQ0VUX0VOREJSIGVuZGJyNjQKIyAgZWxzZQojICAgIGRlZmluZSBfQ0VUX0VOREJSCiMgIGVuZGlmCiMgZWxzZQojICBpZiBfX0NFVF9fICYgMHgxCiMgICAgZGVmaW5lIF9DRVRfRU5EQlIgZW5kYnIzMgojICBlbHNlCiMgICAgZGVmaW5lIF9DRVRfRU5EQlIKIyAgZW5kaWYKIyBlbmRpZgoKCiMgIGlmZGVmIF9fTFA2NF9fCiMgICBkZWZpbmUgX19QUk9QRVJUWV9BTElHTiAzCiMgIGVsc2UKIyAgIGRlZmluZSBfX1BST1BFUlRZX0FMSUdOIDIKIyAgZW5kaWYKCgkucHVzaHNlY3Rpb24gIi5ub3RlLmdudS5wcm9wZXJ0eSIsICJhIgoJLnAyYWxpZ24gX19QUk9QRVJUWV9BTElHTgoJLmxvbmcgMWYgLSAwZgkJLyogbmFtZSBsZW5ndGguICAqLwoJLmxvbmcgNGYgLSAxZgkJLyogZGF0YSBsZW5ndGguICAqLwoJLyogTlRfR05VX1BST1BFUlRZX1RZUEVfMC4gICAqLwoJLmxvbmcgNQkJCS8qIG5vdGUgdHlwZS4gICovCjA6CgkuYXNjaXogIkdOVSIJCS8qIHZlbmRvciBuYW1lLiAgKi8KMToKCS5wMmFsaWduIF9fUFJPUEVSVFlfQUxJR04KCS8qIEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8xX0FORC4gICovCgkubG9uZyAweGMwMDAwMDAyCS8qIHByX3R5cGUuICAqLwoJLmxvbmcgM2YgLSAyZgkJLyogcHJfZGF0YXN6LiAgKi8KMjoKCS8qIEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8xX1hYWC4gICovCgkubG9uZyBfX0NFVF9fCjM6CgkucDJhbGlnbiBfX1BST1BFUlRZX0FMSUdOCjQ6CgkucG9wc2VjdGlvbgojZW5kaWYKI2VuZGlmCiNlbmRpZgoALyo9PT0tLS0tIGNsZmx1c2hvcHRpbnRyaW4uaCAtIENMRkxVU0hPUFQgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxjbGZsdXNob3B0aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0NMRkxVU0hPUFRJTlRSSU5fSAojZGVmaW5lIF9fQ0xGTFVTSE9QVElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImNsZmx1c2hvcHQiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2xmbHVzaG9wdCh2b2lkIGNvbnN0ICogX19tKSB7CiAgX19idWlsdGluX2lhMzJfY2xmbHVzaG9wdChfX20pOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSBjcHVpZC5oIC0gWDg2IGNwdSBtb2RlbCBkZXRlY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DUFVJRF9ICiNkZWZpbmUgX19DUFVJRF9ICgojaWYgIShfX3g4Nl82NF9fIHx8IF9faTM4Nl9fKQojZXJyb3IgdGhpcyBoZWFkZXIgaXMgZm9yIHg4NiBvbmx5CiNlbmRpZgoKLyogUmVzcG9uc2VzIGlkZW50aWZpY2F0aW9uIHJlcXVlc3Qgd2l0aCAlZWF4IDAgKi8KLyogQU1EOiAgICAgIkF1dGhlbnRpY0FNRCIgKi8KI2RlZmluZSBzaWduYXR1cmVfQU1EX2VieCAweDY4NzQ3NTQxCiNkZWZpbmUgc2lnbmF0dXJlX0FNRF9lZHggMHg2OTc0NmU2NQojZGVmaW5lIHNpZ25hdHVyZV9BTURfZWN4IDB4NDQ0ZDQxNjMKLyogQ0VOVEFVUjogIkNlbnRhdXJIYXVscyIgKi8KI2RlZmluZSBzaWduYXR1cmVfQ0VOVEFVUl9lYnggMHg3NDZlNjU0MwojZGVmaW5lIHNpZ25hdHVyZV9DRU5UQVVSX2VkeCAweDQ4NzI3NTYxCiNkZWZpbmUgc2lnbmF0dXJlX0NFTlRBVVJfZWN4IDB4NzM2Yzc1NjEKLyogQ1lSSVg6ICAgIkN5cml4SW5zdGVhZCIgKi8KI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWJ4IDB4Njk3Mjc5NDMKI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWR4IDB4NzM2ZTQ5NzgKI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWN4IDB4NjQ2MTY1NzQKLyogSFlHT046ICAgIkh5Z29uR2VudWluZSIgKi8KI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWJ4IDB4NmY2Nzc5NDgKI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWR4IDB4NmU2NTQ3NmUKI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWN4IDB4NjU2ZTY5NzUKLyogSU5URUw6ICAgIkdlbnVpbmVJbnRlbCIgKi8KI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWJ4IDB4NzU2ZTY1NDcKI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWR4IDB4NDk2NTZlNjkKI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWN4IDB4NmM2NTc0NmUKLyogVE0xOiAgICAgIlRyYW5zbWV0YUNQVSIgKi8KI2RlZmluZSBzaWduYXR1cmVfVE0xX2VieCAweDZlNjE3MjU0CiNkZWZpbmUgc2lnbmF0dXJlX1RNMV9lZHggMHg3NDY1NmQ3MwojZGVmaW5lIHNpZ25hdHVyZV9UTTFfZWN4IDB4NTU1MDQzNjEKLyogVE0yOiAgICAgIkdlbnVpbmVUTXg4NiIgKi8KI2RlZmluZSBzaWduYXR1cmVfVE0yX2VieCAweDc1NmU2NTQ3CiNkZWZpbmUgc2lnbmF0dXJlX1RNMl9lZHggMHg1NDY1NmU2OQojZGVmaW5lIHNpZ25hdHVyZV9UTTJfZWN4IDB4MzYzODc4NGQKLyogTlNDOiAgICAgIkdlb2RlIGJ5IE5TQyIgKi8KI2RlZmluZSBzaWduYXR1cmVfTlNDX2VieCAweDY0NmY2NTQ3CiNkZWZpbmUgc2lnbmF0dXJlX05TQ19lZHggMHg3OTYyMjA2NQojZGVmaW5lIHNpZ25hdHVyZV9OU0NfZWN4IDB4NDM1MzRlMjAKLyogTkVYR0VOOiAgIk5leEdlbkRyaXZlbiIgKi8KI2RlZmluZSBzaWduYXR1cmVfTkVYR0VOX2VieCAweDQ3Nzg2NTRlCiNkZWZpbmUgc2lnbmF0dXJlX05FWEdFTl9lZHggMHg3MjQ0NmU2NQojZGVmaW5lIHNpZ25hdHVyZV9ORVhHRU5fZWN4IDB4NmU2NTc2NjkKLyogUklTRTogICAgIlJpc2VSaXNlUmlzZSIgKi8KI2RlZmluZSBzaWduYXR1cmVfUklTRV9lYnggMHg2NTczNjk1MgojZGVmaW5lIHNpZ25hdHVyZV9SSVNFX2VkeCAweDY1NzM2OTUyCiNkZWZpbmUgc2lnbmF0dXJlX1JJU0VfZWN4IDB4NjU3MzY5NTIKLyogU0lTOiAgICAgIlNpUyBTaVMgU2lTICIgKi8KI2RlZmluZSBzaWduYXR1cmVfU0lTX2VieCAweDIwNTM2OTUzCiNkZWZpbmUgc2lnbmF0dXJlX1NJU19lZHggMHgyMDUzNjk1MwojZGVmaW5lIHNpZ25hdHVyZV9TSVNfZWN4IDB4MjA1MzY5NTMKLyogVU1DOiAgICAgIlVNQyBVTUMgVU1DICIgKi8KI2RlZmluZSBzaWduYXR1cmVfVU1DX2VieCAweDIwNDM0ZDU1CiNkZWZpbmUgc2lnbmF0dXJlX1VNQ19lZHggMHgyMDQzNGQ1NQojZGVmaW5lIHNpZ25hdHVyZV9VTUNfZWN4IDB4MjA0MzRkNTUKLyogVklBOiAgICAgIlZJQSBWSUEgVklBICIgKi8KI2RlZmluZSBzaWduYXR1cmVfVklBX2VieCAweDIwNDE0OTU2CiNkZWZpbmUgc2lnbmF0dXJlX1ZJQV9lZHggMHgyMDQxNDk1NgojZGVmaW5lIHNpZ25hdHVyZV9WSUFfZWN4IDB4MjA0MTQ5NTYKLyogVk9SVEVYOiAgIlZvcnRleDg2IFNvQyIgKi8KI2RlZmluZSBzaWduYXR1cmVfVk9SVEVYX2VieCAweDc0NzI2ZjU2CiNkZWZpbmUgc2lnbmF0dXJlX1ZPUlRFWF9lZHggMHgzNjM4Nzg2NQojZGVmaW5lIHNpZ25hdHVyZV9WT1JURVhfZWN4IDB4NDM2ZjUzMjAKCi8qIEZlYXR1cmVzIGluICVlY3ggZm9yIGxlYWYgMSAqLwojZGVmaW5lIGJpdF9TU0UzICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgYml0X1BDTE1VTFFEUSAgIDB4MDAwMDAwMDIKI2RlZmluZSBiaXRfUENMTVVMICAgICAgYml0X1BDTE1VTFFEUSAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X0RURVM2NCAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBiaXRfTU9OSVRPUiAgICAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9EU0NQTCAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgYml0X1ZNWCAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfU01YICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9FSVNUICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X1RNMiAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfU1NTRTMgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9DTlhUSUQgICAgICAweDAwMDAwNDAwCiNkZWZpbmUgYml0X0ZNQSAgICAgICAgIDB4MDAwMDEwMDAKI2RlZmluZSBiaXRfQ01QWENIRzE2QiAgMHgwMDAwMjAwMAojZGVmaW5lIGJpdF94VFBSICAgICAgICAweDAwMDA0MDAwCiNkZWZpbmUgYml0X1BEQ00gICAgICAgIDB4MDAwMDgwMDAKI2RlZmluZSBiaXRfUENJRCAgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIGJpdF9EQ0EgICAgICAgICAweDAwMDQwMDAwCiNkZWZpbmUgYml0X1NTRTQxICAgICAgIDB4MDAwODAwMDAKI2RlZmluZSBiaXRfU1NFNF8xICAgICAgYml0X1NTRTQxICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X1NTRTQyICAgICAgIDB4MDAxMDAwMDAKI2RlZmluZSBiaXRfU1NFNF8yICAgICAgYml0X1NTRTQyICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X3gyQVBJQyAgICAgIDB4MDAyMDAwMDAKI2RlZmluZSBiaXRfTU9WQkUgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9QT1BDTlQgICAgICAweDAwODAwMDAwCiNkZWZpbmUgYml0X1RTQ0RlYWRsaW5lIDB4MDEwMDAwMDAKI2RlZmluZSBiaXRfQUVTTkkgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9BRVMgICAgICAgICBiaXRfQUVTTkkgICAgICAgLyogZm9yIGdjYyBjb21wYXQgKi8KI2RlZmluZSBiaXRfWFNBVkUgICAgICAgMHgwNDAwMDAwMAojZGVmaW5lIGJpdF9PU1hTQVZFICAgICAweDA4MDAwMDAwCiNkZWZpbmUgYml0X0FWWCAgICAgICAgIDB4MTAwMDAwMDAKI2RlZmluZSBiaXRfRjE2QyAgICAgICAgMHgyMDAwMDAwMAojZGVmaW5lIGJpdF9SRFJORCAgICAgICAweDQwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWR4IGZvciBsZWFmIDEgKi8KI2RlZmluZSBiaXRfRlBVICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIGJpdF9WTUUgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgYml0X0RFICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBiaXRfUFNFICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9UU0MgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgYml0X01TUiAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfUEFFICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9NQ0UgICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X0NYOCAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfQ01QWENIRzhCICAgYml0X0NYOCAgICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X0FQSUMgICAgICAgIDB4MDAwMDAyMDAKI2RlZmluZSBiaXRfU0VQICAgICAgICAgMHgwMDAwMDgwMAojZGVmaW5lIGJpdF9NVFJSICAgICAgICAweDAwMDAxMDAwCiNkZWZpbmUgYml0X1BHRSAgICAgICAgIDB4MDAwMDIwMDAKI2RlZmluZSBiaXRfTUNBICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIGJpdF9DTU9WICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgYml0X1BBVCAgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBiaXRfUFNFMzYgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIGJpdF9QU04gICAgICAgICAweDAwMDQwMDAwCiNkZWZpbmUgYml0X0NMRlNIICAgICAgIDB4MDAwODAwMDAKI2RlZmluZSBiaXRfRFMgICAgICAgICAgMHgwMDIwMDAwMAojZGVmaW5lIGJpdF9BQ1BJICAgICAgICAweDAwNDAwMDAwCiNkZWZpbmUgYml0X01NWCAgICAgICAgIDB4MDA4MDAwMDAKI2RlZmluZSBiaXRfRlhTUiAgICAgICAgMHgwMTAwMDAwMAojZGVmaW5lIGJpdF9GWFNBVkUgICAgICBiaXRfRlhTUiAgICAgICAgLyogZm9yIGdjYyBjb21wYXQgKi8KI2RlZmluZSBiaXRfU1NFICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9TU0UyICAgICAgICAweDA0MDAwMDAwCiNkZWZpbmUgYml0X1NTICAgICAgICAgIDB4MDgwMDAwMDAKI2RlZmluZSBiaXRfSFRUICAgICAgICAgMHgxMDAwMDAwMAojZGVmaW5lIGJpdF9UTSAgICAgICAgICAweDIwMDAwMDAwCiNkZWZpbmUgYml0X1BCRSAgICAgICAgIDB4ODAwMDAwMDAKCi8qIEZlYXR1cmVzIGluICVlYnggZm9yIGxlYWYgNyBzdWItbGVhZiAwICovCiNkZWZpbmUgYml0X0ZTR1NCQVNFICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfU0dYICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIGJpdF9CTUkgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgYml0X0hMRSAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBiaXRfQVZYMiAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9TTUVQICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X0JNSTIgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfRU5IX01PVlNCICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9JTlZQQ0lEICAgICAweDAwMDAwNDAwCiNkZWZpbmUgYml0X1JUTSAgICAgICAgIDB4MDAwMDA4MDAKI2RlZmluZSBiaXRfTVBYICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIGJpdF9BVlg1MTJGICAgICAweDAwMDEwMDAwCiNkZWZpbmUgYml0X0FWWDUxMkRRICAgIDB4MDAwMjAwMDAKI2RlZmluZSBiaXRfUkRTRUVEICAgICAgMHgwMDA0MDAwMAojZGVmaW5lIGJpdF9BRFggICAgICAgICAweDAwMDgwMDAwCiNkZWZpbmUgYml0X0FWWDUxMklGTUEgIDB4MDAyMDAwMDAKI2RlZmluZSBiaXRfQ0xGTFVTSE9QVCAgMHgwMDgwMDAwMAojZGVmaW5lIGJpdF9DTFdCICAgICAgICAweDAxMDAwMDAwCiNkZWZpbmUgYml0X0FWWDUxMlBGICAgIDB4MDQwMDAwMDAKI2RlZmluZSBiaXRfQVZYNTEyRVIgICAgMHgwODAwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJDRCAgICAweDEwMDAwMDAwCiNkZWZpbmUgYml0X1NIQSAgICAgICAgIDB4MjAwMDAwMDAKI2RlZmluZSBiaXRfQVZYNTEyQlcgICAgMHg0MDAwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJWTCAgICAweDgwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWN4IGZvciBsZWFmIDcgc3ViLWxlYWYgMCAqLwojZGVmaW5lIGJpdF9QUkVGVENIV1QxICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfQVZYNTEyVkJNSSAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgYml0X1BLVSAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIGJpdF9PU1BLRSAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBiaXRfV0FJVFBLRyAgICAgICAgICAweDAwMDAwMDIwCiNkZWZpbmUgYml0X0FWWDUxMlZCTUkyICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9TSFNUSyAgICAgICAgICAgIDB4MDAwMDAwODAKI2RlZmluZSBiaXRfR0ZOSSAgICAgICAgICAgICAweDAwMDAwMTAwCiNkZWZpbmUgYml0X1ZBRVMgICAgICAgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9WUENMTVVMUURRICAgICAgIDB4MDAwMDA0MDAKI2RlZmluZSBiaXRfQVZYNTEyVk5OSSAgICAgICAweDAwMDAwODAwCiNkZWZpbmUgYml0X0FWWDUxMkJJVEFMRyAgICAgMHgwMDAwMTAwMAojZGVmaW5lIGJpdF9BVlg1MTJWUE9QQ05URFEgIDB4MDAwMDQwMDAKI2RlZmluZSBiaXRfUkRQSUQgICAgICAgICAgICAweDAwNDAwMDAwCiNkZWZpbmUgYml0X0NMREVNT1RFICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9NT1ZESVJJICAgICAgICAgIDB4MDgwMDAwMDAKI2RlZmluZSBiaXRfTU9WRElSNjRCICAgICAgICAweDEwMDAwMDAwCiNkZWZpbmUgYml0X0VOUUNNRCAgICAgICAgICAgMHgyMDAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVkeCBmb3IgbGVhZiA3IHN1Yi1sZWFmIDAgKi8KI2RlZmluZSBiaXRfQVZYNTEyNFZOTklXICAweDAwMDAwMDA0CiNkZWZpbmUgYml0X0FWWDUxMjRGTUFQUyAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9VSU5UUiAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfU0VSSUFMSVpFICAgICAweDAwMDA0MDAwCiNkZWZpbmUgYml0X1RTWExEVFJLICAgICAgMHgwMDAxMDAwMAojZGVmaW5lIGJpdF9QQ09ORklHICAgICAgIDB4MDAwNDAwMDAKI2RlZmluZSBiaXRfSUJUICAgICAgICAgICAweDAwMTAwMDAwCiNkZWZpbmUgYml0X0FNWEJGMTYgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJGUDE2ICAgIDB4MDA4MDAwMDAKI2RlZmluZSBiaXRfQU1YVElMRSAgICAgICAweDAxMDAwMDAwCiNkZWZpbmUgYml0X0FNWElOVDggICAgICAgMHgwMjAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVheCBmb3IgbGVhZiA3IHN1Yi1sZWFmIDEgKi8KI2RlZmluZSBiaXRfQVZYVk5OSSAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgYml0X0FWWDUxMkJGMTYgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9IUkVTRVQgICAgICAgIDB4MDA0MDAwMDAKCi8qIEZlYXR1cmVzIGluICVlYXggZm9yIGxlYWYgMTMgc3ViLWxlYWYgMSAqLwojZGVmaW5lIGJpdF9YU0FWRU9QVCAgICAweDAwMDAwMDAxCiNkZWZpbmUgYml0X1hTQVZFQyAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBiaXRfWFNBVkVTICAgICAgMHgwMDAwMDAwOAoKLyogRmVhdHVyZXMgaW4gJWVheCBmb3IgbGVhZiAweDE0IHN1Yi1sZWFmIDAgKi8KI2RlZmluZSBiaXRfUFRXUklURSAgICAgMHgwMDAwMDAxMAoKLyogRmVhdHVyZXMgaW4gJWVjeCBmb3IgbGVhZiAweDgwMDAwMDAxICovCiNkZWZpbmUgYml0X0xBSEZfTE0gICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfQUJNICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9MWkNOVCAgICAgICBiaXRfQUJNICAgICAgICAvKiBmb3IgZ2NjIGNvbXBhdCAqLwojZGVmaW5lIGJpdF9TU0U0YSAgICAgICAweDAwMDAwMDQwCiNkZWZpbmUgYml0X1BSRkNIVyAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfWE9QICAgICAgICAgMHgwMDAwMDgwMAojZGVmaW5lIGJpdF9MV1AgICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgYml0X0ZNQTQgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBiaXRfVEJNICAgICAgICAgMHgwMDIwMDAwMAojZGVmaW5lIGJpdF9NV0FJVFggICAgICAweDIwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWR4IGZvciBsZWFmIDB4ODAwMDAwMDEgKi8KI2RlZmluZSBiaXRfTU1YRVhUICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9MTSAgICAgICAgICAweDIwMDAwMDAwCiNkZWZpbmUgYml0XzNETk9XUCAgICAgIDB4NDAwMDAwMDAKI2RlZmluZSBiaXRfM0ROT1cgICAgICAgMHg4MDAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVieCBmb3IgbGVhZiAweDgwMDAwMDA4ICovCiNkZWZpbmUgYml0X0NMWkVSTyAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfV0JOT0lOVkQgICAgMHgwMDAwMDIwMAoKCiNpZiBfX2kzODZfXwojZGVmaW5lIF9fY3B1aWQoX19sZWFmLCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXAogICAgX19hc20oImNwdWlkIiA6ICI9YSIoX19lYXgpLCAiPWIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgICAgICAgICAgIDogIjAiKF9fbGVhZikpCgojZGVmaW5lIF9fY3B1aWRfY291bnQoX19sZWFmLCBfX2NvdW50LCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXAogICAgX19hc20oImNwdWlkIiA6ICI9YSIoX19lYXgpLCAiPWIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgICAgICAgICAgIDogIjAiKF9fbGVhZiksICIyIihfX2NvdW50KSkKI2Vsc2UKLyogeDg2LTY0IHVzZXMgJXJieCBhcyB0aGUgYmFzZSByZWdpc3Rlciwgc28gcHJlc2VydmUgaXQuICovCiNkZWZpbmUgX19jcHVpZChfX2xlYWYsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KSBcCiAgICBfX2FzbSgiICB4Y2hncSAgJSVyYngsJXExXG4iIFwKICAgICAgICAgICIgIGNwdWlkXG4iIFwKICAgICAgICAgICIgIHhjaGdxICAlJXJieCwlcTEiIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPXIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgOiAiMCIoX19sZWFmKSkKCiNkZWZpbmUgX19jcHVpZF9jb3VudChfX2xlYWYsIF9fY291bnQsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KSBcCiAgICBfX2FzbSgiICB4Y2hncSAgJSVyYngsJXExXG4iIFwKICAgICAgICAgICIgIGNwdWlkXG4iIFwKICAgICAgICAgICIgIHhjaGdxICAlJXJieCwlcTEiIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPXIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgOiAiMCIoX19sZWFmKSwgIjIiKF9fY291bnQpKQojZW5kaWYKCnN0YXRpYyBfX2lubGluZSBpbnQgX19nZXRfY3B1aWRfbWF4ICh1bnNpZ25lZCBpbnQgX19sZWFmLCB1bnNpZ25lZCBpbnQgKl9fc2lnKQp7CiAgICB1bnNpZ25lZCBpbnQgX19lYXgsIF9fZWJ4LCBfX2VjeCwgX19lZHg7CiNpZiBfX2kzODZfXwogICAgaW50IF9fY3B1aWRfc3VwcG9ydGVkOwoKICAgIF9fYXNtKCIgIHB1c2hmbFxuIgogICAgICAgICAgIiAgcG9wbCAgICUlZWF4XG4iCiAgICAgICAgICAiICBtb3ZsICAgJSVlYXgsJSVlY3hcbiIKICAgICAgICAgICIgIHhvcmwgICAkMHgwMDIwMDAwMCwlJWVheFxuIgogICAgICAgICAgIiAgcHVzaGwgICUlZWF4XG4iCiAgICAgICAgICAiICBwb3BmbFxuIgogICAgICAgICAgIiAgcHVzaGZsXG4iCiAgICAgICAgICAiICBwb3BsICAgJSVlYXhcbiIKICAgICAgICAgICIgIG1vdmwgICAkMCwlMFxuIgogICAgICAgICAgIiAgY21wbCAgICUlZWF4LCUlZWN4XG4iCiAgICAgICAgICAiICBqZSAgICAgMWZcbiIKICAgICAgICAgICIgIG1vdmwgICAkMSwlMFxuIgogICAgICAgICAgIjE6IgogICAgICAgIDogIj1yIiAoX19jcHVpZF9zdXBwb3J0ZWQpIDogOiAiZWF4IiwgImVjeCIpOwogICAgaWYgKCFfX2NwdWlkX3N1cHBvcnRlZCkKICAgICAgICByZXR1cm4gMDsKI2VuZGlmCgogICAgX19jcHVpZChfX2xlYWYsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KTsKICAgIGlmIChfX3NpZykKICAgICAgICAqX19zaWcgPSBfX2VieDsKICAgIHJldHVybiBfX2VheDsKfQoKc3RhdGljIF9faW5saW5lIGludCBfX2dldF9jcHVpZCAodW5zaWduZWQgaW50IF9fbGVhZiwgdW5zaWduZWQgaW50ICpfX2VheCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2VieCwgdW5zaWduZWQgaW50ICpfX2VjeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2VkeCkKewogICAgdW5zaWduZWQgaW50IF9fbWF4X2xlYWYgPSBfX2dldF9jcHVpZF9tYXgoX19sZWFmICYgMHg4MDAwMDAwMCwgMCk7CgogICAgaWYgKF9fbWF4X2xlYWYgPT0gMCB8fCBfX21heF9sZWFmIDwgX19sZWFmKQogICAgICAgIHJldHVybiAwOwoKICAgIF9fY3B1aWQoX19sZWFmLCAqX19lYXgsICpfX2VieCwgKl9fZWN4LCAqX19lZHgpOwogICAgcmV0dXJuIDE7Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQgX19nZXRfY3B1aWRfY291bnQgKHVuc2lnbmVkIGludCBfX2xlYWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3N1YmxlYWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19lYXgsIHVuc2lnbmVkIGludCAqX19lYngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19lY3gsIHVuc2lnbmVkIGludCAqX19lZHgpCnsKICAgIHVuc2lnbmVkIGludCBfX21heF9sZWFmID0gX19nZXRfY3B1aWRfbWF4KF9fbGVhZiAmIDB4ODAwMDAwMDAsIDApOwoKICAgIGlmIChfX21heF9sZWFmID09IDAgfHwgX19tYXhfbGVhZiA8IF9fbGVhZikKICAgICAgICByZXR1cm4gMDsKCiAgICBfX2NwdWlkX2NvdW50KF9fbGVhZiwgX19zdWJsZWFmLCAqX19lYXgsICpfX2VieCwgKl9fZWN4LCAqX19lZHgpOwogICAgcmV0dXJuIDE7Cn0KCiNlbmRpZiAvKiBfX0NQVUlEX0ggKi8KAGtleWxvY2tlcmludHJpbi5oAC8qPT09LS0tLSBubW1pbnRyaW4uaCAtIFNTRTQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19OTU1JTlRSSU5fSAojZGVmaW5lIF9fTk1NSU5UUklOX0gKCi8qIFRvIG1hdGNoIGV4cGVjdGF0aW9ucyBvZiBnY2Mgd2UgcHV0IHRoZSBzc2U0LjIgZGVmaW5pdGlvbnMgaW50byBzbW1pbnRyaW4uaCwKICAganVzdCBpbmNsdWRlIGl0IG5vdyB0aGVuLiAgKi8KI2luY2x1ZGUgPHNtbWludHJpbi5oPgojZW5kaWYgLyogX19OTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tIHN0ZGJvb2wuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgYm9vbGVhbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1NUREJPT0xfSAojZGVmaW5lIF9fU1REQk9PTF9ICgovKiBEb24ndCBkZWZpbmUgYm9vbCwgdHJ1ZSwgYW5kIGZhbHNlIGluIEMrKywgZXhjZXB0IGFzIGEgR05VIGV4dGVuc2lvbi4gKi8KI2lmbmRlZiBfX2NwbHVzcGx1cwojZGVmaW5lIGJvb2wgX0Jvb2wKI2RlZmluZSB0cnVlIDEKI2RlZmluZSBmYWxzZSAwCiNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKLyogRGVmaW5lIF9Cb29sIGFzIGEgR05VIGV4dGVuc2lvbi4gKi8KI2RlZmluZSBfQm9vbCBib29sCiNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKLyogRm9yIEMrKzk4LCBkZWZpbmUgYm9vbCwgZmFsc2UsIHRydWUgYXMgYSBHTlUgZXh0ZW5zaW9uLiAqLwojZGVmaW5lIGJvb2wgIGJvb2wKI2RlZmluZSBmYWxzZSBmYWxzZQojZGVmaW5lIHRydWUgIHRydWUKI2VuZGlmCiNlbmRpZgoKI2RlZmluZSBfX2Jvb2xfdHJ1ZV9mYWxzZV9hcmVfZGVmaW5lZCAxCgojZW5kaWYgLyogX19TVERCT09MX0ggKi8KAC8qPT09LS0tLSB0Ym1pbnRyaW4uaCAtIFRCTSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8dGJtaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1RCTUlOVFJJTl9ICiNkZWZpbmUgX19UQk1JTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInRibSIpKSkKCiNkZWZpbmUgX19iZXh0cmlfdTMyKGEsIGIpIFwKICAoKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl9iZXh0cmlfdTMyKCh1bnNpZ25lZCBpbnQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjZmlsbF91MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiBfX2EgJiAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNpX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIF9fYSB8IH4oX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNpY191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hICYgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjbXNrX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIF9fYSBeIChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY3NfdTMyKHVuc2lnbmVkIGludCBfX2EpCnsKICByZXR1cm4gX19hIHwgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzZmlsbF91MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiBfX2EgfCAoX19hIC0gMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibHNpY191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hIHwgKF9fYSAtIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fdDFtc2tjX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIH5fX2EgfCAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX190em1za191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hICYgKF9fYSAtIDEpOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9fYmV4dHJpX3U2NChhLCBiKSBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfYmV4dHJpX3U2NCgodW5zaWduZWQgbG9uZyBsb25nKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykoYikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY2ZpbGxfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gX19hICYgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjaV91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2EgfCB+KF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjaWNfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSAmIChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY21za191NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2EgXiAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNzX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKQp7CiAgcmV0dXJuIF9fYSB8IChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc2ZpbGxfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gX19hIHwgKF9fYSAtIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzaWNfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSB8IChfX2EgLSAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX3QxbXNrY191NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiB+X19hIHwgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fdHptc2tfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSAmIChfX2EgLSAxKTsKfQojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX1RCTUlOVFJJTl9IICovCgAvKi0KICogQ29weXJpZ2h0IChjKSAyMDExIEVkIFNjaG91dGVuIDxlZEBGcmVlQlNELm9yZz4KICogICAgICAgICAgICAgICAgICAgIERhdmlkIENoaXNuYWxsIDx0aGVyYXZlbkBGcmVlQlNELm9yZz4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAogKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCiAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCiAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgogKiBTVUNIIERBTUFHRS4KICoKICogJEZyZWVCU0QkCiAqLwoKI3ByYWdtYSBvbmNlCgojaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KCi8qCiAqIEM6IERvIGl0IG91cnNlbHZlcy4KICogTm90ZSB0aGF0IHRoZSBydW50aW1lIHJlcHJlc2VudGF0aW9uIGRlZmluZWQgaGVyZSBzaG91bGQgYmUgY29tcGF0aWJsZQogKiB3aXRoIHRoZSBDKysgb25lLCBpLmUuIGFuIF9BdG9taWMoVCkgbmVlZHMgdG8gY29udGFpbiB0aGUgc2FtZQogKiBiaXRzIGFzIGEgVC4KICovCgojaW5jbHVkZSA8c3RkZGVmLmg+ICAvKiBGb3IgcHRyZGlmZl90LiAqLwojaW5jbHVkZSA8c3RkaW50Lmg+Ci8vIEluY2x1ZGUgdWNoYXIuaCBvbmx5IHdoZW4gYXZhaWxhYmxlLiAgQmlvbmljJ3Mgc3RkYXRvbWljLmggaXMgYWxzbyB1c2VkIGZvcgovLyB0aGUgaG9zdCAodmlhIGEgY29weSBpbiBwcmVidWlsdHMvY2xhbmcpIGFuZCB1Y2hhci5oIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlCi8vIGdsaWJjIHVzZWQgZm9yIHRoZSBob3N0LgojaWYgZGVmaW5lZChfX0JJT05JQ19fKQojIGluY2x1ZGUgPHVjaGFyLmg+ICAvKiBGb3IgY2hhcjE2X3QgYW5kIGNoYXIzMl90LiAgICAgICAgICAgICAgKi8KI2VuZGlmCgovKgogKiA3LjE3LjEgQXRvbWljIGxvY2stZnJlZSBtYWNyb3MuCiAqLwoKI2lmZGVmIF9fR0NDX0FUT01JQ19CT09MX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19CT09MX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX0JPT0xfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0NIQVJfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0NIQVJfTE9DS19GUkVFCQlfX0dDQ19BVE9NSUNfQ0hBUl9MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfQ0hBUjE2X1RfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0NIQVIxNl9UX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfQ0hBUjE2X1RfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0NIQVIzMl9UX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19DSEFSMzJfVF9MT0NLX0ZSRUUJX19HQ0NfQVRPTUlDX0NIQVIzMl9UX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19XQ0hBUl9UX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19XQ0hBUl9UX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfV0NIQVJfVF9MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfU0hPUlRfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX1NIT1JUX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX1NIT1JUX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19JTlRfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0lOVF9MT0NLX0ZSRUUJCV9fR0NDX0FUT01JQ19JTlRfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0xPTkdfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0xPTkdfTE9DS19GUkVFCQlfX0dDQ19BVE9NSUNfTE9OR19MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfTExPTkdfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0xMT05HX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX0xMT05HX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19QT0lOVEVSX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19QT0lOVEVSX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfUE9JTlRFUl9MT0NLX0ZSRUUKI2VuZGlmCgovKgogKiA3LjE3LjIgSW5pdGlhbGl6YXRpb24uCiAqLwoKI2RlZmluZQlBVE9NSUNfVkFSX0lOSVQodmFsdWUpCQkodmFsdWUpCiNkZWZpbmUJYXRvbWljX2luaXQob2JqLCB2YWx1ZSkJCV9fYzExX2F0b21pY19pbml0KG9iaiwgdmFsdWUpCgovKgogKiBDbGFuZyBhbmQgcmVjZW50IEdDQyBib3RoIHByb3ZpZGUgcHJlZGVmaW5lZCBtYWNyb3MgZm9yIHRoZSBtZW1vcnkKICogb3JkZXJpbmdzLiAgSWYgd2UgYXJlIHVzaW5nIGEgY29tcGlsZXIgdGhhdCBkb2Vzbid0IGRlZmluZSB0aGVtLCB1c2UgdGhlCiAqIGNsYW5nIHZhbHVlcyAtIHRoZXNlIHdpbGwgYmUgaWdub3JlZCBpbiB0aGUgZmFsbGJhY2sgcGF0aC4KICovCgojaWZuZGVmIF9fQVRPTUlDX1JFTEFYRUQKI2RlZmluZSBfX0FUT01JQ19SRUxBWEVECQkwCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0NPTlNVTUUKI2RlZmluZSBfX0FUT01JQ19DT05TVU1FCQkxCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0FDUVVJUkUKI2RlZmluZSBfX0FUT01JQ19BQ1FVSVJFCQkyCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX1JFTEVBU0UKI2RlZmluZSBfX0FUT01JQ19SRUxFQVNFCQkzCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0FDUV9SRUwKI2RlZmluZSBfX0FUT01JQ19BQ1FfUkVMCQk0CiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX1NFUV9DU1QKI2RlZmluZSBfX0FUT01JQ19TRVFfQ1NUCQk1CiNlbmRpZgoKLyoKICogNy4xNy4zIE9yZGVyIGFuZCBjb25zaXN0ZW5jeS4KICoKICogVGhlIG1lbW9yeV9vcmRlcl8qIGNvbnN0YW50cyB0aGF0IGRlbm90ZSB0aGUgYmFycmllciBiZWhhdmlvdXIgb2YgdGhlCiAqIGF0b21pYyBvcGVyYXRpb25zLgogKiBUaGUgZW51bSB2YWx1ZXMgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhvc2UgdXNlZCBieSB0aGUKICogQysrIDxhdG9taWM+IGhlYWRlci4KICovCgp0eXBlZGVmIGVudW0gewoJbWVtb3J5X29yZGVyX3JlbGF4ZWQgPSBfX0FUT01JQ19SRUxBWEVELAoJbWVtb3J5X29yZGVyX2NvbnN1bWUgPSBfX0FUT01JQ19DT05TVU1FLAoJbWVtb3J5X29yZGVyX2FjcXVpcmUgPSBfX0FUT01JQ19BQ1FVSVJFLAoJbWVtb3J5X29yZGVyX3JlbGVhc2UgPSBfX0FUT01JQ19SRUxFQVNFLAoJbWVtb3J5X29yZGVyX2FjcV9yZWwgPSBfX0FUT01JQ19BQ1FfUkVMLAoJbWVtb3J5X29yZGVyX3NlcV9jc3QgPSBfX0FUT01JQ19TRVFfQ1NUCn0gbWVtb3J5X29yZGVyOwoKLyoKICogNy4xNy40IEZlbmNlcy4KICovCgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfdGhyZWFkX2ZlbmNlKG1lbW9yeV9vcmRlciBfX29yZGVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKSB7CglfX2MxMV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fb3JkZXIpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfc2lnbmFsX2ZlbmNlKG1lbW9yeV9vcmRlciBfX29yZGVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKSB7CglfX2MxMV9hdG9taWNfc2lnbmFsX2ZlbmNlKF9fb3JkZXIpOwp9CgovKgogKiA3LjE3LjUgTG9jay1mcmVlIHByb3BlcnR5LgogKi8KCiNkZWZpbmUJYXRvbWljX2lzX2xvY2tfZnJlZShvYmopIF9fYzExX2F0b21pY19pc19sb2NrX2ZyZWUoc2l6ZW9mKCoob2JqKSkpCgovKgogKiA3LjE3LjYgQXRvbWljIGludGVnZXIgdHlwZXMuCiAqLwoKdHlwZWRlZiBfQXRvbWljKGJvb2wpCQkJYXRvbWljX2Jvb2w7CnR5cGVkZWYgX0F0b21pYyhjaGFyKQkJCWF0b21pY19jaGFyOwp0eXBlZGVmIF9BdG9taWMoc2lnbmVkIGNoYXIpCQlhdG9taWNfc2NoYXI7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBjaGFyKQkJYXRvbWljX3VjaGFyOwp0eXBlZGVmIF9BdG9taWMoc2hvcnQpCQkJYXRvbWljX3Nob3J0Owp0eXBlZGVmIF9BdG9taWModW5zaWduZWQgc2hvcnQpCQlhdG9taWNfdXNob3J0Owp0eXBlZGVmIF9BdG9taWMoaW50KQkJCWF0b21pY19pbnQ7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBpbnQpCQlhdG9taWNfdWludDsKdHlwZWRlZiBfQXRvbWljKGxvbmcpCQkJYXRvbWljX2xvbmc7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBsb25nKQkJYXRvbWljX3Vsb25nOwp0eXBlZGVmIF9BdG9taWMobG9uZyBsb25nKQkJYXRvbWljX2xsb25nOwp0eXBlZGVmIF9BdG9taWModW5zaWduZWQgbG9uZyBsb25nKQlhdG9taWNfdWxsb25nOwojaWYgZGVmaW5lZChfX0JJT05JQ19fKSB8fCAoZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkKICB0eXBlZGVmIF9BdG9taWMoY2hhcjE2X3QpCQlhdG9taWNfY2hhcjE2X3Q7CiAgdHlwZWRlZiBfQXRvbWljKGNoYXIzMl90KQkJYXRvbWljX2NoYXIzMl90OwojZW5kaWYKdHlwZWRlZiBfQXRvbWljKHdjaGFyX3QpCQlhdG9taWNfd2NoYXJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDhfdCkJCWF0b21pY19pbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2xlYXN0OF90KQlhdG9taWNfdWludF9sZWFzdDhfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDE2X3QpCWF0b21pY19pbnRfbGVhc3QxNl90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDE2X3QpCWF0b21pY191aW50X2xlYXN0MTZfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDMyX3QpCWF0b21pY19pbnRfbGVhc3QzMl90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDMyX3QpCWF0b21pY191aW50X2xlYXN0MzJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDY0X3QpCWF0b21pY19pbnRfbGVhc3Q2NF90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDY0X3QpCWF0b21pY191aW50X2xlYXN0NjRfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0OF90KQkJYXRvbWljX2ludF9mYXN0OF90Owp0eXBlZGVmIF9BdG9taWModWludF9mYXN0OF90KQkJYXRvbWljX3VpbnRfZmFzdDhfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0MTZfdCkJCWF0b21pY19pbnRfZmFzdDE2X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3QxNl90KQlhdG9taWNfdWludF9mYXN0MTZfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0MzJfdCkJCWF0b21pY19pbnRfZmFzdDMyX3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3QzMl90KQlhdG9taWNfdWludF9mYXN0MzJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0NjRfdCkJCWF0b21pY19pbnRfZmFzdDY0X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3Q2NF90KQlhdG9taWNfdWludF9mYXN0NjRfdDsKdHlwZWRlZiBfQXRvbWljKGludHB0cl90KQkJYXRvbWljX2ludHB0cl90Owp0eXBlZGVmIF9BdG9taWModWludHB0cl90KQkJYXRvbWljX3VpbnRwdHJfdDsKdHlwZWRlZiBfQXRvbWljKHNpemVfdCkJCWF0b21pY19zaXplX3Q7CnR5cGVkZWYgX0F0b21pYyhwdHJkaWZmX3QpCQlhdG9taWNfcHRyZGlmZl90Owp0eXBlZGVmIF9BdG9taWMoaW50bWF4X3QpCQlhdG9taWNfaW50bWF4X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50bWF4X3QpCQlhdG9taWNfdWludG1heF90OwoKLyoKICogNy4xNy43IE9wZXJhdGlvbnMgb24gYXRvbWljIHR5cGVzLgogKi8KCi8qCiAqIENvbXBpbGVyLXNwZWNpZmljIG9wZXJhdGlvbnMuCiAqLwoKI2RlZmluZQlhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQob2JqZWN0LCBleHBlY3RlZCwJXAogICAgZGVzaXJlZCwgc3VjY2VzcywgZmFpbHVyZSkJCQkJCQlcCglfX2MxMV9hdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcob2JqZWN0LCBleHBlY3RlZCwgZGVzaXJlZCwJXAoJICAgIHN1Y2Nlc3MsIGZhaWx1cmUpCiNkZWZpbmUJYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdChvYmplY3QsIGV4cGVjdGVkLAkJXAogICAgZGVzaXJlZCwgc3VjY2VzcywgZmFpbHVyZSkJCQkJCQlcCglfX2MxMV9hdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKG9iamVjdCwgZXhwZWN0ZWQsIGRlc2lyZWQsCVwKCSAgICBzdWNjZXNzLCBmYWlsdXJlKQojZGVmaW5lCWF0b21pY19leGNoYW5nZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG9yZGVyKQkJXAoJX19jMTFfYXRvbWljX2V4Y2hhbmdlKG9iamVjdCwgZGVzaXJlZCwgb3JkZXIpCiNkZWZpbmUJYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdChvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQkJXAoJX19jMTFfYXRvbWljX2ZldGNoX2FkZChvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQojZGVmaW5lCWF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9hbmQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikKI2RlZmluZQlhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9vcihvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQojZGVmaW5lCWF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9zdWIob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikKI2RlZmluZQlhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgb3JkZXIpCQlcCglfX2MxMV9hdG9taWNfZmV0Y2hfeG9yKG9iamVjdCwgb3BlcmFuZCwgb3JkZXIpCiNkZWZpbmUJYXRvbWljX2xvYWRfZXhwbGljaXQob2JqZWN0LCBvcmRlcikJCQkJXAoJX19jMTFfYXRvbWljX2xvYWQob2JqZWN0LCBvcmRlcikKI2RlZmluZQlhdG9taWNfc3RvcmVfZXhwbGljaXQob2JqZWN0LCBkZXNpcmVkLCBvcmRlcikJCQlcCglfX2MxMV9hdG9taWNfc3RvcmUob2JqZWN0LCBkZXNpcmVkLCBvcmRlcikKCi8qCiAqIENvbnZlbmllbmNlIGZ1bmN0aW9ucy4KICovCgojZGVmaW5lCWF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhvYmplY3QsIGV4cGVjdGVkLCBkZXNpcmVkKQlcCglhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQob2JqZWN0LCBleHBlY3RlZCwJXAoJICAgIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKG9iamVjdCwgZXhwZWN0ZWQsIGRlc2lyZWQpCQlcCglhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KG9iamVjdCwgZXhwZWN0ZWQsCQlcCgkgICAgZGVzaXJlZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19leGNoYW5nZShvYmplY3QsIGRlc2lyZWQpCQkJCVwKCWF0b21pY19leGNoYW5nZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19mZXRjaF9hZGQob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX2ZldGNoX2FuZChvYmplY3QsIG9wZXJhbmQpCQkJCVwKCWF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfZmV0Y2hfb3Iob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfZmV0Y2hfc3ViKG9iamVjdCwgb3BlcmFuZCkJCQkJXAoJYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdChvYmplY3QsIG9wZXJhbmQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19mZXRjaF94b3Iob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX2xvYWQob2JqZWN0KQkJCQkJCVwKCWF0b21pY19sb2FkX2V4cGxpY2l0KG9iamVjdCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX3N0b3JlKG9iamVjdCwgZGVzaXJlZCkJCQkJCVwKCWF0b21pY19zdG9yZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQoKLyoKICogNy4xNy44IEF0b21pYyBmbGFnIHR5cGUgYW5kIG9wZXJhdGlvbnMuCiAqCiAqIFhYWDogQXNzdW1lIGF0b21pY19ib29sIGNhbiBiZSB1c2VkIGFzIGFuIGF0b21pY19mbGFnLiBJcyB0aGVyZSBzb21lCiAqIGtpbmQgb2YgY29tcGlsZXIgYnVpbHQtaW4gdHlwZSB3ZSBjb3VsZCB1c2U/CiAqLwoKdHlwZWRlZiBzdHJ1Y3QgewoJYXRvbWljX2Jvb2wJX19mbGFnOwp9IGF0b21pY19mbGFnOwoKI2RlZmluZQlBVE9NSUNfRkxBR19JTklUCQl7IEFUT01JQ19WQVJfSU5JVChmYWxzZSkgfQoKc3RhdGljIF9faW5saW5lIGJvb2wgYXRvbWljX2ZsYWdfdGVzdF9hbmRfc2V0X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpfX29iamVjdCwgbWVtb3J5X29yZGVyIF9fb3JkZXIpIHsKCXJldHVybiAoYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KCZfX29iamVjdC0+X19mbGFnLCAxLCBfX29yZGVyKSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIGF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpfX29iamVjdCwgbWVtb3J5X29yZGVyIF9fb3JkZXIpIHsKCWF0b21pY19zdG9yZV9leHBsaWNpdCgmX19vYmplY3QtPl9fZmxhZywgMCwgX19vcmRlcik7Cn0KCnN0YXRpYyBfX2lubGluZSBib29sIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqX19vYmplY3QpIHsKCXJldHVybiAoYXRvbWljX2ZsYWdfdGVzdF9hbmRfc2V0X2V4cGxpY2l0KF9fb2JqZWN0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfZmxhZ19jbGVhcih2b2xhdGlsZSBhdG9taWNfZmxhZyAqX19vYmplY3QpIHsKCWF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KF9fb2JqZWN0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCk7Cn0KAHBwY193cmFwcGVycy9tbV9tYWxsb2MuaAAvKj09PS0tLS0gc21taW50cmluLmggLSBJbXBsZW1lbnRhdGlvbiBvZiBTU0U0IGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4KCiAgIE5PVEU6IFRoaXMgaXMgTk9UIGEgY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNTRTQgaW50cmluc2ljcyEgICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgaXMgZGlzdHJpYnV0ZWQgdG8gc2ltcGxpZnkgcG9ydGluZyB4ODZfNjQgY29kZSB0aGF0CiAgIG1ha2VzIGV4cGxpY2l0IHVzZSBvZiBJbnRlbCBpbnRyaW5zaWNzIHRvIHBvd2VycDY0L3Bvd2VycGM2NGxlLgoKICAgSXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdHMgYXJlCiAgIGFjY2VwdGFibGUgYW5kIG1ha2UgYWRkaXRpb25hbCBjaGFuZ2VzIGFzIG5lY2Vzc2FyeS4KCiAgIE5vdGUgdGhhdCBtdWNoIGNvZGUgdGhhdCB1c2VzIEludGVsIGludHJpbnNpY3MgY2FuIGJlIHJld3JpdHRlbiBpbgogICBzdGFuZGFyZCBDIG9yIEdOVSBDIGV4dGVuc2lvbnMsIHdoaWNoIGFyZSBtb3JlIHBvcnRhYmxlIGFuZCBiZXR0ZXIKICAgb3B0aW1pemVkIGFjcm9zcyBtdWx0aXBsZSB0YXJnZXRzLiAgKi8KI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgU01NSU5UUklOX0hfCiNkZWZpbmUgU01NSU5UUklOX0hfCgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKI2luY2x1ZGUgPGFsdGl2ZWMuaD4KI2luY2x1ZGUgPGVtbWludHJpbi5oPgoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fZXh0cmFjdF9lcGk4KF9fbTEyOGkgX19YLCBjb25zdCBpbnQgX19OKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKSgoX192MTZxaSlfX1gpW19fTiAmIDE1XTsKfQoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fZXh0cmFjdF9lcGkzMihfX20xMjhpIF9fWCwgY29uc3QgaW50IF9fTikgewogIHJldHVybiAoKF9fdjRzaSlfX1gpW19fTiAmIDNdOwp9CgpleHRlcm4gX19pbmxpbmUgaW50CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9leHRyYWN0X2VwaTY0KF9fbTEyOGkgX19YLCBjb25zdCBpbnQgX19OKSB7CiAgcmV0dXJuICgoX192MmRpKV9fWClbX19OICYgMV07Cn0KCmV4dGVybiBfX2lubGluZSBpbnQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2V4dHJhY3RfcHMoX19tMTI4IF9fWCwgY29uc3QgaW50IF9fTikgewogIHJldHVybiAoKF9fdjRzaSlfX1gpW19fTiAmIDNdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYmxlbmRfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBjb25zdCBpbnQgX19pbW04KSB7CiAgX192MTZxaSBfX2NoYXJtYXNrID0gdmVjX3NwbGF0cygoc2lnbmVkIGNoYXIpX19pbW04KTsKICBfX2NoYXJtYXNrID0gdmVjX2diKF9fY2hhcm1hc2spOwogIF9fdjhodSBfX3Nob3J0bWFzayA9IChfX3Y4aHUpdmVjX3VucGFja2goX19jaGFybWFzayk7CiNpZmRlZiBfX0JJR19FTkRJQU5fXwogIF9fc2hvcnRtYXNrID0gdmVjX3JldmUoX19zaG9ydG1hc2spOwojZW5kaWYKICByZXR1cm4gKF9fbTEyOGkpdmVjX3NlbCgoX192OGh1KV9fQSwgKF9fdjhodSlfX0IsIF9fc2hvcnRtYXNrKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2JsZW5kdl9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX21hc2spIHsKICBjb25zdCBfX3YxNnF1IF9fc2V2ZW4gPSB2ZWNfc3BsYXRzKCh1bnNpZ25lZCBjaGFyKTB4MDcpOwogIF9fdjE2cXUgX19sbWFzayA9IHZlY19zcmEoKF9fdjE2cXUpX19tYXNrLCBfX3NldmVuKTsKICByZXR1cm4gKF9fbTEyOGkpdmVjX3NlbCgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQiwgX19sbWFzayk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpOChfX20xMjhpIGNvbnN0IF9fQSwgaW50IGNvbnN0IF9fRCwgaW50IGNvbnN0IF9fTikgewogIF9fdjE2cWkgcmVzdWx0ID0gKF9fdjE2cWkpX19BOwogIHJlc3VsdFtfX04gJiAweGZdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpMzIoX19tMTI4aSBjb25zdCBfX0EsIGludCBjb25zdCBfX0QsIGludCBjb25zdCBfX04pIHsKICBfX3Y0c2kgcmVzdWx0ID0gKF9fdjRzaSlfX0E7CiAgcmVzdWx0W19fTiAmIDNdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpNjQoX19tMTI4aSBjb25zdCBfX0EsIGxvbmcgbG9uZyBjb25zdCBfX0QsIGludCBjb25zdCBfX04pIHsKICBfX3YyZGkgcmVzdWx0ID0gKF9fdjJkaSlfX0E7CiAgcmVzdWx0W19fTiAmIDFdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCiNlbHNlCiNpbmNsdWRlX25leHQgPHNtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIF9TTU1JTlRSSU5fSF8gKi8KAHNhbml0aXplci9kZnNhbl9pbnRlcmZhY2UuaAAgKGZzZWVrKGhhbmRsZSwgMCwgMik9AD49AHByZWZlci1yZWxhdGl2ZQBpbnZhbGlkIHJld3JpdGUgcGF0dGVybjogAGNhcHR1cmUgJWQgLT4gJWQAKCVwKQBNb25nb2xpYW4AT2xkX0h1bmdhcmlhbgBPc2FnZQBQZABXYXJhbmdfQ2l0aQBQQzogAFVuc29ydGVkIGFkZHIgbWFwIGVudHJ5OiAweCVseDogJXMgPC0+IDB4JWx4OiAlcwBSZWFkaW5nICV6ZCBieXRlcyBmcm9tIG9mZnNldCAlanUgcmV0dXJuZWQgJXpkIHdoaWNoIGlzIG5vdCBhIG11bHRpcGxlIG9mICV6dS4AYmFzZSAhPSBrSW52YWxpZEJhc2UAbWF5IG5vdCBkZWxldGUgZGVmYXVsdCBhcmVuYQByZWdpb24tPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBsb25nAGNoYXIzMl90AG1MAG5lAFN0AFBFUk1JU1NJT05fREVOSUVEACFvaygpAFN0cmluZyBjYW5ub3QgZW5kIHdpdGggXABleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC90aHJvd19kZWxlZ2F0ZS5jYwAwWABleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9udW1iZXJzLmNjAGNvbmRpdGlvbiB1bnRydWUgb24gcmV0dXJuIGZyb20gQXdhaXQARW5xdWV1ZSB0byBlbXB0eSBsaXN0IGZhaWxlZAB3YWl0ZXJzIGRpc2FwcGVhcmVkIGR1cmluZyBFbnF1ZXVlKCkhAFVud2FpdAAjdHJhbnM9AGZhaWxlZCB0byBzZXQgRkRfQ0xPRVhFQyBvbiB1cmFuZG9tIGZkAApDYWxjdWxhdGVkOiAAYnVpbHQgb246IG4vYQBTU0wgcm91dGluZXMAVXNlciBkZWZpbmVkIGZ1bmN0aW9ucwBtYWxsb2MgZmFpbHVyZQBleHRlcm5hbC9wcm90b2J1Zi9zcmMvZ29vZ2xlL3Byb3RvYnVmL21hcF9maWVsZC5oACAgRXhwZWN0ZWQgOiAAa3l0aGUucHJvdG8uU2NhblJlcXVlc3QuZmFjdF9wcmVmaXgALVhhbmFseXplcgAua3ppcAAvAENhbid0IGdldCB3b3JraW5nIGRpcmVjdG9yeTogAC4Aa3l0aGVfbWV0YWRhdGEARm91bmQgbnVsbCBmaWxlOiAAU2VhcmNoIHBhdGggd2FzIABTeXNyb290IHNldCB0byAAI3VuZGVmAF9fY2xhbmdfY3VkYV9kZXZpY2VfZnVuY3Rpb25zLmgALyo9PT0tLS0tIGFybV9hY2xlLmggLSBBUk0gTm9uLU5lb24gaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FSTV9BQ0xFX0gKI2RlZmluZSBfX0FSTV9BQ0xFX0gKCiNpZm5kZWYgX19BUk1fQUNMRQojZXJyb3IgIkFDTEUgaW50cmluc2ljcyBzdXBwb3J0IG5vdCBlbmFibGVkLiIKI2VuZGlmCgojaW5jbHVkZSA8c3RkaW50Lmg+CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLyogOCBTWU5DSFJPTklaQVRJT04sIEJBUlJJRVIgQU5EIEhJTlQgSU5UUklOU0lDUyAqLwovKiA4LjMgTWVtb3J5IGJhcnJpZXJzICovCiNpZiAhX19oYXNfYnVpbHRpbihfX2RtYikKI2RlZmluZSBfX2RtYihpKSBfX2J1aWx0aW5fYXJtX2RtYihpKQojZW5kaWYKI2lmICFfX2hhc19idWlsdGluKF9fZHNiKQojZGVmaW5lIF9fZHNiKGkpIF9fYnVpbHRpbl9hcm1fZHNiKGkpCiNlbmRpZgojaWYgIV9faGFzX2J1aWx0aW4oX19pc2IpCiNkZWZpbmUgX19pc2IoaSkgX19idWlsdGluX2FybV9pc2IoaSkKI2VuZGlmCgovKiA4LjQgSGludHMgKi8KCiNpZiAhX19oYXNfYnVpbHRpbihfX3dmaSkKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKSBfX3dmaSh2b2lkKSB7CiAgX19idWlsdGluX2FybV93ZmkoKTsKfQojZW5kaWYKCiNpZiAhX19oYXNfYnVpbHRpbihfX3dmZSkKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKSBfX3dmZSh2b2lkKSB7CiAgX19idWlsdGluX2FybV93ZmUoKTsKfQojZW5kaWYKCiNpZiAhX19oYXNfYnVpbHRpbihfX3NldikKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKSBfX3Nldih2b2lkKSB7CiAgX19idWlsdGluX2FybV9zZXYoKTsKfQojZW5kaWYKCiNpZiAhX19oYXNfYnVpbHRpbihfX3NldmwpCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkgX19zZXZsKHZvaWQpIHsKICBfX2J1aWx0aW5fYXJtX3NldmwoKTsKfQojZW5kaWYKCiNpZiAhX19oYXNfYnVpbHRpbihfX3lpZWxkKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpIF9feWllbGQodm9pZCkgewogIF9fYnVpbHRpbl9hcm1feWllbGQoKTsKfQojZW5kaWYKCiNpZiBfX0FSTV8zMkJJVF9TVEFURQojZGVmaW5lIF9fZGJnKHQpIF9fYnVpbHRpbl9hcm1fZGJnKHQpCiNlbmRpZgoKLyogOC41IFN3YXAgKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zd3AodWludDMyX3QgX194LCB2b2xhdGlsZSB1aW50MzJfdCAqX19wKSB7CiAgdWludDMyX3QgdjsKICBkbwogICAgdiA9IF9fYnVpbHRpbl9hcm1fbGRyZXgoX19wKTsKICB3aGlsZSAoX19idWlsdGluX2FybV9zdHJleChfX3gsIF9fcCkpOwogIHJldHVybiB2Owp9CgovKiA4LjYgTWVtb3J5IHByZWZldGNoIGludHJpbnNpY3MgKi8KLyogOC42LjEgRGF0YSBwcmVmZXRjaCAqLwojZGVmaW5lIF9fcGxkKGFkZHIpIF9fcGxkeCgwLCAwLCAwLCBhZGRyKQoKI2lmIF9fQVJNXzMyQklUX1NUQVRFCiNkZWZpbmUgX19wbGR4KGFjY2Vzc19raW5kLCBjYWNoZV9sZXZlbCwgcmV0ZW50aW9uX3BvbGljeSwgYWRkcikgXAogIF9fYnVpbHRpbl9hcm1fcHJlZmV0Y2goYWRkciwgYWNjZXNzX2tpbmQsIDEpCiNlbHNlCiNkZWZpbmUgX19wbGR4KGFjY2Vzc19raW5kLCBjYWNoZV9sZXZlbCwgcmV0ZW50aW9uX3BvbGljeSwgYWRkcikgXAogIF9fYnVpbHRpbl9hcm1fcHJlZmV0Y2goYWRkciwgYWNjZXNzX2tpbmQsIGNhY2hlX2xldmVsLCByZXRlbnRpb25fcG9saWN5LCAxKQojZW5kaWYKCi8qIDguNi4yIEluc3RydWN0aW9uIHByZWZldGNoICovCiNkZWZpbmUgX19wbGkoYWRkcikgX19wbGl4KDAsIDAsIGFkZHIpCgojaWYgX19BUk1fMzJCSVRfU1RBVEUKI2RlZmluZSBfX3BsaXgoY2FjaGVfbGV2ZWwsIHJldGVudGlvbl9wb2xpY3ksIGFkZHIpIFwKICBfX2J1aWx0aW5fYXJtX3ByZWZldGNoKGFkZHIsIDAsIDApCiNlbHNlCiNkZWZpbmUgX19wbGl4KGNhY2hlX2xldmVsLCByZXRlbnRpb25fcG9saWN5LCBhZGRyKSBcCiAgX19idWlsdGluX2FybV9wcmVmZXRjaChhZGRyLCAwLCBjYWNoZV9sZXZlbCwgcmV0ZW50aW9uX3BvbGljeSwgMCkKI2VuZGlmCgovKiA4LjcgTk9QICovCiNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgIWRlZmluZWQoX19hYXJjaDY0X18pCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkgX19ub3Aodm9pZCkgewogIF9fYnVpbHRpbl9hcm1fbm9wKCk7Cn0KI2VuZGlmCgovKiA5IERBVEEtUFJPQ0VTU0lORyBJTlRSSU5TSUNTICovCi8qIDkuMiBNaXNjZWxsYW5lb3VzIGRhdGEtcHJvY2Vzc2luZyBpbnRyaW5zaWNzICovCi8qIFJPUiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Jvcih1aW50MzJfdCBfX3gsIHVpbnQzMl90IF9feSkgewogIF9feSAlPSAzMjsKICBpZiAoX195ID09IDApCiAgICByZXR1cm4gX194OwogIHJldHVybiAoX194ID4+IF9feSkgfCAoX194IDw8ICgzMiAtIF9feSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JvcmxsKHVpbnQ2NF90IF9feCwgdWludDMyX3QgX195KSB7CiAgX195ICU9IDY0OwogIGlmIChfX3kgPT0gMCkKICAgIHJldHVybiBfX3g7CiAgcmV0dXJuIChfX3ggPj4gX195KSB8IChfX3ggPDwgKDY0IC0gX195KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yb3JsKHVuc2lnbmVkIGxvbmcgX194LCB1aW50MzJfdCBfX3kpIHsKI2lmIF9fU0laRU9GX0xPTkdfXyA9PSA0CiAgcmV0dXJuIF9fcm9yKF9feCwgX195KTsKI2Vsc2UKICByZXR1cm4gX19yb3JsbChfX3gsIF9feSk7CiNlbmRpZgp9CgoKLyogQ0xaICovCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY2x6KHVpbnQzMl90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fY2x6KF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHpsKHVuc2lnbmVkIGxvbmcgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jbHpsKF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY2x6bGwodWludDY0X3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jbHpsbChfX3QpOwp9CgovKiBDTFMgKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHModWludDMyX3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY2xzKF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY2xzbCh1bnNpZ25lZCBsb25nIF9fdCkgewojaWYgX19TSVpFT0ZfTE9OR19fID09IDQKICByZXR1cm4gX19idWlsdGluX2FybV9jbHMoX190KTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FybV9jbHM2NChfX3QpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHNsbCh1aW50NjRfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jbHM2NChfX3QpOwp9CgovKiBSRVYgKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXYodWludDMyX3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDMyKF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXZsKHVuc2lnbmVkIGxvbmcgX190KSB7CiNpZiBfX1NJWkVPRl9MT05HX18gPT0gNAogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMihfX3QpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NChfX3QpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdWludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXZsbCh1aW50NjRfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwNjQoX190KTsKfQoKLyogUkVWMTYgKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXYxNih1aW50MzJfdCBfX3QpIHsKICByZXR1cm4gX19yb3IoX19yZXYoX190KSwgMTYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JldjE2bGwodWludDY0X3QgX190KSB7CiAgcmV0dXJuICgoKHVpbnQ2NF90KV9fcmV2MTYoX190ID4+IDMyKSkgPDwgMzIpIHwgX19yZXYxNihfX3QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcmV2MTZsKHVuc2lnbmVkIGxvbmcgX190KSB7CiNpZiBfX1NJWkVPRl9MT05HX18gPT0gNAogICAgcmV0dXJuIF9fcmV2MTYoX190KTsKI2Vsc2UKICAgIHJldHVybiBfX3JldjE2bGwoX190KTsKI2VuZGlmCn0KCi8qIFJFVlNIICovCnN0YXRpYyBfX2lubGluZV9fIGludDE2X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXZzaChpbnQxNl90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAxNihfX3QpOwp9CgovKiBSQklUICovCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcmJpdCh1aW50MzJfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9yYml0KF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcmJpdGxsKHVpbnQ2NF90IF9fdCkgewojaWYgX19BUk1fMzJCSVRfU1RBVEUKICByZXR1cm4gKCgodWludDY0X3QpX19idWlsdGluX2FybV9yYml0KF9fdCkpIDw8IDMyKSB8CiAgICAgICAgIF9fYnVpbHRpbl9hcm1fcmJpdChfX3QgPj4gMzIpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYXJtX3JiaXQ2NChfX3QpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JiaXRsKHVuc2lnbmVkIGxvbmcgX190KSB7CiNpZiBfX1NJWkVPRl9MT05HX18gPT0gNAogIHJldHVybiBfX3JiaXQoX190KTsKI2Vsc2UKICByZXR1cm4gX19yYml0bGwoX190KTsKI2VuZGlmCn0KCi8qCiAqIDkuMyAxNi1iaXQgbXVsdGlwbGljYXRpb25zCiAqLwojaWYgX19BUk1fRkVBVFVSRV9EU1AKc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bGJiKGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWxiYihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bGJ0KGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWxidChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bHRiKGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWx0YihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bHR0KGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWx0dChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bHdiKGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWx3YihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXyxfX25vZGVidWdfXykpCl9fc211bHd0KGludDMyX3QgX19hLCBpbnQzMl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWx3dChfX2EsIF9fYik7Cn0KI2VuZGlmCgovKgogKiA5LjQgU2F0dXJhdGluZyBpbnRyaW5zaWNzCiAqCiAqIEZJWE1FOiBDaGFuZ2UgZ3VhcmQgdG8gdGhlaXIgY29ycm9zcG9uZGluZyBfX0FSTV9GRUFUVVJFIGZsYWcgd2hlbiBRIGZsYWcKICogaW50cmluc2ljcyBhcmUgaW1wbGVtZW50ZWQgYW5kIHRoZSBmbGFnIGlzIGVuYWJsZWQuCiAqLwovKiA5LjQuMSBXaWR0aC1zcGVjaWZpZWQgc2F0dXJhdGlvbiBpbnRyaW5zaWNzICovCiNpZiBfX0FSTV9GRUFUVVJFX1NBVAojZGVmaW5lIF9fc3NhdCh4LCB5KSBfX2J1aWx0aW5fYXJtX3NzYXQoeCwgeSkKI2RlZmluZSBfX3VzYXQoeCwgeSkgX19idWlsdGluX2FybV91c2F0KHgsIHkpCiNlbmRpZgoKLyogOS40LjIgU2F0dXJhdGluZyBhZGRpdGlvbiBhbmQgc3VidHJhY3Rpb24gaW50cmluc2ljcyAqLwojaWYgX19BUk1fRkVBVFVSRV9EU1AKc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3FhZGQoaW50MzJfdCBfX3QsIGludDMyX3QgX192KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcWFkZChfX3QsIF9fdik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19xc3ViKGludDMyX3QgX190LCBpbnQzMl90IF9fdikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FzdWIoX190LCBfX3YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcWRibChpbnQzMl90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FhZGQoX190LCBfX3QpOwp9CiNlbmRpZgoKLyogOS40LjMgQWNjdW11bHRhdGluZyBtdWx0aXBsaWNhdGlvbnMgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfRFNQCnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhYmIoaW50MzJfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbGFiYihfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYWJ0KGludDMyX3QgX19hLCBpbnQzMl90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhYnQoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGF0YihpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYXRiKF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhdHQoaW50MzJfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbGF0dChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYXdiKGludDMyX3QgX19hLCBpbnQzMl90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhd2IoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGF3dChpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYXd0KF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKCi8qIDkuNS40IFBhcmFsbGVsIDE2LWJpdCBzYXR1cmF0aW9uICovCiNpZiBfX0FSTV9GRUFUVVJFX1NJTUQzMgojZGVmaW5lIF9fc3NhdDE2KHgsIHkpIF9fYnVpbHRpbl9hcm1fc3NhdDE2KHgsIHkpCiNkZWZpbmUgX191c2F0MTYoeCwgeSkgX19idWlsdGluX2FybV91c2F0MTYoeCwgeSkKI2VuZGlmCgovKiA5LjUuNSBQYWNraW5nIGFuZCB1bnBhY2tpbmcgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0lNRDMyCnR5cGVkZWYgaW50MzJfdCBpbnQ4eDRfdDsKdHlwZWRlZiBpbnQzMl90IGludDE2eDJfdDsKdHlwZWRlZiB1aW50MzJfdCB1aW50OHg0X3Q7CnR5cGVkZWYgdWludDMyX3QgdWludDE2eDJfdDsKCnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3N4dGFiMTYoaW50MTZ4Ml90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3h0YWIxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc3h0YjE2KGludDh4NF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3N4dGIxNihfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3V4dGFiMTYoaW50MTZ4Ml90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXh0YWIxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXh0YjE2KGludDh4NF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3V4dGIxNihfX2EpOwp9CiNlbmRpZgoKLyogOS41LjYgUGFyYWxsZWwgc2VsZWN0aW9uICovCiNpZiBfX0FSTV9GRUFUVVJFX1NJTUQzMgpzdGF0aWMgX19pbmxpbmVfXyB1aW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zZWwodWludDh4NF90IF9fYSwgdWludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NlbChfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiA5LjUuNyBQYXJhbGxlbCA4LWJpdCBhZGRpdGlvbiBhbmQgc3VidHJhY3Rpb24gKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0lNRDMyCnN0YXRpYyBfX2lubGluZV9fIGludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcWFkZDgoaW50OHg0X3QgX19hLCBpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9xYWRkOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19xc3ViOChpbnQ4eDRfdCBfX2EsIGludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FzdWI4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NhZGQ4KGludDh4NF90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2FkZDgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2hhZGQ4KGludDh4NF90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hhZGQ4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Noc3ViOChpbnQ4eDRfdCBfX2EsIGludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Noc3ViOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zc3ViOChpbnQ4eDRfdCBfX2EsIGludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NzdWI4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191YWRkOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWFkZDgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VoYWRkOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhhZGQ4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191aHN1YjgodWludDh4NF90IF9fYSwgdWludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Voc3ViOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXFhZGQ4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91cWFkZDgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Vxc3ViOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXFzdWI4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191c3ViOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXN1YjgoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogOS41LjggU3VtIG9mIDgtYml0IGFic29sdXRlIGRpZmZlcmVuY2VzICovCiNpZiBfX0FSTV9GRUFUVVJFX1NJTUQzMgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VzYWQ4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91c2FkOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191c2FkYTgodWludDh4NF90IF9fYSwgdWludDh4NF90IF9fYiwgdWludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXNhZGE4KF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogOS41LjkgUGFyYWxsZWwgMTYtYml0IGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiAqLwojaWYgX19BUk1fRkVBVFVSRV9TSU1EMzIKc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcWFkZDE2KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9xYWRkMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Fhc3goaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Fhc3goX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3FzYXgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3FzdWIxNihpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcXN1YjE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zYWRkMTYoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2FzeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2FzeChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2hhZGQxNihpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2hhc3goaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NoYXN4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zaHNheChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Noc3ViMTYoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Noc3ViMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NzYXgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NzdWIxNihpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3N1YjE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWFkZDE2KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Vhc3godWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWFzeChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VoYWRkMTYodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VoYXN4KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VoYXN4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWhzYXgodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191aHN1YjE2KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Voc3ViMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191cWFkZDE2KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VxYWRkMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191cWFzeCh1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91cWFzeChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Vxc2F4KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Vxc2F4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXFzdWIxNih1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91cXN1YjE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXNheCh1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91c2F4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXN1YjE2KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VzdWIxNihfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiA5LjUuMTAgUGFyYWxsZWwgMTYtYml0IG11bHRpcGxpY2F0aW9ucyAqLwojaWYgX19BUk1fRkVBVFVSRV9TSU1EMzIKc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGFkKGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYWQoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGFkeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbGFkeChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYWxkKGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IsIGludDY0X3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYWxkKF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhbGR4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IsIGludDY0X3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYWxkeChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sc2QoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxzZChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sc2R4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sc2R4KF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxzbGQoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50NjRfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxzbGQoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbHNsZHgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50NjRfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxzbGR4KF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbXVhZChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211YWQoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbXVhZHgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdWFkeChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtdXNkKGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbXVzZChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtdXNkeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211c2R4KF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIDkuNyBDUkMzMiBpbnRyaW5zaWNzICovCiNpZiBfX0FSTV9GRUFUVVJFX0NSQzMyCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJiKHVpbnQzMl90IF9fYSwgdWludDhfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jcmMzMmIoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NyYzMyaCh1aW50MzJfdCBfX2EsIHVpbnQxNl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJ3KHVpbnQzMl90IF9fYSwgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY3JjMzJ3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jcmMzMmQodWludDMyX3QgX19hLCB1aW50NjRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jcmMzMmQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NyYzMyY2IodWludDMyX3QgX19hLCB1aW50OF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyY2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NyYzMyY2godWludDMyX3QgX19hLCB1aW50MTZfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jcmMzMmNoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jcmMzMmN3KHVpbnQzMl90IF9fYSwgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY3JjMzJjdyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJjZCh1aW50MzJfdCBfX2EsIHVpbnQ2NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyY2QoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogQXJtdjguMy1BIEphdmFzY3JpcHQgY29udmVyc2lvbiBpbnRyaW5zaWMgKi8KI2lmIF9fQVJNXzY0QklUX1NUQVRFICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9KQ1ZUKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9famN2dChkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1famN2dChfX2EpOwp9CiNlbmRpZgoKLyogQXJtdjguNS1BIEZQIHJvdW5kaW5nIGludHJpbnNpY3MgKi8KI2lmIF9fQVJNXzY0QklUX1NUQVRFICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUklOVCkKc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19mcmludDMyemYoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZnJpbnQzMnpmKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50MzJ6KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDMyeihfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50NjR6ZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDY0emYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fZnJpbnQ2NHooZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2ZyaW50NjR6KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fZnJpbnQzMnhmKGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2ZyaW50MzJ4ZihfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19mcmludDMyeChkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZnJpbnQzMngoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19mcmludDY0eGYoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZnJpbnQ2NHhmKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50NjR4KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDY0eChfX2EpOwp9CiNlbmRpZgoKLyogQXJtdjguNy1BIGxvYWQvc3RvcmUgNjQtYnl0ZSBpbnRyaW5zaWNzICovCiNpZiBfX0FSTV82NEJJVF9TVEFURSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfTFM2NCkKdHlwZWRlZiBzdHJ1Y3QgewogICAgdWludDY0X3QgdmFsWzhdOwp9IGRhdGE1MTJfdDsKCnN0YXRpYyBfX2lubGluZV9fIGRhdGE1MTJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2FybV9sZDY0Yihjb25zdCB2b2lkICpfX2FkZHIpIHsKICAgIGRhdGE1MTJfdCBfX3ZhbHVlOwogICAgX19idWlsdGluX2FybV9sZDY0YihfX2FkZHIsIF9fdmFsdWUudmFsKTsKICAgIHJldHVybiBfX3ZhbHVlOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19hcm1fc3Q2NGIodm9pZCAqX19hZGRyLCBkYXRhNTEyX3QgX192YWx1ZSkgewogICAgX19idWlsdGluX2FybV9zdDY0YihfX2FkZHIsIF9fdmFsdWUudmFsKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2FybV9zdDY0YnYodm9pZCAqX19hZGRyLCBkYXRhNTEyX3QgX192YWx1ZSkgewogICAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3Q2NGJ2KF9fYWRkciwgX192YWx1ZS52YWwpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYXJtX3N0NjRidjAodm9pZCAqX19hZGRyLCBkYXRhNTEyX3QgX192YWx1ZSkgewogICAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3Q2NGJ2MChfX2FkZHIsIF9fdmFsdWUudmFsKTsKfQojZW5kaWYKCi8qIDEwLjEgU3BlY2lhbCByZWdpc3RlciBpbnRyaW5zaWNzICovCiNkZWZpbmUgX19hcm1fcnNyKHN5c3JlZykgX19idWlsdGluX2FybV9yc3Ioc3lzcmVnKQojZGVmaW5lIF9fYXJtX3JzcjY0KHN5c3JlZykgX19idWlsdGluX2FybV9yc3I2NChzeXNyZWcpCiNkZWZpbmUgX19hcm1fcnNycChzeXNyZWcpIF9fYnVpbHRpbl9hcm1fcnNycChzeXNyZWcpCiNkZWZpbmUgX19hcm1fcnNyZihzeXNyZWcpIF9fYnVpbHRpbl9iaXRfY2FzdChmbG9hdCwgX19hcm1fcnNyKHN5c3JlZykpCiNkZWZpbmUgX19hcm1fcnNyZjY0KHN5c3JlZykgX19idWlsdGluX2JpdF9jYXN0KGRvdWJsZSwgX19hcm1fcnNyNjQoc3lzcmVnKSkKI2RlZmluZSBfX2FybV93c3Ioc3lzcmVnLCB2KSBfX2J1aWx0aW5fYXJtX3dzcihzeXNyZWcsIHYpCiNkZWZpbmUgX19hcm1fd3NyNjQoc3lzcmVnLCB2KSBfX2J1aWx0aW5fYXJtX3dzcjY0KHN5c3JlZywgdikKI2RlZmluZSBfX2FybV93c3JwKHN5c3JlZywgdikgX19idWlsdGluX2FybV93c3JwKHN5c3JlZywgdikKI2RlZmluZSBfX2FybV93c3JmKHN5c3JlZywgdikgX19hcm1fd3NyKHN5c3JlZywgX19idWlsdGluX2JpdF9jYXN0KHVpbnQzMl90LCB2KSkKI2RlZmluZSBfX2FybV93c3JmNjQoc3lzcmVnLCB2KSBfX2FybV93c3I2NChzeXNyZWcsIF9fYnVpbHRpbl9iaXRfY2FzdCh1aW50NjRfdCwgdikpCgovKiBNZW1vcnkgVGFnZ2luZyBFeHRlbnNpb25zIChNVEUpIEludHJpbnNpY3MgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfTUVNT1JZX1RBR0dJTkcKI2RlZmluZSBfX2FybV9tdGVfY3JlYXRlX3JhbmRvbV90YWcoX19wdHIsIF9fbWFzaykgIF9fYnVpbHRpbl9hcm1faXJnKF9fcHRyLCBfX21hc2spCiNkZWZpbmUgX19hcm1fbXRlX2luY3JlbWVudF90YWcoX19wdHIsIF9fdGFnX29mZnNldCkgIF9fYnVpbHRpbl9hcm1fYWRkZyhfX3B0ciwgX190YWdfb2Zmc2V0KQojZGVmaW5lIF9fYXJtX210ZV9leGNsdWRlX3RhZyhfX3B0ciwgX19leGNsdWRlZCkgIF9fYnVpbHRpbl9hcm1fZ21pKF9fcHRyLCBfX2V4Y2x1ZGVkKQojZGVmaW5lIF9fYXJtX210ZV9nZXRfdGFnKF9fcHRyKSBfX2J1aWx0aW5fYXJtX2xkZyhfX3B0cikKI2RlZmluZSBfX2FybV9tdGVfc2V0X3RhZyhfX3B0cikgX19idWlsdGluX2FybV9zdGcoX19wdHIpCiNkZWZpbmUgX19hcm1fbXRlX3B0cmRpZmYoX19wdHJhLCBfX3B0cmIpIF9fYnVpbHRpbl9hcm1fc3VicChfX3B0cmEsIF9fcHRyYikKI2VuZGlmCgovKiBUcmFuc2FjdGlvbmFsIE1lbW9yeSBFeHRlbnNpb24gKFRNRSkgSW50cmluc2ljcyAqLwojaWYgX19BUk1fRkVBVFVSRV9UTUUKCiNkZWZpbmUgX1RNRkFJTFVSRV9SRUFTT04gIDB4MDAwMDdmZmZ1CiNkZWZpbmUgX1RNRkFJTFVSRV9SVFJZICAgIDB4MDAwMDgwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9DTkNMICAgIDB4MDAwMTAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9NRU0gICAgIDB4MDAwMjAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9JTVAgICAgIDB4MDAwNDAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9FUlIgICAgIDB4MDAwODAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9TSVpFICAgIDB4MDAxMDAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9ORVNUICAgIDB4MDAyMDAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9EQkcgICAgIDB4MDA0MDAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9JTlQgICAgIDB4MDA4MDAwMDB1CiNkZWZpbmUgX1RNRkFJTFVSRV9UUklWSUFMIDB4MDEwMDAwMDB1CgojZGVmaW5lIF9fdHN0YXJ0KCkgICAgICAgIF9fYnVpbHRpbl9hcm1fdHN0YXJ0KCkKI2RlZmluZSBfX3Rjb21taXQoKSAgICAgICBfX2J1aWx0aW5fYXJtX3Rjb21taXQoKQojZGVmaW5lIF9fdGNhbmNlbChfX2FyZykgIF9fYnVpbHRpbl9hcm1fdGNhbmNlbChfX2FyZykKI2RlZmluZSBfX3R0ZXN0KCkgICAgICAgICBfX2J1aWx0aW5fYXJtX3R0ZXN0KCkKCiNlbmRpZiAvKiBfX0FSTV9GRUFUVVJFX1RNRSAqLwoKLyogQXJtdjguNS1BIFJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpbnRyaW5zaWNzICovCiNpZiBfX0FSTV82NEJJVF9TVEFURSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfUk5HKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19ybmRyKHVpbnQ2NF90ICpfX3ApIHsKICByZXR1cm4gX19idWlsdGluX2FybV9ybmRyKF9fcCk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcm5kcnJzKHVpbnQ2NF90ICpfX3ApIHsKICByZXR1cm4gX19idWlsdGluX2FybV9ybmRycnMoX19wKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9CiNlbmRpZgoKI2VuZGlmIC8qIF9fQVJNX0FDTEVfSCAqLwoAYXZ4NTEyZHFpbnRyaW4uaAAvKj09PS0tLS0gYXZ4NTEydmxpbnRyaW4uaCAtIEFWWDUxMlZMIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZsaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZMSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMSU5UUklOX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmwiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmwiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCgp0eXBlZGVmIHNob3J0IF9fdjJoaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNCkpKTsKdHlwZWRlZiBjaGFyIF9fdjRxaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNCkpKTsKdHlwZWRlZiBjaGFyIF9fdjJxaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMikpKTsKCi8qIEludGVnZXIgY29tcGFyZSAqLwoKI2RlZmluZSBfbW1fY21wZXFfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fbWFza19jbXBnZV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwaTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fY21wbGVfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fbWFza19jbXBsdF9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW0yNTZfY21wZXFfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBnZV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwaTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfY21wbGVfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsdF9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW1fY21wZXFfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fbWFza19jbXBnZV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwdTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fY21wbGVfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fbWFza19jbXBsdF9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW0yNTZfY21wZXFfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBnZV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwdTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfY21wbGVfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsdF9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW1fY21wZXFfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fbWFza19jbXBnZV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwaTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fY21wbGVfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fbWFza19jbXBsdF9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW0yNTZfY21wZXFfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBnZV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwaTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfY21wbGVfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsdF9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW1fY21wZXFfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fbWFza19jbXBnZV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwdTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fY21wbGVfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fbWFza19jbXBsdF9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW0yNTZfY21wZXFfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBnZV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwdTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfY21wbGVfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsdF9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYWRkX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9hZGRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYWRkX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3ViX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zdWJfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3ViX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3ViX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zdWJfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3ViX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fYWRkX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hZGRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fYWRkX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3ViX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zdWJfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3ViX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3ViX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zdWJfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3ViX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tdWxfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxfZXBpMzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbXVsX2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tdWxfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfZXBpMzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbXVsX2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsX2VwdTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tdWxfZXB1MzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxfZXB1MzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbXVsX2VwdTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsX2VwdTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tdWxfZXB1MzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfZXB1MzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbXVsX2VwdTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bGxvX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X211bGxvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsbG9fZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X211bGxvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsbG9fZXBpMzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbXVsbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxsb19lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbXVsbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hbmRfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSAmIChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYW5kX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hbmRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hbmRfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX21tMjU2X21hc2tfYW5kX2VwaTMyKF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYW5kX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjRzdSlfX2EgJiAoX192NHN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FuZF9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fYW5kX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYW5kX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9tbV9tYXNrX2FuZF9lcGkzMihfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FuZG5vdF9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpKH4oX192OHN1KV9fQSAmIChfX3Y4c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYW5kbm90X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hbmRub3RfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hbmRub3RfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX21tMjU2X21hc2tfYW5kbm90X2VwaTMyKF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2FuZG5vdF9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpKH4oX192NHN1KV9fQSAmIChfX3Y0c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kbm90X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hbmRub3RfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRub3RfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfYW5kbm90X2VwaTMyKF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfb3JfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSB8IChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfb3JfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9vcl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X29yX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9tYXNrX29yX2VwaTMyKF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fb3JfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192NHN1KV9fYSB8IChfX3Y0c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfb3JfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX29yX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfb3JfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfb3JfZXBpMzIoX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl94b3JfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSBeIChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfeG9yX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl94b3JfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel94b3JfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX21tMjU2X21hc2tfeG9yX2VwaTMyKF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1feG9yX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjRzdSlfX2EgXiAoX192NHN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3hvcl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1feG9yX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfeG9yX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9tbV9tYXNrX3hvcl9lcGkzMihfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FuZF9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZHUpX19hICYgKF9fdjRkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2FuZF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza19hbmRfZXBpNjQoX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9hbmRfZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MmR1KV9fYSAmIChfX3YyZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hbmRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfYW5kX2VwaTY0KF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYW5kbm90X2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkofihfX3Y0ZHUpX19BICYgKF9fdjRkdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRub3RfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2FuZG5vdF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZG5vdF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza19hbmRub3RfZXBpNjQoX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYW5kbm90X2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkofihfX3YyZHUpX19BICYgKF9fdjJkdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hbmRub3RfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2FuZG5vdF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FuZG5vdF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfbW1fbWFza19hbmRub3RfZXBpNjQoX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9vcl9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZHUpX19hIHwgKF9fdjRkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19vcl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfb3JfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9vcl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza19vcl9lcGk2NChfbW0yNTZfc2V0emVyb19zaTI1NigpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX29yX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgfCAoX192MmR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX29yX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9vcl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X29yX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9tbV9tYXNrX29yX2VwaTY0KF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfeG9yX2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkdSlfX2EgXiAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3hvcl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfeG9yX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfeG9yX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9tYXNrX3hvcl9lcGk2NChfbW0yNTZfc2V0emVyb19zaTI1NigpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3hvcl9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZHUpX19hIF4gKF9fdjJkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza194b3JfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsCiAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1feG9yX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfeG9yX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9tbV9tYXNrX3hvcl9lcGk2NChfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSwgX19CKTsKfQoKI2RlZmluZSBfbW1fY21wX2VwaTMyX21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX2VwaTMyX21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfZXB1MzJfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXB1MzJfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tMjU2X2NtcF9lcGkzMl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcGQyNTZfbWFzaygoX192OHNpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcGQyNTZfbWFzaygoX192OHNpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwdTMyX21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfdWNtcGQyNTZfbWFzaygoX192OHNpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX2VwdTMyX21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfdWNtcGQyNTZfbWFzaygoX192OHNpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfZXBpNjRfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21hc2soKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXBpNjRfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBxMTI4X21hc2soKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9lcHU2NF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2soKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxMTI4X21hc2soKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwaTY0X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX2VwaTY0X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXB1NjRfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXB1NjRfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wcTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tMjU2X2NtcF9wc19tYXNrKGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX3BzX21hc2sobSwgYSwgYiwgcCkgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tMjU2X2NtcF9wZF9tYXNrKGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfcGRfbWFzayhtLCBhLCBiLCBwKSAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfcHNfbWFzayhhLCBiLCBwKSAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9wc19tYXNrKG0sIGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfcGRfbWFzayhhLCBiLCBwKSAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3BkX21hc2sobSwgYSwgYiwgcCkgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRfcGQoX19tMTI4ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1Yl9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1hZGRfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKC0oX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgtKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubXN1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoLShfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbWFkZF9wZChfX20yNTZkIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZtYWRkX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1hZGRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Ztc3ViX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Ztc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZubWFkZF9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoLShfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbm1hZGRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKC0oX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm5tc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgtKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRfcHMoX19tMTI4IF9fQSwgX19tbWFzazggX19VLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1hZGRfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1Yl9wcyhfX20xMjggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZubWFkZF9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgtKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMgKC0oX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1zdWJfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoLShfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZtYWRkX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJfcHMoX19tMjU2IF9fQSwgX19tbWFzazggX19VLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Ztc3ViX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbm1hZGRfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoLShfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZubWFkZF9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgtKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm5tc3ViX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKC0oX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRzdWJfcGQoX19tMTI4ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZHN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1YmFkZF9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1YmFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkc3ViX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1hZGRzdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbWFkZHN1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJhZGRfcGQoX19tMjU2ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1zdWJhZGRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZtYWRkc3ViX3BzKF9fbTEyOCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkc3ViX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkc3ViX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1zdWJhZGRfcHMoX19tMTI4IF9fQSwgX19tbWFzazggX19VLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkc3ViX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbWFkZHN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbWFkZHN1Yl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Ztc3ViYWRkX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbXN1YmFkZF9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2Ztc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2Ztc3ViX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1zdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2Ztc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1zdWJhZGRfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1zdWJhZGRfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1YmFkZF9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1zdWJhZGRfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubWFkZF9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZubWFkZF9wZChfX20yNTZkIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tYWRkX3BzKF9fbTEyOCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZubWFkZF9wcyhfX20yNTYgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tc3ViX3BkKF9fbTEyOGQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm5tc3ViX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1zdWJfcHMoX19tMTI4IF9fQSwgX19tbWFzazggX19VLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZubXN1Yl9wcyhfX20yNTYgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZubXN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZF9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fYWRkX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZF9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfYWRkX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9hZGRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fYWRkX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2FkZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9hZGRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19ibGVuZF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX1cpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fVykgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYmxlbmRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19XKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19ibGVuZF9wZCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX1cpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYmxlbmRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fVykgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19ibGVuZF9wcyAoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19XKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX192OHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19ibGVuZF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX1cpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fVykgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RmMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb21wcmVzc19wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkZjEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkZjI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29tcHJlc3NfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGYyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGkxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RpMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjJkaSkKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RpMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkaTI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpCiAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NmMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb21wcmVzc19wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2YxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY29tcHJlc3NzZjI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29tcHJlc3NfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NmMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NpMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb21wcmVzc19lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NzaTEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzX2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NzaTI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29tcHJlc3NfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2kyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9wZCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZWRmMTI4X21hc2sgKChfX3YyZGYgKikgX19QLAogICAgICAgICAgICAoX192MmRmKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NzdG9yZXVfcGQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVkZjI1Nl9tYXNrICgoX192NGRmICopIF9fUCwKICAgICAgICAgICAgKF9fdjRkZikgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlZGkxMjhfbWFzayAoKF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgIChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc3N0b3JldV9lcGk2NCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZWRpMjU2X21hc2sgKChfX3Y0ZGkgKikgX19QLAogICAgICAgICAgICAoX192NGRpKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NzdG9yZXVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZXNmMTI4X21hc2sgKChfX3Y0c2YgKikgX19QLAogICAgICAgICAgICAoX192NHNmKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NzdG9yZXVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZXNmMjU2X21hc2sgKChfX3Y4c2YgKikgX19QLAogICAgICAgICAgICAoX192OHNmKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NzdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVzaTEyOF9tYXNrICgoX192NHNpICopIF9fUCwKICAgICAgICAgICAgKF9fdjRzaSkgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTMyICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3Jlc2kyNTZfbWFzayAoKF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAgIChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkzMl9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTMyX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwaTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTMyX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2N2dGVwaTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2N2dGVwaTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMzJfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fY3Z0ZXBpMzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9jdnRlcGkzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTMyX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2N2dGVwaTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBkX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQyZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGRfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dHBkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBkX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dHBkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY3Z0cGQycHNfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY3Z0cGQycHNfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBkX3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tMjU2X2N2dHBkX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW0yNTZfY3Z0cGRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHBkX2VwdTMyIChfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwZF9lcHUzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBkX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGRfZXB1MzIgKF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBkX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGRfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBzX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dHBzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBzX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cHNfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cHNfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRwc19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwc19wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dHBzX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwc19wZCAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY3Z0cHNfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBzX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0cHNfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBzX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRwc19wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHBzX2VwdTMyIChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBzX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwc19lcHUzMiAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cHNfZXB1MzIgKF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cHNfZXB1MzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBzX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwZF9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwZF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBkX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbTI1Nl9jdnR0cGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBkX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dHRwZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHBkX2VwdTMyIChfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBkX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBkX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwZF9lcHUzMiAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwZF9lcHUzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwZF9lcHUzMiAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwc19lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnR0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBzX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0dHBzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwc19lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnR0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBzX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0dHBzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0cHNfZXB1MzIgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwc19lcHUzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBzX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBzX2VwdTMyIChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydWRxMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cHNfZXB1MzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHEyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwc19lcHUzMiAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydWRxMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwdTMyX3BkIChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c3UpX19BLCAoX192NHN1KV9fQSwgMCwgMSksIF9fdjJkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTMyX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1MzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY3Z0ZXB1MzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUzMl9wZCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzdSlfX0EsIF9fdjRkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwdTMyX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXB1MzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXB1MzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwdTMyX3BzIChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0c3UpX19BLCBfX3Y0c2YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTMyX3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2N2dGVwdTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1MzJfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fY3Z0ZXB1MzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1MzJfcHMgKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzdSlfX0EsIF9fdjhzZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1MzJfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfY3Z0ZXB1MzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHUzMl9wcyAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9jdnRlcHUzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kaXZfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Rpdl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2Rpdl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19kaXZfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Rpdl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2Rpdl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Rpdl9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fZGl2X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kaXZfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2Rpdl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZGl2X3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9kaXZfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Rpdl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfZGl2X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kZGYxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkZjEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2V4cGFuZF9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRmMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZF9wZCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kZGYyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkaTEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRpMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kZGkyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkaTI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZGxvYWR1X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkZjEyOF9tYXNrICgoY29uc3QgX192MmRmICopIF9fUCwKICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRsb2FkdV9wZCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkZjEyOF9tYXNrICgoY29uc3QgX192MmRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kbG9hZHVfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRmMjU2X21hc2sgKChjb25zdCBfX3Y0ZGYgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZGxvYWR1X3BkIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRmMjU2X21hc2sgKChjb25zdCBfX3Y0ZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRsb2FkdV9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGkxMjhfbWFzayAoKGNvbnN0IF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGkxMjhfbWFzayAoKGNvbnN0IF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3YyZGkpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2V4cGFuZGxvYWR1X2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLAogICAgICAgICAgICAgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGkyNTZfbWFzayAoKGNvbnN0IF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kbG9hZHVfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGkyNTZfbWFzayAoKGNvbnN0IF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0ZGkpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kbG9hZHVfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fUCwKICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfcHMgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2V4cGFuZGxvYWR1X3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2YyNTZfbWFzayAoKGNvbnN0IF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZGxvYWR1X3BzIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2YyNTZfbWFzayAoKGNvbnN0IF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kbG9hZHVfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpMTI4X21hc2sgKChjb25zdCBfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2V4cGFuZGxvYWR1X2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpMTI4X21hc2sgKChjb25zdCBfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kbG9hZHVfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzaTI1Nl9tYXNrICgoY29uc3QgX192OHNpICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGkzMiAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzaTI1Nl9tYXNrICgoY29uc3QgX192OHNpICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9leHBhbmRzZjEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9leHBhbmRzZjEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfZXhwYW5kc2YyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfZXhwYW5kc2YyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRzaTEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNpMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kc2kyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRzaTI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9nZXRleHBfcGQgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZ2V0ZXhwX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZ2V0ZXhwX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9nZXRleHBfcGQgKF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZ2V0ZXhwX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZ2V0ZXhwX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2dldGV4cF9wcyAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19nZXRleHBfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9nZXRleHBfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2dldGV4cF9wcyAoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19nZXRleHBfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9nZXRleHBfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbWF4X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbWF4X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tYXhfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbWF4X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21heF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9tYXhfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX21pbl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X21pbl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbWluX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX21pbl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9taW5fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbWluX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9tdWxfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9tdWxfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX211bF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tdWxfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX211bF9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbXVsX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X211bF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Fic19lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWJzX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fYWJzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Fic19lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWJzX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYWJzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9hYnNfZXBpNjQgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhYnNxMTI4KChfX3YyZGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWJzX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hYnNfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWJzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2Fic19lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWJzX2VwaTY0IChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWJzcTI1NiAoKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hYnNfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2Fic19lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hYnNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYWJzX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfZXBpMzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbWF4X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tYXhfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfZXBpMzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWF4X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9tYXhfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXhfZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWF4c3ExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcGk2NCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWF4X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWF4X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWF4X2VwaTY0IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHNxMjU2KChfX3Y0ZGkpX19BLCAoX192NGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21heF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21heF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcHUzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tYXhfZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXB1MzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21heF9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcHUzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9tYXhfZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfZXB1MzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21heF9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21heF9lcHU2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtYXh1cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXB1NjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXhfZXB1NjQgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4dXEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcHU2NCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWF4X2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWF4X2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21pbl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbWluX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21pbl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWluX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWluX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1pbnNxMTI4KChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21pbl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9lcGk2NCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWluX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcGk2NCAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtaW5zcTI1NigoX192NGRpKV9fQSwgKF9fdjRkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9taW5fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21pbl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXB1MzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbWluX2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwdTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9taW5fZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fZXB1MzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWluX2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX2VwdTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9taW5fZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9taW5fZXB1NjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWludXExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwdTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWluX2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9taW5fZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWluX2VwdTY0IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnVxMjU2KChfX3Y0ZGkpX19BLCAoX192NGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcHU2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21pbl9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcHU2NCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWluX2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9wZChBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF8xMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKCiNkZWZpbmUgX21tX21hc2tfcm91bmRzY2FsZV9wZChXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF8xMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfcGQoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKI2RlZmluZSBfbW0yNTZfcm91bmRzY2FsZV9wZChBLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF8yNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKCiNkZWZpbmUgX21tMjU2X21hc2tfcm91bmRzY2FsZV9wZChXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF8yNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JvdW5kc2NhbGVfcGQoVSwgQSwgaW1tKSAgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkXzI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9wcyhBLCBpbW0pICBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc18xMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3BzKFcsIFUsIEEsIGltbSkgIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzXzEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfcHMoVSwgQSwgaW1tKSAgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3JvdW5kc2NhbGVfcHMoQSwgaW1tKSAgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yb3VuZHNjYWxlX3BzKFcsIFUsIEEsIGltbSkgIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzXzI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JvdW5kc2NhbGVfcHMoVSwgQSwgaW1tKSAgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zY2FsZWZfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NjYWxlZl9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsCiAgICAgICAgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NjYWxlZl9wZCAoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2NhbGVmX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwKICAgICAgICAgICBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2NhbGVmX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zY2FsZWZfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2NhbGVmcHMxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zY2FsZWZfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zY2FsZWZfcHMgKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2NhbGVmcHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zY2FsZWZfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwKICAgICAgICAgICBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2NhbGVmX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2NhbGVmcHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCiNkZWZpbmUgX21tX2k2NHNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXYyZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0c2NhdHRlcl9wZChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjJkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX2k2NHNjYXR0ZXJfZXBpNjQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXYyZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0c2NhdHRlcl9lcGk2NChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjJkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X2k2NHNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0ZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTY0c2NhdHRlcl9wZChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X2k2NHNjYXR0ZXJfZXBpNjQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0ZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTY0c2NhdHRlcl9lcGk2NChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX2k2NHNjYXR0ZXJfcHMoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCAoX192NHNmKShfX20xMjgpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pNjRzY2F0dGVyX3BzKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2NHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIChfX3Y0c2YpKF9fbTEyOCkodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9pNjRzY2F0dGVyX2VwaTMyKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2NHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9tYXNrX2k2NHNjYXR0ZXJfZXBpMzIoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9pNjRzY2F0dGVyX3BzKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgKF9fdjRzZikoX19tMTI4KSh2MSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTY0c2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjhzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCAoX192NHNmKShfX20xMjgpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTY0c2NhdHRlcl9lcGkzMihhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjhzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRzY2F0dGVyX2VwaTMyKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTMyc2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjJkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pMzJzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXYyZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTMyc2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2MmRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pMzJzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXYyZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTMyc2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NGRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pMzJzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0ZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTMyc2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NGRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pMzJzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0ZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTMyc2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCAoX192NHNmKShfX20xMjgpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9tYXNrX2kzMnNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjRzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIChfX3Y0c2YpKF9fbTEyOCkodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX2kzMnNjYXR0ZXJfZXBpMzIoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjRzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX21hc2tfaTMyc2NhdHRlcl9lcGkzMihhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X2kzMnNjYXR0ZXJfcHMoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgKF9fdjhzZikoX19tMjU2KSh2MSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pMzJzY2F0dGVyX3BzKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY4c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCAoX192OHNmKShfX20yNTYpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9pMzJzY2F0dGVyX2VwaTMyKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY4c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMnNjYXR0ZXJfZXBpMzIoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfc3FydF9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3NxcnRfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX3NxcnRfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICAgIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc3FydF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9zcXJ0X3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICAgIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc3FydF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX3NxcnRfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zcXJ0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9zcXJ0X3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogICAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc3FydF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfc3FydF9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NxcnRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3NxcnRfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zcXJ0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfc3ViX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zdWJfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9zdWJfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc3ViX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfc3ViX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zdWJfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9zdWJfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc3ViX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19zdWJfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zdWJfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfc3ViX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogICAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc3ViX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX3N1Yl9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3N1Yl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9zdWJfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zdWJfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9wZXJtdXRleDJ2YXJfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLCBfX20xMjhpIF9fQikgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJkMTI4KChfX3Y0c2kpIF9fQSwgKF9fdjRzaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19wZXJtdXRleDJ2YXJfZXBpMzIoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2syX3Blcm11dGV4MnZhcl9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3Blcm11dGV4MnZhcl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMzIoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19JLCBfX20yNTZpIF9fQikgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19CKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfcGVybXV0ZXgydmFyX2VwaTMyKF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTMyKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fQSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpMzIoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTMyKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fSSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9wZXJtdXRleDJ2YXJfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTMyKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fcGVybXV0ZXgydmFyX3BkKF9fbTEyOGQgX19BLCBfX20xMjhpIF9fSSwgX19tMTI4ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92cGVybWkydmFycGQxMjgoKF9fdjJkZilfX0EsIChfX3YyZGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQik7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX3Blcm11dGV4MnZhcl9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fSSwgX19tMTI4ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2syX3Blcm11dGV4MnZhcl9wZChfX20xMjhkIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3Blcm11dGV4MnZhcl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhpIF9fSSwgX19tMTI4ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9wZXJtdXRleDJ2YXJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmkgX19JLCBfX20yNTZkIF9fQikgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19CKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfcGVybXV0ZXgydmFyX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZkIF9fQikgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFzazJfcGVybXV0ZXgydmFyX3BkKF9fbTI1NmQgX19BLCBfX20yNTZpIF9fSSwgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3Blcm11dGV4MnZhcl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmQgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXgydmFyX3BkKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9wZXJtdXRleDJ2YXJfcHMoX19tMTI4IF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJwczEyOCgoX192NHNmKV9fQSwgKF9fdjRzaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX3Blcm11dGV4MnZhcl9wcyhfX20xMjggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19JLCBfX20xMjggX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFzazJfcGVybXV0ZXgydmFyX3BzKF9fbTEyOCBfX0EsIF9fbTEyOGkgX19JLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KV9fSSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3Blcm11dGV4MnZhcl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOGkgX19JLCBfX20xMjggX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X3Blcm11dGV4MnZhcl9wcyhfX20yNTYgX19BLCBfX20yNTZpIF9fSSwgX19tMjU2IF9fQikgewogICAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnBzMjU2KChfX3Y4c2YpX19BLCAoX192OHNpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX3Blcm11dGV4MnZhcl9wcyhfX20yNTYgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19JLCBfX20yNTYgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFzazJfcGVybXV0ZXgydmFyX3BzKF9fbTI1NiBfX0EsIF9fbTI1NmkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTYgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NilfX0kpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9wZXJtdXRleDJ2YXJfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NiBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX3Blcm11dGV4MnZhcl9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19CKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfcGVybXV0ZXgydmFyX2VwaTY0KF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcGVybXV0ZXgydmFyX2VwaTY0KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fQSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcGVybXV0ZXgydmFyX2VwaTY0KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fSSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9wZXJtdXRleDJ2YXJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcGVybXV0ZXgydmFyX2VwaTY0KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X3Blcm11dGV4MnZhcl9lcGk2NChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19wZXJtdXRleDJ2YXJfZXBpNjQoX19tMjU2aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2syX3Blcm11dGV4MnZhcl9lcGk2NChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3Blcm11dGV4MnZhcl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwaThfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0ZXBpOF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwaThfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcGk4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXBpOF9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0ZXBpOF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X2N2dGVwaThfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0ZXBpOF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwaThfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXBpOF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwaThfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcGk4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXBpOF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcGk4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXBpOF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwaThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19jdnRlcGkzMl9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwaTMyX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXBpMzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcGkzMl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X2N2dGVwaTMyX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXBpMzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19jdnRlcGkxNl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcGkxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwaTE2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0ZXBpMTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcGkxNl9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRlcGkxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X2N2dGVwaTE2X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwaTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXBpMTZfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXBpMTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9jdnRlcGkxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwaTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXBpMTZfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXBpMTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcGkxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwaTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwdThfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0ZXB1OF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwdThfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcHU4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXB1OF9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRlcHU4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXB1OF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwdThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19jdnRlcHU4X2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwdThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9jdnRlcHU4X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwdThfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X2N2dGVwdThfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwdTMyX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwdTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXB1MzJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcHUzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwdTMyX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwdTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXB1MzJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcHUzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwdTE2X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dGVwdTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXB1MTZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcHUxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwdTE2X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwdTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXB1MTZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRlcHUxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwdTE2X2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwdTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXB1MTZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcHUxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwdTE2X2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwdTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXB1MTZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcHUxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKCiNkZWZpbmUgX21tX3JvbF9lcGkzMihhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Byb2xkMTI4KChfX3Y0c2kpKF9fbTEyOGkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JvbF9lcGkzMih3LCB1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKSh3KSkpCgojZGVmaW5lIF9tbV9tYXNrel9yb2xfZXBpMzIodSwgYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3JvbF9lcGkzMigoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X3JvbF9lcGkzMihhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Byb2xkMjU2KChfX3Y4c2kpKF9fbTI1NmkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JvbF9lcGkzMih3LCB1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKSh3KSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yb2xfZXBpMzIodSwgYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3JvbF9lcGkzMigoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX3JvbF9lcGk2NChhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Byb2xxMTI4KChfX3YyZGkpKF9fbTEyOGkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JvbF9lcGk2NCh3LCB1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcm9sX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKSh3KSkpCgojZGVmaW5lIF9tbV9tYXNrel9yb2xfZXBpNjQodSwgYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3JvbF9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X3JvbF9lcGk2NChhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Byb2xxMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JvbF9lcGk2NCh3LCB1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9sX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKSh3KSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yb2xfZXBpNjQodSwgYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3JvbF9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yb2x2X2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvbHZkMTI4KChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JvbHZfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3JvbHZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yb2x2X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3JvbHZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcm9sdl9lcGkzMiAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Byb2x2ZDI1NigoX192OHNpKV9fQSwgKF9fdjhzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19yb2x2X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3JvbHZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JvbHZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb2x2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcm9sdl9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Byb2x2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yb2x2X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcm9sdl9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JvbHZfZXBpNjQgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wcm9sdnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcm9sdl9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yb2x2X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9sdl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW1fcm9yX2VwaTMyKGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvcmQxMjgoKF9fdjRzaSkoX19tMTI4aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tX21hc2tfcm9yX2VwaTMyKHcsIHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9yb3JfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3Jvcl9lcGkzMih1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fcm9yX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfcm9yX2VwaTMyKGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvcmQyNTYoKF9fdjhzaSkoX19tMjU2aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcm9yX2VwaTMyKHcsIHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb3JfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKHcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Jvcl9lcGkzMih1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcm9yX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fcm9yX2VwaTY0KGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvcnExMjgoKF9fdjJkaSkoX19tMTI4aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tX21hc2tfcm9yX2VwaTY0KHcsIHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb3JfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3Jvcl9lcGk2NCh1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcm9yX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfcm9yX2VwaTY0KGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvcnEyNTYoKF9fdjRkaSkoX19tMjU2aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcm9yX2VwaTY0KHcsIHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb3JfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Jvcl9lcGk2NCh1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9yX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zbGxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGxfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2xsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zbGxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zbGxfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2xsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsaV9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zbGxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NsbGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGxpX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NsbGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zbGxpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2xsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NsbF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2xsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NsbF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NsbF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2xsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NsbF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NsbGlfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2xsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NsbGlfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zbGxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsaV9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zbGxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NsbGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcm9ydl9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Byb3J2ZDEyOCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yb3J2X2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9yb3J2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcm9ydl9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9yb3J2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JvcnZfZXBpMzIgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wcm9ydmQyNTYoKF9fdjhzaSlfX0EsIChfX3Y4c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcm9ydl9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb3J2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yb3J2X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcm9ydl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JvcnZfZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wcm9ydnExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcm9ydl9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcm9ydl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JvcnZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcm9ydl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yb3J2X2VwaTY0IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvcnZxMjU2KChfX3Y0ZGkpX19BLCAoX192NGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JvcnZfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9ydl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcm9ydl9lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3JvcnZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NsbHZfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NsbHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGx2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NsbHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGx2X2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NsbHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbHZfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zbGx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGx2X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsdl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsdl9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zbGx2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2xsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Jsdl9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3Jsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NybHZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3Jsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybHZfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3Jsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Jsdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NybHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybHZfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Jsdl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NybHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybHZfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Jsdl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NybHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybF9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3JsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JsX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NybF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybF9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JsX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NybF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybGlfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3JsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NybGlfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JsaV9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JsaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NybGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmxfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NybF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NybF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmxfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NybF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NybF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmxpX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NybGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmxpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybGlfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3JsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NybGlfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Jhdl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmF2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmF2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3Jhdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jhdl9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmF2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmF2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3Jhdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NyYXZfZXBpNjQoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmF2cTEyOCgoX192MmRpKV9fWCwgKF9fdjJkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmF2X2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmF2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Jhdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmF2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYXZfZXBpNjQoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmF2cTI1NigoX192NGRpKV9fWCwgKF9fdjRkaSkgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jhdl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3Jhdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYXZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NyYXZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjggKCkpOwp9CgoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9sb2FkX2VwaTMyICh2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKihjb25zdCBfX20xMjhpICopIF9fUDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMmxvYWQxMjhfbWFzayAoKGNvbnN0IF9fdjRzaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZF9lcGkzMiAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMybG9hZDEyOF9tYXNrICgoY29uc3QgX192NHNpICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2xvYWRfZXBpMzIgKHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAqKGNvbnN0IF9fbTI1NmkgKikgX19QOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkX2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMybG9hZDI1Nl9tYXNrICgoY29uc3QgX192OHNpICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkX2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbW92ZHFhMzJsb2FkMjU2X21hc2sgKChjb25zdCBfX3Y4c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3RvcmVfZXBpMzIgKHZvaWQgKl9fUCwgX19tMTI4aSBfX0EpCnsKICAqKF9fbTEyOGkgKikgX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfbW92ZHFhMzJzdG9yZTEyOF9tYXNrICgoX192NHNpICopIF9fUCwKICAgICAgICAgIChfX3Y0c2kpIF9fQSwKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdG9yZV9lcGkzMiAodm9pZCAqX19QLCBfX20yNTZpIF9fQSkKewogICooX19tMjU2aSAqKSBfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N0b3JlX2VwaTMyICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMnN0b3JlMjU2X21hc2sgKChfX3Y4c2kgKikgX19QLAogICAgICAgICAgKF9fdjhzaSkgX19BLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjggKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2xvYWRfZXBpNjQgKHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAqKGNvbnN0IF9fbTEyOGkgKikgX19QOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0bG9hZDEyOF9tYXNrICgoY29uc3QgX192MmRpICopIF9fUCwKICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkX2VwaTY0IChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbW92ZHFhNjRsb2FkMTI4X21hc2sgKChjb25zdCBfX3YyZGkgKikgX19QLAogICAgICAgICAgICAgIChfX3YyZGkpCiAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZF9lcGk2NCAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tMjU2aSAqKSBfX1A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWRfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbW92ZHFhNjRsb2FkMjU2X21hc2sgKChjb25zdCBfX3Y0ZGkgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2xvYWRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NGxvYWQyNTZfbWFzayAoKGNvbnN0IF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRkaSkKICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zdG9yZV9lcGk2NCAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogICooX19tMTI4aSAqKSBfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JlX2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NHN0b3JlMTI4X21hc2sgKChfX3YyZGkgKikgX19QLAogICAgICAgICAgKF9fdjJkaSkgX19BLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N0b3JlX2VwaTY0ICh2b2lkICpfX1AsIF9fbTI1NmkgX19BKQp7CiAgKihfX20yNTZpICopIF9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0c3RvcmUyNTZfbWFzayAoKF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAoX192NGRpKSBfX0EsCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdmVkdXBfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbW92ZWR1cF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbW92ZWR1cF9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX21vdmVkdXBfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21vdmVkdXBfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbW92ZWR1cF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92ZWR1cF9wZCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X21vdmVkdXBfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NldDFfZXBpMzIoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgaW50IF9fQSkKewogICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldDFfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NldDFfZXBpMzIoIF9fbW1hc2s4IF9fTSwgaW50IF9fQSkKewogICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldDFfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NldDFfZXBpMzIoX19tMjU2aSBfX08sIF9fbW1hc2s4IF9fTSwgaW50IF9fQSkKewogICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3NldDFfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NldDFfZXBpMzIoIF9fbW1hc2s4IF9fTSwgaW50IF9fQSkKewogICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3NldDFfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zZXQxX2VwaTY0IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0MV9lcGk2NHgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zZXQxX2VwaTY0IChfX21tYXNrOCBfX00sIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXQxX2VwaTY0eChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NldDFfZXBpNjQgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXQxX2VwaTY0eChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX19PKSA7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zZXQxX2VwaTY0IChfX21tYXNrOCBfX00sIGxvbmcgbG9uZyBfX0EpCnsKICAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldDFfZXBpNjR4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCiNkZWZpbmUgX21tX2ZpeHVwaW1tX3BkKEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZml4dXBpbW1fcGQoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3BkKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkMTI4X21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZml4dXBpbW1fcGQoQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19maXh1cGltbV9wZChBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZml4dXBpbW1fcGQoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQyNTZfbWFza3ooKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9maXh1cGltbV9wcyhBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZpeHVwaW1tX3BzKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9maXh1cGltbV9wcyhVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzMTI4X21hc2t6KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2ZpeHVwaW1tX3BzKEEsIEIsIEMsIGltbSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZml4dXBpbW1fcHMoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2ZpeHVwaW1tX3BzKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHMyNTZfbWFza3ooKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9sb2FkYXBkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWRfcGQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9sb2FkYXBkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQyNTZfbWFzayAoKGNvbnN0IF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZF9wZCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQyNTZfbWFzayAoKGNvbnN0IF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbG9hZGFwczEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkX3BzIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9sb2FkYXBzMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcHMyNTZfbWFzayAoKGNvbnN0IF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZF9wcyAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfbG9hZGFwczI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9sb2FkdV9lcGk2NCAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpNjQgewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGk2NCopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkdV9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1ZGkxMjhfbWFzayAoKGNvbnN0IF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWR1X2VwaTY0IChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWRpMTI4X21hc2sgKChjb25zdCBfX3YyZGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YyZGkpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2xvYWR1X2VwaTY0ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGk2NCB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTY0KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWR1X2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVkaTI1Nl9tYXNrICgoY29uc3QgX192NGRpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZHVfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1ZGkyNTZfbWFzayAoKGNvbnN0IF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjRkaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbG9hZHVfZXBpMzIgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTMyIHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpMzIqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZHVfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXNpMTI4X21hc2sgKChjb25zdCBfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkdV9lcGkzMiAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVzaTEyOF9tYXNrICgoY29uc3QgX192NHNpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkdV9lcGkzMiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpMzIgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGkzMiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkdV9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1c2kyNTZfbWFzayAoKGNvbnN0IF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2xvYWR1X2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXNpMjU2X21hc2sgKChjb25zdCBfX3Y4c2kgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkdV9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWR1X3BkIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbG9hZHVwZDEyOF9tYXNrICgoY29uc3QgX192MmRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZHVfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfbG9hZHVwZDI1Nl9tYXNrICgoY29uc3QgX192NGRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkdV9wZCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cGQyNTZfbWFzayAoKGNvbnN0IF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZHVfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHMxMjhfbWFzayAoKGNvbnN0IF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZHVfcHMgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHMxMjhfbWFzayAoKGNvbnN0IF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZHVfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHMyNTZfbWFzayAoKGNvbnN0IF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZHVfcHMgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHMyNTZfbWFzayAoKGNvbnN0IF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JlX3BkICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwZDEyOF9tYXNrICgoX192MmRmICopIF9fUCwKICAgICAgICAgICAoX192MmRmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZV9wZCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVhcGQyNTZfbWFzayAoKF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjRkZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVhcHMxMjhfbWFzayAoKF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjRzZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVhcHMyNTZfbWFzayAoKF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjhzZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tMTI4aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpNjQgewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGk2NCopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1ZGkxMjhfbWFzayAoKF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbTI1NmkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTY0IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpNjQqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdWRpMjU2X21hc2sgKChfX3Y0ZGkgKikgX19QLAogICAgICAgICAgICAgKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGkzMiB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTMyKilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVzaTEyOF9tYXNrICgoX192NHNpICopIF9fUCwKICAgICAgICAgICAgIChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tMjU2aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpMzIgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGkzMiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1c2kyNTZfbWFzayAoKF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9wZCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmV1cGQxMjhfbWFzayAoKF9fdjJkZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjJkZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmV1X3BkICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXVwZDI1Nl9tYXNrICgoX192NGRmICopIF9fUCwKICAgICAgICAgICAoX192NGRmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZXVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmV1cHMxMjhfbWFzayAoKF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjRzZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmV1X3BzICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JldXBzMjU2X21hc2sgKChfX3Y4c2YgKikgX19QLAogICAgICAgICAgIChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2toaV9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bnBhY2toaV9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2toaV9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VucGFja2hpX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2hpX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3VucGFja2hpX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2hpX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfdW5wYWNraGlfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2toaV9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fdW5wYWNraGlfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNraGlfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2hpX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfdW5wYWNraGlfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNrbG9fcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fdW5wYWNrbG9fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfdW5wYWNrbG9fcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bnBhY2tsb19wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2tsb19wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl91bnBhY2tsb19wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2tsb19wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3VucGFja2xvX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNrbG9fcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3VucGFja2xvX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fdW5wYWNrbG9fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2xvX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfdW5wYWNrbG9fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2tsb19wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3VucGFja2xvX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yY3AxNF9wZCAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JjcDE0X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yY3AxNF9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yY3AxNF9wZCAoX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JjcDE0X3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yY3AxNF9wZCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JjcDE0X3BzIChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHMxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcmNwMTRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JjcDE0X3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcmNwMTRwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JjcDE0X3BzIChfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcmNwMTRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JjcDE0X3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfcmNwMTRwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCiNkZWZpbmUgX21tX21hc2tfcGVybXV0ZV9wZChXLCBVLCBYLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVykpKQoKI2RlZmluZSBfbW1fbWFza3pfcGVybXV0ZV9wZChVLCBYLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcGVybXV0ZV9wZChXLCBVLCBYLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcGVybXV0ZV9wZChVLCBYLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tX21hc2tfcGVybXV0ZV9wcyhXLCBVLCBYLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fcGVybXV0ZV9wcygoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9wZXJtdXRlX3BzKFUsIFgsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9wZXJtdXRlX3BzKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19wZXJtdXRlX3BzKFcsIFUsIFgsIEMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9wZXJtdXRlX3BzKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Blcm11dGVfcHMoVSwgWCwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGVfcHMoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wZXJtdXRldmFyX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9wZXJtdXRldmFyX3BkKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wZXJtdXRldmFyX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGV2YXJfcGQoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV2YXJfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV2YXJfcGQoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV2YXJfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXZhcl9wZChfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wZXJtdXRldmFyX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9wZXJtdXRldmFyX3BzKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3Blcm11dGV2YXJfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGV2YXJfcHMoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXZhcl9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV2YXJfcHMoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV2YXJfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9wZXJtdXRldmFyX3BzKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0X2VwaTMyX21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wbmVxX2VwaTMyX21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0X2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Rlc3RfZXBpMzJfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBuZXFfZXBpMzJfbWFzayAoX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdF9lcGkzMl9tYXNrIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBuZXFfZXBpMzJfbWFzayAoX19VLCBfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0X2VwaTY0X21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wbmVxX2VwaTY0X21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0X2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Rlc3RfZXBpNjRfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBuZXFfZXBpNjRfbWFzayAoX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdF9lcGk2NF9tYXNrIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBuZXFfZXBpNjRfbWFzayAoX19VLCBfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0bl9lcGkzMl9tYXNrIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NtcGVxX2VwaTMyX21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0bl9lcGkzMl9tYXNrIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19jbXBlcV9lcGkzMl9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdG5fZXBpMzJfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBlcV9lcGkzMl9tYXNrIChfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Rlc3RuX2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcGVxX2VwaTMyX21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0bl9lcGk2NF9tYXNrIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NtcGVxX2VwaTY0X21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0bl9lcGk2NF9tYXNrIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19jbXBlcV9lcGk2NF9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdG5fZXBpNjRfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBlcV9lcGk2NF9tYXNrIChfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Rlc3RuX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcGVxX2VwaTY0X21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNraGlfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2toaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5wYWNraGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNraGlfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2toaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfdW5wYWNraGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNraGlfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2toaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fdW5wYWNraGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNraGlfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2toaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfdW5wYWNraGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNrbG9fZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bnBhY2tsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5wYWNrbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNrbG9fZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl91bnBhY2tsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2tsb19lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfdW5wYWNrbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNrbG9fZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fdW5wYWNrbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNrbG9fZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2tsb19lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfdW5wYWNrbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JhX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmFfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmFfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3JhX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JhX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmFfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmFfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JhX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JhaV9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmFpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JhaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NyYWlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmFpX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NyYWlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmFpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JhaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmFfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmFxMTI4KChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NyYV9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmFfZXBpNjQoX19BLCBfX0IpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NyYV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NyYV9lcGk2NChfX0EsIF9fQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYV9lcGk2NChfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYXEyNTYoKF9fdjRkaSkgX19BLCAoX192MmRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmFfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NyYV9lcGk2NChfX0EsIF9fQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmFfZXBpNjQoX19BLCBfX0IpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3JhaV9lcGk2NChfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9faW1tKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmFxaTEyOCgoX192MmRpKV9fQSwgX19pbW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmFpX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19pbW0pCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JhaV9lcGk2NChfX0EsIF9faW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JhaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19pbW0pCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JhaV9lcGk2NChfX0EsIF9faW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYWlfZXBpNjQoX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX2ltbSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JhcWkyNTYoKF9fdjRkaSlfX0EsIF9faW1tKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JhaV9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19pbW0pCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3JhaV9lcGk2NChfX0EsIF9faW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JhaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19pbW0pCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3JhaV9lcGk2NChfX0EsIF9faW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW1fdGVybmFyeWxvZ2ljX2VwaTMyKEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ2QxMjhfbWFzaygoX192NHNpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza190ZXJuYXJ5bG9naWNfZXBpMzIoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfdGVybmFyeWxvZ2ljX2VwaTMyKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ2QxMjhfbWFza3ooKF9fdjRzaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl90ZXJuYXJ5bG9naWNfZXBpMzIoQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3Rlcm5hcnlsb2dpY19lcGkzMihBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkMjU2X21hc2soKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel90ZXJuYXJ5bG9naWNfZXBpMzIoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDI1Nl9tYXNreigoX192OHNpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX3Rlcm5hcnlsb2dpY19lcGk2NChBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dxMTI4X21hc2soKF9fdjJkaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfdGVybmFyeWxvZ2ljX2VwaTY0KEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3ExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X3Rlcm5hcnlsb2dpY19lcGk2NChVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dxMTI4X21hc2t6KChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfdGVybmFyeWxvZ2ljX2VwaTY0KEEsIEIsIEMsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3EyNTZfbWFzaygoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza190ZXJuYXJ5bG9naWNfZXBpNjQoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9ncTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfdGVybmFyeWxvZ2ljX2VwaTY0KFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3EyNTZfbWFza3ooKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKCiNkZWZpbmUgX21tMjU2X3NodWZmbGVfZjMyeDQoQSwgQiwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NF8yNTYoKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX2YzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NodWZmbGVfZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfZjMyeDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2h1ZmZsZV9mMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTI1Nl9zaHVmZmxlX2Y2NHgyKEEsIEIsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyXzI1NigoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVfZjY0eDIoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NodWZmbGVfZjY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaHVmZmxlX2Y2NHgyKFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zaHVmZmxlX2Y2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tMjU2X3NodWZmbGVfaTMyeDQoQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NodWZfaTMyeDRfMjU2KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2h1ZmZsZV9pMzJ4NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHVmZmxlX2kzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZV9pMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHVmZmxlX2kzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tMjU2X3NodWZmbGVfaTY0eDIoQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NodWZfaTY0eDJfMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2h1ZmZsZV9pNjR4MihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaHVmZmxlX2k2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoVykpKQoKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfaTY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2h1ZmZsZV9pNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9tYXNrX3NodWZmbGVfcGQoVywgVSwgQSwgQiwgTSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2h1ZmZsZV9wZCgoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2h1ZmZsZV9wZChVLCBBLCBCLCBNKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zaHVmZmxlX3BkKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX3BkKFcsIFUsIEEsIEIsIE0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NodWZmbGVfcGQoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfcGQoVSwgQSwgQiwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2h1ZmZsZV9wZCgoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tX21hc2tfc2h1ZmZsZV9wcyhXLCBVLCBBLCBCLCBNKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NodWZmbGVfcHMoVSwgQSwgQiwgTSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NodWZmbGVfcHMoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2h1ZmZsZV9wcyhXLCBVLCBBLCBCLCBNKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfcHMoVSwgQSwgQiwgTSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NodWZmbGVfcHMoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yc3FydDE0X3BkIChfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yc3FydDE0X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcnNxcnQxNF9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JzcXJ0MTRfcGQgKF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JzcXJ0MTRfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yc3FydDE0X3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yc3FydDE0X3BzIChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yc3FydDE0X3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcnNxcnQxNF9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JzcXJ0MTRfcHMgKF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JzcXJ0MTRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yc3FydDE0X3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2YzMng0KF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fQSwgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0X2YzMng0KF9fbTI1NiBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2Jyb2FkY2FzdF9mMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0X2YzMng0IChfX21tYXNrOCBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9icm9hZGNhc3RfZjMyeDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2kzMng0KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdF9pMzJ4NChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Jyb2FkY2FzdF9pMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdF9pMzJ4NChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYnJvYWRjYXN0X2kzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0c2RfcGQgKF9fbTI1NmQgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfbW0yNTZfYnJvYWRjYXN0c2RfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RzZF9wZCAoX19tbWFzazggX19NLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX21tMjU2X2Jyb2FkY2FzdHNkX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19icm9hZGNhc3Rzc19wcyAoX19tMTI4IF9fTywgX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX21tX2Jyb2FkY2FzdHNzX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Jyb2FkY2FzdHNzX3BzIChfX21tYXNrOCBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fYnJvYWRjYXN0c3NfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0c3NfcHMgKF9fbTI1NiBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9icm9hZGNhc3Rzc19wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3Rzc19wcyAoX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X2Jyb2FkY2FzdHNzX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19icm9hZGNhc3RkX2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9tbV9icm9hZGNhc3RkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9icm9hZGNhc3RkX2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX2Jyb2FkY2FzdGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdGRfZXBpMzIgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X2Jyb2FkY2FzdGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdGRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfYnJvYWRjYXN0ZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYnJvYWRjYXN0cV9lcGk2NCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fYnJvYWRjYXN0cV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYnJvYWRjYXN0cV9lcGk2NCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9icm9hZGNhc3RxX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RxX2VwaTY0IChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9icm9hZGNhc3RxX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RxX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X2Jyb2FkY2FzdHFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZXBpMzJfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2VwaTMyX2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIxMjhtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192NHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpMzJfZXBpOCAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0c2VwaTMyX2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGIyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGkzMl9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKV9fTywKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNlcGkzMl9lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpMzJfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNkdzEyOG1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjRzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0c2VwaTMyX2VwaTE2IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTMyX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHNlcGkzMl9lcGkxNiAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpMzJfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNkdzI1Nm1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjhzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c2VwaTY0X2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTY0X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNlcGk2NF9lcGk4IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3FiMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0c2VwaTY0X2VwaTggKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTY0X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHNlcGk2NF9lcGk4IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3FiMjU2bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c2VwaTY0X2VwaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTY0X2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2kpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNxZDEyOG1lbV9tYXNrICgoX192NHNpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0c2VwaTY0X2VwaTMyIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTY0X2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2kpX19PLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0c2VwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3FkMjU2bWVtX21hc2sgKChfX3Y0c2kgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2VwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3F3MTI4bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpNjRfZXBpMTYgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0c2VwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3F3MjU2bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTMyX2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR1c2VwaTMyX2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpMzJfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y0c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHVzZXBpMzJfZXBpOCAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHVzZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dXNlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMjU2bWVtX21hc2sgKChfX3YxNnFpKikgX19QLCAoX192OHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTMyX2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGkzMl9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpMzJfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzEyOG1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjRzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGkzMl9lcGkxNiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3MjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTMyX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dXNlcGkzMl9lcGkxNiAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3MjU2bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192OHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTY0X2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR1c2VwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHVzZXBpNjRfZXBpOCAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTY0X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHVzZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWIyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMjU2bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dXNlcGk2NF9lcGkzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR1c2VwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcWQxMjhtZW1fbWFzayAoKF9fdjRzaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHVzZXBpNjRfZXBpMzIgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTY0X2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dXNlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGkzMiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FkMjU2bWVtX21hc2sgKChfX3Y0c2kgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTY0X2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxdzEyOG1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGk2NF9lcGkxNiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxdzI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR1c2VwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxdzI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcXcyNTZtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y0ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTMyX2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHNpKV9fQSwgX192NHFpKSwgKF9fdjRxaSl7MCwgMCwgMCwgMH0sIDAsIDEsCiAgICAgIDIsIDMsIDQsIDUsIDYsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmRiMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmRiMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkKICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZkYjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y0c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTMyX2VwaTggKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHNpKV9fQSwgX192OHFpKSwKICAgICAgKF9fdjhxaSl7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwKICAgICAgMTIsIDEzLCAxNCwgMTUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmRiMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmRiMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpMzJfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92ZGIyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRlcGkzMl9lcGkxNiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0c2kpX19BLCBfX3Y0aGkpLCAoX192NGhpKXswLCAwLCAwLCAwfSwgMCwgMSwKICAgICAgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmR3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGkzMl9lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmR3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92ZHcxMjhtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y0c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTMyX2VwaTE2IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHNpKV9fQSwgX192OGhpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHcyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTMyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHcyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqICBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92ZHcyNTZtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y4c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTY0X2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MmRpKV9fQSwgX192MnFpKSwgKF9fdjJxaSl7MCwgMH0sIDAsIDEsIDIsIDMsCiAgICAgIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cWIxMjhtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGk2NF9lcGk4IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRkaSlfX0EsIF9fdjRxaSksIChfX3Y0cWkpezAsIDAsIDAsIDB9LCAwLCAxLAogICAgICAyLCAzLCA0LCA1LCA2LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxYjI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxYjI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnFiMjU2bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MmRpKV9fQSwgX192MnNpKSwgKF9fdjJzaSl7MCwgMH0sIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9lcGkzMiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjRzaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpNjRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxZDEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnFkMTI4bWVtX21hc2sgKChfX3Y0c2kgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGk2NF9lcGkzMiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRkaSlfX0EsIF9fdjRzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbTI1Nl9jdnRlcGk2NF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbTI1Nl9jdnRlcGk2NF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cWQyNTZtZW1fbWFzayAoKF9fdjRzaSAqKSBfX1AsIChfX3Y0ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTY0X2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjJkaSlfX0EsIF9fdjJoaSksIChfX3YyaGkpezAsIDB9LCAwLCAxLCAyLCAzLAogICAgICAzLCAzLCAzLCAzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpX19PLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnF3MTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cXcxMjhtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X2VwaTE2IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRkaSlfX0EsIF9fdjRoaSksIChfX3Y0aGkpezAsIDAsIDAsIDB9LCAwLCAxLAogICAgICAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzI1Nm1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0ZjMyeDRfcHMoQSwgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng0XzI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19leHRyYWN0ZjMyeDRfcHMoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng0XzI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZXh0cmFjdGYzMng0X3BzKFUsIEEsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmMzJ4NF8yNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZXh0cmFjdGkzMng0X2VwaTMyKEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTMyeDRfMjU2X21hc2soKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19leHRyYWN0aTMyeDRfZXBpMzIoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4NF8yNTZfbWFzaygoX192OHNpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZXh0cmFjdGkzMng0X2VwaTMyKFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTMyeDRfMjU2X21hc2soKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRmMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4NF8yNTYoKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaW5zZXJ0ZjMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2luc2VydGYzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfaW5zZXJ0ZjMyeDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2luc2VydGYzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRpMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDRfMjU2KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2luc2VydGkzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9pbnNlcnRpMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9pbnNlcnRpMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfaW5zZXJ0aTMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX2dldG1hbnRfcGQoQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfcGQoVywgVSwgQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3BkKFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0bWFudHBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2dldG1hbnRfcGQoQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2dldG1hbnRfcGQoVywgVSwgQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9nZXRtYW50X3BkKFUsIEEsIEIsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZ2V0bWFudHBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX2dldG1hbnRfcHMoQSwgQiwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3BzKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50cHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9wcyhVLCBBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZ2V0bWFudF9wcyhBLCBCLCBDKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2dldG1hbnRfcHMoVywgVSwgQSwgQiwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9nZXRtYW50X3BzKFUsIEEsIEIsIEMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9nZXRtYW50cHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tbWFza19pNjRnYXRoZXJfcGQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjJkZigoX192MmRmKShfX20xMjhkKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTY0Z2F0aGVyX2VwaTY0KHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNkaXYyZGkoKF9fdjJkaSkoX19tMTI4aSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X21tYXNrX2k2NGdhdGhlcl9wZCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2NGRmKChfX3Y0ZGYpKF9fbTI1NmQpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pNjRnYXRoZXJfZXBpNjQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjRkaSgoX192NGRpKShfX20yNTZpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTY0Z2F0aGVyX3BzKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjRzZigoX192NHNmKShfX20xMjgpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbV9tbWFza19pNjRnYXRoZXJfZXBpMzIodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjRzaSgoX192NHNpKShfX20xMjhpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfbW1hc2tfaTY0Z2F0aGVyX3BzKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjhzZigoX192NHNmKShfX20xMjgpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pNjRnYXRoZXJfZXBpMzIodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjhzaSgoX192NHNpKShfX20xMjhpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTMyZ2F0aGVyX3BkKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXYyZGYoKF9fdjJkZikoX19tMTI4ZCkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tX21tYXNrX2kzMmdhdGhlcl9lcGk2NCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXIzc2l2MmRpKChfX3YyZGkpKF9fbTEyOGkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pMzJnYXRoZXJfcGQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjRkZigoX192NGRmKShfX20yNTZkKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfbW1hc2tfaTMyZ2F0aGVyX2VwaTY0KHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXY0ZGkoKF9fdjRkaSkoX19tMjU2aSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tX21tYXNrX2kzMmdhdGhlcl9wcyh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXY0c2YoKF9fdjRzZikoX19tMTI4KSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTMyZ2F0aGVyX2VwaTMyKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXY0c2koKF9fdjRzaSkoX19tMTI4aSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X21tYXNrX2kzMmdhdGhlcl9wcyh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXY4c2YoKF9fdjhzZikoX19tMjU2KSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfbW1hc2tfaTMyZ2F0aGVyX2VwaTMyKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXY4c2koKF9fdjhzaSkoX19tMjU2aSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X3Blcm11dGV4X3BkKFgsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcGVybWRmMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKFgpLCAoaW50KShDKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3Blcm11dGV4X3BkKFcsIFUsIFgsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXhfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Blcm11dGV4X3BkKFUsIFgsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV4X3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tMjU2X3Blcm11dGV4X2VwaTY0KFgsIEMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGVybWRpMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKFgpLCAoaW50KShDKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3Blcm11dGV4X2VwaTY0KFcsIFUsIFgsIEMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4X2VwaTY0KChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Blcm11dGV4X2VwaTY0KFUsIFgsIEMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4X2VwaTY0KChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXh2YXJfcGQgKF9fbTI1NmkgX19YLCBfX20yNTZkIF9fWSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9wZXJtdmFyZGYyNTYoKF9fdjRkZilfX1ksIChfX3Y0ZGkpX19YKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXh2YXJfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLAogICAgICAgICAgX19tMjU2ZCBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRleHZhcl9wZChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleHZhcl9wZCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2ZCBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRleHZhcl9wZChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXh2YXJfZXBpNjQgKCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGVybXZhcmRpMjU2KChfX3Y0ZGkpIF9fWSwgKF9fdjRkaSkgX19YKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV4dmFyX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXh2YXJfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLAogICAgICAgICAgICAgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4dmFyX2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZXh2YXJfcHMoQSwgQikgX21tMjU2X3Blcm11dGV2YXI4eDMyX3BzKChCKSwgKEEpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRleHZhcl9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTYgX19ZKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9wZXJtdXRleHZhcl9wcyhfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV4dmFyX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NiBfX1kpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV4dmFyX3BzKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tMjU2X3Blcm11dGV4dmFyX2VwaTMyKEEsIEIpIF9tbTI1Nl9wZXJtdXRldmFyOHgzMl9lcGkzMigoQiksIChBKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4dmFyX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXh2YXJfZXBpMzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3Blcm11dGV4dmFyX2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCiNkZWZpbmUgX21tX2FsaWducl9lcGkzMihBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWxpZ25kMTI4KChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbV9tYXNrX2FsaWducl9lcGkzMihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9hbGlnbnJfZXBpMzIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fYWxpZ25yX2VwaTMyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X2FsaWducl9lcGkzMihBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfYWxpZ25kMjU2KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2FsaWducl9lcGkzMihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9hbGlnbnJfZXBpMzIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYWxpZ25yX2VwaTMyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX2FsaWducl9lcGk2NChBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWxpZ25xMTI4KChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbV9tYXNrX2FsaWducl9lcGk2NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9hbGlnbnJfZXBpNjQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fYWxpZ25yX2VwaTY0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X2FsaWducl9lcGk2NChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfYWxpZ25xMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2FsaWducl9lcGk2NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9hbGlnbnJfZXBpNjQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYWxpZ25yX2VwaTY0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92ZWhkdXBfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tb3ZlaGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdmVoZHVwX3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbW92ZWhkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZlaGR1cF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21vdmVoZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92ZWhkdXBfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9tb3ZlaGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdmVsZHVwX3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbW92ZWxkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZlbGR1cF9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX21vdmVsZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92ZWxkdXBfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9tb3ZlbGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21vdmVsZHVwX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbW92ZWxkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX2VwaTMyKFcsIFUsIEEsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHVmZmxlX2VwaTMyKChBKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaHVmZmxlX2VwaTMyKFUsIEEsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHVmZmxlX2VwaTMyKChBKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fbWFza19zaHVmZmxlX2VwaTMyKFcsIFUsIEEsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHVmZmxlX2VwaTMyKChBKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHVmZmxlX2VwaTMyKFUsIEEsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHVmZmxlX2VwaTMyKChBKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjJkZikgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAoX192NGRmKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92X3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAoX192NGRmKSBfbW0yNTZfc2V0emVyb19wZCAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92X3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgIChfX3Y0c2YpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcyAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92X3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgIChfX3Y4c2YpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21vdl9wcyAoX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcyAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGhfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfdmN2dHBoMnBzX21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGhfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfdmN2dHBoMnBzX21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwaF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMyNTZfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9wcyAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMyNTZfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgojZGVmaW5lIF9tbV9tYXNrX2N2dF9yb3VuZHBzX3BoKFcsIFUsIEEsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9jdnRfcm91bmRwc19waChVLCBBLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0cHNfcGggIF9tbV9tYXNrX2N2dF9yb3VuZHBzX3BoCiNkZWZpbmUgX21tX21hc2t6X2N2dHBzX3BoIF9tbV9tYXNrel9jdnRfcm91bmRwc19waAoKI2RlZmluZSBfbW0yNTZfbWFza19jdnRfcm91bmRwc19waChXLCBVLCBBLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaDI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfY3Z0X3JvdW5kcHNfcGgoVSwgQSwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGgyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2N2dHBzX3BoICBfbW0yNTZfbWFza19jdnRfcm91bmRwc19waAojZGVmaW5lIF9tbTI1Nl9tYXNrel9jdnRwc19waCBfbW0yNTZfbWFza3pfY3Z0X3JvdW5kcHNfcGgKCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZiAvKiBfX0FWWDUxMlZMSU5UUklOX0ggKi8KAC8qPT09LS0tLSBtd2FpdHhpbnRyaW4uaCAtIE1PTklUT1JYL01XQUlUWCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8bXdhaXR4aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX01XQUlUWElOVFJJTl9ICiNkZWZpbmUgX19NV0FJVFhJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJtd2FpdHgiKSkpCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb25pdG9yeCh2b2lkICogX19wLCB1bnNpZ25lZCBfX2V4dGVuc2lvbnMsIHVuc2lnbmVkIF9faGludHMpCnsKICBfX2J1aWx0aW5faWEzMl9tb25pdG9yeChfX3AsIF9fZXh0ZW5zaW9ucywgX19oaW50cyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9td2FpdHgodW5zaWduZWQgX19leHRlbnNpb25zLCB1bnNpZ25lZCBfX2hpbnRzLCB1bnNpZ25lZCBfX2Nsb2NrKQp7CiAgX19idWlsdGluX2lhMzJfbXdhaXR4KF9fZXh0ZW5zaW9ucywgX19oaW50cywgX19jbG9jayk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX01XQUlUWElOVFJJTl9IICovCgBvcGVuY2wtYy1iYXNlLmgAcGt1aW50cmluLmgALyo9PT0tLS0tIHBtbWludHJpbi5oIC0gSW1wbGVtZW50YXRpb24gb2YgU1NFMyBpbnRyaW5zaWNzIG9uIFBvd2VyUEMgLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogSW1wbGVtZW50ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpbmNsdWRlZCBpbiB0aGUgSW50ZWwgQysrIENvbXBpbGVyCiAgIFVzZXIgR3VpZGUgYW5kIFJlZmVyZW5jZSwgdmVyc2lvbiA5LjAuICAqLwoKI2lmbmRlZiBOT19XQVJOX1g4Nl9JTlRSSU5TSUNTCi8qIFRoaXMgaGVhZGVyIGlzIGRpc3RyaWJ1dGVkIHRvIHNpbXBsaWZ5IHBvcnRpbmcgeDg2XzY0IGNvZGUgdGhhdAogICBtYWtlcyBleHBsaWNpdCB1c2Ugb2YgSW50ZWwgaW50cmluc2ljcyB0byBwb3dlcnBjNjRsZS4KICAgSXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdHMgYXJlCiAgIGFjY2VwdGFibGUgYW5kIG1ha2UgYWRkaXRpb25hbCBjaGFuZ2VzIGFzIG5lY2Vzc2FyeS4KICAgTm90ZSB0aGF0IG11Y2ggY29kZSB0aGF0IHVzZXMgSW50ZWwgaW50cmluc2ljcyBjYW4gYmUgcmV3cml0dGVuIGluCiAgIHN0YW5kYXJkIEMgb3IgR05VIEMgZXh0ZW5zaW9ucywgd2hpY2ggYXJlIG1vcmUgcG9ydGFibGUgYW5kIGJldHRlcgogICBvcHRpbWl6ZWQgYWNyb3NzIG11bHRpcGxlIHRhcmdldHMuCgogICBJbiB0aGUgc3BlY2lmaWMgY2FzZSBvZiBYODYgU1NFMyBpbnRyaW5zaWNzLCB0aGUgUG93ZXJQQyBWTVgvVlNYIElTQQogICBpcyBhIGdvb2QgbWF0Y2ggZm9yIG1vc3QgU0lNRCBvcGVyYXRpb25zLiAgSG93ZXZlciB0aGUgSG9yaXpvbnRhbAogICBhZGQvc3ViIHJlcXVpcmVzIHRoZSBkYXRhIHBhaXJzIGJlIHBlcm11dGVkIGludG8gYSBzZXBhcmF0ZQogICByZWdpc3RlcnMgd2l0aCB2ZXJ0aWNhbCBldmVuL29kZCBhbGlnbm1lbnQgZm9yIHRoZSBvcGVyYXRpb24uCiAgIEFuZCB0aGUgYWRkc3ViIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgc2lnbiBvZiBvbmx5IHRoZSBldmVuIG51bWJlcmVkCiAgIGVsZW1lbnRzIGJlIGZsaXBwZWQgKHhvcmVkIHdpdGggLTAuMCkuCiAgIEZvciBsYXJnZXIgYmxvY2tzIG9mIGNvZGUgdXNpbmcgdGhlc2UgaW50cmluc2ljIGltcGxlbWVudGF0aW9ucywKICAgdGhlIGNvbXBpbGVyIGJlIHNob3VsZCBiZSBhYmxlIHRvIHNjaGVkdWxlIGluc3RydWN0aW9ucyB0byBhdm9pZAogICBhZGRpdGlvbmFsIGxhdGVuY3kuCgogICBJbiB0aGUgc3BlY2lmaWMgY2FzZSBvZiB0aGUgbW9uaXRvciBhbmQgbXdhaXQgaW5zdHJ1Y3Rpb25zIHRoZXJlIGFyZQogICBubyBkaXJlY3QgZXF1aXZhbGVudCBpbiB0aGUgUG93ZXJJU0EgYXQgdGhpcyB0aW1lLiAgU28gdGhvc2UKICAgaW50cmluc2ljcyBhcmUgbm90IGltcGxlbWVudGVkLiAgKi8KI2Vycm9yICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgd2FybmluZy4iCiNlbmRpZgoKI2lmbmRlZiBQTU1JTlRSSU5fSF8KI2RlZmluZSBQTU1JTlRSSU5fSF8KCiNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pCgovKiBXZSBuZWVkIGRlZmluaXRpb25zIGZyb20gdGhlIFNTRTIgYW5kIFNTRSBoZWFkZXIgZmlsZXMqLwojaW5jbHVkZSA8ZW1taW50cmluLmg+CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc3ViX3BzIChfX20xMjggX19YLCBfX20xMjggX19ZKQp7CiAgY29uc3QgX192NHNmIGV2ZW5fbjAgPSB7LTAuMCwgMC4wLCAtMC4wLCAwLjB9OwogIF9fdjRzZiBldmVuX25lZ19ZID0gdmVjX3hvcihfX1ksIGV2ZW5fbjApOwogIHJldHVybiAoX19tMTI4KSB2ZWNfYWRkIChfX1gsIGV2ZW5fbmVnX1kpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZHN1Yl9wZCAoX19tMTI4ZCBfX1gsIF9fbTEyOGQgX19ZKQp7CiAgY29uc3QgX192MmRmIGV2ZW5fbjAgPSB7LTAuMCwgMC4wfTsKICBfX3YyZGYgZXZlbl9uZWdfWSA9IHZlY194b3IoX19ZLCBldmVuX24wKTsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19hZGQgKF9fWCwgZXZlbl9uZWdfWSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkX3BzIChfX20xMjggX19YLCBfX20xMjggX19ZKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB4Zm9ybTIgPSB7CiAgICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsCiAgICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgIDB4MTgsIDB4MTksIDB4MUEsIDB4MUIKICAgIH07CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB4Zm9ybTEgPSB7CiAgICAgIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCiAgICAgIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCiAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsCiAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYKICAgIH07CiAgcmV0dXJuIChfX20xMjgpIHZlY19hZGQgKHZlY19wZXJtICgoX192NHNmKSBfX1gsIChfX3Y0c2YpIF9fWSwgeGZvcm0yKSwKCQkJICAgdmVjX3Blcm0gKChfX3Y0c2YpIF9fWCwgKF9fdjRzZikgX19ZLCB4Zm9ybTEpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJfcHMgKF9fbTEyOCBfX1gsIF9fbTEyOCBfX1kpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHhmb3JtMiA9IHsKICAgICAgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywKICAgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQgogICAgfTsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHhmb3JtMSA9IHsKICAgICAgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRgogICAgfTsKICByZXR1cm4gKF9fbTEyOCkgdmVjX3N1YiAodmVjX3Blcm0gKChfX3Y0c2YpIF9fWCwgKF9fdjRzZikgX19ZLCB4Zm9ybTIpLAoJCQkgICB2ZWNfcGVybSAoKF9fdjRzZikgX19YLCAoX192NHNmKSBfX1ksIHhmb3JtMSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hhZGRfcGQgKF9fbTEyOGQgX19YLCBfX20xMjhkIF9fWSkKewogIHJldHVybiAoX19tMTI4ZCkgdmVjX2FkZCAodmVjX21lcmdlaCAoKF9fdjJkZikgX19YLCAoX192MmRmKV9fWSksCgkJCQkgIHZlY19tZXJnZWwgKChfX3YyZGYpIF9fWCwgKF9fdjJkZilfX1kpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3ViX3BkIChfX20xMjhkIF9fWCwgX19tMTI4ZCBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19zdWIgKHZlY19tZXJnZWggKChfX3YyZGYpIF9fWCwgKF9fdjJkZilfX1kpLAoJCQkgICAgdmVjX21lcmdlbCAoKF9fdjJkZikgX19YLCAoX192MmRmKV9fWSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZWhkdXBfcHMgKF9fbTEyOCBfX1gpCnsKICByZXR1cm4gKF9fbTEyOCl2ZWNfbWVyZ2VvICgoX192NHN1KV9fWCwgKF9fdjRzdSlfX1gpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZWxkdXBfcHMgKF9fbTEyOCBfX1gpCnsKICByZXR1cm4gKF9fbTEyOCl2ZWNfbWVyZ2VlICgoX192NHN1KV9fWCwgKF9fdjRzdSlfX1gpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRkdXBfcGQgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfc3BsYXRzICgqX19QKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlZHVwX3BkIChfX20xMjhkIF9fWCkKewogIHJldHVybiBfbW1fc2h1ZmZsZV9wZCAoX19YLCBfX1gsIF9NTV9TSFVGRkxFMiAoMCwwKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbGRkcXVfc2kxMjggKF9fbTEyOGkgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgKHZlY192c3hfbGQoMCwgKHNpZ25lZCBpbnQgY29uc3QgKilfX1ApKTsKfQoKLyogUE9XRVI4IC8gUE9XRVI5IGhhdmUgbm8gZXF1aXZhbGVudCBmb3IgX21tX21vbml0b3Igbm9yIF9tbV93YWl0LiAgKi8KCiNlbHNlCiNpbmNsdWRlX25leHQgPHBtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIFBNTUlOVFJJTl9IXyAqLwoALCAoLTEpPQBVbmtub3duIGVuY29kaW5nIABwYXR0ZXJuIHRvbyBsYXJnZSAtIGNvbXBpbGUgZmFpbGVkAFx3AHRyYWlsaW5nIFwAQWhvbQBLYXRha2FuYQBMeWNpYW4AUGFsbXlyZW5lAFMAVGFuZ3V0AFNJR0JVUwAlLipzAC9wcm9jL3NlbGYvZXhlACVzOiBvcGVuIGZhaWxlZDogZXJybm89JWQAd2NoYXJfdABkZWNsdHlwZShhdXRvKQBwcABTaQBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3RhdHVzL3N0YXR1c29yLmNjAGluZgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JzYS9ibGluZGluZy5jAEFFUy1HQ00gRGVjcnlwdGlvbiBLQVQAcGxhdGZvcm06IG4vYQB1bmtub3duIGxpYnJhcnkAY29uZmlndXJhdGlvbiBmaWxlIHJvdXRpbmVzAFBLQ1M4IHJvdXRpbmVzAFByb3RvY29sIEJ1ZmZlciBtYXAgdXNhZ2UgZXJyb3I6CgBreXRoZS5wcm90by5jb21tb24uTm9kZUluZm8uZGVmaW5pdGlvbgBreXRoZS5wcm90by5jb21tb24uQ29ycHVzUGF0aC5jb3JwdXMAa3l0aGUucHJvdG8uY29tbW9uLkxhbmd1YWdlLm5hbWUAb3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9zdG9yYWdlLnBiLmNjAC9reXRoZV9jeHhfZXh0cmFjdG9yX3Jvb3QAPHN0ZGluOgBQcmV2aW91cyByZWNvcmQgZm9yIABhdng1MTJmcDE2aW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnZibWkyaW50cmluLmggLSBWQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZibWkyaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZCTUkySU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZCTUkySU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2Ym1pMiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19jb21wcmVzc19lcGkxNihfX201MTJpIF9fUywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGk1MTJfbWFzayAoKF9fdjMyaGkpIF9fRCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9jb21wcmVzc19lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTUxMl9tYXNrICgoX192MzJoaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzX2VwaTgoX19tNTEyaSBfX1MsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3FpNTEyX21hc2sgKChfX3Y2NHFpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfY29tcHJlc3NfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTE2KHZvaWQgKl9fUCwgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGk1MTJfbWFzayAoKF9fdjMyaGkgKikgX19QLCAoX192MzJoaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTgodm9pZCAqX19QLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fRCkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVxaTUxMl9tYXNrICgoX192NjRxaSAqKSBfX1AsIChfX3Y2NHFpKSBfX0QsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZXhwYW5kX2VwaTE2KF9fbTUxMmkgX19TLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGk1MTJfbWFzayAoKF9fdjMyaGkpIF9fRCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpNTEyX21hc2sgKChfX3YzMmhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZXhwYW5kX2VwaTgoX19tNTEyaSBfX1MsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2V4cGFuZF9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2V4cGFuZGxvYWR1X2VwaTE2KF9fbTUxMmkgX19TLCBfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTUxMl9tYXNrICgoY29uc3QgX192MzJoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9lcGkxNihfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTUxMl9tYXNrICgoY29uc3QgX192MzJoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19leHBhbmRsb2FkdV9lcGk4KF9fbTUxMmkgX19TLCBfX21tYXNrNjQgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTUxMl9tYXNrICgoY29uc3QgX192NjRxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192NjRxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9lcGk4KF9fbW1hc2s2NCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHFpNTEyX21hc2sgKChjb25zdCBfX3Y2NHFpICopX19QLAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCiNkZWZpbmUgX21tNTEyX3NobGRpX2VwaTY0KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaGxkcTUxMigoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NobGRpX2VwaTY0KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NobGRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9zaGxkaV9lcGkzMihBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZGQ1MTIoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NobGRpX2VwaTMyKFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShTKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaGxkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NobGRpX2VwaTE2KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaGxkdzUxMigoX192MzJoaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hsZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NobGRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NobGRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2hyZGlfZXBpNjQoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmRxNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hyZGlfZXBpNjQoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2hyZGlfZXBpNjQoVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NocmRpX2VwaTMyKEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJkZDUxMigoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hyZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2hyZGlfZXBpMzIoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NocmRpX2VwaTMyKFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NocmRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2hyZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR3NTEyKChfX3YzMmhpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKShfX201MTJpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHJkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zaHJkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2hyZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hsZHZfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNobGR2cTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hsZHZfZXBpNjQoX19tNTEyaSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9zaGxkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NobGR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9zaGxkdl9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19zaGxkdl9lcGkzMihfX201MTJpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9zaGxkdl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hsZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNobGR2dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hsZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hsZHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX3NocmR2X2VwaTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJkdnE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX3NocmR2X2VwaTY0KF9fbTUxMmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hyZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hyZHZfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hyZHZfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR2ZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hyZHZfZXBpMzIoX19tNTEyaSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NocmR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3NocmR2X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaHJkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hyZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR2dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hyZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoKAC8qPT09LS0tLS0tIGF2eDUxMnZsdnAyaW50ZXJzZWN0aW50cmluLmggLSBWTCBWUDJJTlRFUlNFQ1QgaW50cmluc2ljcyAtLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmx2cDJpbnRlcnNlY3RpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9BVlg1MTJWTFZQMklOVEVSU0VDVF9ICiNkZWZpbmUgX0FWWDUxMlZMVlAySU5URVJTRUNUX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJ2cDJpbnRlcnNlY3QiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZwMmludGVyc2VjdCIpLCBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIGR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1REIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGkzMl0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggaTMyXQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2XzJpbnRlcnNlY3RfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfZF8yNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iLCBfX20wLCBfX20xKTsKfQoKLy8vIFN0b3JlLCBpbiBhbiBldmVuL29kZCBwYWlyIG9mIG1hc2sgcmVnaXN0ZXJzLCB0aGUgaW5kaWNhdG9ycyBvZiB0aGUKLy8vIGxvY2F0aW9ucyBvZiB2YWx1ZSBtYXRjaGVzIGJldHdlZW4gcXVhZHdvcmRzIGluIG9wZXJhbmRzIF9fYSBhbmQgX19iLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQMklOVEVSU0VDVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggaTY0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBpNjRdCi8vLyBccGFyYW0gX19tMAovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gOC1iaXQgbWFzawpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfMmludGVyc2VjdF9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IsIF9fbW1hc2s4ICpfX20wLCBfX21tYXNrOCAqX19tMSkgewogIF9fYnVpbHRpbl9pYTMyX3ZwMmludGVyc2VjdF9xXzI1NigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IsIF9fbTAsIF9fbTEpOwp9CgovLy8gU3RvcmUsIGluIGFuIGV2ZW4vb2RkIHBhaXIgb2YgbWFzayByZWdpc3RlcnMsIHRoZSBpbmRpY2F0b3JzIG9mIHRoZQovLy8gbG9jYXRpb25zIG9mIHZhbHVlIG1hdGNoZXMgYmV0d2VlbiBkd29yZHMgaW4gb3BlcmFuZHMgX19hIGFuZCBfX2IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlAySU5URVJTRUNURCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0KLy8vIFxwYXJhbSBfX20wCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gOC1iaXQgbWFzawovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV8yaW50ZXJzZWN0X2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYiwgX19tbWFzazggKl9fbTAsIF9fbW1hc2s4ICpfX20xKSB7CiAgX19idWlsdGluX2lhMzJfdnAyaW50ZXJzZWN0X2RfMTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fYiwgX19tMCwgX19tMSk7Cn0KCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIHF1YWR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1RRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tXzJpbnRlcnNlY3RfZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfcV8xMjgoKF9fdjJkaSlfX2EsIChfX3YyZGkpX19iLCBfX20wLCBfX20xKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGlhMzJpbnRyaW4uaABydG1pbnRyaW4uaAB2cGNsbXVscWRxaW50cmluLmgAZnV6emVyL0Z1enplZERhdGFQcm92aWRlci5oAG9wZW5tcF93cmFwcGVycy9jb21wbGV4X2NtYXRoLmgALy89PT0tLSBzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gQ29tbW9uIHBhcnQgb2YgdGhlIHB1YmxpYyBzYW5pdGl6ZXIgaW50ZXJmYWNlLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKI2RlZmluZSBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKCiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKLy8gR0NDIGRvZXMgbm90IHVuZGVyc3RhbmQgX19oYXNfZmVhdHVyZS4KI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCiNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKLy8gQXJndW1lbnRzIGZvciBfX3Nhbml0aXplcl9zYW5kYm94X29uX25vdGlmeSgpIGJlbG93Lgp0eXBlZGVmIHN0cnVjdCB7CiAgLy8gRW5hYmxlIHNhbmRib3ggc3VwcG9ydCBpbiBzYW5pdGl6ZXIgY292ZXJhZ2UuCiAgaW50IGNvdmVyYWdlX3NhbmRib3hlZDsKICAvLyBGaWxlIGRlc2NyaXB0b3IgdG8gd3JpdGUgY292ZXJhZ2UgZGF0YSB0by4gSWYgLTEgaXMgcGFzc2VkLCBhIGZpbGUgd2lsbAogIC8vIGJlIHByZS1vcGVuZWQgYnkgX19zYW5pdGl6ZXJfc2FuZG9ieF9vbl9ub3RpZnkoKS4gVGhpcyBmaWVsZCBoYXMgbm8KICAvLyBlZmZlY3QgaWYgY292ZXJhZ2Vfc2FuZGJveGVkID09IDAuCiAgaW50cHRyX3QgY292ZXJhZ2VfZmQ7CiAgLy8gSWYgbm9uLXplcm8sIHNwbGl0IHRoZSBjb3ZlcmFnZSBkYXRhIGludG8gd2VsbC1mb3JtZWQgYmxvY2tzLiBUaGlzIGlzCiAgLy8gdXNlZnVsIHdoZW4gY292ZXJhZ2VfZmQgaXMgYSBzb2NrZXQgZGVzY3JpcHRvci4gRWFjaCBibG9jayB3aWxsIGNvbnRhaW4KICAvLyBhIGhlYWRlciwgYWxsb3dpbmcgZGF0YSBmcm9tIG11bHRpcGxlIHByb2Nlc3NlcyB0byBiZSBzZW50IG92ZXIgdGhlIHNhbWUKICAvLyBzb2NrZXQuCiAgdW5zaWduZWQgaW50IGNvdmVyYWdlX21heF9ibG9ja19zaXplOwp9IF9fc2FuaXRpemVyX3NhbmRib3hfYXJndW1lbnRzOwoKLy8gVGVsbCB0aGUgdG9vbHMgdG8gd3JpdGUgdGhlaXIgcmVwb3J0cyB0byAicGF0aC48cGlkPiIgaW5zdGVhZCBvZiBzdGRlcnIuCnZvaWQgX19zYW5pdGl6ZXJfc2V0X3JlcG9ydF9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwovLyBUZWxsIHRoZSB0b29scyB0byB3cml0ZSB0aGVpciByZXBvcnRzIHRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IKLy8gKGNhc3RlZCB0byB2b2lkICopLgp2b2lkIF9fc2FuaXRpemVyX3NldF9yZXBvcnRfZmQodm9pZCAqZmQpOwovLyBHZXQgdGhlIGN1cnJlbnQgZnVsbCByZXBvcnQgZmlsZSBwYXRoLCBpZiBhIHBhdGggd2FzIHNwZWNpZmllZCBieQovLyBhbiBlYXJsaWVyIGNhbGwgdG8gX19zYW5pdGl6ZXJfc2V0X3JlcG9ydF9wYXRoLiBSZXR1cm5zIG51bGwgb3RoZXJ3aXNlLgpjb25zdCBjaGFyICpfX3Nhbml0aXplcl9nZXRfcmVwb3J0X3BhdGgoKTsKCi8vIE5vdGlmeSB0aGUgdG9vbHMgdGhhdCB0aGUgc2FuZGJveCBpcyBnb2luZyB0byBiZSB0dXJuZWQgb24uIFRoZSByZXNlcnZlZAovLyBwYXJhbWV0ZXIgd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8gaG9sZCBhIHN0cnVjdHVyZSB3aXRoIGZ1bmN0aW9ucwovLyB0aGF0IHRoZSB0b29scyBtYXkgY2FsbCB0byBieXBhc3MgdGhlIHNhbmRib3guCnZvaWQgX19zYW5pdGl6ZXJfc2FuZGJveF9vbl9ub3RpZnkoX19zYW5pdGl6ZXJfc2FuZGJveF9hcmd1bWVudHMgKmFyZ3MpOwoKLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRvb2wgd2hlbiBpdCBoYXMganVzdCBmaW5pc2hlZCByZXBvcnRpbmcKLy8gYW4gZXJyb3IuICdlcnJvcl9zdW1tYXJ5JyBpcyBhIG9uZS1saW5lIHN0cmluZyB0aGF0IHN1bW1hcml6ZXMKLy8gdGhlIGVycm9yIG1lc3NhZ2UuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC4Kdm9pZCBfX3Nhbml0aXplcl9yZXBvcnRfZXJyb3Jfc3VtbWFyeShjb25zdCBjaGFyICplcnJvcl9zdW1tYXJ5KTsKCi8vIFNvbWUgb2YgdGhlIHNhbml0aXplcnMgKGZvciBleGFtcGxlIEFTYW4vVFNhbikgY291bGQgbWlzcyBidWdzIHRoYXQgaGFwcGVuCi8vIGluIHVuYWxpZ25lZCBsb2Fkcy9zdG9yZXMuIFRvIGZpbmQgc3VjaCBidWdzIHJlbGlhYmx5LCB5b3UgbmVlZCB0byByZXBsYWNlCi8vIHBsYWluIHVuYWxpZ25lZCBsb2Fkcy9zdG9yZXMgd2l0aCB0aGVzZSBjYWxscy4KCi8vLyBMb2FkcyBhIDE2LWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDE2X3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQxNihjb25zdCB2b2lkICpwKTsKCi8vLyBMb2FkcyBhIDMyLWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDMyX3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQzMihjb25zdCB2b2lkICpwKTsKCi8vLyBMb2FkcyBhIDY0LWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDY0X3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQ2NChjb25zdCB2b2lkICpwKTsKCi8vLyBTdG9yZXMgYSAxNi1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDE2LWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmUxNih2b2lkICpwLCB1aW50MTZfdCB4KTsKCi8vLyBTdG9yZXMgYSAzMi1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDMyLWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmUzMih2b2lkICpwLCB1aW50MzJfdCB4KTsKCi8vLyBTdG9yZXMgYSA2NC1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDY0LWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmU2NCh2b2lkICpwLCB1aW50NjRfdCB4KTsKCi8vIFJldHVybnMgMSBvbiB0aGUgZmlyc3QgY2FsbCwgdGhlbiByZXR1cm5zIDAgdGhlcmVhZnRlci4gIENhbGxlZCBieSB0aGUgdG9vbAovLyB0byBlbnN1cmUgb25seSBvbmUgcmVwb3J0IGlzIHByaW50ZWQgd2hlbiBtdWx0aXBsZSBlcnJvcnMgb2NjdXIKLy8gc2ltdWx0YW5lb3VzbHkuCmludCBfX3Nhbml0aXplcl9hY3F1aXJlX2NyYXNoX3N0YXRlKCk7CgovLy8gQW5ub3RhdGVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udGlndW91cyBjb250YWluZXIsIHN1Y2ggYXMKLy8vIDxjPnN0ZDo6dmVjdG9yPC9jPiwgPGM+c3RkOjpzdHJpbmc8L2M+LCBvciBzaW1pbGFyLgovLy8KLy8vIEEgY29udGlndW91cyBjb250YWluZXIgaXMgYSBjb250YWluZXIgdGhhdCBrZWVwcyBhbGwgb2YgaXRzIGVsZW1lbnRzCi8vLyBpbiBhIGNvbnRpZ3VvdXMgcmVnaW9uIG9mIG1lbW9yeS4gVGhlIGNvbnRhaW5lciBvd25zIHRoZSByZWdpb24gb2YgbWVtb3J5Ci8vLyA8Yz5bYmVnLCBlbmQpPC9jPjsgdGhlIG1lbW9yeSA8Yz5bYmVnLCBtaWQpPC9jPiBpcyB1c2VkIHRvIHN0b3JlIHRoZQovLy8gY3VycmVudCBlbGVtZW50cywgYW5kIHRoZSBtZW1vcnkgPGM+W21pZCwgZW5kKTwvYz4gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZQovLy8gZWxlbWVudHMgKDxjPmJlZyA8PSBtaWQgPD0gZW5kPC9jPikuIEZvciBleGFtcGxlLCBpbgovLy8gPGM+c3RkOjp2ZWN0b3I8PiB2PC9jPjoKLy8vCi8vLyBcY29kZQovLy8gICBiZWcgPSAmdlswXTsKLy8vICAgZW5kID0gYmVnICsgdi5jYXBhY2l0eSgpICogc2l6ZW9mKHZbMF0pOwovLy8gICBtaWQgPSBiZWcgKyB2LnNpemUoKSAgICAgKiBzaXplb2YodlswXSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgYW5ub3RhdGlvbiB0ZWxscyB0aGUgU2FuaXRpemVyIHRvb2wgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlCi8vLyBjb250YWluZXIgc28gdGhhdCB0aGUgdG9vbCBjYW4gcmVwb3J0IGVycm9ycyB3aGVuIG1lbW9yeSBmcm9tCi8vLyA8Yz5bbWlkLCBlbmQpPC9jPiBpcyBhY2Nlc3NlZC4gSW5zZXJ0IHRoaXMgYW5ub3RhdGlvbiBpbnRvIG1ldGhvZHMgbGlrZQovLy8gPGM+cHVzaF9iYWNrKCk8L2M+IG9yIDxjPnBvcF9iYWNrKCk8L2M+LiBTdXBwbHkgdGhlIG9sZCBhbmQgbmV3IHZhbHVlcyBvZgovLy8gPGM+bWlkPC9jPig8Yz48aT5vbGRfbWlkPC9pPjwvYz4gYW5kIDxjPjxpPm5ld19taWQ8L2k+PC9jPikuIEluIHRoZSBpbml0aWFsCi8vLyBzdGF0ZSA8Yz5taWQgPT0gZW5kPC9jPiwgc28gdGhhdCBzaG91bGQgYmUgdGhlIGZpbmFsIHN0YXRlIHdoZW4gdGhlCi8vLyBjb250YWluZXIgaXMgZGVzdHJveWVkIG9yIHdoZW4gdGhlIGNvbnRhaW5lciByZWFsbG9jYXRlcyB0aGUgc3RvcmFnZS4KLy8vCi8vLyBGb3IgQVNhbiwgPGM+PGk+YmVnPC9pPjwvYz4gc2hvdWxkIGJlIDgtYWxpZ25lZCBhbmQgPGM+PGk+ZW5kPC9pPjwvYz4KLy8vIHNob3VsZCBiZSBlaXRoZXIgOC1hbGlnbmVkIG9yIGl0IHNob3VsZCBwb2ludCB0byB0aGUgZW5kIG9mIGEgc2VwYXJhdGUKLy8vIGhlYXAtLCBzdGFjay0sIG9yIGdsb2JhbC1hbGxvY2F0ZWQgYnVmZmVyLiBTbyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgd2lsbAovLy8gbm90IHdvcms6Ci8vLwovLy8gXGNvZGUKLy8vICAgaW50NjRfdCB4WzJdOyAvLyAxNiBieXRlcywgOC1hbGlnbmVkCi8vLyAgIGNoYXIgKmJlZyA9IChjaGFyICopJnhbMF07Ci8vLyAgIGNoYXIgKmVuZCA9IGJlZyArIDEyOyAvLyBOb3QgOC1hbGlnbmVkLCBub3QgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCi8vLyBcZW5kY29kZQovLy8KLy8vIFRoZSBmb2xsb3dpbmcsIGhvd2V2ZXIsIHdpbGwgd29yazoKLy8vIFxjb2RlCi8vLyAgIGludDMyX3QgeFszXTsgLy8gMTIgYnl0ZXMsIGJ1dCA4LWFsaWduZWQgdW5kZXIgQVNhbi4KLy8vICAgY2hhciAqYmVnID0gKGNoYXIqKSZ4WzBdOwovLy8gICBjaGFyICplbmQgPSBiZWcgKyAxMjsgLy8gTm90IDgtYWxpZ25lZCwgYnV0IGlzIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcgovLy8gXGVuZGNvZGUKLy8vCi8vLyBcbm90ZSAgVXNlIHRoaXMgZnVuY3Rpb24gd2l0aCBjYXV0aW9uIGFuZCBkbyBub3QgdXNlIGZvciBhbnl0aGluZyBvdGhlcgovLy8gdGhhbiB2ZWN0b3ItbGlrZSBjbGFzc2VzLgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gZW5kIEVuZCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIG9sZF9taWQgT2xkIG1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIG5ld19taWQgTmV3IG1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgp2b2lkIF9fc2FuaXRpemVyX2Fubm90YXRlX2NvbnRpZ3VvdXNfY29udGFpbmVyKGNvbnN0IHZvaWQgKmJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqb2xkX21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpuZXdfbWlkKTsKCi8vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRpZ3VvdXMgY29udGFpbmVyIDxjPltiZWcsIGVuZCk8L2M+IGlzIHByb3Blcmx5Ci8vLyBwb2lzb25lZC4KLy8vCi8vLyBQcm9wZXIgcG9pc29uaW5nIGNvdWxkIG9jY3VyLCBmb3IgZXhhbXBsZSwgd2l0aAovLy8gPGM+X19zYW5pdGl6ZXJfYW5ub3RhdGVfY29udGlndW91c19jb250YWluZXI8L2M+KSwgdGhhdCBpcywgaWYKLy8vIDxjPltiZWcsIG1pZCk8L2M+IGlzIGFkZHJlc3NhYmxlIGFuZCA8Yz5bbWlkLCBlbmQpPC9jPiBpcyB1bmFkZHJlc3NhYmxlLgovLy8gRnVsbCB2ZXJpZmljYXRpb24gcmVxdWlyZXMgTyAoPGM+ZW5kIC0gYmVnPC9jPikgdGltZTsgdGhpcyBmdW5jdGlvbiB0cmllcwovLy8gdG8gYXZvaWQgc3VjaCBjb21wbGV4aXR5IGJ5IHRvdWNoaW5nIG9ubHkgcGFydHMgb2YgdGhlIGNvbnRhaW5lciBhcm91bmQKLy8vIDxjPjxpPmJlZzwvaT48L2M+LCA8Yz48aT5taWQ8L2k+PC9jPiwgYW5kIDxjPjxpPmVuZDwvaT48L2M+LgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gbWlkIE1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIGVuZCBPbGQgZW5kIG9mIG1lbW9yeSByZWdpb24uCi8vLwovLy8gXHJldHVybnMgVHJ1ZSBpZiB0aGUgY29udGlndW91cyBjb250YWluZXIgPGM+W2JlZywgZW5kKTwvYz4gaXMgcHJvcGVybHkKLy8vICBwb2lzb25lZC4KaW50IF9fc2FuaXRpemVyX3ZlcmlmeV9jb250aWd1b3VzX2NvbnRhaW5lcihjb25zdCB2b2lkICpiZWcsIGNvbnN0IHZvaWQgKm1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQpOwoKLy8vIFNpbWlsYXIgdG8gPGM+X19zYW5pdGl6ZXJfdmVyaWZ5X2NvbnRpZ3VvdXNfY29udGFpbmVyKCk8L2M+IGJ1dCBhbHNvCi8vLyByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBpbXByb3Blcmx5IHBvaXNvbmVkIGJ5dGUuCi8vLwovLy8gUmV0dXJucyBOVUxMIGlmIHRoZSBhcmVhIGlzIHBvaXNvbmVkIHByb3Blcmx5LgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gbWlkIE1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIGVuZCBPbGQgZW5kIG9mIG1lbW9yeSByZWdpb24uCi8vLwovLy8gXHJldHVybnMgVGhlIGJhZCBhZGRyZXNzIG9yIE5VTEwuCmNvbnN0IHZvaWQgKl9fc2FuaXRpemVyX2NvbnRpZ3VvdXNfY29udGFpbmVyX2ZpbmRfYmFkX2FkZHJlc3MoY29uc3Qgdm9pZCAqYmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKm1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQpOwoKLy8vIFByaW50cyB0aGUgc3RhY2sgdHJhY2UgbGVhZGluZyB0byB0aGlzIGNhbGwgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tIHRoZQovLy8gZGVidWdnZXIpLgp2b2lkIF9fc2FuaXRpemVyX3ByaW50X3N0YWNrX3RyYWNlKHZvaWQpOwoKLy8gU3ltYm9saXplcyB0aGUgc3VwcGxpZWQgJ3BjJyB1c2luZyB0aGUgZm9ybWF0IHN0cmluZyAnZm10Jy4KLy8gT3V0cHV0cyBhdCBtb3N0ICdvdXRfYnVmX3NpemUnIGJ5dGVzIGludG8gJ291dF9idWYnLgovLyBJZiAnb3V0X2J1ZicgaXMgbm90IGVtcHR5IHRoZW4gb3V0cHV0IGlzIHplcm8gb3IgbW9yZSBub24gZW1wdHkgQyBzdHJpbmdzCi8vIGZvbGxvd2VkIGJ5IHNpbmdsZSBlbXB0eSBDIHN0cmluZy4gTXVsdGlwbGUgc3RyaW5ncyBjYW4gYmUgcmV0dXJuZWQgaWYgUEMKLy8gY29ycmVzcG9uZHMgdG8gaW5saW5lZCBmdW5jdGlvbi4gSW5saW5lZCBmcmFtZXMgYXJlIHByaW50ZWQgaW4gdGhlIG9yZGVyCi8vIGZyb20gIm1vc3QtaW5saW5lZCIgdG8gdGhlICJsZWFzdC1pbmxpbmVkIiwgc28gdGhlIGxhc3QgZnJhbWUgc2hvdWxkIGJlIHRoZQovLyBub3QgaW5saW5lZCBmdW5jdGlvbi4KLy8gSW5saW5lZCBmcmFtZXMgY2FuIGJlIHJlbW92ZWQgd2l0aCAnc3ltYm9saXplX2lubGluZV9mcmFtZXM9MCcuCi8vIFRoZSBmb3JtYXQgc3ludGF4IGlzIGRlc2NyaWJlZCBpbgovLyBsaWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RhY2t0cmFjZV9wcmludGVyLmguCnZvaWQgX19zYW5pdGl6ZXJfc3ltYm9saXplX3BjKHZvaWQgKnBjLCBjb25zdCBjaGFyICpmbXQsIGNoYXIgKm91dF9idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRfYnVmX3NpemUpOwovLyBTYW1lIGFzIF9fc2FuaXRpemVyX3N5bWJvbGl6ZV9wYywgYnV0IGZvciBkYXRhIHNlY3Rpb24gKGkuZS4gZ2xvYmFscykuCnZvaWQgX19zYW5pdGl6ZXJfc3ltYm9saXplX2dsb2JhbCh2b2lkICpkYXRhX3B0ciwgY29uc3QgY2hhciAqZm10LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqb3V0X2J1Ziwgc2l6ZV90IG91dF9idWZfc2l6ZSk7CgovLy8gU2V0cyB0aGUgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSBkZWF0aCBvbiBlcnJvci4KLy8vCi8vLyBQYXNzaW5nIDAgd2lsbCB1bnNldCB0aGUgY2FsbGJhY2suCi8vLwovLy8gXHBhcmFtIGNhbGxiYWNrIFVzZXItcHJvdmlkZWQgY2FsbGJhY2suCnZvaWQgX19zYW5pdGl6ZXJfc2V0X2RlYXRoX2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykodm9pZCkpOwoKCi8vIEludGVyY2VwdG9yIGhvb2tzLgovLyBXaGVuZXZlciBhIGxpYmMgZnVuY3Rpb24gaW50ZXJjZXB0b3IgaXMgY2FsbGVkLCBpdCBjaGVja3MgaWYgdGhlCi8vIGNvcnJlc3BvbmRpbmcgd2VhayBob29rIGlzIGRlZmluZWQsIGFuZCBjYWxscyBpdCBpZiBpdCBpcyBpbmRlZWQgZGVmaW5lZC4KLy8gVGhlIHByaW1hcnkgdXNlLWNhc2UgaXMgZGF0YS1mbG93LWd1aWRlZCBmdXp6aW5nLCB3aGVyZSB0aGUgZnV6emVyIG5lZWRzCi8vIHRvIGtub3cgd2hhdCBpcyBiZWluZyBwYXNzZWQgdG8gbGliYyBmdW5jdGlvbnMgKGZvciBleGFtcGxlIG1lbWNtcCkuCi8vIEZJWE1FOiBpbXBsZW1lbnQgbW9yZSBob29rcy4KCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5tZW1jbXAoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIGNvbXBhcmUuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfbWVtY21wKHZvaWQgKmNhbGxlZF9wYywgY29uc3Qgdm9pZCAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzMiwgc2l6ZV90IG4sIGludCByZXN1bHQpOwoKLy8vIEludGVyY2VwdG9yIGhvb2sgZm9yIDxjPnN0cm5jbXAoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIGNvbXBhcmUuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RybmNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIHNpemVfdCBuLCBpbnQgcmVzdWx0KTsKCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5zdHJuY2FzZWNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gbiBOdW1iZXIgb2YgYnl0ZXMgdG8gY29tcGFyZS4KLy8vIFxwYXJhbSByZXN1bHQgVmFsdWUgcmV0dXJuZWQgYnkgdGhlIGludGVyY2VwdGVkIGZ1bmN0aW9uLgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19zdHJuY2FzZWNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzMiwgc2l6ZV90IG4sIGludCByZXN1bHQpOwoKLy8vIEludGVyY2VwdG9yIGhvb2sgZm9yIDxjPnN0cmNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RyY21wKHZvaWQgKmNhbGxlZF9wYywgY29uc3QgY2hhciAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzMiwgaW50IHJlc3VsdCk7CgovLy8gSW50ZXJjZXB0b3IgaG9vayBmb3IgPGM+c3RyY2FzZWNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RyY2FzZWNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMyLCBpbnQgcmVzdWx0KTsKCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5zdHJzdHIoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHJlc3VsdCBWYWx1ZSByZXR1cm5lZCBieSB0aGUgaW50ZXJjZXB0ZWQgZnVuY3Rpb24uCnZvaWQgX19zYW5pdGl6ZXJfd2Vha19ob29rX3N0cnN0cih2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIGNoYXIgKnJlc3VsdCk7Cgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19zdHJjYXNlc3RyKHZvaWQgKmNhbGxlZF9wYywgY29uc3QgY2hhciAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIGNoYXIgKnJlc3VsdCk7Cgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19tZW1tZW0odm9pZCAqY2FsbGVkX3BjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqczEsIHNpemVfdCBsZW4xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqczIsIHNpemVfdCBsZW4yLCB2b2lkICpyZXN1bHQpOwoKLy8gUHJpbnRzIHN0YWNrIHRyYWNlcyBmb3IgYWxsIGxpdmUgaGVhcCBhbGxvY2F0aW9ucyBvcmRlcmVkIGJ5IHRvdGFsCi8vIGFsbG9jYXRpb24gc2l6ZSB1bnRpbCB0b3BfcGVyY2VudCBvZiB0b3RhbCBsaXZlIGhlYXAgaXMgc2hvd24uIHRvcF9wZXJjZW50Ci8vIHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDEwMC4gQXQgbW9zdCBtYXhfbnVtYmVyX29mX2NvbnRleHRzIGNvbnRleHRzCi8vIChzdGFjayB0cmFjZXMpIGFyZSBwcmludGVkLgovLyBFeHBlcmltZW50YWwgZmVhdHVyZSBjdXJyZW50bHkgYXZhaWxhYmxlIG9ubHkgd2l0aCBBU2FuIG9uIExpbnV4L3g4Nl82NC4Kdm9pZCBfX3Nhbml0aXplcl9wcmludF9tZW1vcnlfcHJvZmlsZShzaXplX3QgdG9wX3BlcmNlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1heF9udW1iZXJfb2ZfY29udGV4dHMpOwoKLy8vIE5vdGlmeSBBU2FuIHRoYXQgYSBmaWJlciBzd2l0Y2ggaGFzIHN0YXJ0ZWQgKHJlcXVpcmVkIG9ubHkgaWYgaW1wbGVtZW50aW5nCi8vLyB5b3VyIG93biBmaWJlciBsaWJyYXJ5KS4KLy8vCi8vLyBCZWZvcmUgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IHN0YWNrLCB5b3UgbXVzdCBjYWxsCi8vLyA8Yz5fX3Nhbml0aXplcl9zdGFydF9zd2l0Y2hfZmliZXIoKTwvYz4gd2l0aCBhIHBvaW50ZXIgdG8gdGhlIGJvdHRvbSBvZiB0aGUKLy8vIGRlc3RpbmF0aW9uIHN0YWNrIGFuZCB3aXRoIGl0cyBzaXplLiBXaGVuIGNvZGUgc3RhcnRzIHJ1bm5pbmcgb24gdGhlIG5ldwovLy8gc3RhY2ssIGl0IG11c3QgY2FsbCA8Yz5fX3Nhbml0aXplcl9maW5pc2hfc3dpdGNoX2ZpYmVyKCk8L2M+IHRvIGZpbmFsaXplCi8vLyB0aGUgc3dpdGNoLiBUaGUgPGM+X19zYW5pdGl6ZXJfc3RhcnRfc3dpdGNoX2ZpYmVyKCk8L2M+IGZ1bmN0aW9uIHRha2VzIGEKLy8vIDxjPnZvaWQqKjwvYz4gcG9pbnRlciBhcmd1bWVudCB0byBzdG9yZSB0aGUgY3VycmVudCBmYWtlIHN0YWNrIGlmIHRoZXJlIGlzCi8vLyBvbmUgKGl0IGlzIG5lY2Vzc2FyeSB3aGVuIHRoZSBydW50aW1lIG9wdGlvbgovLy8gPGM+ZGV0ZWN0X3N0YWNrX3VzZV9hZnRlcl9yZXR1cm48L2M+IGlzIGVuYWJsZWQpLgovLy8KLy8vIFdoZW4gcmVzdG9yaW5nIGEgc3RhY2ssIHRoaXMgPGM+dm9pZCoqPC9jPiBwb2ludGVyIG11c3QgYmUgZ2l2ZW4gdG8gdGhlCi8vLyA8Yz5fX3Nhbml0aXplcl9maW5pc2hfc3dpdGNoX2ZpYmVyKCk8L2M+IGZ1bmN0aW9uLiBJbiBtb3N0IGNhc2VzLCB0aGlzCi8vLyBwb2ludGVyIGNhbiBiZSBzdG9yZWQgb24gdGhlIHN0YWNrIGltbWVkaWF0ZWx5IGJlZm9yZSBzd2l0Y2hpbmcuIFdoZW4KLy8vIGxlYXZpbmcgYSBmaWJlciBkZWZpbml0ZWx5LCBOVUxMIG11c3QgYmUgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0bwovLy8gdGhlIDxjPl9fc2FuaXRpemVyX3N0YXJ0X3N3aXRjaF9maWJlcigpPC9jPiBmdW5jdGlvbiBzbyB0aGF0IHRoZSBmYWtlIHN0YWNrCi8vLyBpcyBkZXN0cm95ZWQuIElmIHlvdXIgcHJvZ3JhbSBkb2VzIG5vdCBuZWVkIHN0YWNrIHVzZS1hZnRlci1yZXR1cm4KLy8vIGRldGVjdGlvbiwgeW91IGNhbiBhbHdheXMgcGFzcyBOVUxMIHRvIHRoZXNlIHR3byBmdW5jdGlvbnMuCi8vLwovLy8gXG5vdGUgVGhlIGZha2Ugc3RhY2sgbWVjaGFuaXNtIGlzIGRpc2FibGVkIGR1cmluZyBmaWJlciBzd2l0Y2gsIHNvIGlmIGEKLy8vIHNpZ25hbCBjYWxsYmFjayBydW5zIGR1cmluZyB0aGUgc3dpdGNoLCBpdCB3aWxsIG5vdCBiZW5lZml0IGZyb20gc3RhY2sKLy8vIHVzZS1hZnRlci1yZXR1cm4gZGV0ZWN0aW9uLgovLy8KLy8vIFxwYXJhbVtvdXRdIGZha2Vfc3RhY2tfc2F2ZSBGYWtlIHN0YWNrIHNhdmUgbG9jYXRpb24uCi8vLyBccGFyYW0gYm90dG9tIEJvdHRvbSBhZGRyZXNzIG9mIHN0YWNrLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBvZiBzdGFjayBpbiBieXRlcy4Kdm9pZCBfX3Nhbml0aXplcl9zdGFydF9zd2l0Y2hfZmliZXIodm9pZCAqKmZha2Vfc3RhY2tfc2F2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYm90dG9tLCBzaXplX3Qgc2l6ZSk7CgovLy8gTm90aWZ5IEFTYW4gdGhhdCBhIGZpYmVyIHN3aXRjaCBoYXMgY29tcGxldGVkIChyZXF1aXJlZCBvbmx5IGlmCi8vLyBpbXBsZW1lbnRpbmcgeW91ciBvd24gZmliZXIgbGlicmFyeSkuCi8vLwovLy8gV2hlbiBjb2RlIHN0YXJ0cyBydW5uaW5nIG9uIHRoZSBuZXcgc3RhY2ssIGl0IG11c3QgY2FsbAovLy8gPGM+X19zYW5pdGl6ZXJfZmluaXNoX3N3aXRjaF9maWJlcigpPC9jPiB0byBmaW5hbGl6ZQovLy8gdGhlIHN3aXRjaC4gRm9yIHVzYWdlIGRldGFpbHMsIHNlZSB0aGUgZGVzY3JpcHRpb24gb2YKLy8vIDxjPl9fc2FuaXRpemVyX3N0YXJ0X3N3aXRjaF9maWJlcigpPC9jPi4KLy8vCi8vLyBccGFyYW0gZmFrZV9zdGFja19zYXZlIEZha2Ugc3RhY2sgc2F2ZSBsb2NhdGlvbi4KLy8vIFxwYXJhbVtvdXRdIGJvdHRvbV9vbGQgQm90dG9tIGFkZHJlc3Mgb2Ygb2xkIHN0YWNrLgovLy8gXHBhcmFtW291dF0gc2l6ZV9vbGQgU2l6ZSBvZiBvbGQgc3RhY2sgaW4gYnl0ZXMuCnZvaWQgX19zYW5pdGl6ZXJfZmluaXNoX3N3aXRjaF9maWJlcih2b2lkICpmYWtlX3N0YWNrX3NhdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICoqYm90dG9tX29sZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2l6ZV9vbGQpOwoKLy8gR2V0IGZ1bGwgbW9kdWxlIG5hbWUgYW5kIGNhbGN1bGF0ZSBwYyBvZmZzZXQgd2l0aGluIGl0LgovLyBSZXR1cm5zIDEgaWYgcGMgYmVsb25ncyB0byBzb21lIG1vZHVsZSwgMCBpZiBtb2R1bGUgd2FzIG5vdCBmb3VuZC4KaW50IF9fc2FuaXRpemVyX2dldF9tb2R1bGVfYW5kX29mZnNldF9mb3JfcGModm9pZCAqcGMsIGNoYXIgKm1vZHVsZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbW9kdWxlX3BhdGhfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcGNfb2Zmc2V0KTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKAE51bWJlciB0b28gYmlnIHRvIGJlIHN0b3JlZCBpbiBkb3VibGUuAGV4dGVybmFsL2t5dGhlL2t5dGhlL2N4eC9jb21tb24vanNvbl9wcm90by5jYwBJbnZhbGlkIHBhdGggcG9saWN5IHByb3ZpZGVkOiAAVW5hYmxlIHRvIHJlc29sdmUgACBmbGFnPSUjeABpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZQBiYWQgcmVwZXRpdGlvbiBvcGVyYXRvcgBbAE1hbGF5YWxhbQBNZQBNeWFubWFyAE9naGFtAFJlamFuZwBTYwBUYW1pbABWYWkAYXJlbmEgIT0gbnVsbHB0cgBlID09IGZvdW5kAHQAdW5zaWduZWQgX19pbnQxMjgAPj4AZ3MAXHgAIGFuZCBlbmRfcG9zIABNYXhpbXVtIGNhcGFjaXR5IGV4Y2VlZGVkACMATG9jawBNdXRleCBxdWV1ZSBjaGFuZ2VkIGJlbmVhdGggdXMAdGhyZWFkIHNob3VsZCBob2xkIHdyaXRlIGxvY2sgb24gTXV0ZXggJXAgJXMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9wcmltZS5jAEZGREggZmFpbGVkLgoAVUkgcm91dGluZXMASE1BQyByb3V0aW5lcwBNYXBLZXk6OkdldFN0cmluZ1ZhbHVlAGt5dGhlLnByb3RvLmNvbW1vbi5EaWFnbm9zdGljLmRldGFpbHMAa3l0aGUucHJvdG8uY29tbW9uLkRpYWdub3N0aWMuY29udGV4dF91cmwALXBpZQBLWVRIRV9BTkFMWVNJU19UQVJHRVQAbm90X01TTW9kZQAvKj09PS0tLS0gX19jbGFuZ19oaXBfbGliZGV2aWNlX2RlY2xhcmVzLmggLSBISVAgZGV2aWNlIGxpYnJhcnkgZGVjbHMgLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0NMQU5HX0hJUF9MSUJERVZJQ0VfREVDTEFSRVNfSF9fCiNkZWZpbmUgX19DTEFOR19ISVBfTElCREVWSUNFX0RFQ0xBUkVTX0hfXwoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCi8vIEJFR0lOIEZMT0FUCl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfYWNvc19mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfYWNvc2hfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9hc2luX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9hc2luaF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2F0YW4yX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2F0YW5fZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2F0YW5oX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9jYnJ0X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfY2VpbF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfY29weXNpZ25fZjMyKGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfY29zX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX25hdGl2ZV9jb3NfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfY29zaF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9jb3NwaV9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9pMF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9pMV9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXJmY19mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXJmY2ludl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXJmY3hfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2VyZl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXJmaW52X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9leHAxMF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbmF0aXZlX2V4cDEwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9leHAyX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9leHBfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX25hdGl2ZV9leHBfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2V4cG0xX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZmFic19mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2ZkaW1fZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZmxvb3JfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWFfZjMyKGZsb2F0LCBmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2ZtYXhfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1pbl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fZGV2aWNlX18gZmxvYXQgX19vY21sX2Ztb2RfZjMyKGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9mcmV4cF9mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2h5cG90X2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pbG9nYl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pc2Zpbml0ZV9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pc2luZl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pc25hbl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9qMF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9qMV9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2xkZXhwX2YzMihmbG9hdCwgaW50KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfbGdhbW1hX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9sb2cxMF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbmF0aXZlX2xvZzEwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9sb2cxcF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbG9nMl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbmF0aXZlX2xvZzJfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9sb2diX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9sb2dfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX25hdGl2ZV9sb2dfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfbW9kZl9mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBmbG9hdCAqKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9uZWFyYnlpbnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9uZXh0YWZ0ZXJfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbGVuM19mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbGVuNF9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9uY2RmX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9uY2RmaW52X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9wb3dfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9wb3duX2YzMihmbG9hdCwgaW50KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX3JjYnJ0X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfcmVtYWluZGVyX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9yZW1xdW9fZjMyKGZsb2F0LCBmbG9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3JoeXBvdF9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9yaW50X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfcmxlbjNfZjMyKGZsb2F0LCBmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3JsZW40X2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfcm91bmRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX3JzcXJ0X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc2NhbGJfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc2NhbGJuX2YzMihmbG9hdCwgaW50KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfc2lnbmJpdF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9zaW5jb3NfZjMyKGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBmbG9hdCAqKTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfc2luY29zcGlfZjMyKGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9zaW5fZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfbmF0aXZlX3Npbl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfc2luaF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9zaW5waV9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3NxcnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9uYXRpdmVfc3FydF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF90YW5fZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX3RhbmhfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfdGdhbW1hX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfdHJ1bmNfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfeTBfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfeTFfZjMyKGZsb2F0KTsKCi8vIEJFR0lOIElOVFJJTlNJQ1MKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9hZGRfcnRlX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2FkZF9ydG5fZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfYWRkX3J0cF9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9hZGRfcnR6X2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3N1Yl9ydGVfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3ViX3J0bl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zdWJfcnRwX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3N1Yl9ydHpfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbXVsX3J0ZV9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9tdWxfcnRuX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX211bF9ydHBfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbXVsX3J0el9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9kaXZfcnRlX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2Rpdl9ydG5fZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZGl2X3J0cF9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9kaXZfcnR6X2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3NxcnRfcnRlX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3FydF9ydG5fZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zcXJ0X3J0cF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3NxcnRfcnR6X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1hX3J0ZV9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1hX3J0bl9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1hX3J0cF9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1hX3J0el9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7CgpfX2RldmljZV9fIGlubGluZSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0Cl9fbGx2bV9hbWRnY25fY29zX2YzMihmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2FtZGdjbl9jb3NmKF9feCk7Cn0KX19kZXZpY2VfXyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdApfX2xsdm1fYW1kZ2NuX3JjcF9mMzIoZmxvYXQgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbWRnY25fcmNwZihfX3gpOwp9Cl9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQKX19sbHZtX2FtZGdjbl9yc3FfZjMyKGZsb2F0IF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fYW1kZ2NuX3JzcWYoX194KTsKfQpfX2RldmljZV9fIGlubGluZSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0Cl9fbGx2bV9hbWRnY25fc2luX2YzMihmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2FtZGdjbl9zaW5mKF9feCk7Cn0KLy8gRU5EIElOVFJJTlNJQ1MKLy8gRU5EIEZMT0FUCgovLyBCRUdJTiBET1VCTEUKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYWNvc19mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9hY29zaF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYXNpbl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9hc2luaF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYXRhbjJfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYXRhbl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9hdGFuaF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9jYnJ0X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9jZWlsX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9jb3B5c2lnbl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfY29zX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2Nvc2hfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9jb3NwaV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX2kwX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfaTFfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXJmY19mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9lcmZjaW52X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2VyZmN4X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2VyZl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9lcmZpbnZfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXhwMTBfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXhwMl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9leHBfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXhwbTFfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZhYnNfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZkaW1fZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZmxvb3JfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZtYV9mNjQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZtYXhfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1pbl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9mbW9kX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9mcmV4cF9mNjQoZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2h5cG90X2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lsb2diX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pc2Zpbml0ZV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfaXNpbmZfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzbmFuX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfajBfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9qMV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbGRleHBfZjY0KGRvdWJsZSwgaW50KTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX2xnYW1tYV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9sb2cxMF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9sb2cxcF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9sb2cyX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9sb2diX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2xvZ19mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX21vZGZfZjY0KGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBkb3VibGUgKik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX25lYXJieWludF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbmV4dGFmdGVyX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2xlbjNfZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9sZW40X2Y2NChkb3VibGUsIGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX25jZGZfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfbmNkZmludl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9wb3dfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9wb3duX2Y2NChkb3VibGUsIGludCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfcmNicnRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3JlbWFpbmRlcl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfcmVtcXVvX2Y2NChkb3VibGUsIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGludCAqKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcmh5cG90X2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3JpbnRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3JsZW4zX2Y2NChkb3VibGUsIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3JsZW40X2Y2NChkb3VibGUsIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcm91bmRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfcnNxcnRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3NjYWxiX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3NjYWxibl9mNjQoZG91YmxlLCBpbnQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9zaWduYml0X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfc2luY29zX2Y2NChkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBkb3VibGUgKik7Cl9fZGV2aWNlX18gZG91YmxlCl9fb2NtbF9zaW5jb3NwaV9mNjQoZG91YmxlLCBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgZG91YmxlICopOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfc2luX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX3NpbmhfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9zaW5waV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3FydF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX3Rhbl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF90YW5oX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfdGdhbW1hX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF90cnVuY19mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX3kwX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfeTFfZjY0KGRvdWJsZSk7CgovLyBCRUdJTiBJTlRSSU5TSUNTCl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2FkZF9ydGVfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYWRkX3J0bl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hZGRfcnRwX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2FkZF9ydHpfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3ViX3J0ZV9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zdWJfcnRuX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3N1Yl9ydHBfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3ViX3J0el9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9tdWxfcnRlX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX211bF9ydG5fZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbXVsX3J0cF9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9tdWxfcnR6X2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2Rpdl9ydGVfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZGl2X3J0bl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9kaXZfcnRwX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2Rpdl9ydHpfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3FydF9ydGVfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3NxcnRfcnRuX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zcXJ0X3J0cF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3FydF9ydHpfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZtYV9ydGVfZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9mbWFfcnRuX2Y2NChkb3VibGUsIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1hX3J0cF9mNjQoZG91YmxlLCBkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZtYV9ydHpfZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUpOwoKX19kZXZpY2VfXyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUKX19sbHZtX2FtZGdjbl9yY3BfZjY0KGRvdWJsZSBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2FtZGdjbl9yY3AoX194KTsKfQpfX2RldmljZV9fIGlubGluZSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZQpfX2xsdm1fYW1kZ2NuX3JzcV9mNjQoZG91YmxlIF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fYW1kZ2NuX3JzcShfX3gpOwp9CgpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX2NlaWxfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfRmxvYXQxNiBfX29jbWxfY29zX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9GbG9hdDE2IF9fb2NtbF9leHBfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2V4cDEwX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9GbG9hdDE2IF9fb2NtbF9leHAyX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfRmxvYXQxNiBfX29jbWxfZmxvb3JfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF9mbWFfZjE2KF9GbG9hdDE2LCBfRmxvYXQxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF9mYWJzX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzaW5mX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzbmFuX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9GbG9hdDE2IF9fb2NtbF9sb2dfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2xvZzEwX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9GbG9hdDE2IF9fb2NtbF9sb2cyX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfRmxvYXQxNiBfX2xsdm1fYW1kZ2NuX3JjcF9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX3JpbnRfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF9yc3FydF9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9GbG9hdDE2IF9fb2NtbF9zaW5fZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF9zcXJ0X2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfRmxvYXQxNiBfX29jbWxfdHJ1bmNfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX3Bvd25fZjE2KF9GbG9hdDE2LCBpbnQpOwoKdHlwZWRlZiBfRmxvYXQxNiBfXzJmMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgc2hvcnQgX18yaTE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwoKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NrbF9mZG90MihfXzJmMTYgYSwgX18yZjE2IGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYywgYm9vbCBzKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfY2VpbF8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfXzJmMTYgX19vY21sX2ZhYnNfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fMmYxNiBfX29jbWxfY29zXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX18yZjE2IF9fb2NtbF9leHBfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfXzJmMTYgX19vY21sX2V4cDEwXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX18yZjE2IF9fb2NtbF9leHAyXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfZmxvb3JfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkKX18yZjE2IF9fb2NtbF9mbWFfMmYxNihfXzJmMTYsIF9fMmYxNiwgX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmkxNiBfX29jbWxfaXNpbmZfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yaTE2IF9fb2NtbF9pc25hbl8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9fMmYxNiBfX29jbWxfbG9nXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX18yZjE2IF9fb2NtbF9sb2cxMF8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9fMmYxNiBfX29jbWxfbG9nMl8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gaW5saW5lIF9fMmYxNgpfX2xsdm1fYW1kZ2NuX3JjcF8yZjE2KF9fMmYxNiBfX3gpIC8vIE5vdCBjdXJyZW50bHkgZXhwb3NlZCBieSBST0NETC4KewogIHJldHVybiAoX18yZjE2KShfX2xsdm1fYW1kZ2NuX3JjcF9mMTYoX194LngpLCBfX2xsdm1fYW1kZ2NuX3JjcF9mMTYoX194LnkpKTsKfQpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9yaW50XzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfcnNxcnRfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fMmYxNiBfX29jbWxfc2luXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfc3FydF8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfXzJmMTYgX19vY21sX3RydW5jXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfcG93bl8yZjE2KF9fMmYxNiwgX18yaTE2KTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgojZW5kaWYgLy8gX19DTEFOR19ISVBfTElCREVWSUNFX0RFQ0xBUkVTX0hfXwoALyo9PT0tLS0tIF9fY2xhbmdfaGlwX3J1bnRpbWVfd3JhcHBlci5oIC0gSElQIHJ1bnRpbWUgc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8qCiAqIFdBUk5JTkc6IFRoaXMgaGVhZGVyIGlzIGludGVuZGVkIHRvIGJlIGRpcmVjdGx5IC1pbmNsdWRlJ2QgYnkKICogdGhlIGNvbXBpbGVyIGFuZCBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgaW5jbHVkZWQgYnkgdXNlcnMuCiAqCiAqLwoKI2lmbmRlZiBfX0NMQU5HX0hJUF9SVU5USU1FX1dSQVBQRVJfSF9fCiNkZWZpbmUgX19DTEFOR19ISVBfUlVOVElNRV9XUkFQUEVSX0hfXwoKI2lmIF9fSElQX18KCiNkZWZpbmUgX19ob3N0X18gX19hdHRyaWJ1dGVfXygoaG9zdCkpCiNkZWZpbmUgX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKQojZGVmaW5lIF9fZ2xvYmFsX18gX19hdHRyaWJ1dGVfXygoZ2xvYmFsKSkKI2RlZmluZSBfX3NoYXJlZF9fIF9fYXR0cmlidXRlX18oKHNoYXJlZCkpCiNkZWZpbmUgX19jb25zdGFudF9fIF9fYXR0cmlidXRlX18oKGNvbnN0YW50KSkKI2RlZmluZSBfX21hbmFnZWRfXyBfX2F0dHJpYnV0ZV9fKChtYW5hZ2VkKSkKCiNpZiAhZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgX19jcGx1c3BsdXMgPCAyMDExMDNMCiAgI2RlZmluZSBudWxscHRyIE5VTEw7CiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewogIF9fYXR0cmlidXRlX18oKF9fdmlzaWJpbGl0eV9fKCJkZWZhdWx0IikpKQogIF9fYXR0cmlidXRlX18oKHdlYWspKQogIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKICBfX2RldmljZV9fIHZvaWQgX19jeGFfcHVyZV92aXJ0dWFsKHZvaWQpIHsKICAgIF9fYnVpbHRpbl90cmFwKCk7CiAgfQogIF9fYXR0cmlidXRlX18oKF9fdmlzaWJpbGl0eV9fKCJkZWZhdWx0IikpKQogIF9fYXR0cmlidXRlX18oKHdlYWspKQogIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKICBfX2RldmljZV9fIHZvaWQgX19jeGFfZGVsZXRlZF92aXJ0dWFsKHZvaWQpIHsKICAgIF9fYnVpbHRpbl90cmFwKCk7CiAgfQp9CiNlbmRpZiAvL19fY3BsdXNwbHVzCgojaWYgIWRlZmluZWQoX19ISVBDQ19SVENfXykKI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojZWxzZQp0eXBlZGVmIF9fU0laRV9UWVBFX18gc2l6ZV90OwovLyBEZWZpbmUgbWFjcm9zIHdoaWNoIGFyZSBuZWVkZWQgdG8gZGVjbGFyZSBISVAgZGV2aWNlIEFQSSdzIHdpdGhvdXQgc3RhbmRhcmQKLy8gQy9DKysgaGVhZGVycy4gVGhpcyBpcyBmb3IgcmVhZGFiaWxpdHkgc28gdGhhdCB0aGVzZSBBUEkncyBjYW4gYmUgd3JpdHRlbgovLyB0aGUgc2FtZSB3YXkgYXMgbm9uLWhpcFJUQyB1c2UgY2FzZS4gVGhlc2UgbWFjcm9zIG5lZWQgdG8gYmUgcG9wcGVkIHNvIHRoYXQKLy8gdGhleSBkbyBub3QgcG9sbHV0ZSB1c2VycycgbmFtZSBzcGFjZS4KI3ByYWdtYSBwdXNoX21hY3JvKCJOVUxMIikKI3ByYWdtYSBwdXNoX21hY3JvKCJ1aW50MzJfdCIpCiNwcmFnbWEgcHVzaF9tYWNybygidWludDY0X3QiKQojcHJhZ21hIHB1c2hfbWFjcm8oIkNIQVJfQklUIikKI3ByYWdtYSBwdXNoX21hY3JvKCJJTlRfTUFYIikKI2RlZmluZSBOVUxMICh2b2lkICopMAojZGVmaW5lIHVpbnQzMl90IF9fVUlOVDMyX1RZUEVfXwojZGVmaW5lIHVpbnQ2NF90IF9fVUlOVDY0X1RZUEVfXwojZGVmaW5lIENIQVJfQklUIF9fQ0hBUl9CSVRfXwojZGVmaW5lIElOVF9NQVggX19JTlRNQVhfTUFYX18KI2VuZGlmIC8vIF9fSElQQ0NfUlRDX18KCnR5cGVkZWYgX19TSVpFX1RZUEVfXyBfX2hpcF9zaXplX3Q7CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZiAvL19fY3BsdXNwbHVzCgojaWYgX19ISVBfRU5BQkxFX0RFVklDRV9NQUxMT0NfXwpfX2RldmljZV9fIHZvaWQgKl9faGlwX21hbGxvYyhfX2hpcF9zaXplX3QgX19zaXplKTsKX19kZXZpY2VfXyB2b2lkICpfX2hpcF9mcmVlKHZvaWQgKl9fcHRyKTsKX19hdHRyaWJ1dGVfXygod2VhaykpIGlubGluZSBfX2RldmljZV9fIHZvaWQgKm1hbGxvYyhfX2hpcF9zaXplX3QgX19zaXplKSB7CiAgcmV0dXJuIF9faGlwX21hbGxvYyhfX3NpemUpOwp9Cl9fYXR0cmlidXRlX18oKHdlYWspKSBpbmxpbmUgX19kZXZpY2VfXyB2b2lkICpmcmVlKHZvaWQgKl9fcHRyKSB7CiAgcmV0dXJuIF9faGlwX2ZyZWUoX19wdHIpOwp9CiNlbHNlCl9fYXR0cmlidXRlX18oKHdlYWspKSBpbmxpbmUgX19kZXZpY2VfXyB2b2lkICptYWxsb2MoX19oaXBfc2l6ZV90IF9fc2l6ZSkgewogIF9fYnVpbHRpbl90cmFwKCk7CiAgcmV0dXJuICh2b2lkICopMDsKfQpfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgaW5saW5lIF9fZGV2aWNlX18gdm9pZCAqZnJlZSh2b2lkICpfX3B0cikgewogIF9fYnVpbHRpbl90cmFwKCk7CiAgcmV0dXJuICh2b2lkICopMDsKfQojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8vIGV4dGVybiAiQyIKI2VuZGlmIC8vX19jcGx1c3BsdXMKCiNpbmNsdWRlIDxfX2NsYW5nX2hpcF9saWJkZXZpY2VfZGVjbGFyZXMuaD4KI2luY2x1ZGUgPF9fY2xhbmdfaGlwX21hdGguaD4KCiNpZiBkZWZpbmVkKF9fSElQQ0NfUlRDX18pCiNpbmNsdWRlIDxfX2NsYW5nX2hpcF9jbWF0aC5oPgojZWxzZQojaW5jbHVkZSA8X19jbGFuZ19jdWRhX21hdGhfZm9yd2FyZF9kZWNsYXJlcy5oPgojaW5jbHVkZSA8X19jbGFuZ19oaXBfY21hdGguaD4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9jb21wbGV4X2J1aWx0aW5zLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjb21wbGV4PgojaW5jbHVkZSA8bmV3PgojZW5kaWYgLy8gX19ISVBDQ19SVENfXwoKI2RlZmluZSBfX0NMQU5HX0hJUF9SVU5USU1FX1dSQVBQRVJfSU5DTFVERURfXyAxCiNpZiBkZWZpbmVkKF9fSElQQ0NfUlRDX18pCiNwcmFnbWEgcG9wX21hY3JvKCJOVUxMIikKI3ByYWdtYSBwb3BfbWFjcm8oInVpbnQzMl90IikKI3ByYWdtYSBwb3BfbWFjcm8oInVpbnQ2NF90IikKI3ByYWdtYSBwb3BfbWFjcm8oIkNIQVJfQklUIikKI3ByYWdtYSBwb3BfbWFjcm8oIklOVF9NQVgiKQojZW5kaWYgLy8gX19ISVBDQ19SVENfXwojZW5kaWYgLy8gX19ISVBfXwojZW5kaWYgLy8gX19DTEFOR19ISVBfUlVOVElNRV9XUkFQUEVSX0hfXwoALyo9PT0tLS0tIGFybV9mcDE2LmggLSBBUk0gRlAxNiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiAqIFRIRSBTT0ZUV0FSRS4KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19BUk1fRlAxNl9ICiNkZWZpbmUgX19BUk1fRlAxNl9ICgojaW5jbHVkZSA8c3RkaW50Lmg+Cgp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CiNkZWZpbmUgX19haSBzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1NDQUxBUl9BUklUSE1FVElDKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojZGVmaW5lIHZhYmRoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmFic2hfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmFic2hfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2YWRkaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjYWdlaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNhZ2VoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNhZ3RoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2FndGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2FsZWhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjYWx0aF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNhbHRoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNlcWhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNlcXpoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxemhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2dlaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNnZWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2dlemhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjZ3RoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0aF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjZ3R6aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNndHpoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNsZWhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNsZXpoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2xlemhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2x0aF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNsdGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2x0emhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fczE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9zMTZfZjE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX3MzMl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fczMyX2YxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9zNjRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX3M2NF9mMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fdTE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX3UxNl9mMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fdTMyX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX3UzMl9mMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fdTY0X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX3U2NF9mMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX3MxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX3MxNl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX3MzMl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX3MzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX3M2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX3M2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX3UxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfdTE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfdTMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF91MzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF91NjRfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX3U2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRhaF9zMTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YWhfczE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGFoX3MzMl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhaF9zMzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0YWhfczY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFoX3M2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRhaF91MTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhaF91MTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0YWhfdTMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YWhfdTMyX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGFoX3U2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFoX3U2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX2YxNl91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX2YxNl91MTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX2YxNl9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfZjE2X3MxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfZjE2X3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfZjE2X3UzMihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfZjE2X3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9mMTZfczMyKF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9mMTZfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9mMTZfdTY0KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9mMTZfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX2YxNl9zNjQoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fZjE2X3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9mMTZfdTMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX2YxNl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9mMTZfczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX2YxNl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fZjE2X3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9mMTZfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fZjE2X3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9mMTZfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX2YxNl91MTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fZjE2X3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX2YxNl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRtaF9zMTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bWhfczE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG1oX3MzMl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtaF9zMzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bWhfczY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1oX3M2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRtaF91MTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtaF91MTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bWhfdTMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bWhfdTMyX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG1oX3U2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1oX3U2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRuaF9zMTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bmhfczE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG5oX3MzMl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuaF9zMzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bmhfczY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5oX3M2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRuaF91MTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuaF91MTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bmhfdTMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bmhfdTMyX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG5oX3U2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5oX3U2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRwaF9zMTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cGhfczE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHBoX3MzMl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwaF9zMzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0cGhfczY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBoX3M2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRwaF91MTZfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwaF91MTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0cGhfdTMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cGhfdTMyX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHBoX3U2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBoX3U2NF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZkaXZoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkaXZoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmZtYWhfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmZtYWhfZjE2KF9fczAsIF9fczEsIF9fczIpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Zm1zaF9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1zaF9mMTYoX19zMCwgX19zMSwgX19zMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZtYXhoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdm1heG5taF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm1oX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdm1pbmhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbmhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bWlubm1oX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bXVsaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bXVsaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZtdWx4aF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bXVseGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bmVnaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bmVnaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyZWNwZWhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJlY3BlaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyZWNwc2hfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJlY3BzaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyZWNweGhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJlY3B4aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZybmRoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJuZGFoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZybmRpaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cm5kaWhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cm5kbWhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJuZG1oX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJuZG5oX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRuaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZybmRwaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cm5kcGhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cm5keGhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJuZHhoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJzcXJ0ZWhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZWhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cnNxcnRzaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzcXJ0aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92c3FydGhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2c3ViaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92c3ViaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiN1bmRlZiBfX2FpCgojZW5kaWYgLyogX19BUk1fRlAxNl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEyaWZtYXZsaW50cmluLmggLSBJRk1BIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEyaWZtYXZsaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0lGTUFWTElOVFJJTl9ICiNkZWZpbmUgX19JRk1BVkxJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmlmbWEsYXZ4NTEydmwiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyaWZtYSxhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCgoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hZGQ1MmhpX2VwdTY0IChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1ksIF9fbTEyOGkgX19aKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkZDUyaHVxMTI4KChfX3YyZGkpIF9fWCwgKF9fdjJkaSkgX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKSBfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYWRkNTJoaV9lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYWRkNTJoaV9lcHU2NChfX1csIF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYWRkNTJoaV9lcHU2NCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1ksIF9fbTEyOGkgX19aKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYWRkNTJoaV9lcHU2NChfX1gsIF9fWSwgX19aKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFkZDUyaGlfZXB1NjQgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSwgX19tMjU2aSBfX1opCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBtYWRkNTJodXEyNTYoKF9fdjRkaSlfX1gsIChfX3Y0ZGkpX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21hZGQ1MmhpX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21hZGQ1MmhpX2VwdTY0KF9fVywgX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21hZGQ1MmhpX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSwgX19tMjU2aSBfX1opCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21hZGQ1MmhpX2VwdTY0KF9fWCwgX19ZLCBfX1opLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYWRkNTJsb19lcHU2NCAoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZLCBfX20xMjhpIF9fWikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hZGQ1Mmx1cTEyOCgoX192MmRpKV9fWCwgKF9fdjJkaSlfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19aKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWFkZDUybG9fZXB1NjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWFkZDUybG9fZXB1NjQoX19XLCBfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWFkZDUybG9fZXB1NjQgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZLCBfX20xMjhpIF9fWikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWFkZDUybG9fZXB1NjQoX19YLCBfX1ksIF9fWiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hZGQ1MmxvX2VwdTY0IChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1ksIF9fbTI1NmkgX19aKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkZDUybHVxMjU2KChfX3Y0ZGkpX19YLCAoX192NGRpKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYWRkNTJsb19lcHU2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tYWRkNTJsb19lcHU2NChfX1csIF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYWRkNTJsb19lcHU2NCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1ksIF9fbTI1NmkgX19aKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tYWRkNTJsb19lcHU2NChfX1gsIF9fWSwgX19aKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGF2eDUxMnZsYml0YWxnaW50cmluLmgALyo9PT0tLS0tLS0tLS0tIGF2eDUxMnZsZnAxNmludHJpbi5oIC0gQVZYNTEyLUZQMTYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJOZXZlciB1c2UgPGF2eDUxMnZsZnAxNmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTEZQMTZJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVkxGUDE2SU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBfX3RhcmdldF9fKCJhdng1MTJmcDE2LCBhdng1MTJ2bCIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBfX3RhcmdldF9fKCJhdng1MTJmcDE2LCBhdng1MTJ2bCIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c2hfaChfX20xMjhoIF9fYSkgewogIHJldHVybiBfX2FbMF07Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY3Z0c2hfaChfX20yNTZoIF9fYSkgewogIHJldHVybiBfX2FbMF07Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zZXRfc2goX0Zsb2F0MTYgX19oKSB7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18oX19tMTI4aCl7X19oLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zZXQxX3BoKF9GbG9hdDE2IF9faCkgewogIHJldHVybiAoX19tMTI4aCkoX192OGhmKXtfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfc2V0MV9waChfRmxvYXQxNiBfX2gpIHsKICByZXR1cm4gKF9fbTI1NmgpKF9fdjE2aGYpe19faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2h9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NldF9waChfRmxvYXQxNiBfX2gxLCBfRmxvYXQxNiBfX2gyLCBfRmxvYXQxNiBfX2gzLCBfRmxvYXQxNiBfX2g0LAogICAgICAgICAgIF9GbG9hdDE2IF9faDUsIF9GbG9hdDE2IF9faDYsIF9GbG9hdDE2IF9faDcsIF9GbG9hdDE2IF9faDgpIHsKICByZXR1cm4gKF9fbTEyOGgpKF9fdjhoZil7X19oOCwgX19oNywgX19oNiwgX19oNSwgX19oNCwgX19oMywgX19oMiwgX19oMX07Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2V0X3BoKF9GbG9hdDE2IF9faDEsIF9GbG9hdDE2IF9faDIsIF9GbG9hdDE2IF9faDMsIF9GbG9hdDE2IF9faDQsCiAgICAgICAgICAgICAgX0Zsb2F0MTYgX19oNSwgX0Zsb2F0MTYgX19oNiwgX0Zsb2F0MTYgX19oNywgX0Zsb2F0MTYgX19oOCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2g5LCBfRmxvYXQxNiBfX2gxMCwgX0Zsb2F0MTYgX19oMTEsIF9GbG9hdDE2IF9faDEyLAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDEzLCBfRmxvYXQxNiBfX2gxNCwgX0Zsb2F0MTYgX19oMTUsIF9GbG9hdDE2IF9faDE2KSB7CiAgcmV0dXJuIChfX20yNTZoKShfX3YxNmhmKXtfX2gxNiwgX19oMTUsIF9faDE0LCBfX2gxMywgX19oMTIsIF9faDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oMTAsIF9faDksICBfX2g4LCAgX19oNywgIF9faDYsICBfX2g1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oNCwgIF9faDMsICBfX2gyLCAgX19oMX07Cn0KCiNkZWZpbmUgX21tX3NldHJfcGgoaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaDcsIGg4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX21tX3NldF9waCgoaDgpLCAoaDcpLCAoaDYpLCAoaDUpLCAoaDQpLCAoaDMpLCAoaDIpLCAoaDEpKQoKI2RlZmluZSBfbW0yNTZfc2V0cl9waChoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoNywgaDgsIGg5LCBoMTAsIGgxMSwgaDEyLCBoMTMsIFwKICAgICAgICAgICAgICAgICAgICAgICBoMTQsIGgxNSwgaDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfbW0yNTZfc2V0X3BoKChoMTYpLCAoaDE1KSwgKGgxNCksIChoMTMpLCAoaDEyKSwgKGgxMSksIChoMTApLCAoaDkpLCAoaDgpLCAgIFwKICAgICAgICAgICAgICAgIChoNyksIChoNiksIChoNSksIChoNCksIChoMyksIChoMiksIChoMSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfYWRkX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKSgoX192MTZoZilfX0EgKyAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIF9fVSwgKF9fdjE2aGYpX21tMjU2X2FkZF9waChfX0EsIF9fQiksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfYWRkX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9hZGRfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpKChfX3Y4aGYpX19BICsgKF9fdjhoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19hZGRfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX2FkZF9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9hZGRfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX2FkZF9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfc3ViX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKSgoX192MTZoZilfX0EgLSAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIF9fVSwgKF9fdjE2aGYpX21tMjU2X3N1Yl9waChfX0EsIF9fQiksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfc3ViX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zdWJfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpKChfX3Y4aGYpX19BIC0gKF9fdjhoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19zdWJfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX3N1Yl9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9zdWJfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX3N1Yl9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfbXVsX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKSgoX192MTZoZilfX0EgKiAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIF9fVSwgKF9fdjE2aGYpX21tMjU2X211bF9waChfX0EsIF9fQiksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfbXVsX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tdWxfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpKChfX3Y4aGYpX19BICogKF9fdjhoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19tdWxfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX211bF9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9tdWxfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX211bF9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZGl2X3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKSgoX192MTZoZilfX0EgLyAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19kaXZfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIF9fVSwgKF9fdjE2aGYpX21tMjU2X2Rpdl9waChfX0EsIF9fQiksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9kaXZfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfZGl2X3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9kaXZfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpKChfX3Y4aGYpX19BIC8gKF9fdjhoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19kaXZfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX2Rpdl9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9kaXZfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOChfX1UsIChfX3Y4aGYpX21tX2Rpdl9waChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfbWluX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX21pbnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgKF9fdjE2aGYpX19idWlsdGluX2lhMzJfbWlucGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IpLAogICAgICAoX192MTZoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICAoX192MTZoZilfX2J1aWx0aW5faWEzMl9taW5waDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiksCiAgICAgIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWluX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21pbnBoMTI4KChfX3Y4aGYpX19BLCAoX192OGhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX21pbl9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9fYnVpbHRpbl9pYTMyX21pbnBoMTI4KChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiksCiAgICAgIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X21pbl9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9fYnVpbHRpbl9pYTMyX21pbnBoMTI4KChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiksCiAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9tYXhfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfbWF4cGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICAoX192MTZoZilfX2J1aWx0aW5faWEzMl9tYXhwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiksCiAgICAgIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIChfX3YxNmhmKV9fYnVpbHRpbl9pYTMyX21heHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXhfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4cGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfbWF4X3BoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX19idWlsdGluX2lhMzJfbWF4cGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKSwKICAgICAgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfbWF4X3BoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX19idWlsdGluX2lhMzJfbWF4cGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2Fic19waChfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfbW0yNTZfYW5kX2VwaTMyKF9tbTI1Nl9zZXQxX2VwaTMyKDB4N0ZGRjdGRkYpLCAoX19tMjU2aSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fYWJzX3BoKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9tbV9hbmRfZXBpMzIoX21tX3NldDFfZXBpMzIoMHg3RkZGN0ZGRiksIChfX20xMjhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jb25qX3BjaChfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfbW0yNTZfeG9yX3BzKChfX20yNTYpX19BLCBfbW0yNTZfc2V0MV9wcygtMC4wZikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb25qX3BjaChfX20yNTZoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4c2YpX21tMjU2X2NvbmpfcGNoKF9fQSksIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2NvbmpfcGNoKF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KAogICAgICAoX19tbWFzazgpX19VLCAoX192OHNmKV9tbTI1Nl9jb25qX3BjaChfX0EpLCAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY29ual9wY2goX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX21tX3hvcl9wcygoX19tMTI4KV9fQSwgX21tX3NldDFfcHMoLTAuMGYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY29ual9wY2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192NHNmKV9tbV9jb25qX3BjaChfX0EpLCAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb25qX3BjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjRzZilfbW1fY29ual9wY2goX19BKSwgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW0yNTZfY21wX3BoX21hc2soYSwgYiwgcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBwaDI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKF9fbTI1NmgpKGEpLCAoX192MTZoZikoX19tMjU2aCkoYiksIChpbnQpKHApLCAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX3BoX21hc2sobSwgYSwgYiwgcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wcGgyNTZfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShfX20yNTZoKShhKSwgKF9fdjE2aGYpKF9fbTI1NmgpKGIpLCAoaW50KShwKSwgKF9fbW1hc2sxNikobSkpKQoKI2RlZmluZSBfbW1fY21wX3BoX21hc2soYSwgYiwgcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBoMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoYSksIChfX3Y4aGYpKF9fbTEyOGgpKGIpLCAoaW50KShwKSwgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3BoX21hc2sobSwgYSwgYiwgcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwaDEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKGEpLCAoX192OGhmKShfX20xMjhoKShiKSwgKGludCkocCksIChfX21tYXNrOCkobSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3JjcF9waChfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9yY3BwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9tbTI1Nl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JjcF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcmNwcGgyNTZfbWFzaygoX192MTZoZilfX0EsIChfX3YxNmhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yY3BfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcmNwcGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9yY3BfcGgoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmNwcGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19yY3BfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yY3BwaDEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X3JjcF9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmNwcGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9yc3FydF9waChfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9yc3FydHBoMjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazE2KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcnNxcnRfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGgyNTZfbWFzaygoX192MTZoZilfX0EsIChfX3YxNmhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JzcXJ0X3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9yc3FydF9waChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yc3FydHBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfcnNxcnRfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcnNxcnRwaDEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcnNxcnRfcGgoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yc3FydHBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZ2V0ZXhwX3BoKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2dldGV4cF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2dldGV4cF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZ2V0ZXhwX3BoKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoMjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2dldGV4cF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGgyNTZfbWFzaygoX192MTZoZilfX0EsIChfX3YxNmhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9nZXRleHBfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSk7Cn0KCiNkZWZpbmUgX21tX2dldG1hbnRfcGgoQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCBcCiAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfcGgoVywgVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGgxMjhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgXAogICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X2dldG1hbnRfcGgoVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCBcCiAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZ2V0bWFudF9waChBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoMjU2X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2dldG1hbnRfcGgoVywgVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGgyNTZfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAoX192MTZoZikoX19tMjU2aCkoVyksICAgXAogICAgICAoX19tbWFzazE2KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9nZXRtYW50X3BoKFUsIEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGgyNTZfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KShVKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fc2NhbGVmX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zY2FsZWZfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9zY2FsZWZfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zY2FsZWZfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9fVywgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2NhbGVmX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNilfX1UpOwp9CgojZGVmaW5lIF9tbV9yb3VuZHNjYWxlX3BoKEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoXzEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3BoKFcsIFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF8xMjhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKGltbSksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfcGgoVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcm91bmRzY2FsZV9waChBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF8yNTZfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAoaW50KShpbW0pLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAgICAgICAgIFwKICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JvdW5kc2NhbGVfcGgoVywgVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoXzI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKGltbSksIChfX3YxNmhmKShfX20yNTZoKShXKSwgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazE2KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yb3VuZHNjYWxlX3BoKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoXzI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKGltbSksIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksICAgICAgICAgXAogICAgICAoX19tbWFzazE2KShVKSkpCgojZGVmaW5lIF9tbV9yZWR1Y2VfcGgoQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDEyOF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX3JlZHVjZV9waChXLCBVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3BoKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmVkdWNlcGgxMjhfbWFzaygoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3JlZHVjZV9waChBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoMjU2X21hc2soKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JlZHVjZV9waChXLCBVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDI1Nl9tYXNrKChfX3YxNmhmKShfX20yNTZoKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKShfX20yNTZoKShXKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JlZHVjZV9waChVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoMjU2X21hc2soKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NxcnRfcGgoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc3FydHBoKChfX3Y4aGYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfc3FydF9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbV9zcXJ0X3BoKF9fQSksIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X3NxcnRfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tX3NxcnRfcGgoX19BKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9zcXJ0X3BoKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NxcnRwaDI1NigoX192MTZoZilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcXJ0X3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLCAoX192MTZoZilfbW0yNTZfc3FydF9waChfX0EpLCAoX192MTZoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3FydF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc3FydF9waChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX21hc2tfZnBjbGFzc19waF9tYXNrKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGgxMjhfbWFzaygoX192OGhmKShfX20xMjhoKShBKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX2ZwY2xhc3NfcGhfbWFzayhBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGgxMjhfbWFzaygoX192OGhmKShfX20xMjhoKShBKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19mcGNsYXNzX3BoX21hc2soVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGgyNTZfbWFzaygoX192MTZoZikoX19tMjU2aCkoQSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazE2KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9mcGNsYXNzX3BoX21hc2soQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwaDI1Nl9tYXNrKChfX3YxNmhmKShfX20yNTZoKShBKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpLTEpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBkX3BoKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDEyOF9tYXNrKAogICAgICAoX192MmRmKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHBkX3BoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDEyOF9tYXNrKChfX3YyZGYpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwZF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDEyOF9tYXNrKAogICAgICAoX192MmRmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2N2dHBkX3BoKF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDI1Nl9tYXNrKAogICAgICAoX192NGRmKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBkX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDI1Nl9tYXNrKChfX3Y0ZGYpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwZF9waChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDI1Nl9tYXNrKAogICAgICAoX192NGRmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX3BkKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHBoX3BkKF9fbTEyOGQgX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2N2dHBoX3BkKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkZilfbW0yNTZfdW5kZWZpbmVkX3BkKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192NGRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX2VwaTE2KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3MTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGhfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMncxMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3MTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGhfZXBpMTYoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMncyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrMTYpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwaF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMncyNTZfbWFzaygoX192MTZoZilfX0EsIChfX3YxNmhpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRwaF9lcGkxNihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMncxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGhfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3MTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwaF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwaF9lcGkxNihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMncyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrMTYpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGhfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3MjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0ZXBpMTZfcGgoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4aGkpX19BLCBfX3Y4aGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkxNl9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tX2N2dGVwaTE2X3BoKF9fQSksIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTE2X3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbV9jdnRlcGkxNl9waChfX0EpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMTZfcGgoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNmhpKV9fQSwgX192MTZoZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTE2X3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLCAoX192MTZoZilfbW0yNTZfY3Z0ZXBpMTZfcGgoX19BKSwgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTE2X3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9tbTI1Nl9jdnRlcGkxNl9waChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRwaF9lcHUxNihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXcxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aHUpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwaF9lcHUxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXcxMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjhodSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGhfZXB1MTYoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXcxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aHUpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwaF9lcHUxNihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXcyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZodSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrMTYpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwaF9lcHUxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3MjU2X21hc2soKF9fdjE2aGYpX19BLCAoX192MTZodSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX2VwdTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmh1KV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRwaF9lcHUxNihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnV3MTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGh1KV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBoX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXcxMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjhodSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwaF9lcHUxNihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXcxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aHUpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGhfZXB1MTYoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmh1KV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwaF9lcHUxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aHUpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBoX2VwdTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXcyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZodSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRlcHUxNl9waChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhodSlfX0EsIF9fdjhoZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTE2X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW1fY3Z0ZXB1MTZfcGgoX19BKSwgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1MTZfcGgoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tX2N2dGVwdTE2X3BoKF9fQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUxNl9waChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2aHUpX19BLCBfX3YxNmhmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1MTZfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsIChfX3YxNmhmKV9tbTI1Nl9jdnRlcHUxNl9waChfX0EpLCAoX192MTZoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXB1MTZfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X2N2dGVwdTE2X3BoKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX2VwaTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBoX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192NHNpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX2VwaTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192OHNpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX2VwdTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c3UpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwaF9lcHUzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y0c3UpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9lcHUzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c3UpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwaF9lcHUzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHN1KV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGhfZXB1MzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192OHN1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGhfZXB1MzIoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHN1KV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0ZXBpMzJfcGgoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoMTI4X21hc2soCiAgICAgIChfX3Y0c2kpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpMzJfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoMTI4X21hc2soKF9fdjRzaSlfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTMyX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoMTI4X21hc2soCiAgICAgIChfX3Y0c2kpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMzJfcGgoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19BLCBfX3Y4aGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tMjU2X2N2dGVwaTMyX3BoKF9fQSksIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTMyX3BoKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbTI1Nl9jdnRlcGkzMl9waChfX0EpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0ZXB1MzJfcGgoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDEyOF9tYXNrKAogICAgICAoX192NHN1KV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTMyX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1ZHEycGgxMjhfbWFzaygoX192NHN1KV9fQSwgKF9fdjhoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwdTMyX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDEyOF9tYXNrKAogICAgICAoX192NHN1KV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTMyX3BoKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHN1KV9fQSwgX192OGhmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1MzJfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbTI1Nl9jdnRlcHUzMl9waChfX0EpLCAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHUzMl9waChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW0yNTZfY3Z0ZXB1MzJfcGgoX19BKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRwaF9lcGkzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMmRxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBoX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHExMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjRzaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwaF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGhfZXBpMzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwaF9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMmRxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y4c2kpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMmRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHBoX2VwdTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydWRxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHN1KV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBoX2VwdTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydWRxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y0c3UpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBoX2VwdTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c3UpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGhfZXB1MzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4c3UpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGhfZXB1MzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHEyNTZfbWFzaygoX192OGhmKV9fQSwgKF9fdjhzdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXB1MzIoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzdSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dGVwaTY0X3BoKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDEyOF9tYXNrKAogICAgICAoX192MmRpKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTY0X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDEyOF9tYXNrKChfX3YyZGkpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDEyOF9tYXNrKAogICAgICAoX192MmRpKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X3BoKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDI1Nl9tYXNrKAogICAgICAoX192NGRpKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDI1Nl9tYXNrKChfX3Y0ZGkpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcGk2NF9waChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDI1Nl9tYXNrKAogICAgICAoX192NGRpKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX2VwaTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBoX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192MmRpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX2VwaTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192NGRpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dGVwdTY0X3BoKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGgxMjhfbWFzaygKICAgICAgKF9fdjJkdSlfX0EsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcHU2NF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoMTI4X21hc2soKF9fdjJkdSlfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHU2NF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGgxMjhfbWFzaygKICAgICAgKF9fdjJkdSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHU2NF9waChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZHUpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1NjRfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDI1Nl9tYXNrKChfX3Y0ZHUpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXB1NjRfcGgoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZHUpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfZXB1NjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkdSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBoX2VwdTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXExMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjJkdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkdSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX2VwdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0ZHUpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwaF9lcHU2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y0ZHUpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9lcHU2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0ZHUpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnR0cGhfZXBpNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwaF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3YyZGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cGhfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBoX2VwaTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0ZGkpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGhfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192NGRpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBoX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRwaF9lcHU2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkdSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwaF9lcHU2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192MmR1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwaF9lcHU2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmR1KV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBoX2VwdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGR1KV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBoX2VwdTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y0ZHUpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0ZHUpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHhwaF9wcyhfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3gxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHhwaF9wcyhfX20xMjggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHhwaF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY3Z0eHBoX3BzKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzZilfbW0yNTZfdW5kZWZpbmVkX3BzKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0eHBoX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4MjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y4c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0eHBoX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4MjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0eHBzX3BoKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDEyOF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHhwc19waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDEyOF9tYXNrKChfX3Y0c2YpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0eHBzX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4MTI4X21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY3Z0eHBzX3BoKF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDI1Nl9tYXNrKAogICAgICAoX192OHNmKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHhwc19waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaHgyNTZfbWFzaygoX192OHNmKV9fQSwgKF9fdjhoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHhwc19waChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDI1Nl9tYXNrKAogICAgICAoX192OHNmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtYWRkX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfZm1hZGRfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkX3BoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Ztc3ViX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2Ztc3ViX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIF9tbV9mbXN1Yl9waCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJfcGgoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgX21tX2Ztc3ViX3BoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tYWRkX3BoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKC0oX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tYWRkX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKC0oX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubXN1Yl9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgtKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAtKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm1hZGRfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbWFkZF9waChfX20yNTZoIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAoX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1hZGRfcGgoX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazE2IF9fVSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtYWRkX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm1zdWJfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJfcGgoX19tMjU2aCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgLShfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbXN1Yl9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbm1hZGRfcGgoX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazE2IF9fVSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigtKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbm1hZGRfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigtKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm5tc3ViX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoLShfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mbWFkZHN1Yl9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZtYWRkc3ViX3BoKF9fbTEyOGggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZHN1Yl9waChfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRzdWJfcGgoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mbXN1YmFkZF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1YmFkZF9waChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViYWRkX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgLShfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2ZtYWRkc3ViX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkc3ViX3BoKF9fbTI1NmggX19BLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbWFkZHN1Yl9waChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DLCBfX21tYXNrMTYgX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAoX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1hZGRzdWJfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbXN1YmFkZF9waChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJhZGRfcGgoX19tMjU2aCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgLShfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbXN1YmFkZF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1Yl9waChfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2Ztc3ViX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1zdWJhZGRfcGgoX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAtKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbXN1YmFkZF9waChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DLCBfX21tYXNrMTYgX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZubWFkZF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgLShfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubWFkZF9waChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgLShfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2ZubWFkZF9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIC0oX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZubWFkZF9waChfX20yNTZoIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgLShfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZubXN1Yl9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgLShfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1zdWJfcGgoX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoKF9fdjhoZilfX0EsIC0oX192OGhmKV9fQiwgLShfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tc3ViX3BoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2ZubXN1Yl9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIC0oX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbm1zdWJfcGgoX19tMjU2aCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIC0oX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm5tc3ViX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAtKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZjbXVsX3BjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGgxMjhfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZmNtdWxfcGNoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGgxMjhfbWFzaygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZjbXVsX3BjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGgxMjhfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW0yNTZfZmNtdWxfcGNoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDI1Nl9tYXNrKAogICAgICAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIChfX3Y4c2YpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mY211bF9wY2goX19tMjU2aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1csIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZmNtdWxfcGNoKF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDI1Nl9tYXNrKAogICAgICAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mY21hZGRfcGNoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mY21hZGRfcGNoKF9fbTEyOGggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoCiAgICAgIF9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKShfX20xMjhoKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VKSwKICAgICAgKF9fdjRzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZmNtYWRkX3BjaChfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZjbWFkZF9wY2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGgxMjhfbWFza3ooCiAgICAgIChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZmNtYWRkX3BjaChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fQiwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZmNtYWRkX3BjaChfX20yNTZoIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSksCiAgICAgIChfX3Y4c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZjbWFkZF9wY2goX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fQiwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mY21hZGRfcGNoKF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoMjU2X21hc2t6KAogICAgICAoX192OHNmKV9fQywgKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtdWxfcGNoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgxMjhfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfZm11bF9wY2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoMTI4X21hc2soKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtdWxfcGNoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoMTI4X21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2ZtdWxfcGNoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgyNTZfbWFzaygKICAgICAgKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9tbTI1Nl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm11bF9wY2goX19tMjU2aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoMjU2X21hc2soKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtdWxfcGNoKF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoMjU2X21hc2soCiAgICAgIChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtYWRkX3BjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgxMjhfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZF9wY2goX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgKICAgICAgX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgxMjhfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKSwKICAgICAgKF9fdjRzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1hZGRfcGNoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgxMjhfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkX3BjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoMTI4X21hc2t6KChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2ZtYWRkX3BjaChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19CLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbWFkZF9wY2goX19tMjU2aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigKICAgICAgX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKSwKICAgICAgKF9fdjhzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1hZGRfcGNoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgyNTZfbWFzaygoX192OHNmKV9fQywgKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtYWRkX3BjaChfX21tYXNrOCBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoMjU2X21hc2t6KChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfYmxlbmRfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX1cpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KChfX21tYXNrOClfX1UsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19ibGVuZF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX1cpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KChfX21tYXNrMTYpX19VLCAoX192MTZoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcGVybXV0ZXgydmFyX3BoKF9fbTEyOGggX19BLCBfX20xMjhpIF9fSSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpMTI4KChfX3Y4aGkpX19BLCAoX192OGhpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4MnZhcl9waChfX20yNTZoIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJoaTI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wZXJtdXRleHZhcl9waChfX20xMjhpIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcGVybXZhcmhpMTI4KChfX3Y4aGkpX19CLCAoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleHZhcl9waChfX20yNTZpIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcGVybXZhcmhpMjU2KChfX3YxNmhpKV9fQiwgKF9fdjE2aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yZWR1Y2VfYWRkX3BoKF9fbTI1NmggX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mYWRkX3BoMjU2KC0wLjBmMTYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcmVkdWNlX211bF9waChfX20yNTZoIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm11bF9waDI1NigxLjBmMTYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcmVkdWNlX21heF9waChfX20yNTZoIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1heF9waDI1NihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JlZHVjZV9taW5fcGgoX19tMjU2aCBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtaW5fcGgyNTYoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yZWR1Y2VfYWRkX3BoKF9fbTEyOGggX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mYWRkX3BoMTI4KC0wLjBmMTYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcmVkdWNlX211bF9waChfX20xMjhoIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm11bF9waDEyOCgxLjBmMTYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcmVkdWNlX21heF9waChfX20xMjhoIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1heF9waDEyOChfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JlZHVjZV9taW5fcGgoX19tMTI4aCBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtaW5fcGgxMjgoX19WKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGF2eDUxMnZubmlpbnRyaW4uaAAvKj09PS0tLS0gY2x3YmludHJpbi5oIC0gQ0xXQiBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGNsd2JpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQ0xXQklOVFJJTl9ICiNkZWZpbmUgX19DTFdCSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygiY2x3YiIpKSkKCi8vLyBXcml0ZXMgYmFjayB0byBtZW1vcnkgdGhlIGNhY2hlIGxpbmUgKGlmIG1vZGlmaWVkKSB0aGF0IGNvbnRhaW5zIHRoZQovLy8gbGluZWFyIGFkZHJlc3Mgc3BlY2lmaWVkIGluIFxhIF9fcCBmcm9tIGFueSBsZXZlbCBvZiB0aGUgY2FjaGUgaGllcmFyY2h5IGluCi8vLyB0aGUgY2FjaGUgY29oZXJlbmNlIGRvbWFpbgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENMV0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBsb2NhdGlvbiB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjYWNoZSBsaW5lIHRvIGJlCi8vLyAgICB3cml0dGVuIGJhY2suCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbHdiKHZvaWQgY29uc3QgKl9fcCkgewogIF9fYnVpbHRpbl9pYTMyX2Nsd2IoX19wKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgBmbG9hdC5oAGltbWludHJpbi5oAC8qPT09LS0tLSBpbW1pbnRyaW4uaCAtIEludGVsIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZGVmaW5lIF9fSU1NSU5UUklOX0gKCiNpbmNsdWRlIDx4ODZncHJpbnRyaW4uaD4KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fTU1YX18pCiNpbmNsdWRlIDxtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fU1NFX18pCiNpbmNsdWRlIDx4bW1pbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1NTRTJfXykKI2luY2x1ZGUgPGVtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fU1NFM19fKQojaW5jbHVkZSA8cG1taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TU1NFM19fKQojaW5jbHVkZSA8dG1taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fU1NFNF8yX18pIHx8IGRlZmluZWQoX19TU0U0XzFfXykpCiNpbmNsdWRlIDxzbW1pbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BRVNfXykgfHwgZGVmaW5lZChfX1BDTE1VTF9fKSkKI2luY2x1ZGUgPHdtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQ0xGTFVTSE9QVF9fKQojaW5jbHVkZSA8Y2xmbHVzaG9wdGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQ0xXQl9fKQojaW5jbHVkZSA8Y2x3YmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYX18pCiNpbmNsdWRlIDxhdnhpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDJfXykKI2luY2x1ZGUgPGF2eDJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0YxNkNfXykKI2luY2x1ZGUgPGYxNmNpbnRyaW4uaD4KI2VuZGlmCgovKiBObyBmZWF0dXJlIGNoZWNrIGRlc2lyZWQgZHVlIHRvIGludGVybmFsIGNoZWNrcyAqLwojaW5jbHVkZSA8Ym1paW50cmluLmg+CgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0JNSTJfXykKI2luY2x1ZGUgPGJtaTJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0xaQ05UX18pCiNpbmNsdWRlIDxsemNudGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUE9QQ05UX18pCiNpbmNsdWRlIDxwb3BjbnRpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0ZNQV9fKQojaW5jbHVkZSA8Zm1haW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJGX18pCiNpbmNsdWRlIDxhdng1MTJmaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJWTF9fKQojaW5jbHVkZSA8YXZ4NTEydmxpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMkJXX18pCiNpbmNsdWRlIDxhdng1MTJid2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyQklUQUxHX18pCiNpbmNsdWRlIDxhdng1MTJiaXRhbGdpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMkNEX18pCiNpbmNsdWRlIDxhdng1MTJjZGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyVlBPUENOVERRX18pCiNpbmNsdWRlIDxhdng1MTJ2cG9wY250ZHFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVlBPUENOVERRX18pKQojaW5jbHVkZSA8YXZ4NTEydnBvcGNudGRxdmxpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMlZOTklfXykKI2luY2x1ZGUgPGF2eDUxMnZubmlpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVk5OSV9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsdm5uaWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYVk5OSV9fKQojaW5jbHVkZSA8YXZ4dm5uaWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyRFFfXykKI2luY2x1ZGUgPGF2eDUxMmRxaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fQVZYNTEyVkxfXykgJiYgZGVmaW5lZChfX0FWWDUxMkJJVEFMR19fKSkKI2luY2x1ZGUgPGF2eDUxMnZsYml0YWxnaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fQVZYNTEyVkxfXykgJiYgZGVmaW5lZChfX0FWWDUxMkJXX18pKQojaW5jbHVkZSA8YXZ4NTEydmxid2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZMX18pICYmIGRlZmluZWQoX19BVlg1MTJDRF9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsY2RpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpCiNpbmNsdWRlIDxhdng1MTJ2bGRxaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJFUl9fKQojaW5jbHVkZSA8YXZ4NTEyZXJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMklGTUFfXykKI2luY2x1ZGUgPGF2eDUxMmlmbWFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJJRk1BX18pICYmIGRlZmluZWQoX19BVlg1MTJWTF9fKSkKI2luY2x1ZGUgPGF2eDUxMmlmbWF2bGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyVkJNSV9fKQojaW5jbHVkZSA8YXZ4NTEydmJtaWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZCTUlfXykgJiYgZGVmaW5lZChfX0FWWDUxMlZMX18pKQojaW5jbHVkZSA8YXZ4NTEydmJtaXZsaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJWQk1JMl9fKQojaW5jbHVkZSA8YXZ4NTEydmJtaTJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWQk1JMl9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCiNpbmNsdWRlIDxhdng1MTJ2bHZibWkyaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJQRl9fKQojaW5jbHVkZSA8YXZ4NTEycGZpbnRyaW4uaD4KI2VuZGlmCgovKgogKiBGSVhNRTogX0Zsb2F0MTYgdHlwZSBpcyBsZWdhbCBvbmx5IHdoZW4gSFcgc3VwcG9ydCBmbG9hdDE2IG9wZXJhdGlvbi4KICogV2UgdXNlIF9fQVZYNTEyRlAxNl9fIHRvIGlkZW50aWZ5IGlmIGZsb2F0MTYgaXMgc3VwcG9ydGVkIG9yIG5vdCwgc28KICogd2hlbiBmbG9hdDE2IGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSByZWxhdGVkIGhlYWRlciBpcyBub3QgaW5jbHVkZWQuCiAqCiAqLwojaWYgZGVmaW5lZChfX0FWWDUxMkZQMTZfXykKI2luY2x1ZGUgPGF2eDUxMmZwMTZpbnRyaW4uaD4KI2VuZGlmCgojaWYgZGVmaW5lZChfX0FWWDUxMkZQMTZfXykgJiYgZGVmaW5lZChfX0FWWDUxMlZMX18pCiNpbmNsdWRlIDxhdng1MTJ2bGZwMTZpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMkJGMTZfXykKI2luY2x1ZGUgPGF2eDUxMmJmMTZpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyQkYxNl9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsYmYxNmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUEtVX18pCiNpbmNsdWRlIDxwa3VpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1ZQQ0xNVUxRRFFfXykKI2luY2x1ZGUgPHZwY2xtdWxxZHFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1ZBRVNfXykKI2luY2x1ZGUgPHZhZXNpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0dGTklfXykKI2luY2x1ZGUgPGdmbmlpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1JEUElEX18pCi8vLyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgSUEzMl9UU0NfQVVYIE1TUiAoMHhjMDAwMDEwMykuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUkRQSUQgPC9jPiBpbnN0cnVjdGlvbi4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicmRwaWQiKSkpCl9yZHBpZF91MzIodm9pZCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHBpZCgpOwp9CiNlbmRpZiAvLyBfX1JEUElEX18KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUkRSTkRfXykKc3RhdGljIF9faW5saW5lX18gaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicmRybmQiKSkpCl9yZHJhbmQxNl9zdGVwKHVuc2lnbmVkIHNob3J0ICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRyYW5kMTZfc3RlcChfX3ApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJyZHJuZCIpKSkKX3JkcmFuZDMyX3N0ZXAodW5zaWduZWQgaW50ICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRyYW5kMzJfc3RlcChfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJyZHJuZCIpKSkKX3JkcmFuZDY0X3N0ZXAodW5zaWduZWQgbG9uZyBsb25nICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRyYW5kNjRfc3RlcChfX3ApOwp9CiNlbmRpZgojZW5kaWYgLyogX19SRFJORF9fICovCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0ZTR1NCQVNFX18pCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfcmVhZGZzYmFzZV91MzIodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZGZzYmFzZTMyKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfcmVhZGZzYmFzZV91NjQodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZGZzYmFzZTY0KCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfcmVhZGdzYmFzZV91MzIodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZGdzYmFzZTMyKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfcmVhZGdzYmFzZV91NjQodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZGdzYmFzZTY0KCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJmc2dzYmFzZSIpKSkKX3dyaXRlZnNiYXNlX3UzMih1bnNpZ25lZCBpbnQgX19WKQp7CiAgX19idWlsdGluX2lhMzJfd3Jmc2Jhc2UzMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl93cml0ZWZzYmFzZV91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fVikKewogIF9fYnVpbHRpbl9pYTMyX3dyZnNiYXNlNjQoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfd3JpdGVnc2Jhc2VfdTMyKHVuc2lnbmVkIGludCBfX1YpCnsKICBfX2J1aWx0aW5faWEzMl93cmdzYmFzZTMyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJmc2dzYmFzZSIpKSkKX3dyaXRlZ3NiYXNlX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19WKQp7CiAgX19idWlsdGluX2lhMzJfd3Jnc2Jhc2U2NChfX1YpOwp9CgojZW5kaWYKI2VuZGlmIC8qIF9fRlNHU0JBU0VfXyAqLwoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19NT1ZCRV9fKQoKLyogVGhlIHN0cnVjdHMgdXNlZCBiZWxvdyBhcmUgdG8gZm9yY2UgdGhlIGxvYWQvc3RvcmUgdG8gYmUgdW5hbGlnbmVkLiBUaGlzCiAqIGlzIGFjY29tcGxpc2hlZCB3aXRoIHRoZSBfX3BhY2tlZF9fIGF0dHJpYnV0ZS4gVGhlIF9fbWF5X2FsaWFzX18gcHJldmVudHMKICogdGJhYSBtZXRhZGF0YSBmcm9tIGJlaW5nIGdlbmVyYXRlZCBiYXNlZCBvbiB0aGUgc3RydWN0IGFuZCB0aGUgdHlwZSBvZiB0aGUKICogZmllbGQgaW5zaWRlIG9mIGl0LgogKi8KCnN0YXRpYyBfX2lubGluZV9fIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygibW92YmUiKSkpCl9sb2FkYmVfaTE2KHZvaWQgY29uc3QgKiBfX1ApIHsKICBzdHJ1Y3QgX19sb2FkdV9pMTYgewogICAgc2hvcnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAxNigoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2kxNiopX19QKS0+X192KTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1vdmJlIikpKQpfc3RvcmViZV9pMTYodm9pZCAqIF9fUCwgc2hvcnQgX19EKSB7CiAgc3RydWN0IF9fc3RvcmV1X2kxNiB7CiAgICBzaG9ydCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfaTE2KilfX1ApLT5fX3YgPSBfX2J1aWx0aW5fYnN3YXAxNihfX0QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtb3ZiZSIpKSkKX2xvYWRiZV9pMzIodm9pZCBjb25zdCAqIF9fUCkgewogIHN0cnVjdCBfX2xvYWR1X2kzMiB7CiAgICBpbnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMigoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2kzMiopX19QKS0+X192KTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1vdmJlIikpKQpfc3RvcmViZV9pMzIodm9pZCAqIF9fUCwgaW50IF9fRCkgewogIHN0cnVjdCBfX3N0b3JldV9pMzIgewogICAgaW50IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9pMzIqKV9fUCktPl9fdiA9IF9fYnVpbHRpbl9ic3dhcDMyKF9fRCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1vdmJlIikpKQpfbG9hZGJlX2k2NCh2b2lkIGNvbnN0ICogX19QKSB7CiAgc3RydWN0IF9fbG9hZHVfaTY0IHsKICAgIGxvbmcgbG9uZyBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDY0KCgoY29uc3Qgc3RydWN0IF9fbG9hZHVfaTY0KilfX1ApLT5fX3YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygibW92YmUiKSkpCl9zdG9yZWJlX2k2NCh2b2lkICogX19QLCBsb25nIGxvbmcgX19EKSB7CiAgc3RydWN0IF9fc3RvcmV1X2k2NCB7CiAgICBsb25nIGxvbmcgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2k2NCopX19QKS0+X192ID0gX19idWlsdGluX2Jzd2FwNjQoX19EKTsKfQojZW5kaWYKI2VuZGlmIC8qIF9fTU9WQkUgKi8KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUlRNX18pCiNpbmNsdWRlIDxydG1pbnRyaW4uaD4KI2luY2x1ZGUgPHh0ZXN0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TSEFfXykKI2luY2x1ZGUgPHNoYWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fRlhTUl9fKQojaW5jbHVkZSA8ZnhzcmludHJpbi5oPgojZW5kaWYKCi8qIE5vIGZlYXR1cmUgY2hlY2sgZGVzaXJlZCBkdWUgdG8gaW50ZXJuYWwgTVNDX1ZFUiBjaGVja3MgKi8KI2luY2x1ZGUgPHhzYXZlaW50cmluLmg+CgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1hTQVZFT1BUX18pCiNpbmNsdWRlIDx4c2F2ZW9wdGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fWFNBVkVDX18pCiNpbmNsdWRlIDx4c2F2ZWNpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1hTQVZFU19fKQojaW5jbHVkZSA8eHNhdmVzaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TSFNUS19fKQojaW5jbHVkZSA8Y2V0aW50cmluLmg+CiNlbmRpZgoKLyogU29tZSBpbnRyaW5zaWNzIGluc2lkZSBhZHhpbnRyaW4uaCBhcmUgYXZhaWxhYmxlIG9ubHkgb24gcHJvY2Vzc29ycyB3aXRoIEFEWCwKICogd2hlcmVhcyBvdGhlcnMgYXJlIGFsc28gYXZhaWxhYmxlIGF0IGFsbCB0aW1lcy4gKi8KI2luY2x1ZGUgPGFkeGludHJpbi5oPgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19SRFNFRURfXykKI2luY2x1ZGUgPHJkc2VlZGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fV0JOT0lOVkRfXykKI2luY2x1ZGUgPHdibm9pbnZkaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19DTERFTU9URV9fKQojaW5jbHVkZSA8Y2xkZW1vdGVpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1dBSVRQS0dfXykKI2luY2x1ZGUgPHdhaXRwa2dpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX01PVkRJUklfXykgfHwgZGVmaW5lZChfX01PVkRJUjY0Ql9fKQojaW5jbHVkZSA8bW92ZGlyaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19QQ09ORklHX18pCiNpbmNsdWRlIDxwY29uZmlnaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TR1hfXykKI2luY2x1ZGUgPHNneGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUFRXUklURV9fKQojaW5jbHVkZSA8cHR3cml0ZWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fSU5WUENJRF9fKQojaW5jbHVkZSA8aW52cGNpZGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fS0xfXykgfHwgZGVmaW5lZChfX1dJREVLTF9fKQojaW5jbHVkZSA8a2V5bG9ja2VyaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BTVhUSUxFX18pIHx8IGRlZmluZWQoX19BTVhJTlQ4X18pIHx8IGRlZmluZWQoX19BTVhCRjE2X18pCiNpbmNsdWRlIDxhbXhpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMlZQMklOVEVSU0VDVF9fKQojaW5jbHVkZSA8YXZ4NTEydnAyaW50ZXJzZWN0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fQVZYNTEyVkxfXykgJiYgZGVmaW5lZChfX0FWWDUxMlZQMklOVEVSU0VDVF9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsdnAyaW50ZXJzZWN0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19FTlFDTURfXykKI2luY2x1ZGUgPGVucWNtZGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fU0VSSUFMSVpFX18pCiNpbmNsdWRlIDxzZXJpYWxpemVpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1RTWExEVFJLX18pCiNpbmNsdWRlIDx0c3hsZHRya2ludHJpbi5oPgojZW5kaWYKCiNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfX2hhc19leHRlbnNpb24oZ251X2FzbSkKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZXNlIGludHJpbnNpY3MgKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgRXhjaGFuZ2UgSExFClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZEV4Y2hhbmdlX0hMRUFjcXVpcmUobG9uZyB2b2xhdGlsZSAqX1RhcmdldCwgbG9uZyBfVmFsdWUpIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLmJ5dGUgMHhmMiA7IGxvY2sgOyB4Y2hnICUwLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrciIgKF9WYWx1ZSksICIrbSIgKCpfVGFyZ2V0KSA6OiAibWVtb3J5Iik7CiAgcmV0dXJuIF9WYWx1ZTsKfQpzdGF0aWMgX19pbmxpbmVfXyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfSW50ZXJsb2NrZWRFeGNoYW5nZV9ITEVSZWxlYXNlKGxvbmcgdm9sYXRpbGUgKl9UYXJnZXQsIGxvbmcgX1ZhbHVlKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjMgOyBsb2NrIDsgeGNoZyAlMCwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK3IiIChfVmFsdWUpLCAiK20iICgqX1RhcmdldCkgOjogIm1lbW9yeSIpOwogIHJldHVybiBfVmFsdWU7Cn0KI2VuZGlmCiNpZiBkZWZpbmVkKF9feDg2XzY0X18pCnN0YXRpYyBfX2lubGluZV9fIF9faW50NjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZEV4Y2hhbmdlNjRfSExFQWNxdWlyZShfX2ludDY0IHZvbGF0aWxlICpfVGFyZ2V0LCBfX2ludDY0IF9WYWx1ZSkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYyIDsgbG9jayA7IHhjaGcgJTAsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIityIiAoX1ZhbHVlKSwgIittIiAoKl9UYXJnZXQpIDo6ICJtZW1vcnkiKTsKICByZXR1cm4gX1ZhbHVlOwp9CnN0YXRpYyBfX2lubGluZV9fIF9faW50NjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZEV4Y2hhbmdlNjRfSExFUmVsZWFzZShfX2ludDY0IHZvbGF0aWxlICpfVGFyZ2V0LCBfX2ludDY0IF9WYWx1ZSkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYzIDsgbG9jayA7IHhjaGcgJTAsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIityIiAoX1ZhbHVlKSwgIittIiAoKl9UYXJnZXQpIDo6ICJtZW1vcnkiKTsKICByZXR1cm4gX1ZhbHVlOwp9CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBDb21wYXJlIEV4Y2hhbmdlIEhMRQpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQpzdGF0aWMgX19pbmxpbmVfXyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VfSExFQWNxdWlyZShsb25nIHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0V4Y2hhbmdlLCBsb25nIF9Db21wYXJhbmQpIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLmJ5dGUgMHhmMiA7IGxvY2sgOyBjbXB4Y2hnICUyLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrYSIgKF9Db21wYXJhbmQpLCAiK20iICgqX0Rlc3RpbmF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgIDogInIiIChfRXhjaGFuZ2UpIDogIm1lbW9yeSIpOwogIHJldHVybiBfQ29tcGFyYW5kOwp9CnN0YXRpYyBfX2lubGluZV9fIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZV9ITEVSZWxlYXNlKGxvbmcgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfRXhjaGFuZ2UsIGxvbmcgX0NvbXBhcmFuZCkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYzIDsgbG9jayA7IGNtcHhjaGcgJTIsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIithIiAoX0NvbXBhcmFuZCksICIrbSIgKCpfRGVzdGluYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKF9FeGNoYW5nZSkgOiAibWVtb3J5Iik7CiAgcmV0dXJuIF9Db21wYXJhbmQ7Cn0KI2VuZGlmCiNpZiBkZWZpbmVkKF9feDg2XzY0X18pCnN0YXRpYyBfX2lubGluZV9fIF9faW50NjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTY0X0hMRUFjcXVpcmUoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZSwgX19pbnQ2NCBfQ29tcGFyYW5kKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjIgOyBsb2NrIDsgY21weGNoZyAlMiwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK2EiIChfQ29tcGFyYW5kKSwgIittIiAoKl9EZXN0aW5hdGlvbikKICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAoX0V4Y2hhbmdlKSA6ICJtZW1vcnkiKTsKICByZXR1cm4gX0NvbXBhcmFuZDsKfQpzdGF0aWMgX19pbmxpbmVfXyBfX2ludDY0IF9fREVGQVVMVF9GTl9BVFRSUwpfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NF9ITEVSZWxlYXNlKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2UsIF9faW50NjQgX0NvbXBhcmFuZCkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYzIDsgbG9jayA7IGNtcHhjaGcgJTIsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIithIiAoX0NvbXBhcmFuZCksICIrbSIgKCpfRGVzdGluYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKF9FeGNoYW5nZSkgOiAibWVtb3J5Iik7CiAgcmV0dXJuIF9Db21wYXJhbmQ7Cn0KI2VuZGlmCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIGRlZmluZWQoX01TQ19WRVIpICYmIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKSAqLwoKI2VuZGlmIC8qIF9fSU1NSU5UUklOX0ggKi8KAC8qPT09LS0tLS0tLS0tLS0tLSBpbnZwY2lkaW50cmluLmggLSBJTlZQQ0lEIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8aW52cGNpZGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19JTlZQQ0lESU5UUklOX0gKI2RlZmluZSBfX0lOVlBDSURJTlRSSU5fSAoKc3RhdGljIF9faW5saW5lX18gdm9pZAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImludnBjaWQiKSkpCl9pbnZwY2lkKHVuc2lnbmVkIGludCBfX3R5cGUsIHZvaWQgKl9fZGVzY3JpcHRvcikgewogIF9fYnVpbHRpbl9pYTMyX2ludnBjaWQoX190eXBlLCBfX2Rlc2NyaXB0b3IpOwp9CgojZW5kaWYgLyogX19JTlZQQ0lESU5UUklOX0ggKi8KAHBjb25maWdpbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLSBwdHdyaXRlaW50cmluLmggLSBQVFdSSVRFIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cHR3cml0ZWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19QVFdSSVRFSU5UUklOX0gKI2RlZmluZSBfX1BUV1JJVEVJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygicHR3cml0ZSIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9wdHdyaXRlMzIodW5zaWduZWQgaW50IF9fdmFsdWUpIHsKICBfX2J1aWx0aW5faWEzMl9wdHdyaXRlMzIoX192YWx1ZSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfcHR3cml0ZTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZhbHVlKSB7CiAgX19idWlsdGluX2lhMzJfcHR3cml0ZTY0KF9fdmFsdWUpOwp9CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fUFRXUklURUlOVFJJTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0tLSBzZXJpYWxpemVpbnRyaW4uaCAtIHNlcmlhbGl6ZSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHNlcmlhbGl6ZWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19TRVJJQUxJWkVJTlRSSU5fSAojZGVmaW5lIF9fU0VSSUFMSVpFSU5UUklOX0gKCi8vLyBTZXJpYWxpemUgaW5zdHJ1Y3Rpb24gZmV0Y2ggYW5kIGV4ZWN1dGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBTRVJJQUxJWkUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCnN0YXRpYyBfX2lubGluZV9fIHZvaWQKX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzZXJpYWxpemUiKSkpCl9zZXJpYWxpemUgKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl9zZXJpYWxpemUgKCk7Cn0KCiNlbmRpZiAvKiBfX1NFUklBTElaRUlOVFJJTl9IICovCgB3YWl0cGtnaW50cmluLmgAeHNhdmVpbnRyaW4uaAAvLz09PS0tIHNhbml0aXplci9zY3Vkb19pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotIEMrKyAtKi09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLy8gUHVibGljIFNjdWRvIGludGVyZmFjZSBoZWFkZXIuCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX1NDVURPX0lOVEVSRkFDRV9IXwojZGVmaW5lIFNBTklUSVpFUl9TQ1VET19JTlRFUkZBQ0VfSF8KCiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgogIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgYSB1c2VyIGFuZCBzaG91bGQgcmV0dXJuCiAgLy8gYSBzdHJpbmcgY29udGFpbmluZyBTY3VkbyBydW50aW1lIG9wdGlvbnMuIFNlZSBzY3Vkb19mbGFncy5oIGZvciBkZXRhaWxzLgogIGNvbnN0IGNoYXIqIF9fc2N1ZG9fZGVmYXVsdF9vcHRpb25zKHZvaWQpOwoKICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB0byBzZXQgdGhlIFJTUyBsaW1pdCBhdCBydW50aW1lLiBUaGlzIGNhbiBiZSBlaXRoZXIKICAvLyB0aGUgaGFyZCBsaW1pdCAoSGFyZExpbWl0PTEpIG9yIHRoZSBzb2Z0IGxpbWl0IChIYXJkTGltaXQ9MCkuIFRoZSBsaW1pdAogIC8vIGNhbiBiZSByZW1vdmVkIGJ5IHNldHRpbmcgTGltaXRNYiB0byAwLiBUaGlzIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycyBzaG91bGQKICAvLyBiZSBmdWxseSB0cnVzdGVkIHRvIGF2b2lkIHNlY3VyaXR5IG1pc2hhcHMuCiAgdm9pZCBfX3NjdWRvX3NldF9yc3NfbGltaXQoc2l6ZV90IExpbWl0TWIsIGludCBIYXJkTGltaXQpOwoKICAvLyBUaGlzIGZ1bmN0aW9uIG91dHB1dHMgdmFyaW91cyBhbGxvY2F0b3Igc3RhdGlzdGljcyBmb3IgYm90aCB0aGUgUHJpbWFyeQogIC8vIGFuZCBTZWNvbmRhcnkgYWxsb2NhdG9ycywgaW5jbHVkaW5nIG1lbW9yeSB1c2FnZSwgbnVtYmVyIG9mIGFsbG9jYXRpb25zCiAgLy8gYW5kIGRlYWxsb2NhdGlvbnMuCiAgdm9pZCBfX3NjdWRvX3ByaW50X3N0YXRzKHZvaWQpOwojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gU0FOSVRJWkVSX1NDVURPX0lOVEVSRkFDRV9IXwoAZmNsb3NlKGhhbmRsZSkAKC0xKQBTZWFyY2hERkEgaW5jb25zaXN0ZW5jeQBSZXdyaXRlIHNjaGVtYSBlcnJvcjogJ1wnIG5vdCBhbGxvd2VkIGF0IGVuZC4AIGluIEFkZFRvVGhyZWFkcQBVbmV4cGVjdGVkIG9wIGluIFJlZ2V4cDo6RXF1YWw6IABCaGFpa3N1a2kARWxiYXNhbgBNb2RpACBvbiBjcHUgJWQAdW5vcmRlcmVkIGZyZWVsaXN0AHtsYW1iZGEoKSMAZgBzdGQ6Om51bGxwdHJfdAByTQBhYQBTZABGQUlMRURfUFJFQ09ORElUSU9OAFx1IG11c3QgYmUgZm9sbG93ZWQgYnkgNCBoZXggZGlnaXRzOiBcAFwiACkgewoAeWVzAGxlbmd0aCA+IDAAVW5sb2NrAERSQkcgUmVzZWVkIEtBVABiaWdudW0gcm91dGluZXMAa3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LmVudHJ5X2NvbnRleHQAa3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5TeXN0ZW1IZWFkZXJQcmVmaXgucHJlZml4AGt5dGhlLnByb3RvLlZOYW1lUmV3cml0ZVJ1bGUucGF0dGVybgBjcHAtb3V0cHV0ACAALS13aXRoX2V4ZWN1dGFibGUAS1lUSEVfQ0FOT05JQ0FMSVpFX1ZOQU1FX1BBVEhTAG1hdGhfYnVpbHRpbgBNU01vZGUALyo9PT0tLS0tIF9fY2xhbmdfY3VkYV9jbWF0aC5oIC0gRGV2aWNlLXNpZGUgQ1VEQSBjbWF0aCBzdXBwb3J0IC0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9DTUFUSF9IX18KI2RlZmluZSBfX0NMQU5HX0NVREFfQ01BVEhfSF9fCiNpZm5kZWYgX19DVURBX18KI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIENVREEgY29tcGlsYXRpb24gb25seS4iCiNlbmRpZgoKI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCiNpbmNsdWRlIDxsaW1pdHM+CiNlbmRpZgoKLy8gQ1VEQSBsZXRzIHVzIHVzZSB2YXJpb3VzIHN0ZCBtYXRoIGZ1bmN0aW9ucyBvbiB0aGUgZGV2aWNlIHNpZGUuICBUaGlzIGZpbGUKLy8gd29ya3MgaW4gY29uY2VydCB3aXRoIF9fY2xhbmdfY3VkYV9tYXRoX2ZvcndhcmRfZGVjbGFyZXMuaCB0byBtYWtlIHRoaXMgd29yay4KLy8KLy8gU3BlY2lmaWNhbGx5LCB0aGUgZm9yd2FyZC1kZWNsYXJlcyBoZWFkZXIgZGVjbGFyZXMgX19kZXZpY2VfXyBvdmVybG9hZHMgZm9yCi8vIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZSwgdGhlbiBwdWxscyB0aGVtIGludG8gbmFtZXNwYWNlIHN0ZAovLyB3aXRoICd1c2luZycgc3RhdGVtZW50cy4gIFRoZW4gdGhpcyBmaWxlIGltcGxlbWVudHMgdGhvc2UgZnVuY3Rpb25zLCBhZnRlcgovLyB0aGVpciBpbXBsZW1lbnRhdGlvbnMgaGF2ZSBiZWVuIHB1bGxlZCBpbi4KLy8KLy8gSXQncyBpbXBvcnRhbnQgdGhhdCB3ZSBkZWNsYXJlIHRoZSBmdW5jdGlvbnMgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UgYW5kIHB1bGwKLy8gdGhlbSBpbnRvIG5hbWVzcGFjZSBzdGQgd2l0aCB1c2luZyBzdGF0ZW1lbnRzLCBhcyBvcHBvc2VkIHRvIHNpbXBseSBkZWNsYXJpbmcKLy8gdGhlc2UgZnVuY3Rpb25zIGluIG5hbWVzcGFjZSBzdGQsIGJlY2F1c2Ugb3VyIGRldmljZSBmdW5jdGlvbnMgbmVlZCB0bwovLyBvdmVybG9hZCB0aGUgc3RhbmRhcmQgbGlicmFyeSBmdW5jdGlvbnMsIHdoaWNoIG1heSBiZSBkZWNsYXJlZCBpbiB0aGUgZ2xvYmFsCi8vIG5hbWVzcGFjZSBvciBpbiBzdGQsIGRlcGVuZGluZyBvbiB0aGUgZGVncmVlIG9mIGNvbmZvcm1hbmNlIG9mIHRoZSBzdGRsaWIKLy8gaW1wbGVtZW50YXRpb24uICBEZWNsYXJpbmcgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UgYW5kIHB1bGxpbmcgaW50byBuYW1lc3BhY2UKLy8gc3RkIGNvdmVycyBhbGwgb2YgdGhlIGtub3duIGtub3ducy4KCiNpZmRlZiBfX09QRU5NUF9OVlBUWF9fCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgY29uc3RleHByIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkKI2VuZGlmCgpfX0RFVklDRV9fIGxvbmcgbG9uZyBhYnMobG9uZyBsb25nIF9fbikgeyByZXR1cm4gOjpsbGFicyhfX24pOyB9Cl9fREVWSUNFX18gbG9uZyBhYnMobG9uZyBfX24pIHsgcmV0dXJuIDo6bGFicyhfX24pOyB9Cl9fREVWSUNFX18gZmxvYXQgYWJzKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmYWJzZihfX3gpOyB9Cl9fREVWSUNFX18gZG91YmxlIGFicyhkb3VibGUgX194KSB7IHJldHVybiA6OmZhYnMoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGFjb3MoZmxvYXQgX194KSB7IHJldHVybiA6OmFjb3NmKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhc2luKGZsb2F0IF9feCkgeyByZXR1cm4gOjphc2luZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgYXRhbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6YXRhbmYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGF0YW4yKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiA6OmF0YW4yZihfX3gsIF9feSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBjZWlsKGZsb2F0IF9feCkgeyByZXR1cm4gOjpjZWlsZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgY29zKGZsb2F0IF9feCkgeyByZXR1cm4gOjpjb3NmKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBjb3NoKGZsb2F0IF9feCkgeyByZXR1cm4gOjpjb3NoZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXhwKGZsb2F0IF9feCkgeyByZXR1cm4gOjpleHBmKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBmYWJzKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmYWJzZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgZmxvb3IoZmxvYXQgX194KSB7IHJldHVybiA6OmZsb29yZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgZm1vZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gOjpmbW9kZihfX3gsIF9feSk7IH0KX19ERVZJQ0VfXyBpbnQgZnBjbGFzc2lmeShmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2ZwY2xhc3NpZnkoRlBfTkFOLCBGUF9JTkZJTklURSwgRlBfTk9STUFMLCBGUF9TVUJOT1JNQUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQX1pFUk8sIF9feCk7Cn0KX19ERVZJQ0VfXyBpbnQgZnBjbGFzc2lmeShkb3VibGUgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9mcGNsYXNzaWZ5KEZQX05BTiwgRlBfSU5GSU5JVEUsIEZQX05PUk1BTCwgRlBfU1VCTk9STUFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUF9aRVJPLCBfX3gpOwp9Cl9fREVWSUNFX18gZmxvYXQgZnJleHAoZmxvYXQgX19hcmcsIGludCAqX19leHApIHsKICByZXR1cm4gOjpmcmV4cGYoX19hcmcsIF9fZXhwKTsKfQoKLy8gRm9yIGluc2NydXRhYmxlIHJlYXNvbnMsIHRoZSBDVURBIGhlYWRlcnMgZGVmaW5lIHRoZXNlIGZ1bmN0aW9ucyBmb3IgdXMgb24KLy8gV2luZG93cy4KI2lmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fT1BFTk1QX05WUFRYX18pCgovLyBGb3IgT3Blbk1QIHdlIHdvcmsgYXJvdW5kIHNvbWUgb2xkIHN5c3RlbSBoZWFkZXJzIHRoYXQgaGF2ZSBub24tY29uZm9ybWluZwovLyBgaXNpbmYoZmxvYXQpYCBhbmQgYGlzbmFuKGZsb2F0KWAgaW1wbGVtZW50YXRpb25zIHRoYXQgcmV0dXJuIGFuIGBpbnRgLiBXZSBkbwovLyB0aGlzIGJ5IHByb3ZpZGluZyB0d28gdmVyc2lvbnMgb2YgdGhlc2UgZnVuY3Rpb25zLCBkaWZmZXJpbmcgb25seSBpbiB0aGUKLy8gcmV0dXJuIHR5cGUuIFRvIGF2b2lkIGNvbmZsaWN0aW5nIGRlZmluaXRpb25zIHdlIGRpc2FibGUgaW1wbGljaXQgYmFzZQovLyBmdW5jdGlvbiBnZW5lcmF0aW9uLiBUaGF0IG1lYW5zIHdlIHdpbGwgZW5kIHVwIHdpdGggdHdvIHNwZWNpYWxpemF0aW9ucywgb25lCi8vIHBlciB0eXBlLCBidXQgb25seSBvbmUgaGFzIGEgYmFzZSBmdW5jdGlvbiBkZWZpbmVkIGJ5IHRoZSBzeXN0ZW0gaGVhZGVyLgojaWYgZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKQojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgaW1wbGVtZW50YXRpb24gPSB7ZXh0ZW5zaW9uKGRpc2FibGVfaW1wbGljaXRfYmFzZSl9KQoKLy8gRklYTUU6IFdlIGxhY2sgYW4gZXh0ZW5zaW9uIHRvIGN1c3RvbWl6ZSB0aGUgbWFuZ2xpbmcgb2YgdGhlIHZhcmlhbnRzLCBlLmcuLAovLyAgICAgICAgYWRkIGEgc3VmZml4LiBUaGlzIG1lYW5zIHdlIHdvdWxkIGNsYXNoIHdpdGggdGhlIG5hbWVzIG9mIHRoZSB2YXJpYW50cwovLyAgICAgICAgKG5vdGUgdGhhdCB3ZSBkbyBub3QgY3JlYXRlIGltcGxpY2l0IGJhc2UgZnVuY3Rpb25zIGhlcmUpLiBUbyBhdm9pZAovLyAgICAgICAgdGhpcyBjbGFzaCB3ZSBhZGQgYSBuZXcgdHJhaXQgdG8gc29tZSBvZiB0aGVtIHRoYXQgaXMgYWx3YXlzIHRydWUKLy8gICAgICAgICh0aGlzIGlzIExMVk0gYWZ0ZXIgYWxsIDspKS4gSXQgd2lsbCBvbmx5IGluZmx1ZW5jZSB0aGUgbWFuZ2xlZCBuYW1lCi8vICAgICAgICBvZiB0aGUgdmFyaWFudHMgaW5zaWRlIHRoZSBpbm5lciByZWdpb24gYW5kIGF2b2lkIHRoZSBjbGFzaC4KI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGltcGxlbWVudGF0aW9uID0ge3ZlbmRvcihsbHZtKX0pCgpfX0RFVklDRV9fIGludCBpc2luZihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc2luZmYoX194KTsgfQpfX0RFVklDRV9fIGludCBpc2luZihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNpbmYoX194KTsgfQpfX0RFVklDRV9fIGludCBpc2Zpbml0ZShmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGVmKF9feCk7IH0KX19ERVZJQ0VfXyBpbnQgaXNmaW5pdGUoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzZmluaXRlZChfX3gpOyB9Cl9fREVWSUNFX18gaW50IGlzbmFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2lzbmFuZihfX3gpOyB9Cl9fREVWSUNFX18gaW50IGlzbmFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19pc25hbihfX3gpOyB9CgojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CgojZW5kaWYKCl9fREVWSUNFX18gYm9vbCBpc2luZihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc2luZmYoX194KTsgfQpfX0RFVklDRV9fIGJvb2wgaXNpbmYoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIGlzZmluaXRlKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2Zpbml0ZWYoX194KTsgfQovLyBGb3IgaW5zY3J1dGFibGUgcmVhc29ucywgX19maW5pdGUoKSwgdGhlIGRvdWJsZS1wcmVjaXNpb24gdmVyc2lvbiBvZgovLyBfX2Zpbml0ZWYsIGRvZXMgbm90IGV4aXN0IHdoZW4gY29tcGlsaW5nIGZvciBNYWNPUy4gIF9faXNmaW5pdGVkIGlzIGF2YWlsYWJsZQovLyBldmVyeXdoZXJlIGFuZCBpcyBqdXN0IGFzIGdvb2QuCl9fREVWSUNFX18gYm9vbCBpc2Zpbml0ZShkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNmaW5pdGVkKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIGlzbmFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2lzbmFuZihfX3gpOyB9Cl9fREVWSUNFX18gYm9vbCBpc25hbihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNuYW4oX194KTsgfQoKI2lmIGRlZmluZWQoX19PUEVOTVBfTlZQVFhfXykKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAojZW5kaWYKCiNlbmRpZgoKX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcihmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNncmVhdGVyKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcmVxdWFsKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2dyZWF0ZXJlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcmVxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3MoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gYm9vbCBpc2xlc3MoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZXF1YWwoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzc2VxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZXF1YWwoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZXF1YWwoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gYm9vbCBpc2xlc3NncmVhdGVyKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZ3JlYXRlcihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNub3JtYWwoZmxvYXQgX194KSB7IHJldHVybiBfX2J1aWx0aW5faXNub3JtYWwoX194KTsgfQpfX0RFVklDRV9fIGJvb2wgaXNub3JtYWwoZG91YmxlIF9feCkgeyByZXR1cm4gX19idWlsdGluX2lzbm9ybWFsKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIGlzdW5vcmRlcmVkKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc3Vub3JkZXJlZChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzdW5vcmRlcmVkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzdW5vcmRlcmVkKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGZsb2F0IGxkZXhwKGZsb2F0IF9fYXJnLCBpbnQgX19leHApIHsKICByZXR1cm4gOjpsZGV4cGYoX19hcmcsIF9fZXhwKTsKfQpfX0RFVklDRV9fIGZsb2F0IGxvZyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6bG9nZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgbG9nMTAoZmxvYXQgX194KSB7IHJldHVybiA6OmxvZzEwZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgbW9kZihmbG9hdCBfX3gsIGZsb2F0ICpfX2lwdHIpIHsgcmV0dXJuIDo6bW9kZmYoX194LCBfX2lwdHIpOyB9Cl9fREVWSUNFX18gZmxvYXQgcG93KGZsb2F0IF9fYmFzZSwgZmxvYXQgX19leHApIHsKICByZXR1cm4gOjpwb3dmKF9fYmFzZSwgX19leHApOwp9Cl9fREVWSUNFX18gZmxvYXQgcG93KGZsb2F0IF9fYmFzZSwgaW50IF9faWV4cCkgewogIHJldHVybiA6OnBvd2lmKF9fYmFzZSwgX19pZXhwKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBwb3coZG91YmxlIF9fYmFzZSwgaW50IF9faWV4cCkgewogIHJldHVybiA6OnBvd2koX19iYXNlLCBfX2lleHApOwp9Cl9fREVWSUNFX18gYm9vbCBzaWduYml0KGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX3NpZ25iaXRmKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIHNpZ25iaXQoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX3NpZ25iaXRkKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBzaW4oZmxvYXQgX194KSB7IHJldHVybiA6OnNpbmYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IHNpbmgoZmxvYXQgX194KSB7IHJldHVybiA6OnNpbmhmKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBzcXJ0KGZsb2F0IF9feCkgeyByZXR1cm4gOjpzcXJ0ZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgdGFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjp0YW5mKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCB0YW5oKGZsb2F0IF9feCkgeyByZXR1cm4gOjp0YW5oZihfX3gpOyB9CgovLyBUaGVyZSB3YXMgYSByZWRlZmluaXRpb24gZXJyb3IgZm9yIHRoaXMgdGhpcyBvdmVybG9hZCBpbiBDVURBIG1vZGUuCi8vIFdlIHJlc3RyaWN0IGl0IHRvIE9wZW5NUCBtb2RlIGZvciBub3csIHRoYXQgaXMgd2hlcmUgaXQgaXMgYWN0dWFsbHkgbmVlZGVkCi8vIGFueXdheS4KI2lmZGVmIF9fT1BFTk1QX05WUFRYX18KX19ERVZJQ0VfXyBmbG9hdCByZW1xdW8oZmxvYXQgX19uLCBmbG9hdCBfX2QsIGludCAqX19xKSB7CiAgcmV0dXJuIDo6cmVtcXVvZihfX24sIF9fZCwgX19xKTsKfQojZW5kaWYKCi8vIE5vdGFibHkgbWlzc2luZyBhYm92ZSBpcyBuZXh0dG93YXJkLiAgV2Ugb21pdCBpdCBiZWNhdXNlCi8vIGxpYmRldmljZSBkb2Vzbid0IHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24sIGFuZCB3ZSBkb24ndCB3YW50IHRvIGJlIGluIHRoZQovLyBidXNpbmVzcyBvZiBpbXBsZW1lbnRpbmcgdHJpY2t5IGxpYm0gZnVuY3Rpb25zIGluIHRoaXMgaGVhZGVyLgoKI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCgovLyBOb3cgd2UndmUgZGVmaW5lZCBldmVyeXRoaW5nIHdlIHByb21pc2VkIHdlJ2QgZGVmaW5lIGluCi8vIF9fY2xhbmdfY3VkYV9tYXRoX2ZvcndhcmRfZGVjbGFyZXMuaC4gIFdlIG5lZWQgdG8gZG8gdHdvIGFkZGl0aW9uYWwgdGhpbmdzIHRvCi8vIGZpeCB1cCBvdXIgbWF0aCBmdW5jdGlvbnMuCi8vCi8vIDEpIERlZmluZSBfX2RldmljZV9fIG92ZXJsb2FkcyBmb3IgZS5nLiBzaW4oaW50KS4gIFRoZSBDVURBIGhlYWRlcnMgZGVmaW5lCi8vICAgIG9ubHkgc2luKGZsb2F0KSBhbmQgc2luKGRvdWJsZSksIHdoaWNoIG1lYW5zIHRoYXQgZS5nLiBzaW4oMCkgaXMKLy8gICAgYW1iaWd1b3VzLgovLwovLyAyKSBQdWxsIHRoZSBfX2RldmljZV9fIG92ZXJsb2FkcyBvZiAiZm9vYmFyZiIgbWF0aCBmdW5jdGlvbnMgaW50byBuYW1lc3BhY2UKLy8gICAgc3RkLiAgVGhlc2UgYXJlIGRlZmluZWQgaW4gdGhlIENVREEgaGVhZGVycyBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZSwKLy8gICAgaW5kZXBlbmRlbnQgb2YgZXZlcnl0aGluZyBlbHNlIHdlJ3ZlIGRvbmUgaGVyZS4KCi8vIFdlIGNhbid0IHVzZSBzdGQ6OmVuYWJsZV9pZiwgYmVjYXVzZSB3ZSB3YW50IHRvIGJlIHByZS1DKysxMSBjb21wYXRpYmxlLiAgQnV0Ci8vIHdlIGdvIGFoZWFkIGFuZCB1bmNvbmRpdGlvbmFsbHkgZGVmaW5lIGZ1bmN0aW9ucyB0aGF0IGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuCi8vIGNvbXBpbGluZyBmb3IgQysrMTEgdG8gbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHRoZSBDVURBIGhlYWRlcnMuCnRlbXBsYXRlPGJvb2wgX19CLCBjbGFzcyBfX1QgPSB2b2lkPgpzdHJ1Y3QgX19jbGFuZ19jdWRhX2VuYWJsZV9pZiB7fTsKCnRlbXBsYXRlIDxjbGFzcyBfX1Q+IHN0cnVjdCBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPHRydWUsIF9fVD4gewogIHR5cGVkZWYgX19UIHR5cGU7Cn07CgovLyBEZWZpbmVzIGFuIG92ZXJsb2FkIG9mIF9fZm4gdGhhdCBhY2NlcHRzIG9uZSBpbnRlZ3JhbCBhcmd1bWVudCwgY2FsbHMKLy8gX19mbigoZG91YmxlKXgpLCBhbmQgcmV0dXJucyBfX3JldHR5LgojZGVmaW5lIF9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoX19yZXR0eSwgX19mbikgICAgICAgICAgICAgICAgICAgICAgXAogIHRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB0eXBlbmFtZSBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPHN0ZDo6bnVtZXJpY19saW1pdHM8X19UPjo6aXNfaW50ZWdlciwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmV0dHk+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2ZuKF9fVCBfX3gpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIDo6X19mbigoZG91YmxlKV9feCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KCi8vIERlZmluZXMgYW4gb3ZlcmxvYWQgb2YgX19mbiB0aGF0IGFjY2VwdHMgb25lIHR3byBhcml0aG1ldGljIGFyZ3VtZW50cywgY2FsbHMKLy8gX19mbigoZG91YmxlKXgsIChkb3VibGUpeSksIGFuZCByZXR1cm5zIGEgZG91YmxlLgovLwovLyBOb3RlIHRoaXMgaXMgZGlmZmVyZW50IGZyb20gT1ZFUkxPQURfMSwgd2hpY2ggZ2VuZXJhdGVzIGFuIG92ZXJsb2FkIHRoYXQKLy8gYWNjZXB0cyBvbmx5ICppbnRlZ3JhbCogYXJndW1lbnRzLgojZGVmaW5lIF9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoX19yZXR0eSwgX19mbikgICAgICAgICAgICAgICAgICAgICAgXAogIHRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPF9fVDE+Ojppc19zcGVjaWFsaXplZCAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxfX1QyPjo6aXNfc3BlY2lhbGl6ZWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX3JldHR5Pjo6dHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZm4oX19UMSBfX3gsIF9fVDIgX195KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fZm4oKGRvdWJsZSlfX3gsIChkb3VibGUpX195KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBhY29zKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYWNvc2gpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBhc2luKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYXNpbmgpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBhdGFuKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgYXRhbjIpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYXRhbmgpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBjYnJ0KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgY2VpbCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGNvcHlzaWduKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGNvcykKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGNvc2gpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBlcmYpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBlcmZjKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZXhwKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZXhwMikKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGV4cG0xKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZmFicykKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGZkaW0pOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZmxvb3IpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCBmbWF4KTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGZtaW4pOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgZm1vZCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoaW50LCBmcGNsYXNzaWZ5KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgaHlwb3QpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGludCwgaWxvZ2IpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoYm9vbCwgaXNmaW5pdGUpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoYm9vbCwgaXNncmVhdGVyKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihib29sLCBpc2dyZWF0ZXJlcXVhbCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoYm9vbCwgaXNpbmYpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGJvb2wsIGlzbGVzcyk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoYm9vbCwgaXNsZXNzZXF1YWwpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGJvb2wsIGlzbGVzc2dyZWF0ZXIpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGJvb2wsIGlzbmFuKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShib29sLCBpc25vcm1hbCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihib29sLCBpc3Vub3JkZXJlZCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBsZ2FtbWEpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBsb2cpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBsb2cxMCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGxvZzFwKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgbG9nMikKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGxvZ2IpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEobG9uZyBsb25nLCBsbHJpbnQpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEobG9uZyBsb25nLCBsbHJvdW5kKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGxvbmcsIGxyaW50KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGxvbmcsIGxyb3VuZCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIG5lYXJieWludCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCBuZXh0YWZ0ZXIpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgcG93KTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIHJlbWFpbmRlcik7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCByaW50KTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHJvdW5kKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShib29sLCBzaWduYml0KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgc2luKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgc2luaCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHNxcnQpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCB0YW4pCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCB0YW5oKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgdGdhbW1hKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgdHJ1bmMpOwoKI3VuZGVmIF9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEKI3VuZGVmIF9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIKCi8vIE92ZXJsb2FkcyBmb3IgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIHBhdHRlcm5zIGV4cGVjdGVkIGJ5Ci8vIF9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEX3sxLDJ9Lgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UMSwgdHlwZW5hbWUgX19UMiwgdHlwZW5hbWUgX19UMz4KX19ERVZJQ0VfXyB0eXBlbmFtZSBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPAogICAgc3RkOjpudW1lcmljX2xpbWl0czxfX1QxPjo6aXNfc3BlY2lhbGl6ZWQgJiYKICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPF9fVDI+Ojppc19zcGVjaWFsaXplZCAmJgogICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8X19UMz46OmlzX3NwZWNpYWxpemVkLAogICAgZG91YmxlPjo6dHlwZQpmbWEoX19UMSBfX3gsIF9fVDIgX195LCBfX1QzIF9feikgewogIHJldHVybiBzdGQ6OmZtYSgoZG91YmxlKV9feCwgKGRvdWJsZSlfX3ksIChkb3VibGUpX196KTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyB0eXBlbmFtZSBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPHN0ZDo6bnVtZXJpY19saW1pdHM8X19UPjo6aXNfaW50ZWdlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZT46OnR5cGUKZnJleHAoX19UIF9feCwgaW50ICpfX2V4cCkgewogIHJldHVybiBzdGQ6OmZyZXhwKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjxzdGQ6Om51bWVyaWNfbGltaXRzPF9fVD46OmlzX2ludGVnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGU+Ojp0eXBlCmxkZXhwKF9fVCBfX3gsIGludCBfX2V4cCkgewogIHJldHVybiBzdGQ6OmxkZXhwKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyPgpfX0RFVklDRV9fIHR5cGVuYW1lIF9fY2xhbmdfY3VkYV9lbmFibGVfaWY8CiAgICBzdGQ6Om51bWVyaWNfbGltaXRzPF9fVDE+Ojppc19zcGVjaWFsaXplZCAmJgogICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8X19UMj46OmlzX3NwZWNpYWxpemVkLAogICAgZG91YmxlPjo6dHlwZQpyZW1xdW8oX19UMSBfX3gsIF9fVDIgX195LCBpbnQgKl9fcXVvKSB7CiAgcmV0dXJuIHN0ZDo6cmVtcXVvKChkb3VibGUpX194LCAoZG91YmxlKV9feSwgX19xdW8pOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPgpfX0RFVklDRV9fIHR5cGVuYW1lIF9fY2xhbmdfY3VkYV9lbmFibGVfaWY8c3RkOjpudW1lcmljX2xpbWl0czxfX1Q+Ojppc19pbnRlZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlPjo6dHlwZQpzY2FsYmxuKF9fVCBfX3gsIGxvbmcgX19leHApIHsKICByZXR1cm4gc3RkOjpzY2FsYmxuKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjxzdGQ6Om51bWVyaWNfbGltaXRzPF9fVD46OmlzX2ludGVnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGU+Ojp0eXBlCnNjYWxibihfX1QgX194LCBpbnQgX19leHApIHsKICByZXR1cm4gc3RkOjpzY2FsYm4oKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhlc2Ugb3ZlcmxvYWRzIGluIGV4YWN0bHkgdGhlIG5hbWVzcGFjZSBvdXIgc3RhbmRhcmQKLy8gbGlicmFyeSB1c2VzIChpbmNsdWRpbmcgdGhlIHJpZ2h0IGlubGluZSBuYW1lc3BhY2UpLCBvdGhlcndpc2UgdGhleSB3b24ndCBiZQovLyBwaWNrZWQgdXAgYnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IChlLmcuIGZ1bmN0aW9ucyBpbgovLyA8Y29tcGxleD4pLiAgVGh1cyB0aGUgdWdsaW5lc3MgYmVsb3cuCiNpZmRlZiBfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9CRUdJTl9OQU1FU1BBQ0VfU1RECiNlbHNlCm5hbWVzcGFjZSBzdGQgewojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmCiNlbmRpZgoKLy8gUHVsbCB0aGUgbmV3IG92ZXJsb2FkcyB3ZSBkZWZpbmVkIGFib3ZlIGludG8gbmFtZXNwYWNlIHN0ZC4KdXNpbmcgOjphY29zOwp1c2luZyA6OmFjb3NoOwp1c2luZyA6OmFzaW47CnVzaW5nIDo6YXNpbmg7CnVzaW5nIDo6YXRhbjsKdXNpbmcgOjphdGFuMjsKdXNpbmcgOjphdGFuaDsKdXNpbmcgOjpjYnJ0Owp1c2luZyA6OmNlaWw7CnVzaW5nIDo6Y29weXNpZ247CnVzaW5nIDo6Y29zOwp1c2luZyA6OmNvc2g7CnVzaW5nIDo6ZXJmOwp1c2luZyA6OmVyZmM7CnVzaW5nIDo6ZXhwOwp1c2luZyA6OmV4cDI7CnVzaW5nIDo6ZXhwbTE7CnVzaW5nIDo6ZmFiczsKdXNpbmcgOjpmZGltOwp1c2luZyA6OmZsb29yOwp1c2luZyA6OmZtYTsKdXNpbmcgOjpmbWF4Owp1c2luZyA6OmZtaW47CnVzaW5nIDo6Zm1vZDsKdXNpbmcgOjpmcGNsYXNzaWZ5Owp1c2luZyA6OmZyZXhwOwp1c2luZyA6Omh5cG90Owp1c2luZyA6Omlsb2diOwp1c2luZyA6OmlzZmluaXRlOwp1c2luZyA6OmlzZ3JlYXRlcjsKdXNpbmcgOjppc2dyZWF0ZXJlcXVhbDsKdXNpbmcgOjppc2xlc3M7CnVzaW5nIDo6aXNsZXNzZXF1YWw7CnVzaW5nIDo6aXNsZXNzZ3JlYXRlcjsKdXNpbmcgOjppc25vcm1hbDsKdXNpbmcgOjppc3Vub3JkZXJlZDsKdXNpbmcgOjpsZGV4cDsKdXNpbmcgOjpsZ2FtbWE7CnVzaW5nIDo6bGxyaW50Owp1c2luZyA6Omxscm91bmQ7CnVzaW5nIDo6bG9nOwp1c2luZyA6OmxvZzEwOwp1c2luZyA6OmxvZzFwOwp1c2luZyA6OmxvZzI7CnVzaW5nIDo6bG9nYjsKdXNpbmcgOjpscmludDsKdXNpbmcgOjpscm91bmQ7CnVzaW5nIDo6bmVhcmJ5aW50Owp1c2luZyA6Om5leHRhZnRlcjsKdXNpbmcgOjpwb3c7CnVzaW5nIDo6cmVtYWluZGVyOwp1c2luZyA6OnJlbXF1bzsKdXNpbmcgOjpyaW50Owp1c2luZyA6OnJvdW5kOwp1c2luZyA6OnNjYWxibG47CnVzaW5nIDo6c2NhbGJuOwp1c2luZyA6OnNpZ25iaXQ7CnVzaW5nIDo6c2luOwp1c2luZyA6OnNpbmg7CnVzaW5nIDo6c3FydDsKdXNpbmcgOjp0YW47CnVzaW5nIDo6dGFuaDsKdXNpbmcgOjp0Z2FtbWE7CnVzaW5nIDo6dHJ1bmM7CgovLyBXZWxsIHRoaXMgaXMgZnVuOiBXZSBuZWVkIHRvIHB1bGwgdGhlc2Ugc3ltYm9scyBpbiBmb3IgbGliYysrLCBidXQgd2UgY2FuJ3QKLy8gcHVsbCB0aGVtIGluIHdpdGggbGlic3RkYysrLCBiZWNhdXNlIGl0cyA6OmlzaW5mIGFuZCA6OmlzbmFuIGFyZSBkaWZmZXJlbnQKLy8gdGhhbiBpdHMgc3RkOjppc2luZiBhbmQgc3RkOjppc25hbi4KI2lmbmRlZiBfX0dMSUJDWFhfXwp1c2luZyA6OmlzaW5mOwp1c2luZyA6OmlzbmFuOwojZW5kaWYKCi8vIEZpbmFsbHksIHB1bGwgdGhlICJmb29iYXJmIiBmdW5jdGlvbnMgdGhhdCBDVURBIGRlZmluZXMgaW4gaXRzIGhlYWRlcnMgaW50bwovLyBuYW1lc3BhY2Ugc3RkLgp1c2luZyA6OmFjb3NmOwp1c2luZyA6OmFjb3NoZjsKdXNpbmcgOjphc2luZjsKdXNpbmcgOjphc2luaGY7CnVzaW5nIDo6YXRhbjJmOwp1c2luZyA6OmF0YW5mOwp1c2luZyA6OmF0YW5oZjsKdXNpbmcgOjpjYnJ0ZjsKdXNpbmcgOjpjZWlsZjsKdXNpbmcgOjpjb3B5c2lnbmY7CnVzaW5nIDo6Y29zZjsKdXNpbmcgOjpjb3NoZjsKdXNpbmcgOjplcmZjZjsKdXNpbmcgOjplcmZmOwp1c2luZyA6OmV4cDJmOwp1c2luZyA6OmV4cGY7CnVzaW5nIDo6ZXhwbTFmOwp1c2luZyA6OmZhYnNmOwp1c2luZyA6OmZkaW1mOwp1c2luZyA6OmZsb29yZjsKdXNpbmcgOjpmbWFmOwp1c2luZyA6OmZtYXhmOwp1c2luZyA6OmZtaW5mOwp1c2luZyA6OmZtb2RmOwp1c2luZyA6OmZyZXhwZjsKdXNpbmcgOjpoeXBvdGY7CnVzaW5nIDo6aWxvZ2JmOwp1c2luZyA6OmxkZXhwZjsKdXNpbmcgOjpsZ2FtbWFmOwp1c2luZyA6OmxscmludGY7CnVzaW5nIDo6bGxyb3VuZGY7CnVzaW5nIDo6bG9nMTBmOwp1c2luZyA6OmxvZzFwZjsKdXNpbmcgOjpsb2cyZjsKdXNpbmcgOjpsb2diZjsKdXNpbmcgOjpsb2dmOwp1c2luZyA6OmxyaW50ZjsKdXNpbmcgOjpscm91bmRmOwp1c2luZyA6Om1vZGZmOwp1c2luZyA6Om5lYXJieWludGY7CnVzaW5nIDo6bmV4dGFmdGVyZjsKdXNpbmcgOjpwb3dmOwp1c2luZyA6OnJlbWFpbmRlcmY7CnVzaW5nIDo6cmVtcXVvZjsKdXNpbmcgOjpyaW50ZjsKdXNpbmcgOjpyb3VuZGY7CnVzaW5nIDo6c2NhbGJsbmY7CnVzaW5nIDo6c2NhbGJuZjsKdXNpbmcgOjpzaW5mOwp1c2luZyA6OnNpbmhmOwp1c2luZyA6OnNxcnRmOwp1c2luZyA6OnRhbmY7CnVzaW5nIDo6dGFuaGY7CnVzaW5nIDo6dGdhbW1hZjsKdXNpbmcgOjp0cnVuY2Y7CgojaWZkZWYgX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURApfTElCQ1BQX0VORF9OQU1FU1BBQ0VfU1RECiNlbHNlCiNpZmRlZiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmCn0gLy8gbmFtZXNwYWNlIHN0ZAojZW5kaWYKCiNlbmRpZiAvLyBfX09QRU5NUF9OVlBUWF9fCgojdW5kZWYgX19ERVZJQ0VfXwoKI2VuZGlmCgBfX3dtbWludHJpbl9wY2xtdWwuaABhbHRpdmVjLmgALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMmJ3aW50cmluLmggLSBBVlg1MTJCVyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmJ3aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkJXSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkJXSU5UUklOX0gKCnR5cGVkZWYgdW5zaWduZWQgaW50IF9fbW1hc2szMjsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX19tbWFzazY0OwoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmJ3IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmJ3IikpKQoKc3RhdGljIF9faW5saW5lIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX2tub3RfbWFzazMyKF9fbW1hc2szMiBfX00pCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfa25vdHNpKF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9rbm90X21hc2s2NChfX21tYXNrNjQgX19NKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2tub3RkaShfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rYW5kX21hc2szMihfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa2FuZHNpKChfX21tYXNrMzIpX19BLCAoX19tbWFzazMyKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2thbmRfbWFzazY0KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9rYW5kZGkoKF9fbW1hc2s2NClfX0EsIChfX21tYXNrNjQpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfa2FuZG5fbWFzazMyKF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rYW5kbnNpKChfX21tYXNrMzIpX19BLCAoX19tbWFzazMyKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2thbmRuX21hc2s2NChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa2FuZG5kaSgoX19tbWFzazY0KV9fQSwgKF9fbW1hc2s2NClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3JfbWFzazMyKF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rb3JzaSgoX19tbWFzazMyKV9fQSwgKF9fbW1hc2szMilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3JfbWFzazY0KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9rb3JkaSgoX19tbWFzazY0KV9fQSwgKF9fbW1hc2s2NClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9reG5vcl9tYXNrMzIoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2t4bm9yc2koKF9fbW1hc2szMilfX0EsIChfX21tYXNrMzIpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfa3hub3JfbWFzazY0KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9reG5vcmRpKChfX21tYXNrNjQpX19BLCAoX19tbWFzazY0KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX2t4b3JfbWFzazMyKF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9reG9yc2koKF9fbW1hc2szMilfX0EsIChfX21tYXNrMzIpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfa3hvcl9tYXNrNjQoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2t4b3JkaSgoX19tbWFzazY0KV9fQSwgKF9fbW1hc2s2NClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdGNfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdGNzaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0el9tYXNrMzJfdTgoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0enNpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3RfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y3NpKF9fQSwgX19CKTsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdHpzaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0Y19tYXNrNjRfdTgoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y2RpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3R6X21hc2s2NF91OChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3R6ZGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdF9tYXNrNjRfdTgoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQiwgdW5zaWduZWQgY2hhciAqX19DKSB7CiAgKl9fQyA9ICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3RjZGkoX19BLCBfX0IpOwogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0emRpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0Y19tYXNrMzJfdTgoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNzaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdHpfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6c2koX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNzaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0enNpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0Y19tYXNrNjRfdTgoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNkaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdHpfbWFzazY0X3U4KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6ZGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RfbWFzazY0X3U4KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNkaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0emRpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfa2FkZF9tYXNrMzIoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2thZGRzaSgoX19tbWFzazMyKV9fQSwgKF9fbW1hc2szMilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9rYWRkX21hc2s2NChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa2FkZGRpKChfX21tYXNrNjQpX19BLCAoX19tbWFzazY0KV9fQik7Cn0KCiNkZWZpbmUgX2tzaGlmdGxpX21hc2szMihBLCBJKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa3NoaWZ0bGlzaSgoX19tbWFzazMyKShBKSwgKHVuc2lnbmVkIGludCkoSSkpKQoKI2RlZmluZSBfa3NoaWZ0cmlfbWFzazMyKEEsIEkpIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rc2hpZnRyaXNpKChfX21tYXNrMzIpKEEpLCAodW5zaWduZWQgaW50KShJKSkpCgojZGVmaW5lIF9rc2hpZnRsaV9tYXNrNjQoQSwgSSkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2tzaGlmdGxpZGkoKF9fbW1hc2s2NCkoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCiNkZWZpbmUgX2tzaGlmdHJpX21hc2s2NChBLCBJKSBcCiAgKChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa3NoaWZ0cmlkaSgoX19tbWFzazY0KShBKSwgKHVuc2lnbmVkIGludCkoSSkpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0bWFzazMyX3UzMihfX21tYXNrMzIgX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfa21vdmQoKF9fbW1hc2szMilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9jdnRtYXNrNjRfdTY0KF9fbW1hc2s2NCBfX0EpIHsKICByZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl9rbW92cSgoX19tbWFzazY0KV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dHUzMl9tYXNrMzIodW5zaWduZWQgaW50IF9fQSkgewogIHJldHVybiAoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2ttb3ZkKChfX21tYXNrMzIpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0dTY0X21hc2s2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19BKSB7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa21vdnEoKF9fbW1hc2s2NClfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9sb2FkX21hc2szMihfX21tYXNrMzIgKl9fQSkgewogIHJldHVybiAoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2ttb3ZkKCooX19tbWFzazMyICopX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbG9hZF9tYXNrNjQoX19tbWFzazY0ICpfX0EpIHsKICByZXR1cm4gKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9rbW92cSgqKF9fbW1hc2s2NCAqKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9zdG9yZV9tYXNrMzIoX19tbWFzazMyICpfX0EsIF9fbW1hc2szMiBfX0IpIHsKICAqKF9fbW1hc2szMiAqKV9fQSA9IF9fYnVpbHRpbl9pYTMyX2ttb3ZkKChfX21tYXNrMzIpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3N0b3JlX21hc2s2NChfX21tYXNrNjQgKl9fQSwgX19tbWFzazY0IF9fQikgewogICooX19tbWFzazY0ICopX19BID0gX19idWlsdGluX2lhMzJfa21vdnEoKF9fbW1hc2s2NClfX0IpOwp9CgovKiBJbnRlZ2VyIGNvbXBhcmUgKi8KCiNkZWZpbmUgX21tNTEyX2NtcF9lcGk4X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2NtcGI1MTJfbWFzaygoX192NjRxaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazY0KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX2VwaThfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfY21wYjUxMl9tYXNrKChfX3Y2NHFpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrNjQpKG0pKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9lcHU4X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX3VjbXBiNTEyX21hc2soKF9fdjY0cWkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazY0KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX2VwdThfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfdWNtcGI1MTJfbWFzaygoX192NjRxaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrNjQpKG0pKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9lcGkxNl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXB3NTEyX21hc2soKF9fdjMyaGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXB3NTEyX21hc2soKF9fdjMyaGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikobSkpKQoKI2RlZmluZSBfbW01MTJfY21wX2VwdTE2X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX3VjbXB3NTEyX21hc2soKF9fdjMyaGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX2VwdTE2X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX3VjbXB3NTEyX21hc2soKF9fdjMyaGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShtKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX2NtcGd0X2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcGk4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX2NtcGd0X2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcHU4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwaTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwdTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkX2VwaTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3Y2NHF1KSBfX0EgKyAoX192NjRxdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX2VwaTgoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FkZF9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJfZXBpOCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjY0cXUpIF9fQSAtIChfX3Y2NHF1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJfZXBpOChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc3ViX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX2VwaTgoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc3ViX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZF9lcGkxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjMyaHUpIF9fQSArIChfX3YzMmh1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hZGRfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2FkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJfZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3YzMmh1KSBfX0EgLSAoX192MzJodSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3ViX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zdWJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3N1Yl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsbG9fZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3YzMmh1KSBfX0EgKiAoX192MzJodSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsbG9fZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bGxvX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2JsZW5kX2VwaTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fVykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIgKChfX21tYXNrNjQpIF9fVSwKICAgICAgICAgICAgICAoX192NjRxaSkgX19XLAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19ibGVuZF9lcGkxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19XKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgIChfX3YzMmhpKSBfX1csCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFic2I1MTIoKF9fdjY0cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWJzX2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2Fic19lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hYnNfZXBpOCAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hYnNfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Fic19lcGkxNiAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFic3c1MTIoKF9fdjMyaGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWJzX2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hYnNfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Fic19lcGkxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hYnNfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wYWNrc19lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFja3NzZHc1MTIoKF9fdjE2c2kpX19BLCAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGFja3NfZXBpMzIoX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfcGFja3NfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGFja3NfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3BhY2tzX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWNrc3N3YjUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wYWNrc19lcGkxNihfX201MTJpIF9fVywgX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3BhY2tzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wYWNrc19lcGkxNihfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfcGFja3NfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wYWNrdXNfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhY2t1c2R3NTEyKChfX3YxNnNpKSBfX0EsIChfX3YxNnNpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGFja3VzX2VwaTMyKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wYWNrdXNfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wYWNrdXNfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhY2t1c3diNTEyKChfX3YzMmhpKSBfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wYWNrdXNfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9wYWNrdXNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3BhY2t1c19lcGkxNihfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfcGFja3VzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkc19lcGk4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFkZHNiNTEyKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkc19lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FkZHNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkc19lcGk4IChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfYWRkc19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkc19lcGkxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhZGRzdzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZHNfZXBpMTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWRkc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkc19lcGkxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2FkZHNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRzX2VwdTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWRkdXNiNTEyKChfX3Y2NHFpKSBfX0EsIChfX3Y2NHFpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hZGRzX2VwdTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfYWRkc19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRzX2VwdTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hZGRzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRzX2VwdTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFkZHVzdzUxMigoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkc19lcHUxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hZGRzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRzX2VwdTE2IChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWRkc19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2F2Z19lcHU4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGF2Z2I1MTIoKF9fdjY0cWkpX19BLCAoX192NjRxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hdmdfZXB1OCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2F2Z19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYXZnX2VwdTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfYXZnX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYXZnX2VwdTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGF2Z3c1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hdmdfZXB1MTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwKICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYXZnX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYXZnX2VwdTE2IChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2F2Z19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWF4X2VwaTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4c2I1MTIoKF9fdjY0cWkpIF9fQSwgKF9fdjY0cWkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXBpOCAoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfbWF4X2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tYXhfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4c3c1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjMyaGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXBpMTYgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWF4X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9lcHU4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1heHViNTEyKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21heF9lcHU4IChfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tYXhfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYXhfZXB1OCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX21heF9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9lcHUxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYXh1dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXB1MTYgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWF4X2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwdTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tYXhfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXBpOCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW5zYjUxMigoX192NjRxaSkgX19BLCAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9lcGk4IChfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9taW5fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fZXBpOCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX21pbl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcGkxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW5zdzUxMigoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9lcGkxNiAoX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fZXBpMTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21pbl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcHU4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1pbnViNTEyKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9lcHU4IChfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9taW5fZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fZXB1OCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX21pbl9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcHUxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW51dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXB1MTYgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwdTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9taW5fZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zaHVmZmxlX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzaHVmYjUxMigoX192NjRxaSlfX0EsKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2h1ZmZsZV9lcGk4KF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NodWZmbGVfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJzX2VwaTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3Vic2I1MTIoKF9fdjY0cWkpX19BLCAoX192NjRxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJzX2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc3Vic19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJzX2VwaTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zdWJzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJzX2VwaTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHN1YnN3NTEyKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3Vic19lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zdWJzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJzX2VwaTE2IChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Vic19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1YnNfZXB1OCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzdWJ1c2I1MTIoKF9fdjY0cWkpIF9fQSwgKF9fdjY0cWkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1YnNfZXB1OCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zdWJzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1YnNfZXB1OCAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3N1YnNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1YnNfZXB1MTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3VidXN3NTEyKChfX3YzMmhpKSBfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJzX2VwdTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3N1YnNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1YnNfZXB1MTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zdWJzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXgydmFyX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpNTEyKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX2VwaTE2KF9fbTUxMmkgX19BLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2syX3Blcm11dGV4MnZhcl9lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbW1hc2szMiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTE2KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXgydmFyX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsaHJzX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbXVsaHJzdzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bGhyc19lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxocnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxocnNfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxocnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsaGlfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtdWxodzUxMigoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsaGlfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxoaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxoaV9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxoaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsaGlfZXB1MTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtdWxodXc1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjMyaGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bGhpX2VwdTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxoaV9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxoaV9lcHUxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaGlfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hZGR1YnNfZXBpMTYoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYWRkdWJzdzUxMigoX192NjRxaSlfX1gsIChfX3Y2NHFpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21hZGR1YnNfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19ZKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tYWRkdWJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYWRkdWJzX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWFkZHVic19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hZGRfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYWRkd2Q1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYWRkX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWFkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWFkZF9lcGkxNihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWFkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNlcGkxNl9lcGk4IChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjUxMl9tYXNrICgoX192MzJoaSkgX19BLAogICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAoX19tbWFzazMyKSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGkxNl9lcGk4IChfX20yNTZpIF9fTywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjMycWkpX19PLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0c2VwaTE2X2VwaTggKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dXNlcGkxNl9lcGk4IChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2szMikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTE2X2VwaTggKF9fbTI1NmkgX19PLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dXNlcGkxNl9lcGk4IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTE2X2VwaTggKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92d2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLAogICAgICAgICAgICAgIChfX21tYXNrMzIpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMTZfZXBpOCAoX19tMjU2aSBfX08sIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92d2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAoX192MzJxaSkgX19PLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkxNl9lcGk4IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdndiNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMTZfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdndiNTEybWVtX21hc2sgKChfX3YzMnFpICopIF9fUCwgKF9fdjMyaGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2I1MTJtZW1fbWFzayAoKF9fdjMycWkgKikgX19QLCAoX192MzJoaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diNTEybWVtX21hc2sgKChfX3YzMnFpICopIF9fUCwgKF9fdjMyaGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2hpX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCAgNjQrOCwgICA5LCA2NCs5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgNjQrMTAsIDExLCA2NCsxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIsIDY0KzEyLCAxMywgNjQrMTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LCA2NCsxNCwgMTUsIDY0KzE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCwgNjQrMjQsIDI1LCA2NCsyNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYsIDY0KzI2LCAyNywgNjQrMjcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4LCA2NCsyOCwgMjksIDY0KzI5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMCwgNjQrMzAsIDMxLCA2NCszMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsIDY0KzQwLCA0MSwgNjQrNDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLCA2NCs0MiwgNDMsIDY0KzQzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NCwgNjQrNDQsIDQ1LCA2NCs0NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYsIDY0KzQ2LCA0NywgNjQrNDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2LCA2NCs1NiwgNTcsIDY0KzU3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OCwgNjQrNTgsIDU5LCA2NCs1OSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAsIDY0KzYwLCA2MSwgNjQrNjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYyLCA2NCs2MiwgNjMsIDY0KzYzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNraGlfZXBpOChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3VucGFja2hpX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2hpX2VwaTgoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3VucGFja2hpX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2toaV9lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsICAzMis0LCAgIDUsIDMyKzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYsICAzMis2LCAgIDcsIDMyKzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLCAzMisxMiwgMTMsIDMyKzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNCwgMzIrMTQsIDE1LCAzMisxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAsIDMyKzIwLCAyMSwgMzIrMjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLCAzMisyMiwgMjMsIDMyKzIzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCwgMzIrMjgsIDI5LCAzMisyOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAsIDMyKzMwLCAzMSwgMzIrMzEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2toaV9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfdW5wYWNraGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNraGlfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfdW5wYWNraGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2xvX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgNjQrMCwgICAxLCA2NCsxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCAgNjQrMiwgICAzLCA2NCszLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAgNjQrNCwgICA1LCA2NCs1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LCAgNjQrNiwgICA3LCA2NCs3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiwgNjQrMTYsIDE3LCA2NCsxNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgsIDY0KzE4LCAxOSwgNjQrMTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLCA2NCsyMCwgMjEsIDY0KzIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMiwgNjQrMjIsIDIzLCA2NCsyMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIsIDY0KzMyLCAzMywgNjQrMzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LCA2NCszNCwgMzUsIDY0KzM1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNiwgNjQrMzYsIDM3LCA2NCszNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzgsIDY0KzM4LCAzOSwgNjQrMzksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4LCA2NCs0OCwgNDksIDY0KzQ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MCwgNjQrNTAsIDUxLCA2NCs1MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTIsIDY0KzUyLCA1MywgNjQrNTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU0LCA2NCs1NCwgNTUsIDY0KzU1KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNrbG9fZXBpOChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3VucGFja2xvX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2xvX2VwaTgoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3VucGFja2xvX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2tsb19lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAzMiswLCAgIDEsIDMyKzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsICAzMisyLCAgIDMsIDMyKzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsICAzMis4LCAgIDksIDMyKzksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLCAzMisxMCwgMTEsIDMyKzExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiwgMzIrMTYsIDE3LCAzMisxNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgsIDMyKzE4LCAxOSwgMzIrMTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LCAzMisyNCwgMjUsIDMyKzI1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNiwgMzIrMjYsIDI3LCAzMisyNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2xvX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl91bnBhY2tsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2tsb19lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl91bnBhY2tsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpOF9lcGkxNihfX20yNTZpIF9fQSkKewogIC8qIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHBlcmZvcm1zIGEgc2lnbmVkIGV4dGVuc2lvbiwgYnV0IF9fdjMycWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjMycXMuICovCiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YzMnFzKV9fQSwgX192MzJoaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaThfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfY3Z0ZXBpOF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpOF9lcGkxNihfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dGVwaThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHU4X2VwaTE2KF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YzMnF1KV9fQSwgX192MzJoaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdThfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfY3Z0ZXB1OF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1OF9lcGkxNihfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlaGlfZXBpMTYoQSwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzaHVmaHc1MTIoKF9fdjMyaGkpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2h1ZmZsZWhpX2VwaTE2KFcsIFUsIEEsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2h1ZmZsZWhpX2VwaTE2KChBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2h1ZmZsZWhpX2VwaTE2KFUsIEEsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2h1ZmZsZWhpX2VwaTE2KChBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NodWZmbGVsb19lcGkxNihBLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNodWZsdzUxMigoX192MzJoaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSkpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfc2h1ZmZsZWxvX2VwaTE2KFcsIFUsIEEsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2h1ZmZsZWxvX2VwaTE2KChBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoVykpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVsb19lcGkxNihVLCBBLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NodWZmbGVsb19lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsdl9lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHYzMmhpKChfX3YzMmhpKSBfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zbGx2X2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zbGxfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGx3NTEyKChfX3YzMmhpKSBfX0EsIChfX3Y4aGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbF9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2xsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbF9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zbGxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbGlfZXBpMTYoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHdpNTEyKChfX3YzMmhpKV9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsaV9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2xsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbGlfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NsbGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9ic2xsaV9lcGkxMjgoYSwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGxkcWk1MTJfYnl0ZXNoaWZ0KChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCAoaW50KShpbW0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmx2X2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JsdjMyaGkoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmx2X2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Jsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jsdl9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Jsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYXZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmF2MzJoaSgoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYXZfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmF2X2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JhX2VwaTE2KF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhdzUxMigoX192MzJoaSkgX19BLCAoX192OGhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmFfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NyYV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3JhX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmFpX2VwaTE2KF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmF3aTUxMigoX192MzJoaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYWlfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NyYWlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFpX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmFpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybF9lcGkxNihfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybHc1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjhoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JsX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JsX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NybF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JsaV9lcGkxNihfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3Jsd2k1MTIoKF9fdjMyaGkpX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmxpX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JsaV9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3JsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2JzcmxpX2VwaTEyOChhLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybGRxaTUxMl9ieXRlc2hpZnQoKF9fdjhkaSkoX19tNTEyaSkoYSksIChpbnQpKGltbSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92X2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyICgoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgICAoX192MzJoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfZXBpMTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdl9lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyICgoX19tbWFzazY0KSBfX1UsCiAgICAgICAgICAgICAgICAoX192NjRxaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfZXBpOCAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyICgoX19tbWFzazY0KSBfX1UsCiAgICAgICAgICAgICAgICAoX192NjRxaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2V0MV9lcGk4IChfX201MTJpIF9fTywgX19tbWFzazY0IF9fTSwgY2hhciBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXQxX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc2V0MV9lcGk4IChfX21tYXNrNjQgX19NLCBjaGFyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9tbTUxMl9zZXQxX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa3VucGFja2QgKF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s2NCkgX19idWlsdGluX2lhMzJfa3VucGNrZGkgKChfX21tYXNrNjQpIF9fQSwKICAgICAgICAgICAgICAgIChfX21tYXNrNjQpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2t1bnBhY2t3IChfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpIF9fYnVpbHRpbl9pYTMyX2t1bnBja3NpICgoX19tbWFzazMyKSBfX0EsCiAgICAgICAgICAgICAgICAoX19tbWFzazMyKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X2VwaTE2ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGkxNiB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTE2KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2xvYWR1X2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1aGk1MTJfbWFzayAoKGNvbnN0IF9fdjMyaGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWR1X2VwaTE2IChfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVoaTUxMl9tYXNrICgoY29uc3QgX192MzJoaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjMyaGkpCiAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkdV9lcGk4ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGk4IHsKICAgIF9fbTUxMmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpOCopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1cWk1MTJfbWFzayAoKGNvbnN0IF9fdjY0cWkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s2NCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWR1X2VwaTggKF9fbW1hc2s2NCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXFpNTEyX21hc2sgKChjb25zdCBfX3Y2NHFpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192NjRxaSkKICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazY0KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX201MTJpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGkxNiB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTE2KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1aGk1MTJfbWFzayAoKF9fdjMyaGkgKikgX19QLAogICAgICAgICAgICAgKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrMzIpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmV1X2VwaTggKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpOCB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTgqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmV1X2VwaTggKHZvaWQgKl9fUCwgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdXFpNTEyX21hc2sgKChfX3Y2NHFpICopIF9fUCwKICAgICAgICAgICAgIChfX3Y2NHFpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazY0KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0X2VwaThfbWFzayAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9jbXBuZXFfZXBpOF9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza190ZXN0X2VwaThfbWFzayAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGk4X21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdF9lcGkxNl9tYXNrIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX2NtcG5lcV9lcGkxNl9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdF9lcGkxNl9tYXNrIChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX21hc2tfY21wbmVxX2VwaTE2X21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Rlc3RuX2VwaThfbWFzayAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9jbXBlcV9lcGk4X21hc2sgKF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdG5fZXBpOF9tYXNrIChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX21hc2tfY21wZXFfZXBpOF9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdG5fZXBpMTZfbWFzayAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9jbXBlcV9lcGkxNl9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza190ZXN0bl9lcGkxNl9tYXNrIChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX21hc2tfY21wZXFfZXBpMTZfbWFzayAoX19VLCBfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlcGk4X21hc2sgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpIF9fYnVpbHRpbl9pYTMyX2N2dGIybWFzazUxMiAoKF9fdjY0cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdmVwaTE2X21hc2sgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpIF9fYnVpbHRpbl9pYTMyX2N2dHcybWFzazUxMiAoKF9fdjMyaGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZtX2VwaTggKF9fbW1hc2s2NCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syYjUxMiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdm1fZXBpMTYgKF9fbW1hc2szMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2sydzUxMiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdGJfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cWkpIF9fQSwgKF9fdjE2cWkpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdGJfZXBpOCAoX19tNTEyaSBfX08sIF9fbW1hc2s2NCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9tbTUxMl9icm9hZGNhc3RiX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RiX2VwaTggKF9fbW1hc2s2NCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9tbTUxMl9icm9hZGNhc3RiX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zZXQxX2VwaTE2IChfX201MTJpIF9fTywgX19tbWFzazMyIF9fTSwgc2hvcnQgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldDFfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc2V0MV9lcGkxNiAoX19tbWFzazMyIF9fTSwgc2hvcnQgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldDFfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdHdfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0d19lcGkxNiAoX19tNTEyaSBfX08sIF9fbW1hc2szMiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9icm9hZGNhc3R3X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0d19lcGkxNiAoX19tbWFzazMyIF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX2Jyb2FkY2FzdHdfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wZXJtdmFyaGk1MTIoKF9fdjMyaGkpX19CLCAoX192MzJoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLAogICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfcGVybXV0ZXh2YXJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfcGVybXV0ZXh2YXJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgojZGVmaW5lIF9tbTUxMl9hbGlnbnJfZXBpOChBLCBCLCBOKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhbGlnbnI1MTIoKF9fdjY0cWkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKEIpLCAoaW50KShOKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2FsaWducl9lcGk4KFcsIFUsIEEsIEIsIE4pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2FsaWducl9lcGk4KFUsIEEsIEIsIE4pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9kYnNhZF9lcHU4KEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9kYnBzYWRidzUxMigoX192NjRxaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZGJzYWRfZXB1OChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9kYnNhZF9lcHU4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9kYnNhZF9lcHU4KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2Ric2FkX2VwdTgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2FkX2VwdTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9wc2FkYnc1MTIgKChfX3Y2NHFpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfX0IpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnZubmlpbnRyaW4uaCAtIFZOTkkgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2bm5paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZOTklJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVk5OSUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydm5uaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfZHBidXNkX2VwaTMyKF9fbTUxMmkgX19TLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2Q1MTIoKF9fdjE2c2kpX19TLCAoX192MTZzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2RwYnVzZF9lcGkzMihfX201MTJpIF9fUywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2RwYnVzZF9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9kcGJ1c2RzX2VwaTMyKF9fbTUxMmkgX19TLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzNTEyKChfX3YxNnNpKV9fUywgKF9fdjE2c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZHBidXNkc19lcGkzMihfX201MTJpIF9fUywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfZHBidXNkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfZHBidXNkc19lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfZHBidXNkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2Rwd3NzZF9lcGkzMihfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkNTEyKChfX3YxNnNpKV9fUywgKF9fdjE2c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19kcHdzc2RfZXBpMzIoX19tNTEyaSBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcHdzc2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9kcHdzc2RfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcHdzc2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfZHB3c3Nkc19lcGkzMihfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkczUxMigoX192MTZzaSlfX1MsIChfX3YxNnNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2Rwd3NzZHNfZXBpMzIoX19tNTEyaSBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Rwd3NzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2Rwd3NzZHNfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Rwd3NzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALyo9PT0tLS0tIHJ0bWludHJpbi5oIC0gUlRNIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxydG1pbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fUlRNSU5UUklOX0gKI2RlZmluZSBfX1JUTUlOVFJJTl9ICgojZGVmaW5lIF9YQkVHSU5fU1RBUlRFRCAgICh+MHUpCiNkZWZpbmUgX1hBQk9SVF9FWFBMSUNJVCAgKDEgPDwgMCkKI2RlZmluZSBfWEFCT1JUX1JFVFJZICAgICAoMSA8PCAxKQojZGVmaW5lIF9YQUJPUlRfQ09ORkxJQ1QgICgxIDw8IDIpCiNkZWZpbmUgX1hBQk9SVF9DQVBBQ0lUWSAgKDEgPDwgMykKI2RlZmluZSBfWEFCT1JUX0RFQlVHICAgICAoMSA8PCA0KQojZGVmaW5lIF9YQUJPUlRfTkVTVEVEICAgICgxIDw8IDUpCiNkZWZpbmUgX1hBQk9SVF9DT0RFKHgpICAgKCgoeCkgPj4gMjQpICYgMHhGRikKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJydG0iKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl94YmVnaW4odm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl94YmVnaW4oKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hlbmQodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX3hlbmQoKTsKfQoKI2RlZmluZSBfeGFib3J0KGltbSkgX19idWlsdGluX2lhMzJfeGFib3J0KChpbW0pKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fUlRNSU5UUklOX0ggKi8KAC8qPT09LS0tLSBzdGRpbnQuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3Igc2l6ZWQgaW50ZWdlciB0eXBlcyAtLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fQ0xBTkdfU1RESU5UX0gKLy8gQUlYIHN5c3RlbSBoZWFkZXJzIG5lZWQgc3RkaW50LmggdG8gYmUgcmUtZW50ZXJhYmxlIHdoaWxlIF9TVERfVFlQRVNfVAovLyBpcyBkZWZpbmVkIHVudGlsIGFuIGluY2x1c2lvbiBvZiBpdCB3aXRob3V0IF9TVERfVFlQRVNfVCBvY2N1cnMsIGluIHdoaWNoCi8vIGNhc2UgdGhlIGhlYWRlciBndWFyZCBtYWNybyBpcyBkZWZpbmVkLgojaWYgIWRlZmluZWQoX0FJWCkgfHwgIWRlZmluZWQoX1NURF9UWVBFU19UKSB8fCAhZGVmaW5lZChfX1NURENfSE9TVEVEX18pCiNkZWZpbmUgX19DTEFOR19TVERJTlRfSAojZW5kaWYKCi8qIElmIHdlJ3JlIGhvc3RlZCwgZmFsbCBiYWNrIHRvIHRoZSBzeXN0ZW0ncyBzdGRpbnQuaCwgd2hpY2ggbWlnaHQgaGF2ZQogKiBhZGRpdGlvbmFsIGRlZmluaXRpb25zLgogKi8KI2lmIF9fU1REQ19IT1NURURfXyAmJiBfX2hhc19pbmNsdWRlX25leHQoPHN0ZGludC5oPikKCi8vIEM5OSA3LjE4LjMgTGltaXRzIG9mIG90aGVyIGludGVnZXIgdHlwZXMKLy8KLy8gIEZvb3Rub3RlIDIxOSwgMjIwOiBDKysgaW1wbGVtZW50YXRpb25zIHNob3VsZCBkZWZpbmUgdGhlc2UgbWFjcm9zIG9ubHkgd2hlbgovLyAgX19TVERDX0xJTUlUX01BQ1JPUyBpcyBkZWZpbmVkIGJlZm9yZSA8c3RkaW50Lmg+IGlzIGluY2x1ZGVkLgovLwovLyAgRm9vdG5vdGUgMjIyOiBDKysgaW1wbGVtZW50YXRpb25zIHNob3VsZCBkZWZpbmUgdGhlc2UgbWFjcm9zIG9ubHkgd2hlbgovLyAgX19TVERDX0NPTlNUQU5UX01BQ1JPUyBpcyBkZWZpbmVkIGJlZm9yZSA8c3RkaW50Lmg+IGlzIGluY2x1ZGVkLgovLwovLyBDKysxMSBbY3N0ZGludC5zeW5dcDI6Ci8vCi8vICBUaGUgbWFjcm9zIGRlZmluZWQgYnkgPGNzdGRpbnQ+IGFyZSBwcm92aWRlZCB1bmNvbmRpdGlvbmFsbHkuIEluIHBhcnRpY3VsYXIsCi8vICB0aGUgc3ltYm9scyBfX1NURENfTElNSVRfTUFDUk9TIGFuZCBfX1NURENfQ09OU1RBTlRfTUFDUk9TIChtZW50aW9uZWQgaW4KLy8gIGZvb3Rub3RlcyAyMTksIDIyMCwgYW5kIDIyMiBpbiB0aGUgQyBzdGFuZGFyZCkgcGxheSBubyByb2xlIGluIEMrKy4KLy8KLy8gQzExIHJlbW92ZWQgdGhlIHByb2JsZW1hdGljIGZvb3Rub3Rlcy4KLy8KLy8gV29yayBhcm91bmQgdGhpcyBpbmNvbnNpc3RlbmN5IGJ5IGFsd2F5cyBkZWZpbmluZyB0aG9zZSBtYWNyb3MgaW4gQysrIG1vZGUsCi8vIHNvIHRoYXQgYSBDIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gd2hpY2ggZm9sbG93cyB0aGUgQzk5IHN0YW5kYXJkIGNhbiBiZQovLyB1c2VkIGluIEMrKy4KIyBpZmRlZiBfX2NwbHVzcGx1cwojICBpZiAhZGVmaW5lZChfX1NURENfTElNSVRfTUFDUk9TKQojICAgZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKIyAgIGRlZmluZSBfX1NURENfTElNSVRfTUFDUk9TX0RFRklORURfQllfQ0xBTkcKIyAgZW5kaWYKIyAgaWYgIWRlZmluZWQoX19TVERDX0NPTlNUQU5UX01BQ1JPUykKIyAgIGRlZmluZSBfX1NURENfQ09OU1RBTlRfTUFDUk9TCiMgICBkZWZpbmUgX19TVERDX0NPTlNUQU5UX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgIGVuZGlmCiMgZW5kaWYKCiMgaW5jbHVkZV9uZXh0IDxzdGRpbnQuaD4KCiMgaWZkZWYgX19TVERDX0xJTUlUX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgIHVuZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKIyAgdW5kZWYgX19TVERDX0xJTUlUX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgZW5kaWYKIyBpZmRlZiBfX1NURENfQ09OU1RBTlRfTUFDUk9TX0RFRklORURfQllfQ0xBTkcKIyAgdW5kZWYgX19TVERDX0NPTlNUQU5UX01BQ1JPUwojICB1bmRlZiBfX1NURENfQ09OU1RBTlRfTUFDUk9TX0RFRklORURfQllfQ0xBTkcKIyBlbmRpZgoKI2Vsc2UKCi8qIEM5OSA3LjE4LjEuMSBFeGFjdC13aWR0aCBpbnRlZ2VyIHR5cGVzLgogKiBDOTkgNy4xOC4xLjIgTWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzLgogKiBDOTkgNy4xOC4xLjMgRmFzdGVzdCBtaW5pbXVtLXdpZHRoIGludGVnZXIgdHlwZXMuCiAqCiAqIFRoZSBzdGFuZGFyZCByZXF1aXJlcyB0aGF0IGV4YWN0LXdpZHRoIHR5cGUgYmUgZGVmaW5lZCBmb3IgOC0sIDE2LSwgMzItLCBhbmQKICogNjQtYml0IHR5cGVzIGlmIHRoZXkgYXJlIGltcGxlbWVudGVkLiBPdGhlciBleGFjdCB3aWR0aCB0eXBlcyBhcmUgb3B0aW9uYWwuCiAqIFRoaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lcyBhbiBleGFjdC13aWR0aCB0eXBlcyBmb3IgZXZlcnkgaW50ZWdlciB3aWR0aAogKiB0aGF0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzdGFuZGFyZCBpbnRlZ2VyIHR5cGVzLgogKgogKiBUaGUgc3RhbmRhcmQgYWxzbyByZXF1aXJlcyBtaW5pbXVtLXdpZHRoIHR5cGVzIGJlIGRlZmluZWQgZm9yIDgtLCAxNi0sIDMyLSwKICogYW5kIDY0LWJpdCB3aWR0aHMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXJlIGFyZSBjb3JyZXNwb25kaW5nIGV4YWN0LXdpZHRoCiAqIHR5cGVzLgogKgogKiBUbyBhY2NvbW1vZGF0ZSB0YXJnZXRzIHRoYXQgYXJlIG1pc3NpbmcgdHlwZXMgdGhhdCBhcmUgZXhhY3RseSA4LCAxNiwgMzIsIG9yCiAqIDY0IGJpdHMgd2lkZSwgdGhpcyBpbXBsZW1lbnRhdGlvbiB0YWtlcyBhbiBhcHByb2FjaCBvZiBjYXNjYWRpbmcKICogcmVkZWZpbml0aW9ucywgcmVkZWZpbmluZyBfX2ludF9sZWFzdE5fdCB0byBzdWNjZXNzaXZlbHkgc21hbGxlciBleGFjdC13aWR0aAogKiB0eXBlcy4gSXQgaXMgdGhlcmVmb3JlIGltcG9ydGFudCB0aGF0IHRoZSB0eXBlcyBhcmUgZGVmaW5lZCBpbiBvcmRlciBvZgogKiBkZXNjZW5kaW5nIHdpZHRocy4KICoKICogV2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHRoZSBtaW5pbXVtLXdpZHRoIHR5cGVzIGFuZCB0aGUgZmFzdGVzdAogKiBtaW5pbXVtLXdpZHRoIHR5cGVzIGFyZSB0aGUgc2FtZS4gVGhpcyBpcyBhbGxvd2VkIGJ5IHRoZSBzdGFuZGFyZCwgYnV0IGlzCiAqIHN1Ym9wdGltYWwuCiAqCiAqIEluIHZpb2xhdGlvbiBvZiB0aGUgc3RhbmRhcmQsIHNvbWUgdGFyZ2V0cyBkbyBub3QgaW1wbGVtZW50IGEgdHlwZSB0aGF0IGlzCiAqIHdpZGUgZW5vdWdoIHRvIHJlcHJlc2VudCBhbGwgb2YgdGhlIHJlcXVpcmVkIHdpZHRocyAoOC0sIDE2LSwgMzItLCA2NC1iaXQpLgogKiBUbyBhY2NvbW1vZGF0ZSB0aGVzZSB0YXJnZXRzLCBhIHJlcXVpcmVkIG1pbmltdW0td2lkdGggdHlwZSBpcyBvbmx5CiAqIGRlZmluZWQgaWYgdGhlcmUgZXhpc3RzIGFuIGV4YWN0LXdpZHRoIHR5cGUgb2YgZXF1YWwgb3IgZ3JlYXRlciB3aWR0aC4KICovCgojaWZkZWYgX19JTlQ2NF9UWVBFX18KIyBpZm5kZWYgX19pbnQ4X3RfZGVmaW5lZCAvKiBnbGliYyBzeXMvdHlwZXMuaCBhbHNvIGRlZmluZXMgaW50NjRfdCovCnR5cGVkZWYgX19JTlQ2NF9UWVBFX18gaW50NjRfdDsKIyBlbmRpZiAvKiBfX2ludDhfdF9kZWZpbmVkICovCnR5cGVkZWYgX19VSU5UNjRfVFlQRV9fIHVpbnQ2NF90OwojIGRlZmluZSBfX2ludF9sZWFzdDY0X3QgaW50NjRfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q2NF90IHVpbnQ2NF90CiMgZGVmaW5lIF9faW50X2xlYXN0MzJfdCBpbnQ2NF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDMyX3QgdWludDY0X3QKIyBkZWZpbmUgX19pbnRfbGVhc3QxNl90IGludDY0X3QKIyBkZWZpbmUgX191aW50X2xlYXN0MTZfdCB1aW50NjRfdAojIGRlZmluZSBfX2ludF9sZWFzdDhfdCBpbnQ2NF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50NjRfdAojZW5kaWYgLyogX19JTlQ2NF9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDY0X3QKdHlwZWRlZiBfX2ludF9sZWFzdDY0X3QgaW50X2xlYXN0NjRfdDsKdHlwZWRlZiBfX3VpbnRfbGVhc3Q2NF90IHVpbnRfbGVhc3Q2NF90Owp0eXBlZGVmIF9faW50X2xlYXN0NjRfdCBpbnRfZmFzdDY0X3Q7CnR5cGVkZWYgX191aW50X2xlYXN0NjRfdCB1aW50X2Zhc3Q2NF90OwojZW5kaWYgLyogX19pbnRfbGVhc3Q2NF90ICovCgojaWZkZWYgX19JTlQ1Nl9UWVBFX18KdHlwZWRlZiBfX0lOVDU2X1RZUEVfXyBpbnQ1Nl90Owp0eXBlZGVmIF9fVUlOVDU2X1RZUEVfXyB1aW50NTZfdDsKdHlwZWRlZiBpbnQ1Nl90IGludF9sZWFzdDU2X3Q7CnR5cGVkZWYgdWludDU2X3QgdWludF9sZWFzdDU2X3Q7CnR5cGVkZWYgaW50NTZfdCBpbnRfZmFzdDU2X3Q7CnR5cGVkZWYgdWludDU2X3QgdWludF9mYXN0NTZfdDsKIyBkZWZpbmUgX19pbnRfbGVhc3QzMl90IGludDU2X3QKIyBkZWZpbmUgX191aW50X2xlYXN0MzJfdCB1aW50NTZfdAojIGRlZmluZSBfX2ludF9sZWFzdDE2X3QgaW50NTZfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QxNl90IHVpbnQ1Nl90CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDU2X3QKIyBkZWZpbmUgX191aW50X2xlYXN0OF90IHVpbnQ1Nl90CiNlbmRpZiAvKiBfX0lOVDU2X1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDQ4X1RZUEVfXwp0eXBlZGVmIF9fSU5UNDhfVFlQRV9fIGludDQ4X3Q7CnR5cGVkZWYgX19VSU5UNDhfVFlQRV9fIHVpbnQ0OF90Owp0eXBlZGVmIGludDQ4X3QgaW50X2xlYXN0NDhfdDsKdHlwZWRlZiB1aW50NDhfdCB1aW50X2xlYXN0NDhfdDsKdHlwZWRlZiBpbnQ0OF90IGludF9mYXN0NDhfdDsKdHlwZWRlZiB1aW50NDhfdCB1aW50X2Zhc3Q0OF90OwojIGRlZmluZSBfX2ludF9sZWFzdDMyX3QgaW50NDhfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QzMl90IHVpbnQ0OF90CiMgZGVmaW5lIF9faW50X2xlYXN0MTZfdCBpbnQ0OF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDE2X3QgdWludDQ4X3QKIyBkZWZpbmUgX19pbnRfbGVhc3Q4X3QgaW50NDhfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q4X3QgdWludDQ4X3QKI2VuZGlmIC8qIF9fSU5UNDhfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UNDBfVFlQRV9fCnR5cGVkZWYgX19JTlQ0MF9UWVBFX18gaW50NDBfdDsKdHlwZWRlZiBfX1VJTlQ0MF9UWVBFX18gdWludDQwX3Q7CnR5cGVkZWYgaW50NDBfdCBpbnRfbGVhc3Q0MF90Owp0eXBlZGVmIHVpbnQ0MF90IHVpbnRfbGVhc3Q0MF90Owp0eXBlZGVmIGludDQwX3QgaW50X2Zhc3Q0MF90Owp0eXBlZGVmIHVpbnQ0MF90IHVpbnRfZmFzdDQwX3Q7CiMgZGVmaW5lIF9faW50X2xlYXN0MzJfdCBpbnQ0MF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDMyX3QgdWludDQwX3QKIyBkZWZpbmUgX19pbnRfbGVhc3QxNl90IGludDQwX3QKIyBkZWZpbmUgX191aW50X2xlYXN0MTZfdCB1aW50NDBfdAojIGRlZmluZSBfX2ludF9sZWFzdDhfdCBpbnQ0MF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50NDBfdAojZW5kaWYgLyogX19JTlQ0MF9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQzMl9UWVBFX18KCiMgaWZuZGVmIF9faW50OF90X2RlZmluZWQgLyogZ2xpYmMgc3lzL3R5cGVzLmggYWxzbyBkZWZpbmVzIGludDMyX3QqLwp0eXBlZGVmIF9fSU5UMzJfVFlQRV9fIGludDMyX3Q7CiMgZW5kaWYgLyogX19pbnQ4X3RfZGVmaW5lZCAqLwoKIyBpZm5kZWYgX191aW50MzJfdF9kZWZpbmVkICAvKiBtb3JlIGdsaWJjIGNvbXBhdGliaWxpdHkgKi8KIyBkZWZpbmUgX191aW50MzJfdF9kZWZpbmVkCnR5cGVkZWYgX19VSU5UMzJfVFlQRV9fIHVpbnQzMl90OwojIGVuZGlmIC8qIF9fdWludDMyX3RfZGVmaW5lZCAqLwoKIyBkZWZpbmUgX19pbnRfbGVhc3QzMl90IGludDMyX3QKIyBkZWZpbmUgX191aW50X2xlYXN0MzJfdCB1aW50MzJfdAojIGRlZmluZSBfX2ludF9sZWFzdDE2X3QgaW50MzJfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QxNl90IHVpbnQzMl90CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDMyX3QKIyBkZWZpbmUgX191aW50X2xlYXN0OF90IHVpbnQzMl90CiNlbmRpZiAvKiBfX0lOVDMyX1RZUEVfXyAqLwoKI2lmZGVmIF9faW50X2xlYXN0MzJfdAp0eXBlZGVmIF9faW50X2xlYXN0MzJfdCBpbnRfbGVhc3QzMl90Owp0eXBlZGVmIF9fdWludF9sZWFzdDMyX3QgdWludF9sZWFzdDMyX3Q7CnR5cGVkZWYgX19pbnRfbGVhc3QzMl90IGludF9mYXN0MzJfdDsKdHlwZWRlZiBfX3VpbnRfbGVhc3QzMl90IHVpbnRfZmFzdDMyX3Q7CiNlbmRpZiAvKiBfX2ludF9sZWFzdDMyX3QgKi8KCiNpZmRlZiBfX0lOVDI0X1RZUEVfXwp0eXBlZGVmIF9fSU5UMjRfVFlQRV9fIGludDI0X3Q7CnR5cGVkZWYgX19VSU5UMjRfVFlQRV9fIHVpbnQyNF90Owp0eXBlZGVmIGludDI0X3QgaW50X2xlYXN0MjRfdDsKdHlwZWRlZiB1aW50MjRfdCB1aW50X2xlYXN0MjRfdDsKdHlwZWRlZiBpbnQyNF90IGludF9mYXN0MjRfdDsKdHlwZWRlZiB1aW50MjRfdCB1aW50X2Zhc3QyNF90OwojIGRlZmluZSBfX2ludF9sZWFzdDE2X3QgaW50MjRfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QxNl90IHVpbnQyNF90CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDI0X3QKIyBkZWZpbmUgX191aW50X2xlYXN0OF90IHVpbnQyNF90CiNlbmRpZiAvKiBfX0lOVDI0X1RZUEVfXyAqLwoKI2lmZGVmIF9fSU5UMTZfVFlQRV9fCiNpZm5kZWYgX19pbnQ4X3RfZGVmaW5lZCAvKiBnbGliYyBzeXMvdHlwZXMuaCBhbHNvIGRlZmluZXMgaW50MTZfdCovCnR5cGVkZWYgX19JTlQxNl9UWVBFX18gaW50MTZfdDsKI2VuZGlmIC8qIF9faW50OF90X2RlZmluZWQgKi8KdHlwZWRlZiBfX1VJTlQxNl9UWVBFX18gdWludDE2X3Q7CiMgZGVmaW5lIF9faW50X2xlYXN0MTZfdCBpbnQxNl90CiMgZGVmaW5lIF9fdWludF9sZWFzdDE2X3QgdWludDE2X3QKIyBkZWZpbmUgX19pbnRfbGVhc3Q4X3QgaW50MTZfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q4X3QgdWludDE2X3QKI2VuZGlmIC8qIF9fSU5UMTZfVFlQRV9fICovCgojaWZkZWYgX19pbnRfbGVhc3QxNl90CnR5cGVkZWYgX19pbnRfbGVhc3QxNl90IGludF9sZWFzdDE2X3Q7CnR5cGVkZWYgX191aW50X2xlYXN0MTZfdCB1aW50X2xlYXN0MTZfdDsKdHlwZWRlZiBfX2ludF9sZWFzdDE2X3QgaW50X2Zhc3QxNl90Owp0eXBlZGVmIF9fdWludF9sZWFzdDE2X3QgdWludF9mYXN0MTZfdDsKI2VuZGlmIC8qIF9faW50X2xlYXN0MTZfdCAqLwoKCiNpZmRlZiBfX0lOVDhfVFlQRV9fCiNpZm5kZWYgX19pbnQ4X3RfZGVmaW5lZCAgLyogZ2xpYmMgc3lzL3R5cGVzLmggYWxzbyBkZWZpbmVzIGludDhfdCovCnR5cGVkZWYgX19JTlQ4X1RZUEVfXyBpbnQ4X3Q7CiNlbmRpZiAvKiBfX2ludDhfdF9kZWZpbmVkICovCnR5cGVkZWYgX19VSU5UOF9UWVBFX18gdWludDhfdDsKIyBkZWZpbmUgX19pbnRfbGVhc3Q4X3QgaW50OF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50OF90CiNlbmRpZiAvKiBfX0lOVDhfVFlQRV9fICovCgojaWZkZWYgX19pbnRfbGVhc3Q4X3QKdHlwZWRlZiBfX2ludF9sZWFzdDhfdCBpbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgX191aW50X2xlYXN0OF90IHVpbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgX19pbnRfbGVhc3Q4X3QgaW50X2Zhc3Q4X3Q7CnR5cGVkZWYgX191aW50X2xlYXN0OF90IHVpbnRfZmFzdDhfdDsKI2VuZGlmIC8qIF9faW50X2xlYXN0OF90ICovCgovKiBwcmV2ZW50IGdsaWJjIHN5cy90eXBlcy5oIGZyb20gZGVmaW5pbmcgY29uZmxpY3RpbmcgdHlwZXMgKi8KI2lmbmRlZiBfX2ludDhfdF9kZWZpbmVkCiMgZGVmaW5lIF9faW50OF90X2RlZmluZWQKI2VuZGlmIC8qIF9faW50OF90X2RlZmluZWQgKi8KCi8qIEM5OSA3LjE4LjEuNCBJbnRlZ2VyIHR5cGVzIGNhcGFibGUgb2YgaG9sZGluZyBvYmplY3QgcG9pbnRlcnMuCiAqLwojZGVmaW5lIF9fc3RkaW50X2pvaW4zKGEsYixjKSBhICMjIGIgIyMgYwoKI2lmbmRlZiBfSU5UUFRSX1QKI2lmbmRlZiBfX2ludHB0cl90X2RlZmluZWQKdHlwZWRlZiBfX0lOVFBUUl9UWVBFX18gaW50cHRyX3Q7CiNkZWZpbmUgX19pbnRwdHJfdF9kZWZpbmVkCiNkZWZpbmUgX0lOVFBUUl9UCiNlbmRpZgojZW5kaWYKCiNpZm5kZWYgX1VJTlRQVFJfVAp0eXBlZGVmIF9fVUlOVFBUUl9UWVBFX18gdWludHB0cl90OwojZGVmaW5lIF9VSU5UUFRSX1QKI2VuZGlmCgovKiBDOTkgNy4xOC4xLjUgR3JlYXRlc3Qtd2lkdGggaW50ZWdlciB0eXBlcy4KICovCnR5cGVkZWYgX19JTlRNQVhfVFlQRV9fICBpbnRtYXhfdDsKdHlwZWRlZiBfX1VJTlRNQVhfVFlQRV9fIHVpbnRtYXhfdDsKCi8qIEM5OSA3LjE4LjQgTWFjcm9zIGZvciBtaW5pbXVtLXdpZHRoIGludGVnZXIgY29uc3RhbnRzLgogKgogKiBUaGUgc3RhbmRhcmQgcmVxdWlyZXMgdGhhdCBpbnRlZ2VyIGNvbnN0YW50IG1hY3JvcyBiZSBkZWZpbmVkIGZvciBhbGwgdGhlCiAqIG1pbmltdW0td2lkdGggdHlwZXMgZGVmaW5lZCBhYm92ZS4gQXMgOC0sIDE2LSwgMzItLCBhbmQgNjQtYml0IG1pbmltdW0td2lkdGgKICogdHlwZXMgYXJlIHJlcXVpcmVkLCB0aGUgY29ycmVzcG9uZGluZyBpbnRlZ2VyIGNvbnN0YW50IG1hY3JvcyBhcmUgZGVmaW5lZAogKiBoZXJlLiBUaGlzIGltcGxlbWVudGF0aW9uIGFsc28gZGVmaW5lcyBtaW5pbXVtLXdpZHRoIHR5cGVzIGZvciBldmVyeSBvdGhlcgogKiBpbnRlZ2VyIHdpZHRoIHRoYXQgdGhlIHRhcmdldCBpbXBsZW1lbnRzLCBzbyBjb3JyZXNwb25kaW5nIG1hY3JvcyBhcmUKICogZGVmaW5lZCBiZWxvdywgdG9vLgogKgogKiBUaGVzZSBtYWNyb3MgYXJlIGRlZmluZWQgdXNpbmcgdGhlIHNhbWUgc3VjY2Vzc2l2ZS1zaHJpbmtpbmcgYXBwcm9hY2ggYXMKICogdGhlIHR5cGUgZGVmaW5pdGlvbnMgYWJvdmUuIEl0IGlzIGxpa2V3aXNlIGltcG9ydGFudCB0aGF0IG1hY3JvcyBhcmUgZGVmaW5lZAogKiBpbiBvcmRlciBvZiBkZWNlbmRpbmcgd2lkdGguCiAqCiAqIE5vdGUgdGhhdCBDKysgc2hvdWxkIG5vdCBjaGVjayBfX1NURENfQ09OU1RBTlRfTUFDUk9TIGhlcmUsIGNvbnRyYXJ5IHRvIHRoZQogKiBjbGFpbXMgb2YgdGhlIEMgc3RhbmRhcmQgKHNlZSBDKysgMTguMy4xcDIsIFtjc3RkaW50LnN5bl0pLgogKi8KCiNkZWZpbmUgX19pbnRfY19qb2luKGEsIGIpIGEgIyMgYgojZGVmaW5lIF9faW50X2Modiwgc3VmZml4KSBfX2ludF9jX2pvaW4odiwgc3VmZml4KQojZGVmaW5lIF9fdWludF9jKHYsIHN1ZmZpeCkgX19pbnRfY19qb2luKHYjI1UsIHN1ZmZpeCkKCgojaWZkZWYgX19JTlQ2NF9UWVBFX18KIyBpZmRlZiBfX0lOVDY0X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50NjRfY19zdWZmaXggX19JTlQ2NF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDMyX2Nfc3VmZml4IF9fSU5UNjRfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQxNl9jX3N1ZmZpeCBfX0lOVDY0X0NfU1VGRklYX18KIyAgZGVmaW5lICBfX2ludDhfY19zdWZmaXggX19JTlQ2NF9DX1NVRkZJWF9fCiMgZWxzZQojICB1bmRlZiBfX2ludDY0X2Nfc3VmZml4CiMgIHVuZGVmIF9faW50MzJfY19zdWZmaXgKIyAgdW5kZWYgX19pbnQxNl9jX3N1ZmZpeAojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQ2NF9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDY0X1RZUEVfXyAqLwoKI2lmZGVmIF9faW50X2xlYXN0NjRfdAojIGlmZGVmIF9faW50NjRfY19zdWZmaXgKIyAgZGVmaW5lIElOVDY0X0ModikgX19pbnRfYyh2LCBfX2ludDY0X2Nfc3VmZml4KQojICBkZWZpbmUgVUlOVDY0X0ModikgX191aW50X2ModiwgX19pbnQ2NF9jX3N1ZmZpeCkKIyBlbHNlCiMgIGRlZmluZSBJTlQ2NF9DKHYpIHYKIyAgZGVmaW5lIFVJTlQ2NF9DKHYpIHYgIyMgVQojIGVuZGlmIC8qIF9faW50NjRfY19zdWZmaXggKi8KI2VuZGlmIC8qIF9faW50X2xlYXN0NjRfdCAqLwoKCiNpZmRlZiBfX0lOVDU2X1RZUEVfXwojIGlmZGVmIF9fSU5UNTZfQ19TVUZGSVhfXwojICBkZWZpbmUgSU5UNTZfQyh2KSBfX2ludF9jKHYsIF9fSU5UNTZfQ19TVUZGSVhfXykKIyAgZGVmaW5lIFVJTlQ1Nl9DKHYpIF9fdWludF9jKHYsIF9fSU5UNTZfQ19TVUZGSVhfXykKIyAgZGVmaW5lIF9faW50MzJfY19zdWZmaXggX19JTlQ1Nl9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDE2X2Nfc3VmZml4IF9fSU5UNTZfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQ4X2Nfc3VmZml4ICBfX0lOVDU2X0NfU1VGRklYX18KIyBlbHNlCiMgIGRlZmluZSBJTlQ1Nl9DKHYpIHYKIyAgZGVmaW5lIFVJTlQ1Nl9DKHYpIHYgIyMgVQojICB1bmRlZiBfX2ludDMyX2Nfc3VmZml4CiMgIHVuZGVmIF9faW50MTZfY19zdWZmaXgKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UNTZfQ19TVUZGSVhfXyAqLwojZW5kaWYgLyogX19JTlQ1Nl9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQ0OF9UWVBFX18KIyBpZmRlZiBfX0lOVDQ4X0NfU1VGRklYX18KIyAgZGVmaW5lIElOVDQ4X0ModikgX19pbnRfYyh2LCBfX0lOVDQ4X0NfU1VGRklYX18pCiMgIGRlZmluZSBVSU5UNDhfQyh2KSBfX3VpbnRfYyh2LCBfX0lOVDQ4X0NfU1VGRklYX18pCiMgIGRlZmluZSBfX2ludDMyX2Nfc3VmZml4IF9fSU5UNDhfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQxNl9jX3N1ZmZpeCBfX0lOVDQ4X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50OF9jX3N1ZmZpeCAgX19JTlQ0OF9DX1NVRkZJWF9fCiMgZWxzZQojICBkZWZpbmUgSU5UNDhfQyh2KSB2CiMgIGRlZmluZSBVSU5UNDhfQyh2KSB2ICMjIFUKIyAgdW5kZWYgX19pbnQzMl9jX3N1ZmZpeAojICB1bmRlZiBfX2ludDE2X2Nfc3VmZml4CiMgIHVuZGVmICBfX2ludDhfY19zdWZmaXgKIyBlbmRpZiAvKiBfX0lOVDQ4X0NfU1VGRklYX18gKi8KI2VuZGlmIC8qIF9fSU5UNDhfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UNDBfVFlQRV9fCiMgaWZkZWYgX19JTlQ0MF9DX1NVRkZJWF9fCiMgIGRlZmluZSBJTlQ0MF9DKHYpIF9faW50X2ModiwgX19JTlQ0MF9DX1NVRkZJWF9fKQojICBkZWZpbmUgVUlOVDQwX0ModikgX191aW50X2ModiwgX19JTlQ0MF9DX1NVRkZJWF9fKQojICBkZWZpbmUgX19pbnQzMl9jX3N1ZmZpeCBfX0lOVDQwX0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50MTZfY19zdWZmaXggX19JTlQ0MF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDhfY19zdWZmaXggIF9fSU5UNDBfQ19TVUZGSVhfXwojIGVsc2UKIyAgZGVmaW5lIElOVDQwX0ModikgdgojICBkZWZpbmUgVUlOVDQwX0ModikgdiAjIyBVCiMgIHVuZGVmIF9faW50MzJfY19zdWZmaXgKIyAgdW5kZWYgX19pbnQxNl9jX3N1ZmZpeAojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQ0MF9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDQwX1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDMyX1RZUEVfXwojIGlmZGVmIF9fSU5UMzJfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQzMl9jX3N1ZmZpeCBfX0lOVDMyX0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50MTZfY19zdWZmaXggX19JTlQzMl9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDhfY19zdWZmaXggIF9fSU5UMzJfQ19TVUZGSVhfXwojZWxzZQojICB1bmRlZiBfX2ludDMyX2Nfc3VmZml4CiMgIHVuZGVmIF9faW50MTZfY19zdWZmaXgKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UMzJfQ19TVUZGSVhfXyAqLwojZW5kaWYgLyogX19JTlQzMl9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDMyX3QKIyBpZmRlZiBfX2ludDMyX2Nfc3VmZml4CiMgIGRlZmluZSBJTlQzMl9DKHYpIF9faW50X2ModiwgX19pbnQzMl9jX3N1ZmZpeCkKIyAgZGVmaW5lIFVJTlQzMl9DKHYpIF9fdWludF9jKHYsIF9faW50MzJfY19zdWZmaXgpCiMgZWxzZQojICBkZWZpbmUgSU5UMzJfQyh2KSB2CiMgIGRlZmluZSBVSU5UMzJfQyh2KSB2ICMjIFUKIyBlbmRpZiAvKiBfX2ludDMyX2Nfc3VmZml4ICovCiNlbmRpZiAvKiBfX2ludF9sZWFzdDMyX3QgKi8KCgojaWZkZWYgX19JTlQyNF9UWVBFX18KIyBpZmRlZiBfX0lOVDI0X0NfU1VGRklYX18KIyAgZGVmaW5lIElOVDI0X0ModikgX19pbnRfYyh2LCBfX0lOVDI0X0NfU1VGRklYX18pCiMgIGRlZmluZSBVSU5UMjRfQyh2KSBfX3VpbnRfYyh2LCBfX0lOVDI0X0NfU1VGRklYX18pCiMgIGRlZmluZSBfX2ludDE2X2Nfc3VmZml4IF9fSU5UMjRfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQ4X2Nfc3VmZml4ICBfX0lOVDI0X0NfU1VGRklYX18KIyBlbHNlCiMgIGRlZmluZSBJTlQyNF9DKHYpIHYKIyAgZGVmaW5lIFVJTlQyNF9DKHYpIHYgIyMgVQojICB1bmRlZiBfX2ludDE2X2Nfc3VmZml4CiMgIHVuZGVmICBfX2ludDhfY19zdWZmaXgKIyBlbmRpZiAvKiBfX0lOVDI0X0NfU1VGRklYX18gKi8KI2VuZGlmIC8qIF9fSU5UMjRfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UMTZfVFlQRV9fCiMgaWZkZWYgX19JTlQxNl9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDE2X2Nfc3VmZml4IF9fSU5UMTZfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQ4X2Nfc3VmZml4ICBfX0lOVDE2X0NfU1VGRklYX18KI2Vsc2UKIyAgdW5kZWYgX19pbnQxNl9jX3N1ZmZpeAojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQxNl9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDE2X1RZUEVfXyAqLwoKI2lmZGVmIF9faW50X2xlYXN0MTZfdAojIGlmZGVmIF9faW50MTZfY19zdWZmaXgKIyAgZGVmaW5lIElOVDE2X0ModikgX19pbnRfYyh2LCBfX2ludDE2X2Nfc3VmZml4KQojICBkZWZpbmUgVUlOVDE2X0ModikgX191aW50X2ModiwgX19pbnQxNl9jX3N1ZmZpeCkKIyBlbHNlCiMgIGRlZmluZSBJTlQxNl9DKHYpIHYKIyAgZGVmaW5lIFVJTlQxNl9DKHYpIHYgIyMgVQojIGVuZGlmIC8qIF9faW50MTZfY19zdWZmaXggKi8KI2VuZGlmIC8qIF9faW50X2xlYXN0MTZfdCAqLwoKCiNpZmRlZiBfX0lOVDhfVFlQRV9fCiMgaWZkZWYgX19JTlQ4X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50OF9jX3N1ZmZpeCBfX0lOVDhfQ19TVUZGSVhfXwojZWxzZQojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQ4X0NfU1VGRklYX18gKi8KI2VuZGlmIC8qIF9fSU5UOF9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDhfdAojIGlmZGVmIF9faW50OF9jX3N1ZmZpeAojICBkZWZpbmUgSU5UOF9DKHYpIF9faW50X2ModiwgX19pbnQ4X2Nfc3VmZml4KQojICBkZWZpbmUgVUlOVDhfQyh2KSBfX3VpbnRfYyh2LCBfX2ludDhfY19zdWZmaXgpCiMgZWxzZQojICBkZWZpbmUgSU5UOF9DKHYpIHYKIyAgZGVmaW5lIFVJTlQ4X0ModikgdiAjIyBVCiMgZW5kaWYgLyogX19pbnQ4X2Nfc3VmZml4ICovCiNlbmRpZiAvKiBfX2ludF9sZWFzdDhfdCAqLwoKCi8qIEM5OSA3LjE4LjIuMSBMaW1pdHMgb2YgZXhhY3Qtd2lkdGggaW50ZWdlciB0eXBlcy4KICogQzk5IDcuMTguMi4yIExpbWl0cyBvZiBtaW5pbXVtLXdpZHRoIGludGVnZXIgdHlwZXMuCiAqIEM5OSA3LjE4LjIuMyBMaW1pdHMgb2YgZmFzdGVzdCBtaW5pbXVtLXdpZHRoIGludGVnZXIgdHlwZXMuCiAqCiAqIFRoZSBwcmVzZW5jZSBvZiBsaW1pdCBtYWNyb3MgYXJlIGNvbXBsZXRlbHkgb3B0aW9uYWwgaW4gQzk5LiAgVGhpcwogKiBpbXBsZW1lbnRhdGlvbiBkZWZpbmVzIGxpbWl0cyBmb3IgYWxsIG9mIHRoZSB0eXBlcyAoZXhhY3QtIGFuZAogKiBtaW5pbXVtLXdpZHRoKSB0aGF0IGl0IGRlZmluZXMgYWJvdmUsIHVzaW5nIHRoZSBsaW1pdHMgb2YgdGhlIG1pbmltdW0td2lkdGgKICogdHlwZSBmb3IgYW55IHR5cGVzIHRoYXQgZG8gbm90IGhhdmUgZXhhY3Qtd2lkdGggcmVwcmVzZW50YXRpb25zLgogKgogKiBBcyBpbiB0aGUgdHlwZSBkZWZpbml0aW9ucywgdGhpcyBzZWN0aW9uIHRha2VzIGFuIGFwcHJvYWNoIG9mCiAqIHN1Y2Nlc3NpdmUtc2hyaW5raW5nIHRvIGRldGVybWluZSB3aGljaCBsaW1pdHMgdG8gdXNlIGZvciB0aGUgc3RhbmRhcmQgKDgsCiAqIDE2LCAzMiwgNjQpIGJpdCB3aWR0aHMgd2hlbiB0aGV5IGRvbid0IGhhdmUgZXhhY3QgcmVwcmVzZW50YXRpb25zLiBJdCBpcwogKiB0aGVyZWZvcmUgaW1wb3J0YW50IHRoYXQgdGhlIGRlZmluaXRpb25zIGJlIGtlcHQgaW4gb3JkZXIgb2YgZGVjZW5kaW5nCiAqIHdpZHRocy4KICoKICogTm90ZSB0aGF0IEMrKyBzaG91bGQgbm90IGNoZWNrIF9fU1REQ19MSU1JVF9NQUNST1MgaGVyZSwgY29udHJhcnkgdG8gdGhlCiAqIGNsYWltcyBvZiB0aGUgQyBzdGFuZGFyZCAoc2VlIEMrKyAxOC4zLjFwMiwgW2NzdGRpbnQuc3luXSkuCiAqLwoKI2lmZGVmIF9fSU5UNjRfVFlQRV9fCiMgZGVmaW5lIElOVDY0X01BWCAgICAgICAgICAgSU5UNjRfQyggOTIyMzM3MjAzNjg1NDc3NTgwNykKIyBkZWZpbmUgSU5UNjRfTUlOICAgICAgICAgKC1JTlQ2NF9DKCA5MjIzMzcyMDM2ODU0Nzc1ODA3KS0xKQojIGRlZmluZSBVSU5UNjRfTUFYICAgICAgICAgVUlOVDY0X0MoMTg0NDY3NDQwNzM3MDk1NTE2MTUpCiMgZGVmaW5lIF9fSU5UX0xFQVNUNjRfTUlOICAgSU5UNjRfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUNjRfTUFYICAgSU5UNjRfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDY0X01BWCBVSU5UNjRfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUlOICAgSU5UNjRfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUFYICAgSU5UNjRfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDMyX01BWCBVSU5UNjRfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUlOICAgSU5UNjRfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUFYICAgSU5UNjRfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDE2X01BWCBVSU5UNjRfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NSU4gICAgSU5UNjRfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NQVggICAgSU5UNjRfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDhfTUFYICBVSU5UNjRfTUFYCiNlbmRpZiAvKiBfX0lOVDY0X1RZUEVfXyAqLwoKI2lmZGVmIF9fSU5UX0xFQVNUNjRfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDY0X01JTiAgIF9fSU5UX0xFQVNUNjRfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDY0X01BWCAgIF9fSU5UX0xFQVNUNjRfTUFYCiMgZGVmaW5lIFVJTlRfTEVBU1Q2NF9NQVggX19VSU5UX0xFQVNUNjRfTUFYCiMgZGVmaW5lIElOVF9GQVNUNjRfTUlOICAgIF9fSU5UX0xFQVNUNjRfTUlOCiMgZGVmaW5lIElOVF9GQVNUNjRfTUFYICAgIF9fSU5UX0xFQVNUNjRfTUFYCiMgZGVmaW5lIFVJTlRfRkFTVDY0X01BWCAgX19VSU5UX0xFQVNUNjRfTUFYCiNlbmRpZiAvKiBfX0lOVF9MRUFTVDY0X01JTiAqLwoKCiNpZmRlZiBfX0lOVDU2X1RZUEVfXwojIGRlZmluZSBJTlQ1Nl9NQVggICAgICAgICAgIElOVDU2X0MoMzYwMjg3OTcwMTg5NjM5NjcpCiMgZGVmaW5lIElOVDU2X01JTiAgICAgICAgICgtSU5UNTZfQygzNjAyODc5NzAxODk2Mzk2NyktMSkKIyBkZWZpbmUgVUlOVDU2X01BWCAgICAgICAgIFVJTlQ1Nl9DKDcyMDU3NTk0MDM3OTI3OTM1KQojIGRlZmluZSBJTlRfTEVBU1Q1Nl9NSU4gICAgIElOVDU2X01JTgojIGRlZmluZSBJTlRfTEVBU1Q1Nl9NQVggICAgIElOVDU2X01BWAojIGRlZmluZSBVSU5UX0xFQVNUNTZfTUFYICAgVUlOVDU2X01BWAojIGRlZmluZSBJTlRfRkFTVDU2X01JTiAgICAgIElOVDU2X01JTgojIGRlZmluZSBJTlRfRkFTVDU2X01BWCAgICAgIElOVDU2X01BWAojIGRlZmluZSBVSU5UX0ZBU1Q1Nl9NQVggICAgVUlOVDU2X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01JTiAgIElOVDU2X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01BWCAgIElOVDU2X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QzMl9NQVggVUlOVDU2X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01JTiAgIElOVDU2X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01BWCAgIElOVDU2X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QxNl9NQVggVUlOVDU2X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUlOICAgIElOVDU2X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUFYICAgIElOVDU2X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q4X01BWCAgVUlOVDU2X01BWAojZW5kaWYgLyogX19JTlQ1Nl9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQ0OF9UWVBFX18KIyBkZWZpbmUgSU5UNDhfTUFYICAgICAgICAgICBJTlQ0OF9DKDE0MDczNzQ4ODM1NTMyNykKIyBkZWZpbmUgSU5UNDhfTUlOICAgICAgICAgKC1JTlQ0OF9DKDE0MDczNzQ4ODM1NTMyNyktMSkKIyBkZWZpbmUgVUlOVDQ4X01BWCAgICAgICAgIFVJTlQ0OF9DKDI4MTQ3NDk3NjcxMDY1NSkKIyBkZWZpbmUgSU5UX0xFQVNUNDhfTUlOICAgICBJTlQ0OF9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUNDhfTUFYICAgICBJTlQ0OF9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDQ4X01BWCAgIFVJTlQ0OF9NQVgKIyBkZWZpbmUgSU5UX0ZBU1Q0OF9NSU4gICAgICBJTlQ0OF9NSU4KIyBkZWZpbmUgSU5UX0ZBU1Q0OF9NQVggICAgICBJTlQ0OF9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUNDhfTUFYICAgIFVJTlQ0OF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NSU4gICBJTlQ0OF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NQVggICBJTlQ0OF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMzJfTUFYIFVJTlQ0OF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQ0OF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQ0OF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQ0OF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQ0OF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQ0OF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQ0OF9NQVgKI2VuZGlmIC8qIF9fSU5UNDhfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UNDBfVFlQRV9fCiMgZGVmaW5lIElOVDQwX01BWCAgICAgICAgICAgSU5UNDBfQyg1NDk3NTU4MTM4ODcpCiMgZGVmaW5lIElOVDQwX01JTiAgICAgICAgICgtSU5UNDBfQyg1NDk3NTU4MTM4ODcpLTEpCiMgZGVmaW5lIFVJTlQ0MF9NQVggICAgICAgICBVSU5UNDBfQygxMDk5NTExNjI3Nzc1KQojIGRlZmluZSBJTlRfTEVBU1Q0MF9NSU4gICAgIElOVDQwX01JTgojIGRlZmluZSBJTlRfTEVBU1Q0MF9NQVggICAgIElOVDQwX01BWAojIGRlZmluZSBVSU5UX0xFQVNUNDBfTUFYICAgVUlOVDQwX01BWAojIGRlZmluZSBJTlRfRkFTVDQwX01JTiAgICAgIElOVDQwX01JTgojIGRlZmluZSBJTlRfRkFTVDQwX01BWCAgICAgIElOVDQwX01BWAojIGRlZmluZSBVSU5UX0ZBU1Q0MF9NQVggICAgVUlOVDQwX01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01JTiAgIElOVDQwX01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01BWCAgIElOVDQwX01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QzMl9NQVggVUlOVDQwX01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01JTiAgIElOVDQwX01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01BWCAgIElOVDQwX01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QxNl9NQVggVUlOVDQwX01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUlOICAgIElOVDQwX01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUFYICAgIElOVDQwX01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q4X01BWCAgVUlOVDQwX01BWAojZW5kaWYgLyogX19JTlQ0MF9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQzMl9UWVBFX18KIyBkZWZpbmUgSU5UMzJfTUFYICAgICAgICAgICBJTlQzMl9DKDIxNDc0ODM2NDcpCiMgZGVmaW5lIElOVDMyX01JTiAgICAgICAgICgtSU5UMzJfQygyMTQ3NDgzNjQ3KS0xKQojIGRlZmluZSBVSU5UMzJfTUFYICAgICAgICAgVUlOVDMyX0MoNDI5NDk2NzI5NSkKIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NSU4gICBJTlQzMl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NQVggICBJTlQzMl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMzJfTUFYIFVJTlQzMl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQzMl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQzMl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQzMl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQzMl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQzMl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQzMl9NQVgKI2VuZGlmIC8qIF9fSU5UMzJfVFlQRV9fICovCgojaWZkZWYgX19JTlRfTEVBU1QzMl9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUMzJfTUlOICAgX19JTlRfTEVBU1QzMl9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUMzJfTUFYICAgX19JTlRfTEVBU1QzMl9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDMyX01BWCBfX1VJTlRfTEVBU1QzMl9NQVgKIyBkZWZpbmUgSU5UX0ZBU1QzMl9NSU4gICAgX19JTlRfTEVBU1QzMl9NSU4KIyBkZWZpbmUgSU5UX0ZBU1QzMl9NQVggICAgX19JTlRfTEVBU1QzMl9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUMzJfTUFYICBfX1VJTlRfTEVBU1QzMl9NQVgKI2VuZGlmIC8qIF9fSU5UX0xFQVNUMzJfTUlOICovCgoKI2lmZGVmIF9fSU5UMjRfVFlQRV9fCiMgZGVmaW5lIElOVDI0X01BWCAgICAgICAgICAgSU5UMjRfQyg4Mzg4NjA3KQojIGRlZmluZSBJTlQyNF9NSU4gICAgICAgICAoLUlOVDI0X0MoODM4ODYwNyktMSkKIyBkZWZpbmUgVUlOVDI0X01BWCAgICAgICAgIFVJTlQyNF9DKDE2Nzc3MjE1KQojIGRlZmluZSBJTlRfTEVBU1QyNF9NSU4gICAgIElOVDI0X01JTgojIGRlZmluZSBJTlRfTEVBU1QyNF9NQVggICAgIElOVDI0X01BWAojIGRlZmluZSBVSU5UX0xFQVNUMjRfTUFYICAgVUlOVDI0X01BWAojIGRlZmluZSBJTlRfRkFTVDI0X01JTiAgICAgIElOVDI0X01JTgojIGRlZmluZSBJTlRfRkFTVDI0X01BWCAgICAgIElOVDI0X01BWAojIGRlZmluZSBVSU5UX0ZBU1QyNF9NQVggICAgVUlOVDI0X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01JTiAgIElOVDI0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01BWCAgIElOVDI0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QxNl9NQVggVUlOVDI0X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUlOICAgIElOVDI0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUFYICAgIElOVDI0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q4X01BWCAgVUlOVDI0X01BWAojZW5kaWYgLyogX19JTlQyNF9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQxNl9UWVBFX18KI2RlZmluZSBJTlQxNl9NQVggICAgICAgICAgICBJTlQxNl9DKDMyNzY3KQojZGVmaW5lIElOVDE2X01JTiAgICAgICAgICAoLUlOVDE2X0MoMzI3NjcpLTEpCiNkZWZpbmUgVUlOVDE2X01BWCAgICAgICAgICBVSU5UMTZfQyg2NTUzNSkKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQxNl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQxNl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQxNl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQxNl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQxNl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQxNl9NQVgKI2VuZGlmIC8qIF9fSU5UMTZfVFlQRV9fICovCgojaWZkZWYgX19JTlRfTEVBU1QxNl9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUMTZfTUlOICAgX19JTlRfTEVBU1QxNl9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUMTZfTUFYICAgX19JTlRfTEVBU1QxNl9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDE2X01BWCBfX1VJTlRfTEVBU1QxNl9NQVgKIyBkZWZpbmUgSU5UX0ZBU1QxNl9NSU4gICAgX19JTlRfTEVBU1QxNl9NSU4KIyBkZWZpbmUgSU5UX0ZBU1QxNl9NQVggICAgX19JTlRfTEVBU1QxNl9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUMTZfTUFYICBfX1VJTlRfTEVBU1QxNl9NQVgKI2VuZGlmIC8qIF9fSU5UX0xFQVNUMTZfTUlOICovCgoKI2lmZGVmIF9fSU5UOF9UWVBFX18KIyBkZWZpbmUgSU5UOF9NQVggICAgICAgICAgICBJTlQ4X0MoMTI3KQojIGRlZmluZSBJTlQ4X01JTiAgICAgICAgICAoLUlOVDhfQygxMjcpLTEpCiMgZGVmaW5lIFVJTlQ4X01BWCAgICAgICAgICBVSU5UOF9DKDI1NSkKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQ4X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUFYICAgIElOVDhfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDhfTUFYICBVSU5UOF9NQVgKI2VuZGlmIC8qIF9fSU5UOF9UWVBFX18gKi8KCiNpZmRlZiBfX0lOVF9MRUFTVDhfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDhfTUlOICAgX19JTlRfTEVBU1Q4X01JTgojIGRlZmluZSBJTlRfTEVBU1Q4X01BWCAgIF9fSU5UX0xFQVNUOF9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDhfTUFYIF9fVUlOVF9MRUFTVDhfTUFYCiMgZGVmaW5lIElOVF9GQVNUOF9NSU4gICAgX19JTlRfTEVBU1Q4X01JTgojIGRlZmluZSBJTlRfRkFTVDhfTUFYICAgIF9fSU5UX0xFQVNUOF9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUOF9NQVggIF9fVUlOVF9MRUFTVDhfTUFYCiNlbmRpZiAvKiBfX0lOVF9MRUFTVDhfTUlOICovCgovKiBTb21lIHV0aWxpdHkgbWFjcm9zICovCiNkZWZpbmUgIF9fSU5UTl9NSU4obikgIF9fc3RkaW50X2pvaW4zKCBJTlQsIG4sIF9NSU4pCiNkZWZpbmUgIF9fSU5UTl9NQVgobikgIF9fc3RkaW50X2pvaW4zKCBJTlQsIG4sIF9NQVgpCiNkZWZpbmUgX19VSU5UTl9NQVgobikgIF9fc3RkaW50X2pvaW4zKFVJTlQsIG4sIF9NQVgpCiNkZWZpbmUgIF9fSU5UTl9DKG4sIHYpIF9fc3RkaW50X2pvaW4zKCBJTlQsIG4sIF9DKHYpKQojZGVmaW5lIF9fVUlOVE5fQyhuLCB2KSBfX3N0ZGludF9qb2luMyhVSU5ULCBuLCBfQyh2KSkKCi8qIEM5OSA3LjE4LjIuNCBMaW1pdHMgb2YgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIGhvbGRpbmcgb2JqZWN0IHBvaW50ZXJzLiAqLwovKiBDOTkgNy4xOC4zIExpbWl0cyBvZiBvdGhlciBpbnRlZ2VyIHR5cGVzLiAqLwoKI2RlZmluZSAgSU5UUFRSX01JTiAgKC1fX0lOVFBUUl9NQVhfXy0xKQojZGVmaW5lICBJTlRQVFJfTUFYICAgIF9fSU5UUFRSX01BWF9fCiNkZWZpbmUgVUlOVFBUUl9NQVggICBfX1VJTlRQVFJfTUFYX18KI2RlZmluZSBQVFJESUZGX01JTiAoLV9fUFRSRElGRl9NQVhfXy0xKQojZGVmaW5lIFBUUkRJRkZfTUFYICAgX19QVFJESUZGX01BWF9fCiNkZWZpbmUgICAgU0laRV9NQVggICAgICBfX1NJWkVfTUFYX18KCi8qIElTTzk4OTk6MjAxMSA3LjIwIChDMTEgQW5uZXggSyk6IERlZmluZSBSU0laRV9NQVggaWYgX19TVERDX1dBTlRfTElCX0VYVDFfXwogKiBpcyBlbmFibGVkLiAqLwojaWYgZGVmaW5lZChfX1NURENfV0FOVF9MSUJfRVhUMV9fKSAmJiBfX1NURENfV0FOVF9MSUJfRVhUMV9fID49IDEKI2RlZmluZSAgIFJTSVpFX01BWCAgICAgICAgICAgIChTSVpFX01BWCA+PiAxKQojZW5kaWYKCi8qIEM5OSA3LjE4LjIuNSBMaW1pdHMgb2YgZ3JlYXRlc3Qtd2lkdGggaW50ZWdlciB0eXBlcy4gKi8KI2RlZmluZSAgSU5UTUFYX01JTiAoLV9fSU5UTUFYX01BWF9fLTEpCiNkZWZpbmUgIElOVE1BWF9NQVggICBfX0lOVE1BWF9NQVhfXwojZGVmaW5lIFVJTlRNQVhfTUFYICBfX1VJTlRNQVhfTUFYX18KCi8qIEM5OSA3LjE4LjMgTGltaXRzIG9mIG90aGVyIGludGVnZXIgdHlwZXMuICovCiNkZWZpbmUgU0lHX0FUT01JQ19NSU4gX19JTlROX01JTihfX1NJR19BVE9NSUNfV0lEVEhfXykKI2RlZmluZSBTSUdfQVRPTUlDX01BWCBfX0lOVE5fTUFYKF9fU0lHX0FUT01JQ19XSURUSF9fKQojaWZkZWYgX19XSU5UX1VOU0lHTkVEX18KIyBkZWZpbmUgV0lOVF9NSU4gICAgICAgX19VSU5UTl9DKF9fV0lOVF9XSURUSF9fLCAwKQojIGRlZmluZSBXSU5UX01BWCAgICAgICBfX1VJTlROX01BWChfX1dJTlRfV0lEVEhfXykKI2Vsc2UKIyBkZWZpbmUgV0lOVF9NSU4gICAgICAgX19JTlROX01JTihfX1dJTlRfV0lEVEhfXykKIyBkZWZpbmUgV0lOVF9NQVggICAgICAgX19JTlROX01BWChfX1dJTlRfV0lEVEhfXykKI2VuZGlmCgojaWZuZGVmIFdDSEFSX01BWAojIGRlZmluZSBXQ0hBUl9NQVggX19XQ0hBUl9NQVhfXwojZW5kaWYKI2lmbmRlZiBXQ0hBUl9NSU4KIyBpZiBfX1dDSEFSX01BWF9fID09IF9fSU5UTl9NQVgoX19XQ0hBUl9XSURUSF9fKQojICBkZWZpbmUgV0NIQVJfTUlOIF9fSU5UTl9NSU4oX19XQ0hBUl9XSURUSF9fKQojIGVsc2UKIyAgZGVmaW5lIFdDSEFSX01JTiBfX1VJTlROX0MoX19XQ0hBUl9XSURUSF9fLCAwKQojIGVuZGlmCiNlbmRpZgoKLyogNy4xOC40LjIgTWFjcm9zIGZvciBncmVhdGVzdC13aWR0aCBpbnRlZ2VyIGNvbnN0YW50cy4gKi8KI2RlZmluZSAgSU5UTUFYX0ModikgX19pbnRfYyh2LCAgX19JTlRNQVhfQ19TVUZGSVhfXykKI2RlZmluZSBVSU5UTUFYX0ModikgX19pbnRfYyh2LCBfX1VJTlRNQVhfQ19TVUZGSVhfXykKCiNlbmRpZiAvKiBfX1NURENfSE9TVEVEX18gKi8KI2VuZGlmIC8qIF9fQ0xBTkdfU1RESU5UX0ggKi8KAHdhc21fc2ltZDEyOC5oAC8qPT09LS0gY29tcGxleCAtLS0gT3Blbk1QIGNvbXBsZXggd3JhcHBlciBmb3IgdGFyZ2V0IHJlZ2lvbnMgLS0tLS0tLS0tIGMrKyAtPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfT1BFTk1QX0NPTVBMRVhfSF9fCiNkZWZpbmUgX19DTEFOR19PUEVOTVBfQ09NUExFWF9IX18KCiNpZm5kZWYgX09QRU5NUAojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgT3Blbk1QIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCi8vIFdlIHJlcXVpcmUgbWF0aCBmdW5jdGlvbnMgaW4gdGhlIGNvbXBsZXggYnVpbHRpbnMgYmVsb3cuCiNpbmNsdWRlIDxtYXRoLmg+CgojaWZkZWYgX19OVlBUWF9fCiNkZWZpbmUgX19PUEVOTVBfTlZQVFhfXwojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2NvbXBsZXhfYnVpbHRpbnMuaD4KI3VuZGVmIF9fT1BFTk1QX05WUFRYX18KI2VuZGlmCgojaWZkZWYgX19BTURHQ05fXwojZGVmaW5lIF9fT1BFTk1QX0FNREdDTl9fCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfY29tcGxleF9idWlsdGlucy5oPgojdW5kZWYgX19PUEVOTVBfQU1ER0NOX18KI2VuZGlmCgojZW5kaWYKCi8vIEdyYWIgdGhlIGhvc3QgaGVhZGVyIHRvby4KI2luY2x1ZGVfbmV4dCA8Y29tcGxleC5oPgoAcHBjX3dyYXBwZXJzL2VtbWludHJpbi5oAHBwY193cmFwcGVycy94bW1pbnRyaW4uaABzYW5pdGl6ZXIvdWJzYW5faW50ZXJmYWNlLmgATWlzc2luZyBhIGNvbW1hIG9yICd9JyBhZnRlciBhbiBvYmplY3QgbWVtYmVyLgAvLwBbOl5jbnRybDpdAGhlbGxvLCB3b3JsZABmYWlsAE5VTEwgc3RhdGUgaW4gUnVuU3RhdGVPbkJ5dGUAU2ltcGxpZnlXYWxrZXI6OlNob3J0VmlzaXQgY2FsbGVkAEMAR3JhbnRoYQBMaXN1AE5kAE5vAE9sZF9Ob3J0aF9BcmFiaWFuAE9sZF9QZXJtaWMAUGFoYXdoX0htb25nAFBjAFBpAFBvACVzAC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdTAvdHNjX2ZyZXFfa2h6AGluZGV4IDwgZWhkcl8tPmVfcGhudW0AbGlua19iYXNlXyA8IHN5bS0+c3RfdmFsdWUAYXJlbmEtPmFsbG9jYXRpb25fY291bnQgPiAwAGYtPmhlYWRlci5tYWdpYyA9PSBNYWdpYyhrTWFnaWNBbGxvY2F0ZWQsICZmLT5oZWFkZXIpAHYAdW5zaWduZWQgY2hhcgBpAHkAcXUAXS5lbmRfcG9zIABFbnF1ZXVlIHRvIGxpc3QgZmFpbGVkAFNpZ25hbCBvbiAAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9zcXJ0LmMAUlNBIFNpZ24gS0FUAGNvbXBpbGVyOiBuL2EAa3l0aGUucHJvdG8uS3ppcEluZm8uQ29ycG9yYUVudHJ5LmtleQBLWVRIRV9WTkFNRVMAZnJlZXN0YW5kaW5nAGFybV9tdmUuaABhdng1MTJ2bGZwMTZpbnRyaW4uaAAvKj09PS0tLS0gY2V0aW50cmluLmggLSBDRVQgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGNldGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19DRVRJTlRSSU5fSAojZGVmaW5lIF9fQ0VUSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNoc3RrIikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY3NzcGQoaW50IF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcGQoX19hKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY3NzcHEodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcHEoX19hKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY19zc3AodW5zaWduZWQgaW50IF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcHEoX19hKTsKfQojZWxzZSAvKiBfX3g4Nl82NF9fICovCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9pbmNfc3NwKHVuc2lnbmVkIGludCBfX2EpIHsKICBfX2J1aWx0aW5faWEzMl9pbmNzc3BkKChpbnQpX19hKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUyBfcmRzc3BkKHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzc3BkKF9fYSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMgX3Jkc3NwcSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc3NwcShfX2EpOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTIF9nZXRfc3NwKHZvaWQpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzc3BxKDApOwp9CiNlbHNlIC8qIF9feDg2XzY0X18gKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUyBfZ2V0X3NzcCh2b2lkKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc3NwZCgwKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX3NhdmVwcmV2c3NwKCkgewogIF9fYnVpbHRpbl9pYTMyX3NhdmVwcmV2c3NwKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9yc3RvcnNzcCh2b2lkICogX19wKSB7CiAgX19idWlsdGluX2lhMzJfcnN0b3Jzc3AoX19wKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX3dyc3NkKHVuc2lnbmVkIGludCBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnNzZChfX2EsIF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF93cnNzcSh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2b2lkICogX19wKSB7CiAgX19idWlsdGluX2lhMzJfd3Jzc3EoX19hLCBfX3ApOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfd3J1c3NkKHVuc2lnbmVkIGludCBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnVzc2QoX19hLCBfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfd3J1c3NxKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnVzc3EoX19hLCBfX3ApOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfc2V0c3Nic3koKSB7CiAgX19idWlsdGluX2lhMzJfc2V0c3Nic3koKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2NscnNzYnN5KHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl9jbHJzc2JzeShfX3ApOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19DRVRJTlRSSU5fSCAqLwoAZm1haW50cmluLmgAaGV4YWdvbl90eXBlcy5oAC8qPT09LS0tLSBtbV9tYWxsb2MuaCAtIEFsbG9jYXRpbmcgYW5kIEZyZWVpbmcgQWxpZ25lZCBNZW1vcnkgQmxvY2tzIC0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19NTV9NQUxMT0NfSAojZGVmaW5lIF9fTU1fTUFMTE9DX0gKCiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNpZmRlZiBfV0lOMzIKI2luY2x1ZGUgPG1hbGxvYy5oPgojZWxzZQojaWZuZGVmIF9fY3BsdXNwbHVzCmV4dGVybiBpbnQgcG9zaXhfbWVtYWxpZ24odm9pZCAqKl9fbWVtcHRyLCBzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpOwojZWxzZQovLyBTb21lIHN5c3RlbXMgKGUuZy4gdGhvc2Ugd2l0aCBHTlUgbGliYykgZGVjbGFyZSBwb3NpeF9tZW1hbGlnbiB3aXRoIGFuCi8vIGV4Y2VwdGlvbiBzcGVjaWZpZXIuIFZpYSBhbiAiZWdyZWdpb3VzIHdvcmthcm91bmQiIGluCi8vIFNlbWE6OkNoZWNrRXF1aXZhbGVudEV4Y2VwdGlvblNwZWMsIENsYW5nIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhcyBhIHZhbGlkCi8vIHJlZGVjbGFyYXRpb24gb2YgZ2xpYmMncyBkZWNsYXJhdGlvbi4KZXh0ZXJuICJDIiBpbnQgcG9zaXhfbWVtYWxpZ24odm9pZCAqKl9fbWVtcHRyLCBzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpOwojZW5kaWYKI2VuZGlmCgojaWYgIShkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfbW1fbWFsbG9jKSkKc3RhdGljIF9faW5saW5lX18gdm9pZCAqX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hbGxvY19fKSkKX21tX21hbGxvYyhzaXplX3QgX19zaXplLCBzaXplX3QgX19hbGlnbikKewogIGlmIChfX2FsaWduID09IDEpIHsKICAgIHJldHVybiBtYWxsb2MoX19zaXplKTsKICB9CgogIGlmICghKF9fYWxpZ24gJiAoX19hbGlnbiAtIDEpKSAmJiBfX2FsaWduIDwgc2l6ZW9mKHZvaWQgKikpCiAgICBfX2FsaWduID0gc2l6ZW9mKHZvaWQgKik7CgogIHZvaWQgKl9fbWFsbG9jZWRNZW1vcnk7CiNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQogIF9fbWFsbG9jZWRNZW1vcnkgPSBfX21pbmd3X2FsaWduZWRfbWFsbG9jKF9fc2l6ZSwgX19hbGlnbik7CiNlbGlmIGRlZmluZWQoX1dJTjMyKQogIF9fbWFsbG9jZWRNZW1vcnkgPSBfYWxpZ25lZF9tYWxsb2MoX19zaXplLCBfX2FsaWduKTsKI2Vsc2UKICBpZiAocG9zaXhfbWVtYWxpZ24oJl9fbWFsbG9jZWRNZW1vcnksIF9fYWxpZ24sIF9fc2l6ZSkpCiAgICByZXR1cm4gMDsKI2VuZGlmCgogIHJldHVybiBfX21hbGxvY2VkTWVtb3J5Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9tbV9mcmVlKHZvaWQgKl9fcCkKewojaWYgZGVmaW5lZChfX01JTkdXMzJfXykKICBfX21pbmd3X2FsaWduZWRfZnJlZShfX3ApOwojZWxpZiBkZWZpbmVkKF9XSU4zMikKICBfYWxpZ25lZF9mcmVlKF9fcCk7CiNlbHNlCiAgZnJlZShfX3ApOwojZW5kaWYKfQojZW5kaWYKCiNlbmRpZiAvKiBfX01NX01BTExPQ19IICovCgBtb3ZkaXJpbnRyaW4uaAB1bndpbmQuaAAvKj09PS0tLS0gbW1pbnRyaW4uaCAtIEltcGxlbWVudGF0aW9uIG9mIE1NWCBpbnRyaW5zaWNzIG9uIFBvd2VyUEMgLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4gICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgZmlsZSBpcyB0byBoZWxwIHBvcnRpbmcgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzCiAgIGV4cGxpY2l0bHkgZnJvbSB4ODZfNjQgdG8gcG93ZXJwYzY0L3Bvd2VycGM2NGxlLgoKICAgU2luY2UgUG93ZXJQQyB0YXJnZXQgZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSA2NC1iaXQgdmVjdG9yIHR5cGUsIHdlCiAgIHR5cGVkZWYgX19tNjQgdG8gNjQtYml0IHVuc2lnbmVkIGxvbmcgbG9uZyBpbiBNTVggaW50cmluc2ljcywgd2hpY2gKICAgd29ya3Mgd2VsbCBmb3IgX3NpNjQgYW5kIHNvbWUgX3BpMzIgb3BlcmF0aW9ucy4KCiAgIEZvciBfcGkxNiBhbmQgX3BpOCBvcGVyYXRpb25zLCBpdCdzIGJldHRlciB0byB0cmFuc2ZlciBfX202NCBpbnRvCiAgIDEyOC1iaXQgUG93ZXJQQyB2ZWN0b3IgZmlyc3QuIFBvd2VyOCBpbnRyb2R1Y2VkIGRpcmVjdCByZWdpc3RlcgogICBtb3ZlIGluc3RydWN0aW9ucyB3aGljaCBoZWxwcyBmb3IgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24uCgogICBJdCdzIHVzZXIncyByZXNwb25zaWJpbGl0eSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdHMgb2Ygc3VjaCBwb3J0CiAgIGFyZSBhY2NlcHRhYmxlIG9yIGZ1cnRoZXIgY2hhbmdlcyBhcmUgbmVlZGVkLiBQbGVhc2Ugbm90ZSB0aGF0IG11Y2gKICAgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzIENBTiBCRSBSRVdSSVRURU4gaW4gbW9yZSBwb3J0YWJsZSBhbmQKICAgZWZmaWNpZW50IHN0YW5kYXJkIEMgb3IgR05VIEMgZXh0ZW5zaW9ucyB3aXRoIDY0LWJpdCBzY2FsYXIKICAgb3BlcmF0aW9ucywgb3IgMTI4LWJpdCBTU0UvQWx0aXZlYyBvcGVyYXRpb25zLCB3aGljaCBhcmUgbW9yZQogICByZWNvbW1lbmRlZC4gKi8KI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgX01NSU5UUklOX0hfSU5DTFVERUQKI2RlZmluZSBfTU1JTlRSSU5fSF9JTkNMVURFRAoKI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykKCiNpbmNsdWRlIDxhbHRpdmVjLmg+Ci8qIFRoZSBJbnRlbCBBUEkgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgd2UgbXVzdCBhbGxvdyBhbGlhc2luZyB3aXRoIG90aGVyCiAgIHZlY3RvciB0eXBlcywgYW5kIHRoZWlyIHNjYWxhciBjb21wb25lbnRzLiAgKi8KdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyg4KSkpIHVuc2lnbmVkIGxvbmcgbG9uZyBfX202NDsKCnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oOCkpKSB1bmlvbiB7CiAgX19tNjQgYXNfbTY0OwogIGNoYXIgYXNfY2hhcls4XTsKICBzaWduZWQgY2hhciBhc19zaWduZWRfY2hhcls4XTsKICBzaG9ydCBhc19zaG9ydFs0XTsKICBpbnQgYXNfaW50WzJdOwogIGxvbmcgbG9uZyBhc19sb25nX2xvbmc7CiAgZmxvYXQgYXNfZmxvYXRbMl07CiAgZG91YmxlIGFzX2RvdWJsZTsKfSBfX202NF91bmlvbjsKCi8qIEVtcHR5IHRoZSBtdWx0aW1lZGlhIHN0YXRlLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2VtcHR5KHZvaWQpIHsKICAvKiBub3RoaW5nIHRvIGRvIG9uIFBvd2VyUEMuICAqLwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9lbXB0eSh2b2lkKSB7CiAgLyogbm90aGluZyB0byBkbyBvbiBQb3dlclBDLiAgKi8KfQoKLyogQ29udmVydCBJIHRvIGEgX19tNjQgb2JqZWN0LiAgVGhlIGludGVnZXIgaXMgemVyby1leHRlbmRlZCB0byA2NC1iaXRzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jdnRzaTMyX3NpNjQoaW50IF9faSkgewogIHJldHVybiAoX19tNjQpKHVuc2lnbmVkIGludClfX2k7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9mcm9tX2ludChpbnQgX19pKSB7CiAgcmV0dXJuIF9tbV9jdnRzaTMyX3NpNjQoX19pKTsKfQoKLyogQ29udmVydCB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgX19tNjQgb2JqZWN0IGludG8gYW4gaW50ZWdlci4gICovCmV4dGVybiBfX2lubGluZSBpbnQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjRfc2kzMihfX202NCBfX2kpIHsKICByZXR1cm4gKChpbnQpX19pKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV90b19pbnQoX19tNjQgX19pKSB7CiAgcmV0dXJuIF9tbV9jdnRzaTY0X3NpMzIoX19pKTsKfQoKLyogQ29udmVydCBJIHRvIGEgX19tNjQgb2JqZWN0LiAgKi8KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9mcm9tX2ludDY0KGxvbmcgbG9uZyBfX2kpIHsKICByZXR1cm4gKF9fbTY0KV9faTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jdnRzaTY0X202NChsb25nIGxvbmcgX19pKSB7CiAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjR4X3NpNjQobG9uZyBsb25nIF9faSkgewogIHJldHVybiAoX19tNjQpX19pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldF9waTY0eChsb25nIGxvbmcgX19pKSB7CiAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8qIENvbnZlcnQgdGhlIF9fbTY0IG9iamVjdCB0byBhIDY0Yml0IGludGVnZXIuICAqLwoKLyogSW50ZWwgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZwogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV90b19pbnQ2NChfX202NCBfX2kpIHsKICByZXR1cm4gKGxvbmcgbG9uZylfX2k7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dG02NF9zaTY0KF9fbTY0IF9faSkgewogIHJldHVybiAobG9uZyBsb25nKV9faTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjRfc2k2NHgoX19tNjQgX19pKSB7CiAgcmV0dXJuIChsb25nIGxvbmcpX19pOwp9CgojaWZkZWYgX0FSQ0hfUFdSOAovKiBQYWNrIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgZnJvbSBNMSBpbnRvIHRoZSBsb3dlciBmb3VyIDgtYml0IHZhbHVlcyBvZgogICB0aGUgcmVzdWx0LCBhbmQgdGhlIGZvdXIgMTYtYml0IHZhbHVlcyBmcm9tIE0yIGludG8gdGhlIHVwcGVyIGZvdXIgOC1iaXQKICAgdmFsdWVzIG9mIHRoZSByZXN1bHQsIGFsbCB3aXRoIHNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdm0xOwogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIHZyZXN1bHQ7CgogIHZtMSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICB2cmVzdWx0ID0gdmVjX3BhY2tzKHZtMSwgdm0xKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXZyZXN1bHQpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFja3Nzd2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fcGFja3NfcGkxNihfX20xLCBfX20yKTsKfQoKLyogUGFjayB0aGUgdHdvIDMyLWJpdCB2YWx1ZXMgZnJvbSBNMSBpbiB0byB0aGUgbG93ZXIgdHdvIDE2LWJpdCB2YWx1ZXMgb2YKICAgdGhlIHJlc3VsdCwgYW5kIHRoZSB0d28gMzItYml0IHZhbHVlcyBmcm9tIE0yIGludG8gdGhlIHVwcGVyIHR3byAxNi1iaXQKICAgdmFsdWVzIG9mIHRoZSByZXN1bHQsIGFsbCB3aXRoIHNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IHZtMTsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdnJlc3VsdDsKCiAgdm0xID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICB2cmVzdWx0ID0gdmVjX3BhY2tzKHZtMSwgdm0xKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXZyZXN1bHQpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFja3NzZHcoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fcGFja3NfcGkzMihfX20xLCBfX20yKTsKfQoKLyogUGFjayB0aGUgZm91ciAxNi1iaXQgdmFsdWVzIGZyb20gTTEgaW50byB0aGUgbG93ZXIgZm91ciA4LWJpdCB2YWx1ZXMgb2YKICAgdGhlIHJlc3VsdCwgYW5kIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgZnJvbSBNMiBpbnRvIHRoZSB1cHBlciBmb3VyIDgtYml0CiAgIHZhbHVlcyBvZiB0aGUgcmVzdWx0LCBhbGwgd2l0aCB1bnNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHI7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IHZtMSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpKF9fdmVjdG9yIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX196ZXJvID0gezB9OwogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX3NlbGVjdCA9IHZlY19jbXBsdCh2bTEsIF9femVybyk7CiAgciA9IHZlY19wYWNrcygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdm0xLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdm0xKTsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBwYWNrc2VsID0gdmVjX3BhY2soX19zZWxlY3QsIF9fc2VsZWN0KTsKICByID0gdmVjX3NlbChyLCAoY29uc3QgX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3plcm8sIHBhY2tzZWwpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpcilbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWNrdXN3YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9wYWNrc19wdTE2KF9fbTEsIF9fbTIpOwp9CiNlbmRpZiAvKiBlbmQgQVJDSF9QV1I4ICovCgovKiBJbnRlcmxlYXZlIHRoZSBmb3VyIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBoaWdoIGhhbGYgb2YgTTEgd2l0aCB0aGUgZm91cgogICA4LWJpdCB2YWx1ZXMgZnJvbSB0aGUgaGlnaCBoYWxmIG9mIE0yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV91bnBhY2toaV9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19tZXJnZWwoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVsxXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IG0xLmFzX2NoYXJbNF07CiAgcmVzLmFzX2NoYXJbMV0gPSBtMi5hc19jaGFyWzRdOwogIHJlcy5hc19jaGFyWzJdID0gbTEuYXNfY2hhcls1XTsKICByZXMuYXNfY2hhclszXSA9IG0yLmFzX2NoYXJbNV07CiAgcmVzLmFzX2NoYXJbNF0gPSBtMS5hc19jaGFyWzZdOwogIHJlcy5hc19jaGFyWzVdID0gbTIuYXNfY2hhcls2XTsKICByZXMuYXNfY2hhcls2XSA9IG0xLmFzX2NoYXJbN107CiAgcmVzLmFzX2NoYXJbN10gPSBtMi5hc19jaGFyWzddOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHVucGNraGJ3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3VucGFja2hpX3BpOChfX20xLCBfX20yKTsKfQoKLyogSW50ZXJsZWF2ZSB0aGUgdHdvIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgaGlnaCBoYWxmIG9mIE0xIHdpdGggdGhlIHR3bwogICAxNi1iaXQgdmFsdWVzIGZyb20gdGhlIGhpZ2ggaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNraGlfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX3Nob3J0WzBdID0gbTEuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzFdID0gbTIuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzJdID0gbTEuYXNfc2hvcnRbM107CiAgcmVzLmFzX3Nob3J0WzNdID0gbTIuYXNfc2hvcnRbM107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3B1bnBja2h3ZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV91bnBhY2toaV9waTE2KF9fbTEsIF9fbTIpOwp9Ci8qIEludGVybGVhdmUgdGhlIDMyLWJpdCB2YWx1ZSBmcm9tIHRoZSBoaWdoIGhhbGYgb2YgTTEgd2l0aCB0aGUgMzItYml0CiAgIHZhbHVlIGZyb20gdGhlIGhpZ2ggaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNraGlfcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2ludFswXSA9IG0xLmFzX2ludFsxXTsKICByZXMuYXNfaW50WzFdID0gbTIuYXNfaW50WzFdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2toZHEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNraGlfcGkzMihfX20xLCBfX20yKTsKfQovKiBJbnRlcmxlYXZlIHRoZSBmb3VyIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMSB3aXRoIHRoZSBmb3VyCiAgIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNrbG9fcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfbWVyZ2VsKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2NoYXJbMF0gPSBtMS5hc19jaGFyWzBdOwogIHJlcy5hc19jaGFyWzFdID0gbTIuYXNfY2hhclswXTsKICByZXMuYXNfY2hhclsyXSA9IG0xLmFzX2NoYXJbMV07CiAgcmVzLmFzX2NoYXJbM10gPSBtMi5hc19jaGFyWzFdOwogIHJlcy5hc19jaGFyWzRdID0gbTEuYXNfY2hhclsyXTsKICByZXMuYXNfY2hhcls1XSA9IG0yLmFzX2NoYXJbMl07CiAgcmVzLmFzX2NoYXJbNl0gPSBtMS5hc19jaGFyWzNdOwogIHJlcy5hc19jaGFyWzddID0gbTIuYXNfY2hhclszXTsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3B1bnBja2xidyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV91bnBhY2tsb19waTgoX19tMSwgX19tMik7Cn0KLyogSW50ZXJsZWF2ZSB0aGUgdHdvIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgbG93IGhhbGYgb2YgTTEgd2l0aCB0aGUgdHdvCiAgIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgbG93IGhhbGYgb2YgTTIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3VucGFja2xvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19zaG9ydFswXSA9IG0xLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsxXSA9IG0yLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsyXSA9IG0xLmFzX3Nob3J0WzFdOwogIHJlcy5hc19zaG9ydFszXSA9IG0yLmFzX3Nob3J0WzFdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2tsd2QoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNrbG9fcGkxNihfX20xLCBfX20yKTsKfQoKLyogSW50ZXJsZWF2ZSB0aGUgMzItYml0IHZhbHVlIGZyb20gdGhlIGxvdyBoYWxmIG9mIE0xIHdpdGggdGhlIDMyLWJpdAogICB2YWx1ZSBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNrbG9fcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2ludFswXSA9IG0xLmFzX2ludFswXTsKICByZXMuYXNfaW50WzFdID0gbTIuYXNfaW50WzBdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2tsZHEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNrbG9fcGkzMihfX20xLCBfX20yKTsKfQoKLyogQWRkIHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTEgdG8gdGhlIDgtYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX2FkZChhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19jaGFyWzBdID0gbTEuYXNfY2hhclswXSArIG0yLmFzX2NoYXJbMF07CiAgcmVzLmFzX2NoYXJbMV0gPSBtMS5hc19jaGFyWzFdICsgbTIuYXNfY2hhclsxXTsKICByZXMuYXNfY2hhclsyXSA9IG0xLmFzX2NoYXJbMl0gKyBtMi5hc19jaGFyWzJdOwogIHJlcy5hc19jaGFyWzNdID0gbTEuYXNfY2hhclszXSArIG0yLmFzX2NoYXJbM107CiAgcmVzLmFzX2NoYXJbNF0gPSBtMS5hc19jaGFyWzRdICsgbTIuYXNfY2hhcls0XTsKICByZXMuYXNfY2hhcls1XSA9IG0xLmFzX2NoYXJbNV0gKyBtMi5hc19jaGFyWzVdOwogIHJlcy5hc19jaGFyWzZdID0gbTEuYXNfY2hhcls2XSArIG0yLmFzX2NoYXJbNl07CiAgcmVzLmFzX2NoYXJbN10gPSBtMS5hc19jaGFyWzddICsgbTIuYXNfY2hhcls3XTsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BhZGRiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FkZF9waTgoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGQoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfc2hvcnRbMF0gPSBtMS5hc19zaG9ydFswXSArIG0yLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsxXSA9IG0xLmFzX3Nob3J0WzFdICsgbTIuYXNfc2hvcnRbMV07CiAgcmVzLmFzX3Nob3J0WzJdID0gbTEuYXNfc2hvcnRbMl0gKyBtMi5hc19zaG9ydFsyXTsKICByZXMuYXNfc2hvcnRbM10gPSBtMS5hc19zaG9ydFszXSArIG0yLmFzX3Nob3J0WzNdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHcoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMzItYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMzItYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGQoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gbTEuYXNfaW50WzBdICsgbTIuYXNfaW50WzBdOwogIHJlcy5hc19pbnRbMV0gPSBtMS5hc19pbnRbMV0gKyBtMi5hc19pbnRbMV07CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWRkZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hZGRfcGkzMihfX20xLCBfX20yKTsKfQoKLyogU3VidHJhY3QgdGhlIDgtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1Yl9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWIoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IG0xLmFzX2NoYXJbMF0gLSBtMi5hc19jaGFyWzBdOwogIHJlcy5hc19jaGFyWzFdID0gbTEuYXNfY2hhclsxXSAtIG0yLmFzX2NoYXJbMV07CiAgcmVzLmFzX2NoYXJbMl0gPSBtMS5hc19jaGFyWzJdIC0gbTIuYXNfY2hhclsyXTsKICByZXMuYXNfY2hhclszXSA9IG0xLmFzX2NoYXJbM10gLSBtMi5hc19jaGFyWzNdOwogIHJlcy5hc19jaGFyWzRdID0gbTEuYXNfY2hhcls0XSAtIG0yLmFzX2NoYXJbNF07CiAgcmVzLmFzX2NoYXJbNV0gPSBtMS5hc19jaGFyWzVdIC0gbTIuYXNfY2hhcls1XTsKICByZXMuYXNfY2hhcls2XSA9IG0xLmFzX2NoYXJbNl0gLSBtMi5hc19jaGFyWzZdOwogIHJlcy5hc19jaGFyWzddID0gbTEuYXNfY2hhcls3XSAtIG0yLmFzX2NoYXJbN107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3ViYihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGk4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zdWJfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX3N1YihhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19zaG9ydFswXSA9IG0xLmFzX3Nob3J0WzBdIC0gbTIuYXNfc2hvcnRbMF07CiAgcmVzLmFzX3Nob3J0WzFdID0gbTEuYXNfc2hvcnRbMV0gLSBtMi5hc19zaG9ydFsxXTsKICByZXMuYXNfc2hvcnRbMl0gPSBtMS5hc19zaG9ydFsyXSAtIG0yLmFzX3Nob3J0WzJdOwogIHJlcy5hc19zaG9ydFszXSA9IG0xLmFzX3Nob3J0WzNdIC0gbTIuYXNfc2hvcnRbM107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3VidyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGkxNihfX20xLCBfX20yKTsKfQoKLyogU3VidHJhY3QgdGhlIDMyLWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgMzItYml0IHZhbHVlcyBpbiBNMS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3ViX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWIoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gbTEuYXNfaW50WzBdIC0gbTIuYXNfaW50WzBdOwogIHJlcy5hc19pbnRbMV0gPSBtMS5hc19pbnRbMV0gLSBtMi5hc19pbnRbMV07CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3ViZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGkzMihfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hZGRfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xICsgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3ViX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tMSAtIF9fbTIpOwp9CgovKiBTaGlmdCB0aGUgNjQtYml0IHZhbHVlIGluIE0gbGVmdCBieSBDT1VOVC4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2xsX3NpNjQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIChfX20gPDwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc2xscShfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NsbF9zaTY0KF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2xsaV9zaTY0KF9fbTY0IF9fbSwgY29uc3QgaW50IF9fY291bnQpIHsKICByZXR1cm4gKF9fbSA8PCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGxxaShfX202NCBfX20sIGNvbnN0IGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxpX3NpNjQoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdGhlIDY0LWJpdCB2YWx1ZSBpbiBNIGxlZnQgYnkgQ09VTlQ7IHNoaWZ0IGluIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxfc2k2NChfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gKF9fbSA+PiBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzcmxxKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JsX3NpNjQoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxpX3NpNjQoX19tNjQgX19tLCBjb25zdCBpbnQgX19jb3VudCkgewogIHJldHVybiAoX19tID4+IF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybHFpKF9fbTY0IF9fbSwgY29uc3QgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NybGlfc2k2NChfX20sIF9fY291bnQpOwp9CgovKiBCaXQtd2lzZSBBTkQgdGhlIDY0LWJpdCB2YWx1ZXMgaW4gTTEgYW5kIE0yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hbmRfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xICYgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYW5kKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FuZF9zaTY0KF9fbTEsIF9fbTIpOwp9CgovKiBCaXQtd2lzZSBjb21wbGVtZW50IHRoZSA2NC1iaXQgdmFsdWUgaW4gTTEgYW5kIGJpdC13aXNlIEFORCBpdCB3aXRoIHRoZQogICA2NC1iaXQgdmFsdWUgaW4gTTIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2FuZG5vdF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKH5fX20xICYgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYW5kbihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hbmRub3Rfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQml0LXdpc2UgaW5jbHVzaXZlIE9SIHRoZSA2NC1iaXQgdmFsdWVzIGluIE0xIGFuZCBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fb3Jfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xIHwgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wb3IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fb3Jfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQml0LXdpc2UgZXhjbHVzaXZlIE9SIHRoZSA2NC1iaXQgdmFsdWVzIGluIE0xIGFuZCBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1feG9yX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tMSBeIF9fbTIpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHhvcihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV94b3Jfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQ3JlYXRlcyBhIDY0LWJpdCB6ZXJvLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXR6ZXJvX3NpNjQodm9pZCkgewogIHJldHVybiAoX19tNjQpMDsKfQoKLyogQ29tcGFyZSBlaWdodCA4LWJpdCB2YWx1ZXMuICBUaGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGlzIDB4RkYgaWYgdGhlCiAgIHRlc3QgaXMgdHJ1ZSBhbmQgemVybyBpZiBmYWxzZS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fY21wZXFfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIGRlZmluZWQoX0FSQ0hfUFdSNikgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQogIF9fbTY0IHJlczsKICBfX2FzbV9fKCJjbXBiICUwLCUxLCUyO1xuIiA6ICI9ciIocmVzKSA6ICJyIihfX20xKSwgInIiKF9fbTIpIDopOwogIHJldHVybiAocmVzKTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IChtMS5hc19jaGFyWzBdID09IG0yLmFzX2NoYXJbMF0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzFdID0gKG0xLmFzX2NoYXJbMV0gPT0gbTIuYXNfY2hhclsxXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbMl0gPSAobTEuYXNfY2hhclsyXSA9PSBtMi5hc19jaGFyWzJdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhclszXSA9IChtMS5hc19jaGFyWzNdID09IG0yLmFzX2NoYXJbM10pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzRdID0gKG0xLmFzX2NoYXJbNF0gPT0gbTIuYXNfY2hhcls0XSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbNV0gPSAobTEuYXNfY2hhcls1XSA9PSBtMi5hc19jaGFyWzVdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhcls2XSA9IChtMS5hc19jaGFyWzZdID09IG0yLmFzX2NoYXJbNl0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzddID0gKG0xLmFzX2NoYXJbN10gPT0gbTIuYXNfY2hhcls3XSkgPyAtMSA6IDA7CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wY21wZXFiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2NtcGVxX3BpOChfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jbXBndF9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfY21wZ3QoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IChtMS5hc19jaGFyWzBdID4gbTIuYXNfY2hhclswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbMV0gPSAobTEuYXNfY2hhclsxXSA+IG0yLmFzX2NoYXJbMV0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzJdID0gKG0xLmFzX2NoYXJbMl0gPiBtMi5hc19jaGFyWzJdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhclszXSA9IChtMS5hc19jaGFyWzNdID4gbTIuYXNfY2hhclszXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbNF0gPSAobTEuYXNfY2hhcls0XSA+IG0yLmFzX2NoYXJbNF0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzVdID0gKG0xLmFzX2NoYXJbNV0gPiBtMi5hc19jaGFyWzVdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhcls2XSA9IChtMS5hc19jaGFyWzZdID4gbTIuYXNfY2hhcls2XSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbN10gPSAobTEuYXNfY2hhcls3XSA+IG0yLmFzX2NoYXJbN10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTgoX19tMSwgX19tMik7Cn0KCi8qIENvbXBhcmUgZm91ciAxNi1iaXQgdmFsdWVzLiAgVGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpcyAweEZGRkYgaWYKICAgdGhlIHRlc3QgaXMgdHJ1ZSBhbmQgemVybyBpZiBmYWxzZS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fY21wZXFfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfY21wZXEoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfc2hvcnRbMF0gPSAobTEuYXNfc2hvcnRbMF0gPT0gbTIuYXNfc2hvcnRbMF0pID8gLTEgOiAwOwogIHJlcy5hc19zaG9ydFsxXSA9IChtMS5hc19zaG9ydFsxXSA9PSBtMi5hc19zaG9ydFsxXSkgPyAtMSA6IDA7CiAgcmVzLmFzX3Nob3J0WzJdID0gKG0xLmFzX3Nob3J0WzJdID09IG0yLmFzX3Nob3J0WzJdKSA/IC0xIDogMDsKICByZXMuYXNfc2hvcnRbM10gPSAobTEuYXNfc2hvcnRbM10gPT0gbTIuYXNfc2hvcnRbM10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGVxdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBlcV9waTE2KF9fbTEsIF9fbTIpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2NtcGd0X3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX2NtcGd0KGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX3Nob3J0WzBdID0gKG0xLmFzX3Nob3J0WzBdID4gbTIuYXNfc2hvcnRbMF0pID8gLTEgOiAwOwogIHJlcy5hc19zaG9ydFsxXSA9IChtMS5hc19zaG9ydFsxXSA+IG0yLmFzX3Nob3J0WzFdKSA/IC0xIDogMDsKICByZXMuYXNfc2hvcnRbMl0gPSAobTEuYXNfc2hvcnRbMl0gPiBtMi5hc19zaG9ydFsyXSkgPyAtMSA6IDA7CiAgcmVzLmFzX3Nob3J0WzNdID0gKG0xLmFzX3Nob3J0WzNdID4gbTIuYXNfc2hvcnRbM10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0dyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTE2KF9fbTEsIF9fbTIpOwp9CgovKiBDb21wYXJlIHR3byAzMi1iaXQgdmFsdWVzLiAgVGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpcyAweEZGRkZGRkZGIGlmCiAgIHRoZSB0ZXN0IGlzIHRydWUgYW5kIHplcm8gaWYgZmFsc2UuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2NtcGVxX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19jbXBlcShhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19pbnRbMF0gPSAobTEuYXNfaW50WzBdID09IG0yLmFzX2ludFswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2ludFsxXSA9IChtMS5hc19pbnRbMV0gPT0gbTIuYXNfaW50WzFdKSA/IC0xIDogMDsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BjbXBlcWQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fY21wZXFfcGkzMihfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jbXBndF9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIF9BUkNIX1BXUjkKICBfX3ZlY3RvciBzaWduZWQgaW50IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfY21wZ3QoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gKG0xLmFzX2ludFswXSA+IG0yLmFzX2ludFswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2ludFsxXSA9IChtMS5hc19pbnRbMV0gPiBtMi5hc19pbnRbMV0pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0ZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTMyKF9fbTEsIF9fbTIpOwp9CgojaWYgX0FSQ0hfUFdSOAovKiBBZGQgdGhlIDgtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgOC1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGRzKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWRkc2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkc19waTgoX19tMSwgX19tMik7Cn0KLyogQWRkIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHRvIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfYWRkcyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHN3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FkZHNfcGkxNihfX20xLCBfX20yKTsKfQovKiBBZGQgdGhlIDgtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgOC1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHVuc2lnbmVkCiAgIHNhdHVyYXRlZCBhcml0aG1ldGljLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hZGRzX3B1OChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX2FkZHMoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BhZGR1c2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkc19wdTgoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiB1c2luZyB1bnNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfYWRkcyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHVzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hZGRzX3B1MTYoX19tMSwgX19tMik7Cn0KCi8qIFN1YnRyYWN0IHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgOC1iaXQgdmFsdWVzIGluIE0xIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0aW5nIGFyaXRobWV0aWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1YnNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfc3VicyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHN1YnNiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3N1YnNfcGk4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHNpZ25lZCBzYXR1cmF0aW5nIGFyaXRobWV0aWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1YnNfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX3N1YnMoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzdWJzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJzX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIFN1YnRyYWN0IHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgOC1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHVuc2lnbmVkIHNhdHVyYXRpbmcgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3Vic19wdTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWJzKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3VidXNiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3N1YnNfcHU4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHVuc2lnbmVkIHNhdHVyYXRpbmcgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3Vic19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfc3VicyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHN1YnVzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJzX3B1MTYoX19tMSwgX19tMik7Cn0KCi8qIE11bHRpcGx5IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNMSBieSBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTTIgcHJvZHVjaW5nCiAgIGZvdXIgMzItYml0IGludGVybWVkaWF0ZSByZXN1bHRzLCB3aGljaCBhcmUgdGhlbiBzdW1tZWQgYnkgcGFpcnMgdG8KICAgcHJvZHVjZSB0d28gMzItYml0IHJlc3VsdHMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX21hZGRfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGI7CiAgX192ZWN0b3Igc2lnbmVkIGludCBjOwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgemVybyA9IHswLCAwLCAwLCAwfTsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfdm1zdW1zaG0oYSwgYiwgemVybyk7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BtYWRkd2QoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fbWFkZF9waTE2KF9fbTEsIF9fbTIpOwp9Ci8qIE11bHRpcGx5IGZvdXIgc2lnbmVkIDE2LWJpdCB2YWx1ZXMgaW4gTTEgYnkgZm91ciBzaWduZWQgMTYtYml0IHZhbHVlcyBpbgogICBNMiBhbmQgcHJvZHVjZSB0aGUgaGlnaCAxNiBiaXRzIG9mIHRoZSAzMi1iaXQgcmVzdWx0cy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fbXVsaGlfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGI7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGM7CiAgX192ZWN0b3Igc2lnbmVkIGludCB3MCwgdzE7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB4Zm9ybTEgPSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAweDAyLCAweDAzLCAweDEyLCAweDEzLCAweDA2LCAweDA3LCAweDE2LCAweDE3LCAweDBBLAogICAgICAweDBCLCAweDFBLCAweDFCLCAweDBFLCAweDBGLCAweDFFLCAweDFGCiNlbHNlCiAgICAgIDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsIDB4MDAsCiAgICAgIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUKI2VuZGlmCiAgfTsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwoKICB3MCA9IHZlY192bXVsZXNoKGEsIGIpOwogIHcxID0gdmVjX3ZtdWxvc2goYSwgYik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3Blcm0odzAsIHcxLCB4Zm9ybTEpOwoKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcG11bGh3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX211bGhpX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIE11bHRpcGx5IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNMSBieSBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTTIgYW5kIHByb2R1Y2UKICAgdGhlIGxvdyAxNiBiaXRzIG9mIHRoZSByZXN1bHRzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9tdWxsb19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSBhICogYjsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcG11bGx3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX211bGxvX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIFNoaWZ0IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNIGxlZnQgYnkgQ09VTlQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NsbF9waTE2KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBtLCByOwogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IGM7CgogIGlmIChfX2NvdW50IDw9IDE1KSB7CiAgICBtID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbSk7CiAgICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoKHVuc2lnbmVkIHNob3J0KV9fY291bnQpOwogICAgciA9IHZlY19zbChtLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpYyk7CiAgICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXIpWzBdOwogIH0gZWxzZQogICAgcmV0dXJuICgwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGx3KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc2xsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zbGxpX3BpMTYoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIC8qIFByb21vdGUgaW50IHRvIGxvbmcgdGhlbiBpbnZva2UgbW1fc2xsX3BpMTYuICAqLwogIHJldHVybiBfbW1fc2xsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGx3aShfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxpX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdHdvIDMyLWJpdCB2YWx1ZXMgaW4gTSBsZWZ0IGJ5IENPVU5ULiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zbGxfcGkzMihfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICBfX202NF91bmlvbiBtLCByZXM7CgogIG0uYXNfbTY0ID0gX19tOwoKICByZXMuYXNfaW50WzBdID0gbS5hc19pbnRbMF0gPDwgX19jb3VudDsKICByZXMuYXNfaW50WzFdID0gbS5hc19pbnRbMV0gPDwgX19jb3VudDsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNsbGQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NsbGlfcGkzMihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zbGxfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zbGxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNsbGRpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NsbGlfcGkzMihfX20sIF9fY291bnQpOwp9CgovKiBTaGlmdCBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTSByaWdodCBieSBDT1VOVDsgc2hpZnQgaW4gdGhlIHNpZ24gYml0LiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmFfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgbSwgcjsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBjOwoKICBpZiAoX19jb3VudCA8PSAxNSkgewogICAgbSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20pOwogICAgYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKCh1bnNpZ25lZCBzaG9ydClfX2NvdW50KTsKICAgIHIgPSB2ZWNfc3JhKG0sIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCljKTsKICAgIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpcilbMF07CiAgfSBlbHNlCiAgICByZXR1cm4gKDApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNyYXcoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmFfcGkxNihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NyYWlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zcmFfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zcmFfcGkxNihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNyYXdpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NyYWlfcGkxNihfX20sIF9fY291bnQpOwp9CgovKiBTaGlmdCB0d28gMzItYml0IHZhbHVlcyBpbiBNIHJpZ2h0IGJ5IENPVU5UOyBzaGlmdCBpbiB0aGUgc2lnbiBiaXQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NyYV9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fbTY0X3VuaW9uIG0sIHJlczsKCiAgbS5hc19tNjQgPSBfX207CgogIHJlcy5hc19pbnRbMF0gPSBtLmFzX2ludFswXSA+PiBfX2NvdW50OwogIHJlcy5hc19pbnRbMV0gPSBtLmFzX2ludFsxXSA+PiBfX2NvdW50OwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3JhZChfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NyYV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3JhaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICAvKiBQcm9tb3RlIGludCB0byBsb25nIHRoZW4gaW52b2tlIG1tX3NyYV9waTMyLiAgKi8KICByZXR1cm4gX21tX3NyYV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3JhZGkoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JhaV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCi8qIFNoaWZ0IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNIHJpZ2h0IGJ5IENPVU5UOyBzaGlmdCBpbiB6ZXJvcy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3JsX3BpMTYoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgbSwgcjsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBjOwoKICBpZiAoX19jb3VudCA8PSAxNSkgewogICAgbSA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbSk7CiAgICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoKHVuc2lnbmVkIHNob3J0KV9fY291bnQpOwogICAgciA9IHZlY19zcihtLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpYyk7CiAgICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXIpWzBdOwogIH0gZWxzZQogICAgcmV0dXJuICgwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3Bzcmx3KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxpX3BpMTYoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIC8qIFByb21vdGUgaW50IHRvIGxvbmcgdGhlbiBpbnZva2UgbW1fc3JhX3BpMzIuICAqLwogIHJldHVybiBfbW1fc3JsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3Bzcmx3aShfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmxpX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdHdvIDMyLWJpdCB2YWx1ZXMgaW4gTSByaWdodCBieSBDT1VOVDsgc2hpZnQgaW4gemVyb3MuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NybF9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fbTY0X3VuaW9uIG0sIHJlczsKCiAgbS5hc19tNjQgPSBfX207CgogIHJlcy5hc19pbnRbMF0gPSAodW5zaWduZWQgaW50KW0uYXNfaW50WzBdID4+IF9fY291bnQ7CiAgcmVzLmFzX2ludFsxXSA9ICh1bnNpZ25lZCBpbnQpbS5hc19pbnRbMV0gPj4gX19jb3VudDsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybGQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NybGlfcGkzMihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zcmxfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zcmxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybGRpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NybGlfcGkzMihfX20sIF9fY291bnQpOwp9CiNlbmRpZiAvKiBfQVJDSF9QV1I4ICovCgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIHR3byAzMi1iaXQgdmFsdWVzOyBJMCBpcyBsZWFzdCBzaWduaWZpY2FudC4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0X3BpMzIoaW50IF9faTEsIGludCBfX2kwKSB7CiAgX19tNjRfdW5pb24gcmVzOwoKICByZXMuYXNfaW50WzBdID0gX19pMDsKICByZXMuYXNfaW50WzFdID0gX19pMTsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIGZvdXIgMTYtYml0IHZhbHVlczsgVzAgaXMgbGVhc3Qgc2lnbmlmaWNhbnQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldF9waTE2KHNob3J0IF9fdzMsIHNob3J0IF9fdzIsIHNob3J0IF9fdzEsIHNob3J0IF9fdzApIHsKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19zaG9ydFswXSA9IF9fdzA7CiAgcmVzLmFzX3Nob3J0WzFdID0gX193MTsKICByZXMuYXNfc2hvcnRbMl0gPSBfX3cyOwogIHJlcy5hc19zaG9ydFszXSA9IF9fdzM7CiAgcmV0dXJuIChyZXMuYXNfbTY0KTsKfQoKLyogQ3JlYXRlcyBhIHZlY3RvciBvZiBlaWdodCA4LWJpdCB2YWx1ZXM7IEIwIGlzIGxlYXN0IHNpZ25pZmljYW50LiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXRfcGk4KGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLAogICAgICAgICAgICAgICAgY2hhciBfX2IyLCBjaGFyIF9fYjEsIGNoYXIgX19iMCkgewogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX2NoYXJbMF0gPSBfX2IwOwogIHJlcy5hc19jaGFyWzFdID0gX19iMTsKICByZXMuYXNfY2hhclsyXSA9IF9fYjI7CiAgcmVzLmFzX2NoYXJbM10gPSBfX2IzOwogIHJlcy5hc19jaGFyWzRdID0gX19iNDsKICByZXMuYXNfY2hhcls1XSA9IF9fYjU7CiAgcmVzLmFzX2NoYXJbNl0gPSBfX2I2OwogIHJlcy5hc19jaGFyWzddID0gX19iNzsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgovKiBTaW1pbGFyLCBidXQgd2l0aCB0aGUgYXJndW1lbnRzIGluIHJldmVyc2Ugb3JkZXIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldHJfcGkzMihpbnQgX19pMCwgaW50IF9faTEpIHsKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19pbnRbMF0gPSBfX2kwOwogIHJlcy5hc19pbnRbMV0gPSBfX2kxOwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0cl9waTE2KHNob3J0IF9fdzAsIHNob3J0IF9fdzEsIHNob3J0IF9fdzIsIHNob3J0IF9fdzMpIHsKICByZXR1cm4gX21tX3NldF9waTE2KF9fdzMsIF9fdzIsIF9fdzEsIF9fdzApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldHJfcGk4KGNoYXIgX19iMCwgY2hhciBfX2IxLCBjaGFyIF9fYjIsIGNoYXIgX19iMywgY2hhciBfX2I0LAogICAgICAgICAgICAgICAgIGNoYXIgX19iNSwgY2hhciBfX2I2LCBjaGFyIF9fYjcpIHsKICByZXR1cm4gX21tX3NldF9waTgoX19iNywgX19iNiwgX19iNSwgX19iNCwgX19iMywgX19iMiwgX19iMSwgX19iMCk7Cn0KCi8qIENyZWF0ZXMgYSB2ZWN0b3Igb2YgdHdvIDMyLWJpdCB2YWx1ZXMsIGJvdGggZWxlbWVudHMgY29udGFpbmluZyBJLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXQxX3BpMzIoaW50IF9faSkgewogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX2ludFswXSA9IF9faTsKICByZXMuYXNfaW50WzFdID0gX19pOwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCi8qIENyZWF0ZXMgYSB2ZWN0b3Igb2YgZm91ciAxNi1iaXQgdmFsdWVzLCBhbGwgZWxlbWVudHMgY29udGFpbmluZyBXLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXQxX3BpMTYoc2hvcnQgX193KSB7CiNpZiBfQVJDSF9QV1I5CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IHc7CgogIHcgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX193KTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXcpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX3Nob3J0WzBdID0gX193OwogIHJlcy5hc19zaG9ydFsxXSA9IF9fdzsKICByZXMuYXNfc2hvcnRbMl0gPSBfX3c7CiAgcmVzLmFzX3Nob3J0WzNdID0gX193OwogIHJldHVybiAocmVzLmFzX202NCk7CiNlbmRpZgp9CgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIGVpZ2h0IDgtYml0IHZhbHVlcywgYWxsIGVsZW1lbnRzIGNvbnRhaW5pbmcgQi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0MV9waTgoc2lnbmVkIGNoYXIgX19iKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgYjsKCiAgYiA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyliKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19jaGFyWzBdID0gX19iOwogIHJlcy5hc19jaGFyWzFdID0gX19iOwogIHJlcy5hc19jaGFyWzJdID0gX19iOwogIHJlcy5hc19jaGFyWzNdID0gX19iOwogIHJlcy5hc19jaGFyWzRdID0gX19iOwogIHJlcy5hc19jaGFyWzVdID0gX19iOwogIHJlcy5hc19jaGFyWzZdID0gX19iOwogIHJlcy5hc19jaGFyWzddID0gX19iOwogIHJldHVybiAocmVzLmFzX202NCk7CiNlbmRpZgp9CgojZWxzZQojaW5jbHVkZV9uZXh0IDxtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIF9NTUlOVFJJTl9IX0lOQ0xVREVEICovCgBBZGRGb2xkZWRSYW5nZSByZWN1cnNlcyB0b28gbXVjaC4AQW55AFs6XnVwcGVyOl0AaW52YWxpZCBwZXJsIG9wZXJhdG9yAENoYWttYQBMYW8ATGF0aW4ATWFuaWNoYWVhbgBUYWdiYW53YQBUYWlfVmlldABZaQBaAENoZWNrICVzIGZhaWxlZDogJXMAdG9vIGZldyBsZXZlbHMgaW4gTmV4dCgpAG9wZXJhdG9yAG5ldwAtPQAvPQBnZQBzdGQAPScAVHJ5TG9jayBmYWlsZWQgAHMtPndhaXRwID09IG51bGxwdHIgfHwgcy0+d2FpdHAgPT0gd2FpdHAgfHwgcy0+c3VwcHJlc3NfZmF0YWxfZXJyb3JzAHB3LT5za2lwID09IG51bGxwdHIARUNEU0EgdmVyaWZpY2F0aW9uIEtBVCBmYWlsZWQuCgBOSVNUIFAtMjI0AGt5dGhlL3Byb3RvL2NvbW1vbi5wcm90bwBreXRoZS5wcm90by5jb21tb24uU3ltYm9sSW5mby5xdWFsaWZpZWRfbmFtZQBbXi1dLipcLihjfGkpAFteLV0uKlwuKHN8U3xzeCkAYy1oZWFkZXIALQAtbwAvKj09PS0tIF9fY2xhbmdfY3VkYV9saWJkZXZpY2VfZGVjbGFyZXMuaCAtIGRlY2xzIGZvciBsaWJkZXZpY2UgZnVuY3Rpb25zIC0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9MSUJERVZJQ0VfREVDTEFSRVNfSF9fCiNkZWZpbmUgX19DTEFOR19DVURBX0xJQkRFVklDRV9ERUNMQVJFU19IX18KCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQpleHRlcm4gIkMiIHsKI2VuZGlmCgojaWYgZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKQojZGVmaW5lIF9fREVWSUNFX18KI2VsaWYgZGVmaW5lZChfX0NVREFfXykKI2RlZmluZSBfX0RFVklDRV9fIF9fZGV2aWNlX18KI2VuZGlmCgpfX0RFVklDRV9fIGludCBfX252X2FicyhpbnQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9hY29zKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfYWNvc2YoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9hY29zaChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Fjb3NoZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2FzaW4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hc2luZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2FzaW5oKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfYXNpbmhmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfYXRhbjIoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hdGFuMmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2F0YW4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hdGFuZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2F0YW5oKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfYXRhbmhmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfYnJldihpbnQgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9icmV2bGwobG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfYnl0ZV9wZXJtKGludCBfX2EsIGludCBfX2IsIGludCBfX2MpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2NicnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9jYnJ0ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2NlaWwoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9jZWlsZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2NseihpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9jbHpsbChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9jb3B5c2lnbihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2NvcHlzaWduZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY29zKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfY29zZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Nvc2goZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9jb3NoZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Nvc3BpKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfY29zcGlmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY3lsX2Jlc3NlbF9pMChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2N5bF9iZXNzZWxfaTBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY3lsX2Jlc3NlbF9pMShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2N5bF9iZXNzZWxfaTFmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZGFkZF9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kYWRkX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RhZGRfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZGFkZF9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kZGl2X3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RkaXZfcm4oZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZGRpdl9ydShkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kZGl2X3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RtdWxfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZG11bF9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kbXVsX3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RtdWxfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9kb3VibGUyZmxvYXRfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9kb3VibGUyZmxvYXRfcm4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9kb3VibGUyZmxvYXRfcnUoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9kb3VibGUyZmxvYXRfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZG91YmxlMmhpaW50KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2RvdWJsZTJpbnRfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZG91YmxlMmludF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9kb3VibGUyaW50X3J1KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2RvdWJsZTJpbnRfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZG91YmxlMmxsX3JkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2RvdWJsZTJsbF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9kb3VibGUybGxfcnUoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZG91YmxlMmxsX3J6KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2RvdWJsZTJsb2ludChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9kb3VibGUydWludF9yZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9kb3VibGUydWludF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9kb3VibGUydWludF9ydShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9kb3VibGUydWludF9yeihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9kb3VibGUydWxsX3JkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX252X2RvdWJsZTJ1bGxfcm4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZG91YmxlMnVsbF9ydShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9kb3VibGUydWxsX3J6KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX252X2RvdWJsZV9hc19sb25nbG9uZyhkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kcmNwX3JkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RyY3Bfcm4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHJjcF9ydShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kcmNwX3J6KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzcXJ0X3JkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzcXJ0X3JuKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzcXJ0X3J1KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzcXJ0X3J6KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzdWJfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHN1Yl9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kc3ViX3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzdWJfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXJmYyhkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2VyZmNmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXJmY2ludihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2VyZmNpbnZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXJmY3goZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9lcmZjeGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9lcmYoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9lcmZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXJmaW52KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXJmaW52ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2V4cDEwKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXhwMTBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXhwMihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2V4cDJmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXhwKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXhwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2V4cG0xKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXhwbTFmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZmFicyhkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZhYnNmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYWRkX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZhZGRfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFkZF9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYWRkX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Zhc3RfY29zZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9leHAxMGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Zhc3RfZXhwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9mZGl2aWRlZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X2xvZzEwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9sb2cyZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9sb2dmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X3Bvd2YoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIHZvaWQgX19udl9mYXN0X3NpbmNvc2YoZmxvYXQgX19hLCBmbG9hdCAqX19zLCBmbG9hdCAqX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Zhc3Rfc2luZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF90YW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZmRpbShkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZkaW1mKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZkaXZfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmRpdl9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mZGl2X3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZkaXZfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X2ZmcyhpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mZnNsbChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9maW5pdGVmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgc2hvcnQgX19udl9mbG9hdDJoYWxmX3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZmxvYXQyaW50X3JkKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZmxvYXQyaW50X3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZmxvYXQyaW50X3J1KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZmxvYXQyaW50X3J6KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZmxvYXQybGxfcmQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9mbG9hdDJsbF9ybihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2Zsb2F0MmxsX3J1KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZmxvYXQybGxfcnooZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9mbG9hdDJ1aW50X3JkKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfZmxvYXQydWludF9ybihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2Zsb2F0MnVpbnRfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9mbG9hdDJ1aW50X3J6KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZmxvYXQydWxsX3JkKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZmxvYXQydWxsX3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZmxvYXQydWxsX3J1KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZmxvYXQydWxsX3J6KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZmxvYXRfYXNfaW50KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfZmxvYXRfYXNfdWludChmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Zsb29yKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmxvb3JmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1hKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfaWVlZV9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfaWVlZV9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfaWVlZV9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfaWVlZV9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYyk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbWFmX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1hX3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2ZtYV9ybihkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbWFfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1hX3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2ZtYXgoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbWF4ZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1pbihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtaW5mKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbW9kKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1vZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm11bF9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbXVsX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtdWxfcnUoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm11bF9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcmNwX3JkKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcmNwX3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcmNwX3J1KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcmNwX3J6KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZnJleHAoZG91YmxlIF9fYSwgaW50ICpfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnJleHBmKGZsb2F0IF9fYSwgaW50ICpfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnJzcXJ0X3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3FydF9yZChmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnNxcnRfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZzcXJ0X3J1KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3FydF9yeihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnN1Yl9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3ViX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZzdWJfcnUoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnN1Yl9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfaGFkZChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2hhbGYyZmxvYXQodW5zaWduZWQgc2hvcnQgX19oKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9oaWxvaW50MmRvdWJsZShpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9oeXBvdChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2h5cG90ZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfaWxvZ2IoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfaWxvZ2JmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfaW50MmRvdWJsZV9ybihpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ludDJmbG9hdF9yZChpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ludDJmbG9hdF9ybihpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ludDJmbG9hdF9ydShpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ludDJmbG9hdF9yeihpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ludF9hc19mbG9hdChpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9pc2Zpbml0ZWQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfaXNpbmZkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2lzaW5mZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2lzbmFuZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9pc25hbmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9qMChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2owZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2oxKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfajFmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9qbmYoaW50IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9qbihpbnQgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sZGV4cChkb3VibGUgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xkZXhwZihmbG9hdCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xnYW1tYShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xnYW1tYWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sbDJkb3VibGVfcmQobG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbGwyZG91YmxlX3JuKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xsMmRvdWJsZV9ydShsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sbDJkb3VibGVfcnoobG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9sbDJmbG9hdF9yZChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xsMmZsb2F0X3JuKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbGwyZmxvYXRfcnUobG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9sbDJmbG9hdF9yeihsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbGFicyhsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbG1heChsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbG1pbihsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbHJpbnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfbGxyaW50ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2xscm91bmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfbGxyb3VuZGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sb2cxMChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xvZzEwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xvZzFwKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbG9nMXBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbG9nMihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xvZzJmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbG9nYihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xvZ2JmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbG9nKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbG9nZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xvbmdsb25nX2FzX2RvdWJsZShsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9tYXgoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfbWluKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X21vZGYoZG91YmxlIF9fYSwgZG91YmxlICpfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbW9kZmYoZmxvYXQgX19hLCBmbG9hdCAqX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9tdWwyNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9tdWw2NGhpKGxvbmcgbG9uZyBfX2EsIGxvbmcgbG9uZyBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X211bGhpKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X25hbihjb25zdCBzaWduZWQgY2hhciAqX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X25hbmYoY29uc3Qgc2lnbmVkIGNoYXIgKl9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbmVhcmJ5aW50KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbmVhcmJ5aW50ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X25leHRhZnRlcihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X25leHRhZnRlcmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X25vcm0zZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X25vcm0zZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbm9ybTRkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsIGRvdWJsZSBfX2QpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbm9ybTRkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jLCBmbG9hdCBfX2QpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X25vcm1jZGYoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ub3JtY2RmZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X25vcm1jZGZpbnYoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ub3JtY2RmaW52ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbm9ybWYoaW50IF9fYSwgY29uc3QgZmxvYXQgKl9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbm9ybShpbnQgX19hLCBjb25zdCBkb3VibGUgKl9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfcG9wYyhpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9wb3BjbGwobG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcG93KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcG93ZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcG93aShkb3VibGUgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3Bvd2lmKGZsb2F0IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcmNicnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yY2JydGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yY3A2NGgoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcmVtYWluZGVyKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcmVtYWluZGVyZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcmVtcXVvKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGludCAqX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3JlbXF1b2YoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGludCAqX19jKTsKX19ERVZJQ0VfXyBpbnQgX19udl9yaGFkZChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yaHlwb3QoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yaHlwb3RmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yaW50KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcmludGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9ybm9ybTNkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcm5vcm0zZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcm5vcm00ZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jLCBkb3VibGUgX19kKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3Jub3JtNGRmKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MsIGZsb2F0IF9fZCk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ybm9ybWYoaW50IF9fYSwgY29uc3QgZmxvYXQgKl9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcm5vcm0oaW50IF9fYSwgY29uc3QgZG91YmxlICpfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3JvdW5kKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcm91bmRmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcnNxcnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yc3FydGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9zYWQoaW50IF9fYSwgaW50IF9fYiwgaW50IF9fYyk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9zYXR1cmF0ZWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9zY2FsYm4oZG91YmxlIF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9zY2FsYm5mKGZsb2F0IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfc2lnbmJpdGQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfc2lnbmJpdGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB2b2lkIF9fbnZfc2luY29zKGRvdWJsZSBfX2EsIGRvdWJsZSAqX19iLCBkb3VibGUgKl9fYyk7Cl9fREVWSUNFX18gdm9pZCBfX252X3NpbmNvc2YoZmxvYXQgX19hLCBmbG9hdCAqX19iLCBmbG9hdCAqX19jKTsKX19ERVZJQ0VfXyB2b2lkIF9fbnZfc2luY29zcGkoZG91YmxlIF9fYSwgZG91YmxlICpfX2IsIGRvdWJsZSAqX19jKTsKX19ERVZJQ0VfXyB2b2lkIF9fbnZfc2luY29zcGlmKGZsb2F0IF9fYSwgZmxvYXQgKl9fYiwgZmxvYXQgKl9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfc2luKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfc2luZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3NpbmgoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9zaW5oZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3NpbnBpKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfc2lucGlmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfc3FydChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3NxcnRmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdGFuKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdGFuZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3RhbmgoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl90YW5oZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3RnYW1tYShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3RnYW1tYWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl90cnVuYyhkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3RydW5jZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3VoYWRkKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3VpbnQyZG91YmxlX3JuKHVuc2lnbmVkIGludCBfX2kpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWludDJmbG9hdF9yZCh1bnNpZ25lZCBpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VpbnQyZmxvYXRfcm4odW5zaWduZWQgaW50IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl91aW50MmZsb2F0X3J1KHVuc2lnbmVkIGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWludDJmbG9hdF9yeih1bnNpZ25lZCBpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VpbnRfYXNfZmxvYXQodW5zaWduZWQgaW50IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdWxsMmRvdWJsZV9yZCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl91bGwyZG91YmxlX3JuKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3VsbDJkb3VibGVfcnUodW5zaWduZWQgbG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdWxsMmRvdWJsZV9yeih1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VsbDJmbG9hdF9yZCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VsbDJmbG9hdF9ybih1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VsbDJmbG9hdF9ydSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VsbDJmbG9hdF9yeih1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl91bGxtYXgodW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfdWxsbWluKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X3VtYXgodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfdW1pbih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl91bXVsMjQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfdW11bDY0aGkodW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl91bXVsaGkodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfdXJoYWRkKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X3VzYWQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpOwojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAgJiYgQ1VEQV9WRVJTSU9OIDwgOTAyMApfX0RFVklDRV9fIGludCBfX252X3ZhYnMyKGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZhYnM0KGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZhYnNkaWZmczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFic2RpZmZzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWJzZGlmZnUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhYnNkaWZmdTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFic3NzMihpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWJzc3M0KGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZhZGQyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhZGQ0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhZGRzczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFkZHNzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWRkdXMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhZGR1czQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmF2Z3MyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhdmdzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YXZndTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmF2Z3U0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBlcTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmNtcGVxNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ2VzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ2VzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ2V1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ2V1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ3RzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ3RzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ3R1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZ3R1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbGVzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbGVzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbGV1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbGV1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbHRzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbHRzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbHR1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbHR1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wbmUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBuZTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmhhZGR1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92aGFkZHU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtYXhzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bWF4czQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm1heHUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtYXh1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bWluczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm1pbnM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtaW51MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bWludTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm5lZzIoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdm5lZzQoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdm5lZ3NzMihpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bmVnc3M0KGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZzYWRzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2FkczQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNhZHUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzYWR1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0ZXEyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzZXRlcTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGdlczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGdlczQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGdldTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGdldTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGd0czIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGd0czQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGd0dTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGd0dTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGxlczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGxlczQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGxldTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGxldTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGx0czIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGx0czQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGx0dTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGx0dTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldG5lMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bmU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzdWIyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzdWI0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzdWJzczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnN1YnNzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c3VidXMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzdWJ1czQoaW50IF9fYSwgaW50IF9fYik7CiNlbmRpZiAgLy8gQ1VEQV9WRVJTSU9OCl9fREVWSUNFX18gZG91YmxlIF9fbnZfeTAoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl95MGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl95MShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3kxZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfeW5mKGludCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfeW4oaW50IF9fYSwgZG91YmxlIF9fYik7CiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCiNlbmRpZiAvLyBfX0NMQU5HX0NVREFfTElCREVWSUNFX0RFQ0xBUkVTX0hfXwoAYXZ4NTEyYmYxNmludHJpbi5oAGF2eDUxMmZpbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNsemVyb2ludHJpbi5oIC0gQ0xaRVJPIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8Y2x6ZXJvaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0NMWkVST0lOVFJJTl9ICiNkZWZpbmUgX19DTFpFUk9JTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygiY2x6ZXJvIikpKQoKLy8vIExvYWRzIHRoZSBjYWNoZSBsaW5lIGFkZHJlc3MgYW5kIHplcm8ncyBvdXQgdGhlIGNhY2hlbGluZQovLy8KLy8vIFxoZWFkZXJmaWxlIDxjbHplcm9pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENMWkVSTyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2xpbmUKLy8vICAgIEEgcG9pbnRlciB0byBhIGNhY2hlbGluZSB3aGljaCBuZWVkcyB0byBiZSB6ZXJvZWQgb3V0LgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2x6ZXJvICh2b2lkICogX19saW5lKQp7CiAgX19idWlsdGluX2lhMzJfY2x6ZXJvICgodm9pZCAqKV9fbGluZSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX0NMWkVST0lOVFJJTl9IICovCgBlbW1pbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLS0tLS0tIGtleWxvY2tlcmludHJpbi5oIC0gS0wgSW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KICogVEhFIFNPRlRXQVJFLgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxrZXlsb2NrZXJpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9LRVlMT0NLRVJJTlRSSU5fSAojZGVmaW5lIF9LRVlMT0NLRVJJTlRSSU5fSAoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19LTF9fKQoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJrbCIpLFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCi8vLyBMb2FkIGludGVybmFsIHdyYXBwaW5nIGtleSBmcm9tIF9faW50a2V5LCBfX2Vua2V5X2xvIGFuZCBfX2Vua2V5X2hpLiBfX2N0bAovLy8gd2lsbCBhc3NpZ25lZCB0byBFQVgsIHdoY2ggc3BlY2lmaWVzIHRoZSBLZXlTb3VyY2UgYW5kIHdoZXRoZXIgYmFja2luZyB1cAovLy8gdGhlIGtleSBpcyBwZXJtaXR0ZWQuIFRoZSAyNTYtYml0IGVuY3J5cHRpb24ga2V5IGlzIGxvYWRlZCBmcm9tIHRoZSB0d28KLy8vIGV4cGxpY2l0IG9wZXJhbmRzIChfX2Vua2V5X2xvIGFuZCBfX2Vua2V5X2hpKS4gVGhlIDEyOC1iaXQgaW50ZWdyaXR5IGtleSBpcwovLy8gbG9hZGVkIGZyb20gdGhlIGltcGxpY2l0IG9wZXJhbmQgWE1NMCB3aGljaCBhc3NpZ25lZCBieSBfX2ludGtleS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBMT0FESVdLRVkgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSUYgQ1BMID4gMCAvLyBMT0FES1dLRVkgb25seSBhbGxvd2VkIGF0IHJpbmcgMCAoc3VwZXJ2aXNvciBtb2RlKQovLy8gICBHUCAoMCkKLy8vIEZJCi8vLyBJRiDigJxMT0FESVdLRVkgZXhpdGluZ+KAnSBWTSBleGVjdXRpb24gY29udHJvbCBzZXQKLy8vICAgVk1leGl0Ci8vLyBGSQovLy8gSUYgX19jdGxbNDoxXSA+IDEgLy8gUmVzZXJ2ZWQgS2V5U291cmNlIGVuY29kaW5nIHVzZWQKLy8vICAgR1AgKDApCi8vLyBGSQovLy8gSUYgX19jdGxbMzE6NV0gIT0gMCAvLyBSZXNlcnZlZCBiaXQgaW4gX19jdGwgaXMgc2V0Ci8vLyAgIEdQICgwKQovLy8gRkkKLy8vIElGIF9fY3RsWzBdIEFORCAoQ1BVSUQuMTlILkVDWFswXSA9PSAwKSAvLyBOb0JhY2t1cCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGFydAovLy8gICBHUCAoMCkKLy8vIEZJCi8vLyBJRiAoX19jdGxbNDoxXSA9PSAxKSBBTkQgKENQVUlELjE5SC5FQ1hbMV0gPT0gMCkgLy8gS2V5U291cmNlIG9mIDEgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBhcnQKLy8vICAgR1AgKDApCi8vLyBGSQovLy8gSUYgKF9fY3RsWzQ6MV0gPT0gMCkgLy8gS2V5U291cmNlIG9mIDAuCi8vLyAgIElXS2V5LkVuY3J5cHRpb24gS2V5WzEyNzowXSA6PSBfX2Vua2V5X2hpWzEyNzowXToKLy8vICAgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMjU1OjEyOF0gOj0gX19lbmtleV9sb1sxMjc6MF0KLy8vICAgSVdLZXkuSW50ZWdyaXR5S2V5WzEyNzowXSA6PSBfX2ludGtleVsxMjc6MF0KLy8vICAgSVdLZXkuTm9CYWNrdXAgOj0gX19jdGxbMF0KLy8vICAgSVdLZXkuS2V5U291cmNlIDo9IF9fY3RsWzQ6MV0KLy8vICAgWkYgOj0gMAovLy8gRUxTRSAvLyBLZXlTb3VyY2Ugb2YgMS4gU2VlIFJEU0VFRCBkZWZpbml0aW9uIGZvciBkZXRhaWxzIG9mIHJhbmRvbW5lc3MKLy8vICAgSUYgSFdfTlJORF9HRU4ucmVhZHkgPT0gMSAvLyBGdWxsLWVudHJvcHkgcmFuZG9tIGRhdGEgZnJvbSBSRFNFRUQgd2FzIHJlY2VpdmVkCi8vLyAgICAgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMTI3OjBdIDo9IF9fZW5rZXlfaGlbMTI3OjBdIFhPUiBIV19OUk5EX0dFTi5kYXRhWzEyNzowXQovLy8gICAgIElXS2V5LkVuY3J5cHRpb24gS2V5WzI1NToxMjhdIDo9IF9fZW5rZXlfbG9bMTI3OjBdIFhPUiBIV19OUk5EX0dFTi5kYXRhWzI1NToxMjhdCi8vLyAgICAgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMjU1OjBdIDo9IF9fZW5rZXlfaGlbMTI3OjBdOl9fZW5rZXlfbG9bMTI3OjBdIFhPUiBIV19OUk5EX0dFTi5kYXRhWzI1NTowXQovLy8gICAgIElXS2V5LkludGVncml0eUtleVsxMjc6MF0gOj0gX19pbnRrZXlbMTI3OjBdIFhPUiBIV19OUk5EX0dFTi5kYXRhWzM4MzoyNTZdCi8vLyAgICAgSVdLZXkuTm9CYWNrdXAgOj0gX19jdGxbMF0KLy8vICAgICBJV0tleS5LZXlTb3VyY2UgOj0gX19jdGxbNDoxXQovLy8gICAgIFpGIDo9IDAKLy8vICAgRUxTRSAvLyBSYW5kb20gZGF0YSB3YXMgbm90IHJldHVybmVkIGZyb20gUkRTRUVELiBJV0tleSB3YXMgbm90IGxvYWRlZAovLy8gICAgIFpGIDo9IDEKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRpd2tleSAodW5zaWduZWQgaW50IF9fY3RsLCBfX20xMjhpIF9faW50a2V5LAogICAgICAgICAgICAgICBfX20xMjhpIF9fZW5rZXlfbG8sIF9fbTEyOGkgX19lbmtleV9oaSkgewogIF9fYnVpbHRpbl9pYTMyX2xvYWRpd2tleSAoX19pbnRrZXksIF9fZW5rZXlfbG8sIF9fZW5rZXlfaGksIF9fY3RsKTsKfQoKLy8vIFdyYXAgYSAxMjgtYml0IEFFUyBrZXkgZnJvbSBfX2tleSBpbnRvIGEga2V5IGhhbmRsZSBhbmQgb3V0cHV0IGluCi8vLyAoKF9fbTEyOGkqKV9faCkgdG8gKChfX20xMjhpKilfX2gpICsgNSAgYW5kIGEgMzItYml0IHZhbHVlIGFzIHJldHVybi4KLy8vIFRoZSBleHBsaWNpdCBzb3VyY2Ugb3BlcmFuZCBfX2h0eXBlIHNwZWNpZmllcyBoYW5kbGUgcmVzdHJpY3Rpb25zLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEVOQ09ERUtFWTEyOCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBJbnB1dEtleVsxMjc6MF0gOj0gX19rZXlbMTI3OjBdCi8vLyBLZXlNZXRhZGF0YVsyOjBdIDo9IF9faHR5cGVbMjowXQovLy8gS2V5TWV0YWRhdGFbMjM6M10gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBLZXlNZXRhZGF0YVsyNzoyNF0gOj0gMCAvLyBLZXlUeXBlIGlzIEFFUy0xMjggKHZhbHVlIG9mIDApCi8vLyBLZXlNZXRhZGF0YVsxMjc6MjhdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gSGFuZGxlWzM4MzowXSA6PSBXcmFwS2V5MTI4KElucHV0S2V5WzEyNzowXSwgS2V5TWV0YWRhdGFbMTI3OjBdLAovLy8gICAgICAgICAgICAgICAgICBJV0tleS5JbnRlZ3JpdHkgS2V5WzEyNzowXSwgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMjU1OjBdKQovLy8gZHN0WzBdIDo9IElXS2V5Lk5vQmFja3VwCi8vLyBkc3RbNDoxXSA6PSBJV0tleS5LZXlTb3VyY2VbMzowXQovLy8gZHN0WzMxOjVdIDo9IDAKLy8vIE1FTVtfX2grMTI3Ol9faF0gOj0gSGFuZGxlWzEyNzowXSAgIC8vIEFBRAovLy8gTUVNW19faCsyNTU6X19oKzEyOF0gOj0gSGFuZGxlWzI1NToxMjhdIC8vIEludGVncml0eSBUYWcKLy8vIE1FTVtfX2grMzgzOl9faCsyNTZdIDo9IEhhbmRsZVszODM6MjU2XSAvLyBDaXBoZXJUZXh0Ci8vLyBNRU1bX19oKzUxMTpfX2grMzg0XSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIE1FTVtfX2grNjM5Ol9faCs1MTJdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gTUVNW19faCs3Njc6X19oKzY0MF0gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBaRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2VuY29kZWtleTEyOF91MzIodW5zaWduZWQgaW50IF9faHR5cGUsIF9fbTEyOGkgX19rZXksIHZvaWQgKl9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9lbmNvZGVrZXkxMjhfdTMyKF9faHR5cGUsIChfX3YyZGkpX19rZXksIF9faCk7Cn0KCi8vLyBXcmFwIGEgMjU2LWJpdCBBRVMga2V5IGZyb20gX19rZXlfaGk6X19rZXlfbG8gaW50byBhIGtleSBoYW5kbGUsIHRoZW4KLy8vIG91dHB1dCBoYW5kbGUgaW4gKChfX20xMjhpKilfX2gpIHRvICgoX19tMTI4aSopX19oKSArIDYgYW5kCi8vLyBhIDMyLWJpdCB2YWx1ZSBhcyByZXR1cm4uCi8vLyBUaGUgZXhwbGljaXQgc291cmNlIG9wZXJhbmQgX19odHlwZSBzcGVjaWZpZXMgaGFuZGxlIHJlc3RyaWN0aW9ucy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFTkNPREVLRVkyNTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSW5wdXRLZXlbMTI3OjBdIDo9IF9fa2V5X2xvWzEyNzowXQovLy8gSW5wdXRLZXlbMjU1OjEyOF0gOj0gX19rZXlfaGlbMjU1OjEyOF0KLy8vIEtleU1ldGFkYXRhWzI6MF0gOj0gX19odHlwZVsyOjBdCi8vLyBLZXlNZXRhZGF0YVsyMzozXSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIEtleU1ldGFkYXRhWzI3OjI0XSA6PSAxIC8vIEtleVR5cGUgaXMgQUVTLTI1NiAodmFsdWUgb2YgMSkKLy8vIEtleU1ldGFkYXRhWzEyNzoyOF0gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBIYW5kbGVbNTExOjBdIDo9IFdyYXBLZXkyNTYoSW5wdXRLZXlbMjU1OjBdLCBLZXlNZXRhZGF0YVsxMjc6MF0sCi8vLyAgICAgICAgICAgICAgICAgIElXS2V5LkludGVncml0eSBLZXlbMTI3OjBdLCBJV0tleS5FbmNyeXB0aW9uIEtleVsyNTU6MF0pCi8vLyBkc3RbMF0gOj0gSVdLZXkuTm9CYWNrdXAKLy8vIGRzdFs0OjFdIDo9IElXS2V5LktleVNvdXJjZVszOjBdCi8vLyBkc3RbMzE6NV0gOj0gMAovLy8gTUVNW19faCsxMjc6X19oXSAgIDo9IEhhbmRsZVsxMjc6MF0gLy8gQUFECi8vLyBNRU1bX19oKzI1NTpfX2grMTI4XSA6PSBIYW5kbGVbMjU1OjEyOF0gLy8gVGFnCi8vLyBNRU1bX19oKzM4MzpfX2grMjU2XSA6PSBIYW5kbGVbMzgzOjI1Nl0gLy8gQ2lwaGVyVGV4dFsxMjc6MF0KLy8vIE1FTVtfX2grNTExOl9faCszODRdIDo9IEhhbmRsZVs1MTE6Mzg0XSAvLyBDaXBoZXJUZXh0WzI1NToxMjhdCi8vLyBNRU1bX19oKzYzOTpfX2grNTEyXSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIE1FTVtfX2grNzY3Ol9faCs2NDBdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gTUVNW19faCs4OTU6X19oKzc2OF0gOj0gMCBJbnRlZ3JpdHkvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBaRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2VuY29kZWtleTI1Nl91MzIodW5zaWduZWQgaW50IF9faHR5cGUsIF9fbTEyOGkgX19rZXlfbG8sIF9fbTEyOGkgX19rZXlfaGksCiAgICAgICAgICAgICAgICAgICAgIHZvaWQgKl9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9lbmNvZGVrZXkyNTZfdTMyKF9faHR5cGUsIChfX3YyZGkpX19rZXlfbG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX2tleV9oaSwgX19oKTsKfQoKLy8vIFRoZSBBRVNFTkMxMjhLTCBwZXJmb3JtcyAxMCByb3VuZHMgb2YgQUVTIHRvIGVuY3J5cHQgdGhlIF9faWRhdGEgdXNpbmcKLy8vIHRoZSAxMjgtYml0IGtleSBpbiB0aGUgaGFuZGxlIGZyb20gdGhlIF9faC4gSXQgc3RvcmVzIHRoZSByZXN1bHQgaW4gdGhlCi8vLyBfX29kYXRhLiBBbmQgcmV0dXJuIHRoZSBhZmZlY3RlZCBaRiBmbGFnIHN0YXR1cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBRVNFTkMxMjhLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbMzgzOjBdIDo9IE1FTVtfX2grMzgzOl9faF0gLy8gTG9hZCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBhdG9taWMuCi8vLyBJbGxlZ2FsSGFuZGxlIDo9ICggSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVszODM6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVbMzgzOjI1Nl0gfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbMzgzOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMTI4ICkKLy8vIElGIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyBFTFNFCi8vLyAgIChVbndyYXBwZWRLZXksIEF1dGhlbnRpYykgOj0gVW53cmFwS2V5QW5kQXV0aGVudGljYXRlMzg0IChIYW5kbGVbMzgzOjBdLCBJV0tleSkKLy8vICAgSUYgKEF1dGhlbnRpYyA9PSAwKQovLy8gICAgIFpGIDo9IDEKLy8vICAgRUxTRQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSBBRVMxMjhFbmNyeXB0IChfX2lkYXRhWzEyNzowXSwgVW53cmFwcGVkS2V5KQovLy8gICAgIFpGIDo9IDAKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2VuYzEyOGtsX3U4KF9fbTEyOGkqIF9fb2RhdGEsIF9fbTEyOGkgX19pZGF0YSwgY29uc3Qgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2Flc2VuYzEyOGtsX3U4KChfX3YyZGkgKilfX29kYXRhLCAoX192MmRpKV9faWRhdGEsIF9faCk7Cn0KCi8vLyBUaGUgQUVTRU5DMjU2S0wgcGVyZm9ybXMgMTQgcm91bmRzIG9mIEFFUyB0byBlbmNyeXB0IHRoZSBfX2lkYXRhIHVzaW5nCi8vLyB0aGUgMjU2LWJpdCBrZXkgaW4gdGhlIGhhbmRsZSBmcm9tIHRoZSBfX2guIEl0IHN0b3JlcyB0aGUgcmVzdWx0IGluIHRoZQovLy8gX19vZGF0YS4gQW5kIHJldHVybiB0aGUgYWZmZWN0ZWQgWkYgZmxhZyBzdGF0dXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQUVTRU5DMjU2S0wgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSGFuZGxlWzUxMTowXSA6PSBNRU1bX19oKzUxMTpfX2hdIC8vIExvYWQgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYXRvbWljLgovLy8gSWxsZWdhbEhhbmRsZSA6PSAoIEhhbmRsZVJlc2VydmVkQml0U2V0IChIYW5kbGVbNTExOjBdKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlWzI1NToxMjhdIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlS2V5VHlwZSAoSGFuZGxlWzUxMTowXSkgIT0gSEFORExFX0tFWV9UWVBFX0FFUzI1NiApCi8vLyBJRiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gMAovLy8gRUxTRQovLy8gICAoVW53cmFwcGVkS2V5LCBBdXRoZW50aWMpIDo9IFVud3JhcEtleUFuZEF1dGhlbnRpY2F0ZTUxMiAoSGFuZGxlWzUxMTowXSwgSVdLZXkpCi8vLyAgIElGIChBdXRoZW50aWMgPT0gMCkKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IDAKLy8vICAgRUxTRQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSBBRVMyNTZFbmNyeXB0IChfX2lkYXRhWzEyNzowXSwgVW53cmFwcGVkS2V5KQovLy8gICAgIFpGIDo9IDAKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2VuYzI1NmtsX3U4KF9fbTEyOGkqIF9fb2RhdGEsIF9fbTEyOGkgX19pZGF0YSwgY29uc3Qgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2Flc2VuYzI1NmtsX3U4KChfX3YyZGkgKilfX29kYXRhLCAoX192MmRpKV9faWRhdGEsIF9faCk7Cn0KCi8vLyBUaGUgQUVTREVDMTI4S0wgcGVyZm9ybXMgMTAgcm91bmRzIG9mIEFFUyB0byBkZWNyeXB0IHRoZSBfX2lkYXRhIHVzaW5nCi8vLyB0aGUgMTI4LWJpdCBrZXkgaW4gdGhlIGhhbmRsZSBmcm9tIHRoZSBfX2guIEl0IHN0b3JlcyB0aGUgcmVzdWx0IGluIHRoZQovLy8gX19vZGF0YS4gQW5kIHJldHVybiB0aGUgYWZmZWN0ZWQgWkYgZmxhZyBzdGF0dXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQUVTREVDMTI4S0wgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSGFuZGxlWzM4MzowXSA6PSBNRU1bX19oKzM4MzpfX2hdIC8vIExvYWQgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYXRvbWljLgovLy8gSWxsZWdhbEhhbmRsZSA6PSAoSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVszODM6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgIEhhbmRsZVszODM6MjU2XSB8fAovLy8gICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbMzgzOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMTI4KQovLy8gSUYgKElsbGVnYWxIYW5kbGUpCi8vLyAgIFpGIDo9IDEKLy8vICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IDAKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGUzODQgKEhhbmRsZVszODM6MF0sIElXS2V5KQovLy8gICBJRiAoQXV0aGVudGljID09IDApCi8vLyAgICAgWkYgOj0gMQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSAwCi8vLyAgIEVMU0UKLy8vICAgICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gQUVTMTI4RGVjcnlwdCAoX19pZGF0YVsxMjc6MF0sIFVud3JhcHBlZEtleSkKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNkZWMxMjhrbF91OChfX20xMjhpKiBfX29kYXRhLCBfX20xMjhpIF9faWRhdGEsIGNvbnN0IHZvaWQgKl9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNkZWMxMjhrbF91OCgoX192MmRpICopX19vZGF0YSwgKF9fdjJkaSlfX2lkYXRhLCBfX2gpOwp9CgovLy8gVGhlIEFFU0RFQzI1NktMIHBlcmZvcm1zIDEwIHJvdW5kcyBvZiBBRVMgdG8gZGVjcnlwdCB0aGUgX19pZGF0YSB1c2luZwovLy8gdGhlIDI1Ni1iaXQga2V5IGluIHRoZSBoYW5kbGUgZnJvbSB0aGUgX19oLiBJdCBzdG9yZXMgdGhlIHJlc3VsdCBpbiB0aGUKLy8vIF9fb2RhdGEuIEFuZCByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0RFQzI1NktMIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEhhbmRsZVs1MTE6MF0gOj0gTUVNW19faCs1MTE6X19oXQovLy8gSWxsZWdhbEhhbmRsZSA6PSAoSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVs1MTE6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAoSGFuZGxlWzEyNzowXSBBTkQgKENQTCA+IDApKSB8fAovLy8gICAgICAgICAgICAgICAgICAgSGFuZGxlWzM4MzoyNTZdIHx8Ci8vLyAgICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbNTExOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMjU2KQovLy8gSUYgKElsbGVnYWxIYW5kbGUpCi8vLyAgIFpGIDo9IDEKLy8vICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IDAKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGU1MTIgKEhhbmRsZVs1MTE6MF0sIElXS2V5KQovLy8gICBJRiAoQXV0aGVudGljID09IDApCi8vLyAgICAgWkYgOj0gMQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSAwCi8vLyAgIEVMU0UKLy8vICAgICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gQUVTMjU2RGVjcnlwdCAoX19pZGF0YVsxMjc6MF0sIFVud3JhcHBlZEtleSkKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNkZWMyNTZrbF91OChfX20xMjhpKiBfX29kYXRhLCBfX20xMjhpIF9faWRhdGEsIGNvbnN0IHZvaWQgKl9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNkZWMyNTZrbF91OCgoX192MmRpICopX19vZGF0YSwgKF9fdjJkaSlfX2lkYXRhLCBfX2gpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIFwKICAgICAgICAgIHx8IGRlZmluZWQoX19LTF9fKSAqLwoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19XSURFS0xfXykKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygia2wsd2lkZWtsIiksXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIEVuY3J5cHQgX19pZGF0YVswXSB0byBfX2lkYXRhWzddIHVzaW5nIDEyOC1iaXQgQUVTIGtleSBpbmRpY2F0ZWQgYnkgaGFuZGxlCi8vLyBhdCBfX2ggYW5kIHN0b3JlIGVhY2ggcmVzdWx0YW50IGJsb2NrIGJhY2sgZnJvbSBfX29kYXRhIHRvIF9fb2RhdGErNy4gQW5kCi8vLyByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0VOQ1dJREUxMjhLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGUgOj0gTUVNW19faCszODM6X19oXQovLy8gSWxsZWdhbEhhbmRsZSA6PSAoIEhhbmRsZVJlc2VydmVkQml0U2V0IChIYW5kbGVbMzgzOjBdKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlWzI1NToxMjhdIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlS2V5VHlwZSAoSGFuZGxlWzM4MzowXSkgIT0gSEFORExFX0tFWV9UWVBFX0FFUzEyOCApCi8vLyBJRiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgRU5ERk9SCi8vLyBFTFNFCi8vLyAgIChVbndyYXBwZWRLZXksIEF1dGhlbnRpYykgOj0gVW53cmFwS2V5QW5kQXV0aGVudGljYXRlMzg0IChIYW5kbGVbMzgzOjBdLCBJV0tleSkKLy8vICAgSUYgQXV0aGVudGljID09IDAKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgICBFTkRGT1IKLy8vICAgRUxTRQovLy8gICAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgICAgX19vZGF0YVtpXSA6PSBBRVMxMjhFbmNyeXB0IChfX2lkYXRhW2ldLCBVbndyYXBwZWRLZXkpCi8vLyAgICAgRU5ERk9SCi8vLyAgICAgWkYgOj0gMAovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZW5jd2lkZTEyOGtsX3U4KF9fbTEyOGkgX19vZGF0YVs4XSwgY29uc3QgX19tMTI4aSBfX2lkYXRhWzhdLCBjb25zdCB2b2lkKiBfX2gpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWVzZW5jd2lkZTEyOGtsX3U4KChfX3YyZGkgKilfX29kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IF9fdjJkaSAqKV9faWRhdGEsIF9faCk7Cn0KCi8vLyBFbmNyeXB0IF9faWRhdGFbMF0gdG8gX19pZGF0YVs3XSB1c2luZyAyNTYtYml0IEFFUyBrZXkgaW5kaWNhdGVkIGJ5IGhhbmRsZQovLy8gYXQgX19oIGFuZCBzdG9yZSBlYWNoIHJlc3VsdGFudCBibG9jayBiYWNrIGZyb20gX19vZGF0YSB0byBfX29kYXRhKzcuIEFuZAovLy8gcmV0dXJuIHRoZSBhZmZlY3RlZCBaRiBmbGFnIHN0YXR1cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBRVNFTkNXSURFMjU2S0wgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSGFuZGxlWzUxMTowXSA6PSBNRU1bX19oKzUxMTpfX2hdCi8vLyBJbGxlZ2FsSGFuZGxlIDo9ICggSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVs1MTE6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVbMjU1OjEyOF0gfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbNTExOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTNTEyICkKLy8vIElGIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICBFTkRGT1IKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGU1MTIgKEhhbmRsZVs1MTE6MF0sIElXS2V5KQovLy8gICBJRiBBdXRoZW50aWMgPT0gMAovLy8gICAgIFpGIDo9IDEKLy8vICAgICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICAgIEVOREZPUgovLy8gICBFTFNFCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IEFFUzI1NkVuY3J5cHQgKF9faWRhdGFbaV0sIFVud3JhcHBlZEtleSkKLy8vICAgICBFTkRGT1IKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNlbmN3aWRlMjU2a2xfdTgoX19tMTI4aSBfX29kYXRhWzhdLCBjb25zdCBfX20xMjhpIF9faWRhdGFbOF0sIGNvbnN0IHZvaWQqIF9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNlbmN3aWRlMjU2a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgX192MmRpICopX19pZGF0YSwgX19oKTsKfQoKLy8vIERlY3J5cHQgX19pZGF0YVswXSB0byBfX2lkYXRhWzddIHVzaW5nIDEyOC1iaXQgQUVTIGtleSBpbmRpY2F0ZWQgYnkgaGFuZGxlCi8vLyBhdCBfX2ggYW5kIHN0b3JlIGVhY2ggcmVzdWx0YW50IGJsb2NrIGJhY2sgZnJvbSBfX29kYXRhIHRvIF9fb2RhdGErNy4gQW5kCi8vLyByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0RFQ1dJREUxMjhLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbMzgzOjBdIDo9IE1FTVtfX2grMzgzOl9faF0KLy8vIElsbGVnYWxIYW5kbGUgOj0gKCBIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzM4MzowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICAoSGFuZGxlWzEyNzowXSBBTkQgKENQTCA+IDApKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZVsyNTU6MTI4XSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZSkgIT0gSEFORExFX0tFWV9UWVBFX0FFUzEyOCApCi8vLyBJRiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgRU5ERk9SCi8vLyBFTFNFCi8vLyAgIChVbndyYXBwZWRLZXksIEF1dGhlbnRpYykgOj0gVW53cmFwS2V5QW5kQXV0aGVudGljYXRlMzg0IChIYW5kbGVbMzgzOjBdLCBJV0tleSkKLy8vICAgSUYgQXV0aGVudGljID09IDAKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgICBFTkRGT1IKLy8vICAgRUxTRQovLy8gICAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgICAgX19vZGF0YVtpXSA6PSBBRVMxMjhEZWNyeXB0IChfX2lkYXRhW2ldLCBVbndyYXBwZWRLZXkpCi8vLyAgICAgRU5ERk9SCi8vLyAgICAgWkYgOj0gMAovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZGVjd2lkZTEyOGtsX3U4KF9fbTEyOGkgX19vZGF0YVs4XSwgY29uc3QgX19tMTI4aSBfX2lkYXRhWzhdLCBjb25zdCB2b2lkKiBfX2gpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWVzZGVjd2lkZTEyOGtsX3U4KChfX3YyZGkgKilfX29kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IF9fdjJkaSAqKV9faWRhdGEsIF9faCk7Cn0KCi8vLyBEZWNyeXB0IF9faWRhdGFbMF0gdG8gX19pZGF0YVs3XSB1c2luZyAyNTYtYml0IEFFUyBrZXkgaW5kaWNhdGVkIGJ5IGhhbmRsZQovLy8gYXQgX19oIGFuZCBzdG9yZSBlYWNoIHJlc3VsdGFudCBibG9jayBiYWNrIGZyb20gX19vZGF0YSB0byBfX29kYXRhKzcuIEFuZAovLy8gcmV0dXJuIHRoZSBhZmZlY3RlZCBaRiBmbGFnIHN0YXR1cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBRVNERUNXSURFMjU2S0wgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSGFuZGxlWzUxMTowXSA6PSBNRU1bX19oKzUxMTpfX2hdCi8vLyBJbGxlZ2FsSGFuZGxlID0gKCBIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzUxMTowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgICBIYW5kbGVbMjU1OjEyOF0gfHwKLy8vICAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZSkgIT0gSEFORExFX0tFWV9UWVBFX0FFUzUxMiApCi8vLyBJZiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgRU5ERk9SCi8vLyBFTFNFCi8vLyAgIChVbndyYXBwZWRLZXksIEF1dGhlbnRpYykgOj0gVW53cmFwS2V5QW5kQXV0aGVudGljYXRlNTEyIChIYW5kbGVbNTExOjBdLCBJV0tleSkKLy8vICAgSUYgQXV0aGVudGljID09IDAKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IDAKLy8vICAgICBFTkRGT1IKLy8vICAgRUxTRQovLy8gICAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgICAgX19vZGF0YVtpXSA6PSBBRVMyNTZEZWNyeXB0IChfX2lkYXRhW2ldLCBVbndyYXBwZWRLZXkpCi8vLyAgICAgRU5ERk9SCi8vLyAgICAgWkYgOj0gMAovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZGVjd2lkZTI1NmtsX3U4KF9fbTEyOGkgX19vZGF0YVs4XSwgY29uc3QgX19tMTI4aSBfX2lkYXRhWzhdLCBjb25zdCB2b2lkKiBfX2gpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWVzZGVjd2lkZTI1NmtsX3U4KChfX3YyZGkgKilfX29kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IF9fdjJkaSAqKV9faWRhdGEsIF9faCk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgXAogICAgICAgICAgfHwgZGVmaW5lZChfX1dJREVLTF9fKSAqLwoKI2VuZGlmIC8qIF9LRVlMT0NLRVJJTlRSSU5fSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0tIHRzeGxkdHJraW50cmluLmggLSB0c3hsZHRyayBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx0c3hsZHRya2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19UU1hMRFRSS0lOVFJJTl9ICiNkZWZpbmUgX19UU1hMRFRSS0lOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgKi8KI2RlZmluZSBfREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJ0c3hsZHRyayIpKSkKCi8vLyBNYXJrcyB0aGUgc3RhcnQgb2YgYW4gVFNYIChSVE0pIHN1c3BlbmQgbG9hZCBhZGRyZXNzIHRyYWNraW5nIHJlZ2lvbi4gSWYKLy8vICAgIHRoaXMgaW50cmluc2ljIGlzIHVzZWQgaW5zaWRlIGEgdHJhbnNhY3Rpb25hbCByZWdpb24sIHN1YnNlcXVlbnQgbG9hZHMKLy8vICAgIGFyZSBub3QgYWRkZWQgdG8gdGhlIHJlYWQgc2V0IG9mIHRoZSB0cmFuc2FjdGlvbi4gSWYgaXQncyB1c2VkIGluc2lkZSBhCi8vLyAgICBzdXNwZW5kIGxvYWQgYWRkcmVzcyB0cmFja2luZyByZWdpb24gaXQgd2lsbCBjYXVzZSB0cmFuc2FjdGlvbiBhYm9ydC4KLy8vICAgIElmIGl0J3MgdXNlZCBvdXRzaWRlIG9mIGEgdHJhbnNhY3Rpb25hbCByZWdpb24gaXQgYmVoYXZlcyBsaWtlIGEgTk9QLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgWFNVU0xEVFJLIGluc3RydWN0aW9uLgovLy8Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfREVGQVVMVF9GTl9BVFRSUwpfeHN1c2xkdHJrICh2b2lkKQp7CiAgICBfX2J1aWx0aW5faWEzMl94c3VzbGR0cmsoKTsKfQoKLy8vIE1hcmtzIHRoZSBlbmQgb2YgYW4gVFNYIChSVE0pIHN1c3BlbmQgbG9hZCBhZGRyZXNzIHRyYWNraW5nIHJlZ2lvbi4gSWYgdGhpcwovLy8gICAgaW50cmluc2ljIGlzIHVzZWQgaW5zaWRlIGEgc3VzcGVuZCBsb2FkIGFkZHJlc3MgdHJhY2tpbmcgcmVnaW9uIGl0IHdpbGwKLy8vICAgIGVuZCB0aGUgc3VzcGVuZCByZWdpb24gYW5kIGFsbCBmb2xsb3dpbmcgbG9hZCBhZGRyZXNzZXMgd2lsbCBiZSBhZGRlZCB0bwovLy8gICAgdGhlIHRyYW5zYWN0aW9uIHJlYWQgc2V0LiBJZiBpdCdzIHVzZWQgaW5zaWRlIGFuIGFjdGl2ZSB0cmFuc2FjdGlvbiBidXQKLy8vICAgIG5vdCBpbiBhIHN1c3BlbmQgcmVnaW9uIGl0IHdpbGwgY2F1c2UgdHJhbnNhY3Rpb24gYWJvcnQuIElmIGl0J3MgdXNlZAovLy8gICAgb3V0c2lkZSBvZiBhIHRyYW5zYWN0aW9uYWwgcmVnaW9uIGl0IGJlaGF2ZXMgbGlrZSBhIE5PUC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFhSRVNMRFRSSyBpbnN0cnVjdGlvbi4KLy8vCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX0RFRkFVTFRfRk5fQVRUUlMKX3hyZXNsZHRyayAodm9pZCkKewogICAgX19idWlsdGluX2lhMzJfeHJlc2xkdHJrKCk7Cn0KCiN1bmRlZiBfREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fVFNYTERUUktJTlRSSU5fSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0tLSB3Ym5vaW52ZGludHJpbi5oIC0gd2Jub2ludmQgaW50cmluc2ljLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8d2Jub2ludmRpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fV0JOT0lOVkRJTlRSSU5fSAojZGVmaW5lIF9fV0JOT0lOVkRJTlRSSU5fSAoKc3RhdGljIF9faW5saW5lX18gdm9pZAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIndibm9pbnZkIikpKQpfd2Jub2ludmQgKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl93Ym5vaW52ZCAoKTsKfQoKI2VuZGlmIC8qIF9fV0JOT0lOVkRJTlRSSU5fSCAqLwoALyo9PT0tIF9fY2xhbmdfb3Blbm1wX2RldmljZV9mdW5jdGlvbnMuaCAtIE9wZW5NUCBkZXZpY2UgZnVuY3Rpb24gZGVjbGFyZXMgLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0NMQU5HX09QRU5NUF9ERVZJQ0VfRlVOQ1RJT05TX0hfXwojZGVmaW5lIF9fQ0xBTkdfT1BFTk1QX0RFVklDRV9GVU5DVElPTlNfSF9fCgojaWZuZGVmIF9PUEVOTVAKI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIE9wZW5NUCBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGRldmljZSA9IHthcmNoKG52cHR4LCBudnB0eDY0KX0sIGltcGxlbWVudGF0aW9uID0ge2V4dGVuc2lvbihtYXRjaF9hbnkpfSkKCiNkZWZpbmUgX19DVURBX18KI2RlZmluZSBfX09QRU5NUF9OVlBUWF9fCgovLy8gSW5jbHVkZSBkZWNsYXJhdGlvbnMgZm9yIGxpYmRldmljZSBmdW5jdGlvbnMuCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfbGliZGV2aWNlX2RlY2xhcmVzLmg+CgovLy8gUHJvdmlkZSBkZWZpbml0aW9ucyBmb3IgdGhlc2UgZnVuY3Rpb25zLgojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2RldmljZV9mdW5jdGlvbnMuaD4KCiN1bmRlZiBfX09QRU5NUF9OVlBUWF9fCiN1bmRlZiBfX0NVREFfXwoKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAoKI2lmZGVmIF9fQU1ER0NOX18KI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGRldmljZSA9IHthcmNoKGFtZGdjbil9KQoKLy8gSW1wb3J0IHR5cGVzIHdoaWNoIHdpbGwgYmUgdXNlZCBieSBfX2NsYW5nX2hpcF9saWJkZXZpY2VfZGVjbGFyZXMuaAojaWZuZGVmIF9fY3BsdXNwbHVzCiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2VuZGlmCgojZGVmaW5lIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgcHVzaF9tYWNybygiX19kZXZpY2VfXyIpCiNkZWZpbmUgX19kZXZpY2VfXwoKLy8vIEluY2x1ZGUgZGVjbGFyYXRpb25zIGZvciBsaWJkZXZpY2UgZnVuY3Rpb25zLgojaW5jbHVkZSA8X19jbGFuZ19oaXBfbGliZGV2aWNlX2RlY2xhcmVzLmg+CgojcHJhZ21hIHBvcF9tYWNybygiX19kZXZpY2VfXyIpCiN1bmRlZiBfX09QRU5NUF9BTURHQ05fXwoKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgovLyBFbnN1cmUgd2UgbWFrZSBgX1pkbFB2YCwgYWthLiBgb3BlcmF0b3IgZGVsZXRlKHZvaWQqKWAgYXZhaWxhYmxlIHdpdGhvdXQgdGhlCi8vIG5lZWQgdG8gYGluY2x1ZGUgPG5ldz5gIGluIEMrKyBtb2RlLgojaWZkZWYgX19jcGx1c3BsdXMKCi8vIFdlIHJlcXVpcmUgbWFsbG9jL2ZyZWUuCiNpbmNsdWRlIDxjc3RkbGliPgoKI3ByYWdtYSBwdXNoX21hY3JvKCJPUEVOTVBfTk9FWENFUFQiKQojaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAojZGVmaW5lIE9QRU5NUF9OT0VYQ0VQVCBub2V4Y2VwdAojZWxzZQojZGVmaW5lIE9QRU5NUF9OT0VYQ0VQVAojZW5kaWYKCi8vIERldmljZSBvdmVycmlkZXMgZm9yIG5vbi1wbGFjZW1lbnQgbmV3IGFuZCBkZWxldGUuCmlubGluZSB2b2lkICpvcGVyYXRvciBuZXcoX19TSVpFX1RZUEVfXyBzaXplKSB7CiAgaWYgKHNpemUgPT0gMCkKICAgIHNpemUgPSAxOwogIHJldHVybiA6Om1hbGxvYyhzaXplKTsKfQoKaW5saW5lIHZvaWQgKm9wZXJhdG9yIG5ld1tdKF9fU0laRV9UWVBFX18gc2l6ZSkgeyByZXR1cm4gOjpvcGVyYXRvciBuZXcoc2l6ZSk7IH0KCmlubGluZSB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICpwdHIpT1BFTk1QX05PRVhDRVBUIHsgOjpmcmVlKHB0cik7IH0KCmlubGluZSB2b2lkIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQgKnB0cikgT1BFTk1QX05PRVhDRVBUIHsKICA6Om9wZXJhdG9yIGRlbGV0ZShwdHIpOwp9CgovLyBTaXplZCBkZWxldGUsIEMrKzE0IG9ubHkuCiNpZiBfX2NwbHVzcGx1cyA+PSAyMDE0MDJMCmlubGluZSB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICpwdHIsIF9fU0laRV9UWVBFX18gc2l6ZSlPUEVOTVBfTk9FWENFUFQgewogIDo6b3BlcmF0b3IgZGVsZXRlKHB0cik7Cn0KaW5saW5lIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10odm9pZCAqcHRyLCBfX1NJWkVfVFlQRV9fIHNpemUpIE9QRU5NUF9OT0VYQ0VQVCB7CiAgOjpvcGVyYXRvciBkZWxldGUocHRyKTsKfQojZW5kaWYKCiNwcmFnbWEgcG9wX21hY3JvKCJPUEVOTVBfTk9FWENFUFQiKQojZW5kaWYKCiNlbmRpZgoALyo9PT0tLS0tIHhtbWludHJpbi5oIC0gSW1wbGVtZW50YXRpb24gb2YgU1NFIGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogSW1wbGVtZW50ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpbmNsdWRlZCBpbiB0aGUgSW50ZWwgQysrIENvbXBpbGVyCiAgIFVzZXIgR3VpZGUgYW5kIFJlZmVyZW5jZSwgdmVyc2lvbiA5LjAuICAqLwoKI2lmbmRlZiBOT19XQVJOX1g4Nl9JTlRSSU5TSUNTCi8qIFRoaXMgaGVhZGVyIGZpbGUgaXMgdG8gaGVscCBwb3J0aW5nIGNvZGUgdXNpbmcgSW50ZWwgaW50cmluc2ljcwogICBleHBsaWNpdGx5IGZyb20geDg2XzY0IHRvIHBvd2VycGM2NC9wb3dlcnBjNjRsZS4KCiAgIFNpbmNlIFg4NiBTU0UgaW50cmluc2ljcyBtYWlubHkgaGFuZGxlcyBfX20xMjggdHlwZSwgUG93ZXJQQwogICBWTVgvVlNYIElTQSBpcyBhIGdvb2QgbWF0Y2ggZm9yIHZlY3RvciBmbG9hdCBTSU1EIG9wZXJhdGlvbnMuCiAgIEhvd2V2ZXIgc2NhbGFyIGZsb2F0IG9wZXJhdGlvbnMgaW4gdmVjdG9yIChYTU0pIHJlZ2lzdGVycyByZXF1aXJlCiAgIHRoZSBQT1dFUjggVlNYIElTQSAoMi4wNykgbGV2ZWwuIFRoZXJlIGFyZSBkaWZmZXJlbmNlcyBmb3IgZGF0YQogICBmb3JtYXQgYW5kIHBsYWNlbWVudCBvZiBmbG9hdCBzY2FsYXJzIGluIHRoZSB2ZWN0b3IgcmVnaXN0ZXIsIHdoaWNoCiAgIHJlcXVpcmUgZXh0cmEgc3RlcHMgdG8gbWF0Y2ggU1NFIHNjYWxhciBmbG9hdCBzZW1hbnRpY3Mgb24gUE9XRVIuCgogICBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGVyZSdzIG11Y2ggZGlmZmVyZW5jZSBiZXR3ZWVuIFg4Nl82NCdzCiAgIE1YU0NSIGFuZCBQb3dlcklTQSdzIEZQU0NSL1ZTQ1IgcmVnaXN0ZXJzLiBJdCdzIHJlY29tbWVuZGVkIHRvIHVzZQogICBwb3J0YWJsZSA8ZmVudi5oPiBpbnN0ZWFkIG9mIGFjY2VzcyBNWFNDUiBkaXJlY3RseS4KCiAgIE1vc3QgU1NFIHNjYWxhciBmbG9hdCBpbnRyaW5zaWMgb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIG1vcmUKICAgZWZmaWNpZW50bHkgYXMgQyBsYW5ndWFnZSBmbG9hdCBzY2FsYXIgb3BlcmF0aW9ucyBvciBvcHRpbWl6ZWQgdG8KICAgdXNlIHZlY3RvciBTSU1EIG9wZXJhdGlvbnMuIFdlIHJlY29tbWVuZCB0aGlzIGZvciBuZXcgYXBwbGljYXRpb25zLiAqLwojZXJyb3IgIlBsZWFzZSByZWFkIGNvbW1lbnQgYWJvdmUuIFVzZSAtRE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MgdG8gZGlzYWJsZSB0aGlzIGVycm9yLiIKI2VuZGlmCgojaWZuZGVmIF9YTU1JTlRSSU5fSF9JTkNMVURFRAojZGVmaW5lIF9YTU1JTlRSSU5fSF9JTkNMVURFRAoKI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykKCi8qIERlZmluZSBmb3VyIHZhbHVlIHBlcm11dGUgbWFzayAqLwojZGVmaW5lIF9NTV9TSFVGRkxFKHcseCx5LHopICgoKHcpIDw8IDYpIHwgKCh4KSA8PCA0KSB8ICgoeSkgPDwgMikgfCAoeikpCgojaW5jbHVkZSA8YWx0aXZlYy5oPgoKLyogQXZvaWQgY29sbGlzaW9ucyBiZXR3ZWVuIGFsdGl2ZWMuaCBhbmQgc3RyaWN0IGFkaGVyZW5jZSB0byBDKysgYW5kCiAgIEMxMSBzdGFuZGFyZHMuICBUaGlzIHNob3VsZCBldmVudHVhbGx5IGJlIGRvbmUgaW5zaWRlIGFsdGl2ZWMuaCBpdHNlbGYsCiAgIGJ1dCBvbmx5IGFmdGVyIHRlc3RpbmcgYSBmdWxsIGRpc3RybyBidWlsZC4gICovCiNpZiBkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykgJiYgKGRlZmluZWQoX19jcGx1c3BsdXMpIHx8IFwKCQkJCSAoZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJglcCgkJCQkgIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTCkpCiN1bmRlZiB2ZWN0b3IKI3VuZGVmIHBpeGVsCiN1bmRlZiBib29sCiNlbmRpZgoKLyogV2UgbmVlZCB0eXBlIGRlZmluaXRpb25zIGZyb20gdGhlIE1NWCBoZWFkZXIgZmlsZS4gICovCiNpbmNsdWRlIDxtbWludHJpbi5oPgoKLyogR2V0IF9tbV9tYWxsb2MgKCkgYW5kIF9tbV9mcmVlICgpLiAgKi8KI2lmIF9fU1REQ19IT1NURURfXwojaW5jbHVkZSA8bW1fbWFsbG9jLmg+CiNlbmRpZgoKLyogVGhlIEludGVsIEFQSSBpcyBmbGV4aWJsZSBlbm91Z2ggdGhhdCB3ZSBtdXN0IGFsbG93IGFsaWFzaW5nIHdpdGggb3RoZXIKICAgdmVjdG9yIHR5cGVzLCBhbmQgdGhlaXIgc2NhbGFyIGNvbXBvbmVudHMuICAqLwp0eXBlZGVmIHZlY3RvciBmbG9hdCBfX20xMjggX19hdHRyaWJ1dGVfXygoX19tYXlfYWxpYXNfXykpOwoKLyogVW5hbGlnbmVkIHZlcnNpb24gb2YgdGhlIHNhbWUgdHlwZS4gICovCnR5cGVkZWYgdmVjdG9yIGZsb2F0IF9fbTEyOF91IF9fYXR0cmlidXRlX18oKF9fbWF5X2FsaWFzX18sIF9fYWxpZ25lZF9fKDEpKSk7CgovKiBJbnRlcm5hbCBkYXRhIHR5cGVzIGZvciBpbXBsZW1lbnRpbmcgdGhlIGludHJpbnNpY3MuICAqLwp0eXBlZGVmIHZlY3RvciBmbG9hdCBfX3Y0c2Y7CgovKiBDcmVhdGUgYW4gdW5kZWZpbmVkIHZlY3Rvci4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bmRlZmluZWRfcHMgKHZvaWQpCnsKICBfX20xMjggX19ZID0gX19ZOwogIHJldHVybiBfX1k7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciBvZiB6ZXJvcy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXR6ZXJvX3BzICh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCl7IDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYgfTsKfQoKLyogTG9hZCBmb3VyIFNQRlAgdmFsdWVzIGZyb20gUC4gIFRoZSBhZGRyZXNzIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRfcHMgKGZsb2F0IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2xkKDAsIChfX3Y0c2YqKV9fUCkpOwp9CgovKiBMb2FkIGZvdXIgU1BGUCB2YWx1ZXMgZnJvbSBQLiAgVGhlIGFkZHJlc3MgbmVlZCBub3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWR1X3BzIChmbG9hdCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICh2ZWNfdnN4X2xkKDAsIF9fUCkpOwp9CgovKiBMb2FkIGZvdXIgU1BGUCB2YWx1ZXMgaW4gcmV2ZXJzZSBvcmRlci4gIFRoZSBhZGRyZXNzIG11c3QgYmUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2Fkcl9wcyAoZmxvYXQgY29uc3QgKl9fUCkKewogIF9fdjRzZiAgIF9fdG1wOwogIF9fbTEyOCByZXN1bHQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgcGVybXV0ZV92ZWN0b3IgPQogICAgeyAweDFDLCAweDFELCAweDFFLCAweDFGLCAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDE0LCAweDE1LCAweDE2LAoJMHgxNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMyB9OwoKICBfX3RtcCA9IHZlY19sZCAoMCwgKF9fdjRzZiAqKSBfX1ApOwogIHJlc3VsdCA9IChfX20xMjgpIHZlY19wZXJtIChfX3RtcCwgX190bXAsIHBlcm11dGVfdmVjdG9yKTsKICByZXR1cm4gcmVzdWx0Owp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBhbGwgZm91ciBlbGVtZW50cyBlcXVhbCB0byBGLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfcHMgKGZsb2F0IF9fRikKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpKF9fdjRzZil7IF9fRiwgX19GLCBfX0YsIF9fRiB9Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X3BzMSAoZmxvYXQgX19GKQp7CiAgcmV0dXJuIF9tbV9zZXQxX3BzIChfX0YpOwp9CgovKiBDcmVhdGUgdGhlIHZlY3RvciBbWiBZIFggV10uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X3BzIChjb25zdCBmbG9hdCBfX1osIGNvbnN0IGZsb2F0IF9fWSwgY29uc3QgZmxvYXQgX19YLCBjb25zdCBmbG9hdCBfX1cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KShfX3Y0c2YpeyBfX1csIF9fWCwgX19ZLCBfX1ogfTsKfQoKLyogQ3JlYXRlIHRoZSB2ZWN0b3IgW1cgWCBZIFpdLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHJfcHMgKGZsb2F0IF9fWiwgZmxvYXQgX19ZLCBmbG9hdCBfX1gsIGZsb2F0IF9fVykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpKF9fdjRzZil7IF9fWiwgX19ZLCBfX1gsIF9fVyB9Owp9CgovKiBTdG9yZSBmb3VyIFNQRlAgdmFsdWVzLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3BzIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgdmVjX3N0KChfX3Y0c2YpX19BLCAwLCAoX192NHNmKilfX1ApOwp9CgovKiBTdG9yZSBmb3VyIFNQRlAgdmFsdWVzLiAgVGhlIGFkZHJlc3MgbmVlZCBub3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZXVfcHMgKGZsb2F0ICpfX1AsIF9fbTEyOCBfX0EpCnsKICAqKF9fbTEyOF91ICopX19QID0gX19BOwp9CgovKiBTdG9yZSBmb3VyIFNQRlAgdmFsdWVzIGluIHJldmVyc2Ugb3JkZXIuICBUaGUgYWRkcmVzcyBtdXN0IGJlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3Jlcl9wcyAoZmxvYXQgKl9fUCwgX19tMTI4IF9fQSkKewogIF9fdjRzZiAgIF9fdG1wOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHBlcm11dGVfdmVjdG9yID0KICAgIHsgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiwgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQiwgMHgxNCwgMHgxNSwgMHgxNiwKCTB4MTcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMgfTsKCiAgX190bXAgPSAoX19tMTI4KSB2ZWNfcGVybSAoX19BLCBfX0EsIHBlcm11dGVfdmVjdG9yKTsKCiAgX21tX3N0b3JlX3BzIChfX1AsIF9fdG1wKTsKfQoKLyogU3RvcmUgdGhlIGxvd2VyIFNQRlAgdmFsdWUgYWNyb3NzIGZvdXIgd29yZHMuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlMV9wcyAoZmxvYXQgKl9fUCwgX19tMTI4IF9fQSkKewogIF9fdjRzZiBfX3ZhID0gdmVjX3NwbGF0KChfX3Y0c2YpX19BLCAwKTsKICBfbW1fc3RvcmVfcHMgKF9fUCwgX192YSk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVfcHMxIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgX21tX3N0b3JlMV9wcyAoX19QLCBfX0EpOwp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBlbGVtZW50IDAgYXMgRiBhbmQgdGhlIHJlc3QgemVyby4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfc3MgKGZsb2F0IF9fRikKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpKF9fdjRzZil7IF9fRiwgMC4wZiwgMC4wZiwgMC4wZiB9Owp9CgovKiBTZXRzIHRoZSBsb3cgU1BGUCB2YWx1ZSBvZiBBIGZyb20gdGhlIGxvdyB2YWx1ZSBvZiBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPSB7MHhmZmZmZmZmZiwgMCwgMCwgMH07CgogIHJldHVybiAodmVjX3NlbCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCBtYXNrKSk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGVsZW1lbnQgMCBhcyAqUCBhbmQgdGhlIHJlc3QgemVyby4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkX3NzIChmbG9hdCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIF9tbV9zZXRfc3MgKCpfX1ApOwp9CgovKiBTdG9yZXMgdGhlIGxvd2VyIFNQRlAgdmFsdWUuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3NzIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgKl9fUCA9ICgoX192NHNmKV9fQSlbMF07Cn0KCi8qIFBlcmZvcm0gdGhlIHJlc3BlY3RpdmUgb3BlcmF0aW9uIG9uIHRoZSBsb3dlciBTUEZQIChzaW5nbGUtcHJlY2lzaW9uCiAgIGZsb2F0aW5nLXBvaW50KSB2YWx1ZXMgb2YgQSBhbmQgQjsgdGhlIHVwcGVyIHRocmVlIFNQRlAgdmFsdWVzIGFyZQogICBwYXNzZWQgdGhyb3VnaCBmcm9tIEEuICAqLwoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewojaWZkZWYgX0FSQ0hfUFdSNwogIF9fbTEyOCBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAgIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICAgKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgICBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBiID0gdmVjX3NwbGF0IChfX0IsIDApOwogIGMgPSBhICsgYjsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgICBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsIChfX0EsIGMsIG1hc2spKTsKI2Vsc2UKICBfX0FbMF0gPSBfX0FbMF0gKyBfX0JbMF07CiAgcmV0dXJuIChfX0EpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewojaWZkZWYgX0FSQ0hfUFdSNwogIF9fbTEyOCBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAgIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICAgKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgICBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBiID0gdmVjX3NwbGF0IChfX0IsIDApOwogIGMgPSBhIC0gYjsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgICBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsIChfX0EsIGMsIG1hc2spKTsKI2Vsc2UKICBfX0FbMF0gPSBfX0FbMF0gLSBfX0JbMF07CiAgcmV0dXJuIChfX0EpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX211bF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewojaWZkZWYgX0FSQ0hfUFdSNwogIF9fbTEyOCBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAgIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICAgKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgICBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBiID0gdmVjX3NwbGF0IChfX0IsIDApOwogIGMgPSBhICogYjsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgICBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsIChfX0EsIGMsIG1hc2spKTsKI2Vsc2UKICBfX0FbMF0gPSBfX0FbMF0gKiBfX0JbMF07CiAgcmV0dXJuIChfX0EpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Rpdl9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewojaWZkZWYgX0FSQ0hfUFdSNwogIF9fbTEyOCBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAgIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICAgKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgICBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBiID0gdmVjX3NwbGF0IChfX0IsIDApOwogIGMgPSBhIC8gYjsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgICBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsIChfX0EsIGMsIG1hc2spKTsKI2Vsc2UKICBfX0FbMF0gPSBfX0FbMF0gLyBfX0JbMF07CiAgcmV0dXJuIChfX0EpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NxcnRfc3MgKF9fbTEyOCBfX0EpCnsKICBfX20xMjggYSwgYzsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPSB7MHhmZmZmZmZmZiwgMCwgMCwgMH07CiAgLyogUG93ZXJJU0EgVlNYIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGxvd2VyIGRvdWJsZSkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBkb3VibGUgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZG91YmxlCiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBjID0gdmVjX3NxcnQgKGEpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwp9CgovKiBQZXJmb3JtIHRoZSByZXNwZWN0aXZlIG9wZXJhdGlvbiBvbiB0aGUgZm91ciBTUEZQIHZhbHVlcyBpbiBBIGFuZCBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSAoKF9fdjRzZilfX0EgKyAoX192NHNmKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgKChfX3Y0c2YpX19BIC0gKF9fdjRzZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpICgoX192NHNmKV9fQSAqIChfX3Y0c2YpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Rpdl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSAoKF9fdjRzZilfX0EgLyAoX192NHNmKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcXJ0X3BzIChfX20xMjggX19BKQp7CiAgcmV0dXJuICh2ZWNfc3FydCAoKF9fdjRzZilfX0EpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3JjcF9wcyAoX19tMTI4IF9fQSkKewogIHJldHVybiAodmVjX3JlICgoX192NHNmKV9fQSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcnNxcnRfcHMgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKHZlY19yc3FydGUgKF9fQSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcmNwX3NzIChfX20xMjggX19BKQp7CiAgX19tMTI4IGEsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBkb3VibGUpCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZG91YmxlIHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGRvdWJsZQogICAqIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAqLwogIGEgPSB2ZWNfc3BsYXQgKF9fQSwgMCk7CiAgYyA9IF9tbV9yY3BfcHMgKGEpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcnNxcnRfc3MgKF9fbTEyOCBfX0EpCnsKICBfX20xMjggYSwgYzsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPSB7MHhmZmZmZmZmZiwgMCwgMCwgMH07CiAgLyogUG93ZXJJU0EgVlNYIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGxvd2VyIGRvdWJsZSkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBkb3VibGUgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZG91YmxlCiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBjID0gdmVjX3JzcXJ0ZSAoYSk7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAodmVjX3NlbCAoX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3Y0c2YgYSwgYiwgYzsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPSB7MHhmZmZmZmZmZiwgMCwgMCwgMH07CiAgLyogUG93ZXJJU0EgVlNYIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGxvd2VyIGZsb2F0KQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGZsb2F0IHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZilfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpX19CLCAwKTsKICBjID0gdmVjX21pbiAoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAodmVjX3NlbCAoKF9fdjRzZilfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21heF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIF9fdjRzZiBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZmxvYXQpCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZmxvYXQgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKF9fQiwgMCk7CiAgYyA9IHZlY19tYXggKGEsIGIpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3ZlY3RvciBfX2Jvb2wgaW50IG0gPSB2ZWNfY21wZ3QgKChfX3Y0c2YpIF9fQiwgKF9fdjRzZikgX19BKTsKICByZXR1cm4gdmVjX3NlbCAoX19CLCBfX0EsIG0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgX192ZWN0b3IgX19ib29sIGludCBtID0gdmVjX2NtcGd0ICgoX192NHNmKSBfX0EsIChfX3Y0c2YpIF9fQik7CiAgcmV0dXJuIHZlY19zZWwgKF9fQiwgX19BLCBtKTsKfQoKLyogUGVyZm9ybSBsb2dpY2FsIGJpdC13aXNlIG9wZXJhdGlvbnMgb24gMTI4LWJpdCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYW5kX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19hbmQgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwovLyAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2FuZHBzIChfX0EsIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRub3RfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2FuZGMgKChfX3Y0c2YpX19CLCAoX192NHNmKV9fQSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fb3JfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX29yICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3hvcl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfeG9yICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKLyogUGVyZm9ybSBhIGNvbXBhcmlzb24gb24gdGhlIGZvdXIgU1BGUCB2YWx1ZXMgb2YgQSBhbmQgQi4gIEZvciBlYWNoCiAgIGVsZW1lbnQsIGlmIHRoZSBjb21wYXJpc29uIGlzIHRydWUsIHBsYWNlIGEgbWFzayBvZiBhbGwgb25lcyBpbiB0aGUKICAgcmVzdWx0LCBvdGhlcndpc2UgYSBtYXNrIG9mIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBlcSAoKF9fdjRzZilfX0EsKF9fdjRzZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsdF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wbHQgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbGVfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2NtcGxlICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGd0X3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBndCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBnZV9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wZ2UgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgIF9fbTEyOCAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZXFfcHMgKF9fbTEyOCAgX19BLCBfX20xMjggIF9fQikKewogIF9fdjRzZiB0ZW1wID0gKF9fdjRzZiApIHZlY19jbXBlcSAoKF9fdjRzZikgX19BLCAoX192NHNmKV9fQik7CiAgcmV0dXJuICgoX19tMTI4KXZlY19ub3IgKHRlbXAsIHRlbXApKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5sdF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wZ2UgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmxlX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBndCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZ3RfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2NtcGxlICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5nZV9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wbHQgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgIF9fbTEyOCAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBvcmRfcHMgKF9fbTEyOCAgX19BLCBfX20xMjggIF9fQikKewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBhLCBiOwogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBjLCBkOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgZmxvYXRfZXhwX21hc2sgPQogICAgeyAweDdmODAwMDAwLCAweDdmODAwMDAwLCAweDdmODAwMDAwLCAweDdmODAwMDAwIH07CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfYWJzICgoX192NHNmKV9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19CKTsKICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChmbG9hdF9leHBfbWFzaywgYSk7CiAgZCA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19jbXBndCAoZmxvYXRfZXhwX21hc2ssIGIpOwogIHJldHVybiAoKF9fbTEyOCApIHZlY19hbmQgKGMsIGQpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcHVub3JkX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGMsIGQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBmbG9hdF9leHBfbWFzayA9CiAgICB7IDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAgfTsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2FicyAoKF9fdjRzZilfX0IpOwogIGMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfY21wZ3QgKGEsIGZsb2F0X2V4cF9tYXNrKTsKICBkID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChiLCBmbG9hdF9leHBfbWFzayk7CiAgcmV0dXJuICgoX19tMTI4ICkgdmVjX29yIChjLCBkKSk7Cn0KCi8qIFBlcmZvcm0gYSBjb21wYXJpc29uIG9uIHRoZSBsb3dlciBTUEZQIHZhbHVlcyBvZiBBIGFuZCBCLiAgSWYgdGhlCiAgIGNvbXBhcmlzb24gaXMgdHJ1ZSwgcGxhY2UgYSBtYXNrIG9mIGFsbCBvbmVzIGluIHRoZSByZXN1bHQsIG90aGVyd2lzZSBhCiAgIG1hc2sgb2YgemVyb3MuICBUaGUgdXBwZXIgdGhyZWUgU1BGUCB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGZyb20gQS4gICovCmV4dGVybiBfX2lubGluZSAgX19tMTI4ICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX3NzIChfX20xMjggIF9fQSwgX19tMTI4ICBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZXEoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbHRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wbHQoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbGVfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wbGUoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3Rfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZ3QoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ2Vfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZ2UoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmVxX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0KICAgIHsgMHhmZmZmZmZmZiwgMCwgMCwgMCB9OwogIF9fdjRzZiBhLCBiLCBjOwogIC8qIFBvd2VySVNBIFZNWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBlbGVtZW50IDApCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZWxlbWVudHMpIHdlIHNwbGF0IHRoZSBsb3dlciBmbG9hdAogICAqIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAqLwogIGEgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQSwgMCk7CiAgYiA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19CLCAwKTsKICBjID0gKF9fdjRzZikgdmVjX2NtcGVxKGEsIGIpOwogIGMgPSB2ZWNfbm9yIChjLCBjKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBubHRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZ2UoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmxlX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0KICAgIHsgMHhmZmZmZmZmZiwgMCwgMCwgMCB9OwogIF9fdjRzZiBhLCBiLCBjOwogIC8qIFBvd2VySVNBIFZNWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBlbGVtZW50IDApCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZWxlbWVudHMpIHdlIHNwbGF0IHRoZSBsb3dlciBmbG9hdAogICAqIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAqLwogIGEgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQSwgMCk7CiAgYiA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19CLCAwKTsKICBjID0gKF9fdjRzZikgdmVjX2NtcGd0KGEsIGIpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKChfX20xMjgpdmVjX3NlbCAoKF9fdjRzZilfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5ndF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBsZShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZ2Vfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIGRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wbHQoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wb3JkX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGMsIGQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBmbG9hdF9leHBfbWFzayA9CiAgICB7IDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAgfTsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfYWJzICgoX192NHNmKV9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19CKTsKICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChmbG9hdF9leHBfbWFzaywgYSk7CiAgZCA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19jbXBndCAoZmxvYXRfZXhwX21hc2ssIGIpOwogIGMgPSB2ZWNfYW5kIChjLCBkKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCAoX192NHNmKWMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcHVub3JkX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGMsIGQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBmbG9hdF9leHBfbWFzayA9CiAgICB7IDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAgfTsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfYWJzICgoX192NHNmKV9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19CKTsKICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChhLCBmbG9hdF9leHBfbWFzayk7CiAgZCA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19jbXBndCAoYiwgZmxvYXRfZXhwX21hc2spOwogIGMgPSB2ZWNfb3IgKGMsIGQpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKChfX20xMjgpdmVjX3NlbCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpYywgbWFzaykpOwp9CgovKiBDb21wYXJlIHRoZSBsb3dlciBTUEZQIHZhbHVlcyBvZiBBIGFuZCBCIGFuZCByZXR1cm4gMSBpZiB0cnVlCiAgIGFuZCAwIGlmIGZhbHNlLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWllcV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdID09IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pbHRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA8IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pbGVfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA8PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWd0X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPiBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWdlX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPj0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWluZXFfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSAhPSBfX0JbMF0pOwp9CgovKiBGSVhNRQogKiBUaGUgX19tbV91Y29taT8/X3NzIGltcGxlbWVudGF0aW9ucyBiZWxvdyBhcmUgZXhhY3RseSB0aGUgc2FtZSBhcwogKiBfX21tX2NvbWk/P19zcyBiZWNhdXNlIEdDQyBmb3IgUG93ZXJQQyBvbmx5IGdlbmVyYXRlcyB1bm9yZGVyZWQKICogY29tcGFyZXMgKHNjYWxhciBhbmQgdmVjdG9yKS4KICogVGVjaG5pY2FsbHkgX19tbV9jb21pZXFfc3MgZXQgYWwgc2hvdWxkIGJlIHVzaW5nIHRoZSBvcmRlcmVkCiAqIGNvbXBhcmUgYW5kIHNpZ25hbCBmb3IgUU5hTnMuCiAqIFRoZSBfX21tX3Vjb21pZXFfc2QgZXQgYWxsIHNob3VsZCBiZSBPSywgYXMgaXMuCiAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWllcV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdID09IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWx0X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPCBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWlsZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdIDw9IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWd0X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPiBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWlnZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdID49IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taW5lcV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdICE9IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNzX2YzMiAoX19tMTI4IF9fQSkKewogIHJldHVybiAoKF9fdjRzZilfX0EpWzBdOwp9CgovKiBDb252ZXJ0IHRoZSBsb3dlciBTUEZQIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50CiAgIHJvdW5kaW5nIG1vZGUuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c3Nfc2kzMiAoX19tMTI4IF9fQSkKewogIF9fbTY0IHJlcyA9IDA7CiNpZmRlZiBfQVJDSF9QV1I4CiAgZG91YmxlIGR0bXA7CiAgX19hc21fXygKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgICJ4eHNsZHdpICV4MCwleDAsJXgwLDM7XG4iCiNlbmRpZgogICAgICAieHNjdnNwZHAgJXgyLCV4MDtcbiIKICAgICAgImZjdGl3ICAlMiwlMjtcbiIKICAgICAgIm1mdnNyZCAgJTEsJXgyO1xuIgogICAgICA6ICIrd2EiIChfX0EpLAogICAgICAgICI9ciIgKHJlcyksCiAgICAgICAgIj1mIiAoZHRtcCkKICAgICAgOiApOwojZWxzZQogIHJlcyA9IF9fYnVpbHRpbl9yaW50KF9fQVswXSk7CiNlbmRpZgogIHJldHVybiAocmVzKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dF9zczJzaSAoX19tMTI4IF9fQSkKewogIHJldHVybiBfbW1fY3Z0c3Nfc2kzMiAoX19BKTsKfQoKLyogQ29udmVydCB0aGUgbG93ZXIgU1BGUCB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFjY29yZGluZyB0byB0aGUKICAgY3VycmVudCByb3VuZGluZyBtb2RlLiAgKi8KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzc19zaTY0IChfX20xMjggX19BKQp7CiAgX19tNjQgcmVzID0gMDsKI2lmZGVmIF9BUkNIX1BXUjgKICBkb3VibGUgZHRtcDsKICBfX2FzbV9fKAojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgInh4c2xkd2kgJXgwLCV4MCwleDAsMztcbiIKI2VuZGlmCiAgICAgICJ4c2N2c3BkcCAleDIsJXgwO1xuIgogICAgICAiZmN0aWQgICUyLCUyO1xuIgogICAgICAibWZ2c3JkICAlMSwleDI7XG4iCiAgICAgIDogIit3YSIgKF9fQSksCiAgICAgICAgIj1yIiAocmVzKSwKICAgICAgICAiPWYiIChkdG1wKQogICAgICA6ICk7CiNlbHNlCiAgcmVzID0gX19idWlsdGluX2xscmludChfX0FbMF0pOwojZW5kaWYKICByZXR1cm4gKHJlcyk7Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c3Nfc2k2NHggKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gX21tX2N2dHNzX3NpNjQgKChfX3Y0c2YpIF9fQSk7Cn0KCi8qIENvbnN0YW50cyBmb3IgdXNlIHdpdGggX21tX3ByZWZldGNoLiAgKi8KZW51bSBfbW1faGludAp7CiAgLyogX01NX0hJTlRfRVQgaXMgX01NX0hJTlRfVCB3aXRoIHNldCAzcmQgYml0LiAgKi8KICBfTU1fSElOVF9FVDAgPSA3LAogIF9NTV9ISU5UX0VUMSA9IDYsCiAgX01NX0hJTlRfVDAgPSAzLAogIF9NTV9ISU5UX1QxID0gMiwKICBfTU1fSElOVF9UMiA9IDEsCiAgX01NX0hJTlRfTlRBID0gMAp9OwoKLyogTG9hZHMgb25lIGNhY2hlIGxpbmUgZnJvbSBhZGRyZXNzIFAgdG8gYSBsb2NhdGlvbiAiY2xvc2VyIiB0byB0aGUKICAgcHJvY2Vzc29yLiAgVGhlIHNlbGVjdG9yIEkgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHByZWZldGNoIG9wZXJhdGlvbi4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcHJlZmV0Y2ggKGNvbnN0IHZvaWQgKl9fUCwgZW51bSBfbW1faGludCBfX0kpCnsKICAvKiBDdXJyZW50IFBvd2VyUEMgd2lsbCBpZ25vcmVzIHRoZSBoaW50IHBhcmFtZXRlcnMuICAqLwogIF9fYnVpbHRpbl9wcmVmZXRjaCAoX19QKTsKfQoKLyogQ29udmVydCB0aGUgdHdvIGxvd2VyIFNQRlAgdmFsdWVzIHRvIDMyLWJpdCBpbnRlZ2VycyBhY2NvcmRpbmcgdG8gdGhlCiAgIGN1cnJlbnQgcm91bmRpbmcgbW9kZS4gIFJldHVybiB0aGUgaW50ZWdlcnMgaW4gcGFja2VkIGZvcm0uICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwc19waTMyIChfX20xMjggX19BKQp7CiAgLyogU3BsYXQgdHdvIGxvd2VyIFNQRlAgdmFsdWVzIHRvIGJvdGggaGFsdmVzLiAgKi8KICBfX3Y0c2YgdGVtcCwgcm91bmRlZDsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0OwoKICAvKiBTcGxhdCB0d28gbG93ZXIgU1BGUCB2YWx1ZXMgdG8gYm90aCBoYWx2ZXMuICAqLwogIHRlbXAgPSAoX192NHNmKSB2ZWNfc3BsYXQgKChfX3ZlY3RvciBsb25nIGxvbmcpX19BLCAwKTsKICByb3VuZGVkID0gdmVjX3JpbnQodGVtcCk7CiAgcmVzdWx0ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgdmVjX2N0cyAocm91bmRlZCwgMCk7CgogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByZXN1bHQpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRfcHMycGkgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gX21tX2N2dHBzX3BpMzIgKF9fQSk7Cn0KCi8qIFRydW5jYXRlIHRoZSBsb3dlciBTUEZQIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHNzX3NpMzIgKF9fbTEyOCBfX0EpCnsKICAvKiBFeHRyYWN0IHRoZSBsb3dlciBmbG9hdCBlbGVtZW50LiAgKi8KICBmbG9hdCB0ZW1wID0gX19BWzBdOwogIC8qIHRydW5jYXRlIHRvIDMyLWJpdCBpbnRlZ2VyIGFuZCByZXR1cm4uICAqLwogIHJldHVybiB0ZW1wOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dF9zczJzaSAoX19tMTI4IF9fQSkKewogIHJldHVybiBfbW1fY3Z0dHNzX3NpMzIgKF9fQSk7Cn0KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0c3Nfc2k2NCAoX19tMTI4IF9fQSkKewogIC8qIEV4dHJhY3QgdGhlIGxvd2VyIGZsb2F0IGVsZW1lbnQuICAqLwogIGZsb2F0IHRlbXAgPSBfX0FbMF07CiAgLyogdHJ1bmNhdGUgdG8gMzItYml0IGludGVnZXIgYW5kIHJldHVybi4gICovCiAgcmV0dXJuIHRlbXA7Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHNzX3NpNjR4IChfX20xMjggX19BKQp7CiAgLyogRXh0cmFjdCB0aGUgbG93ZXIgZmxvYXQgZWxlbWVudC4gICovCiAgZmxvYXQgdGVtcCA9IF9fQVswXTsKICAvKiB0cnVuY2F0ZSB0byAzMi1iaXQgaW50ZWdlciBhbmQgcmV0dXJuLiAgKi8KICByZXR1cm4gdGVtcDsKfQoKLyogVHJ1bmNhdGUgdGhlIHR3byBsb3dlciBTUEZQIHZhbHVlcyB0byAzMi1iaXQgaW50ZWdlcnMuICBSZXR1cm4gdGhlCiAgIGludGVnZXJzIGluIHBhY2tlZCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHBzX3BpMzIgKF9fbTEyOCBfX0EpCnsKICBfX3Y0c2YgdGVtcDsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0OwoKICAvKiBTcGxhdCB0d28gbG93ZXIgU1BGUCB2YWx1ZXMgdG8gYm90aCBoYWx2ZXMuICAqLwogIHRlbXAgPSAoX192NHNmKSB2ZWNfc3BsYXQgKChfX3ZlY3RvciBsb25nIGxvbmcpX19BLCAwKTsKICByZXN1bHQgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB2ZWNfY3RzICh0ZW1wLCAwKTsKCiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIHJlc3VsdClbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHRfcHMycGkgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gX21tX2N2dHRwc19waTMyIChfX0EpOwp9CgovKiBDb252ZXJ0IEIgdG8gYSBTUEZQIHZhbHVlIGFuZCBpbnNlcnQgaXQgYXMgZWxlbWVudCB6ZXJvIGluIEEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2kzMl9zcyAoX19tMTI4IF9fQSwgaW50IF9fQikKewogIGZsb2F0IHRlbXAgPSBfX0I7CiAgX19BWzBdID0gdGVtcDsKCiAgcmV0dXJuIF9fQTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dF9zaTJzcyAoX19tMTI4IF9fQSwgaW50IF9fQikKewogIHJldHVybiBfbW1fY3Z0c2kzMl9zcyAoX19BLCBfX0IpOwp9CgovKiBDb252ZXJ0IEIgdG8gYSBTUEZQIHZhbHVlIGFuZCBpbnNlcnQgaXQgYXMgZWxlbWVudCB6ZXJvIGluIEEuICAqLwovKiBJbnRlbCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2k2NF9zcyAoX19tMTI4IF9fQSwgbG9uZyBsb25nIF9fQikKewogIGZsb2F0IHRlbXAgPSBfX0I7CiAgX19BWzBdID0gdGVtcDsKCiAgcmV0dXJuIF9fQTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTY0eF9zcyAoX19tMTI4IF9fQSwgbG9uZyBsb25nIF9fQikKewogIHJldHVybiBfbW1fY3Z0c2k2NF9zcyAoX19BLCBfX0IpOwp9CgovKiBDb252ZXJ0IHRoZSB0d28gMzItYml0IHZhbHVlcyBpbiBCIHRvIFNQRlAgZm9ybSBhbmQgaW5zZXJ0IHRoZW0KICAgYXMgdGhlIHR3byBsb3dlciBlbGVtZW50cyBpbiBBLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBpMzJfcHMgKF9fbTEyOCAgICAgICAgX19BLCBfX202NCAgICAgICAgX19CKQp7CiAgX192ZWN0b3Igc2lnbmVkIGludCB2bTE7CiAgX192ZWN0b3IgZmxvYXQgdmYxOwoKICB2bTEgPSAoX192ZWN0b3Igc2lnbmVkIGludCkgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykge19fQiwgX19CfTsKICB2ZjEgPSAoX192ZWN0b3IgZmxvYXQpIHZlY19jdGYgKHZtMSwgMCk7CgogIHJldHVybiAoKF9fbTEyOCkgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKICAgIHsgKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmYxKSBbMF0sCgkoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0EpIFsxXX0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0X3BpMnBzIChfX20xMjggX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gX21tX2N2dHBpMzJfcHMgKF9fQSwgX19CKTsKfQoKLyogQ29udmVydCB0aGUgZm91ciBzaWduZWQgMTYtYml0IHZhbHVlcyBpbiBBIHRvIFNQRlAgZm9ybS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwaTE2X3BzIChfX202NCBfX0EpCnsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdnM4OwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgdmk0OwogIF9fdmVjdG9yIGZsb2F0IHZmMTsKCiAgdnM4ID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBfX0EsIF9fQSB9OwogIHZpNCA9IHZlY192dXBrbHNoICh2czgpOwogIHZmMSA9IChfX3ZlY3RvciBmbG9hdCkgdmVjX2N0ZiAodmk0LCAwKTsKCiAgcmV0dXJuIChfX20xMjgpIHZmMTsKfQoKLyogQ29udmVydCB0aGUgZm91ciB1bnNpZ25lZCAxNi1iaXQgdmFsdWVzIGluIEEgdG8gU1BGUCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHB1MTZfcHMgKF9fbTY0IF9fQSkKewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IHplcm8gPQogICAgeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgdnM4OwogIF9fdmVjdG9yIHVuc2lnbmVkIGludCB2aTQ7CiAgX192ZWN0b3IgZmxvYXQgdmYxOwoKICB2czggPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIHsgX19BLCBfX0EgfTsKICB2aTQgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfbWVyZ2VsCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZzOCwgemVybyk7CiNlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoemVybywgdnM4KTsKI2VuZGlmCiAgdmYxID0gKF9fdmVjdG9yIGZsb2F0KSB2ZWNfY3RmICh2aTQsIDApOwoKICByZXR1cm4gKF9fbTEyOCkgdmYxOwp9CgovKiBDb252ZXJ0IHRoZSBsb3cgZm91ciBzaWduZWQgOC1iaXQgdmFsdWVzIGluIEEgdG8gU1BGUCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBpOF9wcyAoX19tNjQgX19BKQp7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgdmMxNjsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdnM4OwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgdmk0OwogIF9fdmVjdG9yIGZsb2F0IHZmMTsKCiAgdmMxNiA9IChfX3ZlY3RvciBzaWduZWQgY2hhcikgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBfX0EsIF9fQSB9OwogIHZzOCA9IHZlY192dXBraHNiICh2YzE2KTsKICB2aTQgPSB2ZWNfdnVwa2hzaCAodnM4KTsKICB2ZjEgPSAoX192ZWN0b3IgZmxvYXQpIHZlY19jdGYgKHZpNCwgMCk7CgogIHJldHVybiAoX19tMTI4KSB2ZjE7Cn0KCi8qIENvbnZlcnQgdGhlIGxvdyBmb3VyIHVuc2lnbmVkIDgtYml0IHZhbHVlcyBpbiBBIHRvIFNQRlAgZm9ybS4gICovCmV4dGVybiBfX2lubGluZSAgX19tMTI4ICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKCl9tbV9jdnRwdThfcHMgKF9fbTY0ICBfX0EpCnsKICBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHplcm8gPQogICAgeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB2YzE2OwogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IHZzODsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgdmk0OwogIF9fdmVjdG9yIGZsb2F0IHZmMTsKCiAgdmMxNiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IF9fQSwgX19BIH07CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZzOCA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkgdmVjX21lcmdlbCAodmMxNiwgemVybyk7CiAgdmk0ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX21lcmdlaCAodnM4LAoJCQkJCSAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpIHplcm8pOwojZWxzZQogIHZzOCA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkgdmVjX21lcmdlbCAoemVybywgdmMxNik7CiAgdmk0ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX21lcmdlaCAoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSB6ZXJvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZzOCk7CiNlbmRpZgogIHZmMSA9IChfX3ZlY3RvciBmbG9hdCkgdmVjX2N0ZiAodmk0LCAwKTsKCiAgcmV0dXJuIChfX20xMjgpIHZmMTsKfQoKLyogQ29udmVydCB0aGUgZm91ciBzaWduZWQgMzItYml0IHZhbHVlcyBpbiBBIGFuZCBCIHRvIFNQRlAgZm9ybS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwaTMyeDJfcHMgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgX192ZWN0b3Igc2lnbmVkIGludCB2aTQ7CiAgX192ZWN0b3IgZmxvYXQgdmY0OwoKICB2aTQgPSAoX192ZWN0b3Igc2lnbmVkIGludCkgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBfX0EsIF9fQiB9OwogIHZmNCA9IChfX3ZlY3RvciBmbG9hdCkgdmVjX2N0ZiAodmk0LCAwKTsKICByZXR1cm4gKF9fbTEyOCkgdmY0Owp9CgovKiBDb252ZXJ0IHRoZSBmb3VyIFNQRlAgdmFsdWVzIGluIEEgdG8gZm91ciBzaWduZWQgMTYtYml0IGludGVnZXJzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cHNfcGkxNiAoX19tMTI4IF9fQSkKewogIF9fdjRzZiByb3VuZGVkOwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgdGVtcDsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0OwoKICByb3VuZGVkID0gdmVjX3JpbnQoX19BKTsKICB0ZW1wID0gdmVjX2N0cyAocm91bmRlZCwgMCk7CiAgcmVzdWx0ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgdmVjX3BhY2sgKHRlbXAsIHRlbXApOwoKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcmVzdWx0KVswXTsKfQoKLyogQ29udmVydCB0aGUgZm91ciBTUEZQIHZhbHVlcyBpbiBBIHRvIGZvdXIgc2lnbmVkIDgtYml0IGludGVnZXJzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cHNfcGk4IChfX20xMjggX19BKQp7CiAgX192NHNmIHJvdW5kZWQ7CiAgX192ZWN0b3Igc2lnbmVkIGludCB0bXBfaTsKICBzdGF0aWMgY29uc3QgX192ZWN0b3Igc2lnbmVkIGludCB6ZXJvID0gezAsIDAsIDAsIDB9OwogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCB0bXBfczsKICBfX3ZlY3RvciBzaWduZWQgY2hhciByZXNfdjsKCiAgcm91bmRlZCA9IHZlY19yaW50KF9fQSk7CiAgdG1wX2kgPSB2ZWNfY3RzIChyb3VuZGVkLCAwKTsKICB0bXBfcyA9IHZlY19wYWNrICh0bXBfaSwgemVybyk7CiAgcmVzX3YgPSB2ZWNfcGFjayAodG1wX3MsIHRtcF9zKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcmVzX3YpWzBdOwp9CgovKiBTZWxlY3RzIGZvdXIgc3BlY2lmaWMgU1BGUCB2YWx1ZXMgZnJvbSBBIGFuZCBCIGJhc2VkIG9uIE1BU0suICAqLwpleHRlcm4gX19pbmxpbmUgIF9fbTEyOCAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCgpfbW1fc2h1ZmZsZV9wcyAoX19tMTI4ICBfX0EsIF9fbTEyOCAgX19CLCBpbnQgY29uc3QgX19tYXNrKQp7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzEwID0gX19tYXNrICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfMzIgPSAoX19tYXNrID4+IDIpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfNTQgPSAoX19tYXNrID4+IDQpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfNzYgPSAoX19tYXNrID4+IDYpICYgMHgwMzsKICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHBlcm11dGVfc2VsZWN0b3JzWzRdID0KICAgIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIDB4MDMwMjAxMDAsIDB4MDcwNjA1MDQsIDB4MEIwQTA5MDgsIDB4MEYwRTBEMEMKI2Vsc2UKICAgICAgMHgwMDAxMDIwMywgMHgwNDA1MDYwNywgMHgwODA5MEEwQiwgMHgwQzBEMEUwRgojZW5kaWYKICAgIH07CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IHQ7CgogIHRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzEwXTsKICB0WzFdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8zMl07CiAgdFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNTRdICsgMHgxMDEwMTAxMDsKICB0WzNdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl83Nl0gKyAweDEwMTAxMDEwOwogIHJldHVybiB2ZWNfcGVybSAoKF9fdjRzZikgX19BLCAoX192NHNmKV9fQiwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdCk7Cn0KCi8qIFNlbGVjdHMgYW5kIGludGVybGVhdmVzIHRoZSB1cHBlciB0d28gU1BGUCB2YWx1ZXMgZnJvbSBBIGFuZCBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2hpX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIHZlY192bXJnbHcgKChfX3Y0c2YpIF9fQSwgKF9fdjRzZilfX0IpOwp9CgovKiBTZWxlY3RzIGFuZCBpbnRlcmxlYXZlcyB0aGUgbG93ZXIgdHdvIFNQRlAgdmFsdWVzIGZyb20gQSBhbmQgQi4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2tsb19wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSB2ZWNfdm1yZ2h3ICgoX192NHNmKSBfX0EsIChfX3Y0c2YpX19CKTsKfQoKLyogU2V0cyB0aGUgdXBwZXIgdHdvIFNQRlAgdmFsdWVzIHdpdGggNjQtYml0cyBvZiBkYXRhIGxvYWRlZCBmcm9tIFA7CiAgIHRoZSBsb3dlciB0d28gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBmcm9tIEEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZGhfcGkgKF9fbTEyOCBfX0EsIF9fbTY0IGNvbnN0ICpfX1ApCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0E7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcCA9IHZlY19zcGxhdHMoKl9fUCk7CiAgX19hIFsxXSA9IF9fcCBbMV07CgogIHJldHVybiAoX19tMTI4KV9fYTsKfQoKLyogU3RvcmVzIHRoZSB1cHBlciB0d28gU1BGUCB2YWx1ZXMgb2YgQSBpbnRvIFAuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlaF9waSAoX19tNjQgKl9fUCwgX19tMTI4IF9fQSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSBfX0E7CgogICpfX1AgPSBfX2FbMV07Cn0KCi8qIE1vdmVzIHRoZSB1cHBlciB0d28gdmFsdWVzIG9mIEIgaW50byB0aGUgbG93ZXIgdHdvIHZhbHVlcyBvZiBBLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVobF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSB2ZWNfbWVyZ2VsICgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQiwKCQkJICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0EpOwp9CgovKiBNb3ZlcyB0aGUgbG93ZXIgdHdvIHZhbHVlcyBvZiBCIGludG8gdGhlIHVwcGVyIHR3byB2YWx1ZXMgb2YgQS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlbGhfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgdmVjX21lcmdlaCAoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0EsCgkJCSAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19CKTsKfQoKLyogU2V0cyB0aGUgbG93ZXIgdHdvIFNQRlAgdmFsdWVzIHdpdGggNjQtYml0cyBvZiBkYXRhIGxvYWRlZCBmcm9tIFA7CiAgIHRoZSB1cHBlciB0d28gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBmcm9tIEEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZGxfcGkgKF9fbTEyOCBfX0EsIF9fbTY0IGNvbnN0ICpfX1ApCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0E7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcCA9IHZlY19zcGxhdHMoKl9fUCk7CiAgX19hIFswXSA9IF9fcCBbMF07CgogIHJldHVybiAoX19tMTI4KV9fYTsKfQoKLyogU3RvcmVzIHRoZSBsb3dlciB0d28gU1BGUCB2YWx1ZXMgb2YgQSBpbnRvIFAuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlbF9waSAoX19tNjQgKl9fUCwgX19tMTI4IF9fQSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSBfX0E7CgogICpfX1AgPSBfX2FbMF07Cn0KCiNpZmRlZiBfQVJDSF9QV1I4Ci8qIEludHJpbnNpYyBmdW5jdGlvbnMgdGhhdCByZXF1aXJlIFBvd2VySVNBIDIuMDcgbWluaW11bS4gICovCgovKiBDcmVhdGVzIGEgNC1iaXQgbWFzayBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIFNQRlAgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVtYXNrX3BzIChfX20xMjggIF9fQSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBwZXJtX21hc2sgPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCTB4MDAyMDQwNjAsIDB4ODA4MDgwODAsIDB4ODA4MDgwODAsIDB4ODA4MDgwODAKI2Vsc2UKICAgICAgMHg4MDgwODA4MCwgMHg4MDgwODA4MCwgMHg4MDgwODA4MCwgMHgwMDIwNDA2MAojZW5kaWYKICAgIH07CgogIHJlc3VsdCA9ICgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQoJICAgIHZlY192YnBlcm1xICgoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19BLAoJCQkgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIHBlcm1fbWFzaykpOwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHJlc3VsdFsxXTsKI2Vsc2UKICByZXR1cm4gcmVzdWx0WzBdOwojZW5kaWYKfQojZW5kaWYgLyogX0FSQ0hfUFdSOCAqLwoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggYWxsIGZvdXIgZWxlbWVudHMgZXF1YWwgdG8gKlAuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZDFfcHMgKGZsb2F0IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gX21tX3NldDFfcHMgKCpfX1ApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZF9wczEgKGZsb2F0IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gX21tX2xvYWQxX3BzIChfX1ApOwp9CgovKiBFeHRyYWN0cyBvbmUgb2YgdGhlIGZvdXIgd29yZHMgb2YgQS4gIFRoZSBzZWxlY3RvciBOIG11c3QgYmUgaW1tZWRpYXRlLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2V4dHJhY3RfcGkxNiAoX19tNjQgY29uc3QgX19BLCBpbnQgY29uc3QgX19OKQp7CiAgdW5zaWduZWQgaW50IHNoaWZ0ciA9IF9fTiAmIDM7CiNpZmRlZiBfX0JJR19FTkRJQU5fXwogIHNoaWZ0ciA9IDMgLSBzaGlmdHI7CiNlbmRpZgoKICByZXR1cm4gKChfX0EgPj4gKHNoaWZ0ciAqIDE2KSkgJiAweGZmZmYpOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wZXh0cncgKF9fbTY0IGNvbnN0IF9fQSwgaW50IGNvbnN0IF9fTikKewogIHJldHVybiBfbW1fZXh0cmFjdF9waTE2IChfX0EsIF9fTik7Cn0KCi8qIEluc2VydHMgd29yZCBEIGludG8gb25lIG9mIGZvdXIgd29yZHMgb2YgQS4gIFRoZSBzZWxlY3RvciBOIG11c3QgYmUKICAgaW1tZWRpYXRlLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faW5zZXJ0X3BpMTYgKF9fbTY0IGNvbnN0IF9fQSwgaW50IGNvbnN0IF9fRCwgaW50IGNvbnN0IF9fTikKewogIGNvbnN0IGludCBzaGlmdGwgPSAoX19OICYgMykgKiAxNjsKICBjb25zdCBfX202NCBzaGlmdEQgPSAoY29uc3QgX19tNjQpIF9fRCA8PCBzaGlmdGw7CiAgY29uc3QgX19tNjQgbWFzayA9IDB4ZmZmZlVMIDw8IHNoaWZ0bDsKICBfX202NCByZXN1bHQgPSAoX19BICYgKH5tYXNrKSkgfCAoc2hpZnREICYgbWFzayk7CgogIHJldHVybiAocmVzdWx0KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9waW5zcncgKF9fbTY0IGNvbnN0IF9fQSwgaW50IGNvbnN0IF9fRCwgaW50IGNvbnN0IF9fTikKewogIHJldHVybiBfbW1faW5zZXJ0X3BpMTYgKF9fQSwgX19ELCBfX04pOwp9CgovKiBDb21wdXRlIHRoZSBlbGVtZW50LXdpc2UgbWF4aW11bSBvZiBzaWduZWQgMTYtYml0IHZhbHVlcy4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKCl9tbV9tYXhfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgcjsKICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzIChfX0IpOwogIGMgPSAoX192ZWN0b3IgX19ib29sIHNob3J0KXZlY19jbXBndCAoYSwgYik7CiAgciA9IHZlY19zZWwgKGIsIGEsIGMpOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19BOwogIG0yLmFzX202NCA9IF9fQjsKCiAgcmVzLmFzX3Nob3J0WzBdID0KICAgICAgKG0xLmFzX3Nob3J0WzBdID4gbTIuYXNfc2hvcnRbMF0pID8gbTEuYXNfc2hvcnRbMF0gOiBtMi5hc19zaG9ydFswXTsKICByZXMuYXNfc2hvcnRbMV0gPQogICAgICAobTEuYXNfc2hvcnRbMV0gPiBtMi5hc19zaG9ydFsxXSkgPyBtMS5hc19zaG9ydFsxXSA6IG0yLmFzX3Nob3J0WzFdOwogIHJlcy5hc19zaG9ydFsyXSA9CiAgICAgIChtMS5hc19zaG9ydFsyXSA+IG0yLmFzX3Nob3J0WzJdKSA/IG0xLmFzX3Nob3J0WzJdIDogbTIuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzNdID0KICAgICAgKG0xLmFzX3Nob3J0WzNdID4gbTIuYXNfc2hvcnRbM10pID8gbTEuYXNfc2hvcnRbM10gOiBtMi5hc19zaG9ydFszXTsKCiAgcmV0dXJuIChfX202NCkgcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcG1heHN3IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fbWF4X3BpMTYgKF9fQSwgX19CKTsKfQoKLyogQ29tcHV0ZSB0aGUgZWxlbWVudC13aXNlIG1heGltdW0gb2YgdW5zaWduZWQgOC1iaXQgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGIsIHI7CiAgX192ZWN0b3IgX19ib29sIGNoYXIgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMgKF9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMgKF9fQik7CiAgYyA9IChfX3ZlY3RvciBfX2Jvb2wgY2hhcil2ZWNfY21wZ3QgKGEsIGIpOwogIHIgPSB2ZWNfc2VsIChiLCBhLCBjKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcilbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CiAgbG9uZyBpOwoKICBtMS5hc19tNjQgPSBfX0E7CiAgbTIuYXNfbTY0ID0gX19COwoKCiAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykKICByZXMuYXNfY2hhcltpXSA9CiAgICAgICgodW5zaWduZWQgY2hhcikgbTEuYXNfY2hhcltpXSA+ICh1bnNpZ25lZCBjaGFyKSBtMi5hc19jaGFyW2ldKSA/CgkgIG0xLmFzX2NoYXJbaV0gOiBtMi5hc19jaGFyW2ldOwoKICByZXR1cm4gKF9fbTY0KSByZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wbWF4dWIgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXhfcHU4IChfX0EsIF9fQik7Cn0KCi8qIENvbXB1dGUgdGhlIGVsZW1lbnQtd2lzZSBtaW5pbXVtIG9mIHNpZ25lZCAxNi1iaXQgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWluX3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIHI7CiAgX192ZWN0b3IgX19ib29sIHNob3J0IGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyAoX19CKTsKICBjID0gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCl2ZWNfY21wbHQgKGEsIGIpOwogIHIgPSB2ZWNfc2VsIChiLCBhLCBjKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcilbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fQTsKICBtMi5hc19tNjQgPSBfX0I7CgogIHJlcy5hc19zaG9ydFswXSA9CiAgICAgIChtMS5hc19zaG9ydFswXSA8IG0yLmFzX3Nob3J0WzBdKSA/IG0xLmFzX3Nob3J0WzBdIDogbTIuYXNfc2hvcnRbMF07CiAgcmVzLmFzX3Nob3J0WzFdID0KICAgICAgKG0xLmFzX3Nob3J0WzFdIDwgbTIuYXNfc2hvcnRbMV0pID8gbTEuYXNfc2hvcnRbMV0gOiBtMi5hc19zaG9ydFsxXTsKICByZXMuYXNfc2hvcnRbMl0gPQogICAgICAobTEuYXNfc2hvcnRbMl0gPCBtMi5hc19zaG9ydFsyXSkgPyBtMS5hc19zaG9ydFsyXSA6IG0yLmFzX3Nob3J0WzJdOwogIHJlcy5hc19zaG9ydFszXSA9CiAgICAgIChtMS5hc19zaG9ydFszXSA8IG0yLmFzX3Nob3J0WzNdKSA/IG0xLmFzX3Nob3J0WzNdIDogbTIuYXNfc2hvcnRbM107CgogIHJldHVybiAoX19tNjQpIHJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BtaW5zdyAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gX21tX21pbl9waTE2IChfX0EsIF9fQik7Cn0KCi8qIENvbXB1dGUgdGhlIGVsZW1lbnQtd2lzZSBtaW5pbXVtIG9mIHVuc2lnbmVkIDgtYml0IHZhbHVlcy4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9wdTggKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBhLCBiLCByOwogIF9fdmVjdG9yIF9fYm9vbCBjaGFyIGM7CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzIChfX0EpOwogIGIgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzIChfX0IpOwogIGMgPSAoX192ZWN0b3IgX19ib29sIGNoYXIpdmVjX2NtcGx0IChhLCBiKTsKICByID0gdmVjX3NlbCAoYiwgYSwgYyk7CiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIHIpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwogIGxvbmcgaTsKCiAgbTEuYXNfbTY0ID0gX19BOwogIG0yLmFzX202NCA9IF9fQjsKCgogIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspCiAgcmVzLmFzX2NoYXJbaV0gPQogICAgICAoKHVuc2lnbmVkIGNoYXIpIG0xLmFzX2NoYXJbaV0gPCAodW5zaWduZWQgY2hhcikgbTIuYXNfY2hhcltpXSkgPwoJICBtMS5hc19jaGFyW2ldIDogbTIuYXNfY2hhcltpXTsKCiAgcmV0dXJuIChfX202NCkgcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcG1pbnViIChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fbWluX3B1OCAoX19BLCBfX0IpOwp9CgovKiBDcmVhdGUgYW4gOC1iaXQgbWFzayBvZiB0aGUgc2lnbnMgb2YgOC1iaXQgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVtYXNrX3BpOCAoX19tNjQgX19BKQp7CiAgdW5zaWduZWQgbG9uZyBsb25nIHAgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODEwMTgyMDI4MzAzOFVMOyAvLyBwZXJtdXRlIGNvbnRyb2wgZm9yIHNpZ24gYml0cwojZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgMHgzODMwMjgyMDE4MTAwODAwVUw7IC8vIHBlcm11dGUgY29udHJvbCBmb3Igc2lnbiBiaXRzCiNlbmRpZgogIHJldHVybiBfX2J1aWx0aW5fYnBlcm1kIChwLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wbW92bXNrYiAoX19tNjQgX19BKQp7CiAgcmV0dXJuIF9tbV9tb3ZlbWFza19waTggKF9fQSk7Cn0KCi8qIE11bHRpcGx5IGZvdXIgdW5zaWduZWQgMTYtYml0IHZhbHVlcyBpbiBBIGJ5IGZvdXIgdW5zaWduZWQgMTYtYml0IHZhbHVlcwogICBpbiBCIGFuZCBwcm9kdWNlIHRoZSBoaWdoIDE2IGJpdHMgb2YgdGhlIDMyLWJpdCByZXN1bHRzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsaGlfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiOwogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IGM7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IHcwLCB3MTsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHhmb3JtMSA9IHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIDB4MDIsIDB4MDMsIDB4MTIsIDB4MTMsICAweDA2LCAweDA3LCAweDE2LCAweDE3LAogICAgICAweDBBLCAweDBCLCAweDFBLCAweDFCLCAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRgojZWxzZQogICAgICAweDAwLCAweDAxLCAweDEwLCAweDExLCAgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUKI2VuZGlmCiAgICB9OwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzIChfX0IpOwoKICB3MCA9IHZlY192bXVsZXVoIChhLCBiKTsKICB3MSA9IHZlY192bXVsb3VoIChhLCBiKTsKICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19wZXJtICh3MCwgdzEsIHhmb3JtMSk7CgogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSBjKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wbXVsaHV3IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fbXVsaGlfcHUxNiAoX19BLCBfX0IpOwp9CgovKiBSZXR1cm4gYSBjb21iaW5hdGlvbiBvZiB0aGUgZm91ciAxNi1iaXQgdmFsdWVzIGluIEEuICBUaGUgc2VsZWN0b3IKICAgbXVzdCBiZSBhbiBpbW1lZGlhdGUuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaHVmZmxlX3BpMTYgKF9fbTY0IF9fQSwgaW50IGNvbnN0IF9fTikKewogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8xMCA9IF9fTiAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzMyID0gKF9fTiA+PiAyKSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzU0ID0gKF9fTiA+PiA0KSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzc2ID0gKF9fTiA+PiA2KSAmIDB4MDM7CiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHBlcm11dGVfc2VsZWN0b3JzWzRdID0KICAgIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCgkgICAgICAweDA5MDgsIDB4MEIwQSwgMHgwRDBDLCAweDBGMEUKI2Vsc2UKCSAgICAgIDB4MDYwNywgMHgwNDA1LCAweDAyMDMsIDB4MDAwMQojZW5kaWYKICAgIH07CiAgX19tNjRfdW5pb24gdDsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgYSwgcCwgcjsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHQuYXNfc2hvcnRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzEwXTsKICB0LmFzX3Nob3J0WzFdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8zMl07CiAgdC5hc19zaG9ydFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNTRdOwogIHQuYXNfc2hvcnRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzc2XTsKI2Vsc2UKICB0LmFzX3Nob3J0WzNdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8xMF07CiAgdC5hc19zaG9ydFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfMzJdOwogIHQuYXNfc2hvcnRbMV0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzU0XTsKICB0LmFzX3Nob3J0WzBdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl83Nl07CiNlbmRpZgogIHAgPSB2ZWNfc3BsYXRzICh0LmFzX202NCk7CiAgYSA9IHZlY19zcGxhdHMgKF9fQSk7CiAgciA9IHZlY19wZXJtIChhLCBhLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilwKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcilbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcHNodWZ3IChfX202NCBfX0EsIGludCBjb25zdCBfX04pCnsKICByZXR1cm4gX21tX3NodWZmbGVfcGkxNiAoX19BLCBfX04pOwp9CgovKiBDb25kaXRpb25hbGx5IHN0b3JlIGJ5dGUgZWxlbWVudHMgb2YgQSBpbnRvIFAuICBUaGUgaGlnaCBiaXQgb2YgZWFjaAogICBieXRlIGluIHRoZSBzZWxlY3RvciBOIGRldGVybWluZXMgd2hldGhlciB0aGUgY29ycmVzcG9uZGluZyBieXRlIGZyb20KICAgQSBpcyBzdG9yZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21hc2ttb3ZlX3NpNjQgKF9fbTY0IF9fQSwgX19tNjQgX19OLCBjaGFyICpfX1ApCnsKICBfX202NCBoaWJpdCA9IDB4ODA4MDgwODA4MDgwODA4MFVMOwogIF9fbTY0IG1hc2ssIHRtcDsKICBfX202NCAqcCA9IChfX202NCopX19QOwoKICB0bXAgPSAqcDsKICBtYXNrID0gX21tX2NtcGVxX3BpOCAoKF9fTiAmIGhpYml0KSwgaGliaXQpOwogIHRtcCA9ICh0bXAgJiAofm1hc2spKSB8IChfX0EgJiBtYXNrKTsKICAqcCA9IHRtcDsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX21hc2ttb3ZxIChfX202NCBfX0EsIF9fbTY0IF9fTiwgY2hhciAqX19QKQp7CiAgX21tX21hc2ttb3ZlX3NpNjQgKF9fQSwgX19OLCBfX1ApOwp9CgovKiBDb21wdXRlIHRoZSByb3VuZGVkIGF2ZXJhZ2VzIG9mIHRoZSB1bnNpZ25lZCA4LWJpdCB2YWx1ZXMgaW4gQSBhbmQgQi4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2F2Z19wdTggKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyAoX19CKTsKICBjID0gdmVjX2F2ZyAoYSwgYik7CiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIGMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BhdmdiIChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fYXZnX3B1OCAoX19BLCBfX0IpOwp9CgovKiBDb21wdXRlIHRoZSByb3VuZGVkIGF2ZXJhZ2VzIG9mIHRoZSB1bnNpZ25lZCAxNi1iaXQgdmFsdWVzIGluIEEgYW5kIEIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hdmdfcHUxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzIChfX0IpOwogIGMgPSB2ZWNfYXZnIChhLCBiKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcGF2Z3cgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9hdmdfcHUxNiAoX19BLCBfX0IpOwp9CgovKiBDb21wdXRlIHRoZSBzdW0gb2YgdGhlIGFic29sdXRlIGRpZmZlcmVuY2VzIG9mIHRoZSB1bnNpZ25lZCA4LWJpdAogICB2YWx1ZXMgaW4gQSBhbmQgQi4gIFJldHVybiB0aGUgdmFsdWUgaW4gdGhlIGxvd2VyIDE2LWJpdCB3b3JkOyB0aGUKICAgdXBwZXIgd29yZHMgYXJlIGNsZWFyZWQuICAqLwpleHRlcm4gX19pbmxpbmUgICAgX19tNjQgICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zYWRfcHU4IChfX202NCAgX19BLCBfX202NCAgX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBhLCBiOwogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgdm1pbiwgdm1heCwgdmFic2RpZmY7CiAgX192ZWN0b3Igc2lnbmVkIGludCB2c3VtOwogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCB6ZXJvID0KICAgIHsgMCwgMCwgMCwgMCB9OwogIF9fbTY0X3VuaW9uIHJlc3VsdCA9IHswfTsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IDBVTCwgX19BIH07CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IDBVTCwgX19CIH07CiAgdm1pbiA9IHZlY19taW4gKGEsIGIpOwogIHZtYXggPSB2ZWNfbWF4IChhLCBiKTsKICB2YWJzZGlmZiA9IHZlY19zdWIgKHZtYXgsIHZtaW4pOwogIC8qIFN1bSBmb3VyIGdyb3VwcyBvZiBieXRlcyBpbnRvIGludGVnZXJzLiAgKi8KICB2c3VtID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpIHZlY19zdW00cyAodmFic2RpZmYsIHplcm8pOwogIC8qIFN1bSBhY3Jvc3MgZm91ciBpbnRlZ2VycyB3aXRoIGludGVnZXIgcmVzdWx0LiAgKi8KICB2c3VtID0gdmVjX3N1bXMgKHZzdW0sIChfX3ZlY3RvciBzaWduZWQgaW50KSB6ZXJvKTsKICAvKiBUaGUgc3VtIGlzIGluIHRoZSByaWdodCBtb3N0IDMyLWJpdHMgb2YgdGhlIHZlY3RvciByZXN1bHQuCiAgICAgVHJhbnNmZXIgdG8gYSBHUFIgYW5kIHRydW5jYXRlIHRvIDE2IGJpdHMuICAqLwogIHJlc3VsdC5hc19zaG9ydFswXSA9IHZzdW1bM107CiAgcmV0dXJuIHJlc3VsdC5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcHNhZGJ3IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fc2FkX3B1OCAoX19BLCBfX0IpOwp9CgovKiBTdG9yZXMgdGhlIGRhdGEgaW4gQSB0byB0aGUgYWRkcmVzcyBQIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBjYWNoZXMuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0cmVhbV9waSAoX19tNjQgKl9fUCwgX19tNjQgX19BKQp7CiAgLyogVXNlIHRoZSBkYXRhIGNhY2hlIGJsb2NrIHRvdWNoIGZvciBzdG9yZSB0cmFuc2llbnQuICAqLwogIF9fYXNtX18gKAogICAgIglkY2J0c3R0CTAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19QKQogICAgOiAibWVtb3J5IgogICk7CiAgKl9fUCA9IF9fQTsKfQoKLyogTGlrZXdpc2UuICBUaGUgYWRkcmVzcyBtdXN0IGJlIDE2LWJ5dGUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RyZWFtX3BzIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgLyogVXNlIHRoZSBkYXRhIGNhY2hlIGJsb2NrIHRvdWNoIGZvciBzdG9yZSB0cmFuc2llbnQuICAqLwogIF9fYXNtX18gKAogICAgIglkY2J0c3R0CTAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19QKQogICAgOiAibWVtb3J5IgogICk7CiAgX21tX3N0b3JlX3BzIChfX1AsIF9fQSk7Cn0KCi8qIEd1YXJhbnRlZXMgdGhhdCBldmVyeSBwcmVjZWRpbmcgc3RvcmUgaXMgZ2xvYmFsbHkgdmlzaWJsZSBiZWZvcmUKICAgYW55IHN1YnNlcXVlbnQgc3RvcmUuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NmZW5jZSAodm9pZCkKewogIC8qIEdlbmVyYXRlIGEgbGlnaHQgd2VpZ2h0IHN5bmMuICAqLwogIF9fYXRvbWljX3RocmVhZF9mZW5jZSAoX19BVE9NSUNfUkVMRUFTRSk7Cn0KCi8qIFRoZSBleGVjdXRpb24gb2YgdGhlIG5leHQgaW5zdHJ1Y3Rpb24gaXMgZGVsYXllZCBieSBhbiBpbXBsZW1lbnRhdGlvbgogICBzcGVjaWZpYyBhbW91bnQgb2YgdGltZS4gIFRoZSBpbnN0cnVjdGlvbiBkb2VzIG5vdCBtb2RpZnkgdGhlCiAgIGFyY2hpdGVjdHVyYWwgc3RhdGUuICBUaGlzIGlzIGFmdGVyIHRoZSBwb3Bfb3B0aW9ucyBwcmFnbWEgYmVjYXVzZQogICBpdCBkb2VzIG5vdCByZXF1aXJlIFNTRSBzdXBwb3J0IGluIHRoZSBwcm9jZXNzb3ItLXRoZSBlbmNvZGluZyBpcyBhCiAgIG5vcCBvbiBwcm9jZXNzb3JzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3BhdXNlICh2b2lkKQp7CiAgLyogVGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2ggd2l0aCB0aGlzIGNvbnN0cnVjdCwgYnV0IHRoZSBmb2xsb3dpbmcgaXMKICAgICBjbG9zZSB0byB0aGUgZGVzaXJlZCBlZmZlY3QuICAqLwojaWYgX0FSQ0hfUFdSOAogIC8qIE9uIHBvd2VyOCBhbmQgbGF0ZXIgcHJvY2Vzc29ycyB3ZSBjYW4gZGVwZW5kIG9uIFByb2dyYW0gUHJpb3JpdHkKICAgICAoUFJJKSBhbmQgYXNzb2NpYXRlZCAidmVyeSBsb3ciIFBQSSBzZXR0aW5nLiAgU2luY2Ugd2UgZG9uJ3Qga25vdwogICAgIHdoYXQgUFBJIHRoaXMgdGhyZWFkIGlzIHJ1bm5pbmcgYXQgd2U6IDEpIHNhdmUgdGhlIGN1cnJlbnQgUFJJCiAgICAgZnJvbSB0aGUgUFBSIFNQUiBpbnRvIGEgbG9jYWwgR1JQLCAyKSBzZXQgdGhlIFBSSSB0byAidmVyeSBsb3cqCiAgICAgdmlhIHRoZSBzcGVjaWFsIG9yIDMxLDMxLDMxIGVuY29kaW5nLiAzKSBpc3N1ZSBhbiAiaXN5bmMiIHRvCiAgICAgaW5zdXJlIHRoZSBQUkkgY2hhbmdlIHRha2VzIGVmZmVjdCBiZWZvcmUgd2UgZXhlY3V0ZSBhbnkgbW9yZQogICAgIGluc3RydWN0aW9ucy4KICAgICBOb3cgd2UgY2FuIGV4ZWN1dGUgYSBsd3N5bmMgKHJlbGVhc2UgYmFycmllcikgd2hpbGUgd2UgZXhlY3V0ZQogICAgIHRoaXMgdGhyZWFkIGF0ICJ2ZXJ5IGxvdyIgUFJJLiAgRmluYWxseSB3ZSByZXN0b3JlIHRoZSBvcmlnaW5hbAogICAgIFBSSSBhbmQgY29udGludWUgZXhlY3V0aW9uLiAgKi8KICB1bnNpZ25lZCBsb25nIF9fUFBSOwoKICBfX2FzbV9fIHZvbGF0aWxlICgKICAgICIJbWZwcHIJJTA7IgogICAgIiAgIG9yIDMxLDMxLDMxOyIKICAgICIgICBpc3luYzsiCiAgICAiICAgbHdzeW5jOyIKICAgICIgICBpc3luYzsiCiAgICAiICAgbXRwcHIJJTA7IgogICAgOiAiPXIiIChfX1BQUikKICAgIDoKICAgIDogIm1lbW9yeSIKICApOwojZWxzZQogIC8qIEZvciBvbGRlciBwcm9jZXNzb3Igd2hlcmUgd2UgbWF5IG5vdCBldmVuIGhhdmUgUHJvZ3JhbSBQcmlvcml0eQogICAgIGNvbnRyb2xzIHdlIGNhbiBvbmx5IGRlcGVuZCBvbiBIZWF2eSBXZWlnaHQgU3luYy4gICovCiAgX19hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19TRVFfQ1NUKTsKI2VuZGlmCn0KCi8qIFRyYW5zcG9zZSB0aGUgNHg0IG1hdHJpeCBjb21wb3NlZCBvZiByb3dbMC0zXS4gICovCiNkZWZpbmUgX01NX1RSQU5TUE9TRTRfUFMocm93MCwgcm93MSwgcm93Miwgcm93MykJCQlcCmRvIHsJCQkJCQkJCQlcCiAgX192NHNmIF9fcjAgPSAocm93MCksIF9fcjEgPSAocm93MSksIF9fcjIgPSAocm93MiksIF9fcjMgPSAocm93Myk7CVwKICBfX3Y0c2YgX190MCA9IHZlY192bXJnaHcgKF9fcjAsIF9fcjEpOwkJCVwKICBfX3Y0c2YgX190MSA9IHZlY192bXJnaHcgKF9fcjIsIF9fcjMpOwkJCVwKICBfX3Y0c2YgX190MiA9IHZlY192bXJnbHcgKF9fcjAsIF9fcjEpOwkJCVwKICBfX3Y0c2YgX190MyA9IHZlY192bXJnbHcgKF9fcjIsIF9fcjMpOwkJCVwKICAocm93MCkgPSAoX192NHNmKXZlY19tZXJnZWggKChfX3ZlY3RvciBsb25nIGxvbmcpX190MCwgCVwKCQkJICAgICAgIChfX3ZlY3RvciBsb25nIGxvbmcpX190MSk7CVwKICAocm93MSkgPSAoX192NHNmKXZlY19tZXJnZWwgKChfX3ZlY3RvciBsb25nIGxvbmcpX190MCwJXAoJCQkgICAgICAgKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QxKTsJXAogIChyb3cyKSA9IChfX3Y0c2YpdmVjX21lcmdlaCAoKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QyLAlcCgkJCSAgICAgICAoX192ZWN0b3IgbG9uZyBsb25nKV9fdDMpOwlcCiAgKHJvdzMpID0gKF9fdjRzZil2ZWNfbWVyZ2VsICgoX192ZWN0b3IgbG9uZyBsb25nKV9fdDIsCVwKCQkJICAgICAgIChfX3ZlY3RvciBsb25nIGxvbmcpX190Myk7CVwKfSB3aGlsZSAoMCkKCi8qIEZvciBiYWNrd2FyZCBzb3VyY2UgY29tcGF0aWJpbGl0eS4gICovCi8vIyBpbmNsdWRlIDxlbW1pbnRyaW4uaD4KCiNlbHNlCiNpbmNsdWRlX25leHQgPHhtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIF9YTU1JTlRSSU5fSF9JTkNMVURFRCAqLwoALy89PT0tLSBzYW5pdGl6ZXIvYXNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBIV0FkZHJlc3NTYW5pdGl6ZXIuCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9IV0FTQU5fSU5URVJGQUNFX0gKI2RlZmluZSBTQU5JVElaRVJfSFdBU0FOX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKICAvLyBMaWJjIGhvb2sgZm9yIHByb2dyYW0gc3RhcnR1cCBpbiBzdGF0aWNhbGx5IGxpbmtlZCBleGVjdXRhYmxlcy4KICAvLyBJbml0aWFsaXplcyBlbm91Z2ggb2YgdGhlIHJ1bnRpbWUgdG8gcnVuIGluc3RydW1lbnRlZCBjb2RlLiBUaGlzIGZ1bmN0aW9uCiAgLy8gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGluIHN0YXRpY2FsbHkgbGlua2VkIGV4ZWN1dGFibGVzIGJlY2F1c2UgaXQgbW9kaWZpZXMKICAvLyB0aGUgR09ULCB3aGljaCB3b24ndCB3b3JrIGluIHJlZ3VsYXIgYmluYXJpZXMgYmVjYXVzZSBSRUxSTyB3aWxsIGFscmVhZHkKICAvLyBoYXZlIGJlZW4gYXBwbGllZCBieSB0aGUgdGltZSB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkLiBUaGlzIGFsc28gbWVhbnMgdGhhdAogIC8vIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBsaWJjIGFwcGxpZXMgUkVMUk8uCiAgLy8gRG9lcyBub3QgY2FsbCBsaWJjIHVubGVzcyB0aGVyZSBpcyBhbiBlcnJvci4KICAvLyBDYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgogIHZvaWQgX19od2FzYW5faW5pdF9zdGF0aWModm9pZCk7CgogIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgdXNlciBhbmQgc2hvdWxkIHJldHVybgogIC8vIGEgc3RyaW5nIGNvbnRhaW5pbmcgSFdBU2FuIHJ1bnRpbWUgb3B0aW9ucy4gU2VlIGFzYW5fZmxhZ3MuaCBmb3IgZGV0YWlscy4KICBjb25zdCBjaGFyKiBfX2h3YXNhbl9kZWZhdWx0X29wdGlvbnModm9pZCk7CgogIHZvaWQgX19od2FzYW5fZW5hYmxlX2FsbG9jYXRvcl90YWdnaW5nKHZvaWQpOwogIHZvaWQgX19od2FzYW5fZGlzYWJsZV9hbGxvY2F0b3JfdGFnZ2luZyh2b2lkKTsKCiAgLy8gTWFyayByZWdpb24gb2YgbWVtb3J5IHdpdGggdGhlIGdpdmVuIHRhZy4gQm90aCBhZGRyZXNzIGFuZCBzaXplIG5lZWQgdG8gYmUKICAvLyAxNi1ieXRlIGFsaWduZWQuCiAgdm9pZCBfX2h3YXNhbl90YWdfbWVtb3J5KGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGNoYXIgdGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CgogIC8vLyBTZXQgcG9pbnRlciB0YWcuIFByZXZpb3VzIHRhZyBpcyBsb3N0LgogIHZvaWQgKl9faHdhc2FuX3RhZ19wb2ludGVyKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnAsIHVuc2lnbmVkIGNoYXIgdGFnKTsKCiAgLy8gU2V0IG1lbW9yeSB0YWcgZnJvbSB0aGUgY3VycmVudCBTUCBhZGRyZXNzIHRvIHRoZSBnaXZlbiBhZGRyZXNzIHRvIHplcm8uCiAgLy8gVGhpcyBpcyBtZWFudCB0byBhbm5vdGF0ZSBsb25nam1wIGFuZCBvdGhlciBub24tbG9jYWwganVtcHMuCiAgLy8gVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBrbm93IHRoZSAoYWxtb3N0KSBleGFjdCBkZXN0aW5hdGlvbiBmcmFtZSBhZGRyZXNzOwogIC8vIGNsZWFyaW5nIHNoYWRvdyBmb3IgdGhlIGVudGlyZSB0aHJlYWQgc3RhY2sgbGlrZSBfX2FzYW5faGFuZGxlX25vX3JldHVybgogIC8vIGRvZXMgd291bGQgY2F1c2UgZmFsc2UgcmVwb3J0cy4KICB2b2lkIF9faHdhc2FuX2hhbmRsZV9sb25nam1wKGNvbnN0IHZvaWQgKnNwX2RzdCk7CgogIC8vIFNldCBtZW1vcnkgdGFnIGZvciB0aGUgcGFydCBvZiB0aGUgY3VycmVudCB0aHJlYWQgc3RhY2sgYmVsb3cgc3BfZHN0IHRvCiAgLy8gemVyby4gQ2FsbCB0aGlzIGluIHZmb3JrKCkgYmVmb3JlIHJldHVybmluZyBpbiB0aGUgcGFyZW50IHByb2Nlc3MuCiAgdm9pZCBfX2h3YXNhbl9oYW5kbGVfdmZvcmsoY29uc3Qgdm9pZCAqc3BfZHN0KTsKCiAgLy8gTGliYyBob29rIGZvciB0aHJlYWQgY3JlYXRpb24uIFNob3VsZCBiZSBjYWxsZWQgaW4gdGhlIGNoaWxkIHRocmVhZCBiZWZvcmUKICAvLyBhbnkgaW5zdHJ1bWVudGVkIGNvZGUuCiAgdm9pZCBfX2h3YXNhbl90aHJlYWRfZW50ZXIoKTsKCiAgLy8gTGliYyBob29rIGZvciB0aHJlYWQgZGVzdHJ1Y3Rpb24uIE5vIGluc3RydW1lbnRlZCBjb2RlIHNob3VsZCBydW4gYWZ0ZXIKICAvLyB0aGlzIGNhbGwuCiAgdm9pZCBfX2h3YXNhbl90aHJlYWRfZXhpdCgpOwoKICAvLyBQcmludCBzaGFkb3cgYW5kIG9yaWdpbiBmb3IgdGhlIG1lbW9yeSByYW5nZSB0byBzdGRlcnIgaW4gYSBodW1hbi1yZWFkYWJsZQogIC8vIGZvcm1hdC4KICB2b2lkIF9faHdhc2FuX3ByaW50X3NoYWRvdyhjb25zdCB2b2xhdGlsZSB2b2lkICp4LCBzaXplX3Qgc2l6ZSk7CgogIC8vIFByaW50IG9uZS1saW5lIHJlcG9ydCBhYm91dCB0aGUgbWVtb3J5IHVzYWdlIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuCiAgdm9pZCBfX2h3YXNhbl9wcmludF9tZW1vcnlfdXNhZ2UoKTsKCiAgLyogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBieXRlIGluIHRoZSBtZW1vcnkgcmFuZ2UgdGhhdCBjYW4gbm90IGJlCiAgICogYWNjZXNzZWQgdGhyb3VnaCB0aGUgcG9pbnRlciBpbiB4LCBvciAtMSBpZiB0aGUgd2hvbGUgcmFuZ2UgaXMgZ29vZC4gKi8KICBpbnRwdHJfdCBfX2h3YXNhbl90ZXN0X3NoYWRvdyhjb25zdCB2b2xhdGlsZSB2b2lkICp4LCBzaXplX3Qgc2l6ZSk7CgogIC8qIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBkdXJpbmcgSFdBU2FuIGVycm9yIHJlcG9ydGluZy4gKi8KICB2b2lkIF9faHdhc2FuX3NldF9lcnJvcl9yZXBvcnRfY2FsbGJhY2sodm9pZCAoKmNhbGxiYWNrKShjb25zdCBjaGFyICopKTsKCiAgaW50IF9fc2FuaXRpemVyX3Bvc2l4X21lbWFsaWduKHZvaWQgKiptZW1wdHIsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfbWVtYWxpZ24oc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9hbGlnbmVkX2FsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfX19saWJjX21lbWFsaWduKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfdmFsbG9jKHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfcHZhbGxvYyhzaXplX3Qgc2l6ZSk7CiAgdm9pZCBfX3Nhbml0aXplcl9mcmVlKHZvaWQgKnB0cik7CiAgdm9pZCBfX3Nhbml0aXplcl9jZnJlZSh2b2lkICpwdHIpOwogIHNpemVfdCBfX3Nhbml0aXplcl9tYWxsb2NfdXNhYmxlX3NpemUoY29uc3Qgdm9pZCAqcHRyKTsKICBzdHJ1Y3QgbWFsbGluZm8gX19zYW5pdGl6ZXJfbWFsbGluZm8oKTsKICBpbnQgX19zYW5pdGl6ZXJfbWFsbG9wdChpbnQgY21kLCBpbnQgdmFsdWUpOwogIHZvaWQgX19zYW5pdGl6ZXJfbWFsbG9jX3N0YXRzKHZvaWQpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9jYWxsb2Moc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCAqIF9fc2FuaXRpemVyX3JlYWxsb2Modm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCAqIF9fc2FuaXRpemVyX3JlYWxsb2NhcnJheSh2b2lkICpwdHIsIHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9tYWxsb2Moc2l6ZV90IHNpemUpOwojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gU0FOSVRJWkVSX0hXQVNBTl9JTlRFUkZBQ0VfSAoAY29ycHVzAFJFMjogaW52YWxpZCBzdGFydHBvcywgZW5kcG9zIHBhaXIuIFsAUmVwZXRpdGlvbldhbGtlcjo6U2hvcnRWaXNpdCBjYWxsZWQAQ29uY2F0IG9mIABleHRlcm5hbC9yZWdleC1yZTIvcmUyL3dhbGtlci1pbmwuaABbOl5wdW5jdDpdAFslMDJ4LSUwMnhdIC0+ICVkCgBcJTAzbwBtaXNzaW5nIF0AQ2FuYWRpYW5fQWJvcmlnaW5hbABIaXJhZ2FuYQBMaW1idQBNaWFvAE4AUGhvZW5pY2lhbgBTaGF2aWFuAFRhaV9UaGFtAGxlZnRfAGJhZCBhcmVuYSBwb2ludGVyIGluIEFkZFRvRnJlZWxpc3QoKQBzLT5oZWFkZXIuYXJlbmEgPT0gYXJlbmEATG93TGV2ZWxBbGxvYyBhcml0aG1ldGljIG92ZXJmbG93AG5leHQtPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBzAHVuc2lnbmVkIHNob3J0AGF1dG8AREFUQV9MT1NTAEJhZCBTdGF0dXNPciBhY2Nlc3MAIGV4Y2VlZHMgVW5pY29kZSBsaW1pdCAoMHgxMEZGRkYpACwgdGFpbCA9IAAgZW50cnlbACBhbmQvb3IgdGFpbCAAZmFsc2UAb2xkX2ggPT0gbnVsbHB0ciB8fCBoLT5tYXliZV91bmxvY2tpbmcAbm90IHdhaXRpbmcgd2hlbiBzaG91bGQgYmUAdXMAVFoAbG9jYWx0aW1lAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vY3R4LmMAM0RFUyBFbmNyeXB0aW9uIEtBVABTSEEtMSBLQVQAZmFpbGVkIHRvIG9wZW4gL2Rldi91cmFuZG9tAERpZ2VzdCBmdW5jdGlvbnMAa3l0aGUucHJvdG8uVk5hbWUuY29ycHVzAE1pc3NpbmcgcmVxdWlyZWQgZmlsZSAlcy4KAGF2eDJpbnRyaW4uaABhdng1MTJ2bGNkaW50cmluLmgAYXZ4NTEydmxkcWludHJpbi5oAC8qPT09LS0tLSBsaW1pdHMuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgaW50ZWdlciBzaXplcyAtLS0tLS0tLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fQ0xBTkdfTElNSVRTX0gKI2RlZmluZSBfX0NMQU5HX0xJTUlUU19ICgovKiBUaGUgc3lzdGVtJ3MgbGltaXRzLmggbWF5LCBpbiB0dXJuLCB0cnkgdG8gI2luY2x1ZGVfbmV4dCBHQ0MncyBsaW1pdHMuaC4KICAgQXZlcnQgdGhpcyAjaW5jbHVkZV9uZXh0IG1hZG5lc3MuICovCiNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9HQ0NfTElNSVRTX0hfCiNkZWZpbmUgX0dDQ19MSU1JVFNfSF8KI2VuZGlmCgovKiBTeXN0ZW0gaGVhZGVycyBpbmNsdWRlIGEgbnVtYmVyIG9mIGNvbnN0YW50cyBmcm9tIFBPU0lYIGluIDxsaW1pdHMuaD4uCiAgIEluY2x1ZGUgaXQgaWYgd2UncmUgaG9zdGVkLiAqLwojaWYgX19TVERDX0hPU1RFRF9fICYmIF9faGFzX2luY2x1ZGVfbmV4dCg8bGltaXRzLmg+KQojaW5jbHVkZV9uZXh0IDxsaW1pdHMuaD4KI2VuZGlmCgovKiBNYW55IHN5c3RlbSBoZWFkZXJzIHRyeSB0byAiaGVscCB1cyBvdXQiIGJ5IGRlZmluaW5nIHRoZXNlLiAgTm8gcmVhbGx5LCB3ZQogICBrbm93IGhvdyBiaWcgZWFjaCBkYXRhdHlwZSBpcy4gKi8KI3VuZGVmICBTQ0hBUl9NSU4KI3VuZGVmICBTQ0hBUl9NQVgKI3VuZGVmICBVQ0hBUl9NQVgKI3VuZGVmICBTSFJUX01JTgojdW5kZWYgIFNIUlRfTUFYCiN1bmRlZiAgVVNIUlRfTUFYCiN1bmRlZiAgSU5UX01JTgojdW5kZWYgIElOVF9NQVgKI3VuZGVmICBVSU5UX01BWAojdW5kZWYgIExPTkdfTUlOCiN1bmRlZiAgTE9OR19NQVgKI3VuZGVmICBVTE9OR19NQVgKCiN1bmRlZiAgQ0hBUl9CSVQKI3VuZGVmICBDSEFSX01JTgojdW5kZWYgIENIQVJfTUFYCgovKiBDOTAvOTkgNS4yLjQuMi4xICovCiNkZWZpbmUgU0NIQVJfTUFYIF9fU0NIQVJfTUFYX18KI2RlZmluZSBTSFJUX01BWCAgX19TSFJUX01BWF9fCiNkZWZpbmUgSU5UX01BWCAgIF9fSU5UX01BWF9fCiNkZWZpbmUgTE9OR19NQVggIF9fTE9OR19NQVhfXwoKI2RlZmluZSBTQ0hBUl9NSU4gKC1fX1NDSEFSX01BWF9fLTEpCiNkZWZpbmUgU0hSVF9NSU4gICgtX19TSFJUX01BWF9fIC0xKQojZGVmaW5lIElOVF9NSU4gICAoLV9fSU5UX01BWF9fICAtMSkKI2RlZmluZSBMT05HX01JTiAgKC1fX0xPTkdfTUFYX18gLTFMKQoKI2RlZmluZSBVQ0hBUl9NQVggKF9fU0NIQVJfTUFYX18qMiAgKzEpCiNkZWZpbmUgVVNIUlRfTUFYIChfX1NIUlRfTUFYX18gKjIgICsxKQojZGVmaW5lIFVJTlRfTUFYICAoX19JTlRfTUFYX18gICoyVSArMVUpCiNkZWZpbmUgVUxPTkdfTUFYIChfX0xPTkdfTUFYX18gKjJVTCsxVUwpCgojaWZuZGVmIE1CX0xFTl9NQVgKI2RlZmluZSBNQl9MRU5fTUFYIDEKI2VuZGlmCgojZGVmaW5lIENIQVJfQklUICBfX0NIQVJfQklUX18KCiNpZmRlZiBfX0NIQVJfVU5TSUdORURfXyAgLyogLWZ1bnNpZ25lZC1jaGFyICovCiNkZWZpbmUgQ0hBUl9NSU4gMAojZGVmaW5lIENIQVJfTUFYIFVDSEFSX01BWAojZWxzZQojZGVmaW5lIENIQVJfTUlOIFNDSEFSX01JTgojZGVmaW5lIENIQVJfTUFYIF9fU0NIQVJfTUFYX18KI2VuZGlmCgovKiBDOTkgNS4yLjQuMi4xOiBBZGRlZCBsb25nIGxvbmcuCiAgIEMrKzExIDE4LjMuMy4yOiBzYW1lIGNvbnRlbnRzIGFzIHRoZSBTdGFuZGFyZCBDIExpYnJhcnkgaGVhZGVyIDxsaW1pdHMuaD4uCiAqLwojaWYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKCiN1bmRlZiAgTExPTkdfTUlOCiN1bmRlZiAgTExPTkdfTUFYCiN1bmRlZiAgVUxMT05HX01BWAoKI2RlZmluZSBMTE9OR19NQVggIF9fTE9OR19MT05HX01BWF9fCiNkZWZpbmUgTExPTkdfTUlOICAoLV9fTE9OR19MT05HX01BWF9fLTFMTCkKI2RlZmluZSBVTExPTkdfTUFYIChfX0xPTkdfTE9OR19NQVhfXyoyVUxMKzFVTEwpCiNlbmRpZgoKLyogTE9OR19MT05HX01JTi9MT05HX0xPTkdfTUFYL1VMT05HX0xPTkdfTUFYIGFyZSBhIEdOVSBleHRlbnNpb24uICBJdCdzIHRvbyBiYWQKICAgdGhhdCB3ZSBkb24ndCBoYXZlIHNvbWV0aGluZyBsaWtlICNwcmFnbWEgcG9pc29uIHRoYXQgY291bGQgYmUgdXNlZCB0bwogICBkZXByZWNhdGUgYSBtYWNybyAtIHRoZSBjb2RlIHNob3VsZCBqdXN0IHVzZSBMTE9OR19NQVggYW5kIGZyaWVuZHMuCiAqLwojaWYgZGVmaW5lZChfX0dOVV9MSUJSQVJZX18pID8gZGVmaW5lZChfX1VTRV9HTlUpIDogIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQoKI3VuZGVmICAgTE9OR19MT05HX01JTgojdW5kZWYgICBMT05HX0xPTkdfTUFYCiN1bmRlZiAgIFVMT05HX0xPTkdfTUFYCgojZGVmaW5lIExPTkdfTE9OR19NQVggIF9fTE9OR19MT05HX01BWF9fCiNkZWZpbmUgTE9OR19MT05HX01JTiAgKC1fX0xPTkdfTE9OR19NQVhfXy0xTEwpCiNkZWZpbmUgVUxPTkdfTE9OR19NQVggKF9fTE9OR19MT05HX01BWF9fKjJVTEwrMVVMTCkKI2VuZGlmCgojZW5kaWYgLyogX19DTEFOR19MSU1JVFNfSCAqLwoAc21taW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0gdnBjbG11bHFkcWludHJpbi5oIC0gVlBDTE1VTFFEUSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHZwY2xtdWxxZHFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fVlBDTE1VTFFEUUlOVFJJTl9ICiNkZWZpbmUgX19WUENMTVVMUURRSU5UUklOX0gKCiNkZWZpbmUgX21tMjU2X2NsbXVsZXBpNjRfZXBpMTI4KEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGNsbXVscWRxMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQiksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoSSkpKQoKI2lmZGVmIF9fQVZYNTEyRklOVFJJTl9ICiNkZWZpbmUgX21tNTEyX2NsbXVsZXBpNjRfZXBpMTI4KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGNsbXVscWRxNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoSSkpKQojZW5kaWYgLy8gX19BVlg1MTJGSU5UUklOX0gKCiNlbmRpZiAvKiBfX1ZQQ0xNVUxRRFFJTlRSSU5fSCAqLwoKAHNhbml0aXplci9tc2FuX2ludGVyZmFjZS5oAGZyZWFkKCZjb250ZW50WzBdLCBzaXplLCAxLCBoYW5kbGUpAEV4cGVjdGVkIGFuIGFycmF5IG9mIG9iamVjdHMuAGNvbnRlbnQAU2VhcmNoT25lUGFzcyBpbmNvbnNpc3RlbmN5AFs6YWxudW06XQBNaXNzaW5nIGNhc2UgaW4gQ29tcGlsZXI6IABGYWlsZWQgdG8gYW5hbHl6ZSBzdGFydCBzdGF0ZS4AR3Jvd1N0YWNrKCkgZmFpbGVkOiAAXEMAQXZlc3RhbgBEZXZhbmFnYXJpAExlcGNoYQBQZQBTYW1hcml0YW4AU29yYV9Tb21wZW5nAFNJR1RSQVAAU2lnbmFsICVkIHJhaXNlZCBhdCBQQz0lcCB3aGlsZSBhbHJlYWR5IGluIEFic2xGYWlsdXJlU2lnbmFsSGFuZGxlcigpACoqKiBTaWduYWwgJWQgcmVjZWl2ZWQgYXQgdGltZT0lbGQlcyAqKioKAFVuYWJsZSB0byByZWFkIGZyb20gZmQgJWQgYXQgb2Zmc2V0ICV6dTogbl9yZWFkID0gJXpkAGJhZCBwb2ludGVyAG9mZnNldCA8IHN0cnNpemVfAHZlcnNpb25fZGVmaW5pdGlvbi0+dmRfY250ID09IDEgfHwgdmVyc2lvbl9kZWZpbml0aW9uLT52ZF9jbnQgPT0gMgBiYWQgYXJlbmEgcG9pbnRlciBpbiBEZWxldGVBcmVuYSgpAG1hbGZvcm1lZCBmcmVlbGlzdABpbnQARGkAY2wAbmV3W10AZGVsZXRlAGl4AE9VVF9PRl9SQU5HRQBDaGVjayBuIDw9IHNpemUoKSBmYWlsZWQ6IABjYXBhY2l0eSA9PSAwAExvZ2ljIHByb2JsZW0/IHN6c3JjID0gJXp1AGNvbmRpdGlvbiB1bnRydWUgb24gcmV0dXJuIGZyb20gTG9ja1Nsb3cARW5xdWV1ZSBmYWlsZWQAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lY2RoL2VjZGguYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3NpbXBsZS5jACUwMngAQm9yaW5nU1NMAE9QRU5TU0xfaW50ZXJuYWwAa3l0aGUucHJvdG8uRmlsZUluZm8ucGF0aABreXRoZS5wcm90by5jb21tb24uTWFya2VkU291cmNlLnBvc3RfdGV4dAAteABhc3NlbWJsZXIALWZzeW50YXgtb25seQBVc2VyIGVudHJ5ICgAUXVvdGVkAE9iakNTeXN0ZW0AQWZ0ZXIAX19jbGFuZ19jdWRhX2NtYXRoLmgALyo9PT0tLS0tIF9fY2xhbmdfY3VkYV9tYXRoLmggLSBEZXZpY2Utc2lkZSBDVURBIG1hdGggc3VwcG9ydCAtLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9NQVRIX0hfXwojZGVmaW5lIF9fQ0xBTkdfQ1VEQV9NQVRIX0hfXwojaWZuZGVmIF9fQ1VEQV9fCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBDVURBIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZm5kZWYgX19PUEVOTVBfTlZQVFhfXwojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojZXJyb3IgVGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBDVURBLTkrIG9ubHkuCiNlbmRpZgojZW5kaWYKCi8vIF9fREVWSUNFX18gaXMgYSBoZWxwZXIgbWFjcm8gd2l0aCBjb21tb24gc2V0IG9mIGF0dHJpYnV0ZXMgZm9yIHRoZSB3cmFwcGVycwovLyB3ZSBpbXBsZW1lbnQgaW4gdGhpcyBmaWxlLiBXZSBuZWVkIHN0YXRpYyBpbiBvcmRlciB0byBhdm9pZCBlbWl0dGluZyB1bnVzZWQKLy8gZnVuY3Rpb25zIGFuZCBfX2ZvcmNlaW5saW5lX18gaGVscHMgaW5saW5pbmcgdGhlc2Ugd3JhcHBlcnMgYXQgLU8xLgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQojaWZkZWYgX19PUEVOTVBfTlZQVFhfXwojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKI2RlZmluZSBfX0RFVklDRV9fIHN0YXRpYyBjb25zdGV4cHIgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSwgbm90aHJvdykpCiNlbHNlCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSwgbm90aHJvdykpCiNlbmRpZgojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gX19mb3JjZWlubGluZV9fCiNlbmRpZgoKLy8gU3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBfX0RFVklDRV9fIGZvciBmdW5jdGlvbnMgd2l0aCB2b2lkIHJldHVybiB0eXBlLiBOZWVkZWQKLy8gYmVjYXVzZSB0aGUgT3Blbk1QIG92ZXJsYXkgcmVxdWlyZXMgY29uc3RleHByIGZ1bmN0aW9ucyBoZXJlIGJ1dCBwcmlvciB0bwovLyBjKysxNCB2b2lkIHJldHVybiBmdW5jdGlvbnMgY291bGQgbm90IGJlIGNvbnN0ZXhwci4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFVklDRV9WT0lEX18iKQojaWZkZWYgX19PUEVOTVBfTlZQVFhfXyAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA8IDIwMTQwMkwKI2RlZmluZSBfX0RFVklDRV9WT0lEX18gc3RhdGljIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX1ZPSURfXyBfX0RFVklDRV9fCiNlbmRpZgoKLy8gbGliZGV2aWNlIHByb3ZpZGVzIGZhc3QgbG93IHByZWNpc2lvbiBhbmQgc2xvdyBmdWxsLXJlY2lzaW9uIGltcGxlbWVudGF0aW9ucwovLyBmb3Igc29tZSBmdW5jdGlvbnMuIFdoaWNoIG9uZSBnZXRzIHNlbGVjdGVkIGRlcGVuZHMgb24KLy8gX19DTEFOR19DVURBX0FQUFJPWF9UUkFOU0NFTkRFTlRBTFNfXyB3aGljaCBnZXRzIGRlZmluZWQgYnkgY2xhbmcgaWYKLy8gLWZmYXN0LW1hdGggb3IgLWZjdWRhLWFwcHJveC10cmFuc2NlbmRlbnRhbHMgYXJlIGluIGVmZmVjdC4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX0ZBU1RfT1JfU0xPVyIpCiNpZiBkZWZpbmVkKF9fQ0xBTkdfQ1VEQV9BUFBST1hfVFJBTlNDRU5ERU5UQUxTX18pCiNkZWZpbmUgX19GQVNUX09SX1NMT1coZmFzdCwgc2xvdykgZmFzdAojZWxzZQojZGVmaW5lIF9fRkFTVF9PUl9TTE9XKGZhc3QsIHNsb3cpIHNsb3cKI2VuZGlmCgpfX0RFVklDRV9fIGludCBhYnMoaW50IF9fYSkgeyByZXR1cm4gX19udl9hYnMoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBmYWJzKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZmFicyhfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGFjb3MoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9hY29zKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhY29zZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfYWNvc2YoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBhY29zaChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2Fjb3NoKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhY29zaGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Fjb3NoZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGFzaW4oZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9hc2luKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhc2luZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfYXNpbmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBhc2luaChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2FzaW5oKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhc2luaGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2FzaW5oZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGF0YW4oZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9hdGFuKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgYXRhbjIoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9hdGFuMihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBhdGFuMmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfYXRhbjJmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGF0YW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9hdGFuZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGF0YW5oKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfYXRhbmgoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGF0YW5oZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfYXRhbmhmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgY2JydChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2NicnQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGNicnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jYnJ0ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGNlaWwoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9jZWlsKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBjZWlsZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfY2VpbGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBjb3B5c2lnbihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfY29weXNpZ24oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgY29weXNpZ25mKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfY29weXNpZ25mKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBjb3MoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9jb3MoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGNvc2YoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fRkFTVF9PUl9TTE9XKF9fbnZfZmFzdF9jb3NmLCBfX252X2Nvc2YpKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgY29zaChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2Nvc2goX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGNvc2hmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jb3NoZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGNvc3BpKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfY29zcGkoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGNvc3BpZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfY29zcGlmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgY3lsX2Jlc3NlbF9pMChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2N5bF9iZXNzZWxfaTAoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGN5bF9iZXNzZWxfaTBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jeWxfYmVzc2VsX2kwZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGN5bF9iZXNzZWxfaTEoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9jeWxfYmVzc2VsX2kxKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBjeWxfYmVzc2VsX2kxZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfY3lsX2Jlc3NlbF9pMWYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBlcmYoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9lcmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBlcmZjKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmYyhfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXJmY2YoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2VyZmNmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXJmY2ludihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2VyZmNpbnYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGVyZmNpbnZmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9lcmZjaW52ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGVyZmN4KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmY3goX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGVyZmN4ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmY3hmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBlcmZmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9lcmZmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXJmaW52KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmaW52KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBlcmZpbnZmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9lcmZpbnZmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXhwKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXhwKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXhwMTAoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9leHAxMChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXhwMTBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9leHAxMGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBleHAyKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXhwMihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXhwMmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2V4cDJmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBleHBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9leHBmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXhwbTEoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9leHBtMShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXhwbTFmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9leHBtMWYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZhYnNmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYWJzZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZkaW0oZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9mZGltKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZkaW1mKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X2ZkaW1mKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBmZGl2aWRlKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsgcmV0dXJuIF9fYSAvIF9fYjsgfQpfX0RFVklDRV9fIGZsb2F0IGZkaXZpZGVmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiNpZiBfX0ZBU1RfTUFUSF9fICYmICFfX0NVREFfUFJFQ19ESVYKICByZXR1cm4gX19udl9mYXN0X2ZkaXZpZGVmKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19hIC8gX19iOwojZW5kaWYKfQpfX0RFVklDRV9fIGRvdWJsZSBmbG9vcihkb3VibGUgX19mKSB7IHJldHVybiBfX252X2Zsb29yKF9fZik7IH0KX19ERVZJQ0VfXyBmbG9hdCBmbG9vcmYoZmxvYXQgX19mKSB7IHJldHVybiBfX252X2Zsb29yZihfX2YpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZtYShkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgZm1hZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBmbWF4KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsgcmV0dXJuIF9fbnZfZm1heChfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBmbWF4ZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgeyByZXR1cm4gX19udl9mbWF4ZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgZm1pbihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X2ZtaW4oX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgZm1pbmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfZm1pbmYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZtb2QoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9mbW9kKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZtb2RmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X2Ztb2RmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBmcmV4cChkb3VibGUgX19hLCBpbnQgKl9fYikgeyByZXR1cm4gX19udl9mcmV4cChfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBmcmV4cGYoZmxvYXQgX19hLCBpbnQgKl9fYikgeyByZXR1cm4gX19udl9mcmV4cGYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIGh5cG90KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsgcmV0dXJuIF9fbnZfaHlwb3QoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgaHlwb3RmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X2h5cG90ZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBpbnQgaWxvZ2IoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9pbG9nYihfX2EpOyB9Cl9fREVWSUNFX18gaW50IGlsb2diZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfaWxvZ2JmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgajAoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9qMChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgajBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9qMGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBqMShkb3VibGUgX19hKSB7IHJldHVybiBfX252X2oxKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBqMWYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2oxZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGpuKGludCBfX24sIGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfam4oX19uLCBfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgam5mKGludCBfX24sIGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9qbmYoX19uLCBfX2EpOyB9CiNpZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCBkZWZpbmVkKF9XSU42NCkKX19ERVZJQ0VfXyBsb25nIGxhYnMobG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfbGxhYnMoX19hKTsgfTsKI2Vsc2UKX19ERVZJQ0VfXyBsb25nIGxhYnMobG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfYWJzKF9fYSk7IH07CiNlbmRpZgpfX0RFVklDRV9fIGRvdWJsZSBsZGV4cChkb3VibGUgX19hLCBpbnQgX19iKSB7IHJldHVybiBfX252X2xkZXhwKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxkZXhwZihmbG9hdCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfbGRleHBmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBsZ2FtbWEoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sZ2FtbWEoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxnYW1tYWYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2xnYW1tYWYoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbGFicyhsb25nIGxvbmcgX19hKSB7IHJldHVybiBfX252X2xsYWJzKF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxtYXgobG9uZyBsb25nIF9fYSwgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX252X2xsbWF4KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbG1pbihsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfbGxtaW4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscmludChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xscmludChfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscmludGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2xscmludGYoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbHJvdW5kKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfbGxyb3VuZChfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscm91bmRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9sbHJvdW5kZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHJvdW5kKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfcm91bmQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHJvdW5kZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfcm91bmRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgbG9nKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfbG9nKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgbG9nMTAoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sb2cxMChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgbG9nMTBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9sb2cxMGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBsb2cxcChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xvZzFwKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBsb2cxcGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2xvZzFwZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGxvZzIoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sb2cyKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBsb2cyZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19GQVNUX09SX1NMT1coX19udl9mYXN0X2xvZzJmLCBfX252X2xvZzJmKShfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIGxvZ2IoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sb2diKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBsb2diZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbG9nYmYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxvZ2YoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fRkFTVF9PUl9TTE9XKF9fbnZfZmFzdF9sb2dmLCBfX252X2xvZ2YpKF9fYSk7Cn0KI2lmIGRlZmluZWQoX19MUDY0X18pIHx8IGRlZmluZWQoX1dJTjY0KQpfX0RFVklDRV9fIGxvbmcgbHJpbnQoZG91YmxlIF9fYSkgeyByZXR1cm4gbGxyaW50KF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxyaW50ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fZmxvYXQybGxfcm4oX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJvdW5kKGRvdWJsZSBfX2EpIHsgcmV0dXJuIGxscm91bmQoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJvdW5kZihmbG9hdCBfX2EpIHsgcmV0dXJuIGxscm91bmRmKF9fYSk7IH0KI2Vsc2UKX19ERVZJQ0VfXyBsb25nIGxyaW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIChsb25nKXJpbnQoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJpbnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19mbG9hdDJpbnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJvdW5kKGRvdWJsZSBfX2EpIHsgcmV0dXJuIHJvdW5kKF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxyb3VuZGYoZmxvYXQgX19hKSB7IHJldHVybiByb3VuZGYoX19hKTsgfQojZW5kaWYKX19ERVZJQ0VfXyBpbnQgbWF4KGludCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfbWF4KF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGludCBtaW4oaW50IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9taW4oX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIG1vZGYoZG91YmxlIF9fYSwgZG91YmxlICpfX2IpIHsgcmV0dXJuIF9fbnZfbW9kZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBtb2RmZihmbG9hdCBfX2EsIGZsb2F0ICpfX2IpIHsgcmV0dXJuIF9fbnZfbW9kZmYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIG5lYXJieWludChkb3VibGUgX19hKSB7IHJldHVybiBfX2J1aWx0aW5fbmVhcmJ5aW50KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBuZWFyYnlpbnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19idWlsdGluX25lYXJieWludGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBuZXh0YWZ0ZXIoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X25leHRhZnRlcihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBuZXh0YWZ0ZXJmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfbmV4dGFmdGVyZihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgbm9ybShpbnQgX19kaW0sIGNvbnN0IGRvdWJsZSAqX190KSB7CiAgcmV0dXJuIF9fbnZfbm9ybShfX2RpbSwgX190KTsKfQpfX0RFVklDRV9fIGRvdWJsZSBub3JtM2QoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYykgewogIHJldHVybiBfX252X25vcm0zZChfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IG5vcm0zZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYykgewogIHJldHVybiBfX252X25vcm0zZGYoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgbm9ybTRkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsIGRvdWJsZSBfX2QpIHsKICByZXR1cm4gX19udl9ub3JtNGQoX19hLCBfX2IsIF9fYywgX19kKTsKfQpfX0RFVklDRV9fIGZsb2F0IG5vcm00ZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kKSB7CiAgcmV0dXJuIF9fbnZfbm9ybTRkZihfX2EsIF9fYiwgX19jLCBfX2QpOwp9Cl9fREVWSUNFX18gZG91YmxlIG5vcm1jZGYoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9ub3JtY2RmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBub3JtY2RmZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbm9ybWNkZmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBub3JtY2RmaW52KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfbm9ybWNkZmludihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgbm9ybWNkZmludmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X25vcm1jZGZpbnZmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBub3JtZihpbnQgX19kaW0sIGNvbnN0IGZsb2F0ICpfX3QpIHsKICByZXR1cm4gX19udl9ub3JtZihfX2RpbSwgX190KTsKfQpfX0RFVklDRV9fIGRvdWJsZSBwb3coZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9wb3coX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgcG93ZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgeyByZXR1cm4gX19udl9wb3dmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBwb3dpKGRvdWJsZSBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfcG93aShfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBwb3dpZihmbG9hdCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfcG93aWYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIHJjYnJ0KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfcmNicnQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHJjYnJ0ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfcmNicnRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgcmVtYWluZGVyKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9yZW1haW5kZXIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgcmVtYWluZGVyZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X3JlbWFpbmRlcmYoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIHJlbXF1byhkb3VibGUgX19hLCBkb3VibGUgX19iLCBpbnQgKl9fYykgewogIHJldHVybiBfX252X3JlbXF1byhfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IHJlbXF1b2YoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGludCAqX19jKSB7CiAgcmV0dXJuIF9fbnZfcmVtcXVvZihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSByaHlwb3QoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X3JoeXBvdChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCByaHlwb3RmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfcmh5cG90ZihfX2EsIF9fYik7Cn0KLy8gX19udl9yaW50KiBpbiBsaWJkZXZpY2UgaXMgYnVnZ3kgYW5kIHByb2R1Y2VzIGluY29ycmVjdCByZXN1bHRzLgpfX0RFVklDRV9fIGRvdWJsZSByaW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fYnVpbHRpbl9yaW50KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCByaW50ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fYnVpbHRpbl9yaW50ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHJub3JtKGludCBfX2EsIGNvbnN0IGRvdWJsZSAqX19iKSB7CiAgcmV0dXJuIF9fbnZfcm5vcm0oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIHJub3JtM2QoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYykgewogIHJldHVybiBfX252X3Jub3JtM2QoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBybm9ybTNkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfcm5vcm0zZGYoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgcm5vcm00ZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jLCBkb3VibGUgX19kKSB7CiAgcmV0dXJuIF9fbnZfcm5vcm00ZChfX2EsIF9fYiwgX19jLCBfX2QpOwp9Cl9fREVWSUNFX18gZmxvYXQgcm5vcm00ZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kKSB7CiAgcmV0dXJuIF9fbnZfcm5vcm00ZGYoX19hLCBfX2IsIF9fYywgX19kKTsKfQpfX0RFVklDRV9fIGZsb2F0IHJub3JtZihpbnQgX19kaW0sIGNvbnN0IGZsb2F0ICpfX3QpIHsKICByZXR1cm4gX19udl9ybm9ybWYoX19kaW0sIF9fdCk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgcnNxcnQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9yc3FydChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgcnNxcnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9yc3FydGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBzY2FsYm4oZG91YmxlIF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9zY2FsYm4oX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgc2NhbGJuZihmbG9hdCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfc2NhbGJuZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgc2NhbGJsbihkb3VibGUgX19hLCBsb25nIF9fYikgewogIGlmIChfX2IgPiBJTlRfTUFYKQogICAgcmV0dXJuIF9fYSA+IDAgPyBIVUdFX1ZBTCA6IC1IVUdFX1ZBTDsKICBpZiAoX19iIDwgSU5UX01JTikKICAgIHJldHVybiBfX2EgPiAwID8gMC4wIDogLTAuMDsKICByZXR1cm4gc2NhbGJuKF9fYSwgKGludClfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgc2NhbGJsbmYoZmxvYXQgX19hLCBsb25nIF9fYikgewogIGlmIChfX2IgPiBJTlRfTUFYKQogICAgcmV0dXJuIF9fYSA+IDAgPyBIVUdFX1ZBTEYgOiAtSFVHRV9WQUxGOwogIGlmIChfX2IgPCBJTlRfTUlOKQogICAgcmV0dXJuIF9fYSA+IDAgPyAwLmYgOiAtMC5mOwogIHJldHVybiBzY2FsYm5mKF9fYSwgKGludClfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIHNpbihkb3VibGUgX19hKSB7IHJldHVybiBfX252X3NpbihfX2EpOyB9Cl9fREVWSUNFX1ZPSURfXyB2b2lkIHNpbmNvcyhkb3VibGUgX19hLCBkb3VibGUgKl9fcywgZG91YmxlICpfX2MpIHsKICByZXR1cm4gX19udl9zaW5jb3MoX19hLCBfX3MsIF9fYyk7Cn0KX19ERVZJQ0VfVk9JRF9fIHZvaWQgc2luY29zZihmbG9hdCBfX2EsIGZsb2F0ICpfX3MsIGZsb2F0ICpfX2MpIHsKICByZXR1cm4gX19GQVNUX09SX1NMT1coX19udl9mYXN0X3NpbmNvc2YsIF9fbnZfc2luY29zZikoX19hLCBfX3MsIF9fYyk7Cn0KX19ERVZJQ0VfVk9JRF9fIHZvaWQgc2luY29zcGkoZG91YmxlIF9fYSwgZG91YmxlICpfX3MsIGRvdWJsZSAqX19jKSB7CiAgcmV0dXJuIF9fbnZfc2luY29zcGkoX19hLCBfX3MsIF9fYyk7Cn0KX19ERVZJQ0VfVk9JRF9fIHZvaWQgc2luY29zcGlmKGZsb2F0IF9fYSwgZmxvYXQgKl9fcywgZmxvYXQgKl9fYykgewogIHJldHVybiBfX252X3NpbmNvc3BpZihfX2EsIF9fcywgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IHNpbmYoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fRkFTVF9PUl9TTE9XKF9fbnZfZmFzdF9zaW5mLCBfX252X3NpbmYpKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgc2luaChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3NpbmgoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHNpbmhmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9zaW5oZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHNpbnBpKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfc2lucGkoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHNpbnBpZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfc2lucGlmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgc3FydChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3NxcnQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHNxcnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9zcXJ0ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHRhbihkb3VibGUgX19hKSB7IHJldHVybiBfX252X3RhbihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgdGFuZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfdGFuZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHRhbmgoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl90YW5oKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCB0YW5oZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfdGFuaGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSB0Z2FtbWEoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl90Z2FtbWEoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHRnYW1tYWYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3RnYW1tYWYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSB0cnVuYyhkb3VibGUgX19hKSB7IHJldHVybiBfX252X3RydW5jKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCB0cnVuY2YoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3RydW5jZihfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIHVsbG1heCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX252X3VsbG1heChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgdWxsbWluKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfdWxsbWluKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCB1bWF4KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91bWF4KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCB1bWluKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91bWluKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSB5MChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3kwKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCB5MGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3kwZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHkxKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfeTEoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHkxZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfeTFmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgeW4oaW50IF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl95bihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCB5bmYoaW50IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X3luZihfX2EsIF9fYik7IH0KCiNwcmFnbWEgcG9wX21hY3JvKCJfX0RFVklDRV9fIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX1ZPSURfXyIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX0ZBU1RfT1JfU0xPVyIpCgojZW5kaWYgLy8gX19DTEFOR19DVURBX0RFVklDRV9GVU5DVElPTlNfSF9fCgBhcm1fYmYxNi5oAGF2eDUxMmJpdGFsZ2ludHJpbi5oAGF2eDUxMmlmbWFpbnRyaW4uaABhdng1MTJ2Ym1pdmxpbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEydmx2bm5paW50cmluLmggLSBWTk5JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmx2bm5paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZMVk5OSUlOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTFZOTklJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZubmkiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmwsYXZ4NTEydm5uaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIFMsIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBCVVNEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzFdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzFdKSkKLy8vICAgICAgdG1wMy53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaisyXSkpCi8vLyAgICAgIHRtcDQud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorM10pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyICsgdG1wMyArIHRtcDQKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoyNTZdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW0yNTZfZHBidXNkX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2QyNTYoKF9fdjhzaSkoUyksIChfX3Y4c2kpKEEpLCAoX192OHNpKShCKSkpCgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgc2lnbmVkCi8vLyAxNi1iaXQgcmVzdWx0cy4gU3VtIHRoZXNlIDQgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyCi8vLyBpbiBcYSBTIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmpdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqXSkpCi8vLyAgICAgIHRtcDIud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMV0pKQovLy8gICAgICB0bXAzLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzJdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaiszXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaiszXSkpCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTYXR1cmF0ZTMyKFMuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTI1Nl9kcGJ1c2RzX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzMjU2KChfX3Y4c2kpKFMpLCAoX192OHNpKShBKSwgKF9fdjhzaSkoQikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgMiBpbnRlcm1lZGlhdGUgc2lnbmVkIDMyLWJpdAovLy8gcmVzdWx0cy4gU3VtIHRoZXNlIDIgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluIFxhIFMsCi8vLyAgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKEEud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqXSkKLy8vICAgICAgdG1wMi5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFMuZHdvcmRbal0gKyB0bXAxICsgdG1wMgovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTI1Nl9kcHdzc2RfZXBpMzIoUywgQSwgQikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZDI1NigoX192OHNpKShTKSwgKF9fdjhzaSkoQSksIChfX3Y4c2kpKEIpKSkKCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIEEgd2l0aAovLy8gY29ycmVzcG9uZGluZyAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgQiwgcHJvZHVjaW5nIDIgaW50ZXJtZWRpYXRlIHNpZ25lZCAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSAyIHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiBcYSBTCi8vLyB1c2luZyBzaWduZWQgc2F0dXJhdGlvbiwgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0RTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihBLndvcmRbMipqXSkgKiBTaWduRXh0ZW5kMzIoQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKEEud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKEIud29yZFsyKmorMV0pCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTYXR1cmF0ZTMyKFMuZHdvcmRbal0gKyB0bXAxICsgdG1wMikKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoyNTZdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW0yNTZfZHB3c3Nkc19lcGkzMihTLCBBLCBCKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkczI1NigoX192OHNpKShTKSwgKF9fdjhzaSkoQSksIChfX3Y4c2kpKEIpKSkKCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIFMsIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBCVVNEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gMwovLy8gICAgICB0bXAxLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzFdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzFdKSkKLy8vICAgICAgdG1wMy53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaisyXSkpCi8vLyAgICAgIHRtcDQud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorM10pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyICsgdG1wMyArIHRtcDQKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW1fZHBidXNkX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2QxMjgoKF9fdjRzaSkoUyksIChfX3Y0c2kpKEEpLCAoX192NHNpKShCKSkpCgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgc2lnbmVkCi8vLyAxNi1iaXQgcmVzdWx0cy4gU3VtIHRoZXNlIDQgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyCi8vLyBpbiBcYSBTIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmpdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqXSkpCi8vLyAgICAgIHRtcDIud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMV0pKQovLy8gICAgICB0bXAzLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzJdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaiszXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaiszXSkpCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTYXR1cmF0ZTMyKFMuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbV9kcGJ1c2RzX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzMTI4KChfX3Y0c2kpKFMpLCAoX192NHNpKShBKSwgKF9fdjRzaSkoQikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgMiBpbnRlcm1lZGlhdGUgc2lnbmVkIDMyLWJpdAovLy8gcmVzdWx0cy4gU3VtIHRoZXNlIDIgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluIFxhIFMsCi8vLyBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgICBGT1IgaiA6PSAwIHRvIDMKLy8vICAgICAgdG1wMS5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKEIud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihBLndvcmRbMipqKzFdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MTI4XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tX2Rwd3NzZF9lcGkzMihTLCBBLCBCKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkMTI4KChfX3Y0c2kpKFMpLCAoX192NHNpKShBKSwgKF9fdjRzaSkoQikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgMiBpbnRlcm1lZGlhdGUgc2lnbmVkIDMyLWJpdAovLy8gcmVzdWx0cy4gU3VtIHRoZXNlIDIgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluIFxhIFMKLy8vIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKEEud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqXSkKLy8vICAgICAgdG1wMi5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyKQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbV9kcHdzc2RzX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcHdzc2RzMTI4KChfX3Y0c2kpKFMpLCAoX192NHNpKShBKSwgKF9fdjRzaSkoQikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZHBidXNkX2VwaTMyKF9fbTI1NmkgX19TLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcGJ1c2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9kcGJ1c2RfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2RwYnVzZHNfZXBpMzIoX19tMjU2aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHBidXNkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZHBidXNkc19lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHBidXNkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Rwd3NzZF9lcGkzMihfX20yNTZpIF9fUywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHB3c3NkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZHB3c3NkX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcHdzc2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19kcHdzc2RzX2VwaTMyKF9fbTI1NmkgX19TLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Rwd3NzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Rwd3NzZHNfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHB3c3Nkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZHBidXNkX2VwaTMyKF9fbTEyOGkgX19TLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9kcGJ1c2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kcGJ1c2RfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2RwYnVzZHNfZXBpMzIoX19tMTI4aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fZHBidXNkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZHBidXNkc19lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9kcGJ1c2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kcHdzc2RfZXBpMzIoX19tMTI4aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2Rwd3NzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Rwd3NzZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fZHB3c3NkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZHB3c3Nkc19lcGkzMihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9kcHdzc2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kcHdzc2RzX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2Rwd3NzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgAvKj09PS0tLS0gaXNvNjQ2LmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIGFsdGVybmF0ZSBzcGVsbGluZ3Mgb2Ygb3BlcmF0b3JzLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSVNPNjQ2X0gKI2RlZmluZSBfX0lTTzY0Nl9ICgojaWZuZGVmIF9fY3BsdXNwbHVzCiNkZWZpbmUgYW5kICAgICYmCiNkZWZpbmUgYW5kX2VxICY9CiNkZWZpbmUgYml0YW5kICYKI2RlZmluZSBiaXRvciAgfAojZGVmaW5lIGNvbXBsICB+CiNkZWZpbmUgbm90ICAgICEKI2RlZmluZSBub3RfZXEgIT0KI2RlZmluZSBvciAgICAgfHwKI2RlZmluZSBvcl9lcSAgfD0KI2RlZmluZSB4b3IgICAgXgojZGVmaW5lIHhvcl9lcSBePQojZW5kaWYKCiNlbmRpZiAvKiBfX0lTTzY0Nl9IICovCgBvcGVuY2wtYy5oAC8qPT09LS0tLSBwcmZjaHdpbnRyaW4uaCAtIFBSRUZFVENIVyBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZiAhZGVmaW5lZChfX1g4NklOVFJJTl9IKSAmJiAhZGVmaW5lZChfTU0zRE5PV19IX0lOQ0xVREVEKQojZXJyb3IgIk5ldmVyIHVzZSA8cHJmY2h3aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gb3IgPG1tM2Rub3cuaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1BSRkNIV0lOVFJJTl9ICiNkZWZpbmUgX19QUkZDSFdJTlRSSU5fSAoKLy8vIExvYWRzIGEgbWVtb3J5IHNlcXVlbmNlIGNvbnRhaW5pbmcgdGhlIHNwZWNpZmllZCBtZW1vcnkgYWRkcmVzcyBpbnRvCi8vLyAgICBhbGwgZGF0YSBjYWNoZSBsZXZlbHMuIFRoZSBjYWNoZS1jb2hlcmVuY3kgc3RhdGUgaXMgc2V0IHRvIGV4Y2x1c2l2ZS4KLy8vICAgIERhdGEgY2FuIGJlIHJlYWQgZnJvbSBhbmQgd3JpdHRlbiB0byB0aGUgY2FjaGUgbGluZSB3aXRob3V0IGFkZGl0aW9uYWwKLy8vICAgIGRlbGF5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUFJFRkVUQ0hUMCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19QCi8vLyAgICBBIHBvaW50ZXIgc3BlY2lmeWluZyB0aGUgbWVtb3J5IGFkZHJlc3MgdG8gYmUgcHJlZmV0Y2hlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfbV9wcmVmZXRjaCh2b2lkICpfX1ApCnsKICBfX2J1aWx0aW5fcHJlZmV0Y2ggKF9fUCwgMCwgMyAvKiBfTU1fSElOVF9UMCAqLyk7Cn0KCi8vLyBMb2FkcyBhIG1lbW9yeSBzZXF1ZW5jZSBjb250YWluaW5nIHRoZSBzcGVjaWZpZWQgbWVtb3J5IGFkZHJlc3MgaW50bwovLy8gICAgdGhlIEwxIGRhdGEgY2FjaGUgYW5kIHNldHMgdGhlIGNhY2hlLWNvaGVyZW5jeSB0byBtb2RpZmllZC4gVGhpcwovLy8gICAgcHJvdmlkZXMgYSBoaW50IHRvIHRoZSBwcm9jZXNzb3IgdGhhdCB0aGUgY2FjaGUgbGluZSB3aWxsIGJlIG1vZGlmaWVkLgovLy8gICAgSXQgaXMgaW50ZW5kZWQgZm9yIHVzZSB3aGVuIHRoZSBjYWNoZSBsaW5lIHdpbGwgYmUgd3JpdHRlbiB0byBzaG9ydGx5Ci8vLyAgICBhZnRlciB0aGUgcHJlZmV0Y2ggaXMgcGVyZm9ybWVkLgovLy8KLy8vICAgIE5vdGUgdGhhdCB0aGUgZWZmZWN0IG9mIHRoaXMgaW50cmluc2ljIGlzIGRlcGVuZGVudCBvbiB0aGUgcHJvY2Vzc29yCi8vLyAgICBpbXBsZW1lbnRhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBSRUZFVENIVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19QCi8vLyAgICBBIHBvaW50ZXIgc3BlY2lmeWluZyB0aGUgbWVtb3J5IGFkZHJlc3MgdG8gYmUgcHJlZmV0Y2hlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfbV9wcmVmZXRjaHcodm9sYXRpbGUgY29uc3Qgdm9pZCAqX19QKQp7CiNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKICBfX2J1aWx0aW5fcHJlZmV0Y2ggKChjb25zdCB2b2lkKilfX1AsIDEsIDMgLyogX01NX0hJTlRfVDAgKi8pOwojcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCn0KCiNlbmRpZiAvKiBfX1BSRkNIV0lOVFJJTl9IICovCgBwdHdyaXRlaW50cmluLmgAc2hhaW50cmluLmgAdGJtaW50cmluLmgALyo9PT0tLS0tIHVud2luZC5oIC0gU3RhY2sgdW53aW5kaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8qIFNlZSAiRGF0YSBEZWZpbml0aW9ucyBmb3IgbGliZ2NjX3MiIGluIHRoZSBMaW51eCBTdGFuZGFyZCBCYXNlLiovCgojaWZuZGVmIF9fQ0xBTkdfVU5XSU5EX0gKI2RlZmluZSBfX0NMQU5HX1VOV0lORF9ICgojaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9faGFzX2luY2x1ZGVfbmV4dCg8dW53aW5kLmg+KQovKiBEYXJ3aW4gKGZyb20gMTEueCBvbikgcHJvdmlkZSBhbiB1bndpbmQuaC4gSWYgdGhhdCdzIGF2YWlsYWJsZSwKICogdXNlIGl0LiBsaWJ1bndpbmQgd3JhcHMgc29tZSBvZiBpdHMgZGVmaW5pdGlvbnMgaW4gI2lmZGVmIF9HTlVfU09VUkNFLAogKiBzbyBkZWZpbmUgdGhhdCBhcm91bmQgdGhlIGluY2x1ZGUuKi8KIyBpZm5kZWYgX0dOVV9TT1VSQ0UKIyAgZGVmaW5lIF9TSE9VTERfVU5ERUZJTkVfR05VX1NPVVJDRQojICBkZWZpbmUgX0dOVV9TT1VSQ0UKIyBlbmRpZgovLyBsaWJ1bndpbmQncyB1bndpbmQuaCByZWZsZWN0cyB0aGUgY3VycmVudCB2aXNpYmlsaXR5LiAgSG93ZXZlciwgTW96aWxsYQovLyBidWlsZHMgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIGFuZCByZWxpZXMgb24gZ2NjJ3MgdW53aW5kLmggdG8gcmVzZXQgdGhlCi8vIHZpc2liaWxpdHkgdG8gZGVmYXVsdCBhbmQgZXhwb3J0IGl0cyBjb250ZW50cy4gIGdjYyBhbHNvIGFsbG93cyB1c2VycyB0bwovLyBvdmVycmlkZSBpdHMgb3ZlcnJpZGUgYnkgI2RlZmluaW5nIEhJREVfRVhQT1JUUyAoYnV0IG5vdGUsIHRoaXMgb25seSBvYmV5cwovLyB0aGUgdXNlcidzIC1mdmlzaWJpbGl0eSBzZXR0aW5nOyBpdCBkb2Vzbid0IGhpZGUgYW55IGV4cG9ydHMgb24gaXRzIG93bikuICBXZQovLyBpbWl0YXRlIGdjYydzIGhlYWRlciBoZXJlOgojIGlmZGVmIEhJREVfRVhQT1JUUwojICBpbmNsdWRlX25leHQgPHVud2luZC5oPgojIGVsc2UKIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2goZGVmYXVsdCkKIyAgaW5jbHVkZV9uZXh0IDx1bndpbmQuaD4KIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHBvcAojIGVuZGlmCiMgaWZkZWYgX1NIT1VMRF9VTkRFRklORV9HTlVfU09VUkNFCiMgIHVuZGVmIF9HTlVfU09VUkNFCiMgIHVuZGVmIF9TSE9VTERfVU5ERUZJTkVfR05VX1NPVVJDRQojIGVuZGlmCiNlbHNlCgojaW5jbHVkZSA8c3RkaW50Lmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLyogSXQgaXMgYSBiaXQgc3RyYW5nZSBmb3IgYSBoZWFkZXIgdG8gcGxheSB3aXRoIHRoZSB2aXNpYmlsaXR5IG9mIHRoZQogICBzeW1ib2xzIGl0IGRlY2xhcmVzLCBidXQgdGhpcyBtYXRjaGVzIGdjYydzIGJlaGF2aW9yIGFuZCBzb21lIHByb2dyYW1zCiAgIGRlcGVuZCBvbiBpdCAqLwojaWZuZGVmIEhJREVfRVhQT1JUUwojcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2goZGVmYXVsdCkKI2VuZGlmCgp0eXBlZGVmIHVpbnRwdHJfdCBfVW53aW5kX1dvcmQgX19hdHRyaWJ1dGVfXygoX19tb2RlX18oX191bndpbmRfd29yZF9fKSkpOwp0eXBlZGVmIGludHB0cl90IF9VbndpbmRfU3dvcmQgX19hdHRyaWJ1dGVfXygoX19tb2RlX18oX191bndpbmRfd29yZF9fKSkpOwp0eXBlZGVmIHVpbnRwdHJfdCBfVW53aW5kX1B0cjsKdHlwZWRlZiB1aW50cHRyX3QgX1Vud2luZF9JbnRlcm5hbF9QdHI7CnR5cGVkZWYgdWludDY0X3QgX1Vud2luZF9FeGNlcHRpb25fQ2xhc3M7Cgp0eXBlZGVmIGludHB0cl90IF9zbGViMTI4X3Q7CnR5cGVkZWYgdWludHB0cl90IF91bGViMTI4X3Q7CgpzdHJ1Y3QgX1Vud2luZF9Db250ZXh0OwojaWYgZGVmaW5lZChfX2FybV9fKSAmJiAhKGRlZmluZWQoX19VU0lOR19TSkxKX0VYQ0VQVElPTlNfXykgfHwgZGVmaW5lZChfX0FSTV9EV0FSRl9FSF9fKSkKc3RydWN0IF9VbndpbmRfQ29udHJvbF9CbG9jazsKdHlwZWRlZiBzdHJ1Y3QgX1Vud2luZF9Db250cm9sX0Jsb2NrIF9VbndpbmRfRXhjZXB0aW9uOyAvKiBBbGlhcyAqLwojZWxzZQpzdHJ1Y3QgX1Vud2luZF9FeGNlcHRpb247CnR5cGVkZWYgc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uIF9VbndpbmRfRXhjZXB0aW9uOwojZW5kaWYKdHlwZWRlZiBlbnVtIHsKICBfVVJDX05PX1JFQVNPTiA9IDAsCiNpZiBkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fVVNJTkdfU0pMSl9FWENFUFRJT05TX18pICYmIFwKICAgICFkZWZpbmVkKF9fQVJNX0RXQVJGX0VIX18pCiAgX1VSQ19PSyA9IDAsIC8qIHVzZWQgYnkgQVJNIEVIQUJJICovCiNlbmRpZgogIF9VUkNfRk9SRUlHTl9FWENFUFRJT05fQ0FVR0hUID0gMSwKCiAgX1VSQ19GQVRBTF9QSEFTRTJfRVJST1IgPSAyLAogIF9VUkNfRkFUQUxfUEhBU0UxX0VSUk9SID0gMywKICBfVVJDX05PUk1BTF9TVE9QID0gNCwKCiAgX1VSQ19FTkRfT0ZfU1RBQ0sgPSA1LAogIF9VUkNfSEFORExFUl9GT1VORCA9IDYsCiAgX1VSQ19JTlNUQUxMX0NPTlRFWFQgPSA3LAogIF9VUkNfQ09OVElOVUVfVU5XSU5EID0gOCwKI2lmIGRlZmluZWQoX19hcm1fXykgJiYgIWRlZmluZWQoX19VU0lOR19TSkxKX0VYQ0VQVElPTlNfXykgJiYgXAogICAgIWRlZmluZWQoX19BUk1fRFdBUkZfRUhfXykKICBfVVJDX0ZBSUxVUkUgPSA5IC8qIHVzZWQgYnkgQVJNIEVIQUJJICovCiNlbmRpZgp9IF9VbndpbmRfUmVhc29uX0NvZGU7Cgp0eXBlZGVmIGVudW0gewogIF9VQV9TRUFSQ0hfUEhBU0UgPSAxLAogIF9VQV9DTEVBTlVQX1BIQVNFID0gMiwKCiAgX1VBX0hBTkRMRVJfRlJBTUUgPSA0LAogIF9VQV9GT1JDRV9VTldJTkQgPSA4LAogIF9VQV9FTkRfT0ZfU1RBQ0sgPSAxNiAvKiBnY2MgZXh0ZW5zaW9uIHRvIEMrKyBBQkkgKi8KfSBfVW53aW5kX0FjdGlvbjsKCnR5cGVkZWYgdm9pZCAoKl9VbndpbmRfRXhjZXB0aW9uX0NsZWFudXBfRm4pKF9VbndpbmRfUmVhc29uX0NvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VbndpbmRfRXhjZXB0aW9uICopOwoKI2lmIGRlZmluZWQoX19hcm1fXykgJiYgIShkZWZpbmVkKF9fVVNJTkdfU0pMSl9FWENFUFRJT05TX18pIHx8IGRlZmluZWQoX19BUk1fRFdBUkZfRUhfXykpCnR5cGVkZWYgc3RydWN0IF9VbndpbmRfQ29udHJvbF9CbG9jayBfVW53aW5kX0NvbnRyb2xfQmxvY2s7CnR5cGVkZWYgdWludDMyX3QgX1Vud2luZF9FSFRfSGVhZGVyOwoKc3RydWN0IF9VbndpbmRfQ29udHJvbF9CbG9jayB7CiAgdWludDY0X3QgZXhjZXB0aW9uX2NsYXNzOwogIHZvaWQgKCpleGNlcHRpb25fY2xlYW51cCkoX1Vud2luZF9SZWFzb25fQ29kZSwgX1Vud2luZF9Db250cm9sX0Jsb2NrICopOwogIC8qIHVud2luZGVyIGNhY2hlIChwcml2YXRlIGZpZWxkcyBmb3IgdGhlIHVud2luZGVyJ3MgdXNlKSAqLwogIHN0cnVjdCB7CiAgICB1aW50MzJfdCByZXNlcnZlZDE7IC8qIGZvcmNlZCB1bndpbmQgc3RvcCBmdW5jdGlvbiwgMCBpZiBub3QgZm9yY2VkICovCiAgICB1aW50MzJfdCByZXNlcnZlZDI7IC8qIHBlcnNvbmFsaXR5IHJvdXRpbmUgKi8KICAgIHVpbnQzMl90IHJlc2VydmVkMzsgLyogY2FsbHNpdGUgKi8KICAgIHVpbnQzMl90IHJlc2VydmVkNDsgLyogZm9yY2VkIHVud2luZCBzdG9wIGFyZ3VtZW50ICovCiAgICB1aW50MzJfdCByZXNlcnZlZDU7CiAgfSB1bndpbmRlcl9jYWNoZTsKICAvKiBwcm9wYWdhdGlvbiBiYXJyaWVyIGNhY2hlICh2YWxpZCBhZnRlciBwaGFzZSAxKSAqLwogIHN0cnVjdCB7CiAgICB1aW50MzJfdCBzcDsKICAgIHVpbnQzMl90IGJpdHBhdHRlcm5bNV07CiAgfSBiYXJyaWVyX2NhY2hlOwogIC8qIGNsZWFudXAgY2FjaGUgKHByZXNlcnZlZCBvdmVyIGNsZWFudXApICovCiAgc3RydWN0IHsKICAgIHVpbnQzMl90IGJpdHBhdHRlcm5bNF07CiAgfSBjbGVhbnVwX2NhY2hlOwogIC8qIHBlcnNvbmFsaXR5IGNhY2hlIChmb3IgcGVyc29uYWxpdHkncyBiZW5lZml0KSAqLwogIHN0cnVjdCB7CiAgICB1aW50MzJfdCBmbnN0YXJ0OyAgICAgICAgIC8qIGZ1bmN0aW9uIHN0YXJ0IGFkZHJlc3MgKi8KICAgIF9VbndpbmRfRUhUX0hlYWRlciAqZWh0cDsgLyogcG9pbnRlciB0byBFSFQgZW50cnkgaGVhZGVyIHdvcmQgKi8KICAgIHVpbnQzMl90IGFkZGl0aW9uYWw7ICAgICAgLyogYWRkaXRpb25hbCBkYXRhICovCiAgICB1aW50MzJfdCByZXNlcnZlZDE7CiAgfSBwcl9jYWNoZTsKICBsb25nIGxvbmcgaW50IDogMDsgLyogZm9yY2UgYWxpZ25tZW50IG9mIG5leHQgaXRlbSB0byA4LWJ5dGUgYm91bmRhcnkgKi8KfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyg4KSkpOwojZWxzZQpzdHJ1Y3QgX1Vud2luZF9FeGNlcHRpb24gewogIF9VbndpbmRfRXhjZXB0aW9uX0NsYXNzIGV4Y2VwdGlvbl9jbGFzczsKICBfVW53aW5kX0V4Y2VwdGlvbl9DbGVhbnVwX0ZuIGV4Y2VwdGlvbl9jbGVhbnVwOwojaWYgIWRlZmluZWQgKF9fVVNJTkdfU0pMSl9FWENFUFRJT05TX18pICYmIGRlZmluZWQgKF9fU0VIX18pCiAgX1Vud2luZF9Xb3JkIHByaXZhdGVfWzZdOwojZWxzZQogIF9VbndpbmRfV29yZCBwcml2YXRlXzE7CiAgX1Vud2luZF9Xb3JkIHByaXZhdGVfMjsKI2VuZGlmCiAgLyogVGhlIEl0YW5pdW0gQUJJIHJlcXVpcmVzIHRoYXQgX1Vud2luZF9FeGNlcHRpb24gb2JqZWN0cyBhcmUgImRvdWJsZS13b3JkCiAgICogYWxpZ25lZCIuICBHQ0MgaGFzIGludGVycHJldGVkIHRoaXMgdG8gbWVhbiAidXNlIHRoZSBtYXhpbXVtIHVzZWZ1bAogICAqIGFsaWdubWVudCBmb3IgdGhlIHRhcmdldCI7IHNvIGRvIHdlLiAqLwp9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKSk7CiNlbmRpZgoKdHlwZWRlZiBfVW53aW5kX1JlYXNvbl9Db2RlICgqX1Vud2luZF9TdG9wX0ZuKShpbnQsIF9VbndpbmRfQWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VbndpbmRfRXhjZXB0aW9uX0NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VbndpbmRfRXhjZXB0aW9uICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IF9VbndpbmRfQ29udGV4dCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKik7Cgp0eXBlZGVmIF9VbndpbmRfUmVhc29uX0NvZGUgKCpfVW53aW5kX1BlcnNvbmFsaXR5X0ZuKShpbnQsIF9VbndpbmRfQWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVW53aW5kX0V4Y2VwdGlvbl9DbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1Vud2luZF9FeGNlcHRpb24gKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKdHlwZWRlZiBfVW53aW5kX1BlcnNvbmFsaXR5X0ZuIF9fcGVyc29uYWxpdHlfcm91dGluZTsKCnR5cGVkZWYgX1Vud2luZF9SZWFzb25fQ29kZSAoKl9VbndpbmRfVHJhY2VfRm4pKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKTsKCiNpZiBkZWZpbmVkKF9fYXJtX18pICYmICEoZGVmaW5lZChfX1VTSU5HX1NKTEpfRVhDRVBUSU9OU19fKSB8fCBkZWZpbmVkKF9fQVJNX0RXQVJGX0VIX18pKQp0eXBlZGVmIGVudW0gewogIF9VVlJTQ19DT1JFID0gMCwgICAgICAgIC8qIGludGVnZXIgcmVnaXN0ZXIgKi8KICBfVVZSU0NfVkZQID0gMSwgICAgICAgICAvKiB2ZnAgKi8KICBfVVZSU0NfV01NWEQgPSAzLCAgICAgICAvKiBJbnRlbCBXTU1YIGRhdGEgcmVnaXN0ZXIgKi8KICBfVVZSU0NfV01NWEMgPSA0ICAgICAgICAvKiBJbnRlbCBXTU1YIGNvbnRyb2wgcmVnaXN0ZXIgKi8KfSBfVW53aW5kX1ZSU19SZWdDbGFzczsKCnR5cGVkZWYgZW51bSB7CiAgX1VWUlNEX1VJTlQzMiA9IDAsCiAgX1VWUlNEX1ZGUFggPSAxLAogIF9VVlJTRF9VSU5UNjQgPSAzLAogIF9VVlJTRF9GTE9BVCA9IDQsCiAgX1VWUlNEX0RPVUJMRSA9IDUKfSBfVW53aW5kX1ZSU19EYXRhUmVwcmVzZW50YXRpb247Cgp0eXBlZGVmIGVudW0gewogIF9VVlJTUl9PSyA9IDAsCiAgX1VWUlNSX05PVF9JTVBMRU1FTlRFRCA9IDEsCiAgX1VWUlNSX0ZBSUxFRCA9IDIKfSBfVW53aW5kX1ZSU19SZXN1bHQ7Cgp0eXBlZGVmIHVpbnQzMl90IF9VbndpbmRfU3RhdGU7CiNkZWZpbmUgX1VTX1ZJUlRVQUxfVU5XSU5EX0ZSQU1FICAoKF9VbndpbmRfU3RhdGUpMCkKI2RlZmluZSBfVVNfVU5XSU5EX0ZSQU1FX1NUQVJUSU5HICgoX1Vud2luZF9TdGF0ZSkxKQojZGVmaW5lIF9VU19VTldJTkRfRlJBTUVfUkVTVU1FICAgKChfVW53aW5kX1N0YXRlKTIpCiNkZWZpbmUgX1VTX0FDVElPTl9NQVNLICAgICAgICAgICAoKF9VbndpbmRfU3RhdGUpMykKI2RlZmluZSBfVVNfRk9SQ0VfVU5XSU5EICAgICAgICAgICgoX1Vud2luZF9TdGF0ZSk4KQoKX1Vud2luZF9WUlNfUmVzdWx0IF9VbndpbmRfVlJTX0dldChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpfX2NvbnRleHQsCiAgX1Vud2luZF9WUlNfUmVnQ2xhc3MgX19yZWdjbGFzcywKICB1aW50MzJfdCBfX3JlZ25vLAogIF9VbndpbmRfVlJTX0RhdGFSZXByZXNlbnRhdGlvbiBfX3JlcHJlc2VudGF0aW9uLAogIHZvaWQgKl9fdmFsdWVwKTsKCl9VbndpbmRfVlJTX1Jlc3VsdCBfVW53aW5kX1ZSU19TZXQoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqX19jb250ZXh0LAogIF9VbndpbmRfVlJTX1JlZ0NsYXNzIF9fcmVnY2xhc3MsCiAgdWludDMyX3QgX19yZWdubywKICBfVW53aW5kX1ZSU19EYXRhUmVwcmVzZW50YXRpb24gX19yZXByZXNlbnRhdGlvbiwKICB2b2lkICpfX3ZhbHVlcCk7CgpzdGF0aWMgX19pbmxpbmVfXwpfVW53aW5kX1dvcmQgX1Vud2luZF9HZXRHUihzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpfX2NvbnRleHQsIGludCBfX2luZGV4KSB7CiAgX1Vud2luZF9Xb3JkIF9fdmFsdWU7CiAgX1Vud2luZF9WUlNfR2V0KF9fY29udGV4dCwgX1VWUlNDX0NPUkUsIF9faW5kZXgsIF9VVlJTRF9VSU5UMzIsICZfX3ZhbHVlKTsKICByZXR1cm4gX192YWx1ZTsKfQoKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfVW53aW5kX1NldEdSKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKl9fY29udGV4dCwgaW50IF9faW5kZXgsCiAgICAgICAgICAgICAgICAgICBfVW53aW5kX1dvcmQgX192YWx1ZSkgewogIF9VbndpbmRfVlJTX1NldChfX2NvbnRleHQsIF9VVlJTQ19DT1JFLCBfX2luZGV4LCBfVVZSU0RfVUlOVDMyLCAmX192YWx1ZSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fCl9VbndpbmRfV29yZCBfVW53aW5kX0dldElQKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKl9fY29udGV4dCkgewogIF9VbndpbmRfV29yZCBfX2lwID0gX1Vud2luZF9HZXRHUihfX2NvbnRleHQsIDE1KTsKICByZXR1cm4gX19pcCAmIH4oX1Vud2luZF9Xb3JkKSgweDEpOyAvKiBSZW1vdmUgdGh1bWIgbW9kZSBiaXQuICovCn0KCnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX1Vud2luZF9TZXRJUChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpfX2NvbnRleHQsIF9VbndpbmRfV29yZCBfX3ZhbHVlKSB7CiAgX1Vud2luZF9Xb3JkIF9fdGh1bWJfbW9kZV9iaXQgPSBfVW53aW5kX0dldEdSKF9fY29udGV4dCwgMTUpICYgMHgxOwogIF9VbndpbmRfU2V0R1IoX19jb250ZXh0LCAxNSwgX192YWx1ZSB8IF9fdGh1bWJfbW9kZV9iaXQpOwp9CiNlbHNlCl9VbndpbmRfV29yZCBfVW53aW5kX0dldEdSKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwgaW50KTsKdm9pZCBfVW53aW5kX1NldEdSKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwgaW50LCBfVW53aW5kX1dvcmQpOwoKX1Vud2luZF9Xb3JkIF9VbndpbmRfR2V0SVAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKdm9pZCBfVW53aW5kX1NldElQKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwgX1Vud2luZF9Xb3JkKTsKI2VuZGlmCgoKX1Vud2luZF9Xb3JkIF9VbndpbmRfR2V0SVBJbmZvKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwgaW50ICopOwoKX1Vud2luZF9Xb3JkIF9VbndpbmRfR2V0Q0ZBKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CgpfVW53aW5kX1dvcmQgX1Vud2luZF9HZXRCU1Aoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKCnZvaWQgKl9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKCl9VbndpbmRfUHRyIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKCi8qIERXQVJGIEVIIGZ1bmN0aW9uczsgY3VycmVudGx5IG5vdCBhdmFpbGFibGUgb24gRGFyd2luL0FSTSAqLwojaWYgIWRlZmluZWQoX19BUFBMRV9fKSB8fCAhZGVmaW5lZChfX2FybV9fKQpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfUmFpc2VFeGNlcHRpb24oX1Vud2luZF9FeGNlcHRpb24gKik7Cl9VbndpbmRfUmVhc29uX0NvZGUgX1Vud2luZF9Gb3JjZWRVbndpbmQoX1Vud2luZF9FeGNlcHRpb24gKiwgX1Vud2luZF9TdG9wX0ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKik7CnZvaWQgX1Vud2luZF9EZWxldGVFeGNlcHRpb24oX1Vud2luZF9FeGNlcHRpb24gKik7CnZvaWQgX1Vud2luZF9SZXN1bWUoX1Vud2luZF9FeGNlcHRpb24gKik7Cl9VbndpbmRfUmVhc29uX0NvZGUgX1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdyhfVW53aW5kX0V4Y2VwdGlvbiAqKTsKCiNlbmRpZgoKX1Vud2luZF9SZWFzb25fQ29kZSBfVW53aW5kX0JhY2t0cmFjZShfVW53aW5kX1RyYWNlX0ZuLCB2b2lkICopOwoKLyogc2V0am1wKDMpL2xvbmdqbXAoMykgc3R1ZmYgKi8KdHlwZWRlZiBzdHJ1Y3QgU2pMal9GdW5jdGlvbl9Db250ZXh0ICpfVW53aW5kX0Z1bmN0aW9uQ29udGV4dF90OwoKdm9pZCBfVW53aW5kX1NqTGpfUmVnaXN0ZXIoX1Vud2luZF9GdW5jdGlvbkNvbnRleHRfdCk7CnZvaWQgX1Vud2luZF9TakxqX1VucmVnaXN0ZXIoX1Vud2luZF9GdW5jdGlvbkNvbnRleHRfdCk7Cl9VbndpbmRfUmVhc29uX0NvZGUgX1Vud2luZF9TakxqX1JhaXNlRXhjZXB0aW9uKF9VbndpbmRfRXhjZXB0aW9uICopOwpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfU2pMal9Gb3JjZWRVbndpbmQoX1Vud2luZF9FeGNlcHRpb24gKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VbndpbmRfU3RvcF9Gbiwgdm9pZCAqKTsKdm9pZCBfVW53aW5kX1NqTGpfUmVzdW1lKF9VbndpbmRfRXhjZXB0aW9uICopOwpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfU2pMal9SZXN1bWVfb3JfUmV0aHJvdyhfVW53aW5kX0V4Y2VwdGlvbiAqKTsKCnZvaWQgKl9VbndpbmRfRmluZEVuY2xvc2luZ0Z1bmN0aW9uKHZvaWQgKik7CgojaWZkZWYgX19BUFBMRV9fCgpfVW53aW5kX1B0ciBfVW53aW5kX0dldERhdGFSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKikKICAgIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwpfVW53aW5kX1B0ciBfVW53aW5kX0dldFRleHRSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKikKICAgIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwoKLyogRGFyd2luLXNwZWNpZmljIGZ1bmN0aW9ucyAqLwp2b2lkIF9fcmVnaXN0ZXJfZnJhbWUoY29uc3Qgdm9pZCAqKTsKdm9pZCBfX2RlcmVnaXN0ZXJfZnJhbWUoY29uc3Qgdm9pZCAqKTsKCnN0cnVjdCBkd2FyZl9laF9iYXNlcyB7CiAgdWludHB0cl90IHRiYXNlOwogIHVpbnRwdHJfdCBkYmFzZTsKICB1aW50cHRyX3QgZnVuYzsKfTsKdm9pZCAqX1Vud2luZF9GaW5kX0ZERShjb25zdCB2b2lkICosIHN0cnVjdCBkd2FyZl9laF9iYXNlcyAqKTsKCnZvaWQgX19yZWdpc3Rlcl9mcmFtZV9pbmZvX2Jhc2VzKGNvbnN0IHZvaWQgKiwgdm9pZCAqLCB2b2lkICosIHZvaWQgKikKICBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKdm9pZCBfX3JlZ2lzdGVyX2ZyYW1lX2luZm8oY29uc3Qgdm9pZCAqLCB2b2lkICopIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwp2b2lkIF9fcmVnaXN0ZXJfZnJhbWVfaW5mb190YWJsZV9iYXNlcyhjb25zdCB2b2lkICosIHZvaWQqLCB2b2lkICosIHZvaWQgKikKICBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKdm9pZCBfX3JlZ2lzdGVyX2ZyYW1lX2luZm9fdGFibGUoY29uc3Qgdm9pZCAqLCB2b2lkICopCiAgX19hdHRyaWJ1dGVfXygoX191bmF2YWlsYWJsZV9fKSk7CnZvaWQgX19yZWdpc3Rlcl9mcmFtZV90YWJsZShjb25zdCB2b2lkICopIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwp2b2lkIF9fZGVyZWdpc3Rlcl9mcmFtZV9pbmZvKGNvbnN0IHZvaWQgKikgX19hdHRyaWJ1dGVfXygoX191bmF2YWlsYWJsZV9fKSk7CnZvaWQgX19kZXJlZ2lzdGVyX2ZyYW1lX2luZm9fYmFzZXMoY29uc3Qgdm9pZCAqKV9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwoKI2Vsc2UKCl9VbndpbmRfUHRyIF9VbndpbmRfR2V0RGF0YVJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwoKI2VuZGlmCgoKI2lmbmRlZiBISURFX0VYUE9SVFMKI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKI2VuZGlmCgojaWZkZWYgX19jcGx1c3BsdXMKfQojZW5kaWYKCiNlbmRpZgoKI2VuZGlmIC8qIF9fQ0xBTkdfVU5XSU5EX0ggKi8KAC8qPT09LS0tLSB4bW1pbnRyaW4uaCAtIFNTRSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YTU1JTlRSSU5fSAojZGVmaW5lIF9fWE1NSU5UUklOX0gKCiNpbmNsdWRlIDxtbWludHJpbi5oPgoKdHlwZWRlZiBpbnQgX192NHNpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKdHlwZWRlZiBmbG9hdCBfX3Y0c2YgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSkpOwp0eXBlZGVmIGZsb2F0IF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKCnR5cGVkZWYgZmxvYXQgX19tMTI4X3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMSkpKTsKCi8qIFVuc2lnbmVkIHR5cGVzICovCnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdjRzdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSk7CgovKiBUaGlzIGhlYWRlciBzaG91bGQgb25seSBiZSBpbmNsdWRlZCBpbiBhIGhvc3RlZCBlbnZpcm9ubWVudCBhcyBpdCBkZXBlbmRzIG9uCiAqIGEgc3RhbmRhcmQgbGlicmFyeSB0byBwcm92aWRlIGFsbG9jYXRpb24gcm91dGluZXMuICovCiNpZiBfX1NURENfSE9TVEVEX18KI2luY2x1ZGUgPG1tX21hbGxvYy5oPgojZW5kaWYKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX01NWCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1teCxzc2UiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNjQpKSkKCi8vLyBBZGRzIHRoZSAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUgb3BlcmFuZHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFNTIC8gQUREU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUgc3VtCi8vLyAgICBvZiB0aGUgbG93ZXIgMzIgYml0cyBvZiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gKz0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCi8vLyBBZGRzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0sIGFuZCByZXR1cm5zIHRoZSByZXN1bHRzIG9mCi8vLyAgICB0aGUgYWRkaXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFBTIC8gQUREUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHNmKV9fYSArIChfX3Y0c2YpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgMzItYml0IGZsb2F0IHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUgc2Vjb25kCi8vLyAgICBvcGVyYW5kIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNVQlNTIC8gU1VCU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtaW51ZW5kLiBUaGUgbG93ZXIgMzIgYml0cwovLy8gICAgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZC4gVGhlIGxvd2VyIDMyCi8vLyAgICBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGRpZmZlcmVuY2Ugb2YgdGhlIGxvd2VyIDMyIGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlCi8vLyAgICBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgX19hWzBdIC09IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gU3VidHJhY3RzIGVhY2ggb2YgdGhlIHZhbHVlcyBvZiB0aGUgc2Vjb25kIG9wZXJhbmQgZnJvbSB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQsIGJvdGggb2Ygd2hpY2ggYXJlIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSBhbmQgcmV0dXJucwovLy8gICAgdGhlIHJlc3VsdHMgb2YgdGhlIHN1YnRyYWN0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJQUyAvIFNVQlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbWludWVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkoKF9fdjRzZilfX2EgLSAoX192NHNmKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUKLy8vICAgIG9wZXJhbmRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNVUxTUyAvIE1VTFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBwcm9kdWN0IG9mIHRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDk2Ci8vLyAgICBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gKj0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCi8vLyBNdWx0aXBsaWVzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gYW5kIHJldHVybnMgdGhlCi8vLyAgICByZXN1bHRzIG9mIHRoZSBtdWx0aXBsaWNhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTVVMUFMgLyBNVUxQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tdWxfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHNmKV9fYSAqIChfX3Y0c2YpX19iKTsKfQoKLy8vIERpdmlkZXMgdGhlIHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgMzIgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZCBieQovLy8gICAgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZESVZTUyAvIERJVlNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aWRlbmQuIFRoZSBsb3dlciAzMgovLy8gICAgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBkaXZpc29yLiBUaGUgbG93ZXIgMzIgYml0cwovLy8gICAgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcXVvdGllbnRzIG9mIHRoZQovLy8gICAgbG93ZXIgMzIgYml0cyBvZiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20gdGhlCi8vLyAgICB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZGl2X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gLz0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCi8vLyBEaXZpZGVzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRJVlBTIC8gRElWUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBkaXZpZGVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aXNvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcXVvdGllbnRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9kaXZfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHNmKV9fYSAvIChfX3Y0c2YpX19iKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290IG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGxvdy1vcmRlciBiaXRzCi8vLyAgICBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUU1MgLyBTUVJUU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNxdWFyZSByb290IG9mIHRoZQovLy8gICAgdmFsdWUgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcXJ0X3NzKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zcXJ0c3MoKF9fdjRzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUUFMgLyBTUVJUUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZQovLy8gICAgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcXJ0X3BzKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc3FydHBzKChfX3Y0c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIGFwcHJveGltYXRlIHJlY2lwcm9jYWwgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGUKLy8vICAgIGxvdy1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJDUFNTIC8gUkNQU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGFwcHJveGltYXRlCi8vLyAgICByZWNpcHJvY2FsIG9mIHRoZSB2YWx1ZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JjcF9zcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfcmNwc3MoKF9fdjRzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgYXBwcm94aW1hdGUgcmVjaXByb2NhbHMgb2YgdGhlIHZhbHVlcyBzdG9yZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJDUFBTIC8gUkNQUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYXBwcm94aW1hdGUKLy8vICAgIHJlY2lwcm9jYWxzIG9mIHRoZSB2YWx1ZXMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JjcF9wcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfcmNwcHMoKF9fdjRzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgYXBwcm94aW1hdGUgcmVjaXByb2NhbCBvZiB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIHZhbHVlCi8vLyAgICBzdG9yZWQgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJTUVJUU1MgLyBSU1FSVFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBhcHByb3hpbWF0ZQovLy8gICAgcmVjaXByb2NhbCBvZiB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUKLy8vICAgIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JzcXJ0X3NzKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcnNxcnRzcygoX192NHNmKV9fYSk7Cn0KCi8vLyBDYWxjdWxhdGVzIHRoZSBhcHByb3hpbWF0ZSByZWNpcHJvY2FscyBvZiB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZQovLy8gICAgdmFsdWVzIHN0b3JlZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZSU1FSVFBTIC8gUlNRUlRQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBhcHByb3hpbWF0ZQovLy8gICAgcmVjaXByb2NhbHMgb2YgdGhlIHNxdWFyZSByb290cyBvZiB0aGUgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yc3FydF9wcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JzcXJ0cHMoKF9fdjRzZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIGFuZCByZXR1cm5zIHRoZSBsZXNzZXIgdmFsdWUgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIHRoZQovLy8gICAgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNSU5TUyAvIE1JTlNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUKLy8vICAgIG1pbmltdW0gdmFsdWUgYmV0d2VlbiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbWluc3MoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gYW5kIHJldHVybnMgdGhlIGxlc3NlcgovLy8gICAgb2YgZWFjaCBwYWlyIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUlOUFMgLyBNSU5QUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVlcwovLy8gICAgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9taW5wcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIGFuZCByZXR1cm5zIHRoZSBncmVhdGVyIHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFYU1MgLyBNQVhTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtYXhpbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGFuZCByZXR1cm5zIHRoZSBncmVhdGVyCi8vLyAgICBvZiBlYWNoIHBhaXIgb2YgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVhQUyAvIE1BWFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORFBTIC8gQU5EUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZF9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpKChfX3Y0c3UpX19hICYgKF9fdjRzdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIEFORCBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLCB1c2luZwovLy8gICAgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZQovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQU5ETlBTIC8gQU5ETlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuIFRoZQovLy8gICAgb25lJ3MgY29tcGxlbWVudCBvZiB0aGlzIHZhbHVlIGlzIHVzZWQgaW4gdGhlIGJpdHdpc2UgQU5ELgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgQU5EIG9mIHRoZQovLy8gICAgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgZmlyc3Qgb3BlcmFuZCBhbmQgdGhlIHZhbHVlcyBpbiB0aGUgc2Vjb25kCi8vLyAgICBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hbmRub3RfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSh+KF9fdjRzdSlfX2EgJiAoX192NHN1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgT1Igb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWT1JQUyAvIE9SUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIE9SIG9mIHRoZQovLy8gICAgdmFsdWVzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fb3JfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHN1KV9fYSB8IChfX3Y0c3UpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBleGNsdXNpdmUgT1Igb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIC8gWE9SUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUgovLy8gICAgb2YgdGhlIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3hvcl9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpKChfX3Y0c3UpX19hIF4gKF9fdjRzdSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIGZvciBlcXVhbGl0eSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZQovLy8gICAgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3IgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUEVRU1MgLyBDTVBFUVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wZXFzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGZvciBlcXVhbGl0eS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QRVFQUyAvIENNUEVRUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGVxcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGxlc3MgdGhhbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlCi8vLyAgICBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRTUyAvIENNUExUU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGx0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBsdHNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBsZXNzIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFBTIC8gQ01QTFRQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsdF9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbHRwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgbGVzcyB0aGFuIG9yCi8vLyAgICBlcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlCi8vLyAgICByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTEVTUyAvIENNUExFU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGxlX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBsZXNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVBTIC8gQ01QTEVQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsZV9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbGVwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgZ3JlYXRlciB0aGFuCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZgovLy8gICAgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFNTIC8gQ01QTFRTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3Rfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19idWlsdGluX2lhMzJfY21wbHRzcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDEsIDIsIDMpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRQUyAvIENNUExUUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGx0cHMoKF9fdjRzZilfX2IsIChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGdyZWF0ZXIgdGhhbgovLy8gICAgb3IgZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExFU1MgLyBDTVBMRVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBnZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX2J1aWx0aW5faWEzMl9jbXBsZXNzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgMSwgMiwgMyk7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVBTIC8gQ01QTEVQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBnZV9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbGVwcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIGZvciBpbmVxdWFsaXR5IGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlCi8vLyAgICBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkVRU1MgLyBDTVBORVFTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmVxX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBuZXFzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGZvciBpbmVxdWFsaXR5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBORVFQUyAvIENNUE5FUVBTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5lcV9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbmVxcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIG5vdCBsZXNzIHRoYW4KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mCi8vLyAgICB0aGUgY29tcGFyaXNvbiBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFNTIC8gQ01QTkxUU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5sdF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbmx0c3MoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGZsb2F0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIG5vdCBsZXNzIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTFRQUyAvIENNUE5MVFBTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5sdF9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbmx0cHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIG5vdCBsZXNzIHRoYW4KLy8vICAgIG9yIGVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucwovLy8gICAgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTEVTUyAvIENNUE5MRVNTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubGVfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sZXNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFUFMgLyBDTVBOTEVQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubGVfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sZXBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBub3QgZ3JlYXRlcgovLy8gICAgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlCi8vLyAgICByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUU1MgLyBDTVBOTFRTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmd0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fYnVpbHRpbl9pYTMyX2NtcG5sdHNzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgMSwgMiwgMyk7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUUFMgLyBDTVBOTFRQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBuZ3RfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sdHBzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBub3QgZ3JlYXRlcgovLy8gICAgdGhhbiBvciBlcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kCi8vLyAgICByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFU1MgLyBDTVBOTEVTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmdlX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fYnVpbHRpbl9pYTMyX2NtcG5sZXNzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgMSwgMiwgMyk7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFUFMgLyBDTVBOTEVQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBuZ2VfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sZXBzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBvcmRlcmVkIHdpdGgKLy8vICAgIHJlc3BlY3QgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE9SRFNTIC8gQ01QT1JEU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG9yZF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wb3Jkc3MoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGZsb2F0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIG9yZGVyZWQgd2l0aCByZXNwZWN0IHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QT1JEUFMgLyBDTVBPUkRQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBvcmRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG9yZHBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyB1bm9yZGVyZWQKLy8vICAgIHdpdGggcmVzcGVjdCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kCi8vLyAgICByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QVU5PUkRTUyAvIENNUFVOT1JEU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcHVub3JkX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXB1bm9yZHNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSB1bm9yZGVyZWQgd2l0aCByZXNwZWN0IHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QVU5PUkRQUyAvIENNUFVOT1JEUFMgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wdW5vcmRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcHVub3JkcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyBmb3IgZXF1YWxpdHkgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNTIC8gQ09NSVNTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUKLy8vICAgIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWVxX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taWVxKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGxlc3MgdGhhbiB0aGUgc2Vjb25kCi8vLyAgICBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTUyAvIENPTUlTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21pbHRfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pbHQoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZpcnN0IG9wZXJhbmQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNTIC8gQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlsZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWlsZSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBncmVhdGVyIHRoYW4gdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU1MgLyBDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZQovLy8gICAgIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWd0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taWd0KChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bwovLy8gICAgdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTUyAvIENPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlnZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWlnZSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBub3QgZXF1YWwgdG8gdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU1MgLyBDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZQovLy8gICAgIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMSBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taW5lcV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWluZXEoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGFuIHVub3JkZXJlZCBjb21wYXJpc29uIG9mIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIHVzaW5nCi8vLyAgICB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aCBvcGVyYW5kcyB0byBkZXRlcm1pbmUgZXF1YWxpdHkgYW5kIHJldHVybnMKLy8vICAgIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU1MgLyBVQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pZXFfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taWVxKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhbiB1bm9yZGVyZWQgY29tcGFyaXNvbiBvZiB0d28gMzItYml0IGZsb2F0IHZhbHVlcyB1c2luZwovLy8gICAgdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGggb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzCi8vLyAgICBsZXNzIHRoYW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU1MgLyBVQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlsdF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pbHQoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGFuIHVub3JkZXJlZCBjb21wYXJpc29uIG9mIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIHVzaW5nCi8vLyAgICB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aCBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZpcnN0IG9wZXJhbmQgaXMKLy8vICAgIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUKLy8vICAgIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU1MgLyBVQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pbGVfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taWxlKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhbiB1bm9yZGVyZWQgY29tcGFyaXNvbiBvZiB0d28gMzItYml0IGZsb2F0IHZhbHVlcyB1c2luZwovLy8gICAgdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGggb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzCi8vLyAgICBncmVhdGVyIHRoYW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlCi8vLyAgICBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNTIC8gVUNPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taWd0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlndCgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gUGVyZm9ybXMgYW4gdW5vcmRlcmVkIGNvbXBhcmlzb24gb2YgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgdXNpbmcKLy8vICAgIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcwovLy8gICAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mCi8vLyAgICB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVUNPTUlTUyAvIFVDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlnZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pZ2UoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGFuIHVub3JkZXJlZCBjb21wYXJpc29uIG9mIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIHVzaW5nCi8vLyAgICB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aCBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaW5lcXVhbGl0eSBhbmQgcmV0dXJucwovLy8gICAgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMSBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVUNPTUlTUyAvIFVDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taW5lcV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pbmVxKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb252ZXJ0cyBhIGZsb2F0IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTUzJTSSAvIENWVFNTMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c3Nfc2kzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2N2dHNzMnNpKChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgZmxvYXQgdmFsdWUgY29udGFpbmVkIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgMzItYml0IGludGVnZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNTMlNJIC8gQ1ZUU1MyU0kgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRfc3Myc2koX19tMTI4IF9fYSkKewogIHJldHVybiBfbW1fY3Z0c3Nfc2kzMihfX2EpOwp9CgojaWZkZWYgX194ODZfNjRfXwoKLy8vIENvbnZlcnRzIGEgZmxvYXQgdmFsdWUgY29udGFpbmVkIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgNjQtYml0IGludGVnZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNTMlNJIC8gQ1ZUU1MyU0kgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzc19zaTY0KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0c3Myc2k2NCgoX192NHNmKV9fYSk7Cn0KCiNlbmRpZgoKLy8vIENvbnZlcnRzIHR3byBsb3ctb3JkZXIgZmxvYXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQUzJQSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRwc19waTMyKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX2N2dHBzMnBpKChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbnZlcnRzIHR3byBsb3ctb3JkZXIgZmxvYXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQUzJQSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRfcHMycGkoX19tMTI4IF9fYSkKewogIHJldHVybiBfbW1fY3Z0cHNfcGkzMihfX2EpOwp9CgovLy8gQ29udmVydHMgYSBmbG9hdCB2YWx1ZSBjb250YWluZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSAzMi1iaXQgaW50ZWdlciwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMKLy8vICAgIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFRTUzJTSSAvIENWVFRTUzJTSSA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb252ZXJzaW9uLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRzc19zaTMyKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNzMnNpKChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgZmxvYXQgdmFsdWUgY29udGFpbmVkIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgMzItYml0IGludGVnZXIsIHRydW5jYXRpbmcgdGhlIHJlc3VsdCB3aGVuIGl0IGlzCi8vLyAgICBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUU1MyU0kgLyBDVlRUU1MyU0kgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnR0X3NzMnNpKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX21tX2N2dHRzc19zaTMyKF9fYSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBDb252ZXJ0cyBhIGZsb2F0IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDY0LWJpdCBpbnRlZ2VyLCB0cnVuY2F0aW5nIHRoZSByZXN1bHQgd2hlbiBpdCBpcwovLy8gICAgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNTMlNJIC8gQ1ZUVFNTMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dHNzX3NpNjQoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnR0c3Myc2k2NCgoX192NHNmKV9fYSk7Cn0KI2VuZGlmCgovLy8gQ29udmVydHMgdHdvIGxvdy1vcmRlciBmbG9hdCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdLCB0cnVuY2F0aW5nIHRoZSByZXN1bHQKLy8vICAgIHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRUUFMyUEkgLyBWVFRQUzJQSSA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0dHBzX3BpMzIoX19tMTI4IF9fYSkKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfY3Z0dHBzMnBpKChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbnZlcnRzIHR3byBsb3ctb3JkZXIgZmxvYXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeAovLy8gICAgZmxvYXRdIGludG8gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQKLy8vICAgIGlzIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUVFBTMlBJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHRfcHMycGkoX19tMTI4IF9fYSkKewogIHJldHVybiBfbW1fY3Z0dHBzX3BpMzIoX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGludG8gYSBmbG9hdGluZyBwb2ludCB2YWx1ZQovLy8gICAgYW5kIHdyaXRlcyBpdCB0byB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgZGVzdGluYXRpb24uIFRoZSByZW1haW5pbmcKLy8vICAgIGhpZ2hlciBvcmRlciBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yIGFyZSBjb3BpZWQgZnJvbSB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNJMlNTIC8gQ1ZUU0kyU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAzMi1iaXQgc2lnbmVkIGludGVnZXIgb3BlcmFuZCBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvbnZlcnRlZCB2YWx1ZSBvZiB0aGUgc2Vjb25kIG9wZXJhbmQuIFRoZSB1cHBlciA5NiBiaXRzIGFyZSBjb3BpZWQgZnJvbQovLy8gICAgdGhlIHVwcGVyIDk2IGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMzJfc3MoX19tMTI4IF9fYSwgaW50IF9fYikKewogIF9fYVswXSA9IF9fYjsKICByZXR1cm4gX19hOwp9CgovLy8gQ29udmVydHMgYSAzMi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWUgaW50byBhIGZsb2F0aW5nIHBvaW50IHZhbHVlCi8vLyAgICBhbmQgd3JpdGVzIGl0IHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4gVGhlIHJlbWFpbmluZwovLy8gICAgaGlnaGVyIG9yZGVyIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUgY29waWVkIGZyb20gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTSTJTUyAvIENWVFNJMlNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRfc2kyc3MoX19tMTI4IF9fYSwgaW50IF9fYikKewogIHJldHVybiBfbW1fY3Z0c2kzMl9zcyhfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCgovLy8gQ29udmVydHMgYSA2NC1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWUgaW50byBhIGZsb2F0aW5nIHBvaW50IHZhbHVlCi8vLyAgICBhbmQgd3JpdGVzIGl0IHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4gVGhlIHJlbWFpbmluZwovLy8gICAgaGlnaGVyIG9yZGVyIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUgY29waWVkIGZyb20gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTSTJTUyAvIENWVFNJMlNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTY0X3NzKF9fbTEyOCBfX2EsIGxvbmcgbG9uZyBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKI2VuZGlmCgovLy8gQ29udmVydHMgdHdvIGVsZW1lbnRzIG9mIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gaW50byB0d28KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBhbmQgd3JpdGVzIHRoZW0gdG8gdGhlIGxvd2VyIDY0LWJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gVGhlIHJlbWFpbmluZyBoaWdoZXIgb3JkZXIgZWxlbWVudHMgb2YgdGhlIGRlc3RpbmF0aW9uIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEkyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGVsZW1lbnRzIGluIHRoaXMgdmVjdG9yIGFyZSBjb252ZXJ0ZWQKLy8vICAgIGFuZCB3cml0dGVuIHRvIHRoZSBjb3JyZXNwb25kaW5nIGxvdy1vcmRlciBlbGVtZW50cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvbnZlcnRlZCB2YWx1ZSBvZiB0aGUgc2Vjb25kIG9wZXJhbmQuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbQovLy8gICAgdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRwaTMyX3BzKF9fbTEyOCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRwaTJwcygoX192NHNmKV9fYSwgKF9fdjJzaSlfX2IpOwp9CgovLy8gQ29udmVydHMgdHdvIGVsZW1lbnRzIG9mIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gaW50byB0d28KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBhbmQgd3JpdGVzIHRoZW0gdG8gdGhlIGxvd2VyIDY0LWJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gVGhlIHJlbWFpbmluZyBoaWdoZXIgb3JkZXIgZWxlbWVudHMgb2YgdGhlIGRlc3RpbmF0aW9uIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEkyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGVsZW1lbnRzIGluIHRoaXMgdmVjdG9yIGFyZSBjb252ZXJ0ZWQKLy8vICAgIGFuZCB3cml0dGVuIHRvIHRoZSBjb3JyZXNwb25kaW5nIGxvdy1vcmRlciBlbGVtZW50cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvbnZlcnRlZCB2YWx1ZSBmcm9tIHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dF9waTJwcyhfX20xMjggX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gX21tX2N2dHBpMzJfcHMoX19hLCBfX2IpOwp9CgovLy8gRXh0cmFjdHMgYSBmbG9hdCB2YWx1ZSBjb250YWluZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBleHRyYWN0aW9uLgovLy8gXHJldHVybnMgQSAzMi1iaXQgZmxvYXQgY29udGFpbmluZyB0aGUgZXh0cmFjdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNzX2YzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYVswXTsKfQoKLy8vIExvYWRzIHR3byBwYWNrZWQgZmxvYXQgdmFsdWVzIGZyb20gdGhlIGFkZHJlc3MgXGEgX19wIGludG8gdGhlCi8vLyAgICAgaGlnaC1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3ctb3JkZXIgYml0cwovLy8gICAgIGFyZSBjb3BpZWQgZnJvbSB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkhQRCAvIE1PVkhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdCi8vLyAgICBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gdHdvIHBhY2tlZCBmbG9hdCB2YWx1ZXMuIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMKLy8vICAgIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkaF9waShfX20xMjggX19hLCBjb25zdCBfX202NCAqX19wKQp7CiAgdHlwZWRlZiBmbG9hdCBfX21tX2xvYWRoX3BpX3YyZjMyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwogIHN0cnVjdCBfX21tX2xvYWRoX3BpX3N0cnVjdCB7CiAgICBfX21tX2xvYWRoX3BpX3YyZjMyIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX21tX2xvYWRoX3BpX3YyZjMyIF9fYiA9ICgoY29uc3Qgc3RydWN0IF9fbW1fbG9hZGhfcGlfc3RydWN0KilfX3ApLT5fX3U7CiAgX19tMTI4IF9fYmIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMCwgMSwgMCwgMSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19iYiwgMCwgMSwgNCwgNSk7Cn0KCi8vLyBMb2FkcyB0d28gcGFja2VkIGZsb2F0IHZhbHVlcyBmcm9tIHRoZSBhZGRyZXNzIFxhIF9fcCBpbnRvIHRoZQovLy8gICAgbG93LW9yZGVyIGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGhpZ2gtb3JkZXIgYml0cwovLy8gICAgYXJlIGNvcGllZCBmcm9tIHRoZSBoaWdoLW9yZGVyIGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkxQRCAvIE1PVkxQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cwovLy8gICAgWzEyNzo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHR3byBwYWNrZWQgZmxvYXQgdmFsdWVzLiBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzCi8vLyAgICBbNjM6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRsX3BpKF9fbTEyOCBfX2EsIGNvbnN0IF9fbTY0ICpfX3ApCnsKICB0eXBlZGVmIGZsb2F0IF9fbW1fbG9hZGxfcGlfdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgc3RydWN0IF9fbW1fbG9hZGxfcGlfc3RydWN0IHsKICAgIF9fbW1fbG9hZGxfcGlfdjJmMzIgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9fbW1fbG9hZGxfcGlfdjJmMzIgX19iID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkbF9waV9zdHJ1Y3QqKV9fcCktPl9fdTsKICBfX20xMjggX19iYiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYiwgX19iLCAwLCAxLCAwLCAxKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2JiLCA0LCA1LCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoZSB2ZWN0b3IgYXJlIGluaXRpYWxpemVkIHdpdGggdGhlIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlIGxvYWRlZCBmcm9tIGEgc3BlY2lmaWVkIG1lbW9yeSBsb2NhdGlvbi4gVGhlIHVwcGVyCi8vLyAgICA5NiBiaXRzIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU1MgLyBNT1ZTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJpdCBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBhIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZQovLy8gICAgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZSB2YWx1ZSBsb2FkZWQgZnJvbSB0aGUgbWVtb3J5IGxvY2F0aW9uLiBUaGUKLy8vICAgIHVwcGVyIDk2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkX3NzKGNvbnN0IGZsb2F0ICpfX3ApCnsKICBzdHJ1Y3QgX19tbV9sb2FkX3NzX3N0cnVjdCB7CiAgICBmbG9hdCBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgZmxvYXQgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkX3NzX3N0cnVjdCopX19wKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpeyBfX3UsIDAsIDAsIDAgfTsKfQoKLy8vIExvYWRzIGEgMzItYml0IGZsb2F0IHZhbHVlIGFuZCBkdXBsaWNhdGVzIGl0IHRvIGFsbCBmb3VyIHZlY3RvcgovLy8gICAgZWxlbWVudHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQlJPQURDQVNUU1MgLyBNT1ZTUyArIHNodWZmbGluZyA8L2M+Ci8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBmbG9hdCB2YWx1ZSB0byBiZSBsb2FkZWQgYW5kIGR1cGxpY2F0ZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCBhbmQKLy8vICAgIGR1cGxpY2F0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkMV9wcyhjb25zdCBmbG9hdCAqX19wKQp7CiAgc3RydWN0IF9fbW1fbG9hZDFfcHNfc3RydWN0IHsKICAgIGZsb2F0IF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBmbG9hdCBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX21tX2xvYWQxX3BzX3N0cnVjdCopX19wKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpeyBfX3UsIF9fdSwgX191LCBfX3UgfTsKfQoKI2RlZmluZSAgICAgICAgX21tX2xvYWRfcHMxKHApIF9tbV9sb2FkMV9wcyhwKQoKLy8vIExvYWRzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gZnJvbSBhbiBhbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQUyAvIE1PVkFQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBoYXMgdG8gYmUgMTI4LWJpdCBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkX3BzKGNvbnN0IGZsb2F0ICpfX3ApCnsKICByZXR1cm4gKihjb25zdCBfX20xMjgqKV9fcDsKfQoKLy8vIExvYWRzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gZnJvbSBhbgovLy8gICAgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBTIC8gTU9WVVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHVfcHMoY29uc3QgZmxvYXQgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3BzIHsKICAgIF9fbTEyOF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wcyopX19wKS0+X192Owp9CgovLy8gTG9hZHMgZm91ciBwYWNrZWQgZmxvYXQgdmFsdWVzLCBpbiByZXZlcnNlIG9yZGVyLCBmcm9tIGFuIGFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiB0byAzMi1iaXQgZWxlbWVudHMgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WQVBTIC8gTU9WQVBTICsgc2h1ZmZsaW5nIDwvYz4KLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBoYXMgdG8gYmUgMTI4LWJpdCBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMsIGxvYWRlZAovLy8gICAgaW4gcmV2ZXJzZSBvcmRlci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHJfcHMoY29uc3QgZmxvYXQgKl9fcCkKewogIF9fbTEyOCBfX2EgPSBfbW1fbG9hZF9wcyhfX3ApOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDMsIDIsIDEsIDApOwp9CgovLy8gQ3JlYXRlIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2l0aCB1bmRlZmluZWQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdW5kZWZpbmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5kZWZpbmVkX3BzKHZvaWQpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl91bmRlZjEyOCgpOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhlIHZlY3RvciBhcmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlNTIC8gTU9WU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciAzMgovLy8gICAgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZQovLy8gICAgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgc291cmNlIG9wZXJhbmQuIFRoZQovLy8gICAgdXBwZXIgOTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9zcyhmbG9hdCBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX193LCAwLCAwLCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0sIHdpdGggZWFjaAovLy8gICAgb2YgdGhlIGZvdXIgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTIC8gUEVSTUlMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9wcyhmbG9hdCBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX193LCBfX3csIF9fdywgX193IH07Cn0KCi8qIE1pY3Jvc29mdCBzcGVjaWZpYy4gKi8KLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSwgd2l0aCBlYWNoCi8vLyAgICBvZiB0aGUgZm91ciBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlCi8vLyAgICBzcGVjaWZpZWQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUFMgLyBQRVJNSUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcHMxKGZsb2F0IF9fdykKewogICAgcmV0dXJuIF9tbV9zZXQxX3BzKF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0KLy8vICAgIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3oKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3kKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6NjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9feAovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzozMl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9wcyhmbG9hdCBfX3osIGZsb2F0IF9feSwgZmxvYXQgX194LCBmbG9hdCBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX193LCBfX3gsIF9feSwgX196IH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0sCi8vLyAgICBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyIHdpdGggdGhlIHNwZWNpZmllZCAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXQtcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fegovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMTowXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3kKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MzJdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9feAovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo5Nl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0cl9wcyhmbG9hdCBfX3osIGZsb2F0IF9feSwgZmxvYXQgX194LCBmbG9hdCBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX196LCBfX3ksIF9feCwgX193IH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW5pdGlhbGl6ZWQKLy8vICAgIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIC8gWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aXRoCi8vLyAgICBhbGwgZWxlbWVudHMgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHplcm9fcHModm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpeyAwLCAwLCAwLCAwIH07Cn0KCi8vLyBTdG9yZXMgdGhlIHVwcGVyIDY0IGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFWFRSUSAvIFBFWFRSUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZWhfcGkoX19tNjQgKl9fcCwgX19tMTI4IF9fYSkKewogIHR5cGVkZWYgZmxvYXQgX19tbV9zdG9yZWhfcGlfdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgc3RydWN0IF9fbW1fc3RvcmVoX3BpX3N0cnVjdCB7CiAgICBfX21tX3N0b3JlaF9waV92MmYzMiBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWhfcGlfc3RydWN0KilfX3ApLT5fX3UgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMiwgMyk7Cn0KCi8vLyBTdG9yZXMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhCi8vLyAgICAgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUFMgLyBNT1ZMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlbF9waShfX202NCAqX19wLCBfX20xMjggX19hKQp7CiAgdHlwZWRlZiBmbG9hdCBfX21tX3N0b3JlaF9waV92MmYzMiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKICBzdHJ1Y3QgX19tbV9zdG9yZWhfcGlfc3RydWN0IHsKICAgIF9fbW1fc3RvcmVoX3BpX3YyZjMyIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX21tX3N0b3JlaF9waV9zdHJ1Y3QqKV9fcCktPl9fdSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAxKTsKfQoKLy8vIFN0b3JlcyB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGEKLy8vICAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlNTIC8gTU9WU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAzMi1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9zcyhmbG9hdCAqX19wLCBfX20xMjggX19hKQp7CiAgc3RydWN0IF9fbW1fc3RvcmVfc3Nfc3RydWN0IHsKICAgIGZsb2F0IF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX21tX3N0b3JlX3NzX3N0cnVjdCopX19wKS0+X191ID0gX19hWzBdOwp9CgovLy8gU3RvcmVzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYW4gdW5hbGlnbmVkIG1lbW9yeQovLy8gICAgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlVQUyAvIE1PVlVQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfcHMoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIHN0cnVjdCBfX3N0b3JldV9wcyB7CiAgICBfX20xMjhfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfcHMqKV9fcCktPl9fdiA9IF9fYTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGludG8gYW4gYWxpZ25lZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gaGFzIHRvIGJlIDE2LWJ5dGUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlX3BzKGZsb2F0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICAqKF9fbTEyOCopX19wID0gX19hOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50bwovLy8gICAgZm91ciBjb250aWd1b3VzIGVsZW1lbnRzIGluIGFuIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byA8Yz4gVk1PVkFQUyAvIE1PVkFQUyArIHNodWZmbGluZyA8L2M+Ci8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgMzIgYml0cyBhcmUgc3RvcmVkIHRvIGVhY2gKLy8vICAgIG9mIHRoZSBmb3VyIGNvbnRpZ3VvdXMgZWxlbWVudHMgcG9pbnRlZCBieSBcYSBfX3AuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZTFfcHMoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYSwgMCwgMCwgMCwgMCk7CiAgX21tX3N0b3JlX3BzKF9fcCwgX19hKTsKfQoKLy8vIFN0b3JlcyB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGludG8KLy8vICAgIGZvdXIgY29udGlndW91cyBlbGVtZW50cyBpbiBhbiBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgKyBzaHVmZmxpbmcgPC9jPgovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgYXJlIHN0b3JlZCB0byBlYWNoCi8vLyAgICBvZiB0aGUgZm91ciBjb250aWd1b3VzIGVsZW1lbnRzIHBvaW50ZWQgYnkgXGEgX19wLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVfcHMxKGZsb2F0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICBfbW1fc3RvcmUxX3BzKF9fcCwgX19hKTsKfQoKLy8vIFN0b3JlcyBmbG9hdCB2YWx1ZXMgZnJvbSBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGFuCi8vLyAgICBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiBpbiByZXZlcnNlIG9yZGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgKyBzaHVmZmxpbmcgPC9jPgovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGhhcyB0byBiZSAxMjgtYml0IGFsaWduZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXJfcHMoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYSwgMywgMiwgMSwgMCk7CiAgX21tX3N0b3JlX3BzKF9fcCwgX19hKTsKfQoKI2RlZmluZSBfTU1fSElOVF9FVDAgNwojZGVmaW5lIF9NTV9ISU5UX0VUMSA2CiNkZWZpbmUgX01NX0hJTlRfVDAgIDMKI2RlZmluZSBfTU1fSElOVF9UMSAgMgojZGVmaW5lIF9NTV9ISU5UX1QyICAxCiNkZWZpbmUgX01NX0hJTlRfTlRBIDAKCiNpZm5kZWYgX01TQ19WRVIKLyogRklYTUU6IFdlIGhhdmUgdG8gI2RlZmluZSB0aGlzIGJlY2F1c2UgInNlbCIgbXVzdCBiZSBhIGNvbnN0YW50IGludGVnZXIsIGFuZAogICBTZW1hIGRvZXNuJ3QgZG8gYW55IGZvcm0gb2YgY29uc3RhbnQgcHJvcGFnYXRpb24geWV0LiAqLwoKLy8vIExvYWRzIG9uZSBjYWNoZSBsaW5lIG9mIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgdG8gYSBsb2NhdGlvbgovLy8gICAgY2xvc2VyIHRvIHRoZSBwcm9jZXNzb3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyB2b2lkIF9tbV9wcmVmZXRjaChjb25zdCB2b2lkICogYSwgY29uc3QgaW50IHNlbCk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFJFRkVUQ0hOVEEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSBjYWNoZSBsaW5lIG9mIGRhdGEuCi8vLyBccGFyYW0gc2VsCi8vLyAgICBBIHByZWRlZmluZWQgaW50ZWdlciBjb25zdGFudCBzcGVjaWZ5aW5nIHRoZSB0eXBlIG9mIHByZWZldGNoCi8vLyAgICBvcGVyYXRpb246IFxuCi8vLyAgICBfTU1fSElOVF9OVEE6IE1vdmUgZGF0YSB1c2luZyB0aGUgbm9uLXRlbXBvcmFsIGFjY2VzcyAoTlRBKSBoaW50LiBUaGUKLy8vICAgIFBSRUZFVENITlRBIGluc3RydWN0aW9uIHdpbGwgYmUgZ2VuZXJhdGVkLiBcbgovLy8gICAgX01NX0hJTlRfVDA6IE1vdmUgZGF0YSB1c2luZyB0aGUgVDAgaGludC4gVGhlIFBSRUZFVENIVDAgaW5zdHJ1Y3Rpb24gd2lsbAovLy8gICAgYmUgZ2VuZXJhdGVkLiBcbgovLy8gICAgX01NX0hJTlRfVDE6IE1vdmUgZGF0YSB1c2luZyB0aGUgVDEgaGludC4gVGhlIFBSRUZFVENIVDEgaW5zdHJ1Y3Rpb24gd2lsbAovLy8gICAgYmUgZ2VuZXJhdGVkLiBcbgovLy8gICAgX01NX0hJTlRfVDI6IE1vdmUgZGF0YSB1c2luZyB0aGUgVDIgaGludC4gVGhlIFBSRUZFVENIVDIgaW5zdHJ1Y3Rpb24gd2lsbAovLy8gICAgYmUgZ2VuZXJhdGVkLgojZGVmaW5lIF9tbV9wcmVmZXRjaChhLCBzZWwpIChfX2J1aWx0aW5fcHJlZmV0Y2goKGNvbnN0IHZvaWQgKikoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VsKSA+PiAyKSAmIDEsIChzZWwpICYgMHgzKSkKI2VuZGlmCgovLy8gU3RvcmVzIGEgNjQtYml0IGludGVnZXIgaW4gdGhlIHNwZWNpZmllZCBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4gVG8KLy8vICAgIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZQovLy8gICAgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZOVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYW4gYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdXNlZCB0byBzdG9yZSB0aGUgcmVnaXN0ZXIgdmFsdWUuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zdHJlYW1fcGkoX19tNjQgKl9fcCwgX19tNjQgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbW92bnRxKF9fcCwgX19hKTsKfQoKLy8vIE1vdmVzIHBhY2tlZCBmbG9hdCB2YWx1ZXMgZnJvbSBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGEKLy8vICAgIDEyOC1iaXQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQKLy8vICAgIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlRQUyAvIE1PVk5UUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9wcyhmbG9hdCAqX19wLCBfX20xMjggX19hKQp7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3Y0c2YpX19hLCAoX192NHNmKilfX3ApOwp9CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIEZvcmNlcyBzdHJvbmcgbWVtb3J5IG9yZGVyaW5nIChzZXJpYWxpemF0aW9uKSBiZXR3ZWVuIHN0b3JlCi8vLyAgICBpbnN0cnVjdGlvbnMgcHJlY2VkaW5nIHRoaXMgaW5zdHJ1Y3Rpb24gYW5kIHN0b3JlIGluc3RydWN0aW9ucyBmb2xsb3dpbmcKLy8vICAgIHRoaXMgaW5zdHJ1Y3Rpb24sIGVuc3VyaW5nIHRoZSBzeXN0ZW0gY29tcGxldGVzIGFsbCBwcmV2aW91cyBzdG9yZXMKLy8vICAgIGJlZm9yZSBleGVjdXRpbmcgc3Vic2VxdWVudCBzdG9yZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gU0ZFTkNFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwp2b2lkIF9tbV9zZmVuY2Uodm9pZCk7CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKfSAvLyBleHRlcm4gIkMiCiNlbmRpZgoKLy8vIEV4dHJhY3RzIDE2LWJpdCBlbGVtZW50IGZyb20gYSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBhbmQKLy8vICAgIHJldHVybnMgaXQsIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fZXh0cmFjdF9waTE2KF9fbTY0IGEsIGludCBuKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVYVFJXIC8gUEVYVFJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gbgovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCB0aGF0IGRldGVybWluZXMgd2hpY2ggYml0cyBhcmUgZXh0cmFjdGVkOiBcbgovLy8gICAgMDogQml0cyBbMTU6MF0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxOiBCaXRzIFszMToxNl0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAyOiBCaXRzIFs0NzozMl0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAzOiBCaXRzIFs2Mzo0OF0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDE2LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCAxNiBiaXRzIG9mIHBhY2tlZCBkYXRhLgojZGVmaW5lIF9tbV9leHRyYWN0X3BpMTYoYSwgbikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjRoaSgoX192NGhpKWEsIChpbnQpbikpCgovLy8gQ29waWVzIGRhdGEgZnJvbSB0aGUgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gdG8gdGhlIGRlc3RpbmF0aW9uLAovLy8gICAgYW5kIGluc2VydHMgdGhlIGxvd2VyIDE2LWJpdHMgb2YgYW4gaW50ZWdlciBvcGVyYW5kIGF0IHRoZSAxNi1iaXQgb2Zmc2V0Ci8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIG4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX202NCBfbW1faW5zZXJ0X3BpMTYoX19tNjQgYSwgaW50IGQsIGludCBuKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQSU5TUlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBkCi8vLyAgICBBbiBpbnRlZ2VyLiBUaGUgbG93ZXIgMTYtYml0IHZhbHVlIGZyb20gdGhpcyBvcGVyYW5kIGlzIHdyaXR0ZW4gdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiBhdCB0aGUgb2Zmc2V0IHNwZWNpZmllZCBieSBvcGVyYW5kIFxhIG4uCi8vLyBccGFyYW0gbgovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFudCB0aGF0IGRldGVybWluZXMgd2hpY2ggdGhlIGJpdHMgdG8gYmUgdXNlZAovLy8gICAgaW4gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMDogQml0cyBbMTU6MF0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxOiBCaXRzIFszMToxNl0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAyOiBCaXRzIFs0NzozMl0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAzOiBCaXRzIFs2Mzo0OF0gYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24uICBcbgovLy8gICAgVGhlIHJlbWFpbmluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbiBhcmUgY29waWVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcKLy8vICAgIGJpdHMgaW4gb3BlcmFuZCBcYSBhLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29waWVkIHBhY2tlZCBkYXRhIGZyb20gdGhlCi8vLyAgICBvcGVyYW5kcy4KI2RlZmluZSBfbW1faW5zZXJ0X3BpMTYoYSwgZCwgbikgXAogICgoX19tNjQpX19idWlsdGluX2lhMzJfdmVjX3NldF92NGhpKChfX3Y0aGkpYSwgKGludClkLCAoaW50KW4pKQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgcGFja2VkIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcyBvZgovLy8gICAgdGhlIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIGFuZCB3cml0ZXMgdGhlIGdyZWF0ZXIgdmFsdWUgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBNQVhTVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tYXhfcGkxNihfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1heHN3KChfX3Y0aGkpX19hLCAoX192NGhpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBhY2tlZCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgb2YgdGhlIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIGFuZCB3cml0ZXMgdGhlIGdyZWF0ZXIgdmFsdWUgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBNQVhVQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tYXhfcHU4KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbWF4dWIoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgcGFja2VkIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcyBvZgovLy8gICAgdGhlIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIGFuZCB3cml0ZXMgdGhlIGxlc3NlciB2YWx1ZSB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1JTlNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX21pbl9waTE2KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbWluc3coKF9fdjRoaSlfX2EsIChfX3Y0aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgcGFja2VkIDgtYml0IHVuc2lnbmVkIGludGVnZXIKLy8vICAgIHZhbHVlcyBvZiB0aGUgNjQtYml0IGludGVnZXIgdmVjdG9ycywgYW5kIHdyaXRlcyB0aGUgbGVzc2VyIHZhbHVlIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTUlOVUIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbWluX3B1OChfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1pbnViKChfX3Y4cWkpX19hLCAoX192OHFpKV9fYik7Cn0KCi8vLyBUYWtlcyB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgZnJvbSBlYWNoIDgtYml0IGVsZW1lbnQgaW4gYSA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIHRvIGNyZWF0ZSBhbiA4LWJpdCBtYXNrIHZhbHVlLiBaZXJvLWV4dGVuZHMgdGhlIHZhbHVlIHRvCi8vLyAgICAzMi1iaXQgaW50ZWdlciBhbmQgd3JpdGVzIGl0IHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTU9WTVNLQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB3aXRoIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGZyb20gZWFjaCA4LWJpdCBlbGVtZW50IGluIFxhIF9fYSwKLy8vICAgIHdyaXR0ZW4gdG8gYml0cyBbNzowXS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX21vdmVtYXNrX3BpOChfX202NCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG1vdm1za2IoKF9fdjhxaSlfX2EpOwp9CgovLy8gTXVsdGlwbGllcyBwYWNrZWQgMTYtYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGFuZCB3cml0ZXMgdGhlCi8vLyAgICBoaWdoLW9yZGVyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1VTEhVVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbXVsaGlfcHUxNihfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG11bGh1dygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gU2h1ZmZsZXMgdGhlIDQgMTYtYml0IGludGVnZXJzIGZyb20gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgdmFsdWUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTY0IF9tbV9zaHVmZmxlX3BpMTYoX19tNjQgYSwgY29uc3QgaW50IG4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTSFVGVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc2h1ZmZsZWQuCi8vLyBccGFyYW0gbgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIGNvbnRhaW5pbmcgYW4gOC1iaXQgdmFsdWUgc3BlY2lmeWluZyB3aGljaCBlbGVtZW50cyB0bwovLy8gICAgY29weSBmcm9tIFxhIGEuIFRoZSBkZXN0aW5hdGlvbnMgd2l0aGluIHRoZSA2NC1iaXQgZGVzdGluYXRpb24gYXJlCi8vLyAgICBhc3NpZ25lZCB2YWx1ZXMgYXMgZm9sbG93czogXG4KLy8vICAgIEJpdHMgWzE6MF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFsxNTowXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMzoyXSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzMxOjE2XSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNTo0XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzQ3OjMyXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo2XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzYzOjQ4XSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IHZhbHVlIGFzc2lnbm1lbnRzOiBcbgovLy8gICAgMDA6IGFzc2lnbmVkIGZyb20gYml0cyBbMTU6MF0gb2YgXGEgYS4gXG4KLy8vICAgIDAxOiBhc3NpZ25lZCBmcm9tIGJpdHMgWzMxOjE2XSBvZiBcYSBhLiBcbgovLy8gICAgMTA6IGFzc2lnbmVkIGZyb20gYml0cyBbNDc6MzJdIG9mIFxhIGEuIFxuCi8vLyAgICAxMTogYXNzaWduZWQgZnJvbSBiaXRzIFs2Mzo0OF0gb2YgXGEgYS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fc2h1ZmZsZV9waTE2KGEsIG4pIFwKICAoKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzaHVmdygoX192NGhpKShfX202NCkoYSksIChuKSkpCgovLy8gQ29uZGl0aW9uYWxseSBjb3BpZXMgdGhlIHZhbHVlcyBmcm9tIGVhY2ggOC1iaXQgZWxlbWVudCBpbiB0aGUgZmlyc3QKLy8vICAgIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIHRvIHRoZSBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9uLCBhcwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZQovLy8gICAgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLgovLy8KLy8vICAgIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsCi8vLyAgICAodW5saWtlbHkgdG8gYmUgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNQVNLTU9WUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2QKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB3aXRoIGVsZW1lbnRzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX24KLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQuIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBmcm9tIGVhY2ggOC1iaXQKLy8vICAgIGVsZW1lbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBfX2QKLy8vICAgIGlzIGNvcGllZC4gSWYgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGEgZ2l2ZW4gZWxlbWVudCBpcyAxLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fZCBpcyBjb3BpZWQuCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBjb25kaXRpb25hbGx5Ci8vLyAgICBjb3BpZWQgaW50ZWdlciB2YWx1ZXMuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZQovLy8gICAgdG8gYmUgYWxpZ25lZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tYXNrbW92ZV9zaTY0KF9fbTY0IF9fZCwgX19tNjQgX19uLCBjaGFyICpfX3ApCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrbW92cSgoX192OHFpKV9fZCwgKF9fdjhxaSlfX24sIF9fcCk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgcm91bmRlZCBhdmVyYWdlcyBvZiB0aGUgcGFja2VkIHVuc2lnbmVkIDgtYml0IGludGVnZXIKLy8vICAgIHZhbHVlcyBhbmQgd3JpdGVzIHRoZSBhdmVyYWdlcyB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFWR0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGF2ZXJhZ2VzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2F2Z19wdTgoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhdmdiKChfX3Y4cWkpX19hLCAoX192OHFpKV9fYik7Cn0KCi8vLyBDb21wdXRlcyB0aGUgcm91bmRlZCBhdmVyYWdlcyBvZiB0aGUgcGFja2VkIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgYW5kIHdyaXRlcyB0aGUgYXZlcmFnZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBVkdXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBhdmVyYWdlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9hdmdfcHUxNihfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGF2Z3coKF9fdjRoaSlfX2EsIChfX3Y0aGkpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBvZiB0aGUgdHdvCi8vLyAgICA2NC1iaXQgdmVjdG9yIG9wZXJhbmRzIGFuZCBjb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgZm9yIGVhY2ggb2YgdGhlCi8vLyAgICBkaWZmZXJlbmNlLiBUaGVuIHN1bSBvZiB0aGUgOCBhYnNvbHV0ZSBkaWZmZXJlbmNlcyBpcyB3cml0dGVuIHRvIHRoZQovLy8gICAgYml0cyBbMTU6MF0gb2YgdGhlIGRlc3RpbmF0aW9uOyB0aGUgcmVtYWluaW5nIGJpdHMgWzYzOjE2XSBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU0FEQlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIHdob3NlIGxvd2VyIDE2IGJpdHMgY29udGFpbiB0aGUgc3VtcyBvZiB0aGUKLy8vICAgIHNldHMgb2YgYWJzb2x1dGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgYml0cyBhcmUKLy8vICAgIGNsZWFyZWQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX3NhZF9wdTgoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzYWRidygoX192OHFpKV9fYSwgKF9fdjhxaSlfX2IpOwp9CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIFJldHVybnMgdGhlIGNvbnRlbnRzIG9mIHRoZSBNWENTUiByZWdpc3RlciBhcyBhIDMyLWJpdCB1bnNpZ25lZAovLy8gICAgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyAgICBUaGVyZSBhcmUgc2V2ZXJhbCBncm91cHMgb2YgbWFjcm9zIGFzc29jaWF0ZWQgd2l0aCB0aGlzCi8vLyAgICBpbnRyaW5zaWMsIGluY2x1ZGluZzoKLy8vICAgIDx1bD4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIGNoZWNraW5nIGV4Y2VwdGlvbiBzdGF0ZXM6IF9NTV9FWENFUFRfSU5WQUxJRCwgX01NX0VYQ0VQVF9ESVZfWkVSTywKLy8vICAgICAgX01NX0VYQ0VQVF9ERU5PUk0sIF9NTV9FWENFUFRfT1ZFUkZMT1csIF9NTV9FWENFUFRfVU5ERVJGTE9XLAovLy8gICAgICBfTU1fRVhDRVBUX0lORVhBQ1QuIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fR0VUX0VYQ0VQVElPTl9TVEFURSgpLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIGNoZWNraW5nIGV4Y2VwdGlvbiBtYXNrczogX01NX01BU0tfVU5ERVJGTE9XLCBfTU1fTUFTS19PVkVSRkxPVywKLy8vICAgICAgX01NX01BU0tfSU5WQUxJRCwgX01NX01BU0tfREVOT1JNLCBfTU1fTUFTS19ESVZfWkVSTywgX01NX01BU0tfSU5FWEFDVC4KLy8vICAgICAgVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIF9NTV9HRVRfRVhDRVBUSU9OX01BU0soKS4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBjaGVja2luZyByb3VuZGluZyBtb2RlczogX01NX1JPVU5EX05FQVJFU1QsIF9NTV9ST1VORF9ET1dOLAovLy8gICAgICBfTU1fUk9VTkRfVVAsIF9NTV9ST1VORF9UT1dBUkRfWkVSTy4gVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyCi8vLyAgICAgIF9NTV9HRVRfUk9VTkRJTkdfTU9ERSgpLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIGNoZWNraW5nIGZsdXNoLXRvLXplcm8gbW9kZTogX01NX0ZMVVNIX1pFUk9fT04sIF9NTV9GTFVTSF9aRVJPX09GRi4KLy8vICAgICAgVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIF9NTV9HRVRfRkxVU0hfWkVST19NT0RFKCkuCi8vLyAgICA8L2xpPgovLy8gICAgPGxpPgovLy8gICAgICBGb3IgY2hlY2tpbmcgZGVub3JtYWxzLWFyZS16ZXJvIG1vZGU6IF9NTV9ERU5PUk1BTFNfWkVST19PTiwKLy8vICAgICAgX01NX0RFTk9STUFMU19aRVJPX09GRi4gVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyCi8vLyAgICAgIF9NTV9HRVRfREVOT1JNQUxTX1pFUk9fTU9ERSgpLgovLy8gICAgPC9saT4KLy8vICAgIDwvdWw+Ci8vLwovLy8gICAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBjaGVja3MgaWYgYW4gb3ZlcmZsb3cgZXhjZXB0aW9uIGhhcwovLy8gICAgb2NjdXJyZWQ6Ci8vLyAgICBcY29kZQovLy8gICAgICAoIF9tbV9nZXRjc3IoKSAmIF9NTV9FWENFUFRfT1ZFUkZMT1cgKQovLy8gICAgXGVuZGNvZGUKLy8vCi8vLyAgICBUaGUgZm9sbG93aW5nIGV4cHJlc3Npb24gZ2V0cyB0aGUgY3VycmVudCByb3VuZGluZyBtb2RlOgovLy8gICAgXGNvZGUKLy8vICAgICAgX01NX0dFVF9ST1VORElOR19NT0RFKCkKLy8vICAgIFxlbmRjb2RlCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNUTVhDU1IgLyBTVE1YQ1NSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb250ZW50cyBvZiB0aGUgTVhDU1IKLy8vICAgIHJlZ2lzdGVyLgp1bnNpZ25lZCBpbnQgX21tX2dldGNzcih2b2lkKTsKCi8vLyBTZXRzIHRoZSBNWENTUiByZWdpc3RlciB3aXRoIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyAgICBUaGVyZSBhcmUgc2V2ZXJhbCBncm91cHMgb2YgbWFjcm9zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGludHJpbnNpYywKLy8vICAgIGluY2x1ZGluZzoKLy8vICAgIDx1bD4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIHNldHRpbmcgZXhjZXB0aW9uIHN0YXRlczogX01NX0VYQ0VQVF9JTlZBTElELCBfTU1fRVhDRVBUX0RJVl9aRVJPLAovLy8gICAgICBfTU1fRVhDRVBUX0RFTk9STSwgX01NX0VYQ0VQVF9PVkVSRkxPVywgX01NX0VYQ0VQVF9VTkRFUkZMT1csCi8vLyAgICAgIF9NTV9FWENFUFRfSU5FWEFDVC4gVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyCi8vLyAgICAgIF9NTV9TRVRfRVhDRVBUSU9OX1NUQVRFKHgpIHdoZXJlIHggaXMgb25lIG9mIHRoZXNlIG1hY3Jvcy4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBzZXR0aW5nIGV4Y2VwdGlvbiBtYXNrczogX01NX01BU0tfVU5ERVJGTE9XLCBfTU1fTUFTS19PVkVSRkxPVywKLy8vICAgICAgX01NX01BU0tfSU5WQUxJRCwgX01NX01BU0tfREVOT1JNLCBfTU1fTUFTS19ESVZfWkVSTywgX01NX01BU0tfSU5FWEFDVC4KLy8vICAgICAgVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIF9NTV9TRVRfRVhDRVBUSU9OX01BU0soeCkgd2hlcmUgeCBpcyBvbmUKLy8vICAgICAgb2YgdGhlc2UgbWFjcm9zLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIHNldHRpbmcgcm91bmRpbmcgbW9kZXM6IF9NTV9ST1VORF9ORUFSRVNULCBfTU1fUk9VTkRfRE9XTiwKLy8vICAgICAgX01NX1JPVU5EX1VQLCBfTU1fUk9VTkRfVE9XQVJEX1pFUk8uIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fU0VUX1JPVU5ESU5HX01PREUoeCkgd2hlcmUgeCBpcyBvbmUgb2YgdGhlc2UgbWFjcm9zLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIHNldHRpbmcgZmx1c2gtdG8temVybyBtb2RlOiBfTU1fRkxVU0hfWkVST19PTiwgX01NX0ZMVVNIX1pFUk9fT0ZGLgovLy8gICAgICBUaGVyZSBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgX01NX1NFVF9GTFVTSF9aRVJPX01PREUoeCkgd2hlcmUgeCBpcwovLy8gICAgICBvbmUgb2YgdGhlc2UgbWFjcm9zLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIHNldHRpbmcgZGVub3JtYWxzLWFyZS16ZXJvIG1vZGU6IF9NTV9ERU5PUk1BTFNfWkVST19PTiwKLy8vICAgICAgX01NX0RFTk9STUFMU19aRVJPX09GRi4gVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyCi8vLyAgICAgIF9NTV9TRVRfREVOT1JNQUxTX1pFUk9fTU9ERSh4KSB3aGVyZSB4IGlzIG9uZSBvZiB0aGVzZSBtYWNyb3MuCi8vLyAgICA8L2xpPgovLy8gICAgPC91bD4KLy8vCi8vLyAgICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBleHByZXNzaW9uIGNhdXNlcyBzdWJzZXF1ZW50IGZsb2F0aW5nLXBvaW50Ci8vLyAgICBvcGVyYXRpb25zIHRvIHJvdW5kIHVwOgovLy8gICAgICBfbW1fc2V0Y3NyKF9tbV9nZXRjc3IoKSB8IF9NTV9ST1VORF9VUCkKLy8vCi8vLyAgICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2V0cyB0aGUgREFaIGFuZCBGVFogZmxhZ3M6Ci8vLyAgICBcY29kZQovLy8gICAgdm9pZCBzZXRGbGFncygpIHsKLy8vICAgICAgX01NX1NFVF9GTFVTSF9aRVJPX01PREUoX01NX0ZMVVNIX1pFUk9fT04pOwovLy8gICAgICBfTU1fU0VUX0RFTk9STUFMU19aRVJPX01PREUoX01NX0RFTk9STUFMU19aRVJPX09OKTsKLy8vICAgIH0KLy8vICAgIFxlbmRjb2RlCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkxETVhDU1IgLyBMRE1YQ1NSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faQovLy8gICAgQSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBNWENTUiByZWdpc3Rlci4Kdm9pZCBfbW1fc2V0Y3NyKHVuc2lnbmVkIGludCBfX2kpOwoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCi8vLyBTZWxlY3RzIDQgZmxvYXQgdmFsdWVzIGZyb20gdGhlIDEyOC1iaXQgb3BlcmFuZHMgb2YgWzQgeCBmbG9hdF0sIGFzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSB2YWx1ZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9zaHVmZmxlX3BzKF9fbTEyOCBhLCBfX20xMjggYiwgY29uc3QgaW50IG1hc2spOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTSFVGUFMgLyBTSFVGUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIG1hc2sKLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250YWluaW5nIGFuIDgtYml0IHZhbHVlIHNwZWNpZnlpbmcgd2hpY2ggZWxlbWVudHMgdG8KLy8vICAgIGNvcHkgZnJvbSBcYSBhIGFuZCBcYSBiLiBcbgovLy8gICAgQml0cyBbMzowXSBzcGVjaWZ5IHRoZSB2YWx1ZXMgY29waWVkIGZyb20gb3BlcmFuZCBcYSBhLiBcbgovLy8gICAgQml0cyBbNzo0XSBzcGVjaWZ5IHRoZSB2YWx1ZXMgY29waWVkIGZyb20gb3BlcmFuZCBcYSBiLiBcbgovLy8gICAgVGhlIGRlc3RpbmF0aW9ucyB3aXRoaW4gdGhlIDEyOC1iaXQgZGVzdGluYXRpb24gYXJlIGFzc2lnbmVkIHZhbHVlcyBhcwovLy8gICAgZm9sbG93czogXG4KLy8vICAgIEJpdHMgWzE6MF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFszMTowXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMzoyXSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzYzOjMyXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNTo0XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzk1OjY0XSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo2XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzEyNzo5Nl0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCB2YWx1ZSBhc3NpZ25tZW50czogXG4KLy8vICAgIDAwOiBCaXRzIFszMTowXSBjb3BpZWQgZnJvbSB0aGUgc3BlY2lmaWVkIG9wZXJhbmQuIFxuCi8vLyAgICAwMTogQml0cyBbNjM6MzJdIGNvcGllZCBmcm9tIHRoZSBzcGVjaWZpZWQgb3BlcmFuZC4gXG4KLy8vICAgIDEwOiBCaXRzIFs5NTo2NF0gY29waWVkIGZyb20gdGhlIHNwZWNpZmllZCBvcGVyYW5kLiBcbgovLy8gICAgMTE6IEJpdHMgWzEyNzo5Nl0gY29waWVkIGZyb20gdGhlIHNwZWNpZmllZCBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVfcHMoYSwgYiwgbWFzaykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NodWZwcygoX192NHNmKShfX20xMjgpKGEpLCAoX192NHNmKShfX20xMjgpKGIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKG1hc2spKSkKCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIChpbmRleCAyLDMpIHZhbHVlcyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZmxvYXRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUFMgLyBVTlBDS0hQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFs5NTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs5NTo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vICAgIEJpdHMgWzk1OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzozMl0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYiwgMiwgNiwgMywgNyk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgKGluZGV4IDAsMSkgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBmbG9hdF0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQUyAvIFVOUENLTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzMxOjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4gIFxuCi8vLyAgICBCaXRzIFs2MzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFszMTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzozMl0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iLCAwLCA0LCAxLCA1KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIGFyZSBzZXQgdG8gdGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHNlY29uZCBwYXJhbWV0ZXIuIFRoZSB1cHBlcgovLy8gICAgOTYgYml0cyBhcmUgc2V0IHRvIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EUFMgLyBCTEVORFBTIC8gTU9WU1MgPC9jPgovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBhcmUKLy8vICAgIHdyaXR0ZW4gdG8gdGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vdmVfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIF9fYVswXSA9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgYXJlIHNldCB0byB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUEQgLyBVTlBDS0hQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlaGxfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2IsIDYsIDcsIDIsIDMpOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgYXJlIHNldCB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLiBUaGUgdXBwZXIKLy8vICAgIDY0IGJpdHMgYXJlIHNldCB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUEQgLyBVTlBDS0xQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbGhfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2IsIDAsIDEsIDQsIDUpOwp9CgovLy8gQ29udmVydHMgYSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeAovLy8gICAgZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBTICsgQ09NUE9TSVRFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XS4gVGhlIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUgY29waWVkCi8vLyAgICBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoaXMgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcyBmcm9tIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGkxNl9wcyhfX202NCBfX2EpCnsKICBfX202NCBfX2IsIF9fYzsKICBfX20xMjggX19yOwoKICBfX2IgPSBfbW1fc2V0emVyb19zaTY0KCk7CiAgX19iID0gX21tX2NtcGd0X3BpMTYoX19iLCBfX2EpOwogIF9fYyA9IF9tbV91bnBhY2toaV9waTE2KF9fYSwgX19iKTsKICBfX3IgPSBfbW1fc2V0emVyb19wcygpOwogIF9fciA9IF9tbV9jdnRwaTMyX3BzKF9fciwgX19jKTsKICBfX3IgPSBfbW1fbW92ZWxoX3BzKF9fciwgX19yKTsKICBfX2MgPSBfbW1fdW5wYWNrbG9fcGkxNihfX2EsIF9fYik7CiAgX19yID0gX21tX2N2dHBpMzJfcHMoX19yLCBfX2MpOwoKICByZXR1cm4gX19yOwp9CgovLy8gQ29udmVydHMgYSA2NC1iaXQgdmVjdG9yIG9mIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBpbnRvIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBTICsgQ09NUE9TSVRFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gVGhlIGVsZW1lbnRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gYXJlIGNvcGllZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoaXMgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcyBmcm9tIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cHUxNl9wcyhfX202NCBfX2EpCnsKICBfX202NCBfX2IsIF9fYzsKICBfX20xMjggX19yOwoKICBfX2IgPSBfbW1fc2V0emVyb19zaTY0KCk7CiAgX19jID0gX21tX3VucGFja2hpX3BpMTYoX19hLCBfX2IpOwogIF9fciA9IF9tbV9zZXR6ZXJvX3BzKCk7CiAgX19yID0gX21tX2N2dHBpMzJfcHMoX19yLCBfX2MpOwogIF9fciA9IF9tbV9tb3ZlbGhfcHMoX19yLCBfX3IpOwogIF9fYyA9IF9tbV91bnBhY2tsb19waTE2KF9fYSwgX19iKTsKICBfX3IgPSBfbW1fY3Z0cGkzMl9wcyhfX3IsIF9fYyk7CgogIHJldHVybiBfX3I7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgbG93ZXIgZm91ciA4LWJpdCB2YWx1ZXMgZnJvbSBhIDY0LWJpdCB2ZWN0b3Igb2YgWzggeCBpOF0KLy8vICAgIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQSTJQUyArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbOCB4IGk4XS4gVGhlIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUgY29waWVkCi8vLyAgICBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGxvd2VyIDQgZWxlbWVudHMgaW4gdGhpcyBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIGNvbnZlcnRlZAovLy8gICAgdmFsdWVzIGZyb20gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRwaThfcHMoX19tNjQgX19hKQp7CiAgX19tNjQgX19iOwoKICBfX2IgPSBfbW1fc2V0emVyb19zaTY0KCk7CiAgX19iID0gX21tX2NtcGd0X3BpOChfX2IsIF9fYSk7CiAgX19iID0gX21tX3VucGFja2xvX3BpOChfX2EsIF9fYik7CgogIHJldHVybiBfbW1fY3Z0cGkxNl9wcyhfX2IpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvd2VyIGZvdXIgdW5zaWduZWQgOC1iaXQgaW50ZWdlciB2YWx1ZXMgZnJvbSBhIDY0LWJpdAovLy8gICAgdmVjdG9yIG9mIFs4IHggdThdIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQSTJQUyArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4gVGhlIGVsZW1lbnRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gYXJlIGNvcGllZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGxvd2VyIDQgZWxlbWVudHMgaW4gdGhpcwovLy8gICAgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcyBmcm9tIHRoZSBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHB1OF9wcyhfX202NCBfX2EpCnsKICBfX202NCBfX2I7CgogIF9fYiA9IF9tbV9zZXR6ZXJvX3NpNjQoKTsKICBfX2IgPSBfbW1fdW5wYWNrbG9fcGk4KF9fYSwgX19iKTsKCiAgcmV0dXJuIF9tbV9jdnRwaTE2X3BzKF9fYik7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgdHdvIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMgZnJvbSBlYWNoIDY0LWJpdCB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgb2YgWzIgeCBpMzJdIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQSTJQUyArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSBsb3dlciBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlCi8vLyAgICBjb3BpZWQgZnJvbSB0aGUgZWxlbWVudHMgaW4gdGhpcyBvcGVyYW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUKLy8vICAgIGNvcGllZCBmcm9tIHRoZSBlbGVtZW50cyBpbiB0aGlzIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvcGllZCBhbmQgY29udmVydGVkIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kLiBUaGUgdXBwZXIgNjQgYml0cwovLy8gICAgY29udGFpbiB0aGUgY29waWVkIGFuZCBjb252ZXJ0ZWQgdmFsdWVzIGZyb20gdGhlIHNlY29uZCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGkzMngyX3BzKF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgX19tMTI4IF9fYzsKCiAgX19jID0gX21tX3NldHplcm9fcHMoKTsKICBfX2MgPSBfbW1fY3Z0cGkzMl9wcyhfX2MsIF9fYik7CiAgX19jID0gX21tX21vdmVsaF9wcyhfX2MsIF9fYyk7CgogIHJldHVybiBfbW1fY3Z0cGkzMl9wcyhfX2MsIF9fYSk7Cn0KCi8vLyBDb252ZXJ0cyBlYWNoIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudCBvZiBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBpbnRvIGEgMTYtYml0IHNpZ25lZCBpbnRlZ2VyLCBhbmQKLy8vICAgIHBhY2tzIHRoZSByZXN1bHRzIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vICAgIElmIHRoZSBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzIE5hTiBvciBpbmZpbml0eSwgb3IgaWYgdGhlCi8vLyAgICBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzIGdyZWF0ZXIgdGhhbiAweDdGRkZGRkZGIG9yIGxlc3MgdGhhbiAtMHg4MDAwLAovLy8gICAgaXQgaXMgY29udmVydGVkIHRvIDB4ODAwMC4gT3RoZXJ3aXNlIGlmIHRoZSBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzCi8vLyAgICBncmVhdGVyIHRoYW4gMHg3RkZGLCBpdCBpcyBjb252ZXJ0ZWQgdG8gMHg3RkZGLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBTMlBJICsgQ09NUE9TSVRFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cHNfcGkxNihfX20xMjggX19hKQp7CiAgX19tNjQgX19iLCBfX2M7CgogIF9fYiA9IF9tbV9jdnRwc19waTMyKF9fYSk7CiAgX19hID0gX21tX21vdmVobF9wcyhfX2EsIF9fYSk7CiAgX19jID0gX21tX2N2dHBzX3BpMzIoX19hKTsKCiAgcmV0dXJuIF9tbV9wYWNrc19waTMyKF9fYiwgX19jKTsKfQoKLy8vIENvbnZlcnRzIGVhY2ggc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50IG9mIGEgMTI4LWJpdAovLy8gICAgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGludG8gYW4gOC1iaXQgc2lnbmVkIGludGVnZXIsIGFuZAovLy8gICAgcGFja3MgdGhlIHJlc3VsdHMgaW50byB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzggeCBpOF0uIFRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZSB2ZWN0b3IgYXJlIHNldCB0byAwLgovLy8KLy8vICAgIElmIHRoZSBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzIE5hTiBvciBpbmZpbml0eSwgb3IgaWYgdGhlCi8vLyAgICBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzIGdyZWF0ZXIgdGhhbiAweDdGRkZGRkZGIG9yIGxlc3MgdGhhbiAtMHg4MCwgaXQKLy8vICAgIGlzIGNvbnZlcnRlZCB0byAweDgwLiBPdGhlcndpc2UgaWYgdGhlIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgaXMgZ3JlYXRlcgovLy8gICAgdGhhbiAweDdGLCBpdCBpcyBjb252ZXJ0ZWQgdG8gMHg3Ri4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQUzJQSSArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uIFRoZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWVzIGFuZCB0aGUgdXBwcGVyIDMyIGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRwc19waTgoX19tMTI4IF9fYSkKewogIF9fbTY0IF9fYiwgX19jOwoKICBfX2IgPSBfbW1fY3Z0cHNfcGkxNihfX2EpOwogIF9fYyA9IF9tbV9zZXR6ZXJvX3NpNjQoKTsKCiAgcmV0dXJuIF9tbV9wYWNrc19waTE2KF9fYiwgX19jKTsKfQoKLy8vIEV4dHJhY3RzIHRoZSBzaWduIGJpdHMgZnJvbSBlYWNoIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQKLy8vICAgIGVsZW1lbnQgb2YgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBhbmQgcmV0dXJucyB0aGUKLy8vICAgIHNpZ24gYml0cyBpbiBiaXRzIFswOjNdIG9mIHRoZSByZXN1bHQuIEJpdHMgWzMxOjRdIG9mIHRoZSByZXN1bHQgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTVNLUFMgLyBNT1ZNU0tQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlLiBCaXRzIFszOjBdIGNvbnRhaW4gdGhlIHNpZ24gYml0cyBmcm9tIGVhY2gKLy8vICAgIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudCBvZiB0aGUgcGFyYW1ldGVyLiBCaXRzIFszMTo0XSBhcmUKLy8vICAgIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbWFza19wcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21vdm1za3BzKChfX3Y0c2YpX19hKTsKfQoKCiNkZWZpbmUgX01NX0FMSUdOMTYgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxNikpKQoKI2RlZmluZSBfTU1fU0hVRkZMRSh6LCB5LCB4LCB3KSAoKCh6KSA8PCA2KSB8ICgoeSkgPDwgNCkgfCAoKHgpIDw8IDIpIHwgKHcpKQoKI2RlZmluZSBfTU1fRVhDRVBUX0lOVkFMSUQgICAgKDB4MDAwMVUpCiNkZWZpbmUgX01NX0VYQ0VQVF9ERU5PUk0gICAgICgweDAwMDJVKQojZGVmaW5lIF9NTV9FWENFUFRfRElWX1pFUk8gICAoMHgwMDA0VSkKI2RlZmluZSBfTU1fRVhDRVBUX09WRVJGTE9XICAgKDB4MDAwOFUpCiNkZWZpbmUgX01NX0VYQ0VQVF9VTkRFUkZMT1cgICgweDAwMTBVKQojZGVmaW5lIF9NTV9FWENFUFRfSU5FWEFDVCAgICAoMHgwMDIwVSkKI2RlZmluZSBfTU1fRVhDRVBUX01BU0sgICAgICAgKDB4MDAzZlUpCgojZGVmaW5lIF9NTV9NQVNLX0lOVkFMSUQgICAgICAoMHgwMDgwVSkKI2RlZmluZSBfTU1fTUFTS19ERU5PUk0gICAgICAgKDB4MDEwMFUpCiNkZWZpbmUgX01NX01BU0tfRElWX1pFUk8gICAgICgweDAyMDBVKQojZGVmaW5lIF9NTV9NQVNLX09WRVJGTE9XICAgICAoMHgwNDAwVSkKI2RlZmluZSBfTU1fTUFTS19VTkRFUkZMT1cgICAgKDB4MDgwMFUpCiNkZWZpbmUgX01NX01BU0tfSU5FWEFDVCAgICAgICgweDEwMDBVKQojZGVmaW5lIF9NTV9NQVNLX01BU0sgICAgICAgICAoMHgxZjgwVSkKCiNkZWZpbmUgX01NX1JPVU5EX05FQVJFU1QgICAgICgweDAwMDBVKQojZGVmaW5lIF9NTV9ST1VORF9ET1dOICAgICAgICAoMHgyMDAwVSkKI2RlZmluZSBfTU1fUk9VTkRfVVAgICAgICAgICAgKDB4NDAwMFUpCiNkZWZpbmUgX01NX1JPVU5EX1RPV0FSRF9aRVJPICgweDYwMDBVKQojZGVmaW5lIF9NTV9ST1VORF9NQVNLICAgICAgICAoMHg2MDAwVSkKCiNkZWZpbmUgX01NX0ZMVVNIX1pFUk9fTUFTSyAgICgweDgwMDBVKQojZGVmaW5lIF9NTV9GTFVTSF9aRVJPX09OICAgICAoMHg4MDAwVSkKI2RlZmluZSBfTU1fRkxVU0hfWkVST19PRkYgICAgKDB4MDAwMFUpCgojZGVmaW5lIF9NTV9HRVRfRVhDRVBUSU9OX01BU0soKSAoX21tX2dldGNzcigpICYgX01NX01BU0tfTUFTSykKI2RlZmluZSBfTU1fR0VUX0VYQ0VQVElPTl9TVEFURSgpIChfbW1fZ2V0Y3NyKCkgJiBfTU1fRVhDRVBUX01BU0spCiNkZWZpbmUgX01NX0dFVF9GTFVTSF9aRVJPX01PREUoKSAoX21tX2dldGNzcigpICYgX01NX0ZMVVNIX1pFUk9fTUFTSykKI2RlZmluZSBfTU1fR0VUX1JPVU5ESU5HX01PREUoKSAoX21tX2dldGNzcigpICYgX01NX1JPVU5EX01BU0spCgojZGVmaW5lIF9NTV9TRVRfRVhDRVBUSU9OX01BU0soeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fTUFTS19NQVNLKSB8ICh4KSkpCiNkZWZpbmUgX01NX1NFVF9FWENFUFRJT05fU1RBVEUoeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fRVhDRVBUX01BU0spIHwgKHgpKSkKI2RlZmluZSBfTU1fU0VUX0ZMVVNIX1pFUk9fTU9ERSh4KSAoX21tX3NldGNzcigoX21tX2dldGNzcigpICYgfl9NTV9GTFVTSF9aRVJPX01BU0spIHwgKHgpKSkKI2RlZmluZSBfTU1fU0VUX1JPVU5ESU5HX01PREUoeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fUk9VTkRfTUFTSykgfCAoeCkpKQoKI2RlZmluZSBfTU1fVFJBTlNQT1NFNF9QUyhyb3cwLCByb3cxLCByb3cyLCByb3czKSBcCmRvIHsgXAogIF9fbTEyOCB0bXAzLCB0bXAyLCB0bXAxLCB0bXAwOyBcCiAgdG1wMCA9IF9tbV91bnBhY2tsb19wcygocm93MCksIChyb3cxKSk7IFwKICB0bXAyID0gX21tX3VucGFja2xvX3BzKChyb3cyKSwgKHJvdzMpKTsgXAogIHRtcDEgPSBfbW1fdW5wYWNraGlfcHMoKHJvdzApLCAocm93MSkpOyBcCiAgdG1wMyA9IF9tbV91bnBhY2toaV9wcygocm93MiksIChyb3czKSk7IFwKICAocm93MCkgPSBfbW1fbW92ZWxoX3BzKHRtcDAsIHRtcDIpOyBcCiAgKHJvdzEpID0gX21tX21vdmVobF9wcyh0bXAyLCB0bXAwKTsgXAogIChyb3cyKSA9IF9tbV9tb3ZlbGhfcHModG1wMSwgdG1wMyk7IFwKICAocm93MykgPSBfbW1fbW92ZWhsX3BzKHRtcDMsIHRtcDEpOyBcCn0gd2hpbGUgKDApCgovKiBBbGlhc2VzIGZvciBjb21wYXRpYmlsaXR5LiAqLwojZGVmaW5lIF9tX3BleHRydyBfbW1fZXh0cmFjdF9waTE2CiNkZWZpbmUgX21fcGluc3J3IF9tbV9pbnNlcnRfcGkxNgojZGVmaW5lIF9tX3BtYXhzdyBfbW1fbWF4X3BpMTYKI2RlZmluZSBfbV9wbWF4dWIgX21tX21heF9wdTgKI2RlZmluZSBfbV9wbWluc3cgX21tX21pbl9waTE2CiNkZWZpbmUgX21fcG1pbnViIF9tbV9taW5fcHU4CiNkZWZpbmUgX21fcG1vdm1za2IgX21tX21vdmVtYXNrX3BpOAojZGVmaW5lIF9tX3BtdWxodXcgX21tX211bGhpX3B1MTYKI2RlZmluZSBfbV9wc2h1ZncgX21tX3NodWZmbGVfcGkxNgojZGVmaW5lIF9tX21hc2ttb3ZxIF9tbV9tYXNrbW92ZV9zaTY0CiNkZWZpbmUgX21fcGF2Z2IgX21tX2F2Z19wdTgKI2RlZmluZSBfbV9wYXZndyBfbW1fYXZnX3B1MTYKI2RlZmluZSBfbV9wc2FkYncgX21tX3NhZF9wdTgKI2RlZmluZSBfbV8gX21tXwojZGVmaW5lIF9tXyBfbW1fCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCgovKiBVZ2x5IGhhY2sgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IChjb21wYXRpYmxlIHdpdGggZ2NjKSAqLwojaWYgZGVmaW5lZChfX1NTRTJfXykgJiYgIV9fYnVpbGRpbmdfbW9kdWxlKF9CdWlsdGluX2ludHJpbnNpY3MpCiNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KI2VuZGlmCgojZW5kaWYgLyogX19YTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tIHhzYXZlaW50cmluLmggLSBYU0FWRSBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx4c2F2ZWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19YU0FWRUlOVFJJTl9ICiNkZWZpbmUgX19YU0FWRUlOVFJJTl9ICgojaWZkZWYgX01TQ19WRVIKI2RlZmluZSBfWENSX1hGRUFUVVJFX0VOQUJMRURfTUFTSyAwCiNlbmRpZgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJ4c2F2ZSIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94c2F2ZSh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94c2F2ZShfX3AsIF9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94cnN0b3Iodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHJzdG9yKF9fcCwgX19tKTsKfQoKI2lmbmRlZiBfTVNDX1ZFUgojZGVmaW5lIF94Z2V0YnYoQSkgX19idWlsdGluX2lhMzJfeGdldGJ2KChsb25nIGxvbmcpKEEpKQojZGVmaW5lIF94c2V0YnYoQSwgQikgX19idWlsdGluX2lhMzJfeHNldGJ2KCh1bnNpZ25lZCBpbnQpKEEpLCAodW5zaWduZWQgbG9uZyBsb25nKShCKSkKI2Vsc2UKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIF94Z2V0YnYodW5zaWduZWQgaW50KTsKdm9pZCBfX2NkZWNsIF94c2V0YnYodW5zaWduZWQgaW50LCB1bnNpZ25lZCBfX2ludDY0KTsKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCiNlbmRpZiAvKiBfTVNDX1ZFUiAqLwoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlNjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmU2NChfX3AsIF9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94cnN0b3I2NCh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94cnN0b3I2NChfX3AsIF9fbSk7Cn0KCiNlbmRpZgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAvLz09PS0gRnV6emVkRGF0YVByb3ZpZGVyLmggLSBVdGlsaXR5IGhlYWRlciBmb3IgZnV6eiB0YXJnZXRzIC0tLSotIEMrKyAtKiA9PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLyBBIHNpbmdsZSBoZWFkZXIgbGlicmFyeSBwcm92aWRpbmcgYW4gdXRpbGl0eSBjbGFzcyB0byBicmVhayB1cCBhbiBhcnJheSBvZgovLyBieXRlcy4gV2hlbmV2ZXIgcnVuIG9uIHRoZSBzYW1lIGlucHV0LCBwcm92aWRlcyB0aGUgc2FtZSBvdXRwdXQsIGFzIGxvbmcgYXMKLy8gaXRzIG1ldGhvZHMgYXJlIGNhbGxlZCBpbiB0aGUgc2FtZSBvcmRlciwgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHMuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCgojaWZuZGVmIExMVk1fRlVaWkVSX0ZVWlpFRF9EQVRBX1BST1ZJREVSX0hfCiNkZWZpbmUgTExWTV9GVVpaRVJfRlVaWkVEX0RBVEFfUFJPVklERVJfSF8KCiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxhcnJheT4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxjc3RkZGVmPgojaW5jbHVkZSA8Y3N0ZGludD4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgojaW5jbHVkZSA8bGltaXRzPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8dmVjdG9yPgoKLy8gSW4gYWRkaXRpb24gdG8gdGhlIGNvbW1lbnRzIGJlbG93LCB0aGUgQVBJIGlzIGFsc28gYnJpZWZseSBkb2N1bWVudGVkIGF0Ci8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZnV6emluZy9ibG9iL21hc3Rlci9kb2NzL3NwbGl0LWlucHV0cy5tZCNmdXp6ZWQtZGF0YS1wcm92aWRlcgpjbGFzcyBGdXp6ZWREYXRhUHJvdmlkZXIgewogcHVibGljOgogIC8vIHxkYXRhfCBpcyBhbiBhcnJheSBvZiBsZW5ndGggfHNpemV8IHRoYXQgdGhlIEZ1enplZERhdGFQcm92aWRlciB3cmFwcyB0bwogIC8vIHByb3ZpZGUgbW9yZSBncmFudWxhciBhY2Nlc3MuIHxkYXRhfCBtdXN0IG91dGxpdmUgdGhlIEZ1enplZERhdGFQcm92aWRlci4KICBGdXp6ZWREYXRhUHJvdmlkZXIoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgIDogZGF0YV9wdHJfKGRhdGEpLCByZW1haW5pbmdfYnl0ZXNfKHNpemUpIHt9CiAgfkZ1enplZERhdGFQcm92aWRlcigpID0gZGVmYXVsdDsKCiAgLy8gU2VlIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWxvdyAoYWZ0ZXIgdGhlIGNsYXNzIGRlZmluaXRpb24pIGZvciBtb3JlIHZlcmJvc2UKICAvLyBjb21tZW50cyBmb3IgZWFjaCBvZiB0aGUgbWV0aG9kcy4KCiAgLy8gTWV0aG9kcyByZXR1cm5pbmcgc3RkOjp2ZWN0b3Igb2YgYnl0ZXMuIFRoZXNlIGFyZSB0aGUgbW9zdCBwb3B1bGFyIGNob2ljZQogIC8vIHdoZW4gc3BsaXR0aW5nIGZ1enppbmcgaW5wdXQgaW50byBwaWVjZXMsIGFzIGV2ZXJ5IHBpZWNlIGlzIHB1dCBpbnRvIGEKICAvLyBzZXBhcmF0ZSBidWZmZXIgKGkuZS4gQVNhbiB3b3VsZCBjYXRjaCBhbnkgdW5kZXItL292ZXJmbG93KSBhbmQgdGhlIG1lbW9yeQogIC8vIHdpbGwgYmUgcmVsZWFzZWQgYXV0b21hdGljYWxseS4KICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RkOjp2ZWN0b3I8VD4gQ29uc3VtZUJ5dGVzKHNpemVfdCBudW1fYnl0ZXMpOwogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogIHN0ZDo6dmVjdG9yPFQ+IENvbnN1bWVCeXRlc1dpdGhUZXJtaW5hdG9yKHNpemVfdCBudW1fYnl0ZXMsIFQgdGVybWluYXRvciA9IDApOwogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGQ6OnZlY3RvcjxUPiBDb25zdW1lUmVtYWluaW5nQnl0ZXMoKTsKCiAgLy8gTWV0aG9kcyByZXR1cm5pbmcgc3RyaW5ncy4gVXNlIG9ubHkgd2hlbiB5b3UgbmVlZCBhIHN0ZDo6c3RyaW5nIG9yIGEgbnVsbAogIC8vIHRlcm1pbmF0ZWQgQy1zdHJpbmcuIE90aGVyd2lzZSwgcHJlZmVyIHRoZSBtZXRob2RzIHJldHVybmluZyBzdGQ6OnZlY3Rvci4KICBzdGQ6OnN0cmluZyBDb25zdW1lQnl0ZXNBc1N0cmluZyhzaXplX3QgbnVtX2J5dGVzKTsKICBzdGQ6OnN0cmluZyBDb25zdW1lUmFuZG9tTGVuZ3RoU3RyaW5nKHNpemVfdCBtYXhfbGVuZ3RoKTsKICBzdGQ6OnN0cmluZyBDb25zdW1lUmFuZG9tTGVuZ3RoU3RyaW5nKCk7CiAgc3RkOjpzdHJpbmcgQ29uc3VtZVJlbWFpbmluZ0J5dGVzQXNTdHJpbmcoKTsKCiAgLy8gTWV0aG9kcyByZXR1cm5pbmcgaW50ZWdlciB2YWx1ZXMuCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZUludGVncmFsKCk7CiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZUludGVncmFsSW5SYW5nZShUIG1pbiwgVCBtYXgpOwoKICAvLyBNZXRob2RzIHJldHVybmluZyBmbG9hdGluZyBwb2ludCB2YWx1ZXMuCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZUZsb2F0aW5nUG9pbnQoKTsKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBDb25zdW1lRmxvYXRpbmdQb2ludEluUmFuZ2UoVCBtaW4sIFQgbWF4KTsKCiAgLy8gMCA8PSByZXR1cm4gdmFsdWUgPD0gMS4KICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBDb25zdW1lUHJvYmFiaWxpdHkoKTsKCiAgYm9vbCBDb25zdW1lQm9vbCgpOwoKICAvLyBSZXR1cm5zIGEgdmFsdWUgY2hvc2VuIGZyb20gdGhlIGdpdmVuIGVudW0uCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZUVudW0oKTsKCiAgLy8gUmV0dXJucyBhIHZhbHVlIGZyb20gdGhlIGdpdmVuIGFycmF5LgogIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qgc2l6ZT4gVCBQaWNrVmFsdWVJbkFycmF5KGNvbnN0IFQgKCZhcnJheSlbc2l6ZV0pOwogIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qgc2l6ZT4KICBUIFBpY2tWYWx1ZUluQXJyYXkoY29uc3Qgc3RkOjphcnJheTxULCBzaXplPiAmYXJyYXkpOwogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIFBpY2tWYWx1ZUluQXJyYXkoc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IFQ+IGxpc3QpOwoKICAvLyBXcml0ZXMgZGF0YSB0byB0aGUgZ2l2ZW4gZGVzdGluYXRpb24gYW5kIHJldHVybnMgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCiAgc2l6ZV90IENvbnN1bWVEYXRhKHZvaWQgKmRlc3RpbmF0aW9uLCBzaXplX3QgbnVtX2J5dGVzKTsKCiAgLy8gUmVwb3J0cyB0aGUgcmVtYWluaW5nIGJ5dGVzIGF2YWlsYWJsZSBmb3IgZnV6emVkIGlucHV0LgogIHNpemVfdCByZW1haW5pbmdfYnl0ZXMoKSB7IHJldHVybiByZW1haW5pbmdfYnl0ZXNfOyB9CgogcHJpdmF0ZToKICBGdXp6ZWREYXRhUHJvdmlkZXIoY29uc3QgRnV6emVkRGF0YVByb3ZpZGVyICYpID0gZGVsZXRlOwogIEZ1enplZERhdGFQcm92aWRlciAmb3BlcmF0b3I9KGNvbnN0IEZ1enplZERhdGFQcm92aWRlciAmKSA9IGRlbGV0ZTsKCiAgdm9pZCBDb3B5QW5kQWR2YW5jZSh2b2lkICpkZXN0aW5hdGlvbiwgc2l6ZV90IG51bV9ieXRlcyk7CgogIHZvaWQgQWR2YW5jZShzaXplX3QgbnVtX2J5dGVzKTsKCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgc3RkOjp2ZWN0b3I8VD4gQ29uc3VtZUJ5dGVzKHNpemVfdCBzaXplLCBzaXplX3QgbnVtX2J5dGVzKTsKCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFRTLCB0eXBlbmFtZSBUVT4gVFMgQ29udmVydFVuc2lnbmVkVG9TaWduZWQoVFUgdmFsdWUpOwoKICBjb25zdCB1aW50OF90ICpkYXRhX3B0cl87CiAgc2l6ZV90IHJlbWFpbmluZ19ieXRlc187Cn07CgovLyBSZXR1cm5zIGEgc3RkOjp2ZWN0b3IgY29udGFpbmluZyB8bnVtX2J5dGVzfCBvZiBpbnB1dCBkYXRhLiBJZiBmZXdlciB0aGFuCi8vIHxudW1fYnl0ZXN8IG9mIGRhdGEgcmVtYWluLCByZXR1cm5zIGEgc2hvcnRlciBzdGQ6OnZlY3RvciBjb250YWluaW5nIGFsbAovLyBvZiB0aGUgZGF0YSB0aGF0J3MgbGVmdC4gQ2FuIGJlIHVzZWQgd2l0aCBhbnkgYnl0ZSBzaXplZCB0eXBlLCBzdWNoIGFzCi8vIGNoYXIsIHVuc2lnbmVkIGNoYXIsIHVpbnQ4X3QsIGV0Yy4KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6dmVjdG9yPFQ+IEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUJ5dGVzKHNpemVfdCBudW1fYnl0ZXMpIHsKICBudW1fYnl0ZXMgPSBzdGQ6Om1pbihudW1fYnl0ZXMsIHJlbWFpbmluZ19ieXRlc18pOwogIHJldHVybiBDb25zdW1lQnl0ZXM8VD4obnVtX2J5dGVzLCBudW1fYnl0ZXMpOwp9CgovLyBTaW1pbGFyIHRvIHxDb25zdW1lQnl0ZXN8LCBidXQgYWxzbyBhcHBlbmRzIHRoZSB0ZXJtaW5hdG9yIHZhbHVlIGF0IHRoZSBlbmQKLy8gb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IuIFVzZWZ1bCwgd2hlbiBhIG11dGFibGUgbnVsbC10ZXJtaW5hdGVkIEMtc3RyaW5nIGlzCi8vIG5lZWRlZCwgZm9yIGV4YW1wbGUuIEJ1dCB0aGF0IGlzIGEgcmFyZSBjYXNlLiBCZXR0ZXIgYXZvaWQgaXQsIGlmIHBvc3NpYmxlLAovLyBhbmQgcHJlZmVyIHVzaW5nIHxDb25zdW1lQnl0ZXN8IG9yIHxDb25zdW1lQnl0ZXNBc1N0cmluZ3wgbWV0aG9kcy4KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6dmVjdG9yPFQ+IEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUJ5dGVzV2l0aFRlcm1pbmF0b3Ioc2l6ZV90IG51bV9ieXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUIHRlcm1pbmF0b3IpIHsKICBudW1fYnl0ZXMgPSBzdGQ6Om1pbihudW1fYnl0ZXMsIHJlbWFpbmluZ19ieXRlc18pOwogIHN0ZDo6dmVjdG9yPFQ+IHJlc3VsdCA9IENvbnN1bWVCeXRlczxUPihudW1fYnl0ZXMgKyAxLCBudW1fYnl0ZXMpOwogIHJlc3VsdC5iYWNrKCkgPSB0ZXJtaW5hdG9yOwogIHJldHVybiByZXN1bHQ7Cn0KCi8vIFJldHVybnMgYSBzdGQ6OnZlY3RvciBjb250YWluaW5nIGFsbCByZW1haW5pbmcgYnl0ZXMgb2YgdGhlIGlucHV0IGRhdGEuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdGQ6OnZlY3RvcjxUPiBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVSZW1haW5pbmdCeXRlcygpIHsKICByZXR1cm4gQ29uc3VtZUJ5dGVzPFQ+KHJlbWFpbmluZ19ieXRlc18pOwp9CgovLyBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgY29udGFpbmluZyB8bnVtX2J5dGVzfCBvZiBpbnB1dCBkYXRhLiBVc2luZyB0aGlzIGFuZAovLyB8LmNfc3RyKCl8IG9uIHRoZSByZXN1bHRpbmcgc3RyaW5nIGlzIHRoZSBiZXN0IHdheSB0byBnZXQgYW4gaW1tdXRhYmxlCi8vIG51bGwtdGVybWluYXRlZCBDIHN0cmluZy4gSWYgZmV3ZXIgdGhhbiB8bnVtX2J5dGVzfCBvZiBkYXRhIHJlbWFpbiwgcmV0dXJucwovLyBhIHNob3J0ZXIgc3RkOjpzdHJpbmcgY29udGFpbmluZyBhbGwgb2YgdGhlIGRhdGEgdGhhdCdzIGxlZnQuCmlubGluZSBzdGQ6OnN0cmluZyBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVCeXRlc0FzU3RyaW5nKHNpemVfdCBudW1fYnl0ZXMpIHsKICBzdGF0aWNfYXNzZXJ0KHNpemVvZihzdGQ6OnN0cmluZzo6dmFsdWVfdHlwZSkgPT0gc2l6ZW9mKHVpbnQ4X3QpLAogICAgICAgICAgICAgICAgIkNvbnN1bWVCeXRlc0FzU3RyaW5nIGNhbm5vdCBjb252ZXJ0IHRoZSBkYXRhIHRvIGEgc3RyaW5nLiIpOwoKICBudW1fYnl0ZXMgPSBzdGQ6Om1pbihudW1fYnl0ZXMsIHJlbWFpbmluZ19ieXRlc18pOwogIHN0ZDo6c3RyaW5nIHJlc3VsdCgKICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBzdGQ6OnN0cmluZzo6dmFsdWVfdHlwZSAqPihkYXRhX3B0cl8pLCBudW1fYnl0ZXMpOwogIEFkdmFuY2UobnVtX2J5dGVzKTsKICByZXR1cm4gcmVzdWx0Owp9CgovLyBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgb2YgbGVuZ3RoIGZyb20gMCB0byB8bWF4X2xlbmd0aHwuIFdoZW4gaXQgcnVucyBvdXQgb2YKLy8gaW5wdXQgZGF0YSwgcmV0dXJucyB3aGF0IHJlbWFpbnMgb2YgdGhlIGlucHV0LiBEZXNpZ25lZCB0byBiZSBtb3JlIHN0YWJsZQovLyB3aXRoIHJlc3BlY3QgdG8gYSBmdXp6ZXIgaW5zZXJ0aW5nIGNoYXJhY3RlcnMgdGhhbiBqdXN0IHBpY2tpbmcgYSByYW5kb20KLy8gbGVuZ3RoIGFuZCB0aGVuIGNvbnN1bWluZyB0aGF0IG1hbnkgYnl0ZXMgd2l0aCB8Q29uc3VtZUJ5dGVzfC4KaW5saW5lIHN0ZDo6c3RyaW5nCkZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZVJhbmRvbUxlbmd0aFN0cmluZyhzaXplX3QgbWF4X2xlbmd0aCkgewogIC8vIFJlYWRzIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHxkYXRhX3B0cl98LiBNYXBzICJcXCIgdG8gIlwiLCBhbmQgbWFwcyAiXCIKICAvLyBmb2xsb3dlZCBieSBhbnl0aGluZyBlbHNlIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4gQXMgYSByZXN1bHQgb2YgdGhpcwogIC8vIGxvZ2ljLCBhIGZ1enplciBjYW4gaW5zZXJ0IGNoYXJhY3RlcnMgaW50byB0aGUgc3RyaW5nLCBhbmQgdGhlIHN0cmluZwogIC8vIHdpbGwgYmUgbGVuZ3RoZW5lZCB0byBpbmNsdWRlIHRob3NlIG5ldyBjaGFyYWN0ZXJzLCByZXN1bHRpbmcgaW4gYSBtb3JlCiAgLy8gc3RhYmxlIGZ1enplciB0aGFuIHBpY2tpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZyBpbmRlcGVuZGVudGx5IGZyb20KICAvLyBwaWNraW5nIGl0cyBjb250ZW50cy4KICBzdGQ6OnN0cmluZyByZXN1bHQ7CgogIC8vIFJlc2VydmUgdGhlIGFudGljaXBhdGVkIGNhcGF0aWNpdHkgdG8gcHJldmVudCBzZXZlcmFsIHJlYWxsb2NhdGlvbnMuCiAgcmVzdWx0LnJlc2VydmUoc3RkOjptaW4obWF4X2xlbmd0aCwgcmVtYWluaW5nX2J5dGVzXykpOwogIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWF4X2xlbmd0aCAmJiByZW1haW5pbmdfYnl0ZXNfICE9IDA7ICsraSkgewogICAgY2hhciBuZXh0ID0gQ29udmVydFVuc2lnbmVkVG9TaWduZWQ8Y2hhcj4oZGF0YV9wdHJfWzBdKTsKICAgIEFkdmFuY2UoMSk7CiAgICBpZiAobmV4dCA9PSAnXFwnICYmIHJlbWFpbmluZ19ieXRlc18gIT0gMCkgewogICAgICBuZXh0ID0gQ29udmVydFVuc2lnbmVkVG9TaWduZWQ8Y2hhcj4oZGF0YV9wdHJfWzBdKTsKICAgICAgQWR2YW5jZSgxKTsKICAgICAgaWYgKG5leHQgIT0gJ1xcJykKICAgICAgICBicmVhazsKICAgIH0KICAgIHJlc3VsdCArPSBuZXh0OwogIH0KCiAgcmVzdWx0LnNocmlua190b19maXQoKTsKICByZXR1cm4gcmVzdWx0Owp9CgovLyBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgb2YgbGVuZ3RoIGZyb20gMCB0byB8cmVtYWluaW5nX2J5dGVzX3wuCmlubGluZSBzdGQ6OnN0cmluZyBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVSYW5kb21MZW5ndGhTdHJpbmcoKSB7CiAgcmV0dXJuIENvbnN1bWVSYW5kb21MZW5ndGhTdHJpbmcocmVtYWluaW5nX2J5dGVzXyk7Cn0KCi8vIFJldHVybnMgYSBzdGQ6OnN0cmluZyBjb250YWluaW5nIGFsbCByZW1haW5pbmcgYnl0ZXMgb2YgdGhlIGlucHV0IGRhdGEuCi8vIFByZWZlciB1c2luZyB8Q29uc3VtZVJlbWFpbmluZ0J5dGVzfCB1bmxlc3MgeW91IGFjdHVhbGx5IG5lZWQgYSBzdGQ6OnN0cmluZwovLyBvYmplY3QuCmlubGluZSBzdGQ6OnN0cmluZyBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVSZW1haW5pbmdCeXRlc0FzU3RyaW5nKCkgewogIHJldHVybiBDb25zdW1lQnl0ZXNBc1N0cmluZyhyZW1haW5pbmdfYnl0ZXNfKTsKfQoKLy8gUmV0dXJucyBhIG51bWJlciBpbiB0aGUgcmFuZ2UgW1R5cGUncyBtaW4sIFR5cGUncyBtYXhdLiBUaGUgdmFsdWUgbWlnaHQKLy8gbm90IGJlIHVuaWZvcm1seSBkaXN0cmlidXRlZCBpbiB0aGUgZ2l2ZW4gcmFuZ2UuIElmIHRoZXJlJ3Mgbm8gaW5wdXQgZGF0YQovLyBsZWZ0LCBhbHdheXMgcmV0dXJucyB8bWlufC4KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lSW50ZWdyYWwoKSB7CiAgcmV0dXJuIENvbnN1bWVJbnRlZ3JhbEluUmFuZ2Uoc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWluKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkpOwp9CgovLyBSZXR1cm5zIGEgbnVtYmVyIGluIHRoZSByYW5nZSBbbWluLCBtYXhdIGJ5IGNvbnN1bWluZyBieXRlcyBmcm9tIHRoZQovLyBpbnB1dCBkYXRhLiBUaGUgdmFsdWUgbWlnaHQgbm90IGJlIHVuaWZvcm1seSBkaXN0cmlidXRlZCBpbiB0aGUgZ2l2ZW4KLy8gcmFuZ2UuIElmIHRoZXJlJ3Mgbm8gaW5wdXQgZGF0YSBsZWZ0LCBhbHdheXMgcmV0dXJucyB8bWlufC4gfG1pbnwgbXVzdAovLyBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gfG1heHwuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpUIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUludGVncmFsSW5SYW5nZShUIG1pbiwgVCBtYXgpIHsKICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLCAiQW4gaW50ZWdyYWwgdHlwZSBpcyByZXF1aXJlZC4iKTsKICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA8PSBzaXplb2YodWludDY0X3QpLCAiVW5zdXBwb3J0ZWQgaW50ZWdyYWwgdHlwZS4iKTsKCiAgaWYgKG1pbiA+IG1heCkKICAgIGFib3J0KCk7CgogIC8vIFVzZSB0aGUgYmlnZ2VzdCB0eXBlIHBvc3NpYmxlIHRvIGhvbGQgdGhlIHJhbmdlIGFuZCB0aGUgcmVzdWx0LgogIHVpbnQ2NF90IHJhbmdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1heCkgLSBtaW47CiAgdWludDY0X3QgcmVzdWx0ID0gMDsKICBzaXplX3Qgb2Zmc2V0ID0gMDsKCiAgd2hpbGUgKG9mZnNldCA8IHNpemVvZihUKSAqIENIQVJfQklUICYmIChyYW5nZSA+PiBvZmZzZXQpID4gMCAmJgogICAgICAgICByZW1haW5pbmdfYnl0ZXNfICE9IDApIHsKICAgIC8vIFB1bGwgYnl0ZXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlZWQgZGF0YS4gRXhwZXJpbWVudGFsbHksIHRoaXMgc2VlbXMgdG8KICAgIC8vIGFsbG93IHRoZSBmdXp6ZXIgdG8gbW9yZSBlYXNpbHkgZXhwbG9yZSB0aGUgaW5wdXQgc3BhY2UuIFRoaXMgbWFrZXMKICAgIC8vIHNlbnNlLCBzaW5jZSBpdCB3b3JrcyBieSBtb2RpZnlpbmcgaW5wdXRzIHRoYXQgY2F1c2VkIG5ldyBjb2RlIHRvIHJ1biwKICAgIC8vIGFuZCB0aGlzIGRhdGEgaXMgb2Z0ZW4gdXNlZCB0byBlbmNvZGUgbGVuZ3RoIG9mIGRhdGEgcmVhZCBieQogICAgLy8gfENvbnN1bWVCeXRlc3wuIFNlcGFyYXRpbmcgb3V0IHJlYWQgbGVuZ3RocyBtYWtlcyBpdCBlYXNpZXIgbW9kaWZ5IHRoZQogICAgLy8gY29udGVudHMgb2YgdGhlIGRhdGEgdGhhdCBpcyBhY3R1YWxseSByZWFkLgogICAgLS1yZW1haW5pbmdfYnl0ZXNfOwogICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBDSEFSX0JJVCkgfCBkYXRhX3B0cl9bcmVtYWluaW5nX2J5dGVzX107CiAgICBvZmZzZXQgKz0gQ0hBUl9CSVQ7CiAgfQoKICAvLyBBdm9pZCBkaXZpc2lvbiBieSAwLCBpbiBjYXNlIHxyYW5nZSArIDF8IHJlc3VsdHMgaW4gb3ZlcmZsb3cuCiAgaWYgKHJhbmdlICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZGVjbHR5cGUocmFuZ2UpPjo6bWF4KCkpCiAgICByZXN1bHQgPSByZXN1bHQgJSAocmFuZ2UgKyAxKTsKCiAgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KG1pbiArIHJlc3VsdCk7Cn0KCi8vIFJldHVybnMgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgW1R5cGUncyBsb3dlc3QsIFR5cGUncyBtYXhdIGJ5Ci8vIGNvbnN1bWluZyBieXRlcyBmcm9tIHRoZSBpbnB1dCBkYXRhLiBJZiB0aGVyZSdzIG5vIGlucHV0IGRhdGEgbGVmdCwgYWx3YXlzCi8vIHJldHVybnMgYXBwcm94aW1hdGVseSAwLgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVGbG9hdGluZ1BvaW50KCkgewogIHJldHVybiBDb25zdW1lRmxvYXRpbmdQb2ludEluUmFuZ2U8VD4oc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bG93ZXN0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSk7Cn0KCi8vIFJldHVybnMgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgZ2l2ZW4gcmFuZ2UgYnkgY29uc3VtaW5nIGJ5dGVzIGZyb20KLy8gdGhlIGlucHV0IGRhdGEuIElmIHRoZXJlJ3Mgbm8gaW5wdXQgZGF0YSBsZWZ0LCByZXR1cm5zIHxtaW58LiBOb3RlIHRoYXQKLy8gfG1pbnwgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gfG1heHwuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpUIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUZsb2F0aW5nUG9pbnRJblJhbmdlKFQgbWluLCBUIG1heCkgewogIGlmIChtaW4gPiBtYXgpCiAgICBhYm9ydCgpOwoKICBUIHJhbmdlID0gLjA7CiAgVCByZXN1bHQgPSBtaW47CiAgY29uc3RleHByIFQgemVybyguMCk7CiAgaWYgKG1heCA+IHplcm8gJiYgbWluIDwgemVybyAmJiBtYXggPiBtaW4gKyBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSkgewogICAgLy8gVGhlIGRpZmYgfG1heCAtIG1pbnwgd291bGQgb3ZlcmZsb3cgdGhlIGdpdmVuIGZsb2F0aW5nIHBvaW50IHR5cGUuIFVzZQogICAgLy8gdGhlIGhhbGYgb2YgdGhlIGRpZmYgYXMgdGhlIHJhbmdlIGFuZCBjb25zdW1lIGEgYm9vbCB0byBkZWNpZGUgd2hldGhlcgogICAgLy8gdGhlIHJlc3VsdCBpcyBpbiB0aGUgZmlyc3Qgb2YgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBkaWZmLgogICAgcmFuZ2UgPSAobWF4IC8gMi4wKSAtIChtaW4gLyAyLjApOwogICAgaWYgKENvbnN1bWVCb29sKCkpIHsKICAgICAgcmVzdWx0ICs9IHJhbmdlOwogICAgfQogIH0gZWxzZSB7CiAgICByYW5nZSA9IG1heCAtIG1pbjsKICB9CgogIHJldHVybiByZXN1bHQgKyByYW5nZSAqIENvbnN1bWVQcm9iYWJpbGl0eTxUPigpOwp9CgovLyBSZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGluIHRoZSByYW5nZSBbMC4wLCAxLjBdLiBJZiB0aGVyZSdzIG5vCi8vIGlucHV0IGRhdGEgbGVmdCwgYWx3YXlzIHJldHVybnMgMC4KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lUHJvYmFiaWxpdHkoKSB7CiAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSwKICAgICAgICAgICAgICAgICJBIGZsb2F0aW5nIHBvaW50IHR5cGUgaXMgcmVxdWlyZWQuIik7CgogIC8vIFVzZSBkaWZmZXJlbnQgaW50ZWdyYWwgdHlwZXMgZm9yIGRpZmZlcmVudCBmbG9hdGluZyBwb2ludCB0eXBlcyBpbiBvcmRlcgogIC8vIHRvIHByb3ZpZGUgYmV0dGVyIGRlbnNpdHkgb2YgdGhlIHJlc3VsdGluZyB2YWx1ZXMuCiAgdXNpbmcgSW50ZWdyYWxUeXBlID0KICAgICAgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDwoc2l6ZW9mKFQpIDw9IHNpemVvZih1aW50MzJfdCkpLCB1aW50MzJfdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdD46OnR5cGU7CgogIFQgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8VD4oQ29uc3VtZUludGVncmFsPEludGVncmFsVHlwZT4oKSk7CiAgcmVzdWx0IC89IHN0YXRpY19jYXN0PFQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8SW50ZWdyYWxUeXBlPjo6bWF4KCkpOwogIHJldHVybiByZXN1bHQ7Cn0KCi8vIFJlYWRzIG9uZSBieXRlIGFuZCByZXR1cm5zIGEgYm9vbCwgb3IgZmFsc2Ugd2hlbiBubyBkYXRhIHJlbWFpbnMuCmlubGluZSBib29sIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUJvb2woKSB7CiAgcmV0dXJuIDEgJiBDb25zdW1lSW50ZWdyYWw8dWludDhfdD4oKTsKfQoKLy8gUmV0dXJucyBhbiBlbnVtIHZhbHVlLiBUaGUgZW51bSBtdXN0IHN0YXJ0IGF0IDAgYW5kIGJlIGNvbnRpZ3VvdXMuIEl0IG11c3QKLy8gYWxzbyBjb250YWluIHxrTWF4VmFsdWV8IGFsaWFzZWQgdG8gaXRzIGxhcmdlc3QgKGluY2x1c2l2ZSkgdmFsdWUuIFN1Y2ggYXM6Ci8vIGVudW0gY2xhc3MgRm9vIHsgU29tZVZhbHVlLCBPdGhlclZhbHVlLCBrTWF4VmFsdWUgPSBPdGhlclZhbHVlIH07CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUVudW0oKSB7CiAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2VudW08VD46OnZhbHVlLCAifFR8IG11c3QgYmUgYW4gZW51bSB0eXBlLiIpOwogIHJldHVybiBzdGF0aWNfY2FzdDxUPigKICAgICAgQ29uc3VtZUludGVncmFsSW5SYW5nZTx1aW50MzJfdD4oMCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFQ6OmtNYXhWYWx1ZSkpKTsKfQoKLy8gUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIGdpdmVuIGZpeGVkLXNpemUgfGFycmF5fC4KdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBzaXplPgpUIEZ1enplZERhdGFQcm92aWRlcjo6UGlja1ZhbHVlSW5BcnJheShjb25zdCBUICgmYXJyYXkpW3NpemVdKSB7CiAgc3RhdGljX2Fzc2VydChzaXplID4gMCwgIlRoZSBhcnJheSBtdXN0IGJlIG5vbiBlbXB0eS4iKTsKICByZXR1cm4gYXJyYXlbQ29uc3VtZUludGVncmFsSW5SYW5nZTxzaXplX3Q+KDAsIHNpemUgLSAxKV07Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qgc2l6ZT4KVCBGdXp6ZWREYXRhUHJvdmlkZXI6OlBpY2tWYWx1ZUluQXJyYXkoY29uc3Qgc3RkOjphcnJheTxULCBzaXplPiAmYXJyYXkpIHsKICBzdGF0aWNfYXNzZXJ0KHNpemUgPiAwLCAiVGhlIGFycmF5IG11c3QgYmUgbm9uIGVtcHR5LiIpOwogIHJldHVybiBhcnJheVtDb25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oMCwgc2l6ZSAtIDEpXTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ClQgRnV6emVkRGF0YVByb3ZpZGVyOjpQaWNrVmFsdWVJbkFycmF5KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBUPiBsaXN0KSB7CiAgLy8gVE9ETyhEb3Ixcyk6IHN3aXRjaCB0byBzdGF0aWNfYXNzZXJ0IG9uY2UgQysrMTQgaXMgYWxsb3dlZC4KICBpZiAoIWxpc3Quc2l6ZSgpKQogICAgYWJvcnQoKTsKCiAgcmV0dXJuICoobGlzdC5iZWdpbigpICsgQ29uc3VtZUludGVncmFsSW5SYW5nZTxzaXplX3Q+KDAsIGxpc3Quc2l6ZSgpIC0gMSkpOwp9CgovLyBXcml0ZXMgfG51bV9ieXRlc3wgb2YgaW5wdXQgZGF0YSB0byB0aGUgZ2l2ZW4gZGVzdGluYXRpb24gcG9pbnRlci4gSWYgdGhlcmUKLy8gaXMgbm90IGVub3VnaCBkYXRhIGxlZnQsIHdyaXRlcyBhbGwgcmVtYWluaW5nIGJ5dGVzLiBSZXR1cm4gdmFsdWUgaXMgdGhlCi8vIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgovLyBJbiBnZW5lcmFsLCBpdCdzIGJldHRlciB0byBhdm9pZCB1c2luZyB0aGlzIGZ1bmN0aW9uLCBidXQgaXQgbWF5IGJlIHVzZWZ1bAovLyBpbiBjYXNlcyB3aGVuIGl0J3MgbmVjZXNzYXJ5IHRvIGZpbGwgYSBjZXJ0YWluIGJ1ZmZlciBvciBvYmplY3Qgd2l0aAovLyBmdXp6aW5nIGRhdGEuCmlubGluZSBzaXplX3QgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lRGF0YSh2b2lkICpkZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fYnl0ZXMpIHsKICBudW1fYnl0ZXMgPSBzdGQ6Om1pbihudW1fYnl0ZXMsIHJlbWFpbmluZ19ieXRlc18pOwogIENvcHlBbmRBZHZhbmNlKGRlc3RpbmF0aW9uLCBudW1fYnl0ZXMpOwogIHJldHVybiBudW1fYnl0ZXM7Cn0KCi8vIFByaXZhdGUgbWV0aG9kcy4KaW5saW5lIHZvaWQgRnV6emVkRGF0YVByb3ZpZGVyOjpDb3B5QW5kQWR2YW5jZSh2b2lkICpkZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2J5dGVzKSB7CiAgc3RkOjptZW1jcHkoZGVzdGluYXRpb24sIGRhdGFfcHRyXywgbnVtX2J5dGVzKTsKICBBZHZhbmNlKG51bV9ieXRlcyk7Cn0KCmlubGluZSB2b2lkIEZ1enplZERhdGFQcm92aWRlcjo6QWR2YW5jZShzaXplX3QgbnVtX2J5dGVzKSB7CiAgaWYgKG51bV9ieXRlcyA+IHJlbWFpbmluZ19ieXRlc18pCiAgICBhYm9ydCgpOwoKICBkYXRhX3B0cl8gKz0gbnVtX2J5dGVzOwogIHJlbWFpbmluZ19ieXRlc18gLT0gbnVtX2J5dGVzOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RkOjp2ZWN0b3I8VD4gRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lQnl0ZXMoc2l6ZV90IHNpemUsIHNpemVfdCBudW1fYnl0ZXMpIHsKICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA9PSBzaXplb2YodWludDhfdCksICJJbmNvbXBhdGlibGUgZGF0YSB0eXBlLiIpOwoKICAvLyBUaGUgcG9pbnQgb2YgdXNpbmcgdGhlIHNpemUtYmFzZWQgY29uc3RydWN0b3IgYmVsb3cgaXMgdG8gaW5jcmVhc2UgdGhlCiAgLy8gb2RkcyBvZiBoYXZpbmcgYSB2ZWN0b3Igb2JqZWN0IHdpdGggY2FwYWNpdHkgYmVpbmcgZXF1YWwgdG8gdGhlIGxlbmd0aC4KICAvLyBUaGF0IHBhcnQgaXMgYWx3YXlzIGltcGxlbWVudGF0aW9uIHNwZWNpZmljLCBidXQgYXQgbGVhc3QgYm90aCBsaWJjKysgYW5kCiAgLy8gbGlic3RkYysrIGFsbG9jYXRlIHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzIGluIHRoYXQgY29uc3RydWN0b3IsCiAgLy8gd2hpY2ggc2VlbXMgdG8gYmUgYSBuYXR1cmFsIGNob2ljZSBmb3Igb3RoZXIgaW1wbGVtZW50YXRpb25zIGFzIHdlbGwuCiAgLy8gVG8gaW5jcmVhc2UgdGhlIG9kZHMgZXZlbiBtb3JlLCB3ZSBhbHNvIGNhbGwgfHNocmlua190b19maXR8IGJlbG93LgogIHN0ZDo6dmVjdG9yPFQ+IHJlc3VsdChzaXplKTsKICBpZiAoc2l6ZSA9PSAwKSB7CiAgICBpZiAobnVtX2J5dGVzICE9IDApCiAgICAgIGFib3J0KCk7CiAgICByZXR1cm4gcmVzdWx0OwogIH0KCiAgQ29weUFuZEFkdmFuY2UocmVzdWx0LmRhdGEoKSwgbnVtX2J5dGVzKTsKCiAgLy8gRXZlbiB0aG91Z2ggfHNocmlua190b19maXR8IGlzIGFsc28gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMsIHdlIGV4cGVjdCBpdAogIC8vIHRvIHByb3ZpZGUgYW4gYWRkaXRpb25hbCBhc3N1cmFuY2UgaW4gY2FzZSB2ZWN0b3IncyBjb25zdHJ1Y3RvciBhbGxvY2F0ZWQKICAvLyBhIGJ1ZmZlciB3aGljaCBpcyBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIGFtb3VudCBvZiBkYXRhIHdlIHB1dCBpbnNpZGUgaXQuCiAgcmVzdWx0LnNocmlua190b19maXQoKTsKICByZXR1cm4gcmVzdWx0Owp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVFMsIHR5cGVuYW1lIFRVPgpUUyBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnZlcnRVbnNpZ25lZFRvU2lnbmVkKFRVIHZhbHVlKSB7CiAgc3RhdGljX2Fzc2VydChzaXplb2YoVFMpID09IHNpemVvZihUVSksICJJbmNvbXBhdGlibGUgZGF0YSB0eXBlcy4iKTsKICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Om51bWVyaWNfbGltaXRzPFRVPjo6aXNfc2lnbmVkLAogICAgICAgICAgICAgICAgIlNvdXJjZSB0eXBlIG11c3QgYmUgdW5zaWduZWQuIik7CgogIC8vIFRPRE8oRG9yMXMpOiBjaGFuZ2UgdG8gYGlmIGNvbnN0ZXhwcmAgb25jZSBDKysxNyBiZWNvbWVzIG1haW5zdHJlYW0uCiAgaWYgKHN0ZDo6bnVtZXJpY19saW1pdHM8VFM+Ojppc19tb2R1bG8pCiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VFM+KHZhbHVlKTsKCiAgLy8gQXZvaWQgdXNpbmcgaW1wbGVtZW50YXRpb24tZGVmaW5lZCB1bnNpZ25lZCB0byBzaWduZWQgY29udmVyc2lvbnMuCiAgLy8gVG8gbGVhcm4gbW9yZSwgc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEzMTUwNDQ5LgogIGlmICh2YWx1ZSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPFRTPjo6bWF4KCkpIHsKICAgIHJldHVybiBzdGF0aWNfY2FzdDxUUz4odmFsdWUpOwogIH0gZWxzZSB7CiAgICBjb25zdGV4cHIgYXV0byBUU19taW4gPSBzdGQ6Om51bWVyaWNfbGltaXRzPFRTPjo6bWluKCk7CiAgICByZXR1cm4gVFNfbWluICsgc3RhdGljX2Nhc3Q8VFM+KHZhbHVlIC0gVFNfbWluKTsKICB9Cn0KCiNlbmRpZiAvLyBMTFZNX0ZVWlpFUl9GVVpaRURfREFUQV9QUk9WSURFUl9IXwoAb3Blbm1wX3dyYXBwZXJzL19fY2xhbmdfb3Blbm1wX2RldmljZV9mdW5jdGlvbnMuaABmc2VlayhoYW5kbGUsIDAsIDApAFwASlNPTiB0cmFuc2NvZGVyIHByb2R1Y2VkIGludmFsaWQgcHJvdG9idWYgb3V0cHV0LgBVbmtub3duIGVuY29kaW5nICcAREZBIG91dCBvZiBtZW1vcnk6IHNpemUgAFs6XnNwYWNlOl0AZXh0ZXJuYWwvcmVnZXgtcmUyL3JlMi90b3N0cmluZy5jYwAqAFxCAEdsYWdvbGl0aWMAS2htZXIAS2hvamtpAExtAE1hcmNoZW4AT3JpeWEAUHMAU20AU29nZGlhbgBUaGFpACAgICAAbHNlZWsoJWQsICVqdSwgU0VFS19TRVQpIGZhaWxlZDogZXJybm89JWQAcmVhZCBmYWlsZWQ6IGVycm5vPSVkAENvcnJ1cHQgL3Byb2Mvc2VsZi9tYXBzOiAlcwBvZmZzZXQgb3V0IG9mIHJhbmdlAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL2xvd19sZXZlbF9hbGxvYy5jYwBzaWduZWQgY2hhcgBsb25nIGxvbmcAZHYAcEwAbGUAMTIAQ0FOQ0VMTEVEAFVOSU1QTEVNRU5URUQALCBoZWFkID0gAG5zAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWNkc2EvZWNkc2EuYwBBRVNfc2V0X2VuY3J5cHRfa2V5IGZhaWxlZC4KAEFFUy1DQkMgRW5jcnlwdGlvbiBLQVQAUlNBIEtleUdlbiBmYWlsZWQKACVseABpbnZhbGlkIGxpYnJhcnkgKDApAENpcGhlciBmdW5jdGlvbnMAa3l0aGUucHJvdG8uRmlsZUluZm8uZGlnZXN0AGt5dGhlLnByb3RvLmNvbW1vbi5TeW1ib2xJbmZvLmJhc2VfbmFtZQBreXRoZS5wcm90by5Xcml0ZVJlcXVlc3QuVXBkYXRlLmVkZ2Vfa2luZAAtWGNsYW5nfC10YXJnZXQAQ2FuJ3QgcmVwcm9kdWNlIGluY2x1ZGUgbG9va3VwIHN0YXRlOiAAUmVzb3VyY2UgZGlyZWN0b3J5IGlzIAAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEyaWZtYWludHJpbi5oIC0gSUZNQSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmlmbWFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fSUZNQUlOVFJJTl9ICiNkZWZpbmUgX19JRk1BSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJpZm1hIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hZGQ1MmhpX2VwdTY0IChfX201MTJpIF9fWCwgX19tNTEyaSBfX1ksIF9fbTUxMmkgX19aKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkZDUyaHVxNTEyKChfX3Y4ZGkpIF9fWCwgKF9fdjhkaSkgX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19tYWRkNTJoaV9lcHU2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYWRkNTJoaV9lcHU2NChfX1csIF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9tYWRkNTJoaV9lcHU2NCAoX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1ksIF9fbTUxMmkgX19aKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYWRkNTJoaV9lcHU2NChfX1gsIF9fWSwgX19aKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFkZDUybG9fZXB1NjQgKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSwgX19tNTEyaSBfX1opCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBtYWRkNTJsdXE1MTIoKF9fdjhkaSkgX19YLCAoX192OGRpKSBfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX21hZGQ1MmxvX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21hZGQ1MmxvX2VwdTY0KF9fVywgX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X21hZGQ1MmxvX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSwgX19tNTEyaSBfX1opCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21hZGQ1MmxvX2VwdTY0KF9fWCwgX19ZLCBfX1opLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAZW5xY21kaW50cmluLmgALy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX0hFWEFHT05fQ0lSQ19CUkVWX0lOVFJJTlNJQ1NfSF8KI2RlZmluZSBfSEVYQUdPTl9DSVJDX0JSRVZfSU5UUklOU0lDU19IXyAxCgojaW5jbHVkZSA8aGV4YWdvbl9wcm90b3MuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKLyogQ2lyY3VsYXIgTG9hZCAqLwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0QoV29yZDY0IGRzdCwgV29yZDY0ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX0QoZGVzdCxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQ2NF90ICopIEhFWEFHT05fY2lyY19sZGQgKHB0ciwgJihkZXN0KSwgKCgoKEspKzEpPDwyNCl8KChidWZzaXplKTw8MykpLCAoKGluY3IpKjgpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19sb2FkX3VwZGF0ZV9XKFdvcmQzMiBkc3QsIFdvcmQzMiAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9XKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50ICopIEhFWEFHT05fY2lyY19sZHcgKHB0ciwgJihkZXN0KSwgKCgoSyk8PDI0KXwoKGJ1ZnNpemUpPDwyKSksICgoaW5jcikqNCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0goV29yZDE2IGRzdCwgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX0goZGVzdCxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19sZGggKHB0ciwgJihkZXN0KSwgKCgoKEspLTEpPDwyNCl8KChidWZzaXplKTw8MSkpLCAoKGluY3IpKjIpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19sb2FkX3VwZGF0ZV9VSCggVVdvcmQxNiBkc3QsICBVV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX1VIKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9ICh1aW50MTZfdCAqKSBIRVhBR09OX2NpcmNfbGR1aCAocHRyLCAmKGRlc3QpLCAoKCgoSyktMSk8PDI0KXwoKGJ1ZnNpemUpPDwxKSksICgoaW5jcikqMikpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0IoV29yZDggZHN0LCBXb3JkOCAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9CKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fY2lyY19sZGIgKHB0ciwgJihkZXN0KSwgKCgoKEspLTIpPDwyNCl8KGJ1ZnNpemUpKSwgaW5jcik7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkICBRNl9jaXJjX2xvYWRfdXBkYXRlX1VCKFVXb3JkOCBkc3QsIFVXb3JkOCAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9VQihkZXN0LHB0cixpbmNyLGJ1ZnNpemUsSykgXAogICAgeyBwdHIgPSAodWludDhfdCAqKSBIRVhBR09OX2NpcmNfbGR1YiAocHRyLCAmKGRlc3QpLCAoKCgoSyktMik8PDI0KXwoYnVmc2l6ZSkpLCBpbmNyKTsgfQoKLyogQ2lyY3VsYXIgU3RvcmUgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19zdG9yZV91cGRhdGVfRChXb3JkNjQgKnNyYywgV29yZDY0ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9EKHNyYyxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQ2NF90ICopIEhFWEFHT05fY2lyY19zdGQgKHB0ciwgc3JjLCAoKCgoSykrMSk8PDI0KXwoKGJ1ZnNpemUpPDwzKSksICgoaW5jcikqOCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9XKFdvcmQzMiAqc3JjLCBXb3JkMzIgKnB0ciwgVVdvcmQzMiBpbmNyLCBVV29yZDMyIGJ1ZnNpemUsIFVXb3JkMzIgSykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2NpcmNfc3RvcmVfdXBkYXRlX1coc3JjLHB0cixpbmNyLGJ1ZnNpemUsSykgIFwKICAgIHsgcHRyID0gKGludCAqKSBIRVhBR09OX2NpcmNfc3R3IChwdHIsIHNyYywgKCgoSyk8PDI0KXwoKGJ1ZnNpemUpPDwyKSksICgoaW5jcikqNCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ITChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ITChzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19zdGggKHB0ciwgc3JjLCAoKCgoSyktMSk8PDI0KXwoKGJ1ZnNpemUpPDwxKSksICgoaW5jcikqMikpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ISChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ISChzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19zdGhoaSAocHRyLCBzcmMsICgoKChLKS0xKTw8MjQpfCgoYnVmc2l6ZSk8PDEpKSwgKChpbmNyKSoyKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2NpcmNfc3RvcmVfdXBkYXRlX0IoV29yZDggKnNyYywgV29yZDggKnB0ciwgVVdvcmQzMiBJNCwgVVdvcmQzMiBidWZzaXplLCAgVVdvcmQ2NCBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19zdG9yZV91cGRhdGVfQihzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fY2lyY19zdGIgKHB0ciwgc3JjLCAoKCgoSyktMik8PDI0KXwoYnVmc2l6ZSkpLCBpbmNyKTsgfQoKCi8qIEJpdCBSZXZlcnNlIExvYWQgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X2xvYWRfdXBkYXRlX0QoV29yZDY0IGRzdCwgV29yZDY0ICpwdHIsIFVXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfYml0cmV2X2xvYWRfdXBkYXRlX0QoZGVzdCxwdHIsbG9nMmJ1ZnNpemUpIFwKICAgIHsgcHRyID0gKGludDY0X3QgKikgSEVYQUdPTl9icmV2X2xkZCAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMykpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9XKFdvcmQzMiBkc3QsIFdvcmQzMiAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9XKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9IChpbnQgKikgSEVYQUdPTl9icmV2X2xkdyAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMikpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9IKFdvcmQxNiBkc3QsIFdvcmQxNiAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9IKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fYnJldl9sZGggKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSArIDEpKSkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfbG9hZF91cGRhdGVfVUgoVVdvcmQxNiBkc3QsICBVV29yZDE2ICpwdHIsIFVXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfYml0cmV2X2xvYWRfdXBkYXRlX1VIKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9ICh1aW50MTZfdCAqKSBIRVhBR09OX2JyZXZfbGR1aCAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9CKFdvcmQ4IGRzdCwgV29yZDggKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfbG9hZF91cGRhdGVfQihkZXN0LHB0cixsb2cyYnVmc2l6ZSkgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fYnJldl9sZGIgKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9VQihVV29yZDggZHN0LCBVV29yZDggKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfbG9hZF91cGRhdGVfVUIoZGVzdCxwdHIsbG9nMmJ1ZnNpemUpIFwKICAgIHsgcHRyID0gKHVpbnQ4X3QgKikgSEVYQUdPTl9icmV2X2xkdWIgKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCi8qIEJpdCBSZXZlcnNlIFN0b3JlICovCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0QoV29yZDY0ICpzcmMsIFdvcmQ2NCAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfRChzcmMscHRyLGxvZzJidWZzaXplKSAgIFwKICAgIHsgcHRyID0gKGludDY0X3QgKikgSEVYQUdPTl9icmV2X3N0ZCAocHRyLCBzcmMsICgxPDwoMTYtKChsb2cyYnVmc2l6ZSkgKyAzKSkpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X3N0b3JlX3VwZGF0ZV9XKFdvcmQzMiAqc3JjLCBXb3JkMzIgKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX1coc3JjLHB0cixsb2cyYnVmc2l6ZSkgICBcCiAgICB7IHB0ciA9IChpbnQgKikgSEVYQUdPTl9icmV2X3N0dyAocHRyLCBzcmMsICgxPDwoMTYtKChsb2cyYnVmc2l6ZSkgKyAyKSkpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X3N0b3JlX3VwZGF0ZV9ITChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hMKHNyYyxwdHIsbG9nMmJ1ZnNpemUpICAgXAogICAgeyBwdHIgPSAoaW50MTZfdCAqKSBIRVhBR09OX2JyZXZfc3RoIChwdHIsIHNyYywgKDE8PCgxNi0oKGxvZzJidWZzaXplKSArIDEpKSkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hIKFdvcmQxNiAqc3JjLCBXb3JkMTYgKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hIKHNyYyxwdHIsbG9nMmJ1ZnNpemUpICAgXAogICAgeyBwdHIgPSAoaW50MTZfdCAqKSBIRVhBR09OX2JyZXZfc3RoaGkgKHB0ciwgc3JjLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfQihXb3JkOCAqc3JjLCBXb3JkOCAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfQihzcmMscHRyLGxvZzJidWZzaXplKSAgIFwKICAgIHsgcHRyID0gKGludDhfdCAqKSBIRVhBR09OX2JyZXZfc3RiIChwdHIsIHNyYywgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCgojZGVmaW5lIEhFWEFHT05fY2lyY19sZGQgIF9fYnVpbHRpbl9jaXJjX2xkZAojZGVmaW5lIEhFWEFHT05fY2lyY19sZHcgIF9fYnVpbHRpbl9jaXJjX2xkdwojZGVmaW5lIEhFWEFHT05fY2lyY19sZGggIF9fYnVpbHRpbl9jaXJjX2xkaAojZGVmaW5lIEhFWEFHT05fY2lyY19sZHVoIF9fYnVpbHRpbl9jaXJjX2xkdWgKI2RlZmluZSBIRVhBR09OX2NpcmNfbGRiICBfX2J1aWx0aW5fY2lyY19sZGIKI2RlZmluZSBIRVhBR09OX2NpcmNfbGR1YiBfX2J1aWx0aW5fY2lyY19sZHViCgoKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RkICBfX2J1aWx0aW5fY2lyY19zdGQKI2RlZmluZSBIRVhBR09OX2NpcmNfc3R3ICBfX2J1aWx0aW5fY2lyY19zdHcKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RoICBfX2J1aWx0aW5fY2lyY19zdGgKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RoaGkgX19idWlsdGluX2NpcmNfc3RoaGkKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RiICBfX2J1aWx0aW5fY2lyY19zdGIKCgojZGVmaW5lIEhFWEFHT05fYnJldl9sZGQgIF9fYnVpbHRpbl9icmV2X2xkZAojZGVmaW5lIEhFWEFHT05fYnJldl9sZHcgIF9fYnVpbHRpbl9icmV2X2xkdwojZGVmaW5lIEhFWEFHT05fYnJldl9sZGggIF9fYnVpbHRpbl9icmV2X2xkaAojZGVmaW5lIEhFWEFHT05fYnJldl9sZHVoIF9fYnVpbHRpbl9icmV2X2xkdWgKI2RlZmluZSBIRVhBR09OX2JyZXZfbGRiICBfX2J1aWx0aW5fYnJldl9sZGIKI2RlZmluZSBIRVhBR09OX2JyZXZfbGR1YiBfX2J1aWx0aW5fYnJldl9sZHViCgojZGVmaW5lIEhFWEFHT05fYnJldl9zdGQgIF9fYnVpbHRpbl9icmV2X3N0ZAojZGVmaW5lIEhFWEFHT05fYnJldl9zdHcgIF9fYnVpbHRpbl9icmV2X3N0dwojZGVmaW5lIEhFWEFHT05fYnJldl9zdGggIF9fYnVpbHRpbl9icmV2X3N0aAojZGVmaW5lIEhFWEFHT05fYnJldl9zdGhoaSBfX2J1aWx0aW5fYnJldl9zdGhoaQojZGVmaW5lIEhFWEFHT05fYnJldl9zdGIgIF9fYnVpbHRpbl9icmV2X3N0YgoKI2lmZGVmIF9fSFZYX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXQpIHZtZW0oUnQrIzApID0gVnMKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtYXNrZWRzdG9yZXFfUUFWKEhWWF9WZWN0b3JQcmVkIFF0LCBIVlhfVmVjdG9yQWRkcmVzcyBBLCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENPUFJPQ19WTUVNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdm1hc2tlZHN0b3JlcV9RQVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXNrZWRzdG9yZXEpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXQpIHZtZW0oUnQrIzApID0gVnMKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtYXNrZWRzdG9yZW5xX1FBVihIVlhfVmVjdG9yUHJlZCBRdCwgSFZYX1ZlY3RvckFkZHJlc3MgQSwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDT1BST0NfVk1FTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtYXNrZWRzdG9yZW5xX1FBViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1hc2tlZHN0b3JlbnEpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdCkgdm1lbShSdCsjMCk6bnQgPSBWcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1hc2tlZHN0b3JlbnRxX1FBVihIVlhfVmVjdG9yUHJlZCBRdCwgSFZYX1ZlY3RvckFkZHJlc3MgQSwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDT1BST0NfVk1FTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtYXNrZWRzdG9yZW50cV9RQVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXNrZWRzdG9yZW50cSkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdCkgdm1lbShSdCsjMCk6bnQgPSBWcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1hc2tlZHN0b3JlbnRucV9RQVYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3JBZGRyZXNzIEEsIEhWWF9WZWN0b3IgVnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ09QUk9DX1ZNRU0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92bWFza2Vkc3RvcmVudG5xX1FBViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1hc2tlZHN0b3JlbnRucSkKCiNlbmRpZgoKCiNlbmRpZiAgLyogI2lmbmRlZiBfSEVYQUdPTl9DSVJDX0JSRVZfSU5UUklOU0lDU19IXyAqLwoKI2lmZGVmIF9fTk9UX0RFRklORURfXwovKioqIGNvbW1lbnQgYmxvY2sgdGVtcGxhdGUgICoqKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFJldHVyblR5cGUgSW50cmluc2ljKFBhcmFtVHlwZSBScywgUGFyYW1UeXBlIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNlbmRpZiAvKioqICBfX05PVF9ERUZJTkVEX18gICoqKi8KAC8qPT09LS0tLSBsemNudGludHJpbi5oIC0gTFpDTlQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGx6Y250aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0xaQ05USU5UUklOX0gKI2RlZmluZSBfX0xaQ05USU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJsemNudCIpKSkKCiNpZm5kZWYgX01TQ19WRVIKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVybyBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgTFpDTlQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIgd2hvc2UgbGVhZGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCiNkZWZpbmUgX19semNudDE2KFgpIF9fYnVpbHRpbl9pYTMyX2x6Y250X3UxNigodW5zaWduZWQgc2hvcnQpKFgpKQojZW5kaWYgLy8gX01TQ19WRVIKCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfbHpjbnRfdTMyCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19semNudDMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTMyKF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfX2x6Y250MzIKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbHpjbnRfdTMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTMyKF9fWCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNpZm5kZWYgX01TQ19WRVIKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVybyBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgTFpDTlQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhZGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLyBcc2VlIF9semNudF91NjQKI2RlZmluZSBfX2x6Y250NjQoWCkgX19idWlsdGluX2lhMzJfbHpjbnRfdTY0KCh1bnNpZ25lZCBsb25nIGxvbmcpKFgpKQojZW5kaWYgLy8gX01TQ19WRVIKCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfX2x6Y250NjQKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbHpjbnRfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTY0KF9fWCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19MWkNOVElOVFJJTl9IICovCgAvKj09PS0tLS0gcGt1aW50cmluLmggLSBQS1UgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cGt1aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1BLVUlOVFJJTl9ICiNkZWZpbmUgX19QS1VJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInBrdSIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3JkcGtydV91MzIodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHBrcnUoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3dycGtydSh1bnNpZ25lZCBpbnQgX192YWwpCnsKICBfX2J1aWx0aW5faWEzMl93cnBrcnUoX192YWwpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSByaXNjdl92ZWN0b3IuaCAtIFJJU0MtViBWLWV4dGVuc2lvbiBSVlZJbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19SSVNDVl9WRUNUT1JfSAojZGVmaW5lIF9fUklTQ1ZfVkVDVE9SX0gKCiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKI2lmbmRlZiBfX3Jpc2N2X3ZlY3RvcgojZXJyb3IgIlZlY3RvciBpbnRyaW5zaWNzIHJlcXVpcmUgdGhlIHZlY3RvciBleHRlbnNpb24uIgojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgoKI2RlZmluZSB2c2V0dmxfZThtZjgoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNSkKI2RlZmluZSB2c2V0dmxfZThtZjQoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNikKI2RlZmluZSB2c2V0dmxfZThtZjIoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNykKI2RlZmluZSB2c2V0dmxfZThtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAwLCAwKQojZGVmaW5lIHZzZXR2bF9lOG0yKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDAsIDEpCiNkZWZpbmUgdnNldHZsX2U4bTQoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgMikKI2RlZmluZSB2c2V0dmxfZThtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAwLCAzKQoKI2RlZmluZSB2c2V0dmxfZTE2bWY0KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDEsIDYpCiNkZWZpbmUgdnNldHZsX2UxNm1mMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCA3KQojZGVmaW5lIHZzZXR2bF9lMTZtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAwKQojZGVmaW5lIHZzZXR2bF9lMTZtMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAxKQojZGVmaW5lIHZzZXR2bF9lMTZtNChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAyKQojZGVmaW5lIHZzZXR2bF9lMTZtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAzKQoKI2RlZmluZSB2c2V0dmxfZTMybWYyKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDcpCiNkZWZpbmUgdnNldHZsX2UzMm0xKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDApCiNkZWZpbmUgdnNldHZsX2UzMm0yKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDEpCiNkZWZpbmUgdnNldHZsX2UzMm00KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDIpCiNkZWZpbmUgdnNldHZsX2UzMm04KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDMpCgojZGVmaW5lIHZzZXR2bF9lNjRtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAwKQojZGVmaW5lIHZzZXR2bF9lNjRtMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAxKQojZGVmaW5lIHZzZXR2bF9lNjRtNChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAyKQojZGVmaW5lIHZzZXR2bF9lNjRtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAzKQoKCiNkZWZpbmUgdnNldHZsbWF4X2U4bWY4KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDUpCiNkZWZpbmUgdnNldHZsbWF4X2U4bWY0KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDYpCiNkZWZpbmUgdnNldHZsbWF4X2U4bWYyKCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDcpCiNkZWZpbmUgdnNldHZsbWF4X2U4bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMCwgMCkKI2RlZmluZSB2c2V0dmxtYXhfZThtMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgwLCAxKQojZGVmaW5lIHZzZXR2bG1heF9lOG00KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDIpCiNkZWZpbmUgdnNldHZsbWF4X2U4bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMCwgMykKCiNkZWZpbmUgdnNldHZsbWF4X2UxNm1mNCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgxLCA2KQojZGVmaW5lIHZzZXR2bG1heF9lMTZtZjIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgNykKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMCkKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMSkKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTQoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMikKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMykKCiNkZWZpbmUgdnNldHZsbWF4X2UzMm1mMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCA3KQojZGVmaW5lIHZzZXR2bG1heF9lMzJtMSgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAwKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAxKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtNCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAyKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtOCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAzKQoKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMCkKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMSkKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTQoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMikKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMykKCnR5cGVkZWYgX19ydnZfYm9vbDY0X3QgdmJvb2w2NF90Owp0eXBlZGVmIF9fcnZ2X2Jvb2wzMl90IHZib29sMzJfdDsKdHlwZWRlZiBfX3J2dl9ib29sMTZfdCB2Ym9vbDE2X3Q7CnR5cGVkZWYgX19ydnZfYm9vbDhfdCB2Ym9vbDhfdDsKdHlwZWRlZiBfX3J2dl9ib29sNF90IHZib29sNF90Owp0eXBlZGVmIF9fcnZ2X2Jvb2wyX3QgdmJvb2wyX3Q7CnR5cGVkZWYgX19ydnZfYm9vbDFfdCB2Ym9vbDFfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bWY4X3QgdmludDhtZjhfdDsKdHlwZWRlZiBfX3J2dl91aW50OG1mOF90IHZ1aW50OG1mOF90Owp0eXBlZGVmIF9fcnZ2X2ludDhtZjRfdCB2aW50OG1mNF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ4bWY0X3QgdnVpbnQ4bWY0X3Q7CnR5cGVkZWYgX19ydnZfaW50OG1mMl90IHZpbnQ4bWYyX3Q7CnR5cGVkZWYgX19ydnZfdWludDhtZjJfdCB2dWludDhtZjJfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bTFfdCB2aW50OG0xX3Q7CnR5cGVkZWYgX19ydnZfdWludDhtMV90IHZ1aW50OG0xX3Q7CnR5cGVkZWYgX19ydnZfaW50OG0yX3QgdmludDhtMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ4bTJfdCB2dWludDhtMl90Owp0eXBlZGVmIF9fcnZ2X2ludDhtNF90IHZpbnQ4bTRfdDsKdHlwZWRlZiBfX3J2dl91aW50OG00X3QgdnVpbnQ4bTRfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bThfdCB2aW50OG04X3Q7CnR5cGVkZWYgX19ydnZfdWludDhtOF90IHZ1aW50OG04X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtZjRfdCB2aW50MTZtZjRfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtZjRfdCB2dWludDE2bWY0X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtZjJfdCB2aW50MTZtZjJfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtZjJfdCB2dWludDE2bWYyX3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtMV90IHZpbnQxNm0xX3Q7CnR5cGVkZWYgX19ydnZfdWludDE2bTFfdCB2dWludDE2bTFfdDsKdHlwZWRlZiBfX3J2dl9pbnQxNm0yX3QgdmludDE2bTJfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtMl90IHZ1aW50MTZtMl90Owp0eXBlZGVmIF9fcnZ2X2ludDE2bTRfdCB2aW50MTZtNF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQxNm00X3QgdnVpbnQxNm00X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtOF90IHZpbnQxNm04X3Q7CnR5cGVkZWYgX19ydnZfdWludDE2bThfdCB2dWludDE2bThfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm1mMl90IHZpbnQzMm1mMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQzMm1mMl90IHZ1aW50MzJtZjJfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm0xX3QgdmludDMybTFfdDsKdHlwZWRlZiBfX3J2dl91aW50MzJtMV90IHZ1aW50MzJtMV90Owp0eXBlZGVmIF9fcnZ2X2ludDMybTJfdCB2aW50MzJtMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQzMm0yX3QgdnVpbnQzMm0yX3Q7CnR5cGVkZWYgX19ydnZfaW50MzJtNF90IHZpbnQzMm00X3Q7CnR5cGVkZWYgX19ydnZfdWludDMybTRfdCB2dWludDMybTRfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm04X3QgdmludDMybThfdDsKdHlwZWRlZiBfX3J2dl91aW50MzJtOF90IHZ1aW50MzJtOF90Owp0eXBlZGVmIF9fcnZ2X2ludDY0bTFfdCB2aW50NjRtMV90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ2NG0xX3QgdnVpbnQ2NG0xX3Q7CnR5cGVkZWYgX19ydnZfaW50NjRtMl90IHZpbnQ2NG0yX3Q7CnR5cGVkZWYgX19ydnZfdWludDY0bTJfdCB2dWludDY0bTJfdDsKdHlwZWRlZiBfX3J2dl9pbnQ2NG00X3QgdmludDY0bTRfdDsKdHlwZWRlZiBfX3J2dl91aW50NjRtNF90IHZ1aW50NjRtNF90Owp0eXBlZGVmIF9fcnZ2X2ludDY0bThfdCB2aW50NjRtOF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ2NG04X3QgdnVpbnQ2NG04X3Q7CiNpZiBkZWZpbmVkKF9fcmlzY3ZfemZoKQp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtZjRfdCB2ZmxvYXQxNm1mNF90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtZjJfdCB2ZmxvYXQxNm1mMl90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtMV90IHZmbG9hdDE2bTFfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDE2bTJfdCB2ZmxvYXQxNm0yX3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQxNm00X3QgdmZsb2F0MTZtNF90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtOF90IHZmbG9hdDE2bThfdDsKI2VuZGlmCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikKdHlwZWRlZiBfX3J2dl9mbG9hdDMybWYyX3QgdmZsb2F0MzJtZjJfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDMybTFfdCB2ZmxvYXQzMm0xX3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQzMm0yX3QgdmZsb2F0MzJtMl90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MzJtNF90IHZmbG9hdDMybTRfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDMybThfdCB2ZmxvYXQzMm04X3Q7CiNlbmRpZgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpCnR5cGVkZWYgX19ydnZfZmxvYXQ2NG0xX3QgdmZsb2F0NjRtMV90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0NjRtMl90IHZmbG9hdDY0bTJfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDY0bTRfdCB2ZmxvYXQ2NG00X3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQ2NG04X3QgdmZsb2F0NjRtOF90OwojZW5kaWYKCiNkZWZpbmUgdmFkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMSgodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTIoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm04KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm1mMigodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm00KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG0xKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTgoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm04X20oKHZib29sMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTgoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWYyKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG0xKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bWY0KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm04KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybTgoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybWYyKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTY0bTEoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTgoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMSgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0yKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG0xKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWYyKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTgoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm00KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0yKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWY0KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTgoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm04KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm00KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNlOF92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxveGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTEoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTgoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtNCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtNCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtOCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTEoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjQoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0yKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybWYyKCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtNCgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTgoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRjX3Z2bV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k4bTJfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pOG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kxNm04X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pNjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bTFfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pOG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faThtNF9iMigodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bThfYjEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTE2bTRfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTMybTRfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTY0bThfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTMybTRfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UzMm04X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91NjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mNF9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91NjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3U2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtOCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGNfdnZfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNiY192dm1faThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bTFfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pOG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bThfYjEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faThtZjhfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTE2bTRfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMzJtNF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kzMm04X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTY0bThfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k4bTRfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMTZtMl9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91OG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91NjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3U2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91NjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MzJtNF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91NjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3U2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91NjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNiY192dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtMl9iNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtMV9iOCgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtOF9iMSgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTgoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMigodnVpbnQxNm00X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTQoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjQoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG1mOCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0yKCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTEoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTQoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybWYyKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3hfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjgoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm00KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTEoKHZ1aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3hfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm00KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybWYyKCh2dWludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG0xKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMigodmludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTQoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjIoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjQoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mOCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xKCh2aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yKCh2aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTQoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG0xKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjIoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mNCgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjgoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0xKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtMigodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmN2dF94X3hfd191OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtMSgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG00KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWYyKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mOCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mMigodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMSgodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm00KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtZjIoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNlcV92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtNF9iMigodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92eF91OG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92eF91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtMl9iNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMV9iOCgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtOF9iMSgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMSgodmludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG00KCh2aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOCgodmludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm00KCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTEoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yKCh2aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm00KCh2aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG00KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG04KCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG1mNCgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtMigodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTQoKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMzJtMSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTQoKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtOCgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG00KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG04KCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bWY0KCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG1mOCgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMigodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTQoKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjQoKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTMybTEoKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMigodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm00KCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtOCgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm1mMigodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pNjRtMSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pNjRtOCgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTIoKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtNCgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG04KCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mMigodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtZjQoKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTIoKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTQoKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTgoKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UxNm1mMigodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0xKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MzJtMigodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTgoKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm1mMigodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91NjRtMSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U2NG00KCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91NjRtOCgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTEoKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtMigodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG00KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTgoKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWYyKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY0KCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm0xKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtMigodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtNCgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtOCgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm1mNCgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm0xKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MzJtMigodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTgoKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm1mMigodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodWludDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91NjRtMigodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodWludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm12X3Zfdl91OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91OG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtMSgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtMigoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtNCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtOCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k4bWYyKChpbnQ4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF9pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtZjQoKGludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2k4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pOG1mOCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm0xKChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm0yKChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm00KChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm04KChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMTZtZjIoKGludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm1mNCgoaW50MTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtMSgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtMigoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtNCgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtOCgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaTMybWYyKChpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG0xKChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG0yKChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG00KChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG04KChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdThtMSgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U4bTIoKHVpbnQ4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91OG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG00KCh1aW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdThtOCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mMigodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mNCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mOCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MTZtMSgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTE2bTIoKHVpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm00KCh1aW50MTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MTZtOCgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm1mMigodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm1mNCgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTMybTEoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UzMm0yKCh1aW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MzJtNCgodWludDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTMybTgoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MzJtZjIoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U2NG0xKCh1aW50NjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91NjRtMigodWludDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTY0bTQoKHVpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U2NG04KCh1aW50NjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2FkZHVfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0yKCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG00KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjgoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm00KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0xKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtNCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMigodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTQoKHZ1aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY0KCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMigodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0KCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTQoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG0yKCh2aW50MTZtNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTQoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mNCgodmludDE2bWYyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kzMm0yKCh2aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtNCgodmludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMigodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY0KCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjgoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMigodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTQoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG0xX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTFfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0yX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG00X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG04X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bThfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bWYyX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaThtZjRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY0X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY0X2k4bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bWY4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaThtZjhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mOF9pOG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMV9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtMl9pMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kxNm00X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kxNm00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm00X2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTE2bThfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWYyX2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWY0X2kxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm0xX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtNF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybThfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTMybWYyX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybWYyX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm1mMl9pMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTFfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTFfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTRfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTRfaTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bThfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bThfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bThfaTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtMV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtMV91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191OG0yX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtNF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtOF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtOF91OG0xX20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191OG1mMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mNF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191OG1mOF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjhfdThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTE2bTFfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtNF91MTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm04X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTE2bWY0X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybTFfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybTRfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtOF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm1mMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG0yX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtMV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG0xX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG0yX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xX20oKHZib29sNF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG00X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtNF9pOG0xX20oKHZib29sMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG04X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xX20oKHZib29sMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtZjJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG1mMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k4bWY0X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtZjRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pOG1mOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k4bWY4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTFfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMV9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTFfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTFfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTJfaTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pMTZtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm00X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pMTZtNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtNF9pMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kxNm04X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bThfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kxNm04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm04X2kxNm0xX20oKHZib29sMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mMl9pMTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mNF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTFfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMV9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTFfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTFfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTJfaTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtNF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTRfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTRfaTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pMzJtOF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm04X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pMzJtOF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtOF9pMzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtZjJfaTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0xX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTFfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0xX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0xX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0yX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTJfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0yX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0yX2k2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG00X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTRfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG00X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG00X2k2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG04X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bThfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG04X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG04X2k2NG0xX20oKHZib29sOF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bTFfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG0xX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTFfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtNF91OG0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bThfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG04X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bThfdThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWYyX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtZjJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bWY0X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mNF91OG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtZjhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bWY4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWY4X3U4bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UxNm0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtOF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bWYyX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UxNm1mNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bWY0X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm0xX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybTJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybTJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybTJfdTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm00X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybThfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtZjJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtZjJfdTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191NjRtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG0xX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtMV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191NjRtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191NjRtOF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG04X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtOF91NjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTFfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bThfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bWYyX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtZjJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bWY0X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtZjhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0xX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0xX2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTE2bTRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTRfaTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pMTZtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pMTZtOF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtOF9pMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjRfaTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0xX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0xX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm0xX2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0yX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTRfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm00X2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTMybThfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTMybThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybThfaTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pMzJtZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0xX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMV9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMl9pNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG00X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG04X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtOF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTFfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTJfaThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bThfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bWYyX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtZjJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mMl9pOG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bWY0X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtZjhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY4X2k4bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0xX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm0xX2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTE2bTRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTRfaTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pMTZtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pMTZtOF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtOF9pMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjRfaTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0xX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTRfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTMybThfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTMybThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybThfaTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pMzJtZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0xX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtMV9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtMl9pNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG00X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG04X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtOF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTFfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtMV91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTFfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTRfdThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bThfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtOF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bThfdThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG1mMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtZjJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191OG1mNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtZjhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191OG1mOF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTFfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0yX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0yX3UxNm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTE2bTRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTE2bTRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTRfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm04X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191MTZtOF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm1mMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjJfdTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjRfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0xX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0yX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm0yX3UzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm00X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTMybThfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191MzJtZjJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtZjJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybWYyX3UzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMV91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG0yX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtNF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtNF91NjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtOF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtOF91NjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaThtMV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMV9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG0yX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaThtOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtOF9pOG0xX20oKHZib29sMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjhfaThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bTFfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtNF9pMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bWYyX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybTFfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybTRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtOF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm1mMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG0xX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0xX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG0yX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG04X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG04X2k2NG0xX20oKHZib29sOF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191OG0xX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdThtNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtNF91OG0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191OG04X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWYyX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY0X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtMV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bTJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bTJfdTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MTZtNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bWYyX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtMV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybTJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTJfdTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtZjJfdTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG0xX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTJfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG00X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG00X3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG04X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG0xX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTFfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0xX2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG00X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG04X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bThfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG04X2k4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bWYyX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaThtZjRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bWY4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaThtZjhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kxNm00X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWYyX2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWY0X2kxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0xX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMl9pMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtNF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtNF9pMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybThfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kzMm04X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm1mMl9pMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtMl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTRfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bThfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0yX2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xX20oKHZib29sMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xX20oKHZib29sMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjJfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG1mOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2k4bWY4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mOF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTFfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pMTZtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTFfaTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTRfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm00X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm04X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm04X2kzMm0xX20oKHZib29sMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm1mMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMTZtZjRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bWY0X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bWY0X2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTMybTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTMybTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm00X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm04X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtZjJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybWYyX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm1mMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybWYyX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bTFfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTFfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtMV91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG0yX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTJfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bTRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG00X3UxNm0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG04X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtOF91MTZtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG1mMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mMl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bWY0X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG1mNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY0X3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtZjhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjhfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTFfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bTFfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMV91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm0yX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm0yX3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtNF91MzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bThfdTMybTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bWY0X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTFfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMV91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm00X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTRfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm04X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm04X3U2NG0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtZjJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm1mMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybWYyX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybWYyX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtbm90X21fYjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW5vdF9tX2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3RfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1ub3RfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztbm90X21fYjIoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbm90X21fYjEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW5vdF9tX2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztbm90X21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1ub3RfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2IzMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbm90X21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3RfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTEoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTIoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTQoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTgoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mMigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bWY0KCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjgoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtMSgodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtOCgodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTEoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtMigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm00KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTgoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTEoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG00KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aWRfdl9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k4bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG04X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG1mOCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm00KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k2NG00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bTIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91OG0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U4bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtMSgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UxNm00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm00KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtOCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm04X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91NjRtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91NjRtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U2NG00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfeF9zX2k4bTFfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG0xX2k4KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pOG0yX2k4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtMl9pOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfaThtNF9pOChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX2k4bTRfaTgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX2k4bThfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG04X2k4KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pOG1mMl9pOChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX2k4bWYyX2k4KCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfaThtZjRfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG1mNF9pOCgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX2k4bWY4X2k4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjhfaTgoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtMV9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMV9pMTYoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtMl9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMl9pMTYoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtNF9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtNF9pMTYoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtOF9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtOF9pMTYoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtZjJfaTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWYyX2kxNigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtZjRfaTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWY0X2kxNigodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtMV9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtMV9pMzIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtMl9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtMl9pMzIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtNF9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtNF9pMzIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtOF9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtOF9pMzIoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtZjJfaTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybWYyX2kzMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtMV9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtMV9pNjQoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtMl9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtMl9pNjQoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtNF9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtNF9pNjQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtOF9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtOF9pNjQoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG0xX3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMV91OCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U4bTJfdTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191OG0yX3U4KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdThtNF91OChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U4bTRfdTgoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG04X3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtOF91OCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U4bWYyX3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtZjJfdTgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdThtZjRfdTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191OG1mNF91OCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG1mOF91OChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U4bWY4X3U4KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UxNm0xX3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm0xX3UxNigodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MTZtMl91MTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191MTZtMl91MTYoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTE2bTRfdTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bTRfdTE2KCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UxNm04X3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm04X3UxNigodnVpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MTZtZjJfdTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bWYyX3UxNigodnVpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTE2bWY0X3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mNF91MTYoKHZ1aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UzMm0xX3UzMihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm0xX3UzMigodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MzJtMl91MzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtMl91MzIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTMybTRfdTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybTRfdTMyKCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UzMm04X3UzMihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm04X3UzMigodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MzJtZjJfdTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybWYyX3UzMigodnVpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTY0bTFfdTY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bTFfdTY0KCh2dWludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U2NG0yX3U2NChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U2NG0yX3U2NCgodnVpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191NjRtNF91NjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtNF91NjQoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTY0bThfdTY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bThfdTY0KCh2dWludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bXZfc194X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMigodmludDhtMl90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bTEoKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtNCgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bTgoKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjQoKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjgoKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTIoKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtNCgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm1mMigodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjQoKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMigodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtNCgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm1mMigodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG00KCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG00KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG04KCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG1mNCgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtMigodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTQoKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtMSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtMSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtOCgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZnZXRfdl9pOG0yX2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaThtMl9pOG0xKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k4bTRfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pOG00X2k4bTEoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaThtOF9pOG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtMSgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMTZtMl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtMl9pMTZtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTE2bTRfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTEoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kxNm04X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0xKCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMzJtMl9pMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtMl9pMzJtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybTRfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybTRfaTMybTEoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kzMm04X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm04X2kzMm0xKCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pNjRtMl9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtMl9pNjRtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTY0bTRfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTY0bTRfaTY0bTEoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG04X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0xKCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG0yX3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtMl91OG0xKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG00X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtNF91OG0xKCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG04X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtOF91OG0xKCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtMl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtMl91MTZtMSgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UxNm00X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0xKCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTE2bThfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bThfdTE2bTEoKHZ1aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MzJtMl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MzJtMl91MzJtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm00X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0xKCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTMybThfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybThfdTMybTEoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91NjRtMl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtMl91NjRtMSgodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3U2NG00X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG00X3U2NG0xKCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTY0bThfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTEoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pOG00X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0yKCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k4bThfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pOG04X2k4bTIoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTE2bTRfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kxNm04X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0yKCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMzJtNF9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtNF9pMzJtMigodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybThfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTIoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG00X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG00X2k2NG0yKCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pNjRtOF9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtOF9pNjRtMigodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdThtNF91OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U4bTRfdThtMigodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdThtOF91OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtMigodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTE2bTRfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bTRfdTE2bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtOF91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMigodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm00X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0yKCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTMybThfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybThfdTMybTIoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91NjRtNF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtNF91NjRtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3U2NG04X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG04X3U2NG0yKCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaThtOF9pOG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtNCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMTZtOF9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtOF9pMTZtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybThfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTQoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG04X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG04X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtOF91OG00KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtOF91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtNCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm04X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm00KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTY0bThfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTQoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXRfdl9pOG0xX2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTFfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm0xX2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pNjRtMV9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdThtMV91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfdThtMV91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTE2bTFfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MTZtMV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTMybTFfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MzJtMV91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTY0bTFfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91NjRtMV91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaThtMV9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k4bTJfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTJfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMTZtMV9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTJfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm0xX2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMzJtMl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0yX2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTY0bTFfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pNjRtMV9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k2NG0yX2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTJfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0xX3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0xX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0yX3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMV91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0xX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0yX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMV91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0xX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0yX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMV91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0xX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0yX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pOG0xX2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaThtMl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaThtMl9pOG04KCh2aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k4bTRfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTRfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDhtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMTZtMV9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTJfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kxNm00X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTRfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMzJtMV9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTMybTJfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMzJtMl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm00X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTRfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pNjRtMV9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTY0bTJfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pNjRtMl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k2NG00X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTRfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0xX3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0xX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0yX3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG00X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG00X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMV91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0xX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0yX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtNF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm00X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMV91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0xX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0yX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtNF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm00X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMV91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0xX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0yX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtNF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG00X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpKQojZGVmaW5lIHZzb3hlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG04KCh1aW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm04KChjb25zdCBpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtOCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybWYyKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOF92X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl9pOG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl9pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X2k4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bWY4KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfdThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtNCgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG04KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG00KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5lZ192X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTQoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTgoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5vdF92X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1tdl9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW12X21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW12X21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbXZfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iMigodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1tdl9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW12X21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbXZfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW12X21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1tdl9tX2I2NChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTIoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtNCgodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm04KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mNCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMSgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm1mMigodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtNCgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mNCgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtZjIoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTgoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtZjIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTgoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlOF92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NF92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtMSgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtOCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsdXhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmaXJzdF9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmaXJzdF9tX2I4X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zmlyc3RfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zmlyc3RfbV9iMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmaXJzdF9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjEoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmaXJzdF9tX2IxX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjE2X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjMyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjY0X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMV92X2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2I4KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2I0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IyKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IxKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTFfdl9iMTYoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxX3ZfYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IzMigoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTFfdl9iNjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxX3ZfYjY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjJfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mMl9pOG0xKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY0X2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtMSgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTEoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMSgodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtMSgodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtMSgodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtZjIoKHZpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjhfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtZjIoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bWYyKCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mOF9pOG1mNCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG0xX2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG0yKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjJfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mMl9pOG0yKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY0X2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtMigodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTIoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTIoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtMigodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybTFfaTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybTFfaTMybTIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTIoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtMV9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTFfaThtNCgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bTJfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG0yX2k4bTQoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mMl9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTQoKHZpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mNF9pOG00KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY4X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtNCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMV9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMV9pMTZtNCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMl9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMl9pMTZtNCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjJfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm00KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm00KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMV9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtNCgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMl9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMl9pMzJtNCgodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtZjJfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm00KCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMV9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMV9pNjRtNCgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMl9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMl9pNjRtNCgodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG0xX2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG04KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtMl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTJfaThtOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bTRfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG00X2k4bTgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mMl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTgoKHZpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mNF9pOG04KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY4X2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtOCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMV9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMV9pMTZtOCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMl9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMl9pMTZtOCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtNF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtNF9pMTZtOCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjJfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm04KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjRfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm04KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMV9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtOCgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMl9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMl9pMzJtOCgodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtNF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtNF9pMzJtOCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtZjJfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm04KCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMV9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMV9pNjRtOCgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMl9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMl9pNjRtOCgodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtNF9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtNF9pNjRtOCgodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTEoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtMSgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG0xKCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0xKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMSgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm1mMl91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTEoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mNF91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG1mMigodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjhfdThtZjIoKHZ1aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm1mNF91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm1mMigodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY4X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bWY0KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG0xX3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtMV91OG0yKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWYyX3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjJfdThtMigodnVpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjRfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG0yKCh2dWludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mOF91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bTIoKHZ1aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0yKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMigodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0xX3UzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm0yKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtZjJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm0yKCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTIoKHZ1aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bTFfdThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG0xX3U4bTQoKHZ1aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtMl91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtNCgodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTQoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtNCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG00KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtMV91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtMV91MTZtNCgodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm1mMl91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjJfdTE2bTQoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjRfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm00KCh2dWludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTMybTFfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTFfdTMybTQoKHZ1aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0yX3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0yX3UzMm00KCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtZjJfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm00KCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQoKHZ1aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U2NG0yX3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG0yX3U2NG00KCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG0xX3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtMV91OG04KCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bTJfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG0yX3U4bTgoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtNF91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTRfdThtOCgodnVpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtOCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG04KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtMV91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtMV91MTZtOCgodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm00X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm00X3UxNm04KCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm04KCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtOCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0xX3UzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm04KCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtMl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMl91MzJtOCgodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTMybTRfdTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTRfdTMybTgoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm1mMl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTgoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91NjRtMV91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMV91NjRtOCgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U2NG00X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG00X3U2NG04KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTFfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWYyKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mMigodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjIoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bThfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWYyKCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtZjIoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtMV9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtMV9pMzJtZjIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtMl9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtMl9pMzJtZjIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtZjIoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMV9pOG1mNCgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtMl9pOG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtZjQoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTRfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bWY0KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG1mNCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtZjJfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mMl9pOG1mNCgodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0xX2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0xX2kxNm1mNCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0yX2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0yX2kxNm1mNCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm00X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm1mNCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm04X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm04X2kxNm1mNCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm1mMl9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtZjJfaTE2bWY0KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTFfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY4KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bThfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY4KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG1mMl9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bWYyX2k4bWY4KCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtZjRfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mNF9pOG1mOCgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTJfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtMSgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG0xKCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTEoKHZpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0yX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bTEoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0xKCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMSgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kzMm0yX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTJfaTMybTEoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm00X2kzMm0xKCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTMybThfaTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMSgodmludDMybThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k2NG0yX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bTJfaTY0bTEoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k2NG00X2k2NG0xKCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtMSgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTRfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtMigodmludDhtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtOF9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG0yKCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0yKCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMigodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kzMm00X2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTRfaTMybTIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm0yKCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bTRfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMigodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k2NG04X2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTIoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTQoKHZpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm04X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTQoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm00KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtNCgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTFfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWYyKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtMl91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTJfdThtZjIoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mMigodnVpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bThfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bWYyKCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWYyKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm0yX3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjIoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWYyKCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm0xX3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0xX3UzMm1mMigodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtZjIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybTRfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybTRfdTMybWYyKCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm04X3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm1mMigodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mNCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTJfdThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY0KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtNF91OG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTRfdThtZjQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mNCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bWYyX3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtZjJfdThtZjQoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWY0KCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm0yX3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mNCgodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWY0KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm1mMl91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtZjJfdTE2bWY0KCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mOCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTJfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY4KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtNF91OG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTRfdThtZjgoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mOCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bWYyX3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtZjJfdThtZjgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtZjRfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mNF91OG1mOCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTEoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTEoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm0xKCh2dWludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm00X3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTRfdTE2bTEoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtMSgodnVpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0yX3UzMm0xKCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm00X3UzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybTRfdTMybTEoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybThfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMSgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91NjRtMl91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG0yX3U2NG0xKCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U2NG00X3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTY0bTRfdTY0bTEoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMSgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTIoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm0yKCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm04X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bTIoKHZ1aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybTRfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtNF91MzJtMigodnVpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm0yKCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U2NG00X3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTY0bTRfdTY0bTIoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMigodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTQoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm00KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm04X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybThfdTMybTQoKHZ1aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtNCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdm1hbmRfbW1fYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kX21tX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZF9tbV9iNCgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZF9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjIoKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRfbW1fYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kX21tX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjE2KCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZF9tbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZF9tbV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZG5vdF9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRub3RfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZG5vdF9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRub3RfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWNscl9tX2I4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2I0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IxKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IxNihvcDApIFwKX19idWlsdGluX3J2dl92bWNscl9tX2IxNigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZtY2xyX21fYjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjMyKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1jbHJfbV9iNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm1jbHJfbV9iNjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bW5hbmRfbW1fYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iNCgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjE2KCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1uYW5kX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbmFuZF9tbV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjgoKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1ub3JfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbm9yX21tX2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5vcl9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjEoKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1ub3JfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbm9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjY0KCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3JfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjIoKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9ybm90X21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcm5vdF9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9ybm90X21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JmX21fYjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmZfbV9iNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2JmX21fYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiZl9tX2IyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMigodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zYmZfbV9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JmX21fYjEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmZfbV9iMTYob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2JmX21fYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JmX21fYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiZl9tX2I2NChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zYmZfbV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zZXRfbV9iOChvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2I4KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iNChvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2I0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMihvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IyKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMShvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IxKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXRfbV9iMTYoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bXNldF9tX2IzMihvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IzMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZtc2V0X21fYjY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2V0X21fYjY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zaWZfbV9iOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNpZl9tX2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zaWZfbV9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2lmX21fYjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNpZl9tX2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zaWZfbV9iMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjEoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNpZl9tX2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zaWZfbV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zaWZfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IzMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2lmX21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNpZl9tX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iOCgodmJvb2w4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc29mX21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNvZl9tX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zb2ZfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjIoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc29mX21fYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMSgodmJvb2wxX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc29mX21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNvZl9tX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2IzMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zb2ZfbV9iNjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2I2NCgodmJvb2w2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc29mX21fYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZteG5vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhub3JfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhub3JfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14bm9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhvcl9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14b3JfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhvcl9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14b3JfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iOCgodmJvb2w4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnBvcGNfbV9iNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZwb3BjX21fYjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZwb3BjX21fYjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2cG9wY19tX2IyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMSgodmJvb2wxX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnBvcGNfbV9iMTYob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZwb3BjX21fYjE2X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2IzMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iMzJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZwb3BjX21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2cG9wY19tX2I2NF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kxNm0xKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMl9pMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX2kxNm0yKCh2aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtNF9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X2kxNm00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kxNm04KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX2kxNm1mMigodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pOG1mNF9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjRfaTE2bWY0KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0xX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2kxNm0xKCh2aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2kxNm0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2kxNm00KCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm04X2kxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2kxNm04KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2kxNm1mMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaTE2bTEoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaTE2bTIoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaTE2bTQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bThfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bThfaTE2bTgoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kzMm0xKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX2kzMm0yKCh2aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtNF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X2kzMm00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kzMm04KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX2kzMm1mMigodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMV9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMV9pMzJtMSgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMl9pMzJtMigodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtNF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF9pMzJtNCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtOF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtOF9pMzJtOCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl9pMzJtZjIoKHZpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0xX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0xX2kzMm0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX2kzMm0yKCh2aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG00X2kzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X2kzMm00KCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG04X2kzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG04X2kzMm04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTFfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMV9pNjRtMSgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTJfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pNjRtMigodmludDhtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTRfaTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtNF9pNjRtNCgodmludDhtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bThfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtOF9pNjRtOCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0xX2k2NG0xKCh2aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0yX2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2k2NG0yKCh2aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm00X2k2NG00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X2k2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm04X2k2NG04KCh2aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0xX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k2NG0xKCh2aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0yX2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2k2NG0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2k2NG00KCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm04X2k2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k2NG04KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaThtMSgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMl9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2k4bTIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF9pOG00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaThtOCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjJfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjRfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWY0X2k4bWY0KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMV9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k4bTEoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTJfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl9pOG0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaThtNCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtOF9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k4bTgoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2k4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9pOG1mMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pOG0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaThtMigodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtNF9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X2k4bTQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bThfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pOG04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTFfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX2k4bTEoKHZ1aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMl9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTJfaThtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtNF9pOG00KCh2dWludDhtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bThfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X2k4bTgoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtZjJfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtZjJfaThtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWY0X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY0X2k4bWY0KCh2dWludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG1mOF9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mOF9pOG1mOCgodnVpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTFfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfaTE2bTEoKHZ1aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0yX2kxNm0yKCh2dWludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtNF9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF9pMTZtNCgodnVpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bThfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfaTE2bTgoKHZ1aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2kxNm1mMigodnVpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm1mNF9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X2kxNm1mNCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0xX2kzMm0xKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl9pMzJtMigodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTRfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfaTMybTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X2kzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm04X2kzMm04KCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl9pMzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV9pNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV9pNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfaTY0bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2k2NG00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF9pNjRtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UxNm0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91MTZtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTE2bTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UxNm04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWYyX3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MTZtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mNF91MTZtZjQoKHZ1aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0xX3UxNm0xKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMigodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTE2bTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm04X3UxNm04KCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtZjJfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91MTZtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91MTZtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTE2bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UxNm00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91MTZtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UzMm0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91MzJtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTMybTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UzMm04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWYyX3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MzJtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91MzJtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTMybTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X3UzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3UzMm04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mMl91MzJtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91MzJtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UzMm00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91MzJtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3U2NG0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91NjRtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTY0bTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3U2NG04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3U2NG0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTY0bTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3U2NG04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTJfdTY0bTIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3U2NG00KCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTFfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMV91OG0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0yX3U4bTIoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm00X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdThtNCgodnVpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bThfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtOF91OG04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3U4bWYyKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF91OG1mNCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfdThtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91OG0yKCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtNF91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3U4bTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfdThtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybWYyX3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91OG1mMigodnVpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG0xX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTFfdThtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl91OG0yKCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtNF91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3U4bTQoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG04X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bThfdThtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV91OG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTFfdThtMSgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX3U4bTIoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pOG00X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtNF91OG00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bThfdThtOCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWYyX3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX3U4bWYyKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWY4X3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY4X3U4bWY4KCh2aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0xX3UxNm0xKCh2aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKCh2aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm00X3UxNm00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm04X3UxNm04KCh2aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm1mMl91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX3UxNm1mMigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfdTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMV91MzJtMSgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMigodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtNF91MzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtNF91MzJtNCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtOF91MzJtOCgodmludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl91MzJtZjIoKHZpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0xX3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0xX3U2NG0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX3U2NG0yKCh2aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X3U2NG00KCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG04X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG04X3U2NG04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZzZTFfdl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2I4KCh1aW50OF90ICopKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxX3ZfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNCgodWludDhfdCAqKShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMV92X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxX3ZfYjIoKHVpbnQ4X3QgKikob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTFfdl9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2IxKCh1aW50OF90ICopKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxX3ZfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxX3ZfYjE2KCh1aW50OF90ICopKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMV92X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2IzMigodWludDhfdCAqKShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTFfdl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNjQoKHVpbnQ4X3QgKikob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0yKCh2aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTQoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm00KCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMigodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0xKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtNCgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm04KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTEoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0yKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtNCgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG04KCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMSgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY4X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG0yKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjhfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTQoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtOCgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG0xKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtMigpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG04KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2k4bWYyKCkKI2RlZmluZSB2dW5kZWZpbmVkX2k4bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaThtZjgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pOG1mOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX2kxNm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTE2bTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTE2bTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMTZtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX2kxNm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm1mMigpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtZjQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMTZtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTMybTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMzJtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kzMm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2kzMm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTMybTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTMybTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMzJtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pNjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pNjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2k2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2k2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pNjRtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG0xKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtMigpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG04KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3U4bWYyKCkKI2RlZmluZSB2dW5kZWZpbmVkX3U4bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdThtZjgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91OG1mOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX3UxNm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTE2bTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTE2bTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MTZtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX3UxNm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm1mMigpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtZjQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MTZtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTMybTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MzJtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UzMm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX3UzMm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTMybTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTMybTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MzJtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91NjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91NjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3U2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX3U2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91NjRtOCgpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm00KCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMSgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTgoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtZjIoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMSgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm0yKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTQoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtOCgodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xKCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjRfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTQoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtOCgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTEoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmOF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMigodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG00KCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTgoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojaWYgZGVmaW5lZChfX3Jpc2N2X2YpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtNCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtNCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtOCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXZfdl92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhZGRfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192Zl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFic192X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhYnNfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMigodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm1mMigodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybTEoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtOCgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtMSgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtMigoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtNCgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtOCgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjMybWYyKChmbG9hdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybTFfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm0xX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTFfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybTJfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMl9mMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtNF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtOF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybThfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtOF9mMzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybWYyX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXZfZl9zX2YzMm0xX2YzMihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtMV9mMzIoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMzJtMl9mMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjMybTJfZjMyKCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjMybTRfZjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm00X2YzMigodmZsb2F0MzJtNF90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YzMm04X2YzMihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtOF9mMzIoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMzJtZjJfZjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm1mMl9mMzIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9zX2ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTEoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtOCgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTJfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTJfZjMybTEoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTRfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTRfZjMybTEoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTEoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTRfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTRfZjMybTIoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTIoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V0X3ZfZjMybTFfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMzJtMV9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMzJtMV9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YzMm0yX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjMybTJfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNldF92X2YzMm0xX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjMybTFfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjMybTJfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMzJtMl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMzJtNF9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm00X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMikpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm04X20oKHZib29sNF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtOCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZuZWdfdl9mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5lZ192X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmVnX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjbGFzc192X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjbGFzc192X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTIoKHZ1aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTEoKHZ1aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0yKCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtNCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bWY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMigodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtNCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtMSgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtNCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVjN192X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybWYyKCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0yKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtZjIoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm00KCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG00KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeF9mX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG00KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtZjJfZjMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0xKCh2ZmxvYXQzMm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0xX2YzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0xX2YzMm0yKCh2ZmxvYXQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtMigodmZsb2F0MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtMV9mMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMV9mMzJtNCgodmZsb2F0MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0yX2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm00KCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtNCgodmZsb2F0MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtMV9mMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMV9mMzJtOCgodmZsb2F0MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0yX2YzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm04KCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybTRfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTRfZjMybTgoKHZmbG9hdDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtZjJfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm04KCh2ZmxvYXQzMm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjMybTFfZjMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTFfZjMybWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtZjIoKHZmbG9hdDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YzMm00X2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm1mMigodmZsb2F0MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjMybThfZjMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybThfZjMybWYyKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtNF9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0xKCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm0xKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtNF9mMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0yKCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm0yKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm00KCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTFfZjMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfZjMybTEoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTJfZjMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfZjMybTIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybThfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfZjMybTgoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtZjJfZjMybWYyKCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfZjMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTJfZjMybTIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm00X2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X2YzMm00KCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybWYyX2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfZjMybWYyKCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybTFfaTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTFfaTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtMl9pMzJtMigodmZsb2F0MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YzMm00X2kzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X2kzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybThfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybThfaTMybTgoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl9pMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybTFfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTFfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtMl91MzJtMigodmZsb2F0MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YzMm00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X3UzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybThfdTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybThfdTMybTgoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl91MzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMzJtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX2YzMm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjMybTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjMybTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMzJtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMzJtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX2YzMm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm1mMigpCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9kKQojZGVmaW5lIHZsc2U2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG04KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG04KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXZfdl92X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhYnNfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWZlcV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTEoKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTgoKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChkb3VibGUpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mNjRtNCgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm12X3ZfZl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfdl9mX2Y2NG0xKChkb3VibGUpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mNjRtMigoZG91YmxlKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbXZfdl9mX2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjY0bTQoKGRvdWJsZSkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm12X3ZfZl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfdl9mX2Y2NG04KChkb3VibGUpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG0xX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMV9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG0xX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG0yX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtOF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG04X2Y2NG0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXZfZl9zX2Y2NG0xX2Y2NChvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtMV9mNjQoKHZmbG9hdDY0bTFfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mNjRtMl9mNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjY0bTJfZjY0KCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjY0bTRfZjY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG00X2Y2NCgodmZsb2F0NjRtNF90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2Y2NG04X2Y2NChvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtOF9mNjQoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTEoKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2Y2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mNjRtNCgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTgoKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZnZXRfdl9mNjRtMl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtMl9mNjRtMSgodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtNF9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtNF9mNjRtMSgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtMSgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtNF9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtNF9mNjRtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtMigodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtNCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXRfdl9mNjRtMV9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2Y2NG0xX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjY0bTFfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjY0bTJfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mNjRtMl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mNjRtMV9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2Y2NG0yX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjY0bTJfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjY0bTRfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mNjRtNF9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjbGFzc192X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjbGFzc192X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjIoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTQoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm0yKCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0yKCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVjN192X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMSgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTQoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG04KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtOCgodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bG11bF9leHRfdl9mNjRtMV9mNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtMigodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2Y2NG0xX2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0xX2Y2NG00KCh2ZmxvYXQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTQoKHZmbG9hdDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mNjRtMV9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtOCgodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2Y2NG0yX2Y2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0yX2Y2NG04KCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjY0bTRfZjY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTRfZjY0bTgoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG0yX2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTJfZjY0bTEoKHZmbG9hdDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG00X2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTEoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTEoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG00X2Y2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTIoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTIoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTQoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMSgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtMl9mNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9mNjRtMigodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtNF9mNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9mNjRtNCgodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOCgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV9mNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV9mNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfZjY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfZjY0bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2Y2NG00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF9mNjRtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bTFfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTFfaTY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtMl9pNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtMl9pNjRtMigodmZsb2F0NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2Y2NG00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG00X2k2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bThfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bThfaTY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtMV91NjRtMSgodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2Y2NG0yX3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG0yX3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtOF91NjRtOCgodmZsb2F0NjRtOF90KShvcDApKQojZGVmaW5lIHZ1bmRlZmluZWRfZjY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mNjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mNjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2Y2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2Y2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mNjRtOCgpCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9mKSAmJiBkZWZpbmVkKF9fcmlzY3ZfZCkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3d2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3dmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtMV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybTFfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtMV9mNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtMl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtMl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybTRfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTRfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtOF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm04X2Y2NG0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtZjJfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm1mMl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0xX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm00X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm1mMl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtZjIoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTIoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTQoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTEoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX2Zfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX2Zfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X3pmaCkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtOCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtZjQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTEoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTEoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0yKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm00KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm04KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdl92X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92dl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFic192X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhYnNfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtMSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtMigodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bTgoKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm1mNCgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtMSgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtMigoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtNCgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtOCgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjE2bWYyKChfRmxvYXQxNikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm12X3ZfZl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtZjQoKF9GbG9hdDE2KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtMV9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTFfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMV9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm04X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm1mMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjRfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm12X2Zfc19mMTZtMV9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bTFfZjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjE2bTJfZjE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YxNm0yX2YxNigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YxNm00X2YxNihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtNF9mMTYoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMTZtOF9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bThfZjE2KCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjE2bWYyX2YxNihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtZjJfZjE2KCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YxNm1mNF9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWY0X2YxNigodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2Zm12X3NfZl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm1mNCgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTJfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTJfZjE2bTEoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTRfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTRfZjE2bTEoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTEoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTRfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTRfZjE2bTIoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTQoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V0X3ZfZjE2bTFfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMTZtMV9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YxNm0xX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YxNm0yX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjE2bTJfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjE2bTFfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMTZtMl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YxNm0yX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YxNm00X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjE2bTRfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm04KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm04KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm00KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtZjQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5lZ192X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0yKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtOCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtZjQoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTEoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0yKCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjQoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTIoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mNCgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWYyKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMigodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtNCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG1mNCgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMigodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtNCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0KCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG1mMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG0yKCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTQoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWY0KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtMSgodnVpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTIoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00KCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOCgodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeF9mX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mMl9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjJfZjE2bTEoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjRfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtZjIoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjJfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm0yKCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjRfZjE2bTIoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTQoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtMl9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMl9mMTZtNCgodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mMl9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjJfZjE2bTQoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtNCgodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtMV9mMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMV9mMTZtOCgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm0yX2YxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0yX2YxNm04KCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTRfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTRfZjE2bTgoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjJfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm04KCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mNF9mMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjRfZjE2bTgoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm0yX2YxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm1mMigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIoKHZmbG9hdDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm0xX2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0xX2YxNm1mNCgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm04X2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm1mNCgodmZsb2F0MTZtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bWYyX2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm1mMl9mMTZtZjQoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtMl9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm0xKCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0xKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm0xKCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0yKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm0yKCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm00KCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTFfZjE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfZjE2bTEoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTJfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfZjE2bTIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bThfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfZjE2bTgoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2YxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjJfZjE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjRfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mNF9mMTZtZjQoKHZpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX2YxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX2YxNm0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl9mMTZtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X2YxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X2YxNm04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mMl9mMTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjRfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF9mMTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtMV9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMV9pMTZtMSgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm0yX2kxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bTRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTRfaTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtOF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtOF9pMTZtOCgodmZsb2F0MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bWYyX2kxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtZjRfaTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF9pMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bTFfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTFfdTE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm00X3UxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bThfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bThfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtZjJfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mMl91MTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtZjRfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMTZtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YxNm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2YxNm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjE2bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMTZtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjE2bWY0KCkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96ZmgpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0xKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtZjIoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0xKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTFfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTFfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTJfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMl9mMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTRfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTRfZjMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtOF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtOF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm04X2YzMm0xX20oKHZib29sMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtZjJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm1mMl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm1mNF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWY0X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtZjRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtZjRfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTFfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjJfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mMigodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTIoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfenZhbW8pCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96dmFtbykKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpICYmIGRlZmluZWQoX19yaXNjdl96dmFtbykKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKI2RlZmluZSB2bG94c2VnMmVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgaW50NjRfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAodmludDY0bTFfdCkob3AxNSksICh2aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IGludDY0X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksICh2dWludDY0bTFfdCkob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChjb25zdCB1aW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtNCgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAodmludDY0bTFfdCkob3AxNSksICh2aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IGludDY0X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTIoKGludDhfdCAqKShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksICh2dWludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtNF9tKCh2dWludDhtNF90ICopKG9wMCksICh2dWludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksICh2dWludDhtNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHZpbnQ4bTJfdCkob3A3KSwgKHZpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc2ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtNF9tKCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksICh2aW50MTZtNF90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzdlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtNCgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNWU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzZlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnOGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAodmludDhtMl90KShvcDcpLCAodmludDhtMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmU4ZmZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAodmludDhtZjhfdCkob3AxNSksICh2aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZ1aW50OG1mMl90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTQoKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtNCgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtNCgodmludDhtNF90ICopKG9wMCksICh2aW50OG00X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtNCgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG00X20oKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKHZib29sMl90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHZ1aW50OG00X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHZ1aW50MzJtMV90KShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U2NGZmX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTY0ZmZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc1ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NGZmX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTQoKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZThfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlNjRmZl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl91MTZtNCgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm00X20oKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksICh2aW50MTZtMl90KShvcDcpLCAodmludDE2bTJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdnNzZWcyZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKHZpbnQxNm1mNF90KShvcDE1KSwgKHZpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtNF9tKCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2U2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDhtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQxNm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKHZpbnQ4bTFfdCkob3AxMyksICh2aW50OG0xX3QpKG9wMTQpLCAodmludDhtMV90KShvcDE1KSwgKHZpbnQ4bTFfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDMybThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAodnVpbnQ4bTJfdCkob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MzJtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQzMm00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2Ym9vbDhfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAodnVpbnQ4bTFfdCkob3AxMyksICh2dWludDhtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDMybTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksICh2dWludDhtZjhfdCkob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG04X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bThfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG04X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG04X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bThfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG04X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG04X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDY0bTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKHZpbnQ4bWYyX3QpKG9wMTUpLCAodmludDhtZjJfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bThfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTQoKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksICh2dWludDE2bWY0X3QpKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHZ1aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksICh2aW50MzJtMl90KShvcDcpLCAodmludDMybTJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAodnVpbnQzMm0xX3QpKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm00KCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksICh2aW50MzJtMV90KShvcDE1KSwgKHZpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKHZpbnQzMm1mMl90KShvcDE1KSwgKHZpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAodnVpbnQzMm1mMl90KShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNF9tKCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtNCgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgaW50NjRfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksICh2dWludDY0bTFfdCkob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChjb25zdCB1aW50NjRfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNCgodmludDhtNF90ICopKG9wMCksICh2aW50OG00X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNF9tKCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDhtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQxNm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKHZpbnQ4bTFfdCkob3AxMyksICh2aW50OG0xX3QpKG9wMTQpLCAodmludDhtMV90KShvcDE1KSwgKHZpbnQ4bTFfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDMybThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAodnVpbnQ4bTJfdCkob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MzJtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQzMm00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2Ym9vbDhfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAodnVpbnQ4bTFfdCkob3AxMyksICh2dWludDhtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDMybTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksICh2dWludDhtZjhfdCkob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG04X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bThfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG04X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG04X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bThfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG04X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG04X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDY0bTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKHZpbnQ4bWYyX3QpKG9wMTUpLCAodmludDhtZjJfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bThfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bTQoKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksICh2dWludDE2bWY0X3QpKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksICh2aW50MzJtMl90KShvcDcpLCAodmludDMybTJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAodnVpbnQzMm0xX3QpKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm00KCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksICh2aW50MzJtMV90KShvcDE1KSwgKHZpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKHZpbnQzMm1mMl90KShvcDE1KSwgKHZpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAodnVpbnQzMm1mMl90KShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikgJiYgZGVmaW5lZChfX3Jpc2N2X3p2bHNzZWcpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ2NG0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnOGUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAodmZsb2F0MzJtMl90KShvcDcpLCAodmZsb2F0MzJtMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ4bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDY0bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpICYmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKHZmbG9hdDY0bTJfdCkob3A3KSwgKHZmbG9hdDY0bTJfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTRfbSgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgZG91YmxlICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2c3NlZzJlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzZlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTY0ZmZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAodmZsb2F0NjRtMl90KShvcDcpLCAodmZsb2F0NjRtMl90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc2ZTY0ZmZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnN2U2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnOGU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAoY29uc3QgZG91YmxlICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU2NF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAodmZsb2F0NjRtMl90KShvcDcpLCAodmZsb2F0NjRtMl90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksIChjb25zdCBkb3VibGUgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksICh2ZmxvYXQ2NG0xX3QpKG9wMTUpLCAodmZsb2F0NjRtMV90KShvcDE2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKHZmbG9hdDY0bTJfdCkob3A3KSwgKHZmbG9hdDY0bTJfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTRfbSgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgZG91YmxlICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X3pmaCkgJiYgZGVmaW5lZChfX3Jpc2N2X3p2bHNzZWcpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTQoKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm00X20oKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAodmZsb2F0MTZtMl90KShvcDcpLCAodmZsb2F0MTZtMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MzJtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDMybTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQ2NG0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTUpLCAodmZsb2F0MTZtZjRfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bTQoKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm00X20oKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00KCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtNF9tKCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTUpLCAodmZsb2F0MTZtZjRfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm00KCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtNF9tKCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDMybTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAodmZsb2F0MTZtMl90KShvcDcpLCAodmZsb2F0MTZtMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDY0bTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50NjRtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojZGVmaW5lIF9fcmlzY3Zfdl9pbnRyaW5zaWNfb3ZlcmxvYWRpbmcgMQojZGVmaW5lIF9fcnZ2X292ZXJsb2FkZWQgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fb3ZlcmxvYWRhYmxlX18pKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTEpKSkKdmludDhtMV90IHZhZGQodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2YWRkKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yX20pKSkKdmludDhtMl90IHZhZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtNCkpKQp2aW50OG00X3QgdmFkZCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2YWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTgpKSkKdmludDhtOF90IHZhZGQodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZhZGQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2YWRkKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZhZGQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZhZGQodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2YWRkKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2YWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZhZGQodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZhZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFkZCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2YWRkKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdmFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFkZCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFkZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2YWRkKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFkZCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z2KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV92dih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z2KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3YWRkdV92dih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2d2FkZHVfdnYodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2FkZHVfdnYodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3YWRkdV92dih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2d2FkZHVfdnYodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3YWRkdV92dih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV92dih2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndhZGR1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV92dih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV92dih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3Z2KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV92dih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfdnYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdnYodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdnYodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2d2FkZHVfdnYodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3Z2KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ3YWRkdV92dih2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d2FkZHVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdndhZGR1X3Z2KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0yKSkpCnZ1aW50OG0yX3Qgdmx1eGVpOChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtNCkpKQp2dWludDhtNF90IHZsdXhlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTRfbSkpKQp2dWludDhtNF90IHZsdXhlaTgodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTgpKSkKdnVpbnQ4bThfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bHV4ZWk4KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxzZTY0KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bHNlNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsc2U2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxzZTY0KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm0yKSkpCnZvaWQgdnNzZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNCkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNzZTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTgpKSkKdm9pZCB2c3NlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mMikpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm0xKSkpCnZvaWQgdnNzZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm0yKSkpCnZvaWQgdnNzZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTQpKSkKdm9pZCB2c3NlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzZTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtOCkpKQp2b2lkIHZzc2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm04X20pKSkKdm9pZCB2c3NlMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMikpKQp2b2lkIHZzc2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm00KSkpCnZvaWQgdnNzZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm00X20pKSkKdm9pZCB2c3NlMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOCkpKQp2b2lkIHZzc2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOF9tKSkpCnZvaWQgdnNzZTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTIpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTQpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNzZTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOCkpKQp2b2lkIHZzc2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm04X20pKSkKdm9pZCB2c3NlMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm1mMikpKQp2b2lkIHZzc2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yKSkpCnZvaWQgdnNzZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTQpKSkKdm9pZCB2c3NlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtOCkpKQp2b2lkIHZzc2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtOF9tKSkpCnZvaWQgdnNzZTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzZTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTQpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzZTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTgpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOF9tKSkpCnZvaWQgdnNzZTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTEpKSkKdmludDhtMV90IHZsdXhlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMikpKQp2aW50OG0yX3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG0yX20pKSkKdmludDhtMl90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bHV4ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTRfbSkpKQp2aW50OG00X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0xKSkpCnZ1aW50OG0xX3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMikpKQp2dWludDhtMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bHV4ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG00X20pKSkKdnVpbnQ4bTRfdCB2bHV4ZWkxNih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMSkpKQp2aW50OG0xX3Qgdmx1eGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xX20pKSkKdmludDhtMV90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0yKSkpCnZpbnQ4bTJfdCB2bHV4ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bTJfbSkpKQp2aW50OG0yX3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMzIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsdXhlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtMSkpKQp2dWludDhtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bHV4ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTEpKSkKdmludDhtMV90IHZsdXhlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bHV4ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZsdXhlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpNjQoY29uc3QgaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtMSkpKQp2dWludDhtMV90IHZsdXhlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsdXhlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bHV4ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpNjQoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTgpKSkKdmludDE2bThfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdmx1eGVpOCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsdXhlaTgoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdmx1eGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsdXhlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdmx1eGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bHV4ZWk4KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZsdXhlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsdXhlaTgodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bHV4ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm00KSkpCnZpbnQxNm00X3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04KSkpCnZpbnQxNm04X3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsdXhlaTE2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bHV4ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsdXhlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdmx1eGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtMikpKQp2aW50MTZtMl90IHZsdXhlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZsdXhlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdmx1eGVpMzIoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpMzIoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bHV4ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2bHV4ZWk4KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpOChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZsdXhlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdmx1eGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsdXhlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsdXhlaTgodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bHV4ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTgpKSkKdmludDMybThfdCB2bHV4ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdmx1eGVpMTYodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bHV4ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdmx1eGVpMTYoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdmx1eGVpMTYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2bHV4ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdmx1eGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZsdXhlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsdXhlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdmx1eGVpMzIoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bHV4ZWk2NChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdmx1eGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsdXhlaTY0KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bHV4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdmx1eGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsdXhlaTgoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdmx1eGVpOChjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bHV4ZWkxNihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpMTYoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2bHV4ZWkxNihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsdXhlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bHV4ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bHV4ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3Qgdmx1eGVpMzIoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsdXhlaTMyKGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bHV4ZWkzMihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZsdXhlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bHV4ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpNjQoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTY0KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bHV4ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTEpKSkKdmludDhtMV90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMikpKQp2aW50OG0yX3QgdmxveGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bG94ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxveGVpOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTgpKSkKdmludDhtOF90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bG94ZWk4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bG94ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxveGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtMSkpKQp2dWludDhtMV90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG94ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG00KSkpCnZ1aW50OG00X3QgdmxveGVpOChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxveGVpOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtOCkpKQp2dWludDhtOF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bThfbSkpKQp2dWludDhtOF90IHZsb3hlaTgodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG94ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTIpKSkKdmludDhtMl90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNCkpKQp2aW50OG00X3QgdmxveGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG00X20pKSkKdmludDhtNF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bG94ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMSkpKQp2dWludDhtMV90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG94ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG00KSkpCnZ1aW50OG00X3QgdmxveGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxveGVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxveGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTEpKSkKdmludDhtMV90IHZsb3hlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMikpKQp2aW50OG0yX3QgdmxveGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG0yX20pKSkKdmludDhtMl90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsb3hlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bG94ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG94ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0yKSkpCnZ1aW50OG0yX3QgdmxveGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxveGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bG94ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG94ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxveGVpNjQoY29uc3QgaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bG94ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsb3hlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG94ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bG94ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsb3hlaTY0KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxveGVpNjQoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00KSkpCnZpbnQxNm00X3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm04KSkpCnZpbnQxNm04X3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsb3hlaTgodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG94ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsb3hlaTgoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxveGVpOCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsb3hlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxveGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmxveGVpOCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtOCkpKQp2dWludDE2bThfdCB2bG94ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bG94ZWk4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxveGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxveGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtMikpKQp2aW50MTZtMl90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bG94ZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOCkpKQp2aW50MTZtOF90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm04X20pKSkKdmludDE2bThfdCB2bG94ZWkxNih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxveGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG94ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2bG94ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bG94ZWkzMihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bG94ZWkzMihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxveGVpNjQoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsb3hlaTY0KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsb3hlaTY0KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsb3hlaTY0KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWk2NChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxveGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsb3hlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxveGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtOCkpKQp2dWludDMybThfdCB2bG94ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxveGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmxveGVpMTYoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmxveGVpMTYoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZsb3hlaTE2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxveGVpMTYoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bG94ZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsb3hlaTE2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxveGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsb3hlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2bG94ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bG94ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsb3hlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxveGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsb3hlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWk2NChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsb3hlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsb3hlaTY0KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtMSkpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xX20pKSkKdm9pZCB2c2U4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yKSkpCnZvaWQgdnNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bTJfbSkpKQp2b2lkIHZzZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bTQpKSkKdm9pZCB2c2U4KGludDhfdCAqIG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtNF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtOCkpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04X20pKSkKdm9pZCB2c2U4KHZib29sMV90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mMikpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjJfbSkpKQp2b2lkIHZzZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjQpKSkKdm9pZCB2c2U4KGludDhfdCAqIG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0X20pKSkKdm9pZCB2c2U4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY4KSkpCnZvaWQgdnNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsb3hlaTgoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxveGVpOChjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2bG94ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWkxNihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmxveGVpMTYoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2bG94ZWkxNihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bG94ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmxveGVpMzIoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsb3hlaTMyKGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG94ZWkzMihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsb3hlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmxveGVpNjQoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsb3hlaTY0KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTEpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0xX20pKSkKdm9pZCB2c2U4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTIpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0yX20pKSkKdm9pZCB2c2U4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTQpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG00X20pKSkKdm9pZCB2c2U4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTgpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG04X20pKSkKdm9pZCB2c2U4KHZib29sMV90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWYyKSkpCnZvaWQgdnNlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWYyX20pKSkKdm9pZCB2c2U4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjQpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mOCkpKQp2b2lkIHZzZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mOF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdndhZGR1X3d2KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3YWRkdV93dih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3d2KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV93dih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3YWRkdV93dih2dWludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3YodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndhZGR1X3d2KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndhZGR1X3d2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2FkZHVfd3YodnVpbnQxNm00X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2FkZHVfd3YodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ3YWRkdV93dih2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3YWRkdV93dih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfd3YodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV93dih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMSkpKQp2dWludDMybTFfdCB2d2FkZHVfd3YodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV93dih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdndhZGR1X3d2KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtNCkpKQp2dWludDMybTRfdCB2d2FkZHVfd3YodnVpbnQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdndhZGR1X3d2KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdndhZGR1X3d2KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ3YWRkdV93dih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3YWRkdV93dih2dWludDY0bTFfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndhZGR1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtMikpKQp2dWludDY0bTJfdCB2d2FkZHVfd3YodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ3YWRkdV93dih2dWludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d2FkZHVfd3YodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdndhZGR1X3d2KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3YWRkdV93dih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0xKSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0yKSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMl9tKSkpCnZvaWQgdnNzZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG00KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtNF9tKSkpCnZvaWQgdnNzZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG04KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtOF9tKSkpCnZvaWQgdnNzZTgodmJvb2wxX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG1mMikpKQp2b2lkIHZzc2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2U4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtMikpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTQpKSkKdm9pZCB2c3V4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG0yKSkpCnZvaWQgdnN1eGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2YWRkKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0xX20pKSkKdmludDhtMV90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMikpKQp2aW50OG0yX3QgdmFkZCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTQpKSkKdmludDhtNF90IHZhZGQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG04KSkpCnZpbnQ4bThfdCB2YWRkKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG04X20pKSkKdmludDhtOF90IHZhZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YWRkKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2YWRkKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2YWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YWRkKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZhZGQodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2YWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2YWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFkZCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmFkZCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFkZCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhZGQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFkZCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTQpKSkKdmludDMybTRfdCB2YWRkKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFkZCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFkZCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZhZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFkZCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2YWRkKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZhZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMSkpKQp2dWludDhtMV90IHZhZGQodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFkZCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2YWRkKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRkKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhZGQodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOCkpKQp2dWludDhtOF90IHZhZGQodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFkZCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YWRkKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRkKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2YWRkKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YWRkKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2YWRkKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGQodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFkZCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhZGQodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGQodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YWRkKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMikpKQp2dWludDMybTJfdCB2YWRkKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtNCkpKQp2dWludDMybTRfdCB2YWRkKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhZGQodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YWRkKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFkZCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFkZCh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkZCh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFkZCh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRkKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNCkpKQp2dWludDhtNF90IHZhZGQodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04KSkpCnZ1aW50OG04X3QgdmFkZCh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2YWRkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGQodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRkKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZhZGQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFkZCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGQodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhZGQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhZGQodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZhZGQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFkZCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2YWRkKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YWRkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFkZCh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGQodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhZGQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFkZCh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFkZCh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFkZCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtOCkpKQp2dWludDMybThfdCB2YWRkKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFkZCh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YWRkKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2YWRkKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2YWRkKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YWRkKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzdWIodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0yX20pKSkKdmludDhtMl90IHZzdWIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdnN1Yih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzdWIodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdnN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnN1Yih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c3ViKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnN1Yih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzdWIodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c3ViKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzdWIodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnN1Yih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c3ViKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnN1Yih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnN1Yih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZzdWIodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnN1Yih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTIpKSkKdm9pZCB2c3V4ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xX20pKSkKdmludDhtMV90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdnN1Yih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzdWIodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04KSkpCnZpbnQ4bThfdCB2c3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04X20pKSkKdmludDhtOF90IHZzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c3ViKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c3ViKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnN1Yih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnN1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzdWIodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnN1Yih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnN1Yih2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnN1Yih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnN1Yih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMSkpKQp2dWludDhtMV90IHZzdWIodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnN1Yih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c3ViKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3ViKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzdWIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtOCkpKQp2dWludDhtOF90IHZzdWIodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnN1Yih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c3ViKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c3ViKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c3ViKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c3ViKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c3ViKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzdWIodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnN1Yih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzdWIodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzdWIodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c3ViKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMikpKQp2dWludDMybTJfdCB2c3ViKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c3ViKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzdWIodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3ViKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnN1Yih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnN1Yih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnN1Yih2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnN1Yih2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3ViKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtNCkpKQp2dWludDhtNF90IHZzdWIodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04KSkpCnZ1aW50OG04X3QgdnN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c3ViKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzdWIodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c3ViKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzdWIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnN1Yih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzdWIodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzdWIodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzdWIodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnN1Yih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c3ViKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnN1Yih2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnN1Yih2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnN1Yih2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnN1Yih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2c3ViKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c3ViKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnN1Yih2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c3ViKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c3ViKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c3ViKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c3ViKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2cnN1Yih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bTIpKSkKdmludDhtMl90IHZyc3ViKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtNCkpKQp2aW50OG00X3QgdnJzdWIodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG00X20pKSkKdmludDhtNF90IHZyc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG04KSkpCnZpbnQ4bThfdCB2cnN1Yih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnJzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJzdWIodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZyc3ViKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZyc3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2cnN1Yih2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJzdWIodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnJzdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2cnN1Yih2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZyc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZyc3ViKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cnN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJzdWIodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2cnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTEpKSkKdmludDMybTFfdCB2cnN1Yih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTIpKSkKdmludDMybTJfdCB2cnN1Yih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyc3ViKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2cnN1Yih2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZyc3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZyc3ViKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJzdWIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cnN1Yih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZyc3ViKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZyc3ViKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZyc3ViKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZyc3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZyc3ViKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cnN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2cnN1Yih2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnJzdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2cnN1Yih2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnJzdWIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2cnN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnJzdWIodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyc3ViKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnJzdWIodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2cnN1Yih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyc3ViKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMikpKQp2dWludDE2bTJfdCB2cnN1Yih2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZyc3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2cnN1Yih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZyc3ViKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2cnN1Yih2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZyc3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyc3ViKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJzdWIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJzdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2cnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJzdWIodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyc3ViKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2cnN1Yih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyc3ViKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2cnN1Yih2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyc3ViKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyc3ViKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyc3ViKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2cnN1Yih2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJzdWIodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZyc3ViKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3YWRkdV92eCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3Z4KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d2FkZHVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z4KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndhZGR1X3Z4KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d2FkZHVfdngodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndhZGR1X3Z4KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2FkZHVfdngodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndhZGR1X3Z4KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d2FkZHVfdngodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfdngodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndhZGR1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndhZGR1X3Z4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d2FkZHVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV92eCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfdngodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3Z4KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV92eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV92eCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfdngodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdngodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3YWRkdV92eCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3Z4KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3YWRkdV92eCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d2FkZHVfdngodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndhZGR1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3YWRkdV92eCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d2FkZHVfdngodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92dih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92dih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdnYodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdnYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3c3VidV92dih2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3N1YnVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndzdWJ1X3Z2KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndzdWJ1X3Z2KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d3N1YnVfdnYodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3Z2KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d3N1YnVfdnYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfdnYodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3c3VidV92dih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2d3N1YnVfdnYodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3N1YnVfdnYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMikpKQp2dWludDMybTJfdCB2d3N1YnVfdnYodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndzdWJ1X3Z2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3c3VidV92dih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtOCkpKQp2dWludDMybThfdCB2d3N1YnVfdnYodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndzdWJ1X3Z2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3Z2KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndzdWJ1X3Z2KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3c3VidV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2d3N1YnVfdnYodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3Z2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3c3VidV92dih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92eCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndzdWJ1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndzdWJ1X3Z4KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3Z4KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndzdWJ1X3Z4KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfdngodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndzdWJ1X3Z4KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d3N1YnVfdngodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3Z4KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d3N1YnVfdngodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfdngodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndzdWJ1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3Z4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3N1YnVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3c3VidV92eCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d3N1YnVfdngodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndzdWJ1X3Z4KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3c3VidV92eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3c3VidV92eCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d3N1YnVfdngodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3N1YnVfdngodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3c3VidV92eCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndzdWJ1X3Z4KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3c3VidV92eCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d3N1YnVfdngodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3c3VidV92eCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d3N1YnVfdngodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d2FkZF92dih2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndhZGRfdnYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3YWRkX3Z2KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d2FkZF92dih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZ3YWRkX3Z2KHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMikpKQp2aW50MTZtMl90IHZ3YWRkX3Z2KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2d2FkZF92dih2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2FkZF92dih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfdnYodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndhZGRfdnYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndhZGRfdnYodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndhZGRfdnYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3YWRkX3Z2KHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2d2FkZF92dih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2d2FkZF92dih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3YWRkX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2d2FkZF92dih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3YWRkX3Z2KHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndhZGRfdnYodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndhZGRfdnYodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3YWRkX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ3YWRkX3Z2KHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndhZGRfdnYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3YWRkX3Z2KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZ3YWRkX3Z2KHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndhZGRfdnYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d2FkZF92eCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2FkZF92eCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d2FkZF92eCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndhZGRfdngodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3YWRkX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3YWRkX3Z4KHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3Z4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d2FkZF92eCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2FkZF92eCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfdngodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndhZGRfdngodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndhZGRfdngodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d2FkZF92eCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d2FkZF92eCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3YWRkX3Z4KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndhZGRfdngodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3YWRkX3Z4KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndhZGRfdngodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndhZGRfdngodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d2FkZF92eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d2FkZF92eCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3YWRkX3Z4KHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndhZGRfdngodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3YWRkX3Z4KHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndhZGRfdngodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3YWRkX3Z4KHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndhZGRfdngodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfdnYodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d3N1Yl92dih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d3N1Yl92dih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3c3ViX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2d3N1Yl92dih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfdnYodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndzdWJfdnYodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3c3ViX3Z2KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3Z2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z2KHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2d3N1Yl92dih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndzdWJfdnYodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2d3N1Yl92dih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndzdWJfdnYodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2d3N1Yl92dih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3c3ViX3Z2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3c3ViX3Z2KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d3N1Yl92dih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl92dih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3Z2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl92dih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl92dih2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3Z2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfdngodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndzdWJfdngodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfdngodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3c3ViX3Z4KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3N1Yl92eCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2d3N1Yl92eCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d3N1Yl92eCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfdngodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndzdWJfdngodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3c3ViX3Z4KHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3Z4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z4KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndzdWJfdngodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfdngodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTIpKSkKdmludDMybTJfdCB2d3N1Yl92eCh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3c3ViX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2d3N1Yl92eCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3c3ViX3Z4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZ3c3ViX3Z4KHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndzdWJfdngodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndzdWJfdngodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl92eCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3Z4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl92eCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl92eCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3Z4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d2FkZHVfd3godnVpbnQxNm1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d2FkZHVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3d4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndhZGR1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3godnVpbnQxNm0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMikpKQp2dWludDE2bTJfdCB2d2FkZHVfd3godnVpbnQxNm0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d2FkZHVfd3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3YWRkdV93eCh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3YWRkdV93eCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndhZGR1X3d4KHZ1aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndhZGR1X3d4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV93eCh2dWludDMybWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMSkpKQp2dWludDMybTFfdCB2d2FkZHVfd3godnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndhZGR1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV93eCh2dWludDMybTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3d4KHZ1aW50MzJtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV93eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV93eCh2dWludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfd3godmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfd3godnVpbnQ2NG0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndhZGR1X3d4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3YWRkdV93eCh2dWludDY0bTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d2FkZHVfd3godmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndhZGR1X3d4KHZ1aW50NjRtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3YWRkdV93eCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtOCkpKQp2dWludDY0bThfdCB2d2FkZHVfd3godnVpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndhZGR1X3d4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3YodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndzdWJ1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfd3YodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3d2KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3c3VidV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMikpKQp2dWludDE2bTJfdCB2d3N1YnVfd3YodnVpbnQxNm0yX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfd3YodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3c3VidV93dih2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3c3VidV93dih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d2KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3c3VidV93dih2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndzdWJ1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3c3VidV93dih2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtMikpKQp2dWludDMybTJfdCB2d3N1YnVfd3YodnVpbnQzMm0yX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndzdWJ1X3d2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3c3VidV93dih2dWludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d3N1YnVfd3YodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOCkpKQp2dWludDMybThfdCB2d3N1YnVfd3YodnVpbnQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndzdWJ1X3d2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3d2KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3N1YnVfd3YodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3c3VidV93dih2dWludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d3N1YnVfd3YodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3d2KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3c3VidV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtOCkpKQp2dWludDY0bThfdCB2d3N1YnVfd3YodnVpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndzdWJ1X3d2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3godnVpbnQxNm1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3N1YnVfd3godnVpbnQxNm0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3N1YnVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMikpKQp2dWludDE2bTJfdCB2d3N1YnVfd3godnVpbnQxNm0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfd3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3c3VidV93eCh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3c3VidV93eCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d4KHZ1aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3c3VidV93eCh2dWludDMybWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMSkpKQp2dWludDMybTFfdCB2d3N1YnVfd3godnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3c3VidV93eCh2dWludDMybTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d3N1YnVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTQpKSkKdnVpbnQzMm00X3QgdndzdWJ1X3d4KHZ1aW50MzJtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3c3VidV93eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3c3VidV93eCh2dWludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybThfbSkpKQp2dWludDMybThfdCB2d3N1YnVfd3godmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3N1YnVfd3godnVpbnQ2NG0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3d4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3c3VidV93eCh2dWludDY0bTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d3N1YnVfd3godmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3d4KHZ1aW50NjRtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3c3VidV93eCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtOCkpKQp2dWludDY0bThfdCB2d3N1YnVfd3godnVpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndzdWJ1X3d4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndhZGRfd3YodmludDE2bWY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3YWRkX3d2KHZpbnQxNm1mMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndhZGRfd3YodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d2FkZF93dih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndhZGRfd3YodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm00KSkpCnZpbnQxNm00X3QgdndhZGRfd3YodmludDE2bTRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3YWRkX3d2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfd3YodmludDE2bThfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3YWRkX3d2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d2FkZF93dih2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndhZGRfd3YodmludDMybTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2d2FkZF93dih2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3YWRkX3d2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2d2FkZF93dih2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3YWRkX3d2KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndhZGRfd3YodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndhZGRfd3YodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndhZGRfd3YodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2d2FkZF93dih2aW50NjRtMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3YWRkX3d2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2d2FkZF93dih2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3YWRkX3d2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d2FkZF93dih2aW50NjRtOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndhZGRfd3godmludDE2bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2FkZF93eCh2aW50MTZtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndhZGRfd3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTEpKSkKdmludDE2bTFfdCB2d2FkZF93eCh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndhZGRfd3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndhZGRfd3godmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3d4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm00KSkpCnZpbnQxNm00X3QgdndhZGRfd3godmludDE2bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3YWRkX3d4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfd3godmludDE2bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3YWRkX3d4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d2FkZF93eCh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3YWRkX3d4KHZpbnQzMm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndhZGRfd3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3YWRkX3d4KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndhZGRfd3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3YWRkX3d4KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndhZGRfd3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04KSkpCnZpbnQzMm04X3QgdndhZGRfd3godmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04X20pKSkKdmludDMybThfdCB2d2FkZF93eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTEpKSkKdmludDY0bTFfdCB2d2FkZF93eCh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTIpKSkKdmludDY0bTJfdCB2d2FkZF93eCh2aW50NjRtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3YWRkX3d4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTQpKSkKdmludDY0bTRfdCB2d2FkZF93eCh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3YWRkX3d4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTgpKSkKdmludDY0bThfdCB2d2FkZF93eCh2aW50NjRtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3YWRkX3d4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfd3YodmludDE2bWY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d3N1Yl93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3c3ViX3d2KHZpbnQxNm1mMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfd3YodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndzdWJfd3YodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3N1Yl93dih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndzdWJfd3YodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfd3YodmludDE2bTRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3c3ViX3d2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm04KSkpCnZpbnQxNm04X3QgdndzdWJfd3YodmludDE2bThfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3d2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d3N1Yl93dih2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d3N1Yl93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndzdWJfd3YodmludDMybTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfd3YodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2d3N1Yl93dih2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2d3N1Yl93dih2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3c3ViX3d2KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndzdWJfd3YodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndzdWJfd3YodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndzdWJfd3YodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl93dih2aW50NjRtMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3d2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl93dih2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl93dih2aW50NjRtOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfd3godmludDE2bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d3N1Yl93eCh2aW50MTZtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfd3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTEpKSkKdmludDE2bTFfdCB2d3N1Yl93eCh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndzdWJfd3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndzdWJfd3godmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3c3ViX3d4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfd3godmludDE2bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3c3ViX3d4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm04KSkpCnZpbnQxNm04X3QgdndzdWJfd3godmludDE2bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3d4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d3N1Yl93eCh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3c3ViX3d4KHZpbnQzMm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfd3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3c3ViX3d4KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndzdWJfd3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3c3ViX3d4KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndzdWJfd3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04KSkpCnZpbnQzMm04X3QgdndzdWJfd3godmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04X20pKSkKdmludDMybThfdCB2d3N1Yl93eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTEpKSkKdmludDY0bTFfdCB2d3N1Yl93eCh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl93eCh2aW50NjRtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3d4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl93eCh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3d4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl93eCh2aW50NjRtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3d4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMikpKQp2aW50MTZtMl90IHZ3Y3Z0X3godmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdndjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00KSkpCnZpbnQxNm00X3QgdndjdnRfeCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2N2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTgpKSkKdmludDE2bThfdCB2d2N2dF94KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3Y3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZ3Y3Z0X3godmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3Y3Z0X3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2N2dF94KHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndjdnRfeCh2aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2N2dF94KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTIpKSkKdmludDMybTJfdCB2d2N2dF94KHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2d2N2dF94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZ3Y3Z0X3godmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3Y3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTgpKSkKdmludDMybThfdCB2d2N2dF94KHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm04X20pKSkKdmludDMybThfdCB2d2N2dF94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndjdnRfeCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndjdnRfeCh2aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtMikpKQp2aW50NjRtMl90IHZ3Y3Z0X3godmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdndjdnRfeCh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d2N2dF94KHZpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG04X20pKSkKdmludDY0bThfdCB2d2N2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndjdnRfeCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3Y3Z0X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mOCkpKQp2b2lkIHZzdXhlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTEpKSkKdmludDhtMV90IHZhZGModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTIpKSkKdmludDhtMl90IHZhZGModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTQpKSkKdmludDhtNF90IHZhZGModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTgpKSkKdmludDhtOF90IHZhZGModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFkYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtZjQpKSkKdmludDhtZjRfdCB2YWRjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG1mOCkpKQp2aW50OG1mOF90IHZhZGModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFkYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bTIpKSkKdmludDE2bTJfdCB2YWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm00KSkpCnZpbnQxNm00X3QgdmFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZhZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhZGModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWY0KSkpCnZpbnQxNm1mNF90IHZhZGModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybTEpKSkKdmludDMybTFfdCB2YWRjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtMikpKQp2aW50MzJtMl90IHZhZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kzMm00KSkpCnZpbnQzMm00X3QgdmFkYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZhZGModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZhZGModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTEpKSkKdmludDY0bTFfdCB2YWRjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZhZGModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG00KSkpCnZpbnQ2NG00X3QgdmFkYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTgpKSkKdmludDY0bThfdCB2YWRjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTEpKSkKdmludDhtMV90IHZhZGModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTIpKSkKdmludDhtMl90IHZhZGModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTQpKSkKdmludDhtNF90IHZhZGModmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTgpKSkKdmludDhtOF90IHZhZGModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFkYyh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pOG1mNCkpKQp2aW50OG1mNF90IHZhZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjgpKSkKdmludDhtZjhfdCB2YWRjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFkYyh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bTIpKSkKdmludDE2bTJfdCB2YWRjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm00KSkpCnZpbnQxNm00X3QgdmFkYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtOCkpKQp2aW50MTZtOF90IHZhZGModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhZGModmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFkYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFkYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTIpKSkKdmludDMybTJfdCB2YWRjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZhZGModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTgpKSkKdmludDMybThfdCB2YWRjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YWRjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTEpKSkKdmludDY0bTFfdCB2YWRjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pNjRtMikpKQp2aW50NjRtMl90IHZhZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k2NG00KSkpCnZpbnQ2NG00X3QgdmFkYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTgpKSkKdmludDY0bThfdCB2YWRjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWRjKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRjKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2YWRjKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFkYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2YWRjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFkYyh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtOCkpKQp2dWludDE2bThfdCB2YWRjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YWRjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YWRjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFkYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtMikpKQp2dWludDMybTJfdCB2YWRjKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZhZGModnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtOCkpKQp2dWludDMybThfdCB2YWRjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YWRjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkYyh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMikpKQp2dWludDY0bTJfdCB2YWRjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZhZGModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkYyh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWRjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRjKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRjKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTgpKSkKdnVpbnQ4bThfdCB2YWRjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFkYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFkYyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtOCkpKQp2dWludDE2bThfdCB2YWRjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YWRjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhZGModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFkYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtNCkpKQp2dWludDMybTRfdCB2YWRjKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTMybTgpKSkKdnVpbnQzMm04X3QgdmFkYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFkYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91NjRtMikpKQp2dWludDY0bTJfdCB2YWRjKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZhZGModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG0xX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faThtMl9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG04X2IxKSkpCnZib29sMV90IHZtYWRjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faThtZjJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTMybTFfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTMybThfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faThtMV9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG00X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faThtOF9iMSkpKQp2Ym9vbDFfdCB2bWFkYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm00X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm04X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1fdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm00X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pOG00X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bWFkYyh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pOG0yX2I0KSkpCnZib29sNF90IHZtYWRjKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtNF9iMikpKQp2Ym9vbDJfdCB2bWFkYyh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtYWRjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yKSkpCnZvaWQgdnN1eGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTgpKSkKdm9pZCB2c3V4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMikpKQp2b2lkIHZzdXhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTEpKSkKdmludDhtMV90IHZzYmModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTIpKSkKdmludDhtMl90IHZzYmModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTQpKSkKdmludDhtNF90IHZzYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTgpKSkKdmludDhtOF90IHZzYmModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtZjQpKSkKdmludDhtZjRfdCB2c2JjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG1mOCkpKQp2aW50OG1mOF90IHZzYmModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTIpKSkKdmludDE2bTJfdCB2c2JjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm00KSkpCnZpbnQxNm00X3QgdnNiYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZzYmModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYmModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYmModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTEpKSkKdmludDMybTFfdCB2c2JjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtMikpKQp2aW50MzJtMl90IHZzYmModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm00KSkpCnZpbnQzMm00X3QgdnNiYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZzYmModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZzYmModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTEpKSkKdmludDY0bTFfdCB2c2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZzYmModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNiYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTgpKSkKdmludDY0bThfdCB2c2JjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTEpKSkKdmludDhtMV90IHZzYmModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTIpKSkKdmludDhtMl90IHZzYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTQpKSkKdmludDhtNF90IHZzYmModmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTgpKSkKdmludDhtOF90IHZzYmModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNiYyh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pOG1mNCkpKQp2aW50OG1mNF90IHZzYmModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faThtZjgpKSkKdmludDhtZjhfdCB2c2JjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNiYyh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bTIpKSkKdmludDE2bTJfdCB2c2JjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm00KSkpCnZpbnQxNm00X3QgdnNiYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtOCkpKQp2aW50MTZtOF90IHZzYmModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYmModmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNiYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNiYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTIpKSkKdmludDMybTJfdCB2c2JjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZzYmModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTgpKSkKdmludDMybThfdCB2c2JjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2JjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTEpKSkKdmludDY0bTFfdCB2c2JjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pNjRtMikpKQp2aW50NjRtMl90IHZzYmModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNiYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTgpKSkKdmludDY0bThfdCB2c2JjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2JjKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2JjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2JjKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2c2JjKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNiYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2c2JjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNiYyh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYmModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtOCkpKQp2dWludDE2bThfdCB2c2JjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2JjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c2JjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNiYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MzJtMikpKQp2dWludDMybTJfdCB2c2JjKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZzYmModnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MzJtOCkpKQp2dWludDMybThfdCB2c2JjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2JjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNiYyh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91NjRtMikpKQp2dWludDY0bTJfdCB2c2JjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYmModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNiYyh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2JjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2JjKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2JjKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTgpKSkKdnVpbnQ4bThfdCB2c2JjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2c2JjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNiYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNiYyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYmModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtOCkpKQp2dWludDE2bThfdCB2c2JjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2JjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzYmModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYmModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNiYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtNCkpKQp2dWludDMybTRfdCB2c2JjKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTgpKSkKdnVpbnQzMm04X3QgdnNiYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNiYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNiYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91NjRtMikpKQp2dWludDY0bTJfdCB2c2JjKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYmModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNiYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG0xX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG04X2IxKSkpCnZib29sMV90IHZtc2JjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG00X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNiYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm00X2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm00X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm04X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1fdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1fdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bTIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtNCkpKQp2b2lkIHZzdXhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04KSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pOG04X2IxKSkpCnZib29sMV90IHZtc2JjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNiYyh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2JjKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pOG00X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNiYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMSkpKQp2aW50OG0xX3QgdmFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhbmQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2YW5kKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00X20pKSkKdmludDhtNF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtOCkpKQp2aW50OG04X3QgdmFuZCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2YW5kKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFuZCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2YW5kKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZhbmQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2YW5kKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdmFuZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhbmQodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhbmQodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFuZCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhbmQodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2YW5kKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbmQodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTgpKSkKdmludDMybThfdCB2YW5kKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2YW5kKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW5kKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW5kKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhbmQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFuZCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2YW5kKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhbmQodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2YW5kKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yX20pKSkKdmludDhtMl90IHZhbmQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtNCkpKQp2aW50OG00X3QgdmFuZCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2YW5kKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhbmQodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdmFuZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZhbmQodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZhbmQodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhbmQodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZhbmQodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhbmQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFuZCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhbmQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhbmQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2YW5kKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YW5kKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YW5kKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YW5kKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFuZCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTIpKSkKdmludDMybTJfdCB2YW5kKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhbmQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTgpKSkKdmludDMybThfdCB2YW5kKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YW5kKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW5kKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFuZCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2YW5kKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZhbmQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbmQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFuZCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0xKSkpCnZ1aW50OG0xX3QgdmFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2YW5kKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZhbmQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNCkpKQp2dWludDhtNF90IHZhbmQodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmFuZCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG04KSkpCnZ1aW50OG04X3QgdmFuZCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YW5kKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhbmQodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhbmQodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZhbmQodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhbmQodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFuZCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2YW5kKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YW5kKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFuZCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmFuZCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbmQodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbmQodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFuZCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbmQodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW5kKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2YW5kKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW5kKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2YW5kKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YW5kKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMikpKQp2dWludDhtMl90IHZhbmQodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG00KSkpCnZ1aW50OG00X3QgdmFuZCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YW5kKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2YW5kKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZhbmQodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFuZCh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhbmQodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2YW5kKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFuZCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFuZCh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2YW5kKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2YW5kKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhbmQodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YW5kKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmFuZCh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YW5kKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMikpKQp2dWludDMybTJfdCB2YW5kKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2YW5kKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbmQodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbmQodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbmQodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbmQodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbmQodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbmQodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMSkpKQp2aW50OG0xX3Qgdnhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTIpKSkKdmludDhtMl90IHZ4b3IodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2eG9yKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00X20pKSkKdmludDhtNF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtOCkpKQp2aW50OG04X3Qgdnhvcih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2eG9yKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdnhvcih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2eG9yKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZ4b3IodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdnhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2eG9yKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdnhvcih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ4b3IodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ4b3IodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdnhvcih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdnhvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTIpKSkKdmludDMybTJfdCB2eG9yKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZ4b3IodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTgpKSkKdmludDMybThfdCB2eG9yKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2eG9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2eG9yKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2eG9yKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ4b3IodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdnhvcih2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2eG9yKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTEpKSkKdmludDhtMV90IHZ4b3IodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2eG9yKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yX20pKSkKdmludDhtMl90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtNCkpKQp2aW50OG00X3Qgdnhvcih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2eG9yKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTgpKSkKdmludDhtOF90IHZ4b3IodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdnhvcih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZ4b3IodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZ4b3IodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZ4b3IodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ4b3IodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ4b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdnhvcih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ4b3IodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2eG9yKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2eG9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2eG9yKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2eG9yKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdnhvcih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTIpKSkKdmludDMybTJfdCB2eG9yKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ4b3IodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTgpKSkKdmludDMybThfdCB2eG9yKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2eG9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2eG9yKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdnhvcih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2eG9yKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ4b3IodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ4b3IodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdnhvcih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnN1eGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTgpKSkKdm9pZCB2c3V4ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdnhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2eG9yKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNCkpKQp2dWludDhtNF90IHZ4b3IodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdnhvcih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04KSkpCnZ1aW50OG04X3Qgdnhvcih2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2eG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZ4b3IodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZ4b3IodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZ4b3IodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZ4b3IodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdnhvcih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtOCkpKQp2dWludDE2bThfdCB2eG9yKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2eG9yKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdnhvcih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdnhvcih2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ4b3IodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ4b3IodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdnhvcih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ4b3IodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2eG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMikpKQp2dWludDY0bTJfdCB2eG9yKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2eG9yKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2eG9yKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2eG9yKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMikpKQp2dWludDhtMl90IHZ4b3IodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00KSkpCnZ1aW50OG00X3Qgdnhvcih2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2eG9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2eG9yKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZ4b3IodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdnhvcih2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZ4b3IodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2eG9yKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdnhvcih2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdnhvcih2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2eG9yKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2eG9yKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ4b3IodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2eG9yKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdnhvcih2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMSkpKQp2dWludDMybTFfdCB2eG9yKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMikpKQp2dWludDMybTJfdCB2eG9yKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2eG9yKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ4b3IodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ4b3IodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ4b3IodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ4b3IodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ4b3IodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2b3IodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2b3IodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2b3IodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG04KSkpCnZpbnQ4bThfdCB2b3IodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2b3IodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZvcih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2b3IodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm9yKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2b3IodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2b3IodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2b3IodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZvcih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2b3IodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2b3IodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybTIpKSkKdmludDMybTJfdCB2b3IodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm9yKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZvcih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm9yKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZvcih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2b3IodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2b3IodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm9yKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZvcih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2b3IodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2b3IodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2b3IodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04KSkpCnZpbnQ4bThfdCB2b3IodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2b3IodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZvcih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm9yKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2b3IodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZvcih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2b3IodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2b3IodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2b3IodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZvcih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2b3IodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm9yKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm9yKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZvcih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTQpKSkKdmludDMybTRfdCB2b3IodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm9yKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTgpKSkKdmludDMybThfdCB2b3IodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZvcih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZvcih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2b3IodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm9yKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZvcih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtMikpKQp2dWludDhtMl90IHZvcih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2b3IodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG04KSkpCnZ1aW50OG04X3Qgdm9yKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm9yKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm9yKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2b3IodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZvcih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2b3IodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm9yKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZvcih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZvcih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm9yKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2b3IodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMikpKQp2dWludDMybTJfdCB2b3IodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZvcih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtOCkpKQp2dWludDMybThfdCB2b3IodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2b3IodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2b3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZvcih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm9yKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2b3IodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtMSkpKQp2dWludDhtMV90IHZvcih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2b3IodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG00KSkpCnZ1aW50OG00X3Qgdm9yKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtOCkpKQp2dWludDhtOF90IHZvcih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZvcih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZvcih2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZvcih2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZvcih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZvcih2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm9yKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZvcih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2b3IodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2b3IodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2b3IodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2b3IodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm9yKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtMikpKQp2dWludDMybTJfdCB2b3IodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZvcih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOCkpKQp2dWludDMybThfdCB2b3IodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2b3IodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm9yKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2b3IodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZvcih2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm9yKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xsKHZpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c2xsKHZpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2c2xsKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2xsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04KSkpCnZpbnQ4bThfdCB2c2xsKHZpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2xsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzbGwodmludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2c2xsKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNsbCh2aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzbGwodmludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2c2xsKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c2xsKHZpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c2xsKHZpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzbGwodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xsKHZpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGwodmludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTIpKSkKdmludDMybTJfdCB2c2xsKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsbCh2aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsbCh2aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xsKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzbGwodmludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c2xsKHZpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNsbCh2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzbGwodmludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xsKHZpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMikpKQp2aW50OG0yX3QgdnNsbCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGwodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04KSkpCnZpbnQ4bThfdCB2c2xsKHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGwodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c2xsKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2xsKHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzbGwodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xsKHZpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c2xsKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c2xsKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGwodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnNsbCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c2xsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzbGwodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xsKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGwodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzbGwodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzbGwodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsbCh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbGwodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsbCh2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNsbCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNsbCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsbCh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMSkpKQp2dWludDhtMV90IHZzbGwodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnNsbCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2xsKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOCkpKQp2dWludDhtOF90IHZzbGwodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNsbCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c2xsKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c2xsKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xsKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xsKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c2xsKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzbGwodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsbCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzbGwodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzbGwodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c2xsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMikpKQp2dWludDMybTJfdCB2c2xsKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c2xsKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGwodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2xsKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNsbCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsbCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNsbCh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNsbCh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNsbCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsbCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG00KSkpCnZ1aW50OG00X3QgdnNsbCh2dWludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG04KSkpCnZ1aW50OG04X3QgdnNsbCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xsKHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzbGwodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNsbCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xsKHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzbGwodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsbCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNsbCh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzbGwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsbCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzbGwodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNsbCh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNsbCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNsbCh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsbCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2xsKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGwodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm00KSkpCnZvaWQgdnN1eGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTgpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0xKSkpCnZ1aW50OG0xX3QgdnNybCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3JsKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNCkpKQp2dWludDhtNF90IHZzcmwodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG04KSkpCnZ1aW50OG04X3QgdnNybCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2c3JsKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzcmwodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzcmwodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZzcmwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzcmwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzcmwodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNybCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c3JsKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3JsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNybCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNybCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzcmwodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzcmwodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzcmwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNybCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzcmwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3JsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2c3JsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3JsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c3JsKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3JsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2c3JsKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2c3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3JsKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3JsKHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3JsKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3JsKHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNybCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzcmwodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNybCh2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c3JsKHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzcmwodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNybCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzcmwodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c3JsKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c3JsKHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3JsKHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNybCh2dWludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtMikpKQp2dWludDMybTJfdCB2c3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzcmwodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOCkpKQp2dWludDMybThfdCB2c3JsKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3JsKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNybCh2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c3JsKHZ1aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzcmwodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNybCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzcmEodmludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG0xX20pKSkKdmludDhtMV90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTIpKSkKdmludDhtMl90IHZzcmEodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG0yX20pKSkKdmludDhtMl90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzcmEodmludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00X20pKSkKdmludDhtNF90IHZzcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzcmEodmludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG04X20pKSkKdmludDhtOF90IHZzcmEodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNyYSh2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzcmEodmludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c3JhKHZpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzcmEodmludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c3JhKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzcmEodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3JhKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZzcmEodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c3JhKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNyYSh2aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzcmEodmludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNyYSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzcmEodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzcmEodmludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c3JhKHZpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTgpKSkKdmludDMybThfdCB2c3JhKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNyYSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzcmEodmludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNyYSh2aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzcmEodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtMikpKQp2aW50NjRtMl90IHZzcmEodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c3JhKHZpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNyYSh2aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzcmEodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c3JhKHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yX20pKSkKdmludDhtMl90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtNCkpKQp2aW50OG00X3QgdnNyYSh2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3JhKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzcmEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNyYSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzcmEodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzcmEodmludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzcmEodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzcmEodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzcmEodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnNyYSh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3JhKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c3JhKHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNyYSh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNyYSh2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNyYSh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNyYSh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c3JhKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTgpKSkKdmludDMybThfdCB2c3JhKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNyYSh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2c3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzcmEodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c3JhKHZpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c3JhKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2c3JhKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMSkpKQp2dWludDhtMV90IHZuc3JsKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm5zcmwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5zcmwodnVpbnQxNm00X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bnNybCh2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTRfbSkpKQp2dWludDhtNF90IHZuc3JsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuc3JsKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuc3JsKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5zcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMikpKQp2dWludDE2bTJfdCB2bnNybCh2dWludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bnNybCh2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuc3JsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5zcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5zcmwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MzJtMSkpKQp2dWludDMybTFfdCB2bnNybCh2dWludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5zcmwodnVpbnQ2NG00X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZuc3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5zcmwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5zcmwodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtMSkpKQp2dWludDhtMV90IHZuc3JsKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtMikpKQp2dWludDhtMl90IHZuc3JsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNCkpKQp2dWludDhtNF90IHZuc3JsKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5zcmwodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bnNybCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5zcmwodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5zcmwodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuc3JsKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5zcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5zcmwodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMSkpKQp2dWludDMybTFfdCB2bnNybCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMikpKQp2dWludDMybTJfdCB2bnNybCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtNCkpKQp2dWludDMybTRfdCB2bnNybCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5zcmwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMSkpKQp2aW50OG0xX3Qgdm5zcmEodmludDE2bTJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5zcmEodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMikpKQp2aW50OG0yX3Qgdm5zcmEodmludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtNCkpKQp2aW50OG00X3Qgdm5zcmEodmludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5zcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bnNyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mNCkpKQp2aW50OG1mNF90IHZuc3JhKHZpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bnNyYSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5zcmEodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bnNyYSh2aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5zcmEodmludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5zcmEodmludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5zcmEodmludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2bnNyYSh2aW50NjRtNF90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMzJtNCkpKQp2aW50MzJtNF90IHZuc3JhKHZpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZuc3JhKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMSkpKQp2aW50OG0xX3Qgdm5zcmEodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTIpKSkKdmludDhtMl90IHZuc3JhKHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00KSkpCnZpbnQ4bTRfdCB2bnNyYSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00X20pKSkKdmludDhtNF90IHZuc3JhKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjIpKSkKdmludDhtZjJfdCB2bnNyYSh2aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5zcmEodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5zcmEodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm5zcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZuc3JhKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtMikpKQp2aW50MTZtMl90IHZuc3JhKHZpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtNCkpKQp2aW50MTZtNF90IHZuc3JhKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bnNyYSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5zcmEodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5zcmEodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuc3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtMikpKQp2aW50MzJtMl90IHZuc3JhKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTQpKSkKdmludDMybTRfdCB2bnNyYSh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5zcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtMSkpKQp2dWludDhtMV90IHZuY3Z0X3godnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTFfbSkpKQp2dWludDhtMV90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bmN2dF94KHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG0yX20pKSkKdnVpbnQ4bTJfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG00KSkpCnZ1aW50OG00X3Qgdm5jdnRfeCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5jdnRfeCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5jdnRfeCh2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bmN2dF94KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuY3Z0X3godnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuY3Z0X3godnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuY3Z0X3godmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuY3Z0X3godnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMikpKQp2dWludDE2bTJfdCB2bmN2dF94KHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtNCkpKQp2dWludDE2bTRfdCB2bmN2dF94KHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuY3Z0X3godmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuY3Z0X3godnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmN2dF94KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZuY3Z0X3godnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY3Z0X3godnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMikpKQp2dWludDMybTJfdCB2bmN2dF94KHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY3Z0X3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm5jdnRfeCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bmN2dF94KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmN2dF94KHZ1aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZXEodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNlcSh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNlcSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2VxKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZXEodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTEpKSkKdm9pZCB2c3NlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2U4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG0yKSkpCnZvaWQgdnNzZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG0yX20pKSkKdm9pZCB2c3NlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtNCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtNF9tKSkpCnZvaWQgdnNzZTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTgpKSkKdm9pZCB2c3NlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bThfbSkpKQp2b2lkIHZzc2U4KHZib29sMV90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMikpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mNCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY0X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mOCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZXEodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNlcSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNlcSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2VxKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZXEodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNlcSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0xX2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2VxKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG04X2IxKSkpCnZib29sMV90IHZtc2VxKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZXEodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2VxKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0xX2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG00X2IyKSkpCnZib29sMl90IHZtc2VxKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG04X2IxKSkpCnZib29sMV90IHZtc2VxKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZXEodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2VxKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2VxKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc25lKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbmUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG04X2IxKSkpCnZib29sMV90IHZtc25lKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm04X2IyKSkpCnZib29sMl90IHZtc25lKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtOF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc25lKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG00X2IyKSkpCnZib29sMl90IHZtc25lKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbmUodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbmUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm00X2I0KSkpCnZib29sNF90IHZtc25lKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbmUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc25lKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc25lKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG04X2I4KSkpCnZib29sOF90IHZtc25lKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNuZSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNuZSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc25lKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc25lKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbHR1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2x0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG0yX2I0KSkpCnZib29sNF90IHZtc2x0dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsdHUodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHR1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbHR1KHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2x0dSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2x0dSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNsdHUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2x0dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbHR1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2x0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2x0dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsdHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHR1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0xX2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbHR1KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc2x0dSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG04X2IxKSkpCnZib29sMV90IHZtc2x0dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsdHUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbHR1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2x0dSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2x0dSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNsdHUodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHR1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbHR1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNsdHUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbHR1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc2x0KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMV9iOF9tKSkpCnZib29sOF90IHZtc2x0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbHQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsdCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsdCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG04X2IxKSkpCnZib29sMV90IHZtc2x0KHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtOF9iMV9tKSkpCnZib29sMV90IHZtc2x0KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNsdCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbHQodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbHQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNsdCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm04X2IyKSkpCnZib29sMl90IHZtc2x0KHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2x0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNsdCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHQodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtNCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzdXhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbHQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsdCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsdCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2x0KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2x0KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbHQodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2x0KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2x0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbHQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsdCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsdCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHQodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsdCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbHQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbHQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsZXUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGV1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbGV1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2xldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2xldSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsZXUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbGV1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xldSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNsZXUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGV1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbGV1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2xldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2xldSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNsZXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsZXUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGV1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbGV1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2xldSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsZXUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGV1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xldSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsZXUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZXUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2xldSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZXUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbGUodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNsZSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2xlKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2xlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbGUodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbGUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbGUodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zbGUodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZSh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbGUodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsZSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsZSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbGUodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsZSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGUodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsZSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGUodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbGUodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNndHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3R1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zZ3R1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2d0dSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2d0dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndHUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNndHUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ3R1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNndHUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3R1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ3R1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2d0dSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2d0dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndHUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNndHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNndHUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3R1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ3R1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2d0dSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNndHUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3R1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNndHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNndHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2d0dSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ3QodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNndCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2d0KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2d0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ3QodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ3QodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zZ3QodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zZ3QodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZ3QodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNndCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNndCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ3QodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNndCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3QodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNndCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3QodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ3QodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNnZXUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2V1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zZ2V1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2dldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2dldSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNnZXUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ2V1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dldSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNnZXUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2V1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ2V1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2dldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2dldSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNnZXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm0yKSkpCnZvaWQgdnN1eGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNnZXUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2V1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ2V1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2dldSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNnZXUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2V1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dldSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNnZXUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZXUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2dldSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZXUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ2UodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2UodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNnZSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2dlKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2dlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ2UodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ2UodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zZ2UodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zZ2UodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZSh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZ2UodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNnZSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNnZSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ2UodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNnZSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2UodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNnZSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2UodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ2UodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2UodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm1pbnUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG00KSkpCnZ1aW50OG00X3Qgdm1pbnUodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZtaW51KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG04KSkpCnZ1aW50OG04X3Qgdm1pbnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtaW51KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2bWludSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1pbnUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtaW51KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1pbnUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1pbnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1pbnUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1pbnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2bWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm1pbnUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWludSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtaW51KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1pbnUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtaW51KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm1pbnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm1pbnUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bWludSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1pbnUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtaW51KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtOCkpKQp2dWludDY0bThfdCB2bWludSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm1pbnUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm1pbnUodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG00KSkpCnZ1aW50OG00X3Qgdm1pbnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtaW51KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG04KSkpCnZ1aW50OG04X3Qgdm1pbnUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZtaW51KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bWludSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtaW51KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1pbnUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bWludSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1pbnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1pbnUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1pbnUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtaW51KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtaW51KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1pbnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MzJtMikpKQp2dWludDMybTJfdCB2bWludSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1pbnUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1pbnUodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWludSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bWludSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1pbnUodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtaW51KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2bWludSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtaW4odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bWluKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yX20pKSkKdmludDhtMl90IHZtaW4odmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtNCkpKQp2aW50OG00X3Qgdm1pbih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWluKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtaW4odmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bThfbSkpKQp2aW50OG04X3Qgdm1pbih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZtaW4odmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1pbih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bWluKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bWluKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1pbih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZtaW4odmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtaW4odmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bWluKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bWluKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWluKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtaW4odmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWluKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1pbih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTQpKSkKdmludDMybTRfdCB2bWluKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bWluKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1pbih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1pbih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1pbih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm1pbih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bWluKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWluKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtaW4odmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm1pbih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWluKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xX20pKSkKdmludDhtMV90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMikpKQp2aW50OG0yX3Qgdm1pbih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWluKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtaW4odmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1pbih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWluKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04X20pKSkKdmludDhtOF90IHZtaW4odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bWluKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWluKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWluKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bWluKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWluKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtaW4odmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWluKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWluKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1pbih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1pbih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1pbih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1pbih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtaW4odmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1pbih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybTQpKSkKdmludDMybTRfdCB2bWluKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bWluKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1pbih2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1pbih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1pbih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtaW4odmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1pbih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWluKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWluKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtaW4odmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWF4dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWF4dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1heHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWF4dSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1heHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYXh1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2bWF4dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1heHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2bWF4dSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bWF4dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bWF4dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMikpKQp2dWludDMybTJfdCB2bWF4dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtYXh1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1heHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWF4dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1heHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2bWF4dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWF4dSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYXh1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bWF4dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1heHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYXh1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWF4dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWF4dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWF4dSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1heHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWF4dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1heHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYXh1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1heHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bWF4dSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYXh1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2bWF4dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bWF4dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOCkpKQp2dWludDE2bThfdCB2bWF4dSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1heHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm1heHUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWF4dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYXh1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bWF4dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOCkpKQp2dWludDMybThfdCB2bWF4dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYXh1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYXh1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMikpKQp2dWludDY0bTJfdCB2bWF4dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1heHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYXh1KHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTIpKSkKdmludDhtMl90IHZtYXgodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bWF4KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG00X20pKSkKdmludDhtNF90IHZtYXgodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOCkpKQp2aW50OG04X3Qgdm1heCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bWF4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1heCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bWF4KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWF4KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtYXgodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bWF4KHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm1heCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZtYXgodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtYXgodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYXgodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bWF4KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1heCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm1heCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bWF4KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtYXgodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTgpKSkKdmludDMybThfdCB2bWF4KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWF4KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bWF4KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bWF4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZtYXgodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1heCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bWF4KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWF4KHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xX20pKSkKdmludDhtMV90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMikpKQp2aW50OG0yX3Qgdm1heCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTQpKSkKdmludDhtNF90IHZtYXgodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1heCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWF4KHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04X20pKSkKdmludDhtOF90IHZtYXgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bWF4KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtYXgodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWF4KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWF4KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bWF4KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtYXgodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWF4KHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1heCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1heCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1heCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1heCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtYXgodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1heCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTQpKSkKdmludDMybTRfdCB2bWF4KHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1heCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1heCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtYXgodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1heCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWF4KHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtYXgodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm11bCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTIpKSkKdmludDhtMl90IHZtdWwodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00X20pKSkKdmludDhtNF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOCkpKQp2aW50OG04X3Qgdm11bCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bXVsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm11bCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWwodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm11bCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bXVsKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZtdWwodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdWwodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm11bCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtdWwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bXVsKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWwodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTgpKSkKdmludDMybThfdCB2bXVsKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZtdWwodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm11bCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTEpKSkKdmludDhtMV90IHZtdWwodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bXVsKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yX20pKSkKdmludDhtMl90IHZtdWwodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNCkpKQp2aW50OG00X3Qgdm11bCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bXVsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTgpKSkKdmludDhtOF90IHZtdWwodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdWwodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWwodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtdWwodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtdWwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZtdWwodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWwodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bXVsKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bXVsKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bXVsKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWwodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTgpKSkKdmludDMybThfdCB2bXVsKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm11bCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bXVsKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWwodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm11bCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm11bCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bXVsKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZtdWwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtNCkpKQp2dWludDhtNF90IHZtdWwodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm11bCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04KSkpCnZ1aW50OG04X3Qgdm11bCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bXVsKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtdWwodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtdWwodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtdWwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtdWwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdWwodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm11bCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bXVsKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bXVsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm11bCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWwodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtdWwodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtdWwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtdWwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bXVsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bXVsKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2bXVsKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2bXVsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXVsKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMikpKQp2dWludDhtMl90IHZtdWwodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00KSkpCnZ1aW50OG00X3Qgdm11bCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bXVsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXVsKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZtdWwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm11bCh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtdWwodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm11bCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm11bCh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bXVsKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bXVsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtdWwodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXVsKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bCh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2bXVsKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMikpKQp2dWludDMybTJfdCB2bXVsKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtdWwodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtdWwodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtdWwodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdWwodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtdWwodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtdWxoKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMikpKQp2aW50OG0yX3Qgdm11bGgodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pOG0yX20pKSkKdmludDhtMl90IHZtdWxoKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bXVsaCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGgodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtdWxoKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bXVsaCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsaCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bXVsaCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bXVsaCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZtdWxoKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGgodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bXVsaCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdWxoKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bXVsaCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bXVsaCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTQpKSkKdmludDMybTRfdCB2bXVsaCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZtdWxoKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsaCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm11bGgodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGgodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm11bGgodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm11bGgodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm11bGgodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG0xX20pKSkKdmludDhtMV90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bXVsaCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtdWxoKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bXVsaCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtOCkpKQp2aW50OG04X3Qgdm11bGgodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG04X20pKSkKdmludDhtOF90IHZtdWxoKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZtdWxoKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsaCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm11bGgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm11bGgodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtdWxoKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGgodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtdWxoKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm11bGgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGgodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bXVsaCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bXVsaCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm11bGgodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm11bGgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bGgodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm11bGgodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm11bGgodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTgpKSkKdmludDMybThfdCB2bXVsaCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtdWxoKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm11bGgodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bXVsaCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bXVsaCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtMSkpKQp2dWludDhtMV90IHZtdWxodSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bXVsaHUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bXVsaHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG00KSkpCnZ1aW50OG00X3Qgdm11bGh1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm11bGh1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtOCkpKQp2dWludDhtOF90IHZtdWxodSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtdWxodSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtdWxodSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm11bGh1KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsaHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm11bGh1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtdWxodSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm11bGh1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZtdWxodSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bXVsaHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bXVsaHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm11bGh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXVsaHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtdWxodSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm11bGh1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWxodSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm11bGh1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWxodSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsaHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm11bGh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bGh1KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWxodSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm11bGh1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm11bGh1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bXVsaHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm11bGh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdWxodSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm11bGh1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXVsaHUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm11bGh1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm11bGh1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtNCkpKQp2dWludDhtNF90IHZtdWxodSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtdWxodSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXVsaHUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bXVsaHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bXVsaHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2bXVsaHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsaHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bXVsaHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm11bGh1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdWxodSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bXVsaHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm11bGh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm11bGh1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtdWxodSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm11bGh1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bGh1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWxodSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm11bGh1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWxodSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsaHUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm11bGh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bGh1KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWxodSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm11bGh1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtdWxodSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm11bGh1KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2bXVsaHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm11bGh1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtdWxodSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtMikpKQp2aW50OG0yX3Qgdm11bGhzdSh2aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGhzdSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNCkpKQp2aW50OG00X3Qgdm11bGhzdSh2aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGhzdSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtOCkpKQp2aW50OG04X3Qgdm11bGhzdSh2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bGhzdSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaHN1KHZpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm11bGhzdSh2aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWxoc3UodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaHN1KHZpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bGhzdSh2aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGhzdSh2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGhzdSh2aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoc3UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsaHN1KHZpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm11bGhzdSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bXVsaHN1KHZpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bGhzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm11bGhzdSh2aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtdWxoc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWxoc3UodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bXVsaHN1KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZtdWxoc3UodmludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsaHN1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm11bGhzdSh2aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaHN1KHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGhzdSh2aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWxoc3UodmludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaHN1KHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTIpKSkKdm9pZCB2c3V4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00KSkpCnZvaWQgdnN1eGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtOCkpKQp2b2lkIHZzdXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMikpKQp2aW50OG0yX3Qgdm11bGhzdSh2aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGhzdSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtNCkpKQp2aW50OG00X3Qgdm11bGhzdSh2aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGhzdSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOCkpKQp2aW50OG04X3Qgdm11bGhzdSh2aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bGhzdSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaHN1KHZpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdWxoc3UodmludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm11bGhzdSh2aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaHN1KHZpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bGhzdSh2aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGhzdSh2aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGhzdSh2aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoc3UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsaHN1KHZpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm11bGhzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoc3UodmludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtdWxoc3UodmludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bXVsaHN1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bXVsaHN1KHZpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm11bGhzdSh2aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm11bGhzdSh2aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsaHN1KHZpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaHN1KHZpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGhzdSh2aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWxoc3UodmludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaHN1KHZpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2ZGl2dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2ZGl2dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmRpdnUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2ZGl2dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmRpdnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2ZGl2dSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmRpdnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZkaXZ1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2ZGl2dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmRpdnUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZkaXZ1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2ZGl2dSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZGl2dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2ZGl2dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZkaXZ1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZkaXZ1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmRpdnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtMikpKQp2dWludDMybTJfdCB2ZGl2dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZkaXZ1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmRpdnUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2ZGl2dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmRpdnUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZGl2dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZGl2dSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZkaXZ1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2ZGl2dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmRpdnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZkaXZ1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2ZGl2dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2ZGl2dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmRpdnUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2ZGl2dSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdmRpdnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2ZGl2dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmRpdnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZkaXZ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmRpdnUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2ZGl2dSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZkaXZ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2ZGl2dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2ZGl2dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtOCkpKQp2dWludDE2bThfdCB2ZGl2dSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZkaXZ1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmRpdnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmRpdnUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmRpdnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZGl2dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZkaXZ1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2ZGl2dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtOCkpKQp2dWludDMybThfdCB2ZGl2dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZkaXZ1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZkaXZ1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91NjRtMikpKQp2dWludDY0bTJfdCB2ZGl2dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmRpdnUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZkaXZ1KHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMSkpKQp2aW50OG0xX3QgdmRpdih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTIpKSkKdmludDhtMl90IHZkaXYodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdmRpdih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2ZGl2KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00X20pKSkKdmludDhtNF90IHZkaXYodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtOCkpKQp2aW50OG04X3QgdmRpdih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2ZGl2KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmRpdih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2ZGl2KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZkaXYodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZkaXYodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmRpdih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2ZGl2KHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdmRpdih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmRpdih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZkaXYodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZkaXYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZkaXYodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmRpdih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZkaXYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmRpdih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTIpKSkKdmludDMybTJfdCB2ZGl2KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2ZGl2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZkaXYodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZkaXYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTgpKSkKdmludDMybThfdCB2ZGl2KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2ZGl2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZGl2KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2ZGl2KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZkaXYodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZkaXYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdmRpdih2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2ZGl2KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTEpKSkKdmludDhtMV90IHZkaXYodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2ZGl2KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yX20pKSkKdmludDhtMl90IHZkaXYodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtNCkpKQp2aW50OG00X3QgdmRpdih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2ZGl2KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTgpKSkKdmludDhtOF90IHZkaXYodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdmRpdih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZkaXYodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZkaXYodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZkaXYodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZkaXYodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZkaXYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmRpdih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZkaXYodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZkaXYodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2ZGl2KHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2ZGl2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2ZGl2KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2ZGl2KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmRpdih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTIpKSkKdmludDMybTJfdCB2ZGl2KHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2ZGl2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZkaXYodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZkaXYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTgpKSkKdmludDMybThfdCB2ZGl2KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2ZGl2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZGl2KHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmRpdih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2ZGl2KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZkaXYodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZkaXYodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmRpdih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtMSkpKQp2dWludDhtMV90IHZyZW11KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtMikpKQp2dWludDhtMl90IHZyZW11KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmVtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNCkpKQp2dWludDhtNF90IHZyZW11KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmVtdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtOCkpKQp2dWludDhtOF90IHZyZW11KHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2cmVtdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlbXUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZW11KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmVtdSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlbXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZW11KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZW11KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZW11KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJlbXUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJlbXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZW11KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlbXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVtdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZW11KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJlbXUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2cmVtdSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZW11KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOCkpKQp2dWludDMybThfdCB2cmVtdSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyZW11KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZW11KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlbXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZW11KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVtdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlbXUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMSkpKQp2dWludDhtMV90IHZyZW11KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMikpKQp2dWludDhtMl90IHZyZW11KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmVtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtNCkpKQp2dWludDhtNF90IHZyZW11KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmVtdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtOCkpKQp2dWludDhtOF90IHZyZW11KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2cmVtdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlbXUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2cmVtdSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZyZW11KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlbXUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZW11KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZW11KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZW11KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJlbXUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJlbXUodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2cmVtdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2cmVtdSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVtdSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZW11KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlbXUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZW11KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZW11KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJlbXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlbXUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZW11KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVtdSh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlbXUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0xX20pKSkKdmludDhtMV90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMikpKQp2aW50OG0yX3QgdnJlbSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cmVtKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTQpKSkKdmludDhtNF90IHZyZW0odmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnJlbSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG04KSkpCnZpbnQ4bThfdCB2cmVtKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG04X20pKSkKdmludDhtOF90IHZyZW0odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmVtKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZyZW0odmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlbSh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJlbSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZyZW0odmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVtKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2cmVtKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlbSh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJlbSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnJlbSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmVtKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnJlbSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTEpKSkKdmludDMybTFfdCB2cmVtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZyZW0odmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZW0odmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnJlbSh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJlbSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZW0odmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZW0odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZW0odmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnJlbSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJlbSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVtKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZW0odmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMSkpKQp2aW50OG0xX3QgdnJlbSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTIpKSkKdmludDhtMl90IHZyZW0odmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJlbSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG00KSkpCnZpbnQ4bTRfdCB2cmVtKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG00X20pKSkKdmludDhtNF90IHZyZW0odmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOCkpKQp2aW50OG04X3QgdnJlbSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2cmVtKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJlbSh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnJlbSh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlbSh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlbSh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlbSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVtKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnJlbSh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnJlbSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZW0odmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZyZW0odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZW0odmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZyZW0odmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybTEpKSkKdmludDMybTFfdCB2cmVtKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZyZW0odmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZW0odmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnJlbSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJlbSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZyZW0odmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZW0odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZW0odmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVtKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pNjRtMikpKQp2aW50NjRtMl90IHZyZW0odmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnJlbSh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJlbSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTgpKSkKdmludDY0bThfdCB2cmVtKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtdWwodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bXVsKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d211bCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2d211bCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdndtdWwodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtdWwodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3bXVsKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTEpKSkKdmludDMybTFfdCB2d211bCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtdWwodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2d211bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndtdWwodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d211bCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTgpKSkKdmludDMybThfdCB2d211bCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d211bCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2d211bCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d211bCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3bXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtMikpKQp2b2lkIHZzdXhlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm00KSkpCnZvaWQgdnN1eGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtZjIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d211bCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3bXVsKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bXVsKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2d211bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdndtdWwodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtdWwodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d211bCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bXVsKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtdWwodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bXVsKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtdWwodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d211bCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d211bCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bXVsKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bXVsKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWwodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3bXVsdSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d211bHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtdWx1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtdWx1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtdWx1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d211bHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d211bHUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2d211bHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMikpKQp2dWludDMybTJfdCB2d211bHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3bXVsdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtOCkpKQp2dWludDMybThfdCB2d211bHUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndtdWx1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndtdWx1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndtdWx1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3bXVsdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2d211bHUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3bXVsdSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndtdWx1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndtdWx1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtdWx1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtdWx1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtdWx1KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d211bHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d211bHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndtdWx1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3bXVsdSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d211bHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndtdWx1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3bXVsdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3bXVsdSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d211bHUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndtdWx1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3bXVsdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d211bHUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3bXVsdSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d211bHN1KHZpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndtdWxzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtdWxzdSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bHN1KHZpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsc3UodmludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWxzdSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d211bHN1KHZpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtdWxzdSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3bXVsc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bXVsc3UodmludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bXVsc3UodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2d211bHN1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bXVsc3UodmludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdndtdWxzdSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsc3UodmludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2d211bHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d211bHN1KHZpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWxzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndtdWxzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bHN1KHZpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3bXVsc3UodmludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsc3UodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtdWxzdSh2aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bHN1KHZpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsc3UodmludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWxzdSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d211bHN1KHZpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndtdWxzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d211bHN1KHZpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTIpKSkKdmludDMybTJfdCB2d211bHN1KHZpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtdWxzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdndtdWxzdSh2aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3bXVsc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtdWxzdSh2aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndtdWxzdSh2aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bHN1KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdndtdWxzdSh2aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsc3UodmludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d211bHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2d211bHN1KHZpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWxzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtYWNjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMikpKQp2aW50OG0yX3Qgdm1hY2ModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG0yX20pKSkKdmludDhtMl90IHZtYWNjKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG00KSkpCnZpbnQ4bTRfdCB2bWFjYyh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtYWNjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bWFjYyh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bWFjYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtYWNjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bWFjYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1hY2ModmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm1hY2ModmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1hY2ModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWFjYyh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtYWNjKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMSkpKQp2aW50MzJtMV90IHZtYWNjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bWFjYyh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm1hY2ModmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1hY2ModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWFjYyh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bWFjYyh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1hY2ModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtYWNjKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bWFjYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm1hY2ModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG0xX20pKSkKdmludDhtMV90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bWFjYyh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtYWNjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtOCkpKQp2aW50OG04X3Qgdm1hY2ModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG04X20pKSkKdmludDhtOF90IHZtYWNjKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMikpKQp2aW50OG1mMl90IHZtYWNjKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWFjYyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtYWNjKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2bWFjYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWFjYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bWFjYyh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYWNjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtYWNjKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTEpKSkKdmludDMybTFfdCB2bWFjYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1hY2ModmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZtYWNjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOCkpKQp2aW50MzJtOF90IHZtYWNjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtYWNjKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1hY2ModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtYWNjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bWFjYyh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1hY2ModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtYWNjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm1hY2ModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMikpKQp2dWludDhtMl90IHZtYWNjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWFjYyh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZtYWNjKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG04KSkpCnZ1aW50OG04X3Qgdm1hY2ModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bWFjYyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1hY2ModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1hY2ModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1hY2ModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1hY2ModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYWNjKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bWFjYyh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtYWNjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1hY2ModnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtMSkpKQp2dWludDMybTFfdCB2bWFjYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtMikpKQp2dWludDMybTJfdCB2bWFjYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNCkpKQp2dWludDMybTRfdCB2bWFjYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtYWNjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYWNjKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtYWNjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtYWNjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYWNjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMSkpKQp2dWludDhtMV90IHZtYWNjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWFjYyh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZtYWNjKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG00KSkpCnZ1aW50OG00X3Qgdm1hY2ModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOCkpKQp2dWludDhtOF90IHZtYWNjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1hY2ModmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG1mNCkpKQp2dWludDhtZjRfdCB2bWFjYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYWNjKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtYWNjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1hY2ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYWNjKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MTZtOCkpKQp2dWludDE2bThfdCB2bWFjYyh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm1hY2ModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWFjYyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMSkpKQp2dWludDMybTFfdCB2bWFjYyh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMikpKQp2dWludDMybTJfdCB2bWFjYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtNCkpKQp2dWludDMybTRfdCB2bWFjYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtYWNjKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bWFjYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtMikpKQp2dWludDY0bTJfdCB2bWFjYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNCkpKQp2dWludDY0bTRfdCB2bWFjYyh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtOCkpKQp2dWludDY0bThfdCB2bWFjYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG0xKSkpCnZpbnQ4bTFfdCB2bm1zYWModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bm1zYWModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bm1zYWModmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG00KSkpCnZpbnQ4bTRfdCB2bm1zYWModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG04KSkpCnZpbnQ4bThfdCB2bm1zYWModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bm1zYWModmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMikpKQp2aW50OG1mMl90IHZubXNhYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5tc2FjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bm1zYWModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMSkpKQp2aW50MTZtMV90IHZubXNhYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5tc2FjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNCkpKQp2aW50MTZtNF90IHZubXNhYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bm1zYWModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZubXNhYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bm1zYWModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bm1zYWModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5tc2FjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bm1zYWModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNCkpKQp2aW50MzJtNF90IHZubXNhYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTgpKSkKdmludDMybThfdCB2bm1zYWModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm1zYWModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm5tc2FjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bm1zYWModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZubXNhYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm5tc2FjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yKSkpCnZvaWQgdnN1eGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm04KSkpCnZvaWQgdnN1eGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm5tc2FjKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMikpKQp2aW50OG0yX3Qgdm5tc2FjKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNCkpKQp2aW50OG00X3Qgdm5tc2FjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOCkpKQp2aW50OG04X3Qgdm5tc2FjKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm5tc2FjKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bm1zYWModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bm1zYWModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bm1zYWModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bm1zYWModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMikpKQp2aW50MTZtMl90IHZubXNhYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bm1zYWModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm5tc2FjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZubXNhYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5tc2FjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bm1zYWModmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZubXNhYyh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTgpKSkKdmludDMybThfdCB2bm1zYWModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm1zYWModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZubXNhYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm5tc2FjKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bm1zYWModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZubXNhYyh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMSkpKQp2dWludDhtMV90IHZubXNhYyh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5tc2FjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bm1zYWModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOCkpKQp2dWludDhtOF90IHZubXNhYyh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bm1zYWModmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mMikpKQp2dWludDhtZjJfdCB2bm1zYWModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZubXNhYyh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bm1zYWModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm5tc2FjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5tc2FjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5tc2FjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bm1zYWModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZubXNhYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZubXNhYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMikpKQp2dWludDMybTJfdCB2bm1zYWModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm5tc2FjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm5tc2FjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bm1zYWModnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bm1zYWModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5tc2FjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZubXNhYyh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtOCkpKQp2dWludDY0bThfdCB2bm1zYWModnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm5tc2FjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bm1zYWModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNCkpKQp2dWludDhtNF90IHZubXNhYyh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG04KSkpCnZ1aW50OG04X3Qgdm5tc2FjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZubXNhYyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZubXNhYyh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bm1zYWModnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZubXNhYyh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMikpKQp2dWludDE2bTJfdCB2bm1zYWModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bm1zYWModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bm1zYWModmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtOCkpKQp2dWludDE2bThfdCB2bm1zYWModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZubXNhYyh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZubXNhYyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtMSkpKQp2dWludDMybTFfdCB2bm1zYWModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5tc2FjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZubXNhYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZubXNhYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5tc2FjKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZubXNhYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMikpKQp2dWludDY0bTJfdCB2bm1zYWModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm5tc2FjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZubXNhYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm1hZGQodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0xX20pKSkKdmludDhtMV90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bWFkZCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTQpKSkKdmludDhtNF90IHZtYWRkKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtOCkpKQp2aW50OG04X3Qgdm1hZGQodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG04X20pKSkKdmludDhtOF90IHZtYWRkKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZtYWRkKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bWFkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZtYWRkKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bWFkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2bWFkZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bWFkZCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1hZGQodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm1hZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtMikpKQp2aW50MzJtMl90IHZtYWRkKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2bWFkZCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTgpKSkKdmludDMybThfdCB2bWFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZtYWRkKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZtYWRkKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bWFkZCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1hZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZtYWRkKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWFkZCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTIpKSkKdmludDhtMl90IHZtYWRkKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtNCkpKQp2aW50OG00X3Qgdm1hZGQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG00X20pKSkKdmludDhtNF90IHZtYWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWFkZCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm1hZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1hZGQodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWFkZCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZtYWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1hZGQodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtYWRkKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZtYWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtYWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZtYWRkKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtYWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1hZGQodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1hZGQodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtYWRkKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bWFkZCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm1hZGQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1hZGQodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWFkZCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm1hZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZtYWRkKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWFkZCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm1hZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWFkZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm1hZGQodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNCkpKQp2dWludDhtNF90IHZtYWRkKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1hZGQodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWFkZCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtYWRkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2bWFkZCh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2bWFkZCh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bWFkZCh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bWFkZCh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2bWFkZCh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZtYWRkKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1hZGQodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYWRkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWFkZCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYWRkKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYWRkKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtYWRkKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1hZGQodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm1hZGQodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1hZGQodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1hZGQodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm1hZGQodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm1hZGQodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMikpKQp2dWludDhtMl90IHZtYWRkKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWFkZCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtYWRkKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG04KSkpCnZ1aW50OG04X3Qgdm1hZGQodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bWFkZCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtYWRkKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bWFkZCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1hZGQodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1hZGQodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bWFkZCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtYWRkKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWFkZCh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtYWRkKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYWRkKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYWRkKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtYWRkKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1hZGQodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYWRkKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtYWRkKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtYWRkKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYWRkKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTEpKSkKdmludDhtMV90IHZubXN1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xX20pKSkKdmludDhtMV90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZubXN1Yih2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yX20pKSkKdmludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTQpKSkKdmludDhtNF90IHZubXN1Yih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTgpKSkKdmludDhtOF90IHZubXN1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04X20pKSkKdmludDhtOF90IHZubXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5tc3ViKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bm1zdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZubXN1Yih2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5tc3ViKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bm1zdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5tc3ViKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZubXN1Yih2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZubXN1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bm1zdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMikpKQp2aW50MzJtMl90IHZubXN1Yih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5tc3ViKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZubXN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm5tc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZubXN1Yih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bm1zdWIodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZubXN1Yih2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm5tc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bm1zdWIodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZubXN1Yih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xX20pKSkKdmludDhtMV90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTIpKSkKdmludDhtMl90IHZubXN1Yih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTQpKSkKdmludDhtNF90IHZubXN1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00X20pKSkKdmludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZubXN1Yih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04X20pKSkKdmludDhtOF90IHZubXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5tc3ViKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5tc3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm5tc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5tc3ViKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2bm1zdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5tc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZubXN1Yih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZubXN1Yih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5tc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2bm1zdWIodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm5tc3ViKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5tc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bm1zdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZubXN1Yih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm5tc3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bm1zdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bm1zdWIodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtMikpKQp2dWludDhtMl90IHZubXN1Yih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00KSkpCnZ1aW50OG00X3Qgdm5tc3ViKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bm1zdWIodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm5tc3ViKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5tc3ViKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZubXN1Yih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bm1zdWIodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm5tc3ViKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZubXN1Yih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZubXN1Yih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZubXN1Yih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm5tc3ViKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm1zdWIodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtMSkpKQp2dWludDMybTFfdCB2bm1zdWIodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5tc3ViKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZubXN1Yih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZubXN1Yih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5tc3ViKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm5tc3ViKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZubXN1Yih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2bm1zdWIodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm5tc3ViKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c3V4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTQpKSkKdm9pZCB2c3V4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtOCkpKQp2b2lkIHZzdXhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMSkpKQp2dWludDhtMV90IHZubXN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm5tc3ViKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bm1zdWIodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOCkpKQp2dWludDhtOF90IHZubXN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bm1zdWIodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bm1zdWIodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZubXN1Yih2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm5tc3ViKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bm1zdWIodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm5tc3ViKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5tc3ViKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5tc3ViKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5tc3ViKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bm1zdWIodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm1zdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm5tc3ViKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZubXN1Yih2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bm1zdWIodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2bm1zdWIodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZubXN1Yih2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bm1zdWIodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5tc3ViKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZubXN1Yih2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2bm1zdWIodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d21hY2N1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3bWFjY3UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3bWFjY3UodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3bWFjY3UodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndtYWNjdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndtYWNjdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdndtYWNjdSh2dWludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2d21hY2N1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdndtYWNjdSh2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2d21hY2N1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3bWFjY3UodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d21hY2N1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3bWFjY3UodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndtYWNjdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOCkpKQp2dWludDY0bThfdCB2d21hY2N1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d21hY2N1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d21hY2N1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndtYWNjdSh2dWludDE2bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3bWFjY3UodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2dWludDE2bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2dWludDE2bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMikpKQp2dWludDMybTJfdCB2d21hY2N1KHZ1aW50MzJtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ3bWFjY3UodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3bWFjY3UodnVpbnQzMm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtOCkpKQp2dWludDMybThfdCB2d21hY2N1KHZ1aW50MzJtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ3bWFjY3UodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndtYWNjdSh2dWludDY0bTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3bWFjY3UodnVpbnQ2NG0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndtYWNjdSh2dWludDY0bTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2d21hY2N1KHZ1aW50NjRtOF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtYWNjKHZpbnQxNm1mNF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2ModmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d21hY2ModmludDE2bWYyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2ModmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtMikpKQp2aW50MTZtMl90IHZ3bWFjYyh2aW50MTZtMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjYyh2aW50MTZtNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bWFjYyh2aW50MTZtOF90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtYWNjKHZpbnQzMm1mMl90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bWFjYyh2aW50MzJtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2d21hY2ModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjYyh2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndtYWNjKHZpbnQzMm00X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bWFjYyh2aW50MzJtOF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndtYWNjKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2ModmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d21hY2ModmludDY0bTJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjYyh2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdndtYWNjKHZpbnQ2NG04X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtYWNjKHZpbnQxNm1mNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjKHZpbnQxNm1mMl90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3bWFjYyh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2ModmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3bWFjYyh2aW50MTZtMl90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjYyh2aW50MTZtNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bWFjYyh2aW50MTZtOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtYWNjKHZpbnQzMm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2ModmludDMybTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d21hY2ModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtYWNjKHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2ModmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTQpKSkKdmludDMybTRfdCB2d21hY2ModmludDMybTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjKHZpbnQzMm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d21hY2ModmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bWFjYyh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2d21hY2ModmludDY0bTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjYyh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdndtYWNjKHZpbnQ2NG04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2aW50MTZtZjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndtYWNjc3UodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d21hY2NzdSh2aW50MTZtZjJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndtYWNjc3UodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bWFjY3N1KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjc3UodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3N1KHZpbnQxNm00X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2NzdSh2aW50MTZtOF90IG9wMCwgdmludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3N1KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTIpKSkKdmludDMybTJfdCB2d21hY2NzdSh2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtYWNjc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTQpKSkKdmludDMybTRfdCB2d21hY2NzdSh2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndtYWNjc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bWFjY3N1KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2d21hY2NzdSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndtYWNjc3UodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndtYWNjc3UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3N1KHZpbnQ2NG0yX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2NzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3N1KHZpbnQ2NG00X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3N1KHZpbnQ2NG04X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2aW50MTZtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmludDE2bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2NzdSh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjc3UodmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3N1KHZpbnQxNm00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgaW50OF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2NzdSh2aW50MTZtOF90IG9wMCwgaW50OF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3N1KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjY3N1KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2NzdSh2aW50MzJtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjY3N1KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bWFjY3N1KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjc3UodmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bWFjY3N1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDE2X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2NzdSh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjY3N1KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3N1KHZpbnQ2NG0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2NzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3N1KHZpbnQ2NG00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50MzJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3N1KHZpbnQ2NG04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2N1cyh2aW50MTZtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2N1cyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjdXModmludDE2bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjdXModmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2N1cyh2aW50MTZtMV90IG9wMCwgdWludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdWludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjdXModmludDE2bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB1aW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3VzKHZpbnQxNm00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjdXModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdWludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2N1cyh2aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3VzKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2N1cyh2aW50MzJtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjY3VzKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2N1cyh2aW50MzJtMV90IG9wMCwgdWludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3VzKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjY3VzKHZpbnQzMm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bWFjY3VzKHZpbnQzMm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjdXModmludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bWFjY3VzKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2N1cyh2aW50NjRtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjY3VzKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3VzKHZpbnQ2NG0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2N1cyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3VzKHZpbnQ2NG00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3VzKHZpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtMSkpKQp2aW50OG0xX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bTIpKSkKdmludDhtMl90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG00KSkpCnZpbnQ4bTRfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtOCkpKQp2aW50OG04X3Qgdm1lcmdlKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTQpKSkKdmludDE2bTRfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTEpKSkKdmludDMybTFfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTIpKSkKdmludDMybTJfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTQpKSkKdmludDMybTRfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMSkpKQp2aW50NjRtMV90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtNCkpKQp2aW50NjRtNF90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtOCkpKQp2aW50NjRtOF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bTEpKSkKdmludDhtMV90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0yKSkpCnZpbnQ4bTJfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtNCkpKQp2aW50OG00X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bTgpKSkKdmludDhtOF90IHZtZXJnZSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG1mMikpKQp2aW50OG1mMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtZjgpKSkKdmludDhtZjhfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMSkpKQp2aW50MTZtMV90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMikpKQp2aW50MTZtMl90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kxNm00KSkpCnZpbnQxNm00X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTgpKSkKdmludDE2bThfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMSkpKQp2aW50MzJtMV90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgaW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMikpKQp2aW50MzJtMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm04KSkpCnZpbnQzMm04X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTEpKSkKdmludDY0bTFfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTIpKSkKdmludDY0bTJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTQpKSkKdmludDY0bTRfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTgpKSkKdmludDY0bThfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50NjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm04KSkpCnZvaWQgdnN1eGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm04X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3V4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG0yKSkpCnZ1aW50OG0yX3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtNCkpKQp2dWludDhtNF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2bWVyZ2UodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mMikpKQp2dWludDhtZjJfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mNCkpKQp2dWludDhtZjRfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMSkpKQp2dWludDE2bTFfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMikpKQp2dWludDE2bTJfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG0xKSkpCnZ1aW50OG0xX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtMikpKQp2dWludDhtMl90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB1aW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdWludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG04KSkpCnZ1aW50OG04X3Qgdm1lcmdlKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtNCkpKQp2dWludDE2bTRfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm04KSkpCnZ1aW50MTZtOF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdWludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdWludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MzJtOCkpKQp2dWludDMybThfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG04KSkpCnZ1aW50NjRtOF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMSkpKQp2dWludDhtMV90IHZtdl92KHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMikpKQp2dWludDhtMl90IHZtdl92KHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtNCkpKQp2dWludDhtNF90IHZtdl92KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtOCkpKQp2dWludDhtOF90IHZtdl92KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm12X3YodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm12X3YodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm12X3YodnVpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm12X3YodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm12X3YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm12X3YodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm12X3YodnVpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXZfdih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bXZfdih2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm12X3YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm12X3YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm12X3YodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm12X3YodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bXZfdih2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm12X3YodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm12X3YodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm12X3YodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm12X3YodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMSkpKQp2aW50OG0xX3Qgdm12X3YodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k4bTIpKSkKdmludDhtMl90IHZtdl92KHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bXZfdih2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtOCkpKQp2aW50OG04X3Qgdm12X3YodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm12X3YodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZtdl92KHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bXZfdih2aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm12X3YodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtMikpKQp2aW50MTZtMl90IHZtdl92KHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bXZfdih2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kxNm04KSkpCnZpbnQxNm04X3Qgdm12X3YodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm12X3YodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdl92KHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm12X3YodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtMikpKQp2aW50MzJtMl90IHZtdl92KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bXZfdih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kzMm04KSkpCnZpbnQzMm04X3Qgdm12X3YodmludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm12X3YodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXZfdih2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm12X3YodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZtdl92KHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bXZfdih2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMSkpKQp2dWludDhtMV90IHZzYWRkdSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2FkZHUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2FkZHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG00KSkpCnZ1aW50OG00X3QgdnNhZGR1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNhZGR1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtOCkpKQp2dWludDhtOF90IHZzYWRkdSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZzYWRkdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYWRkdSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNhZGR1KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c2FkZHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYWRkdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNhZGR1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYWRkdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c2FkZHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c2FkZHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNhZGR1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2FkZHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzYWRkdSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYWRkdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNhZGR1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c2FkZHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNhZGR1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNhZGR1KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNhZGR1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNhZGR1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c2FkZHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYWRkdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNhZGR1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2FkZHUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNhZGR1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNhZGR1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtNCkpKQp2dWludDhtNF90IHZzYWRkdSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2FkZHUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c2FkZHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2FkZHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c2FkZHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2FkZHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2FkZHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzYWRkdSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2FkZHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNhZGR1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNhZGR1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNhZGR1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNhZGR1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYWRkdSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNhZGR1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2FkZHUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNhZGR1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNhZGR1KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNhZGR1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzYWRkdSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNhZGR1KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2FkZHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzYWRkdSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzYWRkKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMikpKQp2aW50OG0yX3QgdnNhZGQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0yX20pKSkKdmludDhtMl90IHZzYWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2c2FkZCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnNhZGQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzYWRkKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2FkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2c2FkZCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2c2FkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c2FkZCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2c2FkZCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2c2FkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzYWRkKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnNhZGQodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c2FkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYWRkKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTEpKSkKdmludDMybTFfdCB2c2FkZCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2c2FkZCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c2FkZCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZzYWRkKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2FkZCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNhZGQodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNhZGQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNhZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNhZGQodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNhZGQodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c2FkZCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzYWRkKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2FkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtOCkpKQp2aW50OG04X3QgdnNhZGQodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG04X20pKSkKdmludDhtOF90IHZzYWRkKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzYWRkKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2FkZCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNhZGQodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNhZGQodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzYWRkKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNhZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzYWRkKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNhZGQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnNhZGQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c2FkZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c2FkZCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzYWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNhZGQodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYWRkKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNhZGQodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNhZGQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNhZGQodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNhZGQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTgpKSkKdmludDMybThfdCB2c2FkZCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZzYWRkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNhZGQodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2c2FkZCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c2FkZCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2FkZCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2c2FkZCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm00KSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTgpKSkKdm9pZCB2c3V4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c3V4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3N1YnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnNzdWJ1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtNCkpKQp2dWludDhtNF90IHZzc3VidSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3N1YnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2c3N1YnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c3N1YnUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzc3VidSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c3N1YnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzc3VidSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2c3N1YnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNzdWJ1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNzdWJ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3N1YnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c3N1YnUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3VidSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3N1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzc3VidSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2c3N1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3VidSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzc3VidSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNzdWJ1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzc3VidSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2c3N1YnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzc3VidSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNzdWJ1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMikpKQp2dWludDhtMl90IHZzc3VidSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3N1YnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c3N1YnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG04KSkpCnZ1aW50OG04X3QgdnNzdWJ1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNzdWJ1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNzdWJ1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnNzdWJ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2c3N1YnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNzdWJ1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZzc3VidSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3N1YnUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3VidSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzc3VidSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c3N1YnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3VidSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3N1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzc3VidSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c3N1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3VidSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c3N1YnUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZzc3VidSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzdWJ1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c3N1YnUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c3N1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZzc3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3N1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdnNzdWIodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZzc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG04KSkpCnZpbnQ4bThfdCB2c3N1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdnNzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNzdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzdWIodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNzdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c3N1Yih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZzc3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c3N1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3N1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNzdWIodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNzdWIodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2c3N1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNzdWIodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3ViKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZzc3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZzc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3ViKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzc3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdnNzdWIodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2c3N1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnNzdWIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzc3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2c3N1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c3N1Yih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNzdWIodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c3N1Yih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzc3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c3N1Yih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzc3ViKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnNzdWIodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c3N1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzc3ViKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3N1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzc3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzc3ViKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzc3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNzdWIodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c3N1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNzdWIodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNzdWIodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWFkZHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFhZGR1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFhZGR1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtNCkpKQp2dWludDhtNF90IHZhYWRkdSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2YWFkZHUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YWFkZHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YWFkZHUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhYWRkdSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YWFkZHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhYWRkdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2YWFkZHUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFhZGR1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFhZGR1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFhZGR1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YWFkZHUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YWFkZHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhYWRkdSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWFkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFhZGR1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhYWRkdSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2YWFkZHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhYWRkdSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhYWRkdSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFhZGR1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YWFkZHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhYWRkdSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFhZGR1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMikpKQp2dWludDhtMl90IHZhYWRkdSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWFkZHUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YWFkZHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG04KSkpCnZ1aW50OG04X3QgdmFhZGR1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFhZGR1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFhZGR1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFhZGR1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2YWFkZHUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFhZGR1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhYWRkdSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YWFkZHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhYWRkdSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhYWRkdSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YWFkZHUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhYWRkdSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWFkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFhZGR1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhYWRkdSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YWFkZHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhYWRkdSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YWFkZHUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhYWRkdSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFhZGR1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YWFkZHUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2YWFkZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhYWRkKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtNCkpKQp2aW50OG00X3QgdmFhZGQodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG00X20pKSkKdmludDhtNF90IHZhYWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG04KSkpCnZpbnQ4bThfdCB2YWFkZCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFhZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFhZGQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFhZGQodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmFhZGQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFhZGQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFhZGQodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2YWFkZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhYWRkKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFhZGQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YWFkZCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YWFkZCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFhZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFhZGQodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdmFhZGQodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTgpKSkKdmludDMybThfdCB2YWFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFhZGQodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZhYWRkKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhYWRkKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhYWRkKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZhYWRkKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhYWRkKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtMikpKQp2aW50OG0yX3QgdmFhZGQodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0yX20pKSkKdmludDhtMl90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG00KSkpCnZpbnQ4bTRfdCB2YWFkZCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFhZGQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhYWRkKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2YWFkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YWFkZCh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFhZGQodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhYWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YWFkZCh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2YWFkZCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhYWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFhZGQodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhYWRkKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YWFkZCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhYWRkKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZhYWRkKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhYWRkKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFhZGQodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhYWRkKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFhZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFhZGQodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFhZGQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFhZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YXN1YnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFzdWJ1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtNCkpKQp2dWludDhtNF90IHZhc3VidSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2YXN1YnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YXN1YnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YXN1YnUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhc3VidSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YXN1YnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhc3VidSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2YXN1YnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFzdWJ1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFzdWJ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YXN1YnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YXN1YnUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhc3VidSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YXN1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhc3VidSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2YXN1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhc3VidSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhc3VidSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFzdWJ1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhc3VidSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YXN1YnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhc3VidSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFzdWJ1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMikpKQp2dWludDhtMl90IHZhc3VidSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YXN1YnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YXN1YnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG04KSkpCnZ1aW50OG04X3QgdmFzdWJ1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFzdWJ1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFzdWJ1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFzdWJ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2YXN1YnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFzdWJ1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhc3VidSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YXN1YnUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhc3VidSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhc3VidSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YXN1YnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhc3VidSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YXN1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhc3VidSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YXN1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhc3VidSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YXN1YnUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhc3VidSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFzdWJ1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YXN1YnUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bTIpKSkKdm9pZCB2c3V4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00KSkpCnZvaWQgdnN1eGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtOCkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDFfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c3V4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG1mOCkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnN1eGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2YXN1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhc3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdmFzdWIodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZhc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG04KSkpCnZpbnQ4bThfdCB2YXN1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFzdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmFzdWIodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFzdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2YXN1Yih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhc3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YXN1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YXN1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFzdWIodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdmFzdWIodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2YXN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFzdWIodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZhc3ViKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhc3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZhc3ViKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhc3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdmFzdWIodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2YXN1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFzdWIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhc3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2YXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YXN1Yih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFzdWIodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YXN1Yih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhc3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2YXN1Yih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhc3ViKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFzdWIodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhc3ViKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YXN1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhc3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhc3ViKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZhc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhc3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFzdWIodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFzdWIodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFzdWIodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMSkpKQp2aW50OG0xX3QgdnNtdWwodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG0xX20pKSkKdmludDhtMV90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c211bCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNtdWwodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzbXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c211bCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtOCkpKQp2aW50OG04X3QgdnNtdWwodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG04X20pKSkKdmludDhtOF90IHZzbXVsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzbXVsKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzbXVsKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZzbXVsKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzbXVsKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzbXVsKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdnNtdWwodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c211bCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNtdWwodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNtdWwodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzbXVsKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzbXVsKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZzbXVsKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnNtdWwodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2c211bCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c211bCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c211bCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2c211bCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c211bCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbXVsKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtNCkpKQp2aW50OG00X3QgdnNtdWwodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG00X20pKSkKdmludDhtNF90IHZzbXVsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG04KSkpCnZpbnQ4bThfdCB2c211bCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNtdWwodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbXVsKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c211bCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNtdWwodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c211bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNtdWwodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c211bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c211bCh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbXVsKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbXVsKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c211bCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNtdWwodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c211bCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTIpKSkKdmludDMybTJfdCB2c211bCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c211bCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbXVsKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNtdWwodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c211bCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzbXVsKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbXVsKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbXVsKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzbXVsKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3NybCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3NybCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3NybCh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNzcmwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3NybCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNzcmwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzc3JsKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c3NybCh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzcmwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzc3JsKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c3NybCh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2c3NybCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c3NybCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzc3JsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MzJtMikpKQp2dWludDMybTJfdCB2c3NybCh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzcmwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNzcmwodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2c3NybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3NybCh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzc3JsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c3NybCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzcmwodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzc3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3NybCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNzcmwodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtNCkpKQp2dWludDhtNF90IHZzc3JsKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzc3JsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3NybCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c3NybCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c3NybCh2dWludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c3NybCh2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3NybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c3NybCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c3NybCh2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMikpKQp2dWludDE2bTJfdCB2c3NybCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzc3JsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNzcmwodnVpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNzcmwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzc3JsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3JsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNzcmwodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3JsKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzc3JsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNzcmwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNzcmwodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzcmwodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNzcmwodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c3NyYSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xX20pKSkKdmludDhtMV90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMikpKQp2aW50OG0yX3QgdnNzcmEodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3NyYSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzc3JhKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04KSkpCnZpbnQ4bThfdCB2c3NyYSh2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04X20pKSkKdmludDhtOF90IHZzc3JhKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2c3NyYSh2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzc3JhKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzcmEodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNzcmEodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2c3NyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzc3JhKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c3NyYSh2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3NyYSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnNzcmEodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNzcmEodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3NyYSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNzcmEodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybTEpKSkKdmludDMybTFfdCB2c3NyYSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3NyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzc3JhKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzc3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNzcmEodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZzc3JhKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzc3JhKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3JhKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3JhKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c3NyYSh2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3JhKHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNzcmEodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0xX20pKSkKdmludDhtMV90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c3NyYSh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzc3JhKHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3NyYSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtOCkpKQp2aW50OG04X3QgdnNzcmEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG04X20pKSkKdmludDhtOF90IHZzc3JhKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzc3JhKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c3NyYSh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzcmEodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzc3JhKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c3NyYSh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c3NyYSh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c3NyYSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzc3JhKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3NyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNzcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNzcmEodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzc3JhKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c3NyYSh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTgpKSkKdmludDMybThfdCB2c3NyYSh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3JhKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c3NyYSh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNzcmEodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzc3JhKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3JhKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c3NyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtNCkpKQp2dWludDhtNF90IHZuY2xpcHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTRfbSkpKQp2dWludDhtNF90IHZuY2xpcHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuY2xpcHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm5jbGlwdSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMikpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZuY2xpcHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuY2xpcHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5jbGlwdSh2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZuY2xpcHUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZuY2xpcHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTFfbSkpKQp2dWludDhtMV90IHZuY2xpcHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMikpKQp2dWludDhtMl90IHZuY2xpcHUodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00KSkpCnZ1aW50OG00X3Qgdm5jbGlwdSh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bmNsaXB1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bmNsaXB1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5jbGlwdSh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuY2xpcHUodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm5jbGlwdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5jbGlwdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZuY2xpcHUodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bmNsaXB1KHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5jbGlwdSh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5jbGlwdSh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtNCkpKQp2dWludDMybTRfdCB2bmNsaXB1KHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5jbGlwdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZ1aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00KSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMSkpKQp2aW50OG0xX3Qgdm5jbGlwKHZpbnQxNm0yX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTIpKSkKdmludDhtMl90IHZuY2xpcCh2aW50MTZtNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG00KSkpCnZpbnQ4bTRfdCB2bmNsaXAodmludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG00X20pKSkKdmludDhtNF90IHZuY2xpcCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bmNsaXAodmludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bmNsaXAodmludDE2bWYyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOCkpKQp2aW50OG1mOF90IHZuY2xpcCh2aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZpbnQzMm0yX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bmNsaXAodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5jbGlwKHZpbnQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bmNsaXAodmludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZuY2xpcCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5jbGlwKHZpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2aW50MzJtZjJfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTEpKSkKdmludDMybTFfdCB2bmNsaXAodmludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuY2xpcCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2bmNsaXAodmludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2bmNsaXAodmludDY0bThfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZuY2xpcCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5jbGlwKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bmNsaXAodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMSkpKQp2aW50OG0xX3Qgdm5jbGlwKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG0xX20pKSkKdmludDhtMV90IHZuY2xpcCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bmNsaXAodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTQpKSkKdmludDhtNF90IHZuY2xpcCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bmNsaXAodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjIpKSkKdmludDhtZjJfdCB2bmNsaXAodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bmNsaXAodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mNCkpKQp2aW50OG1mNF90IHZuY2xpcCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjgpKSkKdmludDhtZjhfdCB2bmNsaXAodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5jbGlwKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bTIpKSkKdmludDE2bTJfdCB2bmNsaXAodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5jbGlwKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5jbGlwKHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTEpKSkKdmludDMybTFfdCB2bmNsaXAodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtMikpKQp2aW50MzJtMl90IHZuY2xpcCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5jbGlwKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5jbGlwKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5jbGlwKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bmNsaXAodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0yKSkpCnZvaWQgdnN1eGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtNCkpKQp2b2lkIHZzdXhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTgpKSkKdm9pZCB2c3V4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG0xKSkpCnZvaWQgdnN1eGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNCkpKQp2b2lkIHZzdXhlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG04KSkpCnZvaWQgdnN1eGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzdXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOCkpKQp2b2lkIHZzdXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00KSkpCnZvaWQgdnN1eGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG04KSkpCnZvaWQgdnN1eGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c3V4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOCkpKQp2b2lkIHZzdXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtMikpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtNCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG04X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3V4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzdXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG04KSkpCnZvaWQgdnN1eGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG04X20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bTFfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bTJfaThtMSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2aW50OG0xX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bThfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2aW50OG0xX3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0yX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2wzMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWY0X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkc3VtKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm1mMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG00X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sMTZfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG04X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWRzdW0odnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bTFfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkc3VtKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bThfdThtMSkpKQp2dWludDhtMV90IHZyZWRzdW0odnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bThfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWYyX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2wzMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2w2NF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm1mMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWYyX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWY0X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRzdW0odnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZib29sNF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm1mMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybWYyX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG0xX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkc3VtKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG04X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG04X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0xX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTRfdThtMSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG04X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjRfdThtMSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0yX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bTRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bThfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtZjJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0yX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZib29sNF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybWYyX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMV91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtNF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtOF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1heCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWRtYXgodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWRtYXgodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWF4KHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWF4KHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWF4KHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0yX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bThfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWYyX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm0xX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm0yX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm1mMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG0xX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG04X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1pbih2aW50OG0xX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtaW4odmJvb2w0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG00X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1pbih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sMzJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1pbih2aW50OG0xX3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0yX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWluKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWluKHZib29sMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2wzMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWluKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bWY0X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWluKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWluKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm1mMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG00X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sMTZfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG04X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWRhbmQodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWRhbmQodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkYW5kKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkYW5kKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkYW5kKHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMSkpKQp2dWludDhtMV90IHZyZWRhbmQodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG00X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWYyX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZGFuZCh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZGFuZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRhbmQodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG00KSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG04KSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkb3IodmludDhtMV90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkb3IodmJvb2wyX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRvcih2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG9yKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjRfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkb3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkb3IodmJvb2wxNl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkb3IodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkb3IodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtZjJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkb3IodmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVkb3IodmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRvcih2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTFfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sNF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bThfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZyZWRvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkb3IodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0yX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkb3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtMV91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkb3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0yX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm04X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm1mMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkb3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm1mMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkb3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkb3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG04X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWR4b3IodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWR4b3IodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkeG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkeG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkeG9yKHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bTJfdThtMSkpKQp2dWludDhtMV90IHZyZWR4b3IodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWYyX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybTFfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHhvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHhvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWR4b3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U2NG00X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmJvb2w0X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjhfaTE2bTEpKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTEpKSkKdmludDMybTFfdCB2d3JlZHN1bSh2aW50MzJtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTEpKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2aW50NjRtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtMl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZpbnQ2NG0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZpbnQ2NG0xX3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtZjJfaTY0bTEpKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2aW50NjRtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtZjJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTFfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2wxX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMV91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMl91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtNF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTRfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtOF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2wyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndyZWRzdW11KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3cmVkc3VtdSh2dWludDY0bTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtZjJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtZjJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTEpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMikpKQp2b2lkIHZzdXhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG00KSkpCnZvaWQgdnN1eGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDFfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I4KSkpCnZib29sOF90IHZtbm90KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I0KSkpCnZib29sNF90IHZtbm90KHZib29sNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IyKSkpCnZib29sMl90IHZtbm90KHZib29sMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IxKSkpCnZib29sMV90IHZtbm90KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IxNikpKQp2Ym9vbDE2X3Qgdm1ub3QodmJvb2wxNl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IzMikpKQp2Ym9vbDMyX3Qgdm1ub3QodmJvb2wzMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1ub3QodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTFfbSkpKQp2dWludDhtMV90IHZpb3RhKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTJfbSkpKQp2dWludDhtMl90IHZpb3RhKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTRfbSkpKQp2dWludDhtNF90IHZpb3RhKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bThfbSkpKQp2dWludDhtOF90IHZpb3RhKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmlvdGEodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjRfbSkpKQp2dWludDhtZjRfdCB2aW90YSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZpb3RhKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmlvdGEodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2aW90YSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2aW90YSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bThfbSkpKQp2dWludDE2bThfdCB2aW90YSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZpb3RhKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmlvdGEodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTJfbSkpKQp2dWludDMybTJfdCB2aW90YSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZpb3RhKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZpb3RhKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2aW90YSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZpb3RhKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmlvdGEodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG0xX20pKSkKdmludDhtMV90IHZpZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2aWQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmlkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG04X20pKSkKdmludDhtOF90IHZpZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmlkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2aWQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmlkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZpZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm04X20pKSkKdmludDE2bThfdCB2aWQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2aWQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZpZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZpZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmlkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm00X20pKSkKdmludDMybTRfdCB2aWQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmlkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmlkKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmlkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2aWQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmlkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmlkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmlkKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmlkKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmlkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2aWQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmlkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZpZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2aWQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmlkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmlkKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmlkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2aWQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmlkKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2aWQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmlkKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZpZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZpZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmlkKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2aWQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmlkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2aWQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG0xX2k4KSkpCmludDhfdCB2bXZfeCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtMl9pOCkpKQppbnQ4X3Qgdm12X3godmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k4bTRfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG04X2k4KSkpCmludDhfdCB2bXZfeCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjJfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjRfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjhfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bTFfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMl9pMTYpKSkKaW50MTZfdCB2bXZfeCh2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kxNm00X2kxNikpKQppbnQxNl90IHZtdl94KHZpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bThfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtZjJfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWY0X2kxNikpKQppbnQxNl90IHZtdl94KHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kzMm0xX2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybTJfaTMyKSkpCmludDMyX3Qgdm12X3godmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtNF9pMzIpKSkKaW50MzJfdCB2bXZfeCh2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kzMm04X2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybWYyX2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k2NG0xX2k2NCkpKQppbnQ2NF90IHZtdl94KHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTY0bTJfaTY0KSkpCmludDY0X3Qgdm12X3godmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtNF9pNjQpKSkKaW50NjRfdCB2bXZfeCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k2NG04X2k2NCkpKQppbnQ2NF90IHZtdl94KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMV91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMl91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtNF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtOF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtZjJfdTgpKSkKdWludDhfdCB2bXZfeCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191OG1mNF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3U4bWY4X3U4KSkpCnVpbnQ4X3Qgdm12X3godnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bTFfdTE2KSkpCnVpbnQxNl90IHZtdl94KHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm0yX3UxNikpKQp1aW50MTZfdCB2bXZfeCh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MTZtNF91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bThfdTE2KSkpCnVpbnQxNl90IHZtdl94KHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mMl91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mNF91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm0xX3UzMikpKQp1aW50MzJfdCB2bXZfeCh2dWludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtMl91MzIpKSkKdWludDMyX3Qgdm12X3godnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybTRfdTMyKSkpCnVpbnQzMl90IHZtdl94KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm04X3UzMikpKQp1aW50MzJfdCB2bXZfeCh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtZjJfdTMyKSkpCnVpbnQzMl90IHZtdl94KHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtMV91NjQpKSkKdWludDY0X3Qgdm12X3godnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bTJfdTY0KSkpCnVpbnQ2NF90IHZtdl94KHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3U2NG00X3U2NCkpKQp1aW50NjRfdCB2bXZfeCh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtOF91NjQpKSkKdWludDY0X3Qgdm12X3godnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtMSkpKQp2aW50OG0xX3Qgdm12X3ModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k4bTIpKSkKdmludDhtMl90IHZtdl9zKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG00KSkpCnZpbnQ4bTRfdCB2bXZfcyh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtOCkpKQp2aW50OG04X3Qgdm12X3ModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm12X3ModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdl9zKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtZjgpKSkKdmludDhtZjhfdCB2bXZfcyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm12X3ModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTIpKSkKdmludDE2bTJfdCB2bXZfcyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMTZtNCkpKQp2aW50MTZtNF90IHZtdl9zKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kxNm04KSkpCnZpbnQxNm04X3Qgdm12X3ModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdl9zKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm12X3ModmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm12X3ModmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTIpKSkKdmludDMybTJfdCB2bXZfcyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMzJtNCkpKQp2aW50MzJtNF90IHZtdl9zKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kzMm04KSkpCnZpbnQzMm04X3Qgdm12X3ModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZtdl9zKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pNjRtMSkpKQp2aW50NjRtMV90IHZtdl9zKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm12X3ModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTQpKSkKdmludDY0bTRfdCB2bXZfcyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pNjRtOCkpKQp2aW50NjRtOF90IHZtdl9zKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXZfcyh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG0yKSkpCnZ1aW50OG0yX3Qgdm12X3ModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtNCkpKQp2dWludDhtNF90IHZtdl9zKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXZfcyh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG1mMikpKQp2dWludDhtZjJfdCB2bXZfcyh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm12X3ModnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtdl9zKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtMSkpKQp2dWludDE2bTFfdCB2bXZfcyh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdl9zKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm12X3ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtOCkpKQp2dWludDE2bThfdCB2bXZfcyh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm12X3ModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bXZfcyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtMSkpKQp2dWludDMybTFfdCB2bXZfcyh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtdl9zKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm12X3ModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtOCkpKQp2dWludDMybThfdCB2bXZfcyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm12X3ModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm12X3ModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtMikpKQp2dWludDY0bTJfdCB2bXZfcyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdl9zKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm12X3ModnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmZtdl9zKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbXZfcyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtNCkpKQp2dWludDE2bTRfdCB2Zm12X3ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZtdl9zKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZtdl9zKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZmbXZfcyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZtdl9zKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZmbXZfcyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtNCkpKQp2dWludDMybTRfdCB2Zm12X3ModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTgpKSkKdnVpbnQzMm04X3QgdmZtdl9zKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZtdl9zKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtMSkpKQp2dWludDY0bTFfdCB2Zm12X3ModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmZtdl9zKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3U2NG00KSkpCnZ1aW50NjRtNF90IHZmbXZfcyh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtOCkpKQp2dWludDY0bThfdCB2Zm12X3ModnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNsaWRldXAodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c2xpZGV1cCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGlkZXVwKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2xpZGV1cCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtOCkpKQp2aW50OG04X3QgdnNsaWRldXAodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGlkZXVwKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzbGlkZXVwKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNsaWRldXAodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGV1cCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzbGlkZXVwKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNsaWRldXAodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZXVwKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c2xpZGV1cCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c2xpZGV1cCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRldXAodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGV1cCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzbGlkZXVwKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsaWRldXAodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZXVwKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbGlkZXVwKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRldXAodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c2xpZGV1cCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbGlkZXVwKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRldXAodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNsaWRldXAodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2xpZGV1cCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZXVwKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c2xpZGV1cCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG04KSkpCnZ1aW50OG04X3QgdnNsaWRldXAodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZXVwKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzbGlkZXVwKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNsaWRldXAodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGV1cCh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzbGlkZXVwKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRldXAodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzbGlkZXVwKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c2xpZGV1cCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGV1cCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRldXAodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c2xpZGV1cCh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzbGlkZXVwKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNsaWRldXAodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGlkZXVwKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzbGlkZXVwKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNsaWRldXAodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c2xpZGV1cCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZXVwKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNsaWRldXAodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMSkpKQp2aW50OG0xX3QgdnNsaWRlZG93bih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZWRvd24odmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2c2xpZGVkb3duKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZWRvd24odmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOCkpKQp2aW50OG04X3QgdnNsaWRlZG93bih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2xpZGVkb3duKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlZG93bih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRlZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbGlkZWRvd24odmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGVkb3duKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlZG93bih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNsaWRlZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzbGlkZWRvd24odmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzbGlkZWRvd24odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZWRvd24odmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbGlkZWRvd24odmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZWRvd24odmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbGlkZWRvd24odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNsaWRlZG93bih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRlZG93bih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGlkZWRvd24odmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGlkZWRvd24odmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTIpKSkKdmludDMybTJfdCB2c2xpZGVkb3duKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsaWRlZG93bih2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsaWRlZG93bih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xpZGVkb3duKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRlZG93bih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZWRvd24odmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2xpZGVkb3duKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRlZG93bih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGVkb3duKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZWRvd24odmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsaWRlZG93bih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZWRvd24odnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNsaWRlZG93bih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGVkb3duKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZWRvd24odmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xpZGVkb3duKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNsaWRlZG93bih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZzbGlkZWRvd24odnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZWRvd24odmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xpZGVkb3duKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRlZG93bih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNsaWRlZG93bih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsaWRlZG93bih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNsaWRlZG93bih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGVkb3duKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c2xpZGVkb3duKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNsaWRlZG93bih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzbGlkZWRvd24odnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGVkb3duKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtOCkpKQp2dWludDMybThfdCB2c2xpZGVkb3duKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzbGlkZWRvd24odnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c2xpZGVkb3duKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsaWRlZG93bih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZWRvd24odnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c2xpZGVkb3duKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzbGlkZTF1cCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZTF1cCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG0yX20pKSkKdmludDhtMl90IHZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGlkZTF1cCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZTF1cCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzbGlkZTF1cCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGlkZTF1cCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMXVwKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2xpZGUxdXAodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzbGlkZTF1cCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlMXVwKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzbGlkZTF1cCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZTF1cCh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZTF1cCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c2xpZGUxdXAodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNsaWRlMXVwKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xpZGUxdXAodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGUxdXAodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNsaWRlMXVwKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzbGlkZTF1cCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZTF1cCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNsaWRlMXVwKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRlMXVwKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZTF1cCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2xpZGUxdXAodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRlMXVwKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGUxdXAodnVpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMikpKQp2dWludDhtMl90IHZzbGlkZTF1cCh2dWludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRlMXVwKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG00KSkpCnZ1aW50OG00X3QgdnNsaWRlMXVwKHZ1aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c2xpZGUxdXAodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGUxdXAodnVpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZTF1cCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnNsaWRlMXVwKHZ1aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzbGlkZTF1cCh2dWludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGUxdXAodnVpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnNsaWRlMXVwKHZ1aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRlMXVwKHZ1aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNsaWRlMXVwKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xpZGUxdXAodnVpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZzbGlkZTF1cCh2dWludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZTF1cCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGUxdXAodnVpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRlMXVwKHZ1aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c2xpZGUxdXAodnVpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMikpKQp2dWludDMybTJfdCB2c2xpZGUxdXAodnVpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGUxdXAodnVpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGlkZTF1cCh2dWludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGUxdXAodnVpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGUxdXAodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGlkZTF1cCh2dWludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZzbGlkZTF1cCh2dWludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZTF1cCh2dWludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGlkZTF1cCh2dWludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xpZGUxZG93bih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZTFkb3duKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xpZGUxZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtNCkpKQp2aW50OG00X3QgdnNsaWRlMWRvd24odmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG04KSkpCnZpbnQ4bThfdCB2c2xpZGUxZG93bih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNsaWRlMWRvd24odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMWRvd24odmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbGlkZTFkb3duKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGUxZG93bih2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlMWRvd24odmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2xpZGUxZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNsaWRlMWRvd24odmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c2xpZGUxZG93bih2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZTFkb3duKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNsaWRlMWRvd24odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c2xpZGUxZG93bih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRlMWRvd24odmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGUxZG93bih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTIpKSkKdmludDMybTJfdCB2c2xpZGUxZG93bih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTQpKSkKdmludDMybTRfdCB2c2xpZGUxZG93bih2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbGlkZTFkb3duKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZTFkb3duKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xpZGUxZG93bih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzbGlkZTFkb3duKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZTFkb3duKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNsaWRlMWRvd24odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbGlkZTFkb3duKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzbGlkZTFkb3duKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGUxZG93bih2dWludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsaWRlMWRvd24odnVpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZTFkb3duKHZ1aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGUxZG93bih2dWludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c2xpZGUxZG93bih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xpZGUxZG93bih2dWludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGUxZG93bih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c2xpZGUxZG93bih2dWludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGUxZG93bih2dWludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xpZGUxZG93bih2dWludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzbGlkZTFkb3duKHZ1aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xpZGUxZG93bih2dWludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsaWRlMWRvd24odnVpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNsaWRlMWRvd24odnVpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRlMWRvd24odnVpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzbGlkZTFkb3duKHZ1aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNsaWRlMWRvd24odnVpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGUxZG93bih2dWludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNsaWRlMWRvd24odnVpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNsaWRlMWRvd24odnVpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGlkZTFkb3duKHZ1aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsaWRlMWRvd24odnVpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2xpZGUxZG93bih2dWludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGlkZTFkb3duKHZ1aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmdhdGhlcih2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xX20pKSkKdmludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMikpKQp2aW50OG0yX3QgdnJnYXRoZXIodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTQpKSkKdmludDhtNF90IHZyZ2F0aGVyKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04KSkpCnZpbnQ4bThfdCB2cmdhdGhlcih2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04X20pKSkKdmludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmdhdGhlcih2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZyZ2F0aGVyKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2cmdhdGhlcih2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtMikpKQp2aW50MTZtMl90IHZyZ2F0aGVyKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcih2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnJnYXRoZXIodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcih2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2cmdhdGhlcih2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtMikpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZ2F0aGVyKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZ2F0aGVyKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2cmdhdGhlcih2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMSkpKQp2aW50OG0xX3QgdnJnYXRoZXIodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0xX20pKSkKdmludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2cmdhdGhlcih2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bTQpKSkKdmludDhtNF90IHZyZ2F0aGVyKHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtOCkpKQp2aW50OG04X3QgdnJnYXRoZXIodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG04X20pKSkKdmludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZyZ2F0aGVyKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2cmdhdGhlcih2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZ2F0aGVyKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2cmdhdGhlcih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcih2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2cmdhdGhlcih2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZ2F0aGVyKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJnYXRoZXIodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXIodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2cmdhdGhlcih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTgpKSkKdmludDMybThfdCB2cmdhdGhlcih2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZ2F0aGVyKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2cmdhdGhlcih2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnJnYXRoZXIodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMSkpKQp2aW50OG0xX3QgdnJnYXRoZXJlaTE2KHZpbnQ4bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTIpKSkKdmludDhtMl90IHZyZ2F0aGVyZWkxNih2aW50OG0yX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJnYXRoZXJlaTE2KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2cmdhdGhlcmVpMTYodmludDhtNF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00X20pKSkKdmludDhtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmdhdGhlcmVpMTYodmludDhtZjJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2cmdhdGhlcmVpMTYodmludDhtZjRfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2aW50OG1mOF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJnYXRoZXJlaTE2KHZpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcmVpMTYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnJnYXRoZXJlaTE2KHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcmVpMTYodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZyZ2F0aGVyZWkxNih2aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXJlaTE2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmdhdGhlcmVpMTYodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTIpKSkKdmludDMybTJfdCB2cmdhdGhlcmVpMTYodmludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTQpKSkKdmludDMybTRfdCB2cmdhdGhlcmVpMTYodmludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZ2F0aGVyZWkxNih2aW50MzJtOF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJnYXRoZXJlaTE2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmdhdGhlcmVpMTYodmludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZpbnQ2NG0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2cmdhdGhlcmVpMTYodmludDY0bTJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZyZ2F0aGVyZWkxNih2aW50NjRtNF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyZWkxNih2aW50NjRtOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMikpKQp2dWludDhtMl90IHZyZ2F0aGVyKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtNCkpKQp2dWludDhtNF90IHZyZ2F0aGVyKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOCkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2cmdhdGhlcih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJnYXRoZXIodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmdhdGhlcih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJnYXRoZXIodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZ2F0aGVyKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZ2F0aGVyKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZ2F0aGVyKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtNCkpKQp2dWludDMybTRfdCB2cmdhdGhlcih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOCkpKQp2dWludDMybThfdCB2cmdhdGhlcih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJnYXRoZXIodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZ2F0aGVyKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJnYXRoZXIodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtMSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG00KSkpCnZ1aW50OG00X3QgdnJnYXRoZXIodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtOCkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyZ2F0aGVyKHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyKHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2cmdhdGhlcih2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJnYXRoZXIodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtOCkpKQp2dWludDMybThfdCB2cmdhdGhlcih2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJnYXRoZXIodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2cmdhdGhlcih2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG0xKSkpCnZ1aW50OG0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50OG0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnJnYXRoZXJlaTE2KHZ1aW50OG0yX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00KSkpCnZ1aW50OG00X3QgdnJnYXRoZXJlaTE2KHZ1aW50OG00X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMikpKQp2dWludDhtZjJfdCB2cmdhdGhlcmVpMTYodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyZWkxNih2dWludDhtZjRfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmdhdGhlcmVpMTYodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2cmdhdGhlcmVpMTYodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZ2F0aGVyZWkxNih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2cmdhdGhlcmVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZ2F0aGVyZWkxNih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZ2F0aGVyZWkxNih2dWludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2cmdhdGhlcmVpMTYodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJnYXRoZXJlaTE2KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZ2F0aGVyZWkxNih2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2cmdhdGhlcmVpMTYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyZWkxNih2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZ2F0aGVyZWkxNih2dWludDY0bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMikpKQp2dWludDY0bTJfdCB2cmdhdGhlcmVpMTYodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJnYXRoZXJlaTE2KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2cmdhdGhlcmVpMTYodnVpbnQ2NG04X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtMSkpKQp2aW50OG0xX3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtMikpKQp2aW50OG0yX3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtNCkpKQp2aW50OG00X3QgdmNvbXByZXNzKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtOCkpKQp2aW50OG04X3QgdmNvbXByZXNzKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjIpKSkKdmludDhtZjJfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pOG1mNCkpKQp2aW50OG1mNF90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTEpKSkKdmludDE2bTFfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtMikpKQp2aW50MTZtMl90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTQpKSkKdmludDE2bTRfdCB2Y29tcHJlc3ModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm04KSkpCnZpbnQxNm04X3QgdmNvbXByZXNzKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMSkpKQp2aW50MzJtMV90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm0yKSkpCnZpbnQzMm0yX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTMybTQpKSkKdmludDMybTRfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm04KSkpCnZpbnQzMm04X3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtZjIpKSkKdmludDMybWYyX3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pNjRtMSkpKQp2aW50NjRtMV90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTY0bTQpKSkKdmludDY0bTRfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pNjRtOCkpKQp2aW50NjRtOF90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtMSkpKQp2dWludDhtMV90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtMikpKQp2dWludDhtMl90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtNCkpKQp2dWludDhtNF90IHZjb21wcmVzcyh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtOCkpKQp2dWludDhtOF90IHZjb21wcmVzcyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG1mNCkpKQp2dWludDhtZjRfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtMikpKQp2dWludDE2bTJfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTQpKSkKdnVpbnQxNm00X3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UxNm04KSkpCnZ1aW50MTZtOF90IHZjb21wcmVzcyh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtMSkpKQp2dWludDMybTFfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybTQpKSkKdnVpbnQzMm00X3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm04KSkpCnZ1aW50MzJtOF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtMSkpKQp2dWludDY0bTFfdCB2Y29tcHJlc3ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtOCkpKQp2dWludDY0bThfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtOF9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2Z2V0X2kxNm0xKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZnZXRfaTE2bTEodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmdldF9pMTZtMSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2Z2V0X2kzMm0xKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZnZXRfaTMybTEodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmdldF9pMzJtMSh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTY0bTJfaTY0bTEpKSkKdmludDY0bTFfdCB2Z2V0X2k2NG0xKHZpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZnZXRfaTY0bTEodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmdldF9pNjRtMSh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdmdldF91OG0xKHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2Z2V0X3U4bTEodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtMSkpKQp2dWludDhtMV90IHZnZXRfdThtMSh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmdldF91MTZtMSh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZnZXRfdTE2bTEodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2Z2V0X3UxNm0xKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmdldF91MzJtMSh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZnZXRfdTMybTEodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2Z2V0X3UzMm0xKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmdldF91NjRtMSh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZnZXRfdTY0bTEodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2Z2V0X3U2NG0xKHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0yKSkpCnZpbnQ4bTJfdCB2Z2V0X2k4bTIodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtOF9pOG0yKSkpCnZpbnQ4bTJfdCB2Z2V0X2k4bTIodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTIpKSkKdmludDE2bTJfdCB2Z2V0X2kxNm0yKHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtOF9pMTZtMikpKQp2aW50MTZtMl90IHZnZXRfaTE2bTIodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm00X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmdldF9pMzJtMih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTIpKSkKdmludDMybTJfdCB2Z2V0X2kzMm0yKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtNF9pNjRtMikpKQp2aW50NjRtMl90IHZnZXRfaTY0bTIodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmdldF9pNjRtMih2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdThtNF91OG0yKSkpCnZ1aW50OG0yX3QgdmdldF91OG0yKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91OG04X3U4bTIpKSkKdnVpbnQ4bTJfdCB2Z2V0X3U4bTIodnVpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZnZXRfdTE2bTIodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMikpKQp2dWludDE2bTJfdCB2Z2V0X3UxNm0yKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybTRfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmdldF91MzJtMih2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZnZXRfdTMybTIodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtNF91NjRtMikpKQp2dWludDY0bTJfdCB2Z2V0X3U2NG0yKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmdldF91NjRtMih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtNCkpKQp2aW50OG00X3QgdmdldF9pOG00KHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm00KSkpCnZpbnQxNm00X3QgdmdldF9pMTZtNCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTQpKSkKdmludDMybTRfdCB2Z2V0X2kzMm00KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtOF9pNjRtNCkpKQp2aW50NjRtNF90IHZnZXRfaTY0bTQodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtNCkpKQp2dWludDhtNF90IHZnZXRfdThtNCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bThfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmdldF91MTZtNCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm00KSkpCnZ1aW50MzJtNF90IHZnZXRfdTMybTQodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtOF91NjRtNCkpKQp2dWludDY0bTRfdCB2Z2V0X3U2NG00KHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG0yKSkpCnZpbnQ4bTJfdCB2c2V0KHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNldCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNldCh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNldCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTFfdThtMikpKQp2dWludDhtMl90IHZzZXQodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MTZtMV91MTZtMikpKQp2dWludDE2bTJfdCB2c2V0KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MzJtMV91MzJtMikpKQp2dWludDMybTJfdCB2c2V0KHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91NjRtMV91NjRtMikpKQp2dWludDY0bTJfdCB2c2V0KHZ1aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTQpKSkKdmludDhtNF90IHZzZXQodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDhtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMl9pOG00KSkpCnZpbnQ4bTRfdCB2c2V0KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm00KSkpCnZpbnQxNm00X3QgdnNldCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0yX2kxNm00KSkpCnZpbnQxNm00X3QgdnNldCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm00KSkpCnZpbnQzMm00X3QgdnNldCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0yX2kzMm00KSkpCnZpbnQzMm00X3QgdnNldCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNldCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0yX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNldCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTFfdThtNCkpKQp2dWludDhtNF90IHZzZXQodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2V0KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2dWludDhtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTFfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNldCh2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNldCh2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTFfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNldCh2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTJfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNldCh2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTFfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNldCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTJfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNldCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG04KSkpCnZpbnQ4bThfdCB2c2V0KHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTJfaThtOCkpKQp2aW50OG04X3QgdnNldCh2aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50OG0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG00X2k4bTgpKSkKdmludDhtOF90IHZzZXQodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDhtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTFfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTJfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTRfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTJfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTRfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTFfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTJfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTRfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdThtMV91OG04KSkpCnZ1aW50OG04X3QgdnNldCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTJfdThtOCkpKQp2dWludDhtOF90IHZzZXQodnVpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG00X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2V0KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2dWludDhtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTFfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTJfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTRfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTFfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTJfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTRfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTFfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTJfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTRfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtMSkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bTIpKSkKdm9pZCB2c294ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00KSkpCnZvaWQgdnNveGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00X20pKSkKdm9pZCB2c294ZWk4KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtOCkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDFfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyKSkpCnZvaWQgdnNveGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTEpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMikpKQp2b2lkIHZzb3hlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0yX20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG00KSkpCnZvaWQgdnNveGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTgpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDFfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yKSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtNCkpKQp2b2lkIHZzb3hlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG0xKSkpCnZvaWQgdnNveGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTIpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtNCkpKQp2b2lkIHZzb3hlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTIpKSkKdm9pZCB2c294ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTEpKSkKdm9pZCB2c294ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG0xKSkpCnZvaWQgdnNveGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnNveGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yKSkpCnZvaWQgdnNveGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c294ZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTgpKSkKdm9pZCB2c294ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yKSkpCnZvaWQgdnNveGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bTQpKSkKdm9pZCB2c294ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtOCkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04X20pKSkKdm9pZCB2c294ZWk4KHZib29sMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnNveGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTgpKSkKdm9pZCB2c294ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm00KSkpCnZvaWQgdnNveGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bTgpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm00KSkpCnZvaWQgdnNveGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnNveGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c294ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMikpKQp2b2lkIHZzb3hlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTQpKSkKdm9pZCB2c294ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04KSkpCnZvaWQgdnNveGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04X20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm0xKSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTIpKSkKdm9pZCB2c294ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNCkpKQp2b2lkIHZzb3hlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm00X20pKSkKdm9pZCB2c294ZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm04KSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMikpKQp2b2lkIHZzb3hlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00KSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOCkpKQp2b2lkIHZzb3hlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm0yKSkpCnZvaWQgdnNveGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00KSkpCnZvaWQgdnNveGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTgpKSkKdm9pZCB2c294ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c294ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzb3hlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnNveGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c294ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04KSkpCnZvaWQgdnNveGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm00KSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTgpKSkKdm9pZCB2c294ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c294ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzb3hlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00KSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0yKSkpCnZvaWQgdnNveGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtNCkpKQp2b2lkIHZzb3hlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTgpKSkKdm9pZCB2c294ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c294ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG04KSkpCnZvaWQgdnNveGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnNveGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c294ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOCkpKQp2b2lkIHZzb3hlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c294ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00KSkpCnZvaWQgdnNveGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG04KSkpCnZvaWQgdnNveGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yKSkpCnZvaWQgdnNveGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c294ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOCkpKQp2b2lkIHZzb3hlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c294ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzb3hlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG04KSkpCnZvaWQgdnNveGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG04X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMSkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMikpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG00X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtOCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsZTE2ZmYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsZTE2ZmYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxlMTZmZih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm04X20pKSkKdmludDE2bThfdCB2bGUxNmZmKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmxlMTZmZih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxlMTZmZih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bGUxNmZmKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bGUxNmZmKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsZTE2ZmYodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmxlMTZmZih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsZTE2ZmYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsZTE2ZmYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsZTMyZmYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsZTMyZmYodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsZTMyZmYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxlMzJmZih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsZTMyZmYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxlMzJmZih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmxlMzJmZih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxlMzJmZih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bGUzMmZmKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxlMzJmZih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxlNjRmZih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxlNjRmZih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmxlNjRmZih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxlNjRmZih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxlNjRmZih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxlNjRmZih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmxlNjRmZih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxlNjRmZih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bGU4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsZTgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxlOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bGU4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxlOCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxlOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxlOCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bGU4KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsZTgodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxlOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bGU4KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxlOCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxlOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxlOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bGU4ZmYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG0yX20pKSkKdmludDhtMl90IHZsZThmZih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxlOGZmKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bGU4ZmYodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxlOGZmKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxlOGZmKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxlOGZmKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bGU4ZmYodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsZThmZih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxlOGZmKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bGU4ZmYodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxlOGZmKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxlOGZmKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxlOGZmKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bmVnKHZpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5lZyh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTIpKSkKdmludDhtMl90IHZuZWcodmludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtNCkpKQp2aW50OG00X3Qgdm5lZyh2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG00X20pKSkKdmludDhtNF90IHZuZWcodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG04KSkpCnZpbnQ4bThfdCB2bmVnKHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bThfbSkpKQp2aW50OG04X3Qgdm5lZyh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5lZyh2aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZuZWcodmludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmVnKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bmVnKHZpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5lZyh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5lZyh2aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtMikpKQp2aW50MTZtMl90IHZuZWcodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmVnKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZuZWcodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm00X20pKSkKdmludDE2bTRfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtOCkpKQp2aW50MTZtOF90IHZuZWcodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm04X20pKSkKdmludDE2bThfdCB2bmVnKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5lZyh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZuZWcodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bmVnKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5lZyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTEpKSkKdmludDMybTFfdCB2bmVnKHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5lZyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5lZyh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZuZWcodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm00X20pKSkKdmludDMybTRfdCB2bmVnKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZuZWcodmludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm04X20pKSkKdmludDMybThfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5lZyh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuZWcodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm5lZyh2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZuZWcodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtMikpKQp2aW50NjRtMl90IHZuZWcodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bmVnKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2bmVnKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm5lZyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm5lZyh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZuZWcodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTEpKSkKdmludDhtMV90IHZub3QodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bm90KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtMikpKQp2aW50OG0yX3Qgdm5vdCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG0yX20pKSkKdmludDhtMl90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bm90KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5vdCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTgpKSkKdmludDhtOF90IHZub3QodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bm90KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bm90KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5vdCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZub3QodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZub3QodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bm90KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bm90KHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5vdCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZub3QodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5vdCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm04KSkpCnZpbnQxNm04X3Qgdm5vdCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZub3QodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bm90KHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5vdCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZub3QodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm90KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZub3QodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm90KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bm90KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5vdCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZub3QodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm04KSkpCnZpbnQzMm04X3Qgdm5vdCh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm90KHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bm90KHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm5vdCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZub3QodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZub3QodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm90KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bm90KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm5vdCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxzZTgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsc2U4KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bHNlOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bThfbSkpKQp2aW50OG04X3QgdmxzZTgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxzZTgodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bHNlOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsc2U4KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bm90KHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm90KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5vdCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5vdCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtNCkpKQp2dWludDhtNF90IHZub3QodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTRfbSkpKQp2dWludDhtNF90IHZub3QodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTgpKSkKdnVpbnQ4bThfdCB2bm90KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bm90KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bm90KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bm90KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bm90KHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bm90KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bm90KHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm90KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bm90KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm90KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bm90KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bm90KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZub3QodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZub3QodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5vdCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5vdCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZub3QodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZub3QodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm90KHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bm90KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZub3QodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZub3QodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZub3QodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZub3QodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZub3QodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZub3QodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm5vdCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm5vdCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZub3QodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZub3QodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm5vdCh2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5vdCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5vdCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm5vdCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm5vdCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm5vdCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iOCkpKQp2Ym9vbDhfdCB2bW12KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW12X21fYjQpKSkKdmJvb2w0X3Qgdm1tdih2Ym9vbDRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1tdl9tX2IyKSkpCnZib29sMl90IHZtbXYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iMSkpKQp2Ym9vbDFfdCB2bW12KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW12X21fYjE2KSkpCnZib29sMTZfdCB2bW12KHZib29sMTZfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1tdl9tX2IzMikpKQp2Ym9vbDMyX3Qgdm1tdih2Ym9vbDMyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iNjQpKSkKdmJvb2w2NF90IHZtbXYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndjdnR1X3godnVpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndjdnR1X3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2N2dHVfeCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2N2dHVfeCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ3Y3Z0dV94KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3Y3Z0dV94KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndjdnR1X3godnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3Y3Z0dV94KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3Y3Z0dV94KHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d2N2dHVfeCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d2N2dHVfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3Y3Z0dV94KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2N2dHVfeCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdndjdnR1X3godnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3Y3Z0dV94KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3Y3Z0dV94KHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2d2N2dHVfeCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMSkpKQp2dWludDMybTFfdCB2d2N2dHVfeCh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2N2dHVfeCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndjdnR1X3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndjdnR1X3godnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2d2N2dHVfeCh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndjdnR1X3godmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3Y3Z0dV94KHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d2N2dHVfeCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2d2N2dHVfeCh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3Y3Z0dV94KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG0xKSkpCnZpbnQ4bTFfdCB2bmN2dF94KHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5jdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTIpKSkKdmludDhtMl90IHZuY3Z0X3godmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtNCkpKQp2aW50OG00X3Qgdm5jdnRfeCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00X20pKSkKdmludDhtNF90IHZuY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mMikpKQp2aW50OG1mMl90IHZuY3Z0X3godmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuY3Z0X3godmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5jdnRfeCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjRfbSkpKQp2aW50OG1mNF90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOCkpKQp2aW50OG1mOF90IHZuY3Z0X3godmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bmN2dF94KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTEpKSkKdmludDE2bTFfdCB2bmN2dF94KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMikpKQp2aW50MTZtMl90IHZuY3Z0X3godmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTQpKSkKdmludDE2bTRfdCB2bmN2dF94KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm00X20pKSkKdmludDE2bTRfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bmN2dF94KHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5jdnRfeCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMSkpKQp2aW50MzJtMV90IHZuY3Z0X3godmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5jdnRfeCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTQpKSkKdmludDMybTRfdCB2bmN2dF94KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm00X20pKSkKdmludDMybTRfdCB2bmN2dF94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bmN2dF94KHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuY3Z0X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bGUxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bGUxNih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsZTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmxlMTYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsZTE2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsZTE2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxlMTYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxlMTYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bGUxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsZTE2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bGUxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bGUxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2bGUzMih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bGUzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2bGUzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZsZTMyKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bGUzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsZTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsZTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsZTMyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmxlMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsZTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmxzZTgodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsc2U4KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG00X20pKSkKdnVpbnQ4bTRfdCB2bHNlOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmxzZTgodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxzZTgodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHNlOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsc2U4KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bGU2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bGU2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bGU2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2bGU2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bGU2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bGU2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bGU2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bGU2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMSkpKQp2b2lkIHZzZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTIpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0yX20pKSkKdm9pZCB2c2UxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTQpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm00X20pKSkKdm9pZCB2c2UxNih2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTgpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm04X20pKSkKdm9pZCB2c2UxNih2Ym9vbDJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xKSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTIpKSkKdm9pZCB2c2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00KSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00X20pKSkKdm9pZCB2c2UxNih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOCkpKQp2b2lkIHZzZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOF9tKSkpCnZvaWQgdnNlMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTEpKSkKdm9pZCB2c2UzMihpbnQzMl90ICogb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0yKSkpCnZvaWQgdnNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNlMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtNCkpKQp2b2lkIHZzZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzZTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtOCkpKQp2b2lkIHZzZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c2UzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xKSkpCnZvaWQgdnNlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTIpKSkKdm9pZCB2c2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNCkpKQp2b2lkIHZzZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNlMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTgpKSkKdm9pZCB2c2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm1mMikpKQp2b2lkIHZzZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c2UzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMSkpKQp2aW50OG0xX3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG0xX20pKSkKdmludDhtMV90IHZsdXhlaTgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG0yKSkpCnZpbnQ4bTJfdCB2bHV4ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTJfbSkpKQp2aW50OG0yX3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTQpKSkKdmludDhtNF90IHZsdXhlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bHV4ZWk4KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOCkpKQp2aW50OG04X3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG04X20pKSkKdmludDhtOF90IHZsdXhlaTgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsdXhlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0yKSkpCnZvaWQgdnNlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtNCkpKQp2b2lkIHZzZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzZTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTgpKSkKdm9pZCB2c2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMikpKQp2b2lkIHZzZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00KSkpCnZvaWQgdnNlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTgpKSkKdm9pZCB2c2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bThfbSkpKQp2b2lkIHZzZTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmxzZTE2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bHNlMTYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxzZTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsc2UxNih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsc2UxNih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxzZTE2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsc2UxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxzZTE2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsc2UxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bHNlMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bHNlMTYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsc2UxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmxzZTMyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bHNlMzIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2bHNlMzIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bHNlMzIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxzZTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bHNlMzIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bHNlMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHNlMzIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsc2U2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxzZTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHNlNjQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZsc2U2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I4KSkpCmxvbmcgdmZpcnN0KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iOF9tKSkpCmxvbmcgdmZpcnN0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I0KSkpCmxvbmcgdmZpcnN0KHZib29sNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNF9tKSkpCmxvbmcgdmZpcnN0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IyKSkpCmxvbmcgdmZpcnN0KHZib29sMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMl9tKSkpCmxvbmcgdmZpcnN0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxKSkpCmxvbmcgdmZpcnN0KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMV9tKSkpCmxvbmcgdmZpcnN0KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNikpKQpsb25nIHZmaXJzdCh2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNl9tKSkpCmxvbmcgdmZpcnN0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyKSkpCmxvbmcgdmZpcnN0KHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyX20pKSkKbG9uZyB2Zmlyc3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNjQpKSkKbG9uZyB2Zmlyc3QodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNjRfbSkpKQpsb25nIHZmaXJzdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZsbXVsX2V4dF9pMTZtMSh2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxtdWxfZXh0X2kxNm0xKHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtZjJfaTMybTEpKSkKdmludDMybTFfdCB2bG11bF9leHRfaTMybTEodmludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfZXh0X2k4bWYyKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfZXh0X2k4bWYyKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfZXh0X2kxNm1mMih2aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF9leHRfaThtZjQodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG0yKSkpCnZpbnQ4bTJfdCB2bG11bF9leHRfaThtMih2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm0xX2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfZXh0X2kxNm0yKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMikpKQp2aW50MTZtMl90IHZsbXVsX2V4dF9pMTZtMih2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfZXh0X2kxNm0yKHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtMikpKQp2aW50MzJtMl90IHZsbXVsX2V4dF9pMzJtMih2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtZjJfaTMybTIpKSkKdmludDMybTJfdCB2bG11bF9leHRfaTMybTIodmludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k2NG0xX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmxtdWxfZXh0X2k2NG0yKHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTFfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG0yX2k4bTQpKSkKdmludDhtNF90IHZsbXVsX2V4dF9pOG00KHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjJfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTJfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm00KSkpCnZpbnQxNm00X3QgdmxtdWxfZXh0X2kxNm00KHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0xX2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfZXh0X2kzMm00KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0yX2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfZXh0X2kzMm00KHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtNCkpKQp2aW50MzJtNF90IHZsbXVsX2V4dF9pMzJtNCh2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTQpKSkKdmludDY0bTRfdCB2bG11bF9leHRfaTY0bTQodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTJfaTY0bTQpKSkKdmludDY0bTRfdCB2bG11bF9leHRfaTY0bTQodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG04KSkpCnZpbnQ4bThfdCB2bG11bF9leHRfaThtOCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTJfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG00X2k4bTgpKSkKdmludDhtOF90IHZsbXVsX2V4dF9pOG04KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjJfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTJfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTRfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm04KSkpCnZpbnQxNm04X3QgdmxtdWxfZXh0X2kxNm04KHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0xX2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0yX2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm00X2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtOCkpKQp2aW50MzJtOF90IHZsbXVsX2V4dF9pMzJtOCh2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTJfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTRfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZsbXVsX2V4dF91OG0xKHZ1aW50OG1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdmxtdWxfZXh0X3U4bTEodnVpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG11bF9leHRfdThtMSh2dWludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsbXVsX2V4dF91MTZtMSh2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF9leHRfdTE2bTEodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxtdWxfZXh0X3UzMm0xKHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxtdWxfZXh0X3U4bWYyKHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF9leHRfdThtZjIodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsbXVsX2V4dF91MTZtZjIodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF9leHRfdThtZjQodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtMikpKQp2dWludDhtMl90IHZsbXVsX2V4dF91OG0yKHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG11bF9leHRfdThtMih2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtMikpKQp2dWludDhtMl90IHZsbXVsX2V4dF91OG0yKHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG0yKSkpCnZ1aW50OG0yX3QgdmxtdWxfZXh0X3U4bTIodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX2V4dF91MTZtMih2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX2V4dF91MTZtMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMikpKQp2dWludDE2bTJfdCB2bG11bF9leHRfdTE2bTIodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMV91MzJtMikpKQp2dWludDMybTJfdCB2bG11bF9leHRfdTMybTIodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm1mMl91MzJtMikpKQp2dWludDMybTJfdCB2bG11bF9leHRfdTMybTIodnVpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMV91NjRtMikpKQp2dWludDY0bTJfdCB2bG11bF9leHRfdTY0bTIodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTQpKSkKdnVpbnQ4bTRfdCB2bG11bF9leHRfdThtNCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG00KSkpCnZ1aW50OG00X3QgdmxtdWxfZXh0X3U4bTQodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm00KSkpCnZ1aW50MTZtNF90IHZsbXVsX2V4dF91MTZtNCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxtdWxfZXh0X3UxNm00KHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxtdWxfZXh0X3UxNm00KHZ1aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsbXVsX2V4dF91MTZtNCh2dWludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm00KSkpCnZ1aW50MzJtNF90IHZsbXVsX2V4dF91MzJtNCh2dWludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTJfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxtdWxfZXh0X3UzMm00KHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxtdWxfZXh0X3UzMm00KHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxtdWxfZXh0X3U2NG00KHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMl91NjRtNCkpKQp2dWludDY0bTRfdCB2bG11bF9leHRfdTY0bTQodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTRfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTgpKSkKdnVpbnQ4bThfdCB2bG11bF9leHRfdThtOCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG04KSkpCnZ1aW50OG04X3QgdmxtdWxfZXh0X3U4bTgodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm04KSkpCnZ1aW50MTZtOF90IHZsbXVsX2V4dF91MTZtOCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmxtdWxfZXh0X3UxNm04KHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtNF91MTZtOCkpKQp2dWludDE2bThfdCB2bG11bF9leHRfdTE2bTgodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mMl91MTZtOCkpKQp2dWludDE2bThfdCB2bG11bF9leHRfdTE2bTgodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjRfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmxtdWxfZXh0X3UxNm04KHZ1aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTFfdTMybTgpKSkKdnVpbnQzMm04X3QgdmxtdWxfZXh0X3UzMm04KHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMl91MzJtOCkpKQp2dWludDMybThfdCB2bG11bF9leHRfdTMybTgodnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm00X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsbXVsX2V4dF91MzJtOCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm04KSkpCnZ1aW50MzJtOF90IHZsbXVsX2V4dF91MzJtOCh2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG0xX3U2NG04KSkpCnZ1aW50NjRtOF90IHZsbXVsX2V4dF91NjRtOCh2dWludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmxtdWxfZXh0X3U2NG04KHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtNF91NjRtOCkpKQp2dWludDY0bThfdCB2bG11bF9leHRfdTY0bTgodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMV9pOG1mMikpKQp2aW50OG1mMl90IHZsbXVsX3RydW5jX2k4bWYyKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfdHJ1bmNfaThtZjIodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjIpKSkKdmludDhtZjJfdCB2bG11bF90cnVuY19pOG1mMih2aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG1mMikpKQp2aW50OG1mMl90IHZsbXVsX3RydW5jX2k4bWYyKHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfdHJ1bmNfaTE2bWYyKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsbXVsX3RydW5jX2kxNm1mMih2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG11bF90cnVuY19pMTZtZjIodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfdHJ1bmNfaTE2bWYyKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTFfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsbXVsX3RydW5jX2kzMm1mMih2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm0yX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bG11bF90cnVuY19pMzJtZjIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIpKSkKdmludDMybWYyX3QgdmxtdWxfdHJ1bmNfaTMybWYyKHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybThfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsbXVsX3RydW5jX2kzMm1mMih2aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTFfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mNCkpKQp2aW50OG1mNF90IHZsbXVsX3RydW5jX2k4bWY0KHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfaThtZjQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtZjJfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0xX2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG11bF90cnVuY19pMTZtZjQodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmxtdWxfdHJ1bmNfaTE2bWY0KHZpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTRfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsbXVsX3RydW5jX2kxNm1mNCh2aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm04X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG11bF90cnVuY19pMTZtZjQodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtZjJfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsbXVsX3RydW5jX2kxNm1mNCh2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtZjgpKSkKdmludDhtZjhfdCB2bG11bF90cnVuY19pOG1mOCh2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG1mOCkpKQp2aW50OG1mOF90IHZsbXVsX3RydW5jX2k4bWY4KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bWYyX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mNF9pOG1mOCkpKQp2aW50OG1mOF90IHZsbXVsX3RydW5jX2k4bWY4KHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG11bF90cnVuY19pOG0xKHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX3RydW5jX2k4bTEodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtMSkpKQp2aW50OG0xX3QgdmxtdWxfdHJ1bmNfaThtMSh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2bG11bF90cnVuY19pMTZtMSh2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxtdWxfdHJ1bmNfaTE2bTEodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZsbXVsX3RydW5jX2kxNm0xKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2bG11bF90cnVuY19pMzJtMSh2aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm00X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxtdWxfdHJ1bmNfaTMybTEodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZsbXVsX3RydW5jX2kzMm0xKHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bTJfaTY0bTEpKSkKdmludDY0bTFfdCB2bG11bF90cnVuY19pNjRtMSh2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmxtdWxfdHJ1bmNfaTY0bTEodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZsbXVsX3RydW5jX2k2NG0xKHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG0yKSkpCnZpbnQ4bTJfdCB2bG11bF90cnVuY19pOG0yKHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX3RydW5jX2k4bTIodmludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfdHJ1bmNfaTE2bTIodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMikpKQp2aW50MTZtMl90IHZsbXVsX3RydW5jX2kxNm0yKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTRfaTMybTIpKSkKdmludDMybTJfdCB2bG11bF90cnVuY19pMzJtMih2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmxtdWxfdHJ1bmNfaTMybTIodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMikpKQp2aW50NjRtMl90IHZsbXVsX3RydW5jX2k2NG0yKHZpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTIpKSkKdmludDY0bTJfdCB2bG11bF90cnVuY19pNjRtMih2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfdHJ1bmNfaThtNCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF90cnVuY19pMTZtNCh2aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfdHJ1bmNfaTMybTQodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtNCkpKQp2aW50NjRtNF90IHZsbXVsX3RydW5jX2k2NG00KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF90cnVuY191OG1mMih2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTJfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxtdWxfdHJ1bmNfdThtZjIodnVpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsbXVsX3RydW5jX3U4bWYyKHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF90cnVuY191OG1mMih2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0xX3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0xX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0yX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm00X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTFfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfdThtZjQodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsbXVsX3RydW5jX3U4bWY0KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF90cnVuY191OG1mNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfdThtZjQodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mMl91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF90cnVuY191OG1mNCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtZjJfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bG11bF90cnVuY191MTZtZjQodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTFfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfdThtZjgodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsbXVsX3RydW5jX3U4bWY4KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfdThtZjgodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mMl91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mNF91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG11bF90cnVuY191OG0xKHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdmxtdWxfdHJ1bmNfdThtMSh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtMSkpKQp2dWludDhtMV90IHZsbXVsX3RydW5jX3U4bTEodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG11bF90cnVuY191OG0yKHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG0yKSkpCnZ1aW50OG0yX3QgdmxtdWxfdHJ1bmNfdThtMih2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX3RydW5jX3UxNm0yKHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX3RydW5jX3UxNm0yKHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm00X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsbXVsX3RydW5jX3UzMm0yKHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsbXVsX3RydW5jX3UzMm0yKHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG00X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsbXVsX3RydW5jX3U2NG0yKHZ1aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG04X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsbXVsX3RydW5jX3U2NG0yKHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX3RydW5jX3U4bTQodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtNCkpKQp2dWludDE2bTRfdCB2bG11bF90cnVuY191MTZtNCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtNCkpKQp2dWludDMybTRfdCB2bG11bF90cnVuY191MzJtNCh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtNCkpKQp2dWludDY0bTRfdCB2bG11bF90cnVuY191NjRtNCh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjgpKSkKdmJvb2w4X3Qgdm1hbmQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjQpKSkKdmJvb2w0X3Qgdm1hbmQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjIpKSkKdmJvb2wyX3Qgdm1hbmQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjEpKSkKdmJvb2wxX3Qgdm1hbmQodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjE2KSkpCnZib29sMTZfdCB2bWFuZCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1hbmQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFuZF9tbV9iNjQpKSkKdmJvb2w2NF90IHZtYW5kKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjgpKSkKdmJvb2w4X3Qgdm1hbmRub3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjQpKSkKdmJvb2w0X3Qgdm1hbmRub3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjIpKSkKdmJvb2wyX3Qgdm1hbmRub3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjEpKSkKdmJvb2wxX3Qgdm1hbmRub3QodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjE2KSkpCnZib29sMTZfdCB2bWFuZG5vdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1hbmRub3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iNjQpKSkKdmJvb2w2NF90IHZtYW5kbm90KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2I4KSkpCnZib29sOF90IHZtbmFuZCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjQpKSkKdmJvb2w0X3Qgdm1uYW5kKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMikpKQp2Ym9vbDJfdCB2bW5hbmQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2IxKSkpCnZib29sMV90IHZtbmFuZCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjE2KSkpCnZib29sMTZfdCB2bW5hbmQodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjMyKSkpCnZib29sMzJfdCB2bW5hbmQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjY0KSkpCnZib29sNjRfdCB2bW5hbmQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iOCkpKQp2Ym9vbDhfdCB2bW5vcih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iNCkpKQp2Ym9vbDRfdCB2bW5vcih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMikpKQp2Ym9vbDJfdCB2bW5vcih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMSkpKQp2Ym9vbDFfdCB2bW5vcih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMTYpKSkKdmJvb2wxNl90IHZtbm9yKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjMyKSkpCnZib29sMzJfdCB2bW5vcih2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1ub3IodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2I4KSkpCnZib29sOF90IHZtb3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iNCkpKQp2Ym9vbDRfdCB2bW9yKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm1vcih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2IxKSkpCnZib29sMV90IHZtb3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMTYpKSkKdmJvb2wxNl90IHZtb3IodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1vcih2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjY0KSkpCnZib29sNjRfdCB2bW9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iOCkpKQp2Ym9vbDhfdCB2bW9ybm90KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjQpKSkKdmJvb2w0X3Qgdm1vcm5vdCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9ybm90X21tX2IyKSkpCnZib29sMl90IHZtb3Jub3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMSkpKQp2Ym9vbDFfdCB2bW9ybm90KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjE2KSkpCnZib29sMTZfdCB2bW9ybm90KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMzIpKSkKdmJvb2wzMl90IHZtb3Jub3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9ybm90X21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1vcm5vdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjgpKSkKdmJvb2w4X3Qgdm1zYmYodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNiZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjQpKSkKdmJvb2w0X3Qgdm1zYmYodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNiZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjIpKSkKdmJvb2wyX3Qgdm1zYmYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNiZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjEpKSkKdmJvb2wxX3Qgdm1zYmYodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNiZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjE2KSkpCnZib29sMTZfdCB2bXNiZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc2JmKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc2JmKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zYmYodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNiZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjgpKSkKdmJvb2w4X3Qgdm1zaWYodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNpZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjQpKSkKdmJvb2w0X3Qgdm1zaWYodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNpZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjIpKSkKdmJvb2wyX3Qgdm1zaWYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNpZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjEpKSkKdmJvb2wxX3Qgdm1zaWYodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNpZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2KSkpCnZib29sMTZfdCB2bXNpZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc2lmKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc2lmKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zaWYodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNpZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zaWYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNpZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNpZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjgpKSkKdmJvb2w4X3Qgdm1zb2YodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNvZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjQpKSkKdmJvb2w0X3Qgdm1zb2YodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNvZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjIpKSkKdmJvb2wyX3Qgdm1zb2YodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNvZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjEpKSkKdmJvb2wxX3Qgdm1zb2YodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNvZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2KSkpCnZib29sMTZfdCB2bXNvZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc29mKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc29mKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zb2YodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNvZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zb2YodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNvZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNvZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iOCkpKQp2Ym9vbDhfdCB2bXhub3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I0KSkpCnZib29sNF90IHZteG5vcih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXhub3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm14bm9yKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iMSkpKQp2Ym9vbDFfdCB2bXhub3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IxNikpKQp2Ym9vbDE2X3Qgdm14bm9yKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm14bm9yKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm14bm9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjgpKSkKdmJvb2w4X3Qgdm14b3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjQpKSkKdmJvb2w0X3Qgdm14b3IodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm14b3IodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjEpKSkKdmJvb2wxX3Qgdm14b3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjE2KSkpCnZib29sMTZfdCB2bXhvcih2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm14b3IodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXhvcl9tbV9iNjQpKSkKdmJvb2w2NF90IHZteG9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iOCkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I4X20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I0KSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjRfbSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjIpKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMl9tKSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2IxX20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2IxNikpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMTZfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMTZfbSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMzIpKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDMyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjMyX20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjY0KSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I2NF9tKSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X2kxNm0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pMTZtMikpKQp2aW50MTZtMl90IHZyZWludGVycHJldF9pMTZtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVpbnRlcnByZXRfaTE2bTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlaW50ZXJwcmV0X2kxNm04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZWludGVycHJldF9pMTZtZjIodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjRfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZyZWludGVycHJldF9pMTZtZjQodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVpbnRlcnByZXRfaTE2bTEodmludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVpbnRlcnByZXRfaTE2bTQodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfaTE2bTgpKSkKdmludDE2bThfdCB2cmVpbnRlcnByZXRfaTE2bTgodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWludGVycHJldF9pMTZtMSh2aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9pMTZtMikpKQp2aW50MTZtMl90IHZyZWludGVycHJldF9pMTZtMih2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9pMTZtNCkpKQp2aW50MTZtNF90IHZyZWludGVycHJldF9pMTZtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZWludGVycHJldF9pMTZtOCh2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlaW50ZXJwcmV0X2kzMm0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pMzJtMikpKQp2aW50MzJtMl90IHZyZWludGVycHJldF9pMzJtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTMybTQpKSkKdmludDMybTRfdCB2cmVpbnRlcnByZXRfaTMybTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kzMm04KSkpCnZpbnQzMm04X3QgdnJlaW50ZXJwcmV0X2kzMm04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZWludGVycHJldF9pMzJtZjIodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVpbnRlcnByZXRfaTMybTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaTMybTIpKSkKdmludDMybTJfdCB2cmVpbnRlcnByZXRfaTMybTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaTMybTQpKSkKdmludDMybTRfdCB2cmVpbnRlcnByZXRfaTMybTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaTMybTgpKSkKdmludDMybThfdCB2cmVpbnRlcnByZXRfaTMybTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfaTMybWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWludGVycHJldF9pMzJtMSh2aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9pMzJtMikpKQp2aW50MzJtMl90IHZyZWludGVycHJldF9pMzJtMih2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pMzJtOCkpKQp2aW50MzJtOF90IHZyZWludGVycHJldF9pMzJtOCh2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pNjRtMikpKQp2aW50NjRtMl90IHZyZWludGVycHJldF9pNjRtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVpbnRlcnByZXRfaTY0bTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaTY0bTgpKSkKdmludDY0bThfdCB2cmVpbnRlcnByZXRfaTY0bTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVpbnRlcnByZXRfaTY0bTEodmludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfaTY0bTgpKSkKdmludDY0bThfdCB2cmVpbnRlcnByZXRfaTY0bTgodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlaW50ZXJwcmV0X2k4bTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaThtMikpKQp2aW50OG0yX3QgdnJlaW50ZXJwcmV0X2k4bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaThtOCkpKQp2aW50OG04X3QgdnJlaW50ZXJwcmV0X2k4bTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJlaW50ZXJwcmV0X2k4bWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfaThtZjQpKSkKdmludDhtZjRfdCB2cmVpbnRlcnByZXRfaThtZjQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k4bTEpKSkKdmludDhtMV90IHZyZWludGVycHJldF9pOG0xKHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2k4bTIpKSkKdmludDhtMl90IHZyZWludGVycHJldF9pOG0yKHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2k4bTQpKSkKdmludDhtNF90IHZyZWludGVycHJldF9pOG00KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k4bTgpKSkKdmludDhtOF90IHZyZWludGVycHJldF9pOG04KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9pOG1mMikpKQp2aW50OG1mMl90IHZyZWludGVycHJldF9pOG1mMih2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlaW50ZXJwcmV0X2k4bTEodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaThtMikpKQp2aW50OG0yX3QgdnJlaW50ZXJwcmV0X2k4bTIodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bThfaThtOCkpKQp2aW50OG04X3QgdnJlaW50ZXJwcmV0X2k4bTgodmludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMV9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVpbnRlcnByZXRfaThtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX2k4bTIpKSkKdmludDhtMl90IHZyZWludGVycHJldF9pOG0yKHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodnVpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtOF9pOG04KSkpCnZpbnQ4bThfdCB2cmVpbnRlcnByZXRfaThtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl9pOG1mMikpKQp2aW50OG1mMl90IHZyZWludGVycHJldF9pOG1mMih2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtZjRfaThtZjQpKSkKdmludDhtZjRfdCB2cmVpbnRlcnByZXRfaThtZjQodnVpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlaW50ZXJwcmV0X2k4bWY4KHZ1aW50OG1mOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMV9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWludGVycHJldF9pMTZtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodnVpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm00X2kxNm00KSkpCnZpbnQxNm00X3QgdnJlaW50ZXJwcmV0X2kxNm00KHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtOF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZWludGVycHJldF9pMTZtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZ1aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmVpbnRlcnByZXRfaTE2bWY0KHZ1aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVpbnRlcnByZXRfaTMybTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX2kzMm0yKSkpCnZpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X2kzMm0yKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfaTMybTgpKSkKdmludDMybThfdCB2cmVpbnRlcnByZXRfaTMybTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnJlaW50ZXJwcmV0X2kzMm1mMih2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl9pNjRtMikpKQp2aW50NjRtMl90IHZyZWludGVycHJldF9pNjRtMih2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWludGVycHJldF91MTZtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZWludGVycHJldF91MTZtMih2dWludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZWludGVycHJldF91MTZtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZWludGVycHJldF91MTZtZjIodnVpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY0X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJlaW50ZXJwcmV0X3UxNm1mNCh2dWludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfdTE2bWYyKHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZWludGVycHJldF91MzJtMih2dWludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG00X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZWludGVycHJldF91MzJtNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZWludGVycHJldF91MzJtZjIodnVpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X3UzMm0yKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF91MzJtNCkpKQp2dWludDMybTRfdCB2cmVpbnRlcnByZXRfdTMybTQodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJlaW50ZXJwcmV0X3UzMm1mMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X3UzMm0yKHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtNF91MzJtNCkpKQp2dWludDMybTRfdCB2cmVpbnRlcnByZXRfdTMybTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91NjRtMikpKQp2dWludDY0bTJfdCB2cmVpbnRlcnByZXRfdTY0bTIodnVpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtNF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVpbnRlcnByZXRfdTY0bTQodnVpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X3U2NG0xKHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMikpKQp2dWludDY0bTJfdCB2cmVpbnRlcnByZXRfdTY0bTIodnVpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm00X3U2NG00KSkpCnZ1aW50NjRtNF90IHZyZWludGVycHJldF91NjRtNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X3U2NG04KHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZWludGVycHJldF91NjRtMih2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJlaW50ZXJwcmV0X3U2NG00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVpbnRlcnByZXRfdThtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfdThtMikpKQp2dWludDhtMl90IHZyZWludGVycHJldF91OG0yKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF91OG00KSkpCnZ1aW50OG00X3QgdnJlaW50ZXJwcmV0X3U4bTQodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3U4bTgpKSkKdnVpbnQ4bThfdCB2cmVpbnRlcnByZXRfdThtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyZWludGVycHJldF91OG1mMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF91OG1mNCkpKQp2dWludDhtZjRfdCB2cmVpbnRlcnByZXRfdThtZjQodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlaW50ZXJwcmV0X3U4bTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmVpbnRlcnByZXRfdThtMih2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdThtNCkpKQp2dWludDhtNF90IHZyZWludGVycHJldF91OG00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91OG04KSkpCnZ1aW50OG04X3QgdnJlaW50ZXJwcmV0X3U4bTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91OG1mMikpKQp2dWludDhtZjJfdCB2cmVpbnRlcnByZXRfdThtZjIodnVpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlaW50ZXJwcmV0X3U4bTEodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0yX3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmVpbnRlcnByZXRfdThtMih2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTRfdThtNCkpKQp2dWludDhtNF90IHZyZWludGVycHJldF91OG00KHZ1aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91OG04KSkpCnZ1aW50OG04X3QgdnJlaW50ZXJwcmV0X3U4bTgodnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWludGVycHJldF91OG0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl91OG0yKSkpCnZ1aW50OG0yX3QgdnJlaW50ZXJwcmV0X3U4bTIodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X3U4bTQpKSkKdnVpbnQ4bTRfdCB2cmVpbnRlcnByZXRfdThtNCh2aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bThfdThtOCkpKQp2dWludDhtOF90IHZyZWludGVycHJldF91OG04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlaW50ZXJwcmV0X3U4bWYyKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZWludGVycHJldF91OG1mNCh2aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG1mOF91OG1mOCkpKQp2dWludDhtZjhfdCB2cmVpbnRlcnByZXRfdThtZjgodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZWludGVycHJldF91MTZtMih2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF91MTZtNCkpKQp2dWludDE2bTRfdCB2cmVpbnRlcnByZXRfdTE2bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZWludGVycHJldF91MTZtZjIodmludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZWludGVycHJldF91MTZtZjQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMikpKQp2dWludDMybTJfdCB2cmVpbnRlcnByZXRfdTMybTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJlaW50ZXJwcmV0X3UzMm00KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtZjJfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfdTMybWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnJlaW50ZXJwcmV0X3U2NG0yKHZpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X3U2NG00KSkpCnZ1aW50NjRtNF90IHZyZWludGVycHJldF91NjRtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodmludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2I4KSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2I0KSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IyKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IxKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IxNikpKQp2b2lkIHZzZTEodWludDhfdCAqIG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxX3ZfYjMyKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNjQpKSkKdm9pZCB2c2UxKHVpbnQ4X3QgKiBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2V4dF92ZjIodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNleHRfdmYyKHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2V4dF92ZjIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTEpKSkKdmludDE2bTFfdCB2c2V4dF92ZjIodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2V4dF92ZjIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMikpKQp2aW50MTZtMl90IHZzZXh0X3ZmMih2aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNleHRfdmYyKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm00KSkpCnZpbnQxNm00X3QgdnNleHRfdmYyKHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm00X20pKSkKdmludDE2bTRfdCB2c2V4dF92ZjIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTgpKSkKdmludDE2bThfdCB2c2V4dF92ZjIodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzZXh0X3ZmMih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNleHRfdmYyKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNleHRfdmYyKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtMSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmMih2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0xX20pKSkKdmludDMybTFfdCB2c2V4dF92ZjIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTIpKSkKdmludDMybTJfdCB2c2V4dF92ZjIodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0yX20pKSkKdmludDMybTJfdCB2c2V4dF92ZjIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtNCkpKQp2aW50MzJtNF90IHZzZXh0X3ZmMih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTgpKSkKdmludDMybThfdCB2c2V4dF92ZjIodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm04X20pKSkKdmludDMybThfdCB2c2V4dF92ZjIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNleHRfdmYyKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmMih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzZXh0X3ZmMih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNleHRfdmYyKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNleHRfdmYyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTgpKSkKdmludDY0bThfdCB2c2V4dF92ZjIodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG04X20pKSkKdmludDY0bThfdCB2c2V4dF92ZjIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2V4dF92ZjQodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzZXh0X3ZmNCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmNCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmNCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNleHRfdmY0KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNleHRfdmY0KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTQpKSkKdmludDMybTRfdCB2c2V4dF92ZjQodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzZXh0X3ZmNCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtOCkpKQp2aW50MzJtOF90IHZzZXh0X3ZmNCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNleHRfdmY0KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNleHRfdmY0KHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzZXh0X3ZmNCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmNCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2V4dF92ZjQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTQpKSkKdmludDY0bTRfdCB2c2V4dF92ZjQodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2V4dF92ZjQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtOCkpKQp2aW50NjRtOF90IHZzZXh0X3ZmNCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzZXh0X3ZmNCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTEpKSkKdmludDY0bTFfdCB2c2V4dF92ZjgodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2V4dF92ZjgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmOCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzZXh0X3ZmOCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNleHRfdmY4KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNleHRfdmY4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTgpKSkKdmludDY0bThfdCB2c2V4dF92ZjgodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzZXh0X3ZmOCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ6ZXh0X3ZmMih2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2emV4dF92ZjIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ6ZXh0X3ZmMih2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMSkpKQp2dWludDE2bTFfdCB2emV4dF92ZjIodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ6ZXh0X3ZmMih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnpleHRfdmYyKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ6ZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm00KSkpCnZ1aW50MTZtNF90IHZ6ZXh0X3ZmMih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2emV4dF92ZjIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtOCkpKQp2dWludDE2bThfdCB2emV4dF92ZjIodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnpleHRfdmYyKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2emV4dF92ZjIodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ6ZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMSkpKQp2dWludDMybTFfdCB2emV4dF92ZjIodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMikpKQp2dWludDMybTJfdCB2emV4dF92ZjIodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ6ZXh0X3ZmMih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTQpKSkKdnVpbnQzMm00X3QgdnpleHRfdmYyKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTRfbSkpKQp2dWludDMybTRfdCB2emV4dF92ZjIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTgpKSkKdnVpbnQzMm04X3QgdnpleHRfdmYyKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybThfbSkpKQp2dWludDMybThfdCB2emV4dF92ZjIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmYyKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmYyKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmYyKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00KSkpCnZ1aW50NjRtNF90IHZ6ZXh0X3ZmMih2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnpleHRfdmYyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOCkpKQp2dWludDY0bThfdCB2emV4dF92ZjIodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ6ZXh0X3ZmNCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2emV4dF92ZjQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMSkpKQp2dWludDMybTFfdCB2emV4dF92ZjQodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ6ZXh0X3ZmNCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnpleHRfdmY0KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTJfbSkpKQp2dWludDMybTJfdCB2emV4dF92ZjQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ6ZXh0X3ZmNCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTRfbSkpKQp2dWludDMybTRfdCB2emV4dF92ZjQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtOCkpKQp2dWludDMybThfdCB2emV4dF92ZjQodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnpleHRfdmY0KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY0KHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY0KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmY0KHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmY0KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnpleHRfdmY0KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2emV4dF92ZjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmNCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnpleHRfdmY0KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ6ZXh0X3ZmOCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMikpKQp2dWludDY0bTJfdCB2emV4dF92ZjgodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ6ZXh0X3ZmOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnpleHRfdmY4KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2emV4dF92ZjgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmOCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2emV4dF92ZjgodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00KSkpCnZvaWQgdnNzZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00X20pKSkKdm9pZCB2c3NlMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOCkpKQp2b2lkIHZzc2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOF9tKSkpCnZvaWQgdnNzZTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsdXhlaTgodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsdXhlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsdXhlaTgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bHV4ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdmx1eGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdmx1eGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsdXhlaTE2KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2bHV4ZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2bHV4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3Qgdmx1eGVpMzIoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsdXhlaTMyKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsdXhlaTY0KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG94ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsb3hlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmxveGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsb3hlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsb3hlaTE2KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG94ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmxveGVpMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxveGVpMzIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsb3hlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2bG94ZWkzMih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk2NChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bXZfdih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZtdl92KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdm12X3YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bXZfdih2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdm12X3YodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmYWRkKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZhZGQodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZmFkZCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZhZGQodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZmFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZhZGQodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZhZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZhZGQodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZmFkZCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZhZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc3ViKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzdWIodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc3ViKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzdWIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc3ViKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc3ViKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzdWIodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcnN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJzdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnJzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZyc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZyc3ViKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZyc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJzdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnJzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXVsKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdWwodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm11bCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtdWwodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm11bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtdWwodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdWwodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtdWwodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm11bCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZmRpdih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmZGl2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmZGl2KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZkaXYodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmZGl2KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZkaXYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmZGl2KHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmZGl2KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmRpdih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmZGl2KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZkaXYodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmRpdih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJkaXYodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnJkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZyZGl2KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyZGl2KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZyZGl2KHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZyZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJkaXYodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnJkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1hY2ModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWFjYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1hY2ModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWFjYyh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYWNjKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYWNjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWNjKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tYWNjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tYWNjKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1hY2ModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1hY2ModmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1zYWModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1zYWModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtc2FjKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tc2FjKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tc2FjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tc2FjKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1zYWModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1zYWModmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1hZGQodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1hZGQodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWFkZCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1hZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWFkZCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYWRkKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYWRkKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWRkKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tYWRkKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tYWRkKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1hZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1hZGQodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1zdWIodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1zdWIodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbXN1Yih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1zdWIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtc3ViKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tc3ViKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tc3ViKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1zdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1zdWIodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtaW4odmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1pbih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtaW4odmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1pbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtaW4odmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtaW4odmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtaW4odmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm1pbih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWF4KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWF4KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYXgodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWF4KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYXgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWF4KHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWF4KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1heCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbWF4KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYXgodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duaih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc2duaih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc2duaih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnNnbmoodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc2duaih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc2duaih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc2duaih2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duaih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc2duaih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc2duaih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qbih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmpuKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZzZ25qbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qbih2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnNnbmpuKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duam4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnNnbmpuKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qbih2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmpuKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duangodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qeCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmp4KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duangodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZzZ25qeCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qeCh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnNnbmp4KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duangodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnNnbmp4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qeCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmp4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmYWJzKHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmFicyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmYWJzKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmFicyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmYWJzKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmFicyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZhYnModmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmYWJzKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmYWJzKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmFicyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZlcSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZlcSh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mZXEodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmVxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmVxKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZlcSh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbmUodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZm5lKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZm5lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mbmUodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZm5lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm04X2I0KSkpCnZib29sNF90IHZtZm5lKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZuZSh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZm5lKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm00X2I4KSkpCnZib29sOF90IHZtZm5lKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZm5lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mbmUodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mbmUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZuZSh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZsdCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbHQodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZsdCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm04X2I0KSkpCnZib29sNF90IHZtZmx0KHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmx0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmx0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZsZSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZsZSh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mbGUodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmxlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmxlKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZsZSh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ3QodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZmd0KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmd0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mZ3QodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZmd0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm04X2I0KSkpCnZib29sNF90IHZtZmd0KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZndCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZmd0KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm00X2I4KSkpCnZib29sOF90IHZtZmd0KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZmd0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mZ3QodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZndCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZnZSh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ2UodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZnZSh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm04X2I0KSkpCnZib29sNF90IHZtZmdlKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmdlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmdlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMikpKQp2ZmxvYXQzMm0yX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm1lcmdlKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtYXgodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtaW4odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTFfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtNF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtOF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtZjJfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm0xX2YzMikpKQpmbG9hdCB2Zm12X2YodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtMl9mMzIpKSkKZmxvYXQgdmZtdl9mKHZmbG9hdDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjMybTRfZjMyKSkpCmZsb2F0IHZmbXZfZih2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm04X2YzMikpKQpmbG9hdCB2Zm12X2YodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtZjJfZjMyKSkpCmZsb2F0IHZmbXZfZih2ZmxvYXQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtdl9zKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdl9zKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtdl9zKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtdl9zKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm12X3ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRldXAodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2c2xpZGV1cCh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZzbGlkZXVwKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZzbGlkZXVwKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdnNsaWRldXAodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2xpZGV1cCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZzbGlkZXVwKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGV1cCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRlZG93bih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZzbGlkZWRvd24odmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2xpZGVkb3duKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2xpZGVkb3duKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZzbGlkZWRvd24odmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc2xpZGUxdXAodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTF1cCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnNsaWRlMXVwKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc2xpZGUxdXAodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc2xpZGUxdXAodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxZG93bih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNsaWRlMWRvd24odmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTFkb3duKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTFkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTFkb3duKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNsaWRlMWRvd24odmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyKHZmbG9hdDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZyZ2F0aGVyKHZmbG9hdDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyKHZmbG9hdDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJnYXRoZXIodmZsb2F0MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyKHZmbG9hdDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2cmdhdGhlcih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZyZ2F0aGVyKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdnJnYXRoZXIodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTIpKSkKdmZsb2F0MzJtMl90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTgpKSkKdmZsb2F0MzJtOF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm00X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm00X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Z2V0X2YzMm0yKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Z2V0X2YzMm0yKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Z2V0X2YzMm00KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2c2V0KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2V0KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0yX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2V0KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMikpKQp2b2lkIHZzdXhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTQpKSkKdm9pZCB2c3V4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04KSkpCnZvaWQgdnN1eGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtZjIpKSkKdm9pZCB2c3V4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0yX2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm00X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtNCkpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTgpKSkKdm9pZCB2c3V4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c3V4ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtMikpKQp2b2lkIHZzdXhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00KSkpCnZvaWQgdnN1eGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOCkpKQp2b2lkIHZzdXhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnN1eGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yKSkpCnZvaWQgdnN1eGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTQpKSkKdm9pZCB2c3V4ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0yKSkpCnZvaWQgdnNveGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNCkpKQp2b2lkIHZzb3hlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTgpKSkKdm9pZCB2c294ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm1mMikpKQp2b2lkIHZzb3hlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm00KSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOCkpKQp2b2lkIHZzb3hlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzb3hlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm0yKSkpCnZvaWQgdnNveGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTQpKSkKdm9pZCB2c294ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04KSkpCnZvaWQgdnNveGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c294ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c294ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNCkpKQp2b2lkIHZzb3hlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bGUzMmZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsZTMyZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmxlMzJmZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsZTMyZmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsZTMyZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuZWcodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbmVnKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuZWcodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmVnKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZuZWcodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmVnKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm5lZyh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZuZWcodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZuZWcodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbmVnKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsZTMyKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxlMzIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bGUzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmxlMzIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxlMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTEpKSkKdm9pZCB2c2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2YzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2YzMm0yKSkpCnZvaWQgdnNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNlMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtNCkpKQp2b2lkIHZzZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZzZTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtOCkpKQp2b2lkIHZzZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHNlMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxzZTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsc2UzMih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxzZTMyKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZjbGFzcyh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmY2xhc3ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtMikpKQp2dWludDMybTJfdCB2ZmNsYXNzKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZjbGFzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmY2xhc3ModmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2ZmNsYXNzKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOCkpKQp2dWludDMybThfdCB2ZmNsYXNzKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmZjbGFzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZmNsYXNzKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmZjbGFzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZjdnRfZih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZmN2dF9mKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmY3Z0X2YodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZmN2dF9mKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZmN2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmY3Z0X2YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmY3Z0X2YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmY3Z0X2YodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZjdnRfZih2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmY3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZmY3Z0X3J0el94KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybTIpKSkKdmludDMybTJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZjdnRfcnR6X3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmZjdnRfcnR6X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZmY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZjdnRfcnR6X3godmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZmY3Z0X3J0el94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZjdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZmY3Z0X3J0el94dSh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZmN2dF9ydHpfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZmY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtNCkpKQp2dWludDMybTRfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZmY3Z0X3J0el94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZmY3Z0X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmZjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMikpKQp2aW50MzJtMl90IHZmY3Z0X3godmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZmY3Z0X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmZjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZjdnRfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04X20pKSkKdmludDMybThfdCB2ZmN2dF94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZmY3Z0X3godmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMSkpKQp2dWludDMybTFfdCB2ZmN2dF94dSh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZjdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2ZmN2dF94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmY3Z0X3h1KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZmY3Z0X3h1KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmZjdnRfeHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZjdnRfeHUodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZuY3Z0X2YodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5jdnRfZih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm5jdnRfZih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5jdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfcnR6X3godmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2Zm5jdnRfcnR6X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMSkpKQp2aW50MTZtMV90IHZmbmN2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3J0el94KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtNCkpKQp2aW50MTZtNF90IHZmbmN2dF9ydHpfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZmbmN2dF9ydHpfeCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3J0el94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZmbmN2dF9ydHpfeHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZmbmN2dF9ydHpfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZmbmN2dF94KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjIpKSkKdmludDE2bWYyX3QgdmZuY3Z0X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtMSkpKQp2aW50MTZtMV90IHZmbmN2dF94KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xX20pKSkKdmludDE2bTFfdCB2Zm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTIpKSkKdmludDE2bTJfdCB2Zm5jdnRfeCh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTQpKSkKdmludDE2bTRfdCB2Zm5jdnRfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmZuY3Z0X3godmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3h1KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmbmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtMSkpKQp2dWludDE2bTFfdCB2Zm5jdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbmN2dF94dSh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2Zm5jdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtNCkpKQp2dWludDE2bTRfdCB2Zm5jdnRfeHUodmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3h1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlYzcodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlYzcodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZyZWM3KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmcmVjNyh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmcmVjNyh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmcmVjNyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZyZWM3KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZyZWM3KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyc3FydDcodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZyc3FydDcodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyc3FydDcodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmcnNxcnQ3KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnJzcXJ0Nyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZyc3FydDcodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNxcnQodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNxcnQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzcXJ0KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzcXJ0KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc3FydCh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc3FydCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc3FydCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc3FydCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzcXJ0KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3Y3Z0X2YodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2N2dF9mKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd2N2dF9mKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd2N2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZmd2N2dF9ydHpfeCh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZndjdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2ZndjdnRfcnR6X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZndjdnRfcnR6X3godmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZmd2N2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZmd2N2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmd2N2dF9ydHpfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2ZndjdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZndjdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtOCkpKQp2dWludDY0bThfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2ZndjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZmd2N2dF94KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmZ3Y3Z0X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMikpKQp2aW50NjRtMl90IHZmd2N2dF94KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZndjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2ZndjdnRfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmZ3Y3Z0X3godmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZmd2N2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2ZndjdnRfeHUodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmd2N2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmZ3Y3Z0X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZmd2N2dF94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2ZndjdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmZ3Y3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZmd2N2dF94dSh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2ZndjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG11bF9leHRfZjMybTEodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTFfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsbXVsX2V4dF9mMzJtMih2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmxtdWxfZXh0X2YzMm0yKHZmbG9hdDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0xX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG11bF9leHRfZjMybTQodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxtdWxfZXh0X2YzMm00KHZmbG9hdDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG11bF9leHRfZjMybTQodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTFfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsbXVsX2V4dF9mMzJtOCh2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG11bF9leHRfZjMybTgodmZsb2F0MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtNF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmxtdWxfZXh0X2YzMm04KHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG11bF9leHRfZjMybTgodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtMV9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG11bF90cnVuY19mMzJtZjIodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsbXVsX3RydW5jX2YzMm1mMih2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTRfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmxtdWxfdHJ1bmNfZjMybWYyKHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG11bF90cnVuY19mMzJtZjIodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG11bF90cnVuY19mMzJtMSh2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsbXVsX3RydW5jX2YzMm0xKHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmxtdWxfdHJ1bmNfZjMybTEodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG11bF90cnVuY19mMzJtMih2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybThfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsbXVsX3RydW5jX2YzMm0yKHZmbG9hdDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxtdWxfdHJ1bmNfZjMybTQodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJlaW50ZXJwcmV0X2YzMm0xKHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2cmVpbnRlcnByZXRfZjMybTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZWludGVycHJldF9mMzJtNCh2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtOF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJlaW50ZXJwcmV0X2YzMm04KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2cmVpbnRlcnByZXRfZjMybWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJlaW50ZXJwcmV0X2YzMm0xKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdnJlaW50ZXJwcmV0X2YzMm0yKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtNF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdnJlaW50ZXJwcmV0X2YzMm00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJlaW50ZXJwcmV0X2YzMm04KHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdnJlaW50ZXJwcmV0X2YzMm1mMih2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlaW50ZXJwcmV0X2kzMm0xKHZmbG9hdDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTJfaTMybTIpKSkKdmludDMybTJfdCB2cmVpbnRlcnByZXRfaTMybTIodmZsb2F0MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm04X2kzMm04KSkpCnZpbnQzMm04X3QgdnJlaW50ZXJwcmV0X2kzMm04KHZmbG9hdDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybWYyX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfaTMybWYyKHZmbG9hdDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0yX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZWludGVycHJldF91MzJtMih2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZWludGVycHJldF91MzJtNCh2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2ZmxvYXQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZWludGVycHJldF91MzJtZjIodmZsb2F0MzJtZjJfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsc2U2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxzZTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bHNlNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsc2U2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTIpKSkKdm9pZCB2c3NlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NlNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG00KSkpCnZvaWQgdnNzZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnNzZTY0KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtOCkpKQp2b2lkIHZzc2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsdXhlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpOChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3Qgdmx1eGVpMTYoY29uc3QgZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsdXhlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3Qgdmx1eGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTMyKGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpMzIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsdXhlaTY0KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bHV4ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpOChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsb3hlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsb3hlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpMTYoY29uc3QgZG91YmxlICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsb3hlaTMyKGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTMyKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsb3hlaTY0KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmxveGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZtdl92KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3Qgdm12X3YodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bXZfdih2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZtdl92KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmYWRkKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZhZGQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmFkZCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmYWRkKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZhZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZmFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmYWRkKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZhZGQodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZmFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZnN1Yih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc3ViKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc3ViKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzdWIodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc3ViKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyc3ViKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyc3ViKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyc3ViKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcnN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyc3ViKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXVsKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtdWwodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm11bCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm11bCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXVsKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm11bCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbXVsKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtdWwodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm11bCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZkaXYodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZmRpdih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmZGl2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmZGl2KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZkaXYodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmZGl2KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZkaXYodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmRpdih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmZGl2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmZGl2KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZGl2KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyZGl2KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyZGl2KHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcmRpdih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyZGl2KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1hY2ModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1hY2ModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1hY2ModmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWFjYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWFjYyh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtc2FjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtc2FjKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtc2FjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1zYWModmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1zYWModmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1zYWModmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1zYWModmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWFkZCh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWFkZCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1hZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYWRkKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtYWRkKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtYWRkKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtYWRkKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1zdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1zdWIodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1zdWIodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1zdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXN1Yih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbXN1Yih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXN1Yih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1pbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWluKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtaW4odmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1pbih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtaW4odmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1pbih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWluKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtaW4odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtaW4odmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1pbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWF4KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtYXgodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1heCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWF4KHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1heCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWF4KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWF4KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtYXgodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1heCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1heCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWF4KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc2duaih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNnbmoodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duaih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2duaih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc2duaih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNnbmoodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmc2duaih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzZ25qKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duaih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZzZ25qKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc2duaih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmc2duaih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duangodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duangodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZhYnModmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmYWJzKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZhYnModmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmYWJzKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZhYnModmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmYWJzKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZhYnModmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmYWJzKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZlcSh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZlcSh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZlcSh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZXEodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmVxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZm5lKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZuZSh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG04X2I4KSkpCnZib29sOF90IHZtZm5lKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZm5lKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZm5lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZuZSh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbHQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmx0KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mbHQodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmx0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZsZSh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZsZSh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZsZSh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbGUodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmxlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmd0KHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZndCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmd0KHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmd0KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmd0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZndCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ2UodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmdlKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mZ2UodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmdlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1lcmdlKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWVyZ2UodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtMV9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkbWF4KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWF4KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTRfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtOF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtMl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtMl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1pbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0xX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRzdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG04X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG04X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTFfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtNF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG0xX2Y2NCkpKQpkb3VibGUgdmZtdl9mKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjY0bTJfZjY0KSkpCmRvdWJsZSB2Zm12X2YodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtNF9mNjQpKSkKZG91YmxlIHZmbXZfZih2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG04X2Y2NCkpKQpkb3VibGUgdmZtdl9mKHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXZfcyh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm12X3ModmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtdl9zKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXZfcyh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGV1cCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZzbGlkZXVwKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRldXAodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdnNsaWRldXAodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2c2xpZGV1cCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2xpZGV1cCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGVkb3duKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRlZG93bih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZzbGlkZWRvd24odmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2xpZGVkb3duKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzbGlkZTF1cCh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxdXAodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMXVwKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMXVwKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnNsaWRlMWRvd24odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2cmdhdGhlcih2ZmxvYXQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmdhdGhlcih2ZmxvYXQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmdhdGhlcih2ZmxvYXQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2cmdhdGhlcih2ZmxvYXQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZyZ2F0aGVyKHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXIodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmdhdGhlcih2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQ2NG04X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG00X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Z2V0X2Y2NG0yKHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Z2V0X2Y2NG0yKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Z2V0X2Y2NG00KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2c2V0KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2c2V0KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0yX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2c2V0KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0yX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG00X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yKSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG00KSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG04KSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTgpKSkKdm9pZCB2c3V4ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c3V4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG00KSkpCnZvaWQgdnN1eGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtOCkpKQp2b2lkIHZzdXhlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bThfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c3V4ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG00KSkpCnZvaWQgdnN1eGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtOCkpKQp2b2lkIHZzdXhlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xKSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0yKSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG00KSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG04KSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTgpKSkKdm9pZCB2c294ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG04X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c294ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c294ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG00KSkpCnZvaWQgdnNveGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtOCkpKQp2b2lkIHZzb3hlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bThfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzb3hlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c294ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG00KSkpCnZvaWQgdnNveGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtOCkpKQp2b2lkIHZzb3hlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsZTY0ZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsZTY0ZmYodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsZTY0ZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsZTY0ZmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5lZyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZuZWcodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5lZyh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZuZWcodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5lZyh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZuZWcodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5lZyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZuZWcodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmxlNjQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxlNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmxlNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmxlNjQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMSkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG0xX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMikpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtNCkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG00X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtOCkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG04X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmZjbGFzcyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmY2xhc3ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZmNsYXNzKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmZjbGFzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG00KSkpCnZ1aW50NjRtNF90IHZmY2xhc3ModmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZmNsYXNzKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmZjbGFzcyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZmY2xhc3ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmY3Z0X2YodmludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZjdnRfZih2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmN2dF9mKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmY3Z0X2YodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZjdnRfZih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZjdnRfZih2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZjdnRfZih2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZjdnRfZih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmY3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmZjdnRfcnR6X3godmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZmY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pNjRtMikpKQp2aW50NjRtMl90IHZmY3Z0X3J0el94KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmZjdnRfcnR6X3godmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZjdnRfcnR6X3godmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZmY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2ZmN2dF9ydHpfeHUodmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmZjdnRfcnR6X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZmY3Z0X3J0el94dSh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2ZmN2dF9ydHpfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZmY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtOCkpKQp2dWludDY0bThfdCB2ZmN2dF9ydHpfeHUodmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmZjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmZjdnRfeCh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZmN2dF94KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmZjdnRfeCh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZmN2dF94KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmZjdnRfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2ZmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZjdnRfeCh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG04X20pKSkKdmludDY0bThfdCB2ZmN2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZmY3Z0X3h1KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmZjdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZmN2dF94dSh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmZjdnRfeHUodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZmN2dF94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZmY3Z0X3h1KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmZjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjIpKSkKdmludDMybWYyX3QgdmZuY3Z0X3J0el94KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2Zm5jdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTEpKSkKdmludDMybTFfdCB2Zm5jdnRfcnR6X3godmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0xX20pKSkKdmludDMybTFfdCB2Zm5jdnRfcnR6X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtMikpKQp2aW50MzJtMl90IHZmbmN2dF9ydHpfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTJfbSkpKQp2aW50MzJtMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm00KSkpCnZpbnQzMm00X3QgdmZuY3Z0X3J0el94KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmZuY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmbmN2dF9ydHpfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMSkpKQp2dWludDMybTFfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTFfbSkpKQp2dWludDMybTFfdCB2Zm5jdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMikpKQp2dWludDMybTJfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTJfbSkpKQp2dWludDMybTJfdCB2Zm5jdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtNCkpKQp2dWludDMybTRfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2Zm5jdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtZjIpKSkKdmludDMybWYyX3QgdmZuY3Z0X3godmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZuY3Z0X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtMSkpKQp2aW50MzJtMV90IHZmbmN2dF94KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xX20pKSkKdmludDMybTFfdCB2Zm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybTIpKSkKdmludDMybTJfdCB2Zm5jdnRfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZuY3Z0X3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00KSkpCnZpbnQzMm00X3QgdmZuY3Z0X3godmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybTRfbSkpKQp2aW50MzJtNF90IHZmbmN2dF94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZmbmN2dF94dSh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmbmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZuY3Z0X3h1KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmbmN2dF94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMikpKQp2dWludDMybTJfdCB2Zm5jdnRfeHUodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmbmN2dF94dSh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2Zm5jdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVjNyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVjNyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZnJlYzcodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnJlYzcodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyZWM3KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmcmVjNyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyc3FydDcodmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcnNxcnQ3KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyc3FydDcodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcnNxcnQ3KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyc3FydDcodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcnNxcnQ3KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyc3FydDcodmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcnNxcnQ3KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzcXJ0KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc3FydCh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc3FydCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNxcnQodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNxcnQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzcXJ0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzcXJ0KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3Y3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3Y3Z0X2YodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd2N2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3Y3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndjdnRfZih2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmxtdWxfZXh0X2Y2NG0yKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTFfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsbXVsX2V4dF9mNjRtNCh2ZmxvYXQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0yX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bG11bF9leHRfZjY0bTQodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmxtdWxfZXh0X2Y2NG04KHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsbXVsX2V4dF9mNjRtOCh2ZmxvYXQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG00X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG11bF9leHRfZjY0bTgodmZsb2F0NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bG11bF90cnVuY19mNjRtMSh2ZmxvYXQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsbXVsX3RydW5jX2Y2NG0xKHZmbG9hdDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mNjRtOF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxtdWxfdHJ1bmNfZjY0bTEodmZsb2F0NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2Y2NG00X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG11bF90cnVuY19mNjRtMih2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsbXVsX3RydW5jX2Y2NG0yKHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mNjRtOF9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxtdWxfdHJ1bmNfZjY0bTQodmZsb2F0NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdnJlaW50ZXJwcmV0X2Y2NG0xKHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmVpbnRlcnByZXRfZjY0bTIodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZyZWludGVycHJldF9mNjRtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdnJlaW50ZXJwcmV0X2Y2NG04KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2cmVpbnRlcnByZXRfZjY0bTEodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0yX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmVpbnRlcnByZXRfZjY0bTIodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmVpbnRlcnByZXRfZjY0bTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2cmVpbnRlcnByZXRfZjY0bTgodnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtNF9pNjRtNCkpKQp2aW50NjRtNF90IHZyZWludGVycHJldF9pNjRtNCh2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X3U2NG0xKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnJlaW50ZXJwcmV0X3U2NG0yKHZmbG9hdDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJlaW50ZXJwcmV0X3U2NG00KHZmbG9hdDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bThfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X3U2NG04KHZmbG9hdDY0bThfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl9kKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92dih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndhZGRfdnYodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3YWRkX3Z2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdnYodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3YWRkX3Z2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndhZGRfdnYodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92Zih2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndhZGRfdmYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF92Zih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2FkZF92Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdmYodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdmYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3ZmKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3ZmKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3Z2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd3N1Yl92dih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92dih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndzdWJfdnYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl92dih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdnYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3ZmKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl92Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3ZmKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3ZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92Zih2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdmYodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndhZGRfd3YodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93dih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd2FkZF93dih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd3YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd2FkZF93dih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndhZGRfd3YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3YWRkX3dmKHZmbG9hdDY0bTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3YWRkX3dmKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93Zih2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd2YodmZsb2F0NjRtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3dmKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3dmKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3d2KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndzdWJfd3YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd3YodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3d2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndzdWJfd3YodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfd3YodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl93Zih2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl93Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd2YodmZsb2F0NjRtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3dmKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3dmKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl93Zih2ZmxvYXQ2NG04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl93Zih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd211bCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndtdWwodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3bXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndtdWwodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd211bCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd211bCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd211bCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd21hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndtYWNjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndtYWNjKHZmbG9hdDY0bTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtYWNjKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd21hY2ModmZsb2F0NjRtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd25tYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1hY2ModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd25tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd25tYWNjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndubWFjYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd25tYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd25tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd25tYWNjKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd25tYWNjKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zndtc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd21zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bXNhYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmZsb2F0NjRtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3bXNhYyh2ZmxvYXQ2NG00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zndtc2FjKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd25tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd25tc2FjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3bm1zYWModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndubXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd25tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bm1zYWModmZsb2F0NjRtMV90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndubXNhYyh2ZmxvYXQ2NG00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3bm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndubXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTFfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTRfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtZjJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm00X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9mKHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfZih2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9yb2RfZih2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm5jdnRfcm9kX2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfcm9kX2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5jdnRfcm9kX2YodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9yb2RfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9yb2RfZih2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZuY3Z0X3JvZF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndjdnRfZih2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96ZmgpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3NlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00KSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00X20pKSkKdm9pZCB2c3NlMTYodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtOCkpKQp2b2lkIHZzc2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtOF9tKSkpCnZvaWQgdnNzZTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsdXhlaTgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bHV4ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3Qgdmx1eGVpOCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsdXhlaTgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bHV4ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bHV4ZWkzMihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWkzMihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bHV4ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bHV4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZsb3hlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxveGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZsb3hlaTgodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZsb3hlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxveGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxveGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmxveGVpNjQoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bXZfdih2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZtdl92KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdm12X3YodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bXZfdih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdm12X3YodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bXZfdih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhZGQodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZmFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZhZGQodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZmFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWRkKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZhZGQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhZGQodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZhZGQodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmFkZCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZhZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWRkKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmFkZCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc3ViKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnN1Yih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzdWIodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzdWIodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc3ViKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzdWIodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJzdWIodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZyc3ViKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZyc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyc3ViKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZyc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZyc3ViKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnJzdWIodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnJzdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmcnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtdWwodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm11bCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtdWwodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm11bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXVsKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtdWwodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbXVsKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtdWwodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtdWwodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm11bCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXVsKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm11bCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm11bCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZmRpdih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmZGl2KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmZGl2KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmRpdih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZkaXYodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmRpdih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZkaXYodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZkaXYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZmRpdih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZmRpdih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmZGl2KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZmRpdih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZkaXYodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmZGl2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmZGl2KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJkaXYodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZyZGl2KHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZyZGl2KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyZGl2KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZyZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZyZGl2KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyZGl2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnJkaXYodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnJkaXYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmcmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbWFjYyh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtYWNjKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1hY2ModmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtYWNjKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWNjKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWFjYyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWFjYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtYWNjKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWNjKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubWFjYyh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubWFjYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1hY2ModmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1hY2ModmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1hY2ModmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tYWNjKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1hY2ModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXNhYyh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtc2FjKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1zYWModmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtc2FjKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtc2FjKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXNhYyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbXNhYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtc2FjKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc2FjKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubXNhYyh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubXNhYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1zYWModmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1zYWModmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1zYWModmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tc2FjKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1zYWModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbWFkZCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1hZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtYWRkKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1hZGQodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtYWRkKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWRkKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWFkZCh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtYWRkKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWRkKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubWFkZCh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubWFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1hZGQodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1hZGQodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1hZGQodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tYWRkKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1hZGQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtc3ViKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1zdWIodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtc3ViKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXN1Yih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbXN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtc3ViKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc3ViKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubXN1Yih2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubXN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1zdWIodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1zdWIodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1zdWIodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tc3ViKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1zdWIodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtaW4odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm1pbih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtaW4odmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm1pbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWluKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtaW4odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbWluKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtaW4odmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtaW4odmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm1pbih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWluKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm1pbih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm1pbih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWF4KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm1heCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtYXgodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm1heCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYXgodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1heCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm1heCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWF4KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm1heCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtYXgodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWF4KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbWF4KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzZ25qKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmoodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2duaih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmoodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2duaih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc2duaih2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmoodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qbih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmpuKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qbih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duam4odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2duam4odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2duam4odmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmpuKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2duam4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNnbmpuKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qbih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmpuKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qbih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmpuKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc2duangodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2duangodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmp4KHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmp4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc2duangodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmp4KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmp4KHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc2duangodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzZ25qeCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qeCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2duangodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qeCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2duangodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmp4KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmp4KHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duangodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhYnModmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmYWJzKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZhYnModmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWJzKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmFicyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZhYnModmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWJzKHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmFicyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmFicyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZhYnModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhYnModmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmYWJzKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmVxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm00X2I0KSkpCnZib29sNF90IHZtZmVxKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZlcSh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZXEodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmVxKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mZXEodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZlcSh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmVxKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZuZSh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mbmUodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZm5lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm04X2IyKSkpCnZib29sMl90IHZtZm5lKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mbmUodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZuZSh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm04X2IyKSkpCnZib29sMl90IHZtZm5lKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZm5lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbmUodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZm5lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZsdCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mbHQodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmx0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZsdCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm00X2I0KSkpCnZib29sNF90IHZtZmx0KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmx0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mbHQodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mbHQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZsdCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmxlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm00X2I0KSkpCnZib29sNF90IHZtZmxlKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZsZSh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbGUodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmxlKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mbGUodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZsZSh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZsZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmxlKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZndCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mZ3QodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmd0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm04X2IyKSkpCnZib29sMl90IHZtZmd0KHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZndCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mZ3QodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZndCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm04X2IyKSkpCnZib29sMl90IHZtZmd0KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmd0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ3QodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmd0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZnZSh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mZ2UodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmdlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZnZSh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm00X2I0KSkpCnZib29sNF90IHZtZmdlKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmdlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mZ2UodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZnZSh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtOCkpKQp2ZmxvYXQxNm04X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1lcmdlKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm1lcmdlKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bTJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bTJfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtZjJfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtZjRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm04X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm04X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZib29sMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtZjJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mMl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtZjRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMV9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bThfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bThfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWY0X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0xX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm00X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtOF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWYyX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm0xKSkpCnZvaWQgdnN1eGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTQpKSkKdm9pZCB2c3V4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04KSkpCnZvaWQgdnN1eGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3V4ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00KSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtOCkpKQp2b2lkIHZzdXhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtMV9mMTYpKSkKX0Zsb2F0MTYgdmZtdl9mKHZmbG9hdDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bTJfZjE2KSkpCl9GbG9hdDE2IHZmbXZfZih2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YxNm00X2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtOF9mMTYpKSkKX0Zsb2F0MTYgdmZtdl9mKHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWYyX2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWY0X2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXZfcyh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXZfcyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXZfcyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXZfcyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtdl9zKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdl9zKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZzbGlkZXVwKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnNsaWRldXAodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZzbGlkZXVwKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2c2xpZGV1cCh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGV1cCh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnNsaWRldXAodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZzbGlkZWRvd24odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGVkb3duKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2c2xpZGVkb3duKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2c2xpZGVkb3duKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2c2xpZGVkb3duKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZzbGlkZWRvd24odmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGVkb3duKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZzbGlkZWRvd24odmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxdXAodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNsaWRlMXVwKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNsaWRlMXVwKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c3V4ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mMikpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZzbGlkZTFkb3duKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxZG93bih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2xpZGUxZG93bih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTFkb3duKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMWRvd24odmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyKHZmbG9hdDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZyZ2F0aGVyKHZmbG9hdDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnJnYXRoZXIodmZsb2F0MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcih2ZmxvYXQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdnJnYXRoZXIodmZsb2F0MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJnYXRoZXIodmZsb2F0MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyKHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnJnYXRoZXIodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZ2F0aGVyKHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZyZ2F0aGVyKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcih2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyZWkxNih2ZmxvYXQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2cmdhdGhlcmVpMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcmVpMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZyZ2F0aGVyZWkxNih2ZmxvYXQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Y29tcHJlc3ModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Y29tcHJlc3ModmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c3V4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtNF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmdldF9mMTZtMih2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmdldF9mMTZtMih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmdldF9mMTZtNCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnNldCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnNldCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnNldCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtNF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c294ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm00KSkpCnZvaWQgdnNveGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm00X20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOCkpKQp2b2lkIHZzb3hlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjQpKSkKdm9pZCB2c294ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNCkpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTgpKSkKdm9pZCB2c294ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtNCkpKQp2b2lkIHZzb3hlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsZTE2ZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxlMTZmZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsZTE2ZmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bGUxNmZmKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bGUxNmZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsZTE2ZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuZWcodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbmVnKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZuZWcodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmVnKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm5lZyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZuZWcodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbmVnKHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm5lZyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5lZyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZuZWcodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuZWcodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbmVnKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsZTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxlMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsZTE2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bGUxNih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bGUxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsZTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm0xKSkpCnZvaWQgdnNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMikpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtNCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZzZTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtOCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bThfbSkpKQp2b2lkIHZzZTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c2UxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mNCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsc2UxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHNlMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bHNlMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bHNlMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsc2UxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHNlMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmNsYXNzKHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZjbGFzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmY2xhc3ModmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmNsYXNzKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZmNsYXNzKHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZjbGFzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjbGFzcyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZmY2xhc3ModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZjbGFzcyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY2xhc3ModmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZjbGFzcyh2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmY2xhc3ModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmY3Z0X2YodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZjdnRfZih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmY3Z0X2YodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZjdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZmN2dF9mKHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmY3Z0X2YodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmN2dF9mKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmN2dF9mKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmY3Z0X2YodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmY3Z0X2YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZjdnRfZih2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZmN2dF9mKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZjdnRfZih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmY3Z0X2YodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZmY3Z0X3J0el94KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2ZmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZjdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmZjdnRfcnR6X3godmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTgpKSkKdmludDE2bThfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmZjdnRfcnR6X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZmY3Z0X3J0el94KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmZjdnRfcnR6X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZmY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZjdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmY3Z0X3J0el94dSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmN2dF9ydHpfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZjdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZmY3Z0X3J0el94dSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY3Z0X3J0el94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZmY3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmZjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMikpKQp2aW50MTZtMl90IHZmY3Z0X3godmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00KSkpCnZpbnQxNm00X3QgdmZjdnRfeCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2ZmN2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bTgpKSkKdmludDE2bThfdCB2ZmN2dF94KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZmY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmZjdnRfeCh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZmN2dF94KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZmY3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmZjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmN2dF94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZmY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmZjdnRfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmN2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmZjdnRfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2ZmN2dF94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjdnRfeHUodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2ZmN2dF94dSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2ZmN2dF94dSh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZmY3Z0X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmZjdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbmN2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2Zm5jdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5jdnRfZih2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm5jdnRfZih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZuY3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm5jdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2dWludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjgpKSkKdmludDhtZjhfdCB2Zm5jdnRfcnR6X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmZuY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmZuY3Z0X3J0el94KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjRfbSkpKQp2aW50OG1mNF90IHZmbmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mMikpKQp2aW50OG1mMl90IHZmbmN2dF9ydHpfeCh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTEpKSkKdmludDhtMV90IHZmbmN2dF9ydHpfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKSkpCnZpbnQ4bTFfdCB2Zm5jdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMikpKQp2aW50OG0yX3QgdmZuY3Z0X3J0el94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG0yX20pKSkKdmludDhtMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00KSkpCnZpbnQ4bTRfdCB2Zm5jdnRfcnR6X3godmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTRfbSkpKQp2aW50OG00X3QgdmZuY3Z0X3J0el94KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mOCkpKQp2dWludDhtZjhfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2Zm5jdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMSkpKQp2dWludDhtMV90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0xX20pKSkKdnVpbnQ4bTFfdCB2Zm5jdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMikpKQp2dWludDhtMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0yX20pKSkKdnVpbnQ4bTJfdCB2Zm5jdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtNCkpKQp2dWludDhtNF90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG00X20pKSkKdnVpbnQ4bTRfdCB2Zm5jdnRfcnR6X3h1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmZuY3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4X20pKSkKdmludDhtZjhfdCB2Zm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmZuY3Z0X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY0X20pKSkKdmludDhtZjRfdCB2Zm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmZuY3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZmbmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG0xKSkpCnZpbnQ4bTFfdCB2Zm5jdnRfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG0xX20pKSkKdmludDhtMV90IHZmbmN2dF94KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMikpKQp2aW50OG0yX3QgdmZuY3Z0X3godmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMl9tKSkpCnZpbnQ4bTJfdCB2Zm5jdnRfeCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTQpKSkKdmludDhtNF90IHZmbmN2dF94KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTRfbSkpKQp2aW50OG00X3QgdmZuY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmZuY3Z0X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2Zm5jdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZmbmN2dF94dSh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmZuY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG1mMikpKQp2dWludDhtZjJfdCB2Zm5jdnRfeHUodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTEpKSkKdnVpbnQ4bTFfdCB2Zm5jdnRfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTFfbSkpKQp2dWludDhtMV90IHZmbmN2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMikpKQp2dWludDhtMl90IHZmbmN2dF94dSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmZuY3Z0X3h1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG00KSkpCnZ1aW50OG00X3QgdmZuY3Z0X3h1KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG00X20pKSkKdnVpbnQ4bTRfdCB2Zm5jdnRfeHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWM3KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmcmVjNyh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmcmVjNyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmcmVjNyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmcmVjNyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmcmVjNyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZyZWM3KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZyZWM3KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnJlYzcodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnJlYzcodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcnNxcnQ3KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJzcXJ0Nyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmcnNxcnQ3KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnJzcXJ0Nyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyc3FydDcodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmcnNxcnQ3KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnJzcXJ0Nyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyc3FydDcodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZyc3FydDcodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmcnNxcnQ3KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcnNxcnQ3KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnJzcXJ0Nyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc3FydCh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc3FydCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNxcnQodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNxcnQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNxcnQodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNxcnQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNxcnQodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNxcnQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc3FydCh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmc3FydCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzcXJ0KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZ3Y3Z0X2YodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZ3Y3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZndjdnRfZih2aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZndjdnRfZih2aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZndjdnRfZih2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmd2N2dF9mKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmd2N2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZ3Y3Z0X2YodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZmd2N2dF9ydHpfeCh2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZmd2N2dF9ydHpfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTEpKSkKdmludDMybTFfdCB2ZndjdnRfcnR6X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmZ3Y3Z0X3J0el94KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTQpKSkKdmludDMybTRfdCB2ZndjdnRfcnR6X3godmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm00X20pKSkKdmludDMybTRfdCB2ZndjdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmZ3Y3Z0X3J0el94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfcnR6X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZmd2N2dF9ydHpfeHUodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZndjdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3J0el94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtOCkpKQp2dWludDMybThfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZndjdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmZ3Y3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZmd2N2dF94KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmZ3Y3Z0X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2ZndjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZmd2N2dF94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZmd2N2dF94KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm00X20pKSkKdmludDMybTRfdCB2ZndjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZmd2N2dF94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04X20pKSkKdmludDMybThfdCB2ZndjdnRfeCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfeHUodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmZ3Y3Z0X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZ3Y3Z0X3h1KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZndjdnRfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZmd2N2dF94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2ZndjdnRfeHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3h1KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZmd2N2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZmd2N2dF94dSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZndjdnRfeHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF9leHRfZjE2bTEodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF9leHRfZjE2bTEodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsbXVsX2V4dF9mMTZtZjIodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsbXVsX2V4dF9mMTZtMih2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mMl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmxtdWxfZXh0X2YxNm0yKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmxtdWxfZXh0X2YxNm0yKHZmbG9hdDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0xX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxtdWxfZXh0X2YxNm00KHZmbG9hdDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZsbXVsX2V4dF9mMTZtOCh2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0yX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtNF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxtdWxfZXh0X2YxNm04KHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bG11bF90cnVuY19mMTZtZjIodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsbXVsX3RydW5jX2YxNm1mMih2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmxtdWxfdHJ1bmNfZjE2bWYyKHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bG11bF90cnVuY19mMTZtZjIodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0xX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmxtdWxfdHJ1bmNfZjE2bWY0KHZmbG9hdDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG11bF90cnVuY19mMTZtZjQodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bWYyX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF90cnVuY19mMTZtMSh2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsbXVsX3RydW5jX2YxNm0xKHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmxtdWxfdHJ1bmNfZjE2bTEodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG11bF90cnVuY19mMTZtMih2ZmxvYXQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bThfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsbXVsX3RydW5jX2YxNm0yKHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxtdWxfdHJ1bmNfZjE2bTQodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdnJlaW50ZXJwcmV0X2YxNm0xKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2cmVpbnRlcnByZXRfZjE2bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZWludGVycHJldF9mMTZtNCh2aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtOF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnJlaW50ZXJwcmV0X2YxNm04KHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2cmVpbnRlcnByZXRfZjE2bWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJlaW50ZXJwcmV0X2YxNm1mNCh2aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZWludGVycHJldF9mMTZtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZyZWludGVycHJldF9mMTZtMih2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZWludGVycHJldF9mMTZtNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZyZWludGVycHJldF9mMTZtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZyZWludGVycHJldF9mMTZtZjIodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtZjRfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJlaW50ZXJwcmV0X2YxNm1mNCh2dWludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X2kxNm0xKHZmbG9hdDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtNF9pMTZtNCkpKQp2aW50MTZtNF90IHZyZWludGVycHJldF9pMTZtNCh2ZmxvYXQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm04X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlaW50ZXJwcmV0X2kxNm04KHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJlaW50ZXJwcmV0X2kxNm1mNCh2ZmxvYXQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVpbnRlcnByZXRfdTE2bTEodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtNF91MTZtNCkpKQp2dWludDE2bTRfdCB2cmVpbnRlcnByZXRfdTE2bTQodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtOF91MTZtOCkpKQp2dWludDE2bThfdCB2cmVpbnRlcnByZXRfdTE2bTgodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtZjJfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfdTE2bWYyKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZWludGVycHJldF91MTZtZjQodmZsb2F0MTZtZjRfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96ZmgpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndhZGRfdnYodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3Z2KHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3Z2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92dih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd2FkZF92dih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdnYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3YWRkX3Z2KHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd2FkZF92dih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92Zih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd2FkZF92Zih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndhZGRfdmYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92Zih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdmYodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfdmYodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndhZGRfdmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl92dih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfdnYodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3Z2KHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd3N1Yl92dih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3Z2KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndzdWJfdnYodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3Z2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3ZmKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl92Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3ZmKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92Zih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92Zih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl92Zih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl92Zih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3d2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndhZGRfd3YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd2FkZF93dih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3d2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3YWRkX3d2KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93dih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3YWRkX3d2KHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd2FkZF93dih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd3YodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3YWRkX3d2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3dmKHZmbG9hdDMybWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3dmKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3dmKHZmbG9hdDMybTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3dmKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93Zih2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfd2YodmZsb2F0MzJtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfd2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd2YodmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93dih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3d2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfd3YodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93dih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd3N1Yl93dih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd3YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl93dih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndzdWJfd3YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3d2KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl93dih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93Zih2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93Zih2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd2YodmZsb2F0MzJtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3dmKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3dmKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3dmKHZmbG9hdDMybThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3dmKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndtdWwodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXVsKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd211bCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndtdWwodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd211bCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bXVsKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd211bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd211bCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd211bCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd211bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndtdWwodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndtYWNjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndtYWNjKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd21hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndtYWNjKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndtYWNjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmZsb2F0MzJtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bWFjYyh2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmZsb2F0MzJtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3bWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd21hY2ModmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndubWFjYyh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd25tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bm1hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd25tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bm1hY2ModmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3bm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1hY2ModmZsb2F0MzJtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndubWFjYyh2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3bm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd25tYWNjKHZmbG9hdDMybThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd21zYWModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd21zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd21zYWModmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd21zYWModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zndtc2FjKHZmbG9hdDMybTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zndtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zndtc2FjKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zndtc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd25tc2FjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndubXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndubXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd25tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd25tc2FjKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3bm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndubXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd25tc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndubXNhYyh2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd25tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndubXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd25tc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd25tc2FjKHZmbG9hdDMybTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd25tc2FjKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bm1zYWModmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd25tc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bThfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtOF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWY0X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm1mNF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTFfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm00X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bThfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bWYyX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bWYyX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbmN2dF9yb2RfZih2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X3JvZF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9yb2RfZih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfcm9kX2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5jdnRfcm9kX2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm5jdnRfcm9kX2YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9yb2RfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm5jdnRfcm9kX2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96dmFtbykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vc3dhcGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb3N3YXBlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb3N3YXBlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9zd2FwZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vc3dhcGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3N3YXBlaTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3N3YXBlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9zd2FwZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3N3YXBlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3N3YXBlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb3N3YXBlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb3N3YXBlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3N3YXBlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9zd2FwZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vc3dhcGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vc3dhcGVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9hZGRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYWRkZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FkZGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYWRkZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYWRkZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYWRkZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYWRkZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYWRkZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYWRkZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FkZGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb2FkZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYWRkZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9hZGRlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb2FkZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vYWRkZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9hZGRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vYWRkZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYWRkZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYWRkZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hZGRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYWRkZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYWRkZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYWRkZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vYWRkZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FkZGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYWRkZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYWRkZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYWRkZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYWRkZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9hZGRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYWRkZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb2FkZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9hZGRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9hZGRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYWRkZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYWRkZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hZGRlaTMyKHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYWRkZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9hZGRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9hZGRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYWRkZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYWRkZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9hZGRlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb2FkZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vYWRkZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hZGRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYWRkZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYWRkZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hZGRlaTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1veG9yZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3hvcmVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1veG9yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb3hvcmVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb3hvcmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3hvcmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW94b3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTE2KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1veG9yZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW94b3JlaTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW94b3JlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW94b3JlaTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1veG9yZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1veG9yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb3hvcmVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1veG9yZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb3hvcmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1veG9yZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW94b3JlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb3hvcmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb3hvcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1veG9yZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb3hvcmVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb3hvcmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1veG9yZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1veG9yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW94b3JlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW94b3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1veG9yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW94b3JlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW94b3JlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1veG9yZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1veG9yZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW94b3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb3hvcmVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1veG9yZWkzMih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1veG9yZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1veG9yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb3hvcmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1veG9yZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW94b3JlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW94b3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1veG9yZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb3hvcmVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1veG9yZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9hbmRlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9hbmRlaTgodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hbmRlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9hbmRlaTE2KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYW5kZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYW5kZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FuZGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYW5kZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYW5kZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYW5kZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FuZGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FuZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hbmRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9hbmRlaTMyKHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb2FuZGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYW5kZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vYW5kZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hbmRlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9hbmRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FuZGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9hbmRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hbmRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vYW5kZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYW5kZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FuZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYW5kZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYW5kZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYW5kZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYW5kZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FuZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYW5kZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYW5kZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYW5kZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FuZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vYW5kZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9hbmRlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb2FuZGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FuZGVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FuZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYW5kZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTMyKHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYW5kZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9hbmRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FuZGVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYW5kZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYW5kZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb2FuZGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYW5kZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9hbmRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb2FuZGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vb3JlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vb3JlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vb3JlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9vcmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb29yZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb29yZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9vcmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9vcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9vcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9vcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9vcmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb29yZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vb3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb29yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb29yZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb29yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vb3JlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9vcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9vcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9vcmVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb29yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb29yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9vcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9vcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9vcmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb29yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9vcmVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9vcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9vcmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vb3JlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vb3JlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vb3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vb3JlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb29yZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vb3JlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9vcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9vcmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb29yZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9vcmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9vcmVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9vcmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9vcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb29yZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vb3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb29yZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb29yZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vb3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vb3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb29yZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9vcmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vb3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9vcmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9vcmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vb3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vb3JlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb29yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb29yZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vb3JlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9taW5laTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9taW5laTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWluZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9taW5laTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vbWluZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21pbmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21pbmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb21pbmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vbWluZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb21pbmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWluZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9taW5laTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9taW5laTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21pbmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9taW5laTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vbWluZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9taW5laTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21pbmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vbWluZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWluZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9taW5laTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWluZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9taW5laTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9taW5laTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vbWluZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWluZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpOCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb21pbmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21pbmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9taW5laTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9taW5laTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWluZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9taW5laTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWluZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vbWluZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21pbmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWluZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWluZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9taW5laTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWluZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9taW5laTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9taW5laTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb21pbmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vbWluZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vbWluZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9taW5laTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21heGVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9tYXhlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vbWF4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vbWF4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWF4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vbWF4ZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21heGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9tYXhlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb21heGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vbWF4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb21heGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21heGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vbWF4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9tYXhlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21heGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21heGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9tYXhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9tYXhlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWF4ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vbWF4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21heGVpMTYodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vbWF4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9tYXhlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21heGVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWF4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9tYXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21heGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb21pbnVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWludWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWludWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWludWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vbWludWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vbWludWVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWludWVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWludWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9tYXh1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb21heHVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb21heHVlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21heHVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21heHVlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb21heHVlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb21heHVlaTMyKHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vc3dhcGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vc3dhcGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9zd2FwZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vc3dhcGVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb3N3YXBlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikgJiYgZGVmaW5lZChfX3Jpc2N2X3p2YW1vKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2YW1vc3dhcGVpOCh2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZhbW9zd2FwZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZhbW9zd2FwZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmFtb3N3YXBlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmFtb3N3YXBlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmFtb3N3YXBlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmFtb3N3YXBlaTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2YW1vc3dhcGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZhbW9zd2FwZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZCkgJiYgZGVmaW5lZChfX3Jpc2N2X3p2YW1vKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2YW1vc3dhcGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTgodmJvb2w4X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHZpbnQ2NG0yX3Qgb3A3LCB2aW50NjRtMl90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IGludDY0X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgdWludDY0X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgdmludDY0bTFfdCBvcDE1LCB2aW50NjRtMV90IG9wMTYsIGNvbnN0IGludDY0X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91NjRtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHZpbnQ2NG0yX3Qgb3A3LCB2aW50NjRtMl90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IGludDY0X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgdWludDY0X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgdmludDY0bTFfdCBvcDE1LCB2aW50NjRtMV90IG9wMTYsIGNvbnN0IGludDY0X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG00KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91NjRtMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgdWludDY0X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgY29uc3QgdWludDY0X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IGludDY0X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMSkpKQp2b2lkIHZzc2VnM2U4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMikpKQp2b2lkIHZzc2VnM2U4KGludDhfdCAqIG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bTJfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMSkpKQp2b2lkIHZzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzNlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0yKSkpCnZvaWQgdnNzZWczZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bTJfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWYyKSkpCnZvaWQgdnNzZWczZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlZzNlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzNlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mOCkpKQp2b2lkIHZzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTEpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0xX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTIpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0yX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWYyKSkpCnZvaWQgdnNzZWc0ZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWYyX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc2VnNGU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnNGU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2VnNGU4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yKSkpCnZvaWQgdnNzZWc0ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnNWU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzVlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWYyX20pKSkKdm9pZCB2c3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWY0KSkpCnZvaWQgdnNzZWc1ZTgoaW50OF90ICogb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWc1ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnNWU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtMSkpKQp2b2lkIHZzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzVlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc1ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc1ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mOCkpKQp2b2lkIHZzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnNmU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnNmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtMSkpKQp2b2lkIHZzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzZlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMikpKQp2b2lkIHZzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc2ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY0X20pKSkKdm9pZCB2c3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzZlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc2VnNmU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG0xKSkpCnZvaWQgdnNzZWc3ZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMikpKQp2b2lkIHZzc2VnN2U4KGludDhfdCAqIG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0KSkpCnZvaWQgdnNzZWc3ZTgoaW50OF90ICogb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzdlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnN2U4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xKSkpCnZvaWQgdnNzZWc3ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzdlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnOGU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyKSkpCnZvaWQgdnNzZWc4ZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc4ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzhlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnOGU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzhlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMikpKQp2b2lkIHZzc2VnOGU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc4ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc4ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzhlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm00KSkpCnZvaWQgdnNzZWcyZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnMmUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm00KSkpCnZvaWQgdnNzZWcyZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTIpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnM2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtMikpKQp2b2lkIHZzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzZWczZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2VnNGUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0yKSkpCnZvaWQgdnNzZWc0ZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMSkpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMikpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzRlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnNWUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnNWUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNzZWc2ZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm0xKSkpCnZvaWQgdnNzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnNmUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc3ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm0xKSkpCnZvaWQgdnNzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnN2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzdlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnOGUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl91MTZtZjIpKSkKdm9pZCB2c3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnOGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0yKSkpCnZvaWQgdnNzZWcyZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtNCkpKQp2b2lkIHZzc2VnMmUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0yKSkpCnZvaWQgdnNzZWcyZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtNCkpKQp2b2lkIHZzc2VnMmUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTIpKSkKdm9pZCB2c3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzZWczZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnM2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm0yKSkpCnZvaWQgdnNzZWczZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm0yX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWczZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xKSkpCnZvaWQgdnNzZWc0ZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTIpKSkKdm9pZCB2c3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc0ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMikpKQp2b2lkIHZzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm0yX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzRlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzVlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMikpKQp2b2lkIHZzc2VnNWUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc2VnNWUzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnNWUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc2VnNWUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWc1ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWc1ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm0xKSkpCnZvaWQgdnNzZWc2ZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc2VnNmUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc2ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzZlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc3ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnN2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzdlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm0xKSkpCnZvaWQgdnNzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnMmU2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NlZzJlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG00KSkpCnZvaWQgdnNzZWcyZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnMmU2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NlZzJlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG0yX20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG00KSkpCnZvaWQgdnNzZWcyZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnM2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMikpKQp2b2lkIHZzc2VnM2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnM2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzZWczZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yKSkpCnZvaWQgdnNzZWczZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NlZzRlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMikpKQp2b2lkIHZzc2VnNGU2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNzZWc0ZTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X3U2NG0xKSkpCnZvaWQgdnNzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X3U2NG0yKSkpCnZvaWQgdnNzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2k2NG0xKSkpCnZvaWQgdnNzZWc1ZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc1ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnNWU2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NlZzZlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc2ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlZzZlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNmU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnN2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc3ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X3U2NG0xKSkpCnZvaWQgdnNzZWc3ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnN2U2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xKSkpCnZvaWQgdnNzZWc4ZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc4ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlZzhlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NlZzhlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0xKSkpCnZvaWQgdnNzc2VnM2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0xX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMikpKQp2b2lkIHZzc3NlZzNlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMl9tKSkpCnZvaWQgdnNzc2VnM2U4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnM2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnM2U4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzNlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWczZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWczZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTIpKSkKdm9pZCB2c3NzZWczZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0yX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yKSkpCnZvaWQgdnNzc2VnNGU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yX20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtMSkpKQp2b2lkIHZzc3NlZzRlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0yKSkpCnZvaWQgdnNzc2VnNGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bTJfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnNGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzRlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NzZWc0ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc1ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMikpKQp2b2lkIHZzc3NlZzVlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNWU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY0KSkpCnZvaWQgdnNzc2VnNWU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc1ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG0xKSkpCnZvaWQgdnNzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjIpKSkKdm9pZCB2c3NzZWc1ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzVlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzc2VnNWU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzZlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzc2VnNmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnNmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNmU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzZlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc2ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWc2ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWc2ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc2ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc3ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWc3ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnN2U4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY0KSkpCnZvaWQgdnNzc2VnN2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl9pOG1mOCkpKQp2b2lkIHZzc3NlZzdlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtMSkpKQp2b2lkIHZzc3NlZzdlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjIpKSkKdm9pZCB2c3NzZWc3ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzdlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnN2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzc2VnN2U4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzhlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnOGU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnOGU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NzZWc4ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mOCkpKQp2b2lkIHZzc3NlZzhlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWc4ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMikpKQp2b2lkIHZzc3NlZzhlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnOGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzc2VnOGU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NzZWc4ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NzZWcyZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTQpKSkKdm9pZCB2c3NzZWcyZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnMmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0yKSkpCnZvaWQgdnNzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNCkpKQp2b2lkIHZzc3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWcyZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xKSkpCnZvaWQgdnNzc2VnM2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzc3NlZzNlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NzZWczZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NzZWczZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl91MTZtMikpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NzZWc0ZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc0ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0yKSkpCnZvaWQgdnNzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzc2VnNGUxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnNmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NzZWc2ZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm0xKSkpCnZvaWQgdnNzc2VnN2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc3NlZzdlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm0yKSkpCnZvaWQgdnNzc2VnMmUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm0yX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTQpKSkKdm9pZCB2c3NzZWcyZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWcyZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMikpKQp2b2lkIHZzc3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm00KSkpCnZvaWQgdnNzc2VnMmUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm00X20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWcyZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2kzMm0xKSkpCnZvaWQgdnNzc2VnM2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMikpKQp2b2lkIHZzc3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzc2VnM2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWczZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTIpKSkKdm9pZCB2c3NzZWczZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzc2VnM2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NzZWczZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtMikpKQp2b2lkIHZzc3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NzZWc0ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc0ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0yKSkpCnZvaWQgdnNzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc0ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm0xKSkpCnZvaWQgdnNzc2VnNWUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzc2VnNWUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtMSkpKQp2b2lkIHZzc3NlZzVlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzc2VnNWUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X3UzMm1mMikpKQp2b2lkIHZzc3NlZzVlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NzZWc2ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc2ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc2ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm0xKSkpCnZvaWQgdnNzc2VnNmUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc3NlZzZlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc3ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc3ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnMmU2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NzZWcyZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNCkpKQp2b2lkIHZzc3NlZzJlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnMmU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NzZWcyZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNCkpKQp2b2lkIHZzc3NlZzJlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnM2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMikpKQp2b2lkIHZzc3NlZzNlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzc3NlZzNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWczZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NzZWczZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NzZWc0ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc0ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0yKSkpCnZvaWQgdnNzc2VnNGU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc3NlZzVlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnNWU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc1ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NzZWc2ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NzZWc2ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnNmU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc3NlZzZlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnN2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc3NlZzdlNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl91NjRtMSkpKQp2b2lkIHZzc3NlZzdlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc3NlZzdlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnOGU2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnOGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWc4ZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc4ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnNmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzZlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bTEpKSkKdm9pZCB2c3V4c2VnN2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzZlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm00KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm00KSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybTIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMikpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtNCkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG0xKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTIpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc2ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bTEpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG00KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMikpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTIpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNWVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMikpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc3ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bTEpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bTEpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTEpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnN2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzdlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm00KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTQpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMikpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm00KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnM2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzZlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnN2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnOGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTQpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMikpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG00KSkpCnZvaWQgdnNveHNlZzJlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG00KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnOGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMikpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTQpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00KSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnOGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTJfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTRfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnMmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtMl9tKSkpCnZvaWQgdmxzZWcyZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG00X20pKSkKdm9pZCB2bHNlZzJlOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzJlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnMmU4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWcyZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnM2U4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMl9tKSkpCnZvaWQgdmxzZWczZTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWczZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnM2U4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzNlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0xX20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0yX20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWczZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnM2U4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzRlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTJfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc0ZTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yX20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnNWU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnNWU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzZWc1ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzVlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc2ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnNmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNmU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzZlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWc2ZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mNF9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnOGU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnOGU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzZWc4ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzhlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzJlMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzJlMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnMmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWcyZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnM2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzNlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWczZTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnM2UxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnM2UxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc2VnNWUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzVlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc2VnOGUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzhlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X3UzMm00X20pKSkKdm9pZCB2bHNlZzJlMzIodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsc2VnM2UzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm0yX20pKSkKdm9pZCB2bHNlZzNlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzVlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzVlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWc2ZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc2ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzZlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzhlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzhlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG00X20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdmxzZWcyZTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzNlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnM2U2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTFfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtMl9tKSkpCnZvaWQgdmxzZWczZThmZih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWczZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzNlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG0yX20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWczZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0yX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc0ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0yX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCB2dWludDhtMl90IG9wNywgdnVpbnQ4bTJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc0ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzVlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzVlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc1ZThmZih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc1ZThmZih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc2ZThmZih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc2ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNmU4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzZlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzZlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc2ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzZlOGZmKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnNmU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzdlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc3ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnN2U4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzdlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzdlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc3ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnN2U4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzdlOGZmKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzhlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzhlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc4ZThmZih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc4ZThmZih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHZ1aW50OG1mOF90IG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzNlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNmZmKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNmZmKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzVlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc2ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzhlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0yX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm00X20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTFfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTJfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTRfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWcyZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm1mMl9tKSkpCnZvaWQgdmxzZWcyZTMyZmYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWczZTMyZmYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTFfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm1mMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCB2dWludDMybTJfdCBvcDcsIHZ1aW50MzJtMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzVlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMmZmKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfaTMybTFfbSkpKQp2b2lkIHZsc2VnN2UzMmZmKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTFfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtMl9tKSkpCnZvaWQgdmxzZWcyZThmZih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG00X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzJlOGZmKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWcyZThmZih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzdlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzhlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMmZmKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG00X20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NGZmKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtNF9tKSkpCnZvaWQgdmxzZWcyZTY0ZmYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzNlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnM2U2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl91NjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWc0ZTY0ZmYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNGU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X3U2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjRmZih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl9pNjRtMV9tKSkpCnZvaWQgdmxzZWc1ZTY0ZmYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzJlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMl9tKSkpCnZvaWQgdmxzc2VnMmU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG00X20pKSkKdm9pZCB2bHNzZWcyZTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNzZWcyZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzJlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNWU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NGZmKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIGNvbnN0IGludDY0X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzZlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnN2U2NGZmKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIGNvbnN0IHVpbnQ2NF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0ZmZfdl9pNjRtMV9tKSkpCnZvaWQgdmxzZWc4ZTY0ZmYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnOGU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZsc3NlZzJlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2bHNzZWcyZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtNF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNzZWcyZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzJlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG00X3QgKiBvcDAsIHZpbnQ4bTRfdCAqIG9wMSwgdmJvb2wyX3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0yX20pKSkKdm9pZCB2bHNzZWczZTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnM2U4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG0yX20pKSkKdm9pZCB2bHNzZWczZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNzZWczZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzc2VnM2U4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzNlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzRlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfaThtMl9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mNF9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0xX20pKSkKdm9pZCB2bHNzZWc0ZTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bTJfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzc2VnNWU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnNWU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnNWU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNzZWc1ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzVlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNzZWc2ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnNmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnNmU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzZlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNzZWc2ZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bTFfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzc2VnOGU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0xKSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0yKSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMl9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG00KSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtNF9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mMikpKQp2b2lkIHZzc2VnMmU4KGludDhfdCAqIG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZzc2VnMmU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzJlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY4KSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnOGU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnOGU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNzZWc4ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzhlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNzZWcyZTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm00X20pKSkKdm9pZCB2bHNzZWcyZTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzc2VnMmUxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnM2UxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzc2VnM2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsc3NlZzNlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNzZWczZTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzNlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnNWUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNWUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzVlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc1ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzZlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTIpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTQpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG00X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWYyKSkpCnZvaWQgdnNzZWcyZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mNCkpKQp2b2lkIHZzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc2VnMmU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzZlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnN2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzc2VnN2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzdlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnOGUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnOGUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzhlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc4ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsc3NlZzJlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxzc2VnMmUzMih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnMmUzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZsc3NlZzJlMzIodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNzZWczZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWczZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnM2UzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWczZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnNGUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnNGUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnNWUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnNmUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnOGUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNzZWcyZTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsc3NlZzJlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNzZWcyZTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZsc3NlZzJlNjQodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNzZWczZTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNzZWczZTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNzZWczZTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzc2VnM2U2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmxzc2VnNmU2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxzc2VnNmU2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgdnVpbnQ4bWYyX3Qgb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2aW50OG0yX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQxNm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgdmludDhtMl90IG9wNywgdmludDhtMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIHZpbnQ4bWY4X3Qgb3AxMywgdmludDhtZjhfdCBvcDE0LCB2aW50OG1mOF90IG9wMTUsIHZpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIHZ1aW50OG0xX3Qgb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQzMm04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCB2dWludDhtMl90IG9wNywgdnVpbnQ4bTJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDMybTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDMybTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQzMm00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQzMm00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MzJtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIHZpbnQ4bWY4X3Qgb3AxMywgdmludDhtZjhfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MzJtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCB2aW50OG1mNF90IG9wMTUsIHZpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MzJtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHZ1aW50OG1mOF90IG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG04X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bThfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG04X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bThfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG04X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG04X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG04X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIHZ1aW50OG0xX3Qgb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG04X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgdnVpbnQ4bWY0X3Qgb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgdmludDE2bTFfdCBvcDE1LCB2aW50MTZtMV90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgdnVpbnQxNm0yX3Qgb3A3LCB2dWludDE2bTJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgdmludDE2bTFfdCBvcDE1LCB2aW50MTZtMV90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDMybTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzJlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTIpKSkKdm9pZCB2c3NzZWcyZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTJfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00KSkpCnZvaWQgdnNzc2VnMmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00X20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWcyZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzJlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4KSkpCnZvaWQgdnNzc2VnMmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWcyZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yKSkpCnZvaWQgdnNzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNCkpKQp2b2lkIHZzc3NlZzJlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjQpKSkKdm9pZCB2c3NzZWcyZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mOCkpKQp2b2lkIHZzc3NlZzJlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTQpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG00KSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgdmludDY0bTJfdCBvcDcsIHZpbnQ2NG0yX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBjb25zdCBpbnQ2NF90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgdWludDY0X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgY29uc3QgaW50NjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIGNvbnN0IGludDY0X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgY29uc3QgdWludDY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIGNvbnN0IHVpbnQ2NF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IGludDY0X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ2NF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgdmludDY0bTJfdCBvcDcsIHZpbnQ2NG0yX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBjb25zdCBpbnQ2NF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgY29uc3QgaW50NjRfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDhtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHZ1aW50OG0yX3Qgb3A3LCB2dWludDhtMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ4bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50OG1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCB2aW50OG1mNF90IG9wMTUsIHZpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG00X3QgKiBvcDAsIHZpbnQ4bTRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG00KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgdmJvb2wyX3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtMSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTEpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHZ1aW50OG0yX3Qgb3A3LCB2dWludDhtMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQxNm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDE2bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MTZtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MTZtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bTIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgdnVpbnQ4bWYyX3Qgb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bThfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG04X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG04X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bThfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bThfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bThfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHZpbnQxNm0yX3Qgb3A3LCB2aW50MTZtMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHZpbnQxNm0yX3Qgb3A3LCB2aW50MTZtMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgdnVpbnQzMm0xX3Qgb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCB2dWludDMybTJfdCBvcDcsIHZ1aW50MzJtMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9mKSAmJiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2ZmxvYXQzMm0yX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCB2ZmxvYXQzMm1mMl90IG9wMTUsIHZmbG9hdDMybWYyX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlZzJlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2VnMmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00KSkpCnZvaWQgdnNzZWcyZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00X20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWczZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTIpKSkKdm9pZCB2c3NlZzNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzc2VnM2UzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3NlZzNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlZzRlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2VnNGUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2VnNGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZWc0ZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnNGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWc1ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzZWc1ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc2VnNmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzZWc2ZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnNmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc2VnN2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzZWc3ZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnN2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWc4ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnOGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMikpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0yX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtNCkpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm00X20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnM2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm0yKSkpCnZvaWQgdnNzc2VnM2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzNlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc0ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTIpKSkKdm9pZCB2c3NzZWc0ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzc2VnNGUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnNWUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzVlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzVlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnNmUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzZlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzdlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc4ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzc2VnOGUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnM2VpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnNWVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnMmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm00KSkpCnZvaWQgdnNveHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTIpKSkKdm9pZCB2c294c2VnNGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWczZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnM2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybTIpKSkKdm9pZCB2c294c2VnM2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnOGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c294c2VnNGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnOGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0yX20pKSkKdm9pZCB2bHNlZzRlMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzdlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzdlMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzJmZih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzVlMzJmZih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzhlMzJmZih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnMmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0yX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZsc3NlZzJlMzIodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnM2UzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnM2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzRlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2ZmxvYXQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHZmbG9hdDMybTJfdCBvcDcsIHZmbG9hdDMybTJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzVlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnNmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnN2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzhlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTQpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9kKSAmJiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2Y2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgY29uc3QgZG91YmxlICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHZmbG9hdDY0bTJfdCBvcDcsIHZmbG9hdDY0bTJfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIGNvbnN0IGRvdWJsZSAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIGNvbnN0IGRvdWJsZSAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIGNvbnN0IGRvdWJsZSAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCBjb25zdCBkb3VibGUgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWcyZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMikpKQp2b2lkIHZzc2VnMmU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3NlZzJlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG00X20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWczZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWczZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMikpKQp2b2lkIHZzc2VnM2U2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzc2VnM2U2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NlZzRlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NlZzRlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yKSkpCnZvaWQgdnNzZWc0ZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNzZWc0ZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2VnNWU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NlZzZlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NlZzZlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWc3ZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWc3ZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2VnOGU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2VnOGU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzJlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yKSkpCnZvaWQgdnNzc2VnMmU2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3NzZWcyZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTRfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzNlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yKSkpCnZvaWQgdnNzc2VnM2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NzZWczZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzRlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMikpKQp2b2lkIHZzc3NlZzRlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xKSkpCnZvaWQgdnNzc2VnNWU2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NzZWc1ZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NzZWc2ZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzZlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzdlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnN2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzhlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzhlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWczZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnMmVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0yKSkpCnZvaWQgdnNveHNlZzJlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnM2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2Y2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnNGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2Y2NG0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2c294c2VnMmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnM2VpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnMmVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWczZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnMmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdnNveHNlZzJlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG00X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnM2VpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWczZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnNGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnOGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWcyZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG00X20pKSkKdm9pZCB2bHNlZzJlNjQodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWczZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc0ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWc0ZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgdmZsb2F0NjRtMl90IG9wNywgdmZsb2F0NjRtMl90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc1ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc3ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc4ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWcyZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NGZmKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2Y2NG00X20pKSkKdm9pZCB2bHNlZzJlNjRmZih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc0ZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnNGU2NGZmKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgdmZsb2F0NjRtMl90IG9wNywgdmZsb2F0NjRtMl90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2Y2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjRmZih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIGNvbnN0IGRvdWJsZSAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NGZmKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnN2U2NGZmKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2Y2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjRmZih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzc2VnM2U2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHNzZWczZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X2Y2NG0xX20pKSkKdm9pZCB2bHNzZWc2ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIHZmbG9hdDY0bTFfdCBvcDEzLCB2ZmxvYXQ2NG0xX3Qgb3AxNCwgdmZsb2F0NjRtMV90IG9wMTUsIHZmbG9hdDY0bTFfdCBvcDE2LCBjb25zdCBkb3VibGUgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2Y2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgY29uc3QgZG91YmxlICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHZmbG9hdDY0bTJfdCBvcDcsIHZmbG9hdDY0bTJfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIGNvbnN0IGRvdWJsZSAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIGNvbnN0IGRvdWJsZSAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIGNvbnN0IGRvdWJsZSAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCBjb25zdCBkb3VibGUgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96ZmgpICYmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHZmbG9hdDE2bTRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHZmbG9hdDE2bTRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50NjRtNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNCkpKQp2b2lkIHZzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZWczZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlZzNlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm1mMikpKQp2b2lkIHZzc2VnM2UxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NlZzNlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMikpKQp2b2lkIHZzc2VnNGUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzVlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NlZzVlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNCkpKQp2b2lkIHZzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzZWc1ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzZlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NlZzZlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzhlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0xKSkpCnZvaWQgdnNzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0yKSkpCnZvaWQgdnNzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTQpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9mMTZtMikpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mMikpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnM2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtMikpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc1ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzVlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzVlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc2ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzc2VnN2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mNCkpKQp2b2lkIHZzc3NlZzdlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnOGUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc4ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWc4ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnMmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2c294c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc0ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnN2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzdlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWcyZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm00X20pKSkKdm9pZCB2bHNlZzJlMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzJlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzNlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnM2UxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWczZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc2VnNWUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnNmUxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc3ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc2VnOGUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm00X20pKSkKdm9pZCB2bHNlZzJlMTZmZih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0yX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzNlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2YxNm0yX20pKSkKdm9pZCB2bHNzZWczZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzc2VnM2UxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNzZWczZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzc2VnNGUxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNGUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNzZWc1ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzZlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNmUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnN2UxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNzZWc4ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKI2VuZGlmCgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmIC8vIF9fcmlzY3ZfdmVjdG9yCiNlbmRpZiAvLyBfX1JJU0NWX1ZFQ1RPUl9ICgAvKj09PS0tLS0gc2d4aW50cmluLmggLSBYODYgU0dYIGludHJpbnNpY3MgY29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxzZ3hpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fU0dYSU5UUklOX0gKI2RlZmluZSBfX1NHWElOVFJJTl9ICgojaWYgX19oYXNfZXh0ZW5zaW9uKGdudV9hc20pCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJzZ3giKSkpCgpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfZW5jbHVfdTMyKHVuc2lnbmVkIGludCBfX2xlYWYsIF9fU0laRV9UWVBFX18gX19kW10pCnsKICB1bnNpZ25lZCBpbnQgX19yZXN1bHQ7CiAgX19hc21fXyAoImVuY2x1IgogICAgICAgICAgIDogIj1hIiAoX19yZXN1bHQpLCAiPWIiIChfX2RbMF0pLCAiPWMiIChfX2RbMV0pLCAiPWQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiYSIgKF9fbGVhZiksICJiIiAoX19kWzBdKSwgImMiIChfX2RbMV0pLCAiZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJjYyIpOwogIHJldHVybiBfX3Jlc3VsdDsKfQoKc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2VuY2xzX3UzMih1bnNpZ25lZCBpbnQgX19sZWFmLCBfX1NJWkVfVFlQRV9fIF9fZFtdKQp7CiAgdW5zaWduZWQgaW50IF9fcmVzdWx0OwogIF9fYXNtX18gKCJlbmNscyIKICAgICAgICAgICA6ICI9YSIgKF9fcmVzdWx0KSwgIj1iIiAoX19kWzBdKSwgIj1jIiAoX19kWzFdKSwgIj1kIiAoX19kWzJdKQogICAgICAgICAgIDogImEiIChfX2xlYWYpLCAiYiIgKF9fZFswXSksICJjIiAoX19kWzFdKSwgImQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiY2MiKTsKICByZXR1cm4gX19yZXN1bHQ7Cn0KCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9lbmNsdl91MzIodW5zaWduZWQgaW50IF9fbGVhZiwgX19TSVpFX1RZUEVfXyBfX2RbXSkKewogIHVuc2lnbmVkIGludCBfX3Jlc3VsdDsKICBfX2FzbV9fICgiZW5jbHYiCiAgICAgICAgICAgOiAiPWEiIChfX3Jlc3VsdCksICI9YiIgKF9fZFswXSksICI9YyIgKF9fZFsxXSksICI9ZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJhIiAoX19sZWFmKSwgImIiIChfX2RbMF0pLCAiYyIgKF9fZFsxXSksICJkIiAoX19kWzJdKQogICAgICAgICAgIDogImNjIik7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19oYXNfZXh0ZW5zaW9uKGdudV9hc20pICovCgojZW5kaWYKAHRtbWludHJpbi5oAHdtbWludHJpbi5oAHBwY193cmFwcGVycy9zbW1pbnRyaW4uaAAgKHNpemU9AFZOYW1lIHJ1bGUgaXMgbWlzc2luZyBpdHMgdGVtcGxhdGUuAFRoZSBkb2N1bWVudCByb290IG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IG90aGVyIHZhbHVlcy4Ac2l6ZV90IHRvIGludCBjb252ZXJzaW9uAHByZWZlci1yZWFsACh1bmtub3duKQBbOmFscGhhOl0ALABleHRlcm5hbC9yZWdleC1yZTIvcmUyL2JpdHN0YXRlLmNjAE5hbWVkQ2FwdHVyZXNXYWxrZXI6OlNob3J0VmlzaXQgY2FsbGVkAENhcHR1cmVOYW1lc1dhbGtlcjo6U2hvcnRWaXNpdCBjYWxsZWQAW15ceDAwLVx4ezEwZmZmZn1dAEV0aGlvcGljAEd1amFyYXRpAE1hc2FyYW1fR29uZGkAJXNAICUqcCAgKHVua25vd24pICAlcwoATG93TGV2ZWxBbGxvYzo6RGVsZXRlQXJlbmE6IG11bm1hcCBmYWlsZWQ6ICVkAF9fZmxvYXQxMjgAZWxsaXBzaXMAY2hhcjE2X3QAc3QAbncAZGEAKj0AVU5LTk9XTgBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3RyaW5ncy9zdHJfc3BsaXQuY2MAd2FpdHAgPT0gbnVsbHB0ciB8fCB3YWl0cC0+dGhyZWFkLT53YWl0cCA9PSBudWxscHRyIHx8IHdhaXRwLT50aHJlYWQtPnN1cHByZXNzX2ZhdGFsX2Vycm9ycwB0aGlzLT5tdV8gIT0gbnVsbHB0cgBVVEMAUC0zODQARUNEU0EgUwAvZGV2L3VyYW5kb20AQVNOLjEgZW5jb2Rpbmcgcm91dGluZXMAZWxsaXB0aWMgY3VydmUgcm91dGluZXMAQ09NUCByb3V0aW5lcwBvdXQvc29vbmcvLmludGVybWVkaWF0ZXMvZXh0ZXJuYWwva3l0aGUvY3h4X2V4dHJhY3Rvci9saW51eF9nbGliY194ODZfNjQvZ2VuL3Byb3RvL2t5dGhlL3Byb3RvL2FuYWx5c2lzLnBiLmNjAG91dC9zb29uZy8uaW50ZXJtZWRpYXRlcy9leHRlcm5hbC9reXRoZS9jeHhfZXh0cmFjdG9yL2xpbnV4X2dsaWJjX3g4Nl82NC9nZW4vcHJvdG8va3l0aGUvcHJvdG8vZmlsZWNvbnRleHQucGIuY2MAa3l0aGUucHJvdG8uV3JpdGVSZXF1ZXN0LlVwZGF0ZS5mYWN0X25hbWUAW14tXS4qXC4oZnxmb3J8ZnRufEZ8Rk9SfGZwcHxGUFB8RlROfGY5MHxmOTV8ZjAzfGYwOHxGOTB8Rjk1fEYwM3xGMDgpAENvdWxkbid0IHJlb3BlbiAAaW5jbHVkZQBJbXBvcnRlZCB3YXMgc2V0IHRvIABBbmdsZWQALyo9PT0tLSBfX2NsYW5nX2N1ZGFfY29tcGxleF9idWlsdGlucyAtIENVREEgaW1wbHMgb2YgcnVudGltZSBjb21wbGV4IGZucyAtLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19DVURBX0NPTVBMRVhfQlVJTFRJTlMKI2RlZmluZSBfX0NMQU5HX0NVREFfQ09NUExFWF9CVUlMVElOUwoKLy8gVGhpcyBoZWFkZXIgZGVmaW5lcyBfX211bGRjMywgX19tdWxzYzMsIF9fZGl2ZGMzLCBhbmQgX19kaXZzYzMuICBUaGVzZSBhcmUKLy8gbGliZ2NjIGZ1bmN0aW9ucyB0aGF0IGNsYW5nIGFzc3VtZXMgYXJlIGF2YWlsYWJsZSB3aGVuIGNvbXBpbGluZyBjOTkgY29tcGxleAovLyBvcGVyYXRpb25zLiAgKFRoZXNlIGltcGxlbWVudGF0aW9ucyBjb21lIGZyb20gbGliYysrLCBhbmQgaGF2ZSBiZWVuIG1vZGlmaWVkCi8vIHRvIHdvcmsgd2l0aCBDVURBIGFuZCBPcGVuTVAgdGFyZ2V0IG9mZmxvYWRpbmcgW2luIEMgYW5kIEMrKyBtb2RlXS4pCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQojaWYgZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKSB8fCBkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQojcHJhZ21hIG9tcCBkZWNsYXJlIHRhcmdldAojZGVmaW5lIF9fREVWSUNFX18gX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vdGhyb3csIGNvbGQsIHdlYWspKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gX19kZXZpY2VfXyBpbmxpbmUKI2VuZGlmCgovLyBUbyBtYWtlIHRoZSBhbGdvcml0aG1zIGF2YWlsYWJsZSBmb3IgQyBhbmQgQysrIGluIENVREEgYW5kIE9wZW5NUCB3ZSBzZWxlY3QKLy8gZGlmZmVyZW50IGJ1dCBlcXVpdmFsZW50IGZ1bmN0aW9uIHZlcnNpb25zLiBUT0RPOiBGb3IgT3Blbk1QIHdlIGN1cnJlbnRseQovLyBzZWxlY3QgdGhlIG5hdGl2ZSBidWlsdGlucyBhcyB0aGUgb3ZlcmxvYWQgc3VwcG9ydCBmb3IgdGVtcGxhdGVzIGlzIGxhY2tpbmcuCiNpZiAhZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKSAmJiAhZGVmaW5lZChfX09QRU5NUF9BTURHQ05fXykKI2RlZmluZSBfSVNOQU5kIHN0ZDo6aXNuYW4KI2RlZmluZSBfSVNOQU5mIHN0ZDo6aXNuYW4KI2RlZmluZSBfSVNJTkZkIHN0ZDo6aXNpbmYKI2RlZmluZSBfSVNJTkZmIHN0ZDo6aXNpbmYKI2RlZmluZSBfSVNGSU5JVEVkIHN0ZDo6aXNmaW5pdGUKI2RlZmluZSBfSVNGSU5JVEVmIHN0ZDo6aXNmaW5pdGUKI2RlZmluZSBfQ09QWVNJR05kIHN0ZDo6Y29weXNpZ24KI2RlZmluZSBfQ09QWVNJR05mIHN0ZDo6Y29weXNpZ24KI2RlZmluZSBfU0NBTEJOZCBzdGQ6OnNjYWxibgojZGVmaW5lIF9TQ0FMQk5mIHN0ZDo6c2NhbGJuCiNkZWZpbmUgX0FCU2Qgc3RkOjphYnMKI2RlZmluZSBfQUJTZiBzdGQ6OmFicwojZGVmaW5lIF9MT0dCZCBzdGQ6OmxvZ2IKI2RlZmluZSBfTE9HQmYgc3RkOjpsb2diCi8vIFJhdGhlciB0aGFuIHB1bGxpbmcgaW4gc3RkOjptYXggZnJvbSBhbGdvcml0aG0gZXZlcnl0aW1lLCB1c2UgYXZhaWxhYmxlIDo6bWF4LgojZGVmaW5lIF9mbWF4ZCBtYXgKI2RlZmluZSBfZm1heGYgbWF4CiNlbHNlCiNpZmRlZiBfX0FNREdDTl9fCiNkZWZpbmUgX0lTTkFOZCBfX29jbWxfaXNuYW5fZjY0CiNkZWZpbmUgX0lTTkFOZiBfX29jbWxfaXNuYW5fZjMyCiNkZWZpbmUgX0lTSU5GZCBfX29jbWxfaXNpbmZfZjY0CiNkZWZpbmUgX0lTSU5GZiBfX29jbWxfaXNpbmZfZjMyCiNkZWZpbmUgX0lTRklOSVRFZCBfX29jbWxfaXNmaW5pdGVfZjY0CiNkZWZpbmUgX0lTRklOSVRFZiBfX29jbWxfaXNmaW5pdGVfZjMyCiNkZWZpbmUgX0NPUFlTSUdOZCBfX29jbWxfY29weXNpZ25fZjY0CiNkZWZpbmUgX0NPUFlTSUdOZiBfX29jbWxfY29weXNpZ25fZjMyCiNkZWZpbmUgX1NDQUxCTmQgX19vY21sX3NjYWxibl9mNjQKI2RlZmluZSBfU0NBTEJOZiBfX29jbWxfc2NhbGJuX2YzMgojZGVmaW5lIF9BQlNkIF9fb2NtbF9mYWJzX2Y2NAojZGVmaW5lIF9BQlNmIF9fb2NtbF9mYWJzX2YzMgojZGVmaW5lIF9MT0dCZCBfX29jbWxfbG9nYl9mNjQKI2RlZmluZSBfTE9HQmYgX19vY21sX2xvZ2JfZjMyCiNkZWZpbmUgX2ZtYXhkIF9fb2NtbF9mbWF4X2Y2NAojZGVmaW5lIF9mbWF4ZiBfX29jbWxfZm1heF9mMzIKI2Vsc2UKI2RlZmluZSBfSVNOQU5kIF9fbnZfaXNuYW5kCiNkZWZpbmUgX0lTTkFOZiBfX252X2lzbmFuZgojZGVmaW5lIF9JU0lORmQgX19udl9pc2luZmQKI2RlZmluZSBfSVNJTkZmIF9fbnZfaXNpbmZmCiNkZWZpbmUgX0lTRklOSVRFZCBfX252X2lzZmluaXRlZAojZGVmaW5lIF9JU0ZJTklURWYgX19udl9maW5pdGVmCiNkZWZpbmUgX0NPUFlTSUdOZCBfX252X2NvcHlzaWduCiNkZWZpbmUgX0NPUFlTSUdOZiBfX252X2NvcHlzaWduZgojZGVmaW5lIF9TQ0FMQk5kIF9fbnZfc2NhbGJuCiNkZWZpbmUgX1NDQUxCTmYgX19udl9zY2FsYm5mCiNkZWZpbmUgX0FCU2QgX19udl9mYWJzCiNkZWZpbmUgX0FCU2YgX19udl9mYWJzZgojZGVmaW5lIF9MT0dCZCBfX252X2xvZ2IKI2RlZmluZSBfTE9HQmYgX19udl9sb2diZgojZGVmaW5lIF9mbWF4ZCBfX252X2ZtYXgKI2RlZmluZSBfZm1heGYgX19udl9mbWF4ZgojZW5kaWYKI2VuZGlmCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKX19ERVZJQ0VfXyBkb3VibGUgX0NvbXBsZXggX19tdWxkYzMoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIF9fZCkgewogIGRvdWJsZSBfX2FjID0gX19hICogX19jOwogIGRvdWJsZSBfX2JkID0gX19iICogX19kOwogIGRvdWJsZSBfX2FkID0gX19hICogX19kOwogIGRvdWJsZSBfX2JjID0gX19iICogX19jOwogIGRvdWJsZSBfQ29tcGxleCB6OwogIF9fcmVhbF9fKHopID0gX19hYyAtIF9fYmQ7CiAgX19pbWFnX18oeikgPSBfX2FkICsgX19iYzsKICBpZiAoX0lTTkFOZChfX3JlYWxfXyh6KSkgJiYgX0lTTkFOZChfX2ltYWdfXyh6KSkpIHsKICAgIGludCBfX3JlY2FsYyA9IDA7CiAgICBpZiAoX0lTSU5GZChfX2EpIHx8IF9JU0lORmQoX19iKSkgewogICAgICBfX2EgPSBfQ09QWVNJR05kKF9JU0lORmQoX19hKSA/IDEgOiAwLCBfX2EpOwogICAgICBfX2IgPSBfQ09QWVNJR05kKF9JU0lORmQoX19iKSA/IDEgOiAwLCBfX2IpOwogICAgICBpZiAoX0lTTkFOZChfX2MpKQogICAgICAgIF9fYyA9IF9DT1BZU0lHTmQoMCwgX19jKTsKICAgICAgaWYgKF9JU05BTmQoX19kKSkKICAgICAgICBfX2QgPSBfQ09QWVNJR05kKDAsIF9fZCk7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmIChfSVNJTkZkKF9fYykgfHwgX0lTSU5GZChfX2QpKSB7CiAgICAgIF9fYyA9IF9DT1BZU0lHTmQoX0lTSU5GZChfX2MpID8gMSA6IDAsIF9fYyk7CiAgICAgIF9fZCA9IF9DT1BZU0lHTmQoX0lTSU5GZChfX2QpID8gMSA6IDAsIF9fZCk7CiAgICAgIGlmIChfSVNOQU5kKF9fYSkpCiAgICAgICAgX19hID0gX0NPUFlTSUdOZCgwLCBfX2EpOwogICAgICBpZiAoX0lTTkFOZChfX2IpKQogICAgICAgIF9fYiA9IF9DT1BZU0lHTmQoMCwgX19iKTsKICAgICAgX19yZWNhbGMgPSAxOwogICAgfQogICAgaWYgKCFfX3JlY2FsYyAmJgogICAgICAgIChfSVNJTkZkKF9fYWMpIHx8IF9JU0lORmQoX19iZCkgfHwgX0lTSU5GZChfX2FkKSB8fCBfSVNJTkZkKF9fYmMpKSkgewogICAgICBpZiAoX0lTTkFOZChfX2EpKQogICAgICAgIF9fYSA9IF9DT1BZU0lHTmQoMCwgX19hKTsKICAgICAgaWYgKF9JU05BTmQoX19iKSkKICAgICAgICBfX2IgPSBfQ09QWVNJR05kKDAsIF9fYik7CiAgICAgIGlmIChfSVNOQU5kKF9fYykpCiAgICAgICAgX19jID0gX0NPUFlTSUdOZCgwLCBfX2MpOwogICAgICBpZiAoX0lTTkFOZChfX2QpKQogICAgICAgIF9fZCA9IF9DT1BZU0lHTmQoMCwgX19kKTsKICAgICAgX19yZWNhbGMgPSAxOwogICAgfQogICAgaWYgKF9fcmVjYWxjKSB7CiAgICAgIC8vIENhbid0IHVzZSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkgLS0gdGhhdCBkb2Vzbid0IGhhdmUKICAgICAgLy8gYSBkZXZpY2Ugb3ZlcmxvYWQgKGFuZCBpc24ndCBjb25zdGV4cHIgYmVmb3JlIEMrKzExLCBuYXR1cmFsbHkpLgogICAgICBfX3JlYWxfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbCgpICogKF9fYSAqIF9fYyAtIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gX19idWlsdGluX2h1Z2VfdmFsKCkgKiAoX19hICogX19kICsgX19iICogX19jKTsKICAgIH0KICB9CiAgcmV0dXJuIHo7Cn0KCl9fREVWSUNFX18gZmxvYXQgX0NvbXBsZXggX19tdWxzYzMoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kKSB7CiAgZmxvYXQgX19hYyA9IF9fYSAqIF9fYzsKICBmbG9hdCBfX2JkID0gX19iICogX19kOwogIGZsb2F0IF9fYWQgPSBfX2EgKiBfX2Q7CiAgZmxvYXQgX19iYyA9IF9fYiAqIF9fYzsKICBmbG9hdCBfQ29tcGxleCB6OwogIF9fcmVhbF9fKHopID0gX19hYyAtIF9fYmQ7CiAgX19pbWFnX18oeikgPSBfX2FkICsgX19iYzsKICBpZiAoX0lTTkFOZihfX3JlYWxfXyh6KSkgJiYgX0lTTkFOZihfX2ltYWdfXyh6KSkpIHsKICAgIGludCBfX3JlY2FsYyA9IDA7CiAgICBpZiAoX0lTSU5GZihfX2EpIHx8IF9JU0lORmYoX19iKSkgewogICAgICBfX2EgPSBfQ09QWVNJR05mKF9JU0lORmYoX19hKSA/IDEgOiAwLCBfX2EpOwogICAgICBfX2IgPSBfQ09QWVNJR05mKF9JU0lORmYoX19iKSA/IDEgOiAwLCBfX2IpOwogICAgICBpZiAoX0lTTkFOZihfX2MpKQogICAgICAgIF9fYyA9IF9DT1BZU0lHTmYoMCwgX19jKTsKICAgICAgaWYgKF9JU05BTmYoX19kKSkKICAgICAgICBfX2QgPSBfQ09QWVNJR05mKDAsIF9fZCk7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmIChfSVNJTkZmKF9fYykgfHwgX0lTSU5GZihfX2QpKSB7CiAgICAgIF9fYyA9IF9DT1BZU0lHTmYoX0lTSU5GZihfX2MpID8gMSA6IDAsIF9fYyk7CiAgICAgIF9fZCA9IF9DT1BZU0lHTmYoX0lTSU5GZihfX2QpID8gMSA6IDAsIF9fZCk7CiAgICAgIGlmIChfSVNOQU5mKF9fYSkpCiAgICAgICAgX19hID0gX0NPUFlTSUdOZigwLCBfX2EpOwogICAgICBpZiAoX0lTTkFOZihfX2IpKQogICAgICAgIF9fYiA9IF9DT1BZU0lHTmYoMCwgX19iKTsKICAgICAgX19yZWNhbGMgPSAxOwogICAgfQogICAgaWYgKCFfX3JlY2FsYyAmJgogICAgICAgIChfSVNJTkZmKF9fYWMpIHx8IF9JU0lORmYoX19iZCkgfHwgX0lTSU5GZihfX2FkKSB8fCBfSVNJTkZmKF9fYmMpKSkgewogICAgICBpZiAoX0lTTkFOZihfX2EpKQogICAgICAgIF9fYSA9IF9DT1BZU0lHTmYoMCwgX19hKTsKICAgICAgaWYgKF9JU05BTmYoX19iKSkKICAgICAgICBfX2IgPSBfQ09QWVNJR05mKDAsIF9fYik7CiAgICAgIGlmIChfSVNOQU5mKF9fYykpCiAgICAgICAgX19jID0gX0NPUFlTSUdOZigwLCBfX2MpOwogICAgICBpZiAoX0lTTkFOZihfX2QpKQogICAgICAgIF9fZCA9IF9DT1BZU0lHTmYoMCwgX19kKTsKICAgICAgX19yZWNhbGMgPSAxOwogICAgfQogICAgaWYgKF9fcmVjYWxjKSB7CiAgICAgIF9fcmVhbF9fKHopID0gX19idWlsdGluX2h1Z2VfdmFsZigpICogKF9fYSAqIF9fYyAtIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gX19idWlsdGluX2h1Z2VfdmFsZigpICogKF9fYSAqIF9fZCArIF9fYiAqIF9fYyk7CiAgICB9CiAgfQogIHJldHVybiB6Owp9CgpfX0RFVklDRV9fIGRvdWJsZSBfQ29tcGxleCBfX2RpdmRjMyhkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgX19kKSB7CiAgaW50IF9faWxvZ2J3ID0gMDsKICAvLyBDYW4ndCB1c2Ugc3RkOjptYXgsIGJlY2F1c2UgdGhhdCdzIGRlZmluZWQgaW4gPGFsZ29yaXRobT4sIGFuZCB3ZSBkb24ndAogIC8vIHdhbnQgdG8gcHVsbCB0aGF0IGluIGZvciBldmVyeSBjb21waWxlLiAgVGhlIENVREEgaGVhZGVycyBkZWZpbmUKICAvLyA6Om1heChmbG9hdCwgZmxvYXQpIGFuZCA6Om1heChkb3VibGUsIGRvdWJsZSksIHdoaWNoIGlzIHN1ZmZpY2llbnQgZm9yIHVzLgogIGRvdWJsZSBfX2xvZ2J3ID0gX0xPR0JkKF9mbWF4ZChfQUJTZChfX2MpLCBfQUJTZChfX2QpKSk7CiAgaWYgKF9JU0ZJTklURWQoX19sb2didykpIHsKICAgIF9faWxvZ2J3ID0gKGludClfX2xvZ2J3OwogICAgX19jID0gX1NDQUxCTmQoX19jLCAtX19pbG9nYncpOwogICAgX19kID0gX1NDQUxCTmQoX19kLCAtX19pbG9nYncpOwogIH0KICBkb3VibGUgX19kZW5vbSA9IF9fYyAqIF9fYyArIF9fZCAqIF9fZDsKICBkb3VibGUgX0NvbXBsZXggejsKICBfX3JlYWxfXyh6KSA9IF9TQ0FMQk5kKChfX2EgKiBfX2MgKyBfX2IgKiBfX2QpIC8gX19kZW5vbSwgLV9faWxvZ2J3KTsKICBfX2ltYWdfXyh6KSA9IF9TQ0FMQk5kKChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpIC8gX19kZW5vbSwgLV9faWxvZ2J3KTsKICBpZiAoX0lTTkFOZChfX3JlYWxfXyh6KSkgJiYgX0lTTkFOZChfX2ltYWdfXyh6KSkpIHsKICAgIGlmICgoX19kZW5vbSA9PSAwLjApICYmICghX0lTTkFOZChfX2EpIHx8ICFfSVNOQU5kKF9fYikpKSB7CiAgICAgIF9fcmVhbF9fKHopID0gX0NPUFlTSUdOZChfX2J1aWx0aW5faHVnZV92YWwoKSwgX19jKSAqIF9fYTsKICAgICAgX19pbWFnX18oeikgPSBfQ09QWVNJR05kKF9fYnVpbHRpbl9odWdlX3ZhbCgpLCBfX2MpICogX19iOwogICAgfSBlbHNlIGlmICgoX0lTSU5GZChfX2EpIHx8IF9JU0lORmQoX19iKSkgJiYgX0lTRklOSVRFZChfX2MpICYmCiAgICAgICAgICAgICAgIF9JU0ZJTklURWQoX19kKSkgewogICAgICBfX2EgPSBfQ09QWVNJR05kKF9JU0lORmQoX19hKSA/IDEuMCA6IDAuMCwgX19hKTsKICAgICAgX19iID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fYikgPyAxLjAgOiAwLjAsIF9fYik7CiAgICAgIF9fcmVhbF9fKHopID0gX19idWlsdGluX2h1Z2VfdmFsKCkgKiAoX19hICogX19jICsgX19iICogX19kKTsKICAgICAgX19pbWFnX18oeikgPSBfX2J1aWx0aW5faHVnZV92YWwoKSAqIChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpOwogICAgfSBlbHNlIGlmIChfSVNJTkZkKF9fbG9nYncpICYmIF9fbG9nYncgPiAwLjAgJiYgX0lTRklOSVRFZChfX2EpICYmCiAgICAgICAgICAgICAgIF9JU0ZJTklURWQoX19iKSkgewogICAgICBfX2MgPSBfQ09QWVNJR05kKF9JU0lORmQoX19jKSA/IDEuMCA6IDAuMCwgX19jKTsKICAgICAgX19kID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fZCkgPyAxLjAgOiAwLjAsIF9fZCk7CiAgICAgIF9fcmVhbF9fKHopID0gMC4wICogKF9fYSAqIF9fYyArIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gMC4wICogKF9fYiAqIF9fYyAtIF9fYSAqIF9fZCk7CiAgICB9CiAgfQogIHJldHVybiB6Owp9CgpfX0RFVklDRV9fIGZsb2F0IF9Db21wbGV4IF9fZGl2c2MzKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MsIGZsb2F0IF9fZCkgewogIGludCBfX2lsb2didyA9IDA7CiAgZmxvYXQgX19sb2didyA9IF9MT0dCZihfZm1heGYoX0FCU2YoX19jKSwgX0FCU2YoX19kKSkpOwogIGlmIChfSVNGSU5JVEVmKF9fbG9nYncpKSB7CiAgICBfX2lsb2didyA9IChpbnQpX19sb2didzsKICAgIF9fYyA9IF9TQ0FMQk5mKF9fYywgLV9faWxvZ2J3KTsKICAgIF9fZCA9IF9TQ0FMQk5mKF9fZCwgLV9faWxvZ2J3KTsKICB9CiAgZmxvYXQgX19kZW5vbSA9IF9fYyAqIF9fYyArIF9fZCAqIF9fZDsKICBmbG9hdCBfQ29tcGxleCB6OwogIF9fcmVhbF9fKHopID0gX1NDQUxCTmYoKF9fYSAqIF9fYyArIF9fYiAqIF9fZCkgLyBfX2Rlbm9tLCAtX19pbG9nYncpOwogIF9faW1hZ19fKHopID0gX1NDQUxCTmYoKF9fYiAqIF9fYyAtIF9fYSAqIF9fZCkgLyBfX2Rlbm9tLCAtX19pbG9nYncpOwogIGlmIChfSVNOQU5mKF9fcmVhbF9fKHopKSAmJiBfSVNOQU5mKF9faW1hZ19fKHopKSkgewogICAgaWYgKChfX2Rlbm9tID09IDApICYmICghX0lTTkFOZihfX2EpIHx8ICFfSVNOQU5mKF9fYikpKSB7CiAgICAgIF9fcmVhbF9fKHopID0gX0NPUFlTSUdOZihfX2J1aWx0aW5faHVnZV92YWxmKCksIF9fYykgKiBfX2E7CiAgICAgIF9faW1hZ19fKHopID0gX0NPUFlTSUdOZihfX2J1aWx0aW5faHVnZV92YWxmKCksIF9fYykgKiBfX2I7CiAgICB9IGVsc2UgaWYgKChfSVNJTkZmKF9fYSkgfHwgX0lTSU5GZihfX2IpKSAmJiBfSVNGSU5JVEVmKF9fYykgJiYKICAgICAgICAgICAgICAgX0lTRklOSVRFZihfX2QpKSB7CiAgICAgIF9fYSA9IF9DT1BZU0lHTmYoX0lTSU5GZihfX2EpID8gMSA6IDAsIF9fYSk7CiAgICAgIF9fYiA9IF9DT1BZU0lHTmYoX0lTSU5GZihfX2IpID8gMSA6IDAsIF9fYik7CiAgICAgIF9fcmVhbF9fKHopID0gX19idWlsdGluX2h1Z2VfdmFsZigpICogKF9fYSAqIF9fYyArIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gX19idWlsdGluX2h1Z2VfdmFsZigpICogKF9fYiAqIF9fYyAtIF9fYSAqIF9fZCk7CiAgICB9IGVsc2UgaWYgKF9JU0lORmYoX19sb2didykgJiYgX19sb2didyA+IDAgJiYgX0lTRklOSVRFZihfX2EpICYmCiAgICAgICAgICAgICAgIF9JU0ZJTklURWYoX19iKSkgewogICAgICBfX2MgPSBfQ09QWVNJR05mKF9JU0lORmYoX19jKSA/IDEgOiAwLCBfX2MpOwogICAgICBfX2QgPSBfQ09QWVNJR05mKF9JU0lORmYoX19kKSA/IDEgOiAwLCBfX2QpOwogICAgICBfX3JlYWxfXyh6KSA9IDAgKiAoX19hICogX19jICsgX19iICogX19kKTsKICAgICAgX19pbWFnX18oeikgPSAwICogKF9fYiAqIF9fYyAtIF9fYSAqIF9fZCk7CiAgICB9CiAgfQogIHJldHVybiB6Owp9CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKfSAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI3VuZGVmIF9JU05BTmQKI3VuZGVmIF9JU05BTmYKI3VuZGVmIF9JU0lORmQKI3VuZGVmIF9JU0lORmYKI3VuZGVmIF9DT1BZU0lHTmQKI3VuZGVmIF9DT1BZU0lHTmYKI3VuZGVmIF9JU0ZJTklURWQKI3VuZGVmIF9JU0ZJTklURWYKI3VuZGVmIF9TQ0FMQk5kCiN1bmRlZiBfU0NBTEJOZgojdW5kZWYgX0FCU2QKI3VuZGVmIF9BQlNmCiN1bmRlZiBfTE9HQmQKI3VuZGVmIF9MT0dCZgojdW5kZWYgX2ZtYXhkCiN1bmRlZiBfZm1heGYKCiNpZiBkZWZpbmVkKF9fT1BFTk1QX05WUFRYX18pIHx8IGRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHRhcmdldAojZW5kaWYKCiNwcmFnbWEgcG9wX21hY3JvKCJfX0RFVklDRV9fIikKCiNlbmRpZiAvLyBfX0NMQU5HX0NVREFfQ09NUExFWF9CVUlMVElOUwoALyo9PT0tIF9fY2xhbmdfbWF0aF9mb3J3YXJkX2RlY2xhcmVzLmggLSBQcm90b3R5cGVzIG9mIF9fZGV2aWNlX18gbWF0aCBmbnMgLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NMQU5HX19DVURBX01BVEhfRk9SV0FSRF9ERUNMQVJFU19IX18KI2RlZmluZSBfX0NMQU5HX19DVURBX01BVEhfRk9SV0FSRF9ERUNMQVJFU19IX18KI2lmICFkZWZpbmVkKF9fQ1VEQV9fKSAmJiAhX19ISVBfXwojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgQ1VEQS9ISVAgY29tcGlsYXRpb24gb25seS4iCiNlbmRpZgoKLy8gVGhpcyBmaWxlIGZvcndhcmQtZGVjbGFyZXMgb2Ygc29tZSBtYXRoIGZ1bmN0aW9ucyB3ZSAob3IgdGhlIENVREEgaGVhZGVycykKLy8gd2lsbCBkZWZpbmUgbGF0ZXIuICBXZSBuZWVkIHRvIGRvIHRoaXMsIGFuZCBkbyBpdCBiZWZvcmUgY21hdGggaXMgaW5jbHVkZWQsCi8vIGJlY2F1c2UgdGhlIHN0YW5kYXJkIGxpYnJhcnkgbWF5IGhhdmUgY29uc3RleHByIG1hdGggZnVuY3Rpb25zLiAgSW4gdGhlCi8vIGFic2VuY2Ugb2YgYSBwcmlvciBfX2RldmljZV9fIGRlY2wsIHRob3NlIGNvbnN0ZXhwciBmdW5jdGlvbnMgbWF5IGJlY29tZQovLyBpbXBsaWNpdGx5IGhvc3QrZGV2aWNlLiAgaG9zdCtkZXZpY2UgZnVuY3Rpb25zIGNhbid0IGJlIG92ZXJsb2FkZWQsIHNvIHRoYXQKLy8gd291bGQgcHJlY2x1ZGUgdGhlIHVzZSBvZiBvdXIgb3duIF9fZGV2aWNlX18gb3ZlcmxvYWRzIGZvciB0aGVzZSBmdW5jdGlvbnMuCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQojZGVmaW5lIF9fREVWSUNFX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIHN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKQoKX19ERVZJQ0VfXyBsb25nIGFicyhsb25nKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgYWJzKGxvbmcgbG9uZyk7Cl9fREVWSUNFX18gZG91YmxlIGFicyhkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGFicyhmbG9hdCk7Cl9fREVWSUNFX18gaW50IGFicyhpbnQpOwpfX0RFVklDRV9fIGRvdWJsZSBhY29zKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgYWNvcyhmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGFjb3NoKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgYWNvc2goZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBhc2luKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgYXNpbihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGFzaW5oKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgYXNpbmgoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBhdGFuMihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgYXRhbjIoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgYXRhbihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGF0YW4oZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBhdGFuaChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGF0YW5oKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgY2JydChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGNicnQoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBjZWlsKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgY2VpbChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGNvcHlzaWduKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBjb3B5c2lnbihmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBjb3MoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBjb3MoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBjb3NoKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgY29zaChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGVyZmMoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBlcmZjKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZXJmKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZXJmKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZXhwMihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGV4cDIoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBleHAoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBleHAoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBleHBtMShkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGV4cG0xKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZmFicyhkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGZhYnMoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmZGltKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBmZGltKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGZsb29yKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZmxvb3IoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmbWEoZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZm1hKGZsb2F0LCBmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmbWF4KGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBmbWF4KGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGZtaW4oZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGZtaW4oZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZm1vZChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZm1vZChmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGludCBmcGNsYXNzaWZ5KGRvdWJsZSk7Cl9fREVWSUNFX18gaW50IGZwY2xhc3NpZnkoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmcmV4cChkb3VibGUsIGludCAqKTsKX19ERVZJQ0VfXyBmbG9hdCBmcmV4cChmbG9hdCwgaW50ICopOwpfX0RFVklDRV9fIGRvdWJsZSBoeXBvdChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgaHlwb3QoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBpbnQgaWxvZ2IoZG91YmxlKTsKX19ERVZJQ0VfXyBpbnQgaWxvZ2IoZmxvYXQpOwojaWZkZWYgX01TQ19WRVIKX19ERVZJQ0VfXyBib29sIGlzZmluaXRlKGxvbmcgZG91YmxlKTsKI2VuZGlmCl9fREVWSUNFX18gYm9vbCBpc2Zpbml0ZShkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgaXNmaW5pdGUoZmxvYXQpOwpfX0RFVklDRV9fIGJvb2wgaXNncmVhdGVyKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcmVxdWFsKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXIoZmxvYXQsIGZsb2F0KTsKI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gYm9vbCBpc2luZihsb25nIGRvdWJsZSk7CiNlbmRpZgpfX0RFVklDRV9fIGJvb2wgaXNpbmYoZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzaW5mKGZsb2F0KTsKX19ERVZJQ0VfXyBib29sIGlzbGVzcyhkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2xlc3NlcXVhbChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2xlc3NlcXVhbChmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGJvb2wgaXNsZXNzKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gYm9vbCBpc2xlc3NncmVhdGVyKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzbGVzc2dyZWF0ZXIoZmxvYXQsIGZsb2F0KTsKI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gYm9vbCBpc25hbihsb25nIGRvdWJsZSk7CiNlbmRpZgpfX0RFVklDRV9fIGJvb2wgaXNuYW4oZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzbmFuKGZsb2F0KTsKX19ERVZJQ0VfXyBib29sIGlzbm9ybWFsKGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc25vcm1hbChmbG9hdCk7Cl9fREVWSUNFX18gYm9vbCBpc3Vub3JkZXJlZChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc3Vub3JkZXJlZChmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGxvbmcgbGFicyhsb25nKTsKX19ERVZJQ0VfXyBkb3VibGUgbGRleHAoZG91YmxlLCBpbnQpOwpfX0RFVklDRV9fIGZsb2F0IGxkZXhwKGZsb2F0LCBpbnQpOwpfX0RFVklDRV9fIGRvdWJsZSBsZ2FtbWEoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBsZ2FtbWEoZmxvYXQpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbGFicyhsb25nIGxvbmcpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbHJpbnQoZG91YmxlKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxyaW50KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgbG9nMTAoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBsb2cxMChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGxvZzFwKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbG9nMXAoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBsb2cyKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbG9nMihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGxvZ2IoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBsb2diKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgbG9nKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbG9nKGZsb2F0KTsKX19ERVZJQ0VfXyBsb25nIGxyaW50KGRvdWJsZSk7Cl9fREVWSUNFX18gbG9uZyBscmludChmbG9hdCk7Cl9fREVWSUNFX18gbG9uZyBscm91bmQoZG91YmxlKTsKX19ERVZJQ0VfXyBsb25nIGxyb3VuZChmbG9hdCk7Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscm91bmQoZmxvYXQpOyAvLyBObyBsbHJvdW5kKGRvdWJsZSkuCl9fREVWSUNFX18gZG91YmxlIG1vZGYoZG91YmxlLCBkb3VibGUgKik7Cl9fREVWSUNFX18gZmxvYXQgbW9kZihmbG9hdCwgZmxvYXQgKik7Cl9fREVWSUNFX18gZG91YmxlIG5hbihjb25zdCBjaGFyICopOwpfX0RFVklDRV9fIGZsb2F0IG5hbmYoY29uc3QgY2hhciAqKTsKX19ERVZJQ0VfXyBkb3VibGUgbmVhcmJ5aW50KGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbmVhcmJ5aW50KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgbmV4dGFmdGVyKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBuZXh0YWZ0ZXIoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgcG93KGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBkb3VibGUgcG93KGRvdWJsZSwgaW50KTsKX19ERVZJQ0VfXyBmbG9hdCBwb3coZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBmbG9hdCBwb3coZmxvYXQsIGludCk7Cl9fREVWSUNFX18gZG91YmxlIHJlbWFpbmRlcihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgcmVtYWluZGVyKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHJlbXF1byhkb3VibGUsIGRvdWJsZSwgaW50ICopOwpfX0RFVklDRV9fIGZsb2F0IHJlbXF1byhmbG9hdCwgZmxvYXQsIGludCAqKTsKX19ERVZJQ0VfXyBkb3VibGUgcmludChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHJpbnQoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSByb3VuZChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHJvdW5kKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgc2NhbGJsbihkb3VibGUsIGxvbmcpOwpfX0RFVklDRV9fIGZsb2F0IHNjYWxibG4oZmxvYXQsIGxvbmcpOwpfX0RFVklDRV9fIGRvdWJsZSBzY2FsYm4oZG91YmxlLCBpbnQpOwpfX0RFVklDRV9fIGZsb2F0IHNjYWxibihmbG9hdCwgaW50KTsKI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gYm9vbCBzaWduYml0KGxvbmcgZG91YmxlKTsKI2VuZGlmCl9fREVWSUNFX18gYm9vbCBzaWduYml0KGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBzaWduYml0KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgc2luKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgc2luKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgc2luaChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHNpbmgoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBzcXJ0KGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgc3FydChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHRhbihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHRhbihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHRhbmgoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCB0YW5oKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgdGdhbW1hKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgdGdhbW1hKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgdHJ1bmMoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCB0cnVuYyhmbG9hdCk7CgovLyBOb3RhYmx5IG1pc3NpbmcgYWJvdmUgaXMgbmV4dHRvd2FyZCwgd2hpY2ggd2UgZG9uJ3QgZGVmaW5lIG9uCi8vIHRoZSBkZXZpY2Ugc2lkZSBiZWNhdXNlIGxpYmRldmljZSBkb2Vzbid0IGdpdmUgdXMgYW4gaW1wbGVtZW50YXRpb24sIGFuZCB3ZQovLyBkb24ndCB3YW50IHRvIGJlIGluIHRoZSBidXNpbmVzcyBvZiB3cml0aW5nIG9uZSBvdXJzZWx2ZXMuCgovLyBXZSBuZWVkIHRvIGRlZmluZSB0aGVzZSBvdmVybG9hZHMgaW4gZXhhY3RseSB0aGUgbmFtZXNwYWNlIG91ciBzdGFuZGFyZAovLyBsaWJyYXJ5IHVzZXMgKGluY2x1ZGluZyB0aGUgcmlnaHQgaW5saW5lIG5hbWVzcGFjZSksIG90aGVyd2lzZSB0aGV5IHdvbid0IGJlCi8vIHBpY2tlZCB1cCBieSBvdGhlciBmdW5jdGlvbnMgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkgKGUuZy4gZnVuY3Rpb25zIGluCi8vIDxjb21wbGV4PikuICBUaHVzIHRoZSB1Z2xpbmVzcyBiZWxvdy4KI2lmZGVmIF9MSUJDUFBfQkVHSU5fTkFNRVNQQUNFX1NURApfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKI2Vsc2UKbmFtZXNwYWNlIHN0ZCB7CiNpZmRlZiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgojZW5kaWYKI2VuZGlmCgp1c2luZyA6OmFiczsKdXNpbmcgOjphY29zOwp1c2luZyA6OmFjb3NoOwp1c2luZyA6OmFzaW47CnVzaW5nIDo6YXNpbmg7CnVzaW5nIDo6YXRhbjsKdXNpbmcgOjphdGFuMjsKdXNpbmcgOjphdGFuaDsKdXNpbmcgOjpjYnJ0Owp1c2luZyA6OmNlaWw7CnVzaW5nIDo6Y29weXNpZ247CnVzaW5nIDo6Y29zOwp1c2luZyA6OmNvc2g7CnVzaW5nIDo6ZXJmOwp1c2luZyA6OmVyZmM7CnVzaW5nIDo6ZXhwOwp1c2luZyA6OmV4cDI7CnVzaW5nIDo6ZXhwbTE7CnVzaW5nIDo6ZmFiczsKdXNpbmcgOjpmZGltOwp1c2luZyA6OmZsb29yOwp1c2luZyA6OmZtYTsKdXNpbmcgOjpmbWF4Owp1c2luZyA6OmZtaW47CnVzaW5nIDo6Zm1vZDsKdXNpbmcgOjpmcGNsYXNzaWZ5Owp1c2luZyA6OmZyZXhwOwp1c2luZyA6Omh5cG90Owp1c2luZyA6Omlsb2diOwp1c2luZyA6OmlzZmluaXRlOwp1c2luZyA6OmlzZ3JlYXRlcjsKdXNpbmcgOjppc2dyZWF0ZXJlcXVhbDsKdXNpbmcgOjppc2luZjsKdXNpbmcgOjppc2xlc3M7CnVzaW5nIDo6aXNsZXNzZXF1YWw7CnVzaW5nIDo6aXNsZXNzZ3JlYXRlcjsKdXNpbmcgOjppc25hbjsKdXNpbmcgOjppc25vcm1hbDsKdXNpbmcgOjppc3Vub3JkZXJlZDsKdXNpbmcgOjpsYWJzOwp1c2luZyA6OmxkZXhwOwp1c2luZyA6OmxnYW1tYTsKdXNpbmcgOjpsbGFiczsKdXNpbmcgOjpsbHJpbnQ7CnVzaW5nIDo6bG9nOwp1c2luZyA6OmxvZzEwOwp1c2luZyA6OmxvZzFwOwp1c2luZyA6OmxvZzI7CnVzaW5nIDo6bG9nYjsKdXNpbmcgOjpscmludDsKdXNpbmcgOjpscm91bmQ7CnVzaW5nIDo6bGxyb3VuZDsKdXNpbmcgOjptb2RmOwp1c2luZyA6Om5hbjsKdXNpbmcgOjpuYW5mOwp1c2luZyA6Om5lYXJieWludDsKdXNpbmcgOjpuZXh0YWZ0ZXI7CnVzaW5nIDo6cG93Owp1c2luZyA6OnJlbWFpbmRlcjsKdXNpbmcgOjpyZW1xdW87CnVzaW5nIDo6cmludDsKdXNpbmcgOjpyb3VuZDsKdXNpbmcgOjpzY2FsYmxuOwp1c2luZyA6OnNjYWxibjsKdXNpbmcgOjpzaWduYml0Owp1c2luZyA6OnNpbjsKdXNpbmcgOjpzaW5oOwp1c2luZyA6OnNxcnQ7CnVzaW5nIDo6dGFuOwp1c2luZyA6OnRhbmg7CnVzaW5nIDo6dGdhbW1hOwp1c2luZyA6OnRydW5jOwoKI2lmZGVmIF9MSUJDUFBfRU5EX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURAojZWxzZQojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiNlbmRpZgp9IC8vIG5hbWVzcGFjZSBzdGQKI2VuZGlmCgojcHJhZ21hIHBvcF9tYWNybygiX19ERVZJQ0VfXyIpCgojZW5kaWYKAC8qPT09LS0tLSBhdng1MTJlcmludHJpbi5oIC0gQVZYNTEyRVIgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJlcmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJFUklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJFUklOVFJJTl9ICgovKiBleHAyYTIzICovCiNkZWZpbmUgX21tNTEyX2V4cDJhMjNfcm91bmRfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9leHAycGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4cDJhMjNfcm91bmRfcGQoUywgTSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9leHAycGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShTKSwgKF9fbW1hc2s4KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHAyYTIzX3JvdW5kX3BkKE0sIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZXhwMnBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2V4cDJhMjNfcGQoQSkgXAogIF9tbTUxMl9leHAyYTIzX3JvdW5kX3BkKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19leHAyYTIzX3BkKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19leHAyYTIzX3JvdW5kX3BkKChTKSwgKE0pLCAoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4cDJhMjNfcGQoTSwgQSkgXAogIF9tbTUxMl9tYXNrel9leHAyYTIzX3JvdW5kX3BkKChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9leHAyYTIzX3JvdW5kX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9leHAycHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4cDJhMjNfcm91bmRfcHMoUywgTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2V4cDJwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoUyksIChfX21tYXNrMTYpKE0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXhwMmEyM19yb3VuZF9wcyhNLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZXhwMnBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2V4cDJhMjNfcHMoQSkgXAogIF9tbTUxMl9leHAyYTIzX3JvdW5kX3BzKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19leHAyYTIzX3BzKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19leHAyYTIzX3JvdW5kX3BzKChTKSwgKE0pLCAoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4cDJhMjNfcHMoTSwgQSkgXAogIF9tbTUxMl9tYXNrel9leHAyYTIzX3JvdW5kX3BzKChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgovKiByc3FydDI4ICovCiNkZWZpbmUgX21tNTEyX3JzcXJ0Mjhfcm91bmRfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yc3FydDI4cGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JzcXJ0Mjhfcm91bmRfcGQoUywgTSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yc3FydDI4cGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShTKSwgKF9fbW1hc2s4KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yc3FydDI4X3JvdW5kX3BkKE0sIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcnNxcnQyOHBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JzcXJ0MjhfcGQoQSkgXAogIF9tbTUxMl9yc3FydDI4X3JvdW5kX3BkKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19yc3FydDI4X3BkKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19yc3FydDI4X3JvdW5kX3BkKChTKSwgKE0pLCAoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JzcXJ0MjhfcGQoTSwgQSkgXAogIF9tbTUxMl9tYXNrel9yc3FydDI4X3JvdW5kX3BkKChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9yc3FydDI4X3JvdW5kX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yc3FydDI4cHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JzcXJ0Mjhfcm91bmRfcHMoUywgTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JzcXJ0Mjhwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoUyksIChfX21tYXNrMTYpKE0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcnNxcnQyOF9yb3VuZF9wcyhNLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcnNxcnQyOHBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JzcXJ0MjhfcHMoQSkgXAogIF9tbTUxMl9yc3FydDI4X3JvdW5kX3BzKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19yc3FydDI4X3BzKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19yc3FydDI4X3JvdW5kX3BzKChTKSwgKE0pLCBBLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yc3FydDI4X3BzKE0sIEEpIFwKICBfbW01MTJfbWFza3pfcnNxcnQyOF9yb3VuZF9wcygoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fcnNxcnQyOF9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcnNxcnQyOHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcnNxcnQyOF9yb3VuZF9zcyhTLCBNLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcnNxcnQyOHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcnNxcnQyOF9yb3VuZF9zcyhNLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcnNxcnQyOHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yc3FydDI4X3NzKEEsIEIpIFwKICBfbW1fcnNxcnQyOF9yb3VuZF9zcygoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza19yc3FydDI4X3NzKFMsIE0sIEEsIEIpIFwKICBfbW1fbWFza19yc3FydDI4X3JvdW5kX3NzKChTKSwgKE0pLCAoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza3pfcnNxcnQyOF9zcyhNLCBBLCBCKSBcCiAgX21tX21hc2t6X3JzcXJ0Mjhfcm91bmRfc3MoKE0pLCAoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fcnNxcnQyOF9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JzcXJ0MjhzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcnNxcnQyOF9yb3VuZF9zZChTLCBNLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JzcXJ0MjhzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JzcXJ0Mjhfcm91bmRfc2QoTSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yc3FydDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcnNxcnQyOF9zZChBLCBCKSBcCiAgX21tX3JzcXJ0Mjhfcm91bmRfc2QoKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2tfcnNxcnQyOF9zZChTLCBNLCBBLCBCKSBcCiAgX21tX21hc2tfcnNxcnQyOF9yb3VuZF9zZCgoUyksIChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JzcXJ0Mjhfc2QoTSwgQSwgQikgXAogIF9tbV9tYXNrel9yc3FydDI4X3JvdW5kX3NkKChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCi8qIHJjcDI4ICovCiNkZWZpbmUgX21tNTEyX3JjcDI4X3JvdW5kX3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmNwMjhwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yY3AyOF9yb3VuZF9wZChTLCBNLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JjcDI4cGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoUyksIChfX21tYXNrOCkoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JjcDI4X3JvdW5kX3BkKE0sIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmNwMjhwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JjcDI4X3BkKEEpIFwKICBfbW01MTJfcmNwMjhfcm91bmRfcGQoKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JjcDI4X3BkKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19yY3AyOF9yb3VuZF9wZCgoUyksIChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yY3AyOF9wZChNLCBBKSBcCiAgX21tNTEyX21hc2t6X3JjcDI4X3JvdW5kX3BkKChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9yY3AyOF9yb3VuZF9wcyhBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmNwMjhwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yY3AyOF9yb3VuZF9wcyhTLCBNLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmNwMjhwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFMpLCAoX19tbWFzazE2KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yY3AyOF9yb3VuZF9wcyhNLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmNwMjhwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JjcDI4X3BzKEEpIFwKICBfbW01MTJfcmNwMjhfcm91bmRfcHMoKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JjcDI4X3BzKFMsIE0sIEEpIFwKICBfbW01MTJfbWFza19yY3AyOF9yb3VuZF9wcygoUyksIChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yY3AyOF9wcyhNLCBBKSBcCiAgX21tNTEyX21hc2t6X3JjcDI4X3JvdW5kX3BzKChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9yY3AyOF9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmNwMjhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JjcDI4X3JvdW5kX3NzKFMsIE0sIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yY3AyOHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoUyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcmNwMjhfcm91bmRfc3MoTSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JjcDI4c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JjcDI4X3NzKEEsIEIpIFwKICBfbW1fcmNwMjhfcm91bmRfc3MoKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2tfcmNwMjhfc3MoUywgTSwgQSwgQikgXAogIF9tbV9tYXNrX3JjcDI4X3JvdW5kX3NzKChTKSwgKE0pLCAoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza3pfcmNwMjhfc3MoTSwgQSwgQikgXAogIF9tbV9tYXNrel9yY3AyOF9yb3VuZF9zcygoTSksIChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9yY3AyOF9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JjcDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JjcDI4X3JvdW5kX3NkKFMsIE0sIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmNwMjhzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoUyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JjcDI4X3JvdW5kX3NkKE0sIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmNwMjhzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yY3AyOF9zZChBLCBCKSBcCiAgX21tX3JjcDI4X3JvdW5kX3NkKChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrX3JjcDI4X3NkKFMsIE0sIEEsIEIpIFwKICBfbW1fbWFza19yY3AyOF9yb3VuZF9zZCgoUyksIChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JjcDI4X3NkKE0sIEEsIEIpIFwKICBfbW1fbWFza3pfcmNwMjhfcm91bmRfc2QoKE0pLCAoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2VuZGlmIC8qIF9fQVZYNTEyRVJJTlRSSU5fSCAqLwoALyo9PT0tLS0tIGF2eDUxMmZpbnRyaW4uaCAtIEFWWDUxMkYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmZpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyRklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJGSU5UUklOX0gKCnR5cGVkZWYgY2hhciBfX3Y2NHFpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKdHlwZWRlZiBzaG9ydCBfX3YzMmhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKdHlwZWRlZiBkb3VibGUgX192OGRmIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKdHlwZWRlZiBmbG9hdCBfX3YxNnNmIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKdHlwZWRlZiBsb25nIGxvbmcgX192OGRpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKdHlwZWRlZiBpbnQgX192MTZzaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CgovKiBVbnNpZ25lZCB0eXBlcyAqLwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX192NjRxdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX192MzJodSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdjhkdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdjE2c3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpOwoKdHlwZWRlZiBmbG9hdCBfX201MTIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7CnR5cGVkZWYgZG91YmxlIF9fbTUxMmQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fbTUxMmkgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7Cgp0eXBlZGVmIGZsb2F0IF9fbTUxMl91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDEpKSk7CnR5cGVkZWYgZG91YmxlIF9fbTUxMmRfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpLCBfX2FsaWduZWRfXygxKSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX201MTJpX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oMSkpKTsKCnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX21tYXNrODsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX21tYXNrMTY7CgovKiBSb3VuZGluZyBtb2RlIG1hY3Jvcy4gICovCiNkZWZpbmUgX01NX0ZST1VORF9UT19ORUFSRVNUX0lOVCAgIDB4MDAKI2RlZmluZSBfTU1fRlJPVU5EX1RPX05FR19JTkYgICAgICAgMHgwMQojZGVmaW5lIF9NTV9GUk9VTkRfVE9fUE9TX0lORiAgICAgICAweDAyCiNkZWZpbmUgX01NX0ZST1VORF9UT19aRVJPICAgICAgICAgIDB4MDMKI2RlZmluZSBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04gICAgMHgwNAoKLyogQ29uc3RhbnRzIGZvciBpbnRlZ2VyIGNvbXBhcmlzb24gcHJlZGljYXRlcyAqLwp0eXBlZGVmIGVudW0gewogICAgX01NX0NNUElOVF9FUSwgICAgICAvKiBFcXVhbCAqLwogICAgX01NX0NNUElOVF9MVCwgICAgICAvKiBMZXNzIHRoYW4gKi8KICAgIF9NTV9DTVBJTlRfTEUsICAgICAgLyogTGVzcyB0aGFuIG9yIEVxdWFsICovCiAgICBfTU1fQ01QSU5UX1VOVVNFRCwKICAgIF9NTV9DTVBJTlRfTkUsICAgICAgLyogTm90IEVxdWFsICovCiAgICBfTU1fQ01QSU5UX05MVCwgICAgIC8qIE5vdCBMZXNzIHRoYW4gKi8KI2RlZmluZSBfTU1fQ01QSU5UX0dFICAgX01NX0NNUElOVF9OTFQgIC8qIEdyZWF0ZXIgdGhhbiBvciBFcXVhbCAqLwogICAgX01NX0NNUElOVF9OTEUgICAgICAvKiBOb3QgTGVzcyB0aGFuIG9yIEVxdWFsICovCiNkZWZpbmUgX01NX0NNUElOVF9HVCAgIF9NTV9DTVBJTlRfTkxFICAvKiBHcmVhdGVyIHRoYW4gKi8KfSBfTU1fQ01QSU5UX0VOVU07Cgp0eXBlZGVmIGVudW0KewogIF9NTV9QRVJNX0FBQUEgPSAweDAwLCBfTU1fUEVSTV9BQUFCID0gMHgwMSwgX01NX1BFUk1fQUFBQyA9IDB4MDIsCiAgX01NX1BFUk1fQUFBRCA9IDB4MDMsIF9NTV9QRVJNX0FBQkEgPSAweDA0LCBfTU1fUEVSTV9BQUJCID0gMHgwNSwKICBfTU1fUEVSTV9BQUJDID0gMHgwNiwgX01NX1BFUk1fQUFCRCA9IDB4MDcsIF9NTV9QRVJNX0FBQ0EgPSAweDA4LAogIF9NTV9QRVJNX0FBQ0IgPSAweDA5LCBfTU1fUEVSTV9BQUNDID0gMHgwQSwgX01NX1BFUk1fQUFDRCA9IDB4MEIsCiAgX01NX1BFUk1fQUFEQSA9IDB4MEMsIF9NTV9QRVJNX0FBREIgPSAweDBELCBfTU1fUEVSTV9BQURDID0gMHgwRSwKICBfTU1fUEVSTV9BQUREID0gMHgwRiwgX01NX1BFUk1fQUJBQSA9IDB4MTAsIF9NTV9QRVJNX0FCQUIgPSAweDExLAogIF9NTV9QRVJNX0FCQUMgPSAweDEyLCBfTU1fUEVSTV9BQkFEID0gMHgxMywgX01NX1BFUk1fQUJCQSA9IDB4MTQsCiAgX01NX1BFUk1fQUJCQiA9IDB4MTUsIF9NTV9QRVJNX0FCQkMgPSAweDE2LCBfTU1fUEVSTV9BQkJEID0gMHgxNywKICBfTU1fUEVSTV9BQkNBID0gMHgxOCwgX01NX1BFUk1fQUJDQiA9IDB4MTksIF9NTV9QRVJNX0FCQ0MgPSAweDFBLAogIF9NTV9QRVJNX0FCQ0QgPSAweDFCLCBfTU1fUEVSTV9BQkRBID0gMHgxQywgX01NX1BFUk1fQUJEQiA9IDB4MUQsCiAgX01NX1BFUk1fQUJEQyA9IDB4MUUsIF9NTV9QRVJNX0FCREQgPSAweDFGLCBfTU1fUEVSTV9BQ0FBID0gMHgyMCwKICBfTU1fUEVSTV9BQ0FCID0gMHgyMSwgX01NX1BFUk1fQUNBQyA9IDB4MjIsIF9NTV9QRVJNX0FDQUQgPSAweDIzLAogIF9NTV9QRVJNX0FDQkEgPSAweDI0LCBfTU1fUEVSTV9BQ0JCID0gMHgyNSwgX01NX1BFUk1fQUNCQyA9IDB4MjYsCiAgX01NX1BFUk1fQUNCRCA9IDB4MjcsIF9NTV9QRVJNX0FDQ0EgPSAweDI4LCBfTU1fUEVSTV9BQ0NCID0gMHgyOSwKICBfTU1fUEVSTV9BQ0NDID0gMHgyQSwgX01NX1BFUk1fQUNDRCA9IDB4MkIsIF9NTV9QRVJNX0FDREEgPSAweDJDLAogIF9NTV9QRVJNX0FDREIgPSAweDJELCBfTU1fUEVSTV9BQ0RDID0gMHgyRSwgX01NX1BFUk1fQUNERCA9IDB4MkYsCiAgX01NX1BFUk1fQURBQSA9IDB4MzAsIF9NTV9QRVJNX0FEQUIgPSAweDMxLCBfTU1fUEVSTV9BREFDID0gMHgzMiwKICBfTU1fUEVSTV9BREFEID0gMHgzMywgX01NX1BFUk1fQURCQSA9IDB4MzQsIF9NTV9QRVJNX0FEQkIgPSAweDM1LAogIF9NTV9QRVJNX0FEQkMgPSAweDM2LCBfTU1fUEVSTV9BREJEID0gMHgzNywgX01NX1BFUk1fQURDQSA9IDB4MzgsCiAgX01NX1BFUk1fQURDQiA9IDB4MzksIF9NTV9QRVJNX0FEQ0MgPSAweDNBLCBfTU1fUEVSTV9BRENEID0gMHgzQiwKICBfTU1fUEVSTV9BRERBID0gMHgzQywgX01NX1BFUk1fQUREQiA9IDB4M0QsIF9NTV9QRVJNX0FEREMgPSAweDNFLAogIF9NTV9QRVJNX0FEREQgPSAweDNGLCBfTU1fUEVSTV9CQUFBID0gMHg0MCwgX01NX1BFUk1fQkFBQiA9IDB4NDEsCiAgX01NX1BFUk1fQkFBQyA9IDB4NDIsIF9NTV9QRVJNX0JBQUQgPSAweDQzLCBfTU1fUEVSTV9CQUJBID0gMHg0NCwKICBfTU1fUEVSTV9CQUJCID0gMHg0NSwgX01NX1BFUk1fQkFCQyA9IDB4NDYsIF9NTV9QRVJNX0JBQkQgPSAweDQ3LAogIF9NTV9QRVJNX0JBQ0EgPSAweDQ4LCBfTU1fUEVSTV9CQUNCID0gMHg0OSwgX01NX1BFUk1fQkFDQyA9IDB4NEEsCiAgX01NX1BFUk1fQkFDRCA9IDB4NEIsIF9NTV9QRVJNX0JBREEgPSAweDRDLCBfTU1fUEVSTV9CQURCID0gMHg0RCwKICBfTU1fUEVSTV9CQURDID0gMHg0RSwgX01NX1BFUk1fQkFERCA9IDB4NEYsIF9NTV9QRVJNX0JCQUEgPSAweDUwLAogIF9NTV9QRVJNX0JCQUIgPSAweDUxLCBfTU1fUEVSTV9CQkFDID0gMHg1MiwgX01NX1BFUk1fQkJBRCA9IDB4NTMsCiAgX01NX1BFUk1fQkJCQSA9IDB4NTQsIF9NTV9QRVJNX0JCQkIgPSAweDU1LCBfTU1fUEVSTV9CQkJDID0gMHg1NiwKICBfTU1fUEVSTV9CQkJEID0gMHg1NywgX01NX1BFUk1fQkJDQSA9IDB4NTgsIF9NTV9QRVJNX0JCQ0IgPSAweDU5LAogIF9NTV9QRVJNX0JCQ0MgPSAweDVBLCBfTU1fUEVSTV9CQkNEID0gMHg1QiwgX01NX1BFUk1fQkJEQSA9IDB4NUMsCiAgX01NX1BFUk1fQkJEQiA9IDB4NUQsIF9NTV9QRVJNX0JCREMgPSAweDVFLCBfTU1fUEVSTV9CQkREID0gMHg1RiwKICBfTU1fUEVSTV9CQ0FBID0gMHg2MCwgX01NX1BFUk1fQkNBQiA9IDB4NjEsIF9NTV9QRVJNX0JDQUMgPSAweDYyLAogIF9NTV9QRVJNX0JDQUQgPSAweDYzLCBfTU1fUEVSTV9CQ0JBID0gMHg2NCwgX01NX1BFUk1fQkNCQiA9IDB4NjUsCiAgX01NX1BFUk1fQkNCQyA9IDB4NjYsIF9NTV9QRVJNX0JDQkQgPSAweDY3LCBfTU1fUEVSTV9CQ0NBID0gMHg2OCwKICBfTU1fUEVSTV9CQ0NCID0gMHg2OSwgX01NX1BFUk1fQkNDQyA9IDB4NkEsIF9NTV9QRVJNX0JDQ0QgPSAweDZCLAogIF9NTV9QRVJNX0JDREEgPSAweDZDLCBfTU1fUEVSTV9CQ0RCID0gMHg2RCwgX01NX1BFUk1fQkNEQyA9IDB4NkUsCiAgX01NX1BFUk1fQkNERCA9IDB4NkYsIF9NTV9QRVJNX0JEQUEgPSAweDcwLCBfTU1fUEVSTV9CREFCID0gMHg3MSwKICBfTU1fUEVSTV9CREFDID0gMHg3MiwgX01NX1BFUk1fQkRBRCA9IDB4NzMsIF9NTV9QRVJNX0JEQkEgPSAweDc0LAogIF9NTV9QRVJNX0JEQkIgPSAweDc1LCBfTU1fUEVSTV9CREJDID0gMHg3NiwgX01NX1BFUk1fQkRCRCA9IDB4NzcsCiAgX01NX1BFUk1fQkRDQSA9IDB4NzgsIF9NTV9QRVJNX0JEQ0IgPSAweDc5LCBfTU1fUEVSTV9CRENDID0gMHg3QSwKICBfTU1fUEVSTV9CRENEID0gMHg3QiwgX01NX1BFUk1fQkREQSA9IDB4N0MsIF9NTV9QRVJNX0JEREIgPSAweDdELAogIF9NTV9QRVJNX0JEREMgPSAweDdFLCBfTU1fUEVSTV9CREREID0gMHg3RiwgX01NX1BFUk1fQ0FBQSA9IDB4ODAsCiAgX01NX1BFUk1fQ0FBQiA9IDB4ODEsIF9NTV9QRVJNX0NBQUMgPSAweDgyLCBfTU1fUEVSTV9DQUFEID0gMHg4MywKICBfTU1fUEVSTV9DQUJBID0gMHg4NCwgX01NX1BFUk1fQ0FCQiA9IDB4ODUsIF9NTV9QRVJNX0NBQkMgPSAweDg2LAogIF9NTV9QRVJNX0NBQkQgPSAweDg3LCBfTU1fUEVSTV9DQUNBID0gMHg4OCwgX01NX1BFUk1fQ0FDQiA9IDB4ODksCiAgX01NX1BFUk1fQ0FDQyA9IDB4OEEsIF9NTV9QRVJNX0NBQ0QgPSAweDhCLCBfTU1fUEVSTV9DQURBID0gMHg4QywKICBfTU1fUEVSTV9DQURCID0gMHg4RCwgX01NX1BFUk1fQ0FEQyA9IDB4OEUsIF9NTV9QRVJNX0NBREQgPSAweDhGLAogIF9NTV9QRVJNX0NCQUEgPSAweDkwLCBfTU1fUEVSTV9DQkFCID0gMHg5MSwgX01NX1BFUk1fQ0JBQyA9IDB4OTIsCiAgX01NX1BFUk1fQ0JBRCA9IDB4OTMsIF9NTV9QRVJNX0NCQkEgPSAweDk0LCBfTU1fUEVSTV9DQkJCID0gMHg5NSwKICBfTU1fUEVSTV9DQkJDID0gMHg5NiwgX01NX1BFUk1fQ0JCRCA9IDB4OTcsIF9NTV9QRVJNX0NCQ0EgPSAweDk4LAogIF9NTV9QRVJNX0NCQ0IgPSAweDk5LCBfTU1fUEVSTV9DQkNDID0gMHg5QSwgX01NX1BFUk1fQ0JDRCA9IDB4OUIsCiAgX01NX1BFUk1fQ0JEQSA9IDB4OUMsIF9NTV9QRVJNX0NCREIgPSAweDlELCBfTU1fUEVSTV9DQkRDID0gMHg5RSwKICBfTU1fUEVSTV9DQkREID0gMHg5RiwgX01NX1BFUk1fQ0NBQSA9IDB4QTAsIF9NTV9QRVJNX0NDQUIgPSAweEExLAogIF9NTV9QRVJNX0NDQUMgPSAweEEyLCBfTU1fUEVSTV9DQ0FEID0gMHhBMywgX01NX1BFUk1fQ0NCQSA9IDB4QTQsCiAgX01NX1BFUk1fQ0NCQiA9IDB4QTUsIF9NTV9QRVJNX0NDQkMgPSAweEE2LCBfTU1fUEVSTV9DQ0JEID0gMHhBNywKICBfTU1fUEVSTV9DQ0NBID0gMHhBOCwgX01NX1BFUk1fQ0NDQiA9IDB4QTksIF9NTV9QRVJNX0NDQ0MgPSAweEFBLAogIF9NTV9QRVJNX0NDQ0QgPSAweEFCLCBfTU1fUEVSTV9DQ0RBID0gMHhBQywgX01NX1BFUk1fQ0NEQiA9IDB4QUQsCiAgX01NX1BFUk1fQ0NEQyA9IDB4QUUsIF9NTV9QRVJNX0NDREQgPSAweEFGLCBfTU1fUEVSTV9DREFBID0gMHhCMCwKICBfTU1fUEVSTV9DREFCID0gMHhCMSwgX01NX1BFUk1fQ0RBQyA9IDB4QjIsIF9NTV9QRVJNX0NEQUQgPSAweEIzLAogIF9NTV9QRVJNX0NEQkEgPSAweEI0LCBfTU1fUEVSTV9DREJCID0gMHhCNSwgX01NX1BFUk1fQ0RCQyA9IDB4QjYsCiAgX01NX1BFUk1fQ0RCRCA9IDB4QjcsIF9NTV9QRVJNX0NEQ0EgPSAweEI4LCBfTU1fUEVSTV9DRENCID0gMHhCOSwKICBfTU1fUEVSTV9DRENDID0gMHhCQSwgX01NX1BFUk1fQ0RDRCA9IDB4QkIsIF9NTV9QRVJNX0NEREEgPSAweEJDLAogIF9NTV9QRVJNX0NEREIgPSAweEJELCBfTU1fUEVSTV9DRERDID0gMHhCRSwgX01NX1BFUk1fQ0RERCA9IDB4QkYsCiAgX01NX1BFUk1fREFBQSA9IDB4QzAsIF9NTV9QRVJNX0RBQUIgPSAweEMxLCBfTU1fUEVSTV9EQUFDID0gMHhDMiwKICBfTU1fUEVSTV9EQUFEID0gMHhDMywgX01NX1BFUk1fREFCQSA9IDB4QzQsIF9NTV9QRVJNX0RBQkIgPSAweEM1LAogIF9NTV9QRVJNX0RBQkMgPSAweEM2LCBfTU1fUEVSTV9EQUJEID0gMHhDNywgX01NX1BFUk1fREFDQSA9IDB4QzgsCiAgX01NX1BFUk1fREFDQiA9IDB4QzksIF9NTV9QRVJNX0RBQ0MgPSAweENBLCBfTU1fUEVSTV9EQUNEID0gMHhDQiwKICBfTU1fUEVSTV9EQURBID0gMHhDQywgX01NX1BFUk1fREFEQiA9IDB4Q0QsIF9NTV9QRVJNX0RBREMgPSAweENFLAogIF9NTV9QRVJNX0RBREQgPSAweENGLCBfTU1fUEVSTV9EQkFBID0gMHhEMCwgX01NX1BFUk1fREJBQiA9IDB4RDEsCiAgX01NX1BFUk1fREJBQyA9IDB4RDIsIF9NTV9QRVJNX0RCQUQgPSAweEQzLCBfTU1fUEVSTV9EQkJBID0gMHhENCwKICBfTU1fUEVSTV9EQkJCID0gMHhENSwgX01NX1BFUk1fREJCQyA9IDB4RDYsIF9NTV9QRVJNX0RCQkQgPSAweEQ3LAogIF9NTV9QRVJNX0RCQ0EgPSAweEQ4LCBfTU1fUEVSTV9EQkNCID0gMHhEOSwgX01NX1BFUk1fREJDQyA9IDB4REEsCiAgX01NX1BFUk1fREJDRCA9IDB4REIsIF9NTV9QRVJNX0RCREEgPSAweERDLCBfTU1fUEVSTV9EQkRCID0gMHhERCwKICBfTU1fUEVSTV9EQkRDID0gMHhERSwgX01NX1BFUk1fREJERCA9IDB4REYsIF9NTV9QRVJNX0RDQUEgPSAweEUwLAogIF9NTV9QRVJNX0RDQUIgPSAweEUxLCBfTU1fUEVSTV9EQ0FDID0gMHhFMiwgX01NX1BFUk1fRENBRCA9IDB4RTMsCiAgX01NX1BFUk1fRENCQSA9IDB4RTQsIF9NTV9QRVJNX0RDQkIgPSAweEU1LCBfTU1fUEVSTV9EQ0JDID0gMHhFNiwKICBfTU1fUEVSTV9EQ0JEID0gMHhFNywgX01NX1BFUk1fRENDQSA9IDB4RTgsIF9NTV9QRVJNX0RDQ0IgPSAweEU5LAogIF9NTV9QRVJNX0RDQ0MgPSAweEVBLCBfTU1fUEVSTV9EQ0NEID0gMHhFQiwgX01NX1BFUk1fRENEQSA9IDB4RUMsCiAgX01NX1BFUk1fRENEQiA9IDB4RUQsIF9NTV9QRVJNX0RDREMgPSAweEVFLCBfTU1fUEVSTV9EQ0REID0gMHhFRiwKICBfTU1fUEVSTV9EREFBID0gMHhGMCwgX01NX1BFUk1fRERBQiA9IDB4RjEsIF9NTV9QRVJNX0REQUMgPSAweEYyLAogIF9NTV9QRVJNX0REQUQgPSAweEYzLCBfTU1fUEVSTV9EREJBID0gMHhGNCwgX01NX1BFUk1fRERCQiA9IDB4RjUsCiAgX01NX1BFUk1fRERCQyA9IDB4RjYsIF9NTV9QRVJNX0REQkQgPSAweEY3LCBfTU1fUEVSTV9ERENBID0gMHhGOCwKICBfTU1fUEVSTV9ERENCID0gMHhGOSwgX01NX1BFUk1fRERDQyA9IDB4RkEsIF9NTV9QRVJNX0REQ0QgPSAweEZCLAogIF9NTV9QRVJNX0REREEgPSAweEZDLCBfTU1fUEVSTV9ERERCID0gMHhGRCwgX01NX1BFUk1fREREQyA9IDB4RkUsCiAgX01NX1BFUk1fRERERCA9IDB4RkYKfSBfTU1fUEVSTV9FTlVNOwoKdHlwZWRlZiBlbnVtCnsKICBfTU1fTUFOVF9OT1JNXzFfMiwgICAgLyogaW50ZXJ2YWwgWzEsIDIpICAgICAgKi8KICBfTU1fTUFOVF9OT1JNX3A1XzIsICAgLyogaW50ZXJ2YWwgWzAuNSwgMikgICAgKi8KICBfTU1fTUFOVF9OT1JNX3A1XzEsICAgLyogaW50ZXJ2YWwgWzAuNSwgMSkgICAgKi8KICBfTU1fTUFOVF9OT1JNX3A3NV8xcDUgICAvKiBpbnRlcnZhbCBbMC43NSwgMS41KSAqLwp9IF9NTV9NQU5USVNTQV9OT1JNX0VOVU07Cgp0eXBlZGVmIGVudW0KewogIF9NTV9NQU5UX1NJR05fc3JjLCAgICAvKiBzaWduID0gc2lnbihTUkMpICAgICAqLwogIF9NTV9NQU5UX1NJR05femVybywgICAvKiBzaWduID0gMCAgICAgICAgICAgICAqLwogIF9NTV9NQU5UX1NJR05fbmFuICAgLyogREVTVCA9IE5hTiBpZiBzaWduKFNSQykgPSAxICovCn0gX01NX01BTlRJU1NBX1NJR05fRU5VTTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmYiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyZiIpKSkKCi8qIENyZWF0ZSB2ZWN0b3JzIHdpdGggcmVwZWF0ZWQgZWxlbWVudHMgKi8KCnN0YXRpYyAgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldHplcm9fc2k1MTIodm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3Y4ZGkpeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07Cn0KCiNkZWZpbmUgX21tNTEyX3NldHplcm9fZXBpMzIgX21tNTEyX3NldHplcm9fc2k1MTIKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bmRlZmluZWRfcGQodm9pZCkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl91bmRlZjUxMigpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bmRlZmluZWQodm9pZCkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3VuZGVmNTEyKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VuZGVmaW5lZF9wcyh2b2lkKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdW5kZWY1MTIoKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VuZGVmaW5lZF9lcGkzMih2b2lkKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3VuZGVmNTEyKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RkX2VwaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKSBfX0EsIChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdGRfZXBpMzIgKF9fbTUxMmkgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfYnJvYWRjYXN0ZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdGRfZXBpMzIgKF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9icm9hZGNhc3RkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdHFfZXBpNjQgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpIF9fQSwgKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0cV9lcGk2NCAoX19tNTEyaSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfYnJvYWRjYXN0cV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfX08pOwoKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdHFfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfYnJvYWRjYXN0cV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXR6ZXJvX3BzKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyKXsgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wIH07Cn0KCiNkZWZpbmUgX21tNTEyX3NldHplcm8gX21tNTEyX3NldHplcm9fcHMKCnN0YXRpYyAgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldHplcm9fcGQodm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJkKXsgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldDFfcHMoZmxvYXQgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMil7IF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyAgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQxX3BkKGRvdWJsZSBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyZCl7IF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193IH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0MV9lcGk4KGNoYXIgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjY0cWkpewogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyAgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQxX2VwaTE2KHNob3J0IF9fdykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3YzMmhpKXsKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193IH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0MV9lcGkzMihpbnQgX19zKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjE2c2kpewogICAgX19zLCBfX3MsIF9fcywgX19zLCBfX3MsIF9fcywgX19zLCBfX3MsCiAgICBfX3MsIF9fcywgX19zLCBfX3MsIF9fcywgX19zLCBfX3MsIF9fcyB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NldDFfZXBpMzIoX19tbWFzazE2IF9fTSwgaW50IF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXQxX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldDFfZXBpNjQobG9uZyBsb25nIF9fZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fKF9fbTUxMmkpKF9fdjhkaSl7IF9fZCwgX19kLCBfX2QsIF9fZCwgX19kLCBfX2QsIF9fZCwgX19kIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc2V0MV9lcGk2NChfX21tYXNrOCBfX00sIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXQxX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdHNzX3BzKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKSBfX0EsIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQ0X2VwaTMyIChpbnQgX19BLCBpbnQgX19CLCBpbnQgX19DLCBpbnQgX19EKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjE2c2kpCiAgIHsgX19ELCBfX0MsIF9fQiwgX19BLCBfX0QsIF9fQywgX19CLCBfX0EsCiAgICAgX19ELCBfX0MsIF9fQiwgX19BLCBfX0QsIF9fQywgX19CLCBfX0EgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQ0X2VwaTY0IChsb25nIGxvbmcgX19BLCBsb25nIGxvbmcgX19CLCBsb25nIGxvbmcgX19DLAogICAgICAgbG9uZyBsb25nIF9fRCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKSAoX192OGRpKQogICB7IF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0NF9wZCAoZG91YmxlIF9fQSwgZG91YmxlIF9fQiwgZG91YmxlIF9fQywgZG91YmxlIF9fRCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJkKQogICB7IF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQ0X3BzIChmbG9hdCBfX0EsIGZsb2F0IF9fQiwgZmxvYXQgX19DLCBmbG9hdCBfX0QpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyKQogICB7IF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BLAogICAgIF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BIH07Cn0KCiNkZWZpbmUgX21tNTEyX3NldHI0X2VwaTMyKGUwLGUxLGUyLGUzKSAgICAgICAgICAgICAgIFwKICBfbW01MTJfc2V0NF9lcGkzMigoZTMpLChlMiksKGUxKSwoZTApKQoKI2RlZmluZSBfbW01MTJfc2V0cjRfZXBpNjQoZTAsZTEsZTIsZTMpICAgICAgICAgICAgICAgXAogIF9tbTUxMl9zZXQ0X2VwaTY0KChlMyksKGUyKSwoZTEpLChlMCkpCgojZGVmaW5lIF9tbTUxMl9zZXRyNF9wZChlMCxlMSxlMixlMykgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9zZXQ0X3BkKChlMyksKGUyKSwoZTEpLChlMCkpCgojZGVmaW5lIF9tbTUxMl9zZXRyNF9wcyhlMCxlMSxlMixlMykgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9zZXQ0X3BzKChlMyksKGUyKSwoZTEpLChlMCkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0c2RfcGQoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwp9CgovKiBDYXN0IGJldHdlZW4gdmVjdG9yIHR5cGVzICovCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwZDI1Nl9wZDUxMihfX20yNTZkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMywgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBzMjU2X3BzNTEyKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsICAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwZDUxMl9wZDEyOChfX201MTJkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBkNTEyX3BkMjU2IChfX201MTJkIF9fQSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX0EsIF9fQSwgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cHM1MTJfcHMxMjgoX19tNTEyIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cHM1MTJfcHMyNTYgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19BLCBfX0EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBkX3BzIChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyKSAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGRfc2k1MTIgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwZDEyOF9wZDUxMiAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoIF9fQSwgX19BLCAwLCAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cHNfcGQgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3Rwc19zaTUxMiAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwczEyOF9wczUxMiAoX19tMTI4IF9fQSkKewogICAgcmV0dXJuICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvciggX19BLCBfX0EsIDAsIDEsIDIsIDMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHNpMTI4X3NpNTEyIChfX20xMjhpIF9fQSkKewogICByZXR1cm4gIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKCBfX0EsIF9fQSwgMCwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0c2kyNTZfc2k1MTIgKF9fbTI1NmkgX19BKQp7CiAgIHJldHVybiAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoIF9fQSwgX19BLCAwLCAxLCAyLCAzLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0c2k1MTJfcHMgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RzaTUxMl9wZCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RzaTUxMl9zaTEyOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19BLCBfX0EgLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0c2k1MTJfc2kyNTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fQSwgX19BICwgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2ludDJtYXNrKGludCBfX2EpCnsKICByZXR1cm4gKF9fbW1hc2sxNilfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2syaW50KF9fbW1hc2sxNiBfX2EpCnsKICByZXR1cm4gKGludClfX2E7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBkb3VibGVdIGZyb20gYQovLy8gICAgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMzg0IGJpdHMgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZG91YmxlXS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMzg0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwZDEyOF9wZDUxMihfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCAwLCAxLCAyLCAzLCAyLCAzLCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGRvdWJsZV0gZnJvbSBhCi8vLyAgICAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFRoZSBsb3dlciAyNTYgYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAyNTYgYml0cyBhcmUgc2V0Ci8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBkb3VibGVdLiBUaGUgbG93ZXIgMjU2IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAyNTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfemV4dHBkMjU2X3BkNTEyKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGYpX19hLCAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbgovLy8gICAgdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMzg0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwczEyOF9wczUxMihfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDQsIDUsIDYsIDcsIDQsIDUsIDYsIDcpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBmcm9tIGEKLy8vICAgIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBUaGUgbG93ZXIgMjU2IGJpdHMgY29udGFpbgovLy8gICAgdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uIFRoZSBsb3dlciAyNTYgYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDI1NiBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwczI1Nl9wczUxMihfX20yNTYgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2YpX19hLCAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgaW50ZWdlciB2ZWN0b3IgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyAgICBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlcgovLy8gICAgMzg0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoZSBsb3dlciAxMjggYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZgovLy8gICAgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0c2kxMjhfc2k1MTIoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX2EsIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSwgMCwgMSwgMiwgMywgMiwgMywgMiwgMyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNTEyLWJpdCBpbnRlZ2VyIHZlY3RvciBmcm9tIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vICAgIFRoZSBsb3dlciAyNTYgYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyCi8vLyAgICAyNTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGxvd2VyIDI1NiBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mCi8vLyAgICB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRzaTI1Nl9zaTUxMihfX20yNTZpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRpKV9fYSwgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKLyogQml0d2lzZSBvcGVyYXRvcnMgKi8Kc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZF9lcGkzMihfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3YxNnN1KV9fYSAmIChfX3YxNnN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZF9lcGkzMihfX201MTJpIF9fc3JjLCBfX21tYXNrMTYgX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX2ssCiAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX2FuZF9lcGkzMihfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAoX192MTZzaSkgX19zcmMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYW5kX2VwaTMyKF9fbW1hc2sxNiBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkgX21tNTEyX21hc2tfYW5kX2VwaTMyKF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYW5kX2VwaTY0KF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjhkdSlfX2EgJiAoX192OGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZF9lcGk2NChfX201MTJpIF9fc3JjLCBfX21tYXNrOCBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogICAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMiAoKF9fbW1hc2s4KSBfX2ssCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfYW5kX2VwaTY0KF9fYSwgX19iKSwKICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fc3JjKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FuZF9lcGk2NChfX21tYXNrOCBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkgX21tNTEyX21hc2tfYW5kX2VwaTY0KF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYW5kbm90X3NpNTEyIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpKH4oX192OGR1KV9fQSAmIChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZG5vdF9lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSh+KF9fdjE2c3UpX19BICYgKF9fdjE2c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYW5kbm90X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2FuZG5vdF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FuZG5vdF9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfYW5kbm90X2VwaTMyKF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZG5vdF9lcGk2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpKH4oX192OGR1KV9fQSAmIChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYW5kbm90X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9hbmRub3RfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRub3RfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfYW5kbm90X2VwaTY0KF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX29yX2VwaTMyKF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjE2c3UpX19hIHwgKF9fdjE2c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfb3JfZXBpMzIoX19tNTEyaSBfX3NyYywgX19tbWFzazE2IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfb3JfZXBpMzIoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX3NyYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9vcl9lcGkzMihfX21tYXNrMTYgX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfb3JfZXBpMzIoX21tNTEyX3NldHplcm9fc2k1MTIoKSwgX19rLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9vcl9lcGk2NChfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3Y4ZHUpX19hIHwgKF9fdjhkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19vcl9lcGk2NChfX201MTJpIF9fc3JjLCBfX21tYXNrOCBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9vcl9lcGk2NChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19zcmMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfb3JfZXBpNjQoX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfb3JfZXBpNjQoX21tNTEyX3NldHplcm9fc2k1MTIoKSwgX19rLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl94b3JfZXBpMzIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKSgoX192MTZzdSlfX2EgXiAoX192MTZzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza194b3JfZXBpMzIoX19tNTEyaSBfX3NyYywgX19tbWFzazE2IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl94b3JfZXBpMzIoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fc3JjKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3hvcl9lcGkzMihfX21tYXNrMTYgX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfeG9yX2VwaTMyKF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfeG9yX2VwaTY0KF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjhkdSlfX2EgXiAoX192OGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3hvcl9lcGk2NChfX201MTJpIF9fc3JjLCBfX21tYXNrOCBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl94b3JfZXBpNjQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fc3JjKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3hvcl9lcGk2NChfX21tYXNrOCBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSlfbW01MTJfbWFza194b3JfZXBpNjQoX21tNTEyX3NldHplcm9fc2k1MTIoKSwgX19rLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRfc2k1MTIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKSgoX192OGR1KV9fYSAmIChfX3Y4ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX29yX3NpNTEyKF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjhkdSlfX2EgfCAoX192OGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl94b3Jfc2k1MTIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKSgoX192OGR1KV9fYSBeIChfX3Y4ZHUpX19iKTsKfQoKLyogQXJpdGhtZXRpYyAqLwoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRfcGQoX19tNTEyZCBfX2EsIF9fbTUxMmQgX19iKQp7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGRmKV9fYSArIChfX3Y4ZGYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZF9wcyhfX201MTIgX19hLCBfX201MTIgX19iKQp7CiAgcmV0dXJuIChfX201MTIpKChfX3YxNnNmKV9fYSArIChfX3YxNnNmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsX3BkKF9fbTUxMmQgX19hLCBfX201MTJkIF9fYikKewogIHJldHVybiAoX19tNTEyZCkoKF9fdjhkZilfX2EgKiAoX192OGRmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tdWxfcHMoX19tNTEyIF9fYSwgX19tNTEyIF9fYikKewogIHJldHVybiAoX19tNTEyKSgoX192MTZzZilfX2EgKiAoX192MTZzZilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1Yl9wZChfX201MTJkIF9fYSwgX19tNTEyZCBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmQpKChfX3Y4ZGYpX19hIC0gKF9fdjhkZilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3ViX3BzKF9fbTUxMiBfX2EsIF9fbTUxMiBfX2IpCnsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c2YpX19hIC0gKF9fdjE2c2YpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZF9lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjhkdSkgX19BICsgKF9fdjhkdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9hZGRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYWRkX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1Yl9lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjhkdSkgX19BIC0gKF9fdjhkdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3ViX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zdWJfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3ViX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZF9lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjE2c3UpIF9fQSArIChfX3YxNnN1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hZGRfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2FkZF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2FkZF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3ViX2VwaTMyIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpICgoX192MTZzdSkgX19BIC0gKF9fdjE2c3UpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3ViX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1Yl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zdWJfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfbWF4X3JvdW5kX3BkKEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfbWF4cGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbWF4X3JvdW5kX3BkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tYXhfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9tYXhfcm91bmRfcGQoVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21heF9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX21heHBkNTEyKChfX3Y4ZGYpIF9fQSwgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21heF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKI2RlZmluZSBfbW01MTJfbWF4X3JvdW5kX3BzKEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9tYXhwczUxMigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX21heF9yb3VuZF9wcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWF4X3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfbWF4X3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tYXhfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9wcyhfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX21heHBzNTEyKChfX3YxNnNmKSBfX0EsIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21heF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21heF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tYXhfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfc3MoX19tMTI4IF9fVywgX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbWF4c3Nfcm91bmRfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfc3MoX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbWF4c3Nfcm91bmRfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRzZikgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXhfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX21heHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbWF4X3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9tYXhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X21heF9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbWF4c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9zZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbWF4c2Rfcm91bmRfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X3NkKF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX21heHNkX3JvdW5kX21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWF4X3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbWF4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX21heF9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21heHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfbWF4X3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbWF4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkKX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYXhzZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWF4X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X2VwaTMyIChfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21heF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWF4X2VwdTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4dWQ1MTIoKF9fdjE2c2kpX19BLCAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYXhfZXB1MzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21heF9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21heF9lcHUzMiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9tYXhfZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9lcGk2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1heHNxNTEyKChfX3Y4ZGkpX19BLCAoX192OGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21heF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21heF9lcGk2NCAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbWF4X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXB1NjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYXh1cTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYXhfZXB1NjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXB1NjQgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21heF9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21pbl9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX21pbnBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX21pbl9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWluX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfbWluX3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9taW5fcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9taW5wZDUxMigoX192OGRmKSBfX0EsIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9taW5fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21pbl9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfbWlucHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19taW5fcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21pbl9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X21pbl9yb3VuZF9wcyhVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWluX3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9taW5wczUxMigoX192MTZzZikgX19BLCAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9taW5fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWluX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX3NzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX21pbnNzX3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX3NzKF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX21pbnNzX3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWluX3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9taW5zc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX21pbl9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbWluc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9taW5fcm91bmRfc3MoVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX21pbnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fc2QoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX21pbnNkX3JvdW5kX21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9zZChfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9taW5zZF9yb3VuZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192MmRmKSAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21pbl9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21pbnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19taW5fcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9taW5zZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X21pbl9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21pbnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZSBfX201MTJpCl9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX2VwaTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWluc2Q1MTIoKF9fdjE2c2kpX19BLCAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21pbl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9lcGkzMiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9taW5fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcHUzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1pbnVkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwdTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9taW5fZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXB1MzIgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWluX2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW5zcTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9taW5fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21pbl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX2VwdTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWludXE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbWluX2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9taW5fZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bF9lcGkzMihfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG11bGRxNTEyKChfX3YxNnNpKV9fWCwgKF9fdjE2c2kpIF9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX211bF9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxfZXBpMzIoX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbXVsX2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsX2VwdTMyKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbXVsdWRxNTEyKChfX3YxNnNpKV9fWCwgKF9fdjE2c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bF9lcHUzMihfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbXVsX2VwdTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bF9lcHUzMihfX21tYXNrOCBfX00sIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tdWxfZXB1MzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tdWxsb19lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjE2c3UpIF9fQSAqIChfX3YxNnN1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bGxvX2VwaTMyKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX211bGxvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxsb19lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbXVsbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsbG94X2VwaTY0IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpICgoX192OGR1KSBfX0EgKiAoX192OGR1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxsb3hfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX211bGxveF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKI2RlZmluZSBfbW01MTJfc3FydF9yb3VuZF9wZChBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NxcnRwZDUxMigoX192OGRmKShfX201MTJkKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zcXJ0X3JvdW5kX3BkKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc3FydF9yb3VuZF9wZCgoQSksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc3FydF9yb3VuZF9wZChVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NxcnRfcm91bmRfcGQoKEEpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NxcnRfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc3FydHBkNTEyKChfX3Y4ZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3FydF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NxcnRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NxcnRfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NxcnRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX3NxcnRfcm91bmRfcHMoQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NxcnRwczUxMigoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zcXJ0X3JvdW5kX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3FydF9yb3VuZF9wcygoQSksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zcXJ0X3JvdW5kX3BzKFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3FydF9yb3VuZF9wcygoQSksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcXJ0X3BzKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zcXJ0cHM1MTIoKF9fdjE2c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcXJ0X3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3FydF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3FydF9wcyggX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zcXJ0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JzcXJ0MTRfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTt9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yc3FydDE0X3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yc3FydDE0X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcnNxcnQxNF9wcyhfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yc3FydDE0X3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcnNxcnQxNF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcnNxcnQxNF9zcyhfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRzc19tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yc3FydDE0X3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c3NfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydDE0X3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c3NfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgKF9fdjRzZikgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyAgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcnNxcnQxNF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRzZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JzcXJ0MTRfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c2RfbWFzayAoIChfX3YyZGYpIF9fQSwKICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JzcXJ0MTRfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRzZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmNwMTRfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JjcDE0X3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yY3AxNF9wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yY3AxNF9wcyhfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmNwMTRfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcmNwMTRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywKICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JjcDE0X3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcmNwMTRfc3MoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yY3AxNHNzX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yY3AxNF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcmNwMTRzc19tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JjcDE0X3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yY3AxNHNzX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JjcDE0X3NkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcmNwMTRzZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yY3AxNF9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0c2RfbWFzayAoIChfX3YyZGYpIF9fQSwKICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JjcDE0X3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHNkX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAoX192MmRmKSBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Zsb29yX3BzKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfRkxPT1IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbG9vcl9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0ZMT09SLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywgX19VLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbG9vcl9wZChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfRkxPT1IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Zsb29yX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0ZMT09SLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLCBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NlaWxfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DRUlMLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywgX19VLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2NlaWxfcHMoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DRUlMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0EsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2VpbF9wZChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ0VJTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19BLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY2VpbF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DRUlMLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLCBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Fic19lcGk2NChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWJzcTUxMigoX192OGRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Fic19lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYWJzX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Fic19lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9hYnNfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfZXBpMzIoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFic2Q1MTIoKF9fdjE2c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Fic19lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Fic19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWJzX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX3NzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX2FkZF9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkX3NzKF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX2FkZF9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tX2FkZF9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfYWRkc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19hZGRfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2FkZHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfYWRkX3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9hZGRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX3NkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX2FkZF9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9zZChfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX2FkZF9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGQoKSk7Cn0KI2RlZmluZSBfbW1fYWRkX3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfYWRkc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2FkZF9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfYWRkX3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfYWRkc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2FkZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hZGRfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FkZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FkZF9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYWRkX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2FkZF9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2FkZHBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2FkZF9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYWRkX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfYWRkX3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hZGRfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfYWRkX3JvdW5kX3BzKEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9hZGRwczUxMigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2FkZF9yb3VuZF9wcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYWRkX3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9hZGRfcm91bmRfcHMoVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FkZF9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1Yl9zcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIF9fQSA9IF9tbV9zdWJfc3MoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1Yl9zcyhfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIF9fQSA9IF9tbV9zdWJfc3MoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BzKCkpOwp9CiNkZWZpbmUgX21tX3N1Yl9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc3Vic3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19zdWJfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3N1YnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfc3ViX3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zdWJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3ViX3NkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX3N1Yl9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1Yl9zZChfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX3N1Yl9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tX3N1Yl9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3N1YnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19zdWJfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3N1Yl9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3N1YnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zdWJfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc3ViX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3ViX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zdWJfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3N1Yl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9zdWJfcm91bmRfcGQoQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zdWJwZDUxMigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zdWJfcm91bmRfcGQoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3N1Yl9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3N1Yl9yb3VuZF9wZChVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc3ViX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tNTEyX3N1Yl9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc3VicHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zdWJfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3N1Yl9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc3ViX3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zdWJfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfc3MoX19tMTI4IF9fVywgX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fbXVsX3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfc3MoX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fbXVsX3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfbW1fc2V0emVyb19wcygpKTsKfQojZGVmaW5lIF9tbV9tdWxfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX211bHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbXVsX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9tdWxzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X211bF9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbXVsc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bF9zZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9tdWxfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfc2QoX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9tdWxfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbV9tdWxfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9tdWxzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbXVsX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbXVsc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9tdWxfcm91bmRfc2QoVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9tdWxzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbXVsX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bF9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbXVsX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tdWxfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW01MTJfbXVsX3JvdW5kX3BkKEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfbXVscGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbXVsX3JvdW5kX3BkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tdWxfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9tdWxfcm91bmRfcGQoVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX211bF9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9tdWxfcm91bmRfcHMoQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX211bHBzNTEyKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19tdWxfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX211bF9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfbXVsX3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tdWxfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kaXZfc3MoX19tMTI4IF9fVywgX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fZGl2X3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kaXZfc3MoX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fZGl2X3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfbW1fc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW1fZGl2X3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9kaXZzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Rpdl9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZGl2c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9kaXZfcm91bmRfc3MoVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2RpdnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kaXZfc2QoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICBfX0EgPSBfbW1fZGl2X3NkKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2RfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZGl2X3NkKF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICBfX0EgPSBfbW1fZGl2X3NkKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2RfMTI4KF9fVSwgX19BLCBfbW1fc2V0emVyb19wZCgpKTsKfQoKI2RlZmluZSBfbW1fZGl2X3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZGl2c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Rpdl9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2RpdnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZGl2X3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZGl2c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9kaXZfcGQoX19tNTEyZCBfX2EsIF9fbTUxMmQgX19iKQp7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGRmKV9fYS8oX192OGRmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Rpdl9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9kaXZfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZGl2X3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9kaXZfcHMoX19tNTEyIF9fYSwgX19tNTEyIF9fYikKewogIHJldHVybiAoX19tNTEyKSgoX192MTZzZilfX2EvKF9fdjE2c2YpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19kaXZfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Rpdl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Rpdl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfZGl2X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2Rpdl9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2RpdnBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Rpdl9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfZGl2X3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZGl2X3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9kaXZfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfZGl2X3JvdW5kX3BzKEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9kaXZwczUxMigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Rpdl9yb3VuZF9wcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfZGl2X3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9kaXZfcm91bmRfcHMoVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Rpdl9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTUxMl9yb3VuZHNjYWxlX3BzKEEsIEIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcHMoQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQSksIChfX21tYXNrMTYpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JvdW5kc2NhbGVfcHMoQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcm91bmRzY2FsZV9yb3VuZF9wcyhBLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShBKSwgKF9fbW1hc2sxNikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3VuZHNjYWxlX3JvdW5kX3BzKEEsIEIsIGltbSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzaygoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yb3VuZHNjYWxlX3JvdW5kX3BzKEEsIGltbSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9wZChBLCBCKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcGQoQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzaygoX192OGRmKShfX201MTJkKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShBKSwgKF9fbW1hc2s4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm91bmRzY2FsZV9wZChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcm91bmRfcGQoQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzaygoX192OGRmKShfX201MTJkKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShBKSwgKF9fbW1hc2s4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3VuZHNjYWxlX3JvdW5kX3BkKEEsIEIsIGltbSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9yb3VuZF9wZChBLCBpbW0sIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9mbWFkZF9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza19mbWFkZF9yb3VuZF9wZChBLCBVLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZtYWRkX3JvdW5kX3BkKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzazMoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZtYWRkX3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ooKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX2Ztc3ViX3JvdW5kX3BkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza19mbXN1Yl9yb3VuZF9wZChBLCBVLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbXN1Yl9yb3VuZF9wZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6KChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfZm5tYWRkX3JvdW5kX3BkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzaygtKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFzazNfZm5tYWRkX3JvdW5kX3BkKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzazMoLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbm1hZGRfcm91bmRfcGQoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNreigtKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX2ZubXN1Yl9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbm1zdWJfcm91bmRfcGQoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNreigtKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1hZGRfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZtYWRkX3BkKF9fbTUxMmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1hZGRfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrMyAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ogKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbXN1Yl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Ztc3ViX3BkKF9fbTUxMmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Ztc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ogKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm5tYWRkX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZubWFkZF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2szICgtKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZubWFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6ICgtKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZubXN1Yl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm5tc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ogKC0oX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZm1hZGRfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZF9yb3VuZF9wcyhBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzazMoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZF9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFza3ooKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbXN1Yl9yb3VuZF9wcyhBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1zdWJfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1zdWJfcm91bmRfcHMoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2t6KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX2ZubWFkZF9yb3VuZF9wcyhBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZubWFkZF9yb3VuZF9wcyhBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzazMoLShfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tYWRkX3JvdW5kX3BzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreigtKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbm1zdWJfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tc3ViX3JvdW5kX3BzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreigtKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1hZGRfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbWFkZF9wcyhfX201MTIgX19BLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1hZGRfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQywgX19tbWFzazE2IF9fVSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrMyAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1hZGRfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreiAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1zdWJfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1zdWJfcHMoX19tNTEyIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbXN1Yl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2t6ICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm5tYWRkX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbm1hZGRfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQywgX19tbWFzazE2IF9fVSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrMyAoLShfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZubWFkZF9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2t6ICgtKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm5tc3ViX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm5tc3ViX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFza3ogKC0oX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZm1hZGRzdWJfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRzdWJfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZHN1Yl9yb3VuZF9wZChBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2szKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZHN1Yl9yb3VuZF9wZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2t6KChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbXN1YmFkZF9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1zdWJhZGRfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1zdWJhZGRfcm91bmRfcGQoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNreigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbWFkZHN1Yl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbWFkZHN1Yl9wZChfX201MTJkIF9fQSwgX19tbWFzazggX19VLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1hZGRzdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrMyAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1hZGRzdWJfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNreiAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1zdWJhZGRfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbXN1YmFkZF9wZChfX201MTJkIF9fQSwgX19tbWFzazggX19VLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbXN1YmFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2t6ICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZm1hZGRzdWJfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRzdWJfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZHN1Yl9yb3VuZF9wcyhBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzazMoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZHN1Yl9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFza3ooKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbXN1YmFkZF9yb3VuZF9wcyhBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1zdWJhZGRfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1zdWJhZGRfcm91bmRfcHMoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2t6KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZtYWRkc3ViX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRzdWJfcHMoX19tNTEyIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkc3ViX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MsIF9fbW1hc2sxNiBfX1UpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzazMgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtYWRkc3ViX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFza3ogKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Ztc3ViYWRkX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Ztc3ViYWRkX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1zdWJhZGRfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNreiAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2szX2Ztc3ViX3JvdW5kX3BkKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtc3VicGQ1MTJfbWFzazMoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbXN1Yl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtc3VicGQ1MTJfbWFzazMgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1zdWJfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBzNTEyX21hc2szKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbXN1Yl9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DLCBfX21tYXNrMTYgX19VKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdmZtc3VicHM1MTJfbWFzazMgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1zdWJhZGRfcm91bmRfcGQoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1zdWJhZGRwZDUxMl9tYXNrMygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2Ztc3ViYWRkX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1zdWJhZGRwZDUxMl9tYXNrMyAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbXN1YmFkZF9yb3VuZF9wcyhBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcHM1MTJfbWFzazMoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbXN1YmFkZF9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DLCBfX21tYXNrMTYgX19VKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcHM1MTJfbWFzazMgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFza19mbm1hZGRfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tYWRkX3BkKF9fbTUxMmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFza19mbm1hZGRfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbm1hZGRfcHMoX19tNTEyIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZubXN1Yl9yb3VuZF9wZChBLCBVLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFzazNfZm5tc3ViX3JvdW5kX3BkKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtc3VicGQ1MTJfbWFzazMoLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbm1zdWJfcGQoX19tNTEyZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZubXN1Yl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBkNTEyX21hc2szICgtKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFza19mbm1zdWJfcm91bmRfcHMoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZubXN1Yl9yb3VuZF9wcyhBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtc3VicHM1MTJfbWFzazMoLShfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbm1zdWJfcHMoX19tNTEyIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm5tc3ViX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MsIF9fbW1hc2sxNiBfX1UpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtc3VicHM1MTJfbWFzazMgKC0oX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgoKCi8qIFZlY3RvciBwZXJtdXRhdGlvbnMgKi8KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXgydmFyX2VwaTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmQ1MTIoKF9fdjE2c2kpX19BLCAoX192MTZzaSkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX2VwaTMyKF9fbTUxMmkgX19BLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3Blcm11dGV4MnZhcl9lcGkzMihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2syX3Blcm11dGV4MnZhcl9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbW1hc2sxNiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTMyKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXgydmFyX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4MnZhcl9lcGk2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJxNTEyKChfX3Y4ZGkpX19BLCAoX192OGRpKSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4MnZhcl9lcGk2NChfX201MTJpIF9fQSwgX19tbWFzazggX19VLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGk2NChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2syX3Blcm11dGV4MnZhcl9lcGk2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fSSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleDJ2YXJfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTY0KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfYWxpZ25yX2VwaTY0KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfYWxpZ25xNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19hbGlnbnJfZXBpNjQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2FsaWducl9lcGk2NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9hbGlnbnJfZXBpNjQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2FsaWducl9lcGk2NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfYWxpZ25yX2VwaTMyKEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfYWxpZ25kNTEyKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2FsaWducl9lcGkzMihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2FsaWducl9lcGkzMigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9hbGlnbnJfZXBpMzIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKLyogVmVjdG9yIEV4dHJhY3QgKi8KCiNkZWZpbmUgX21tNTEyX2V4dHJhY3RmNjR4NF9wZChBLCBJKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmNjR4NF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0ZjY0eDRfcGQoVywgVSwgQSwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmNjR4NF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXh0cmFjdGY2NHg0X3BkKFUsIEEsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9leHRyYWN0ZjMyeDRfcHMoQSwgSSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmMzJ4NF9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGYzMng0X3BzKFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmMzJ4NF9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXh0cmFjdGYzMng0X3BzKFUsIEEsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmMzJ4NF9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgovKiBWZWN0b3IgQmxlbmQgKi8KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19ibGVuZF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fVykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYmxlbmRfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fVykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIgKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAoX192MTZzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2JsZW5kX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19XKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX192OGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYmxlbmRfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19XKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMiAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0EpOwp9CgovKiBDb21wYXJlICovCgojZGVmaW5lIF9tbTUxMl9jbXBfcm91bmRfcHNfbWFzayhBLCBCLCBQLCBSKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9yb3VuZF9wc19tYXNrKFUsIEEsIEIsIFAsIFIpIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfcHNfbWFzayhBLCBCLCBQKSBcCiAgX21tNTEyX2NtcF9yb3VuZF9wc19tYXNrKChBKSwgKEIpLCAoUCksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKI2RlZmluZSBfbW01MTJfbWFza19jbXBfcHNfbWFzayhVLCBBLCBCLCBQKSBcCiAgX21tNTEyX21hc2tfY21wX3JvdW5kX3BzX21hc2soKFUpLCAoQSksIChCKSwgKFApLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9FUV9PUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfRVFfT1EpCgojZGVmaW5lIF9tbTUxMl9jbXBsdF9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9MVF9PUykKI2RlZmluZSBfbW01MTJfbWFza19jbXBsdF9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTFRfT1MpCgojZGVmaW5lIF9tbTUxMl9jbXBsZV9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9MRV9PUykKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTEVfT1MpCgojZGVmaW5lIF9tbTUxMl9jbXB1bm9yZF9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9VTk9SRF9RKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcHVub3JkX3BzX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BzX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9VTk9SRF9RKQoKI2RlZmluZSBfbW01MTJfY21wbmVxX3BzX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wc19tYXNrKChBKSwgKEIpLCBfQ01QX05FUV9VUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBuZXFfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX05FUV9VUSkKCiNkZWZpbmUgX21tNTEyX2NtcG5sdF9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9OTFRfVVMpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmx0X3BzX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BzX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9OTFRfVVMpCgojZGVmaW5lIF9tbTUxMl9jbXBubGVfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfTkxFX1VTKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5sZV9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTkxFX1VTKQoKI2RlZmluZSBfbW01MTJfY21wb3JkX3BzX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wc19tYXNrKChBKSwgKEIpLCBfQ01QX09SRF9RKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG9yZF9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfT1JEX1EpCgojZGVmaW5lIF9tbTUxMl9jbXBfcm91bmRfcGRfbWFzayhBLCBCLCBQLCBSKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX3JvdW5kX3BkX21hc2soVSwgQSwgQiwgUCwgUikgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfY21wX3BkX21hc2soQSwgQiwgUCkgXAogIF9tbTUxMl9jbXBfcm91bmRfcGRfbWFzaygoQSksIChCKSwgKFApLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX3BkX21hc2soVSwgQSwgQiwgUCkgXAogIF9tbTUxMl9tYXNrX2NtcF9yb3VuZF9wZF9tYXNrKChVKSwgKEEpLCAoQiksIChQKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfY21wZXFfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfRVFfT1EpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0VRX09RKQoKI2RlZmluZSBfbW01MTJfY21wbHRfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfTFRfT1MpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0xUX09TKQoKI2RlZmluZSBfbW01MTJfY21wbGVfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfTEVfT1MpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0xFX09TKQoKI2RlZmluZSBfbW01MTJfY21wdW5vcmRfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfVU5PUkRfUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXB1bm9yZF9wZF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wZF9tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfVU5PUkRfUSkKCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9wZF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcGRfbWFzaygoQSksIChCKSwgX0NNUF9ORVFfVVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9ORVFfVVEpCgojZGVmaW5lIF9tbTUxMl9jbXBubHRfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfTkxUX1VTKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5sdF9wZF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wZF9tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTkxUX1VTKQoKI2RlZmluZSBfbW01MTJfY21wbmxlX3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX05MRV9VUykKI2RlZmluZSBfbW01MTJfbWFza19jbXBubGVfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX05MRV9VUykKCiNkZWZpbmUgX21tNTEyX2NtcG9yZF9wZF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcGRfbWFzaygoQSksIChCKSwgX0NNUF9PUkRfUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBvcmRfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX09SRF9RKQoKLyogQ29udmVyc2lvbiAqLwoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBzX2VwdTMyKEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBzX2VwdTMyKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcHNfZXB1MzIoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMydWRxNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cHNfZXB1MzIoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkKICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cHNfZXB1MzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydWRxNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwc19lcHUzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXBpMzJfcHMoQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2N2dGRxMnBzNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwaTMyX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9jdnRkcTJwczUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcGkzMl9wcyhVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfY3Z0ZHEycHM1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcHUzMl9wcyhBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfY3Z0dWRxMnBzNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXB1MzJfcHMoVywgVSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2N2dHVkcTJwczUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwdTMyX3BzKFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9jdnR1ZHEycHM1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTMyX3BzIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNnN1KV9fQSwgX192MTZzZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MzJfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfY3Z0ZXB1MzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MzJfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfY3Z0ZXB1MzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJfcGQoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzaSlfX0EsIF9fdjhkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTMyX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRlcGkzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGkzMmxvX3BkKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfbW01MTJfY3Z0ZXBpMzJfcGQoX21tNTEyX2Nhc3RzaTUxMl9zaTI1NihfX0EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJsb19wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfbW01MTJfbWFza19jdnRlcGkzMl9wZChfX1csIF9fVSwgX21tNTEyX2Nhc3RzaTUxMl9zaTI1NihfX0EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJfcHMgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2c2kpX19BLCBfX3YxNnNmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9jdnRlcGkzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkzMl9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9jdnRlcGkzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHUzMl9wZChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHN1KV9fQSwgX192OGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MzJfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dGVwdTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHUzMl9wZCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTMybG9fcGQoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9tbTUxMl9jdnRlcHUzMl9wZChfbW01MTJfY2FzdHNpNTEyX3NpMjU2KF9fQSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHUzMmxvX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9tbTUxMl9tYXNrX2N2dGVwdTMyX3BkKF9fVywgX19VLCBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KF9fQSkpOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwZF9wcyhBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0cGQycHM1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGRfcHMoVywgVSwgQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHBkMnBzNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX3BzKFUsIEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnRwZDJwczUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBkX3BzIChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnRwZDJwczUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfdW5kZWZpbmVkX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0cGQycHM1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwZF9wcyAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnRwZDJwczUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGRfcHNsbyAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZikgX21tNTEyX2N2dHBkX3BzKF9fQSksCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX3BzbG8gKF9fbTUxMiBfX1csIF9fbW1hc2s4IF9fVSxfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvciAoCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW01MTJfbWFza19jdnRwZF9wcyAoX21tNTEyX2Nhc3RwczUxMl9wczI1NihfX1cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVSwgX19BKSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBzX3BoKEEsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcHNfcGgoVSwgVywgQSwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGg1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBzX3BoKFcsIEEsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVykpKQoKI2RlZmluZSBfbW01MTJfY3Z0cHNfcGggICAgICAgX21tNTEyX2N2dF9yb3VuZHBzX3BoCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0cHNfcGggIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBzX3BoCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHBzX3BoIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwc19waAoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfcHMoQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczUxMl9tYXNrKChfX3YxNmhpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfcHMoVywgVSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczUxMl9tYXNrKChfX3YxNmhpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX3BzKFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHM1MTJfbWFzaygoX192MTZoaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX3BzKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczUxMl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwaF9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmN2dHBoMnBzNTEyX21hc2sgKChfX3YxNmhpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGhfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczUxMl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBkX2VwaTMyKEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGRfZXBpMzIoVywgVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGRfZXBpMzIoVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGRfZXBpMzIoX19tNTEyZCBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2soKF9fdjhkZikgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGRfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBkX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwc19lcGkzMihBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcHNfZXBpMzIoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwc19lcGkzMihVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBzX2VwaTMyKF9fbTUxMiBfX2EpCnsKICByZXR1cm4gKF9fbTUxMmkpCiAgICBfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzaygoX192MTZzZikgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHRwc19lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cHNfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcHNfZXBpMzIoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcHNfZXBpMzIoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBzX2VwaTMyKFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBzX2VwaTMyIChfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfdW5kZWZpbmVkX2VwaTMyICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBzX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMyZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cHNfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMmRxNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpCiAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBkX2VwaTMyKEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0cGQyZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwZF9lcGkzMihXLCBVLCBBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX2VwaTMyKFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0cGQyZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwZF9lcGkzMiAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBkX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwc19lcHUzMihBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwc19lcHUzMihXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcHNfZXB1MzIoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cHNfZXB1MzIgKCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSxcCiAgICAgICAgICAgICAgICAgIChfX3YxNnNpKVwKICAgICAgICAgICAgICAgICAgX21tNTEyX3VuZGVmaW5lZF9lcGkzMiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsXAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwc19lcHUzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwc19lcHUzMiAoIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkKICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSAsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBkX2VwdTMyKEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0cGQydWRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwZF9lcHUzMihXLCBVLCBBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX2VwdTMyKFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0cGQydWRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwZF9lcHUzMiAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgICAgIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX2VwdTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBkX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNkX2Y2NChfX201MTJkIF9fYSkKewogIHJldHVybiBfX2FbMF07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0c3NfZjMyKF9fbTUxMiBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CgovKiBVbnBhY2sgYW5kIEludGVybGVhdmUgKi8KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNraGlfcGQoX19tNTEyZCBfX2EsIF9fbTUxMmQgX19iKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4ZGYpX19hLCAoX192OGRmKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgOSwgMSsyLCA5KzIsIDErNCwgOSs0LCAxKzYsIDkrNik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2hpX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bnBhY2toaV9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2toaV9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bnBhY2toaV9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2xvX3BkKF9fbTUxMmQgX19hLCBfX201MTJkIF9fYikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGRmKV9fYSwgKF9fdjhkZilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDgsIDArMiwgOCsyLCAwKzQsIDgrNCwgMCs2LCA4KzYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2tsb19wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5wYWNrbG9fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNrbG9fcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3VucGFja2xvX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2toaV9wcyhfX201MTIgX19hLCBfX201MTIgX19iKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2c2YpX19hLCAoX192MTZzZilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgICAgMTgsICAgIDMsICAgIDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIrNCwgIDE4KzQsICAzKzQsICAxOSs0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIrOCwgIDE4KzgsICAzKzgsICAxOSs4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIrMTIsIDE4KzEyLCAzKzEyLCAxOSsxMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNraGlfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2hpX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VucGFja2hpX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2tsb19wcyhfX201MTIgX19hLCBfX201MTIgX19iKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2c2YpX19hLCAoX192MTZzZilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgMTYsICAgIDEsICAgIDE3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDArNCwgIDE2KzQsICAxKzQsICAxNys0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDArOCwgIDE2KzgsICAxKzgsICAxNys4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDArMTIsIDE2KzEyLCAxKzEyLCAxNysxMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNrbG9fcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bnBhY2tsb19wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2xvX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VucGFja2xvX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2toaV9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2c2kpX19BLCAoX192MTZzaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsICAgIDE4LCAgICAzLCAgICAxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMis0LCAgMTgrNCwgIDMrNCwgIDE5KzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIrOCwgIDE4KzgsICAzKzgsICAxOSs4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKzEyLCAxOCsxMiwgMysxMiwgMTkrMTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2toaV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3VucGFja2hpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2hpX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNrbG9fZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAxNiwgICAgMSwgICAgMTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDArNCwgIDE2KzQsICAxKzQsICAxNys0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKzgsICAxNis4LCAgMSs4LCAgMTcrOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCsxMiwgMTYrMTIsIDErMTIsIDE3KzEyKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNrbG9fZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl91bnBhY2tsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2tsb19lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfdW5wYWNrbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2hpX2VwaTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDksIDErMiwgOSsyLCAxKzQsIDkrNCwgMSs2LCA5KzYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2toaV9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2toaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3VucGFja2hpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2tsb19lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4ZGkpX19BLCAoX192OGRpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgOCwgMCsyLCA4KzIsIDArNCwgOCs0LCAwKzYsIDgrNik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2xvX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2tsb19lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgoKLyogU0lNRCBsb2FkIG9wcyAqLwoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkdV9zaTUxMiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfc2k1MTIgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9zaTUxMiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X2VwaTMyICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGkzMiB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTMyKilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXNpNTEyX21hc2sgKChjb25zdCBpbnQgKikgX19QLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkdV9lcGkzMihfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVzaTUxMl9tYXNrICgoY29uc3QgaW50ICopX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZHVfZXBpNjQgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTY0IHsKICAgIF9fbTUxMmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpNjQqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2xvYWR1X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVkaTUxMl9tYXNrICgoY29uc3QgbG9uZyBsb25nICopIF9fUCwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbG9hZHVfZXBpNjQoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVkaTUxMl9tYXNrICgoY29uc3QgbG9uZyBsb25nICopX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHM1MTJfbWFzayAoKGNvbnN0IGZsb2F0ICopIF9fUCwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbG9hZHVfcHMoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cHM1MTJfbWFzayAoKGNvbnN0IGZsb2F0ICopX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBkNTEyX21hc2sgKChjb25zdCBkb3VibGUgKikgX19QLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWR1X3BkKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBkNTEyX21hc2sgKChjb25zdCBkb3VibGUgKilfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZHVfcGQodm9pZCBjb25zdCAqX19wKQp7CiAgc3RydWN0IF9fbG9hZHVfcGQgewogICAgX19tNTEyZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wZCopX19wKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZHVfcHModm9pZCBjb25zdCAqX19wKQp7CiAgc3RydWN0IF9fbG9hZHVfcHMgewogICAgX19tNTEyX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3BzKilfX3ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX3BzKHZvaWQgY29uc3QgKl9fcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTUxMiopX19wOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfbG9hZGFwczUxMl9tYXNrICgoY29uc3QgX192MTZzZiAqKSBfX1AsCiAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWRfcHMoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcHM1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2YgKilfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX3BkKHZvaWQgY29uc3QgKl9fcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTUxMmQqKV9fcDsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2xvYWRfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfbG9hZGFwZDUxMl9tYXNrICgoY29uc3QgX192OGRmICopIF9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWRfcGQoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQ1MTJfbWFzayAoKGNvbnN0IF9fdjhkZiAqKV9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX3NpNTEyICh2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKihjb25zdCBfX201MTJpICopIF9fUDsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX2VwaTMyICh2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKihjb25zdCBfX201MTJpICopIF9fUDsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX2VwaTY0ICh2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKihjb25zdCBfX201MTJpICopIF9fUDsKfQoKLyogU0lNRCBzdG9yZSBvcHMgKi8KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbTUxMmkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTY0IHsKICAgIF9fbTUxMmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpNjQqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N0b3JldV9lcGk2NCh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdWRpNTEyX21hc2sgKChsb25nIGxvbmcgKilfX1AsIChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZXVfc2k1MTIgKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfc2k1MTIgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9zaTUxMiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX201MTJpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGkzMiB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTMyKilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZXVfZXBpMzIodm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1c2k1MTJfbWFzayAoKGludCAqKV9fUCwgKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZXVfcGQodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmV1cGQ1MTJfbWFzayAoKGRvdWJsZSAqKV9fUCwgKF9fdjhkZikgX19BLCAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmV1X3BkKHZvaWQgKl9fUCwgX19tNTEyZCBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfcGQgewogICAgX19tNTEyZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9wZCopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmV1X3BzKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JldXBzNTEyX21hc2sgKChmbG9hdCAqKV9fUCwgKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9wcyh2b2lkICpfX1AsIF9fbTUxMiBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfcHMgewogICAgX19tNTEyX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BzKilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZV9wZCh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwZDUxMl9tYXNrICgoX192OGRmICopX19QLCAoX192OGRmKSBfX0EsIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZV9wZCh2b2lkICpfX1AsIF9fbTUxMmQgX19BKQp7CiAgKihfX201MTJkKilfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZV9wcyh2b2lkICpfX1AsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwczUxMl9tYXNrICgoX192MTZzZiAqKV9fUCwgKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JlX3BzKHZvaWQgKl9fUCwgX19tNTEyIF9fQSkKewogICooX19tNTEyKilfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmVfc2k1MTIgKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICAqKF9fbTUxMmkgKikgX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JlX2VwaTMyICh2b2lkICpfX1AsIF9fbTUxMmkgX19BKQp7CiAgKihfX201MTJpICopIF9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZV9lcGk2NCAodm9pZCAqX19QLCBfX201MTJpIF9fQSkKewogICooX19tNTEyaSAqKSBfX1AgPSBfX0E7Cn0KCi8qIE1hc2sgb3BzICovCgpzdGF0aWMgX19pbmxpbmUgX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa25vdChfX21tYXNrMTYgX19NKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2tub3RoaShfX00pOwp9CgovKiBJbnRlZ2VyIGNvbXBhcmUgKi8KCiNkZWZpbmUgX21tNTEyX2NtcGVxX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ2VfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX2NtcGxlX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tNTEyX2NtcGVxX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ2VfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX2NtcGxlX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tNTEyX2NtcGVxX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ2VfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX2NtcGxlX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tNTEyX2NtcGVxX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfY21wZ2VfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ2VfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBndF9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX2NtcGxlX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfY21wbHRfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk4X2VwaTMyKF9fbTEyOGkgX19BKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2cXMpX19BLCBfX3YxNnNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpOF9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9jdnRlcGk4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk4X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXBpOF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaThfZXBpNjQoX19tMTI4aSBfX0EpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX0EsIChfX3YxNnFzKV9fQSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyksIF9fdjhkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaThfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXBpOF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk4X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXBpOF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX2VwaTY0KF9fbTI1NmkgX19YKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19YLCBfX3Y4ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkzMl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwaTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGkxNl9lcGkzMihfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MTZoaSlfX0EsIF9fdjE2c2kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkxNl9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2N2dGVwaTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTE2X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9jdnRlcGkxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTE2X2VwaTY0KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4aGkpX19BLCBfX3Y4ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkxNl9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcGkxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwaTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHU4X2VwaTMyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNnF1KV9fQSwgX192MTZzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdThfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXB1OF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1OF9lcGkzMihfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2N2dGVwdThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHU4X2VwaTY0KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnF1KV9fQSwgKF9fdjE2cXUpX19BLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KSwgX192OGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1OF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcHU4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdThfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcHU4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHUzMl9lcGk2NChfX20yNTZpIF9fWCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHN1KV9fWCwgX192OGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MzJfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXB1MzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MzJfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcHUzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1MTZfZXBpMzIoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2aHUpX19BLCBfX3YxNnNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MTZfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9jdnRlcHUxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHUxNl9lcGkzMihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXB1MTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTE2X2VwaTY0KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4aHUpX19BLCBfX3Y4ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHUxNl9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcHUxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHUxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwdTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yb3J2X2VwaTMyIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHJvcnZkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcm9ydl9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9ydl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcm9ydl9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9yb3J2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcm9ydl9lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb3J2cTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yb3J2X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3JvcnZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JvcnZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb3J2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgoKCiNkZWZpbmUgX21tNTEyX2NtcF9lcGkzMl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfZXB1MzJfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfdWNtcGQ1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW01MTJfY21wX2VwaTY0X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcTUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9lcHU2NF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcGkzMl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfZXB1MzJfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfdWNtcGQ1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKG0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcTUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcHU2NF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW01MTJfcm9sX2VwaTMyKGEsIGIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHJvbGQ1MTIoKF9fdjE2c2kpKF9fbTUxMmkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvbF9lcGkzMihXLCBVLCBhLCBiKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9yb2xfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb2xfZXBpMzIoVSwgYSwgYikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3JvbF9lcGk2NChhLCBiKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb2xxNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCAoaW50KShiKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvbF9lcGk2NChXLCBVLCBhLCBiKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcm9sX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb2xfZXBpNjQoVSwgYSwgYikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3JvbF9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yb2x2X2VwaTMyIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHJvbHZkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcm9sdl9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9sdl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcm9sdl9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9yb2x2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcm9sdl9lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb2x2cTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yb2x2X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3JvbHZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JvbHZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9yb3JfZXBpMzIoQSwgQikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wcm9yZDUxMigoX192MTZzaSkoX19tNTEyaSkoQSksIChpbnQpKEIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcm9yX2VwaTMyKFcsIFUsIEEsIEIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3Jvcl9lcGkzMigoQSksIChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Jvcl9lcGkzMihVLCBBLCBCKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9yb3JfZXBpMzIoKEEpLCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfcm9yX2VwaTY0KEEsIEIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHJvcnE1MTIoKF9fdjhkaSkoX19tNTEyaSkoQSksIChpbnQpKEIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcm9yX2VwaTY0KFcsIFUsIEEsIEIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb3JfZXBpNjQoKEEpLCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Jvcl9lcGk2NChVLCBBLCBCKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcm9yX2VwaTY0KChBKSwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbGlfZXBpMzIoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbGRpNTEyKChfX3YxNnNpKV9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsaV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2xsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbGlfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NsbGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsaV9lcGk2NChfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2xscWk1MTIoKF9fdjhkaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbGlfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2xsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbGlfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zbGxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybGlfZXBpMzIoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybGRpNTEyKChfX3YxNnNpKV9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JsaV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3JsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybGlfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NybGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JsaV9lcGk2NChfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JscWk1MTIoKF9fdjhkaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybGlfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JsaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NybGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMmxvYWQ1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3YxNnNpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWRfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbW92ZHFhMzJsb2FkNTEyX21hc2sgKChjb25zdCBfX3YxNnNpICopIF9fUCwKICAgICAgICAgICAgICAoX192MTZzaSkKICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMyc3RvcmU1MTJfbWFzayAoKF9fdjE2c2kgKikgX19QLCAoX192MTZzaSkgX19BLAogICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92X2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21vdl9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3NldHplcm9fc2k1MTIgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tb3ZfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0bG9hZDUxMl9tYXNrICgoY29uc3QgX192OGRpICopIF9fUCwKICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbG9hZF9lcGk2NCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0bG9hZDUxMl9tYXNrICgoY29uc3QgX192OGRpICopIF9fUCwKICAgICAgICAgICAgICAoX192OGRpKQogICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0c3RvcmU1MTJfbWFzayAoKF9fdjhkaSAqKSBfX1AsIChfX3Y4ZGkpIF9fQSwKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdmVkdXBfcGQgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4ZGYpX19BLCAoX192OGRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMiwgMiwgNCwgNCwgNiwgNik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdmVkdXBfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbW92ZWR1cF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92ZWR1cF9wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21vdmVkdXBfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2ZpeHVwaW1tX3JvdW5kX3BkKEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZpeHVwaW1tX3JvdW5kX3BkKEEsIFUsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZml4dXBpbW1fcGQoQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZpeHVwaW1tX3BkKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZpeHVwaW1tX3JvdW5kX3BkKFUsIEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkNTEyX21hc2t6KChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9maXh1cGltbV9wZChVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDUxMl9tYXNreigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX2ZpeHVwaW1tX3JvdW5kX3BzKEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19maXh1cGltbV9yb3VuZF9wcyhBLCBVLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9maXh1cGltbV9wcyhBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZml4dXBpbW1fcHMoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZml4dXBpbW1fcm91bmRfcHMoVSwgQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczUxMl9tYXNreigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZpeHVwaW1tX3BzKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHM1MTJfbWFza3ooKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fZml4dXBpbW1fcm91bmRfc2QoQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZml4dXBpbW1fcm91bmRfc2QoQSwgVSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9maXh1cGltbV9zZChBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZml4dXBpbW1zZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfZml4dXBpbW1fc2QoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfZml4dXBpbW1fcm91bmRfc2QoVSwgQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZml4dXBpbW1fc2QoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9maXh1cGltbV9yb3VuZF9zcyhBLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19maXh1cGltbV9yb3VuZF9zcyhBLCBVLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2ZpeHVwaW1tX3NzKEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2ZpeHVwaW1tX3NzKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfZml4dXBpbW1fcm91bmRfc3MoVSwgQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZml4dXBpbW1zc19tYXNreigoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZml4dXBpbW1fc3MoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZml4dXBpbW1zc19tYXNreigoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX2dldGV4cF9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNkMTI4X3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9nZXRleHBfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwc2QxMjhfcm91bmRfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwgKF9fdjJkZikgX21tX3NldHplcm9fcGQoKSwgKF9fbW1hc2s4KSAtMSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZ2V0ZXhwX3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwc2QxMjhfcm91bmRfbWFzayAoIChfX3YyZGYpIF9fQSwKICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19nZXRleHBfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRleHBzZDEyOF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9nZXRleHBfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHNkMTI4X3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAoX192MmRmKSBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0ZXhwX3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0ZXhwc2QxMjhfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZ2V0ZXhwX3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRleHBzczEyOF9yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9nZXRleHBfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwc3MxMjhfcm91bmRfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLCAoX192NHNmKSAgX21tX3NldHplcm9fcHMoKSwgKF9fbW1hc2s4KSAtMSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19nZXRleHBfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHNzMTI4X3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19nZXRleHBfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldGV4cHNzMTI4X3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZ2V0ZXhwX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9nZXRleHBzczEyOF9yb3VuZF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0ZXhwX3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRleHBzczEyOF9yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9yb3VuZF9zZChBLCBCLCBDLCBELCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9nZXRtYW50X3NkKEEsIEIsIEMsIEQpICBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfc2QoVywgVSwgQSwgQiwgQywgRCkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3JvdW5kX3NkKFcsIFUsIEEsIEIsIEMsIEQsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0bWFudHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2dldG1hbnRfc2QoVSwgQSwgQiwgQywgRCkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X2dldG1hbnRfcm91bmRfc2QoVSwgQSwgQiwgQywgRCwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2dldG1hbnRfcm91bmRfc3MoQSwgQiwgQywgRCwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9nZXRtYW50X3NzKEEsIEIsIEMsIEQpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfc3MoVywgVSwgQSwgQiwgQywgRCkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3JvdW5kX3NzKFcsIFUsIEEsIEIsIEMsIEQsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3NzKFUsIEEsIEIsIEMsIEQpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9yb3VuZF9zcyhVLCBBLCBCLCBDLCBELCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9rbW92IChfX21tYXNrMTYgX19BKQp7CiAgcmV0dXJuICBfX0E7Cn0KCiNkZWZpbmUgX21tX2NvbWlfcm91bmRfc2QoQSwgQiwgUCwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3Zjb21pc2QoKF9fdjJkZikoX19tMTI4ZCkoQSksIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShQKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY29taV9yb3VuZF9zcyhBLCBCLCBQLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmNvbWlzcygoX192NHNmKShfX20xMjgpKEEpLCAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShQKSwgKGludCkoUikpKQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2Rfc2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNkMnNpNjQoKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKFIpKSkKI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsX2VwaTMyKF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2xsZDUxMigoX192MTZzaSkgX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbF9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2xsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbF9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zbGxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbF9lcGk2NChfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHE1MTIoKF9fdjhkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zbGxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NsbF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsdl9lcGkzMihfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHYxNnNpKChfX3YxNnNpKV9fWCwgKF9fdjE2c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsdl9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NsbHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbHZfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NsbHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zbGx2X2VwaTY0KF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2xsdjhkaSgoX192OGRpKV9fWCwgKF9fdjhkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zbGx2X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NsbHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NsbHZfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zbGx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JhX2VwaTMyKF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhZDUxMigoX192MTZzaSkgX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3JhX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYV9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmFfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYV9lcGk2NChfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYXE1MTIoKF9fdjhkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JhX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JhX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JhX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmF2X2VwaTMyKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhdjE2c2koKF9fdjE2c2kpX19YLCAoX192MTZzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmF2X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3Jhdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jhdl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3Jhdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYXZfZXBpNjQoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmF2OGRpKChfX3Y4ZGkpX19YLCAoX192OGRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYXZfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3Jhdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jhdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NyYXZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmxfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmxkNTEyKChfX3YxNnNpKSBfX0EsIChfX3Y0c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JsX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JsX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NybF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JsX2VwaTY0KF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JscTUxMigoX192OGRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmxfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybHZfZXBpMzIoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Bzcmx2MTZzaSgoX192MTZzaSlfX1gsIChfX3YxNnNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybHZfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmx2X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3Jsdl9lcGk2NCAoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Bzcmx2OGRpKChfX3Y4ZGkpX19YLCAoX192OGRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybHZfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3Jsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jsdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NybHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX3Rlcm5hcnlsb2dpY19lcGkzMihBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Rlcm5hcnlsb2dpY19lcGkzMihBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfdGVybmFyeWxvZ2ljX2VwaTMyKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ2Q1MTJfbWFza3ooKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2sxNikoVSkpKQoKI2RlZmluZSBfbW01MTJfdGVybmFyeWxvZ2ljX2VwaTY0KEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3E1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza190ZXJuYXJ5bG9naWNfZXBpNjQoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9ncTUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfdGVybmFyeWxvZ2ljX2VwaTY0KFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3E1MTJfbWFza3ooKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF9pNjQoQSwgUikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2Rfc2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNkMnNpMzIoKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNkMnNpMzIoKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX3UzMihBLCBSKSBcCiAgKCh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHNkMnVzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNkX3UzMiAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKHVuc2lnbmVkKSBfX2J1aWx0aW5faWEzMl92Y3Z0c2QydXNpMzIgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX3U2NChBLCBSKSBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNkMnVzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNkX3U2NCAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19idWlsdGluX2lhMzJfdmN2dHNkMnVzaTY0ICgoX192MmRmKQogICAgICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3Nfc2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNzMnNpMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3NfaTMyKEEsIFIpIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92Y3Z0c3Myc2kzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRzc19zaTY0KEEsIFIpIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c3Myc2k2NCgoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzc19pNjQoQSwgUikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaTY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKFIpKSkKI2VuZGlmCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzc191MzIoQSwgUikgXAogICgodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJ1c2kzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNzX3UzMiAoX19tMTI4IF9fQSkKewogIHJldHVybiAodW5zaWduZWQpIF9fYnVpbHRpbl9pYTMyX3ZjdnRzczJ1c2kzMiAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3NfdTY0KEEsIFIpIFwKICAoKHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c3MydXNpNjQoKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzc191NjQgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19idWlsdGluX2lhMzJfdmN2dHNzMnVzaTY0ICgoX192NHNmKQogICAgICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNkX2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzZDJzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2Rfc2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzZDJzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2RfaTMyIChfX20xMjhkIF9fQSkKewogIHJldHVybiAoaW50KSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnNpMzIgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2Rfc2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzZDJzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2RfaTY0KEEsIFIpIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnNpNjQoKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzZF9pNjQgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChsb25nIGxvbmcpIF9fYnVpbHRpbl9pYTMyX3ZjdnR0c2Qyc2k2NCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2RfdTMyKEEsIFIpIFwKICAoKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnVzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzZF91MzIgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCkgX19idWlsdGluX2lhMzJfdmN2dHRzZDJ1c2kzMiAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzZF91NjQoQSwgUikgXAogICgodW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2QydXNpNjQoKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzZF91NjQgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYnVpbHRpbl9pYTMyX3ZjdnR0c2QydXNpNjQgKChfX3YyZGYpCiAgICAgICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzc19pMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c3Myc2kzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc3Nfc2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzczJzaTMyKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzc19pMzIgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKGludCkgX19idWlsdGluX2lhMzJfdmN2dHRzczJzaTMyICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNzX2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzczJzaTY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzc19zaTY0KEEsIFIpIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNzMnNpNjQoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHNzX2k2NCAoX19tMTI4IF9fQSkKewogIHJldHVybiAobG9uZyBsb25nKSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNzMnNpNjQgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNzX3UzMihBLCBSKSBcCiAgKCh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzczJ1c2kzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzc191MzIgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKHVuc2lnbmVkKSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNzMnVzaTMyICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNzX3U2NChBLCBSKSBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzczJ1c2k2NCgoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c3NfdTY0IChfX20xMjggX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYnVpbHRpbl9pYTMyX3ZjdnR0c3MydXNpNjQgKChfX3Y0c2YpCiAgICAgICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYKCiNkZWZpbmUgX21tNTEyX3Blcm11dGVfcGQoWCwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92cGVybWlscGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoWCksIChpbnQpKEMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcGVybXV0ZV9wZChXLCBVLCBYLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcGVybXV0ZV9wZChVLCBYLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRlX3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tNTEyX3Blcm11dGVfcHMoWCwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWxwczUxMigoX192MTZzZikoX19tNTEyKShYKSwgKGludCkoQykpKQoKI2RlZmluZSBfbW01MTJfbWFza19wZXJtdXRlX3BzKFcsIFUsIFgsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGVfcHMoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Blcm11dGVfcHMoVSwgWCwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZV9wcygoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXZhcl9wZChfX201MTJkIF9fQSwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdnBlcm1pbHZhcnBkNTEyKChfX3Y4ZGYpX19BLCAoX192OGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV2YXJfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV2YXJfcGQoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV2YXJfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXZhcl9wZChfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXZhcl9wcyhfX201MTIgX19BLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWx2YXJwczUxMigoX192MTZzZilfX0EsIChfX3YxNnNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXZhcl9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9wZXJtdXRldmFyX3BzKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV2YXJfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZXZhcl9wcyhfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleDJ2YXJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmkgX19JLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl92cGVybWkydmFycGQ1MTIoKF9fdjhkZilfX0EsIChfX3Y4ZGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRleDJ2YXJfcGQoX19tNTEyZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0ksIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrMl9wZXJtdXRleDJ2YXJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4MnZhcl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXgydmFyX3BkKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4MnZhcl9wcyhfX201MTIgX19BLCBfX201MTJpIF9fSSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJwczUxMigoX192MTZzZilfX0EsIChfX3YxNnNpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19JLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazJfcGVybXV0ZXgydmFyX3BzKF9fbTUxMiBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMilfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleDJ2YXJfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyaSBfX0ksIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZXgydmFyX3BzKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwZF9lcHUzMihBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGRfZXB1MzIoVywgVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGRfZXB1MzIoVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwZF9lcHUzMiAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGRfZXB1MzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwZF9lcHUzMiAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9yb3VuZF9zZChBLCBCLCBpbW0sIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfc2QoQSwgQiwgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3NkKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcm91bmRzY2FsZV9yb3VuZF9zZChXLCBVLCBBLCBCLCBJLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9zZChVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrel9yb3VuZHNjYWxlX3JvdW5kX3NkKFUsIEEsIEIsIEksIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9yb3VuZF9zcyhBLCBCLCBpbW0sIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9zcyhBLCBCLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcm91bmRzY2FsZV9zcyhXLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfcm91bmRfc3MoVywgVSwgQSwgQiwgSSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yb3VuZHNjYWxlX3NzKFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9yb3VuZF9zcyhVLCBBLCBCLCBJLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfc2NhbGVmX3JvdW5kX3BkKEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2NhbGVmcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2NhbGVmX3JvdW5kX3BkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2NhbGVmcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zY2FsZWZfcm91bmRfcGQoVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2NhbGVmX3BkIChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpCiAgICAgICAgICAgICAgICBfbW01MTJfdW5kZWZpbmVkX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NjYWxlZl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zY2FsZWZfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX3NjYWxlZl9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2NhbGVmcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zY2FsZWZfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NjYWxlZl9yb3VuZF9wcyhVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2NhbGVmcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zY2FsZWZfcHMgKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2NhbGVmcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgIF9tbTUxMl91bmRlZmluZWRfcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NjYWxlZl9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NjYWxlZl9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fc2NhbGVmX3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2NhbGVmc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2NhbGVmX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAoX192MmRmKSggX19CKSwgKF9fdjJkZikgX21tX3NldHplcm9fcGQoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NjYWxlZl9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrX3NjYWxlZl9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmc2Rfcm91bmRfbWFzayAoIChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfc2NhbGVmX3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2NhbGVmc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fc2NhbGVmX3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zY2FsZWZzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zY2FsZWZfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2NhbGVmc3Nfcm91bmRfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgKF9fdjRzZikoIF9fQiksIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zY2FsZWZfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNzX3JvdW5kX21hc2sgKCAoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2tfc2NhbGVmX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zY2FsZWZzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2NhbGVmc3Nfcm91bmRfbWFzayAoIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfc2NhbGVmX3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zY2FsZWZzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYWlfZXBpMzIoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYWRpNTEyKChfX3YxNnNpKV9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JhaV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3JhaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYWlfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NyYWlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JhaV9lcGk2NChfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhcWk1MTIoKF9fdjhkaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYWlfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JhaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYWlfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmFpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZV9mMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zaHVmX2YzMng0KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfZjMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zaHVmZmxlX2YzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2h1ZmZsZV9mMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NodWZmbGVfZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tNTEyX3NodWZmbGVfZjY0eDIoQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NodWZfZjY0eDIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfZjY0eDIoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zaHVmZmxlX2Y2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVfZjY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zaHVmZmxlX2Y2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlX2kzMng0KEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zaHVmX2kzMng0KChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfaTMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaHVmZmxlX2kzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVfaTMyeDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaHVmZmxlX2kzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlX2k2NHgyKEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zaHVmX2k2NHgyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHVmZmxlX2k2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NodWZmbGVfaTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX2k2NHgyKFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NodWZmbGVfaTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZV9wZChBLCBCLCBNKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NodWZwZDUxMigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2h1ZmZsZV9wZChXLCBVLCBBLCBCLCBNKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zaHVmZmxlX3BkKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX3BkKFUsIEEsIEIsIE0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NodWZmbGVfcGQoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlX3BzKEEsIEIsIE0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zaHVmcHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2h1ZmZsZV9wcyhXLCBVLCBBLCBCLCBNKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zaHVmZmxlX3BzKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVfcHMoVSwgQSwgQiwgTSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tX3NxcnRfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zcXJ0c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcXJ0X3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc3FydHNkX3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrX3NxcnRfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zcXJ0c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3FydF9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc3FydHNkX3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X3NxcnRfcm91bmRfc2QoVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zcXJ0c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fc3FydF9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc3FydHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3FydF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc3FydHNzX3JvdW5kX21hc2sgKCAoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrX3NxcnRfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NxcnRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NxcnRfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NxcnRzc19yb3VuZF9tYXNrICggKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9zcXJ0X3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zcXJ0c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9mMzJ4NChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2YzMng0KF9fbTUxMiBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYnJvYWRjYXN0X2YzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfZjMyeDQoX19tbWFzazE2IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9icm9hZGNhc3RfZjMyeDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2Y2NHg0KF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9mNjR4NChfX201MTJkIF9fTywgX19tbWFzazggX19NLCBfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9icm9hZGNhc3RfZjY0eDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfZjY0eDQoX19tbWFzazggX19NLCBfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9icm9hZGNhc3RfZjY0eDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2kzMng0KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9pMzJ4NChfX201MTJpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYnJvYWRjYXN0X2kzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2kzMng0KF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RfaTY0eDQoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2k2NHg0KF9fbTUxMmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYnJvYWRjYXN0X2k2NHg0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2k2NHg0KF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9icm9hZGNhc3RfaTY0eDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RzZF9wZCAoX19tNTEyZCBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl9icm9hZGNhc3RzZF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdHNkX3BkIChfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfYnJvYWRjYXN0c2RfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdHNzX3BzIChfX201MTIgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9tbTUxMl9icm9hZGNhc3Rzc19wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0c3NfcHMgKF9fbW1hc2sxNiBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX2Jyb2FkY2FzdHNzX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNlcGkzMl9lcGk4IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2RiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRzZXBpMzJfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGI1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpMzJfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNkYjUxMm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3YxNnNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpMzJfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGkzMl9lcGkxNiAoX19tMjU2aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRzZXBpMzJfZXBpMTYgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZHc1MTJtZW1fbWFzayAoKF9fdjE2aGkqKSBfX1AsIChfX3YxNnNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpNjRfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxYjUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRzZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxYjUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNxYjUxMm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNlcGk2NF9lcGkzMiAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTY0X2VwaTMyIChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHNlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnNxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3FkNTEybWVtX21hc2sgKChfX3Y4c2kgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpNjRfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXc1MTJtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y4ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHVzZXBpMzJfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHVzZXBpMzJfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiNTEybWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjE2c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHVzZXBpMzJfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpMzJfZXBpMTYgKF9fbTI1NmkgX19PLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dXNlcGkzMl9lcGkxNiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3NTEybWVtX21hc2sgKChfX3YxNmhpKikgX19QLCAoX192MTZzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dXNlcGk2NF9lcGk4IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR1c2VwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjUxMm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHVzZXBpNjRfZXBpMzIgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpNjRfZXBpMzIgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR1c2VwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDUxMm1lbV9tYXNrICgoX192OHNpKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR1c2VwaTY0X2VwaTE2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTY0X2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dXNlcGk2NF9lcGkxNiAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcXc1MTJtZW1fbWFzayAoKF9fdjhoaSopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fdW5kZWZpbmVkX3NpMTI4ICgpLAogICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGI1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92ZGI1MTJtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MTZzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTMyX2VwaTE2IChfX20yNTZpIF9fTywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNmhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkzMl9lcGkxNiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdmR3NTEybWVtX21hc2sgKChfX3YxNmhpICopIF9fUCwgKF9fdjE2c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTY0X2VwaTggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fdW5kZWZpbmVkX3NpMTI4ICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cWI1MTJtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk2NF9lcGkzMiAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxZDUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfZXBpMzIgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92cWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4c2kpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92cWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGkzMiAodm9pZCogX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnFkNTEybWVtX21hc2sgKChfX3Y4c2kgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk2NF9lcGkxNiAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnF3NTEybWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCiNkZWZpbmUgX21tNTEyX2V4dHJhY3RpMzJ4NF9lcGkzMihBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGkzMng0X21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4dHJhY3RpMzJ4NF9lcGkzMihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGkzMng0X21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXh0cmFjdGkzMng0X2VwaTMyKFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTMyeDRfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfZXh0cmFjdGk2NHg0X2VwaTY0KEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDRfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0aTY0eDRfZXBpNjQoVywgVSwgQSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4NF9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXh0cmFjdGk2NHg0X2VwaTY0KFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDRfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRmNjR4NChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfaW5zZXJ0ZjY0eDQoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pbnNlcnRmNjR4NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9pbnNlcnRmNjR4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0ZjY0eDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfaW5zZXJ0ZjY0eDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRpNjR4NChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTY0eDQoKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pbnNlcnRpNjR4NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2luc2VydGk2NHg0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRpNjR4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2luc2VydGk2NHg0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0ZjMyeDQoQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfaW5zZXJ0ZjMyeDQoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0ZjMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfaW5zZXJ0ZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0ZjMyeDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfaW5zZXJ0ZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRpMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDQoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0aTMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfaW5zZXJ0aTMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2luc2VydGkzMng0KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2luc2VydGkzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfZ2V0bWFudF9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0bWFudF9yb3VuZF9wZChXLCBVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRtYW50X3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2V0bWFudHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9nZXRtYW50X3BkKEEsIEIsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2V0bWFudHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0bWFudF9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRtYW50X3BkKFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2V0bWFudHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9nZXRtYW50X3JvdW5kX3BzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nZXRtYW50cHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0bWFudF9yb3VuZF9wcyhXLCBVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRtYW50X3JvdW5kX3BzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nZXRtYW50cHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZ2V0bWFudF9wcyhBLCBCLCBDKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKXwoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldG1hbnRfcHMoVywgVSwgQSwgQiwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8Mil8KEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0bWFudF9wcyhVLCBBLCBCLCBDKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKXwoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX2dldGV4cF9yb3VuZF9wZChBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19nZXRleHBfcm91bmRfcGQoVywgVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRleHBwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRleHBfcm91bmRfcGQoVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRleHBwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2dldGV4cF9wZCAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl91bmRlZmluZWRfcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZ2V0ZXhwX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZ2V0ZXhwX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZ2V0ZXhwX3JvdW5kX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nZXRleHBwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0ZXhwX3JvdW5kX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nZXRleHBwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dldGV4cF9yb3VuZF9wcyhVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0ZXhwcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2dldGV4cF9wcyAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3VuZGVmaW5lZF9wcyAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZ2V0ZXhwX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZ2V0ZXhwX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9pNjRnYXRoZXJfcHMoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2MTZzZigoX192OHNmKV9tbTI1Nl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRnYXRoZXJfcHModjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9nYXRoZXJkaXYxNnNmKChfX3Y4c2YpKF9fbTI1NikodjFfb2xkKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfaTY0Z2F0aGVyX2VwaTMyKGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkaXYxNnNpKChfX3Y4c2kpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2k2NGdhdGhlcl9lcGkzMih2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkaXYxNnNpKChfX3Y4c2kpKF9fbTI1NmkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pNjRnYXRoZXJfcGQoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjhkZigoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRnYXRoZXJfcGQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2OGRmKChfX3Y4ZGYpKF9fbTUxMmQpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pNjRnYXRoZXJfZXBpNjQoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjhkaSgoX192OGRpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRnYXRoZXJfZXBpNjQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2OGRpKChfX3Y4ZGkpKF9fbTUxMmkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pMzJnYXRoZXJfcHMoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2MTZzZigoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmdhdGhlcl9wcyh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjE2c2YoKF9fdjE2c2YpKF9fbTUxMikodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTIpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pMzJnYXRoZXJfZXBpMzIoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjE2c2koKF9fdjE2c2kpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTMyZ2F0aGVyX2VwaTMyKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjE2c2koKF9fdjE2c2kpKF9fbTUxMmkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX2kzMmdhdGhlcl9wZChpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2OGRmKChfX3Y4ZGYpX21tNTEyX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmdhdGhlcl9wZCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXY4ZGYoKF9fdjhkZikoX19tNTEyZCkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX2kzMmdhdGhlcl9lcGk2NChpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2OGRpKChfX3Y4ZGkpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmdhdGhlcl9lcGk2NCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXY4ZGkoKF9fdjhkaSkoX19tNTEyaSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX2k2NHNjYXR0ZXJfcHMoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXYxNnNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRzY2F0dGVyX3BzKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MTZzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9pNjRzY2F0dGVyX2VwaTMyKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MTZzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2k2NHNjYXR0ZXJfZXBpMzIoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXYxNnNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9pNjRzY2F0dGVyX3BkKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OGRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2k2NHNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY4ZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9pNjRzY2F0dGVyX2VwaTY0KGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OGRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2k2NHNjYXR0ZXJfZXBpNjQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY4ZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9pMzJzY2F0dGVyX3BzKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2MTZzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2sxNiktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjE2c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrMTYpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTMyc2NhdHRlcl9lcGkzMihhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjE2c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrMTYpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJzY2F0dGVyX2VwaTMyKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2MTZzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2sxNikobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTMyc2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2OGRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTMyc2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2OGRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZtYWRkX3JvdW5kX3NzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm1hZGRfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbWFkZF9yb3VuZF9zcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkX3NzIChfX20xMjggX19XLCBfX20xMjggX19YLCBfX20xMjggX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2szKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbWFkZF9yb3VuZF9zcyhXLCBYLCBZLCBVLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2szKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1zdWJfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1zdWJfcm91bmRfc3MoQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm1zdWJfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1Yl9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNreigoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2Ztc3ViX3JvdW5kX3NzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2Ztc3ViX3NzIChfX20xMjggX19XLCBfX20xMjggX19YLCBfX20xMjggX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtc3Vic3MzX21hc2szKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbXN1Yl9yb3VuZF9zcyhXLCBYLCBZLCBVLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtc3Vic3MzX21hc2szKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tYWRkX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZubWFkZF9yb3VuZF9zcyhBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbm1hZGRfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbm1hZGRfcm91bmRfc3MoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNreigoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tYWRkX3NzIChfX20xMjggX19XLCBfX20xMjggX19YLCBfX20xMjggX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2szKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tYWRkX3JvdW5kX3NzKFcsIFgsIFksIFUsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzazMoKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tc3ViX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbm1zdWJfcm91bmRfc3MoQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZubXN1Yl9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1zdWJfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm5tc3ViX3JvdW5kX3NzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShDKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfc3MgKF9fbTEyOCBfX1csIF9fbTEyOCBfX1gsIF9fbTEyOCBfX1ksIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1zdWJzczNfbWFzazMoKF9fdjRzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbm1zdWJfcm91bmRfc3MoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnNzM19tYXNrMygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWSksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbWFkZF9yb3VuZF9zZChBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEMpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbWFkZF9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNreigoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm1hZGRfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShDKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkX3NkIChfX20xMjhkIF9fVywgX19tMTI4ZCBfX1gsIF9fbTEyOGQgX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2szKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbWFkZF9yb3VuZF9zZChXLCBYLCBZLCBVLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrMygoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1Yl9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbXN1Yl9yb3VuZF9zZChBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm1zdWJfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm1zdWJfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1Yl9zZCAoX19tMTI4ZCBfX1csIF9fbTEyOGQgX19YLCBfX20xMjhkIF9fWSwgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbXN1YnNkM19tYXNrMygoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1zdWJfcm91bmRfc2QoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1zdWJzZDNfbWFzazMoKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tYWRkX3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZubWFkZF9yb3VuZF9zZChBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm5tYWRkX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbm1hZGRfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1hZGRfc2QgKF9fbTEyOGQgX19XLCBfX20xMjhkIF9fWCwgX19tMTI4ZCBfX1ksIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzazMoKF9fdjJkZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbm1hZGRfcm91bmRfc2QoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzazMoKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubXN1Yl9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm5tc3ViX3JvdW5kX3NkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm5tc3ViX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShCKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tc3ViX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZubXN1Yl9yb3VuZF9zZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNreigoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfc2QgKF9fbTEyOGQgX19XLCBfX20xMjhkIF9fWCwgX19tMTI4ZCBfX1ksIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1zdWJzZDNfbWFzazMoKF9fdjJkZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbm1zdWJfcm91bmRfc2QoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1zdWJzZDNfbWFzazMoKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3Blcm11dGV4X3BkKFgsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcGVybWRmNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKFgpLCAoaW50KShDKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Blcm11dGV4X3BkKFcsIFUsIFgsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4X3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcGVybXV0ZXhfcGQoVSwgWCwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXhfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfcGVybXV0ZXhfZXBpNjQoWCwgQykgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wZXJtZGk1MTIoKF9fdjhkaSkoX19tNTEyaSkoWCksIChpbnQpKEMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcGVybXV0ZXhfZXBpNjQoVywgVSwgWCwgQykgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Blcm11dGV4X2VwaTY0KChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9wZXJtdXRleF9lcGk2NChVLCBYLCBDKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcGVybXV0ZXhfZXBpNjQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXh2YXJfcGQgKF9fbTUxMmkgX19YLCBfX201MTJkIF9fWSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9wZXJtdmFyZGY1MTIoKF9fdjhkZikgX19ZLCAoX192OGRpKSBfX1gpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRleHZhcl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmQgX19ZKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXh2YXJfcGQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXh2YXJfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmQgX19ZKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXh2YXJfcGQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX2VwaTY0IChfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGVybXZhcmRpNTEyKChfX3Y4ZGkpX19ZLCAoX192OGRpKV9fWCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleHZhcl9lcGk2NCAoX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4dmFyX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fWCwKICAgICAgICAgICAgIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9wZXJtdXRleHZhcl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX3BzIChfX201MTJpIF9fWCwgX19tNTEyIF9fWSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJzZjUxMigoX192MTZzZilfX1ksIChfX3YxNnNpKV9fWCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXh2YXJfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTIgX19ZKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZXh2YXJfcHMoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleHZhcl9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMiBfX1kpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9wZXJtdXRleHZhcl9wcyhfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXh2YXJfZXBpMzIgKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wZXJtdmFyc2k1MTIoKF9fdjE2c2kpX19ZLCAoX192MTZzaSlfX1gpOwp9CgojZGVmaW5lIF9tbTUxMl9wZXJtdXRldmFyX2VwaTMyIF9tbTUxMl9wZXJtdXRleHZhcl9lcGkzMgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4dmFyX2VwaTMyIChfX21tYXNrMTYgX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9wZXJtdXRleHZhcl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRleHZhcl9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19YLAogICAgICAgICAgICAgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9wZXJtdXRleHZhcl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfcGVybXV0ZXZhcl9lcGkzMiBfbW01MTJfbWFza19wZXJtdXRleHZhcl9lcGkzMgoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa2FuZCAoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAoX19tbWFzazE2KSBfX2J1aWx0aW5faWEzMl9rYW5kaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa2FuZG4gKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfa2FuZG5oaSAoKF9fbW1hc2sxNikgX19BLCAoX19tbWFzazE2KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9rb3IgKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfa29yaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa29ydGVzdGMgKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfa29ydGVzdGNoaSAoKF9fbW1hc2sxNikgX19BLCAoX19tbWFzazE2KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9rb3J0ZXN0eiAoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9rb3J0ZXN0emhpICgoX19tbWFzazE2KSBfX0EsIChfX21tYXNrMTYpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0Y19tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y2hpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3R6X21hc2sxNl91OChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3R6aGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdF9tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQiwgdW5zaWduZWQgY2hhciAqX19DKSB7CiAgKl9fQyA9ICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3RjaGkoX19BLCBfX0IpOwogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0emhpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa3VucGFja2IgKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfa3VucGNraGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa3hub3IgKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfa3hub3JoaSAoKF9fbW1hc2sxNikgX19BLCAoX19tbWFzazE2KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9reG9yIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2t4b3JoaSAoKF9fbW1hc2sxNikgX19BLCAoX19tbWFzazE2KSBfX0IpOwp9CgojZGVmaW5lIF9rYW5kX21hc2sxNiBfbW01MTJfa2FuZAojZGVmaW5lIF9rYW5kbl9tYXNrMTYgX21tNTEyX2thbmRuCiNkZWZpbmUgX2tub3RfbWFzazE2IF9tbTUxMl9rbm90CiNkZWZpbmUgX2tvcl9tYXNrMTYgX21tNTEyX2tvcgojZGVmaW5lIF9reG5vcl9tYXNrMTYgX21tNTEyX2t4bm9yCiNkZWZpbmUgX2t4b3JfbWFzazE2IF9tbTUxMl9reG9yCgojZGVmaW5lIF9rc2hpZnRsaV9tYXNrMTYoQSwgSSkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2tzaGlmdGxpaGkoKF9fbW1hc2sxNikoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCiNkZWZpbmUgX2tzaGlmdHJpX21hc2sxNihBLCBJKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfa3NoaWZ0cmloaSgoX19tbWFzazE2KShBKSwgKHVuc2lnbmVkIGludCkoSSkpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0bWFzazE2X3UzMihfX21tYXNrMTYgX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfa21vdncoKF9fbW1hc2sxNilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9jdnR1MzJfbWFzazE2KHVuc2lnbmVkIGludCBfX0EpIHsKICByZXR1cm4gKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9rbW92dygoX19tbWFzazE2KV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX2xvYWRfbWFzazE2KF9fbW1hc2sxNiAqX19BKSB7CiAgcmV0dXJuIChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfa21vdncoKihfX21tYXNrMTYgKilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfc3RvcmVfbWFzazE2KF9fbW1hc2sxNiAqX19BLCBfX21tYXNrMTYgX19CKSB7CiAgKihfX21tYXNrMTYgKilfX0EgPSBfX2J1aWx0aW5faWEzMl9rbW92dygoX19tbWFzazE2KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdHJlYW1fc2k1MTIgKHZvaWQgKiBfX1AsIF9fbTUxMmkgX19BKQp7CiAgdHlwZWRlZiBfX3Y4ZGkgX192OGRpX2FsaWduZWQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKICBfX2J1aWx0aW5fbm9udGVtcG9yYWxfc3RvcmUoKF9fdjhkaV9hbGlnbmVkKV9fQSwgKF9fdjhkaV9hbGlnbmVkKilfX1ApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RyZWFtX2xvYWRfc2k1MTIgKHZvaWQgY29uc3QgKl9fUCkKewogIHR5cGVkZWYgX192OGRpIF9fdjhkaV9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5fbm9udGVtcG9yYWxfbG9hZCgoY29uc3QgX192OGRpX2FsaWduZWQgKilfX1ApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RyZWFtX3BkICh2b2lkICpfX1AsIF9fbTUxMmQgX19BKQp7CiAgdHlwZWRlZiBfX3Y4ZGYgX192OGRmX2FsaWduZWQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKICBfX2J1aWx0aW5fbm9udGVtcG9yYWxfc3RvcmUoKF9fdjhkZl9hbGlnbmVkKV9fQSwgKF9fdjhkZl9hbGlnbmVkKilfX1ApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RyZWFtX3BzICh2b2lkICpfX1AsIF9fbTUxMiBfX0EpCnsKICB0eXBlZGVmIF9fdjE2c2YgX192MTZzZl9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3YxNnNmX2FsaWduZWQpX19BLCAoX192MTZzZl9hbGlnbmVkKilfX1ApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jb21wcmVzc19wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGY1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2NvbXByZXNzX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RmNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RpNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jb21wcmVzc19lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkaTUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpCiAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfY29tcHJlc3NzZjUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY29tcHJlc3NfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfY29tcHJlc3NzZjUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbXByZXNzX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2k1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2NvbXByZXNzX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NzaTUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192MTZzaSkKICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCiNkZWZpbmUgX21tX2NtcF9yb3VuZF9zc19tYXNrKFgsIFksIFAsIFIpIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNzX21hc2soKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3JvdW5kX3NzX21hc2soTSwgWCwgWSwgUCwgUikgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc3NfbWFzaygoX192NHNmKShfX20xMjgpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWSksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2NtcF9zc19tYXNrKFgsIFksIFApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNzX21hc2soKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3NzX21hc2soTSwgWCwgWSwgUCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc3NfbWFzaygoX192NHNmKShfX20xMjgpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWSksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX2NtcF9yb3VuZF9zZF9tYXNrKFgsIFksIFAsIFIpIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfcm91bmRfc2RfbWFzayhNLCBYLCBZLCBQLCBSKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jbXBfc2RfbWFzayhYLCBZLCBQKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3NkX21hc2soTSwgWCwgWSwgUCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc2RfbWFzaygoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKLyogQml0IFRlc3QgKi8KCnN0YXRpYyBfX2lubGluZSBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0X2VwaTMyX21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wbmVxX2VwaTMyX21hc2sgKF9tbTUxMl9hbmRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RfZXBpMzJfbWFzayAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0X2VwaTY0X21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wbmVxX2VwaTY0X21hc2sgKF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RfZXBpNjRfbWFzayAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX21hc2tfY21wbmVxX2VwaTY0X21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Rlc3RuX2VwaTMyX21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wZXFfZXBpMzJfbWFzayAoX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdG5fZXBpMzJfbWFzayAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcGVxX2VwaTMyX21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0bl9lcGk2NF9tYXNrIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX2NtcGVxX2VwaTY0X21hc2sgKF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdG5fZXBpNjRfbWFzayAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX21hc2tfY21wZXFfZXBpNjRfbWFzayAoX19VLCBfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlaGR1cF9wcyAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgMSwgMSwgMywgMywgNSwgNSwgNywgNywgOSwgOSwgMTEsIDExLCAxMywgMTMsIDE1LCAxNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92ZWhkdXBfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tb3ZlaGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZlaGR1cF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21vdmVoZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlbGR1cF9wcyAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMiwgMiwgNCwgNCwgNiwgNiwgOCwgOCwgMTAsIDEwLCAxMiwgMTIsIDE0LCAxNCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92ZWxkdXBfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tb3ZlbGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZlbGR1cF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21vdmVsZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdmVfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfbW1fbW92ZV9zcyhfX0EsIF9fQiksIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdmVfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfbW1fbW92ZV9zcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92ZV9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9tbV9tb3ZlX3NkKF9fQSwgX19CKSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdmVfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9tbV9tb3ZlX3NkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZV9zcyAoZmxvYXQgKiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3Jlc3MxMjhfbWFzayAoKF9fdjRzZiAqKV9fVywgX19BLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmVfc2QgKGRvdWJsZSAqIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3Jlc2QxMjhfbWFzayAoKF9fdjJkZiAqKV9fVywgX19BLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIGNvbnN0IGZsb2F0KiBfX0EpCnsKICBfX20xMjggc3JjID0gKF9fdjRzZikgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDQsIDQsIDQpOwoKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbG9hZHNzMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19BLCBzcmMsIF9fVSAmIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkX3NzIChfX21tYXNrOCBfX1UsIGNvbnN0IGZsb2F0KiBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9sb2Fkc3MxMjhfbWFzayAoKGNvbnN0IF9fdjRzZiAqKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVSAmIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBjb25zdCBkb3VibGUqIF9fQSkKewogIF9fbTEyOGQgc3JjID0gKF9fdjJkZikgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMik7CgogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbG9hZHNkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19BLCBzcmMsIF9fVSAmIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZF9zZCAoX19tbWFzazggX19VLCBjb25zdCBkb3VibGUqIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbG9hZHNkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9tbV9zZXR6ZXJvX3BkKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19VICYgMSk7Cn0KCiNkZWZpbmUgX21tNTEyX3NodWZmbGVfZXBpMzIoQSwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2h1ZmQ1MTIoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfZXBpMzIoVywgVSwgQSwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2h1ZmZsZV9lcGkzMigoQSksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVfZXBpMzIoVSwgQSwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2h1ZmZsZV9lcGkzMigoQSksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkZjUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9leHBhbmRfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRmNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkaTUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9leHBhbmRfZXBpNjQgKCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkaTUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kbG9hZHVfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGY1MTJfbWFzayAoKGNvbnN0IF9fdjhkZiAqKV9fUCwKICAgICAgICAgICAgICAoX192OGRmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kbG9hZHVfcGQoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkZjUxMl9tYXNrICgoY29uc3QgX192OGRmICopX19QLAogICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl9zZXR6ZXJvX3BkKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRsb2FkdV9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTUxMl9tYXNrICgoY29uc3QgX192OGRpICopX19QLAogICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9lcGk2NChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRpNTEyX21hc2sgKChjb25zdCBfX3Y4ZGkgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kbG9hZHVfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjUxMl9tYXNrICgoY29uc3QgX192MTZzZiAqKV9fUCwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9wcyhfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNmNTEyX21hc2sgKChjb25zdCBfX3YxNnNmICopX19QLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9tbTUxMl9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRsb2FkdV9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2k1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2kgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kbG9hZHVfZXBpMzIoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2k1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2kgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfZXhwYW5kc2Y1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNmNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19leHBhbmRfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kc2k1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kc2k1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcHNfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnRwczJwZDUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwc19wZChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnBkNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcHNfcGQoVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnRwczJwZDUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cHNfcGQgKF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2YpX19BLCBfX3Y4ZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwc19wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dHBzX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwc19wZCAoX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0cHNfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwc2xvX3BkIChfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfbW01MTJfY3Z0cHNfcGQoX21tNTEyX2Nhc3RwczUxMl9wczI1NihfX0EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cHNsb19wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX21tNTEyX21hc2tfY3Z0cHNfcGQoX19XLCBfX1UsIF9tbTUxMl9jYXN0cHM1MTJfcHMyNTYoX19BKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjhkZikgX19BLAogICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjhkZikgX19BLAogICAgICAgICAgICAgIChfX3Y4ZGYpIF9tbTUxMl9zZXR6ZXJvX3BkICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tb3ZfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAoX192MTZzZikgX19BLAogICAgICAgICAgICAgKF9fdjE2c2YpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21vdl9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIgKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgIChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3NldHplcm9fcHMgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jb21wcmVzc3N0b3JldV9wZCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZWRmNTEyX21hc2sgKChfX3Y4ZGYgKikgX19QLCAoX192OGRmKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NzdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVkaTUxMl9tYXNrICgoX192OGRpICopIF9fUCwgKF9fdjhkaSkgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X3BzICh2b2lkICpfX1AsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3Jlc2Y1MTJfbWFzayAoKF9fdjE2c2YgKikgX19QLCAoX192MTZzZikgX19BLAogICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jb21wcmVzc3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVzaTUxMl9tYXNrICgoX192MTZzaSAqKSBfX1AsIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRzZDJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2N2dF9yb3VuZHNkX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRzZDJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9jdnRfcm91bmRzZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2Qyc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNkX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2N2dHNkMnNzX3JvdW5kX21hc2sgKChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNkX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2N2dHNkMnNzX3JvdW5kX21hc2sgKChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRzc19pMzIgX21tX2N2dHNzX3NpMzIKI2RlZmluZSBfbW1fY3Z0c2RfaTMyIF9tbV9jdnRzZF9zaTMyCiNkZWZpbmUgX21tX2N2dGkzMl9zZCBfbW1fY3Z0c2kzMl9zZAojZGVmaW5lIF9tbV9jdnRpMzJfc3MgX21tX2N2dHNpMzJfc3MKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0c3NfaTY0IF9tbV9jdnRzc19zaTY0CiNkZWZpbmUgX21tX2N2dHNkX2k2NCBfbW1fY3Z0c2Rfc2k2NAojZGVmaW5lIF9tbV9jdnRpNjRfc2QgX21tX2N2dHNpNjRfc2QKI2RlZmluZSBfbW1fY3Z0aTY0X3NzIF9tbV9jdnRzaTY0X3NzCiNlbmRpZgoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kaTY0X3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY3Z0c2kyc2Q2NCgoX192MmRmKShfX20xMjhkKShBKSwgKGxvbmcgbG9uZykoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzaTY0X3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY3Z0c2kyc2Q2NCgoX192MmRmKShfX20xMjhkKShBKSwgKGxvbmcgbG9uZykoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2kzMl9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2kyc3MzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kaTMyX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRzaTJzczMyKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKEIpLCAoaW50KShSKSkpCgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRzaTY0X3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRzaTJzczY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIChsb25nIGxvbmcpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnRfcm91bmRpNjRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHNpMnNzNjQoKF9fdjRzZikoX19tMTI4KShBKSwgKGxvbmcgbG9uZykoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKI2VuZGlmCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzc19zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2N2dHNzMnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kc3Nfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jdnRzczJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfY3Z0X3JvdW5kc3Nfc2QoVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jdnRzczJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNzX3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzczJzZF9yb3VuZF9tYXNrKChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRzc19zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzczJzZF9yb3VuZF9tYXNrKChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dTMyX3NkIChfX20xMjhkIF9fQSwgdW5zaWduZWQgX19CKQp7CiAgX19BWzBdID0gX19COwogIHJldHVybiBfX0E7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHU2NF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2N2dHVzaTJzZDY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpKEIpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dTY0X3NkIChfX20xMjhkIF9fQSwgdW5zaWduZWQgbG9uZyBsb25nIF9fQikKewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kdTMyX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnR1c2kyc3MzMigoX192NHNmKShfX20xMjgpKEEpLCAodW5zaWduZWQgaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHUzMl9zcyAoX19tMTI4IF9fQSwgdW5zaWduZWQgX19CKQp7CiAgX19BWzBdID0gX19COwogIHJldHVybiBfX0E7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHU2NF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0dXNpMnNzNjQoKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpKEIpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1NjRfc3MgKF9fbTEyOCBfX0EsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0IpCnsKICBfX0FbMF0gPSBfX0I7CiAgcmV0dXJuIF9fQTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NldDFfZXBpMzIgKF9fbTUxMmkgX19PLCBfX21tYXNrMTYgX19NLCBpbnQgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3NldDFfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zZXQxX2VwaTY0IChfX201MTJpIF9fTywgX19tbWFzazggX19NLCBsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0MV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19PKTsKfQoKc3RhdGljICBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X2VwaTggKGNoYXIgX19lNjMsIGNoYXIgX19lNjIsIGNoYXIgX19lNjEsIGNoYXIgX19lNjAsIGNoYXIgX19lNTksCiAgICBjaGFyIF9fZTU4LCBjaGFyIF9fZTU3LCBjaGFyIF9fZTU2LCBjaGFyIF9fZTU1LCBjaGFyIF9fZTU0LCBjaGFyIF9fZTUzLAogICAgY2hhciBfX2U1MiwgY2hhciBfX2U1MSwgY2hhciBfX2U1MCwgY2hhciBfX2U0OSwgY2hhciBfX2U0OCwgY2hhciBfX2U0NywKICAgIGNoYXIgX19lNDYsIGNoYXIgX19lNDUsIGNoYXIgX19lNDQsIGNoYXIgX19lNDMsIGNoYXIgX19lNDIsIGNoYXIgX19lNDEsCiAgICBjaGFyIF9fZTQwLCBjaGFyIF9fZTM5LCBjaGFyIF9fZTM4LCBjaGFyIF9fZTM3LCBjaGFyIF9fZTM2LCBjaGFyIF9fZTM1LAogICAgY2hhciBfX2UzNCwgY2hhciBfX2UzMywgY2hhciBfX2UzMiwgY2hhciBfX2UzMSwgY2hhciBfX2UzMCwgY2hhciBfX2UyOSwKICAgIGNoYXIgX19lMjgsIGNoYXIgX19lMjcsIGNoYXIgX19lMjYsIGNoYXIgX19lMjUsIGNoYXIgX19lMjQsIGNoYXIgX19lMjMsCiAgICBjaGFyIF9fZTIyLCBjaGFyIF9fZTIxLCBjaGFyIF9fZTIwLCBjaGFyIF9fZTE5LCBjaGFyIF9fZTE4LCBjaGFyIF9fZTE3LAogICAgY2hhciBfX2UxNiwgY2hhciBfX2UxNSwgY2hhciBfX2UxNCwgY2hhciBfX2UxMywgY2hhciBfX2UxMiwgY2hhciBfX2UxMSwKICAgIGNoYXIgX19lMTAsIGNoYXIgX19lOSwgY2hhciBfX2U4LCBjaGFyIF9fZTcsIGNoYXIgX19lNiwgY2hhciBfX2U1LAogICAgY2hhciBfX2U0LCBjaGFyIF9fZTMsIGNoYXIgX19lMiwgY2hhciBfX2UxLCBjaGFyIF9fZTApIHsKCiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjY0cWkpCiAgICB7X19lMCwgX19lMSwgX19lMiwgX19lMywgX19lNCwgX19lNSwgX19lNiwgX19lNywKICAgICBfX2U4LCBfX2U5LCBfX2UxMCwgX19lMTEsIF9fZTEyLCBfX2UxMywgX19lMTQsIF9fZTE1LAogICAgIF9fZTE2LCBfX2UxNywgX19lMTgsIF9fZTE5LCBfX2UyMCwgX19lMjEsIF9fZTIyLCBfX2UyMywKICAgICBfX2UyNCwgX19lMjUsIF9fZTI2LCBfX2UyNywgX19lMjgsIF9fZTI5LCBfX2UzMCwgX19lMzEsCiAgICAgX19lMzIsIF9fZTMzLCBfX2UzNCwgX19lMzUsIF9fZTM2LCBfX2UzNywgX19lMzgsIF9fZTM5LAogICAgIF9fZTQwLCBfX2U0MSwgX19lNDIsIF9fZTQzLCBfX2U0NCwgX19lNDUsIF9fZTQ2LCBfX2U0NywKICAgICBfX2U0OCwgX19lNDksIF9fZTUwLCBfX2U1MSwgX19lNTIsIF9fZTUzLCBfX2U1NCwgX19lNTUsCiAgICAgX19lNTYsIF9fZTU3LCBfX2U1OCwgX19lNTksIF9fZTYwLCBfX2U2MSwgX19lNjIsIF9fZTYzfTsKfQoKc3RhdGljICBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X2VwaTE2KHNob3J0IF9fZTMxLCBzaG9ydCBfX2UzMCwgc2hvcnQgX19lMjksIHNob3J0IF9fZTI4LAogICAgc2hvcnQgX19lMjcsIHNob3J0IF9fZTI2LCBzaG9ydCBfX2UyNSwgc2hvcnQgX19lMjQsIHNob3J0IF9fZTIzLAogICAgc2hvcnQgX19lMjIsIHNob3J0IF9fZTIxLCBzaG9ydCBfX2UyMCwgc2hvcnQgX19lMTksIHNob3J0IF9fZTE4LAogICAgc2hvcnQgX19lMTcsIHNob3J0IF9fZTE2LCBzaG9ydCBfX2UxNSwgc2hvcnQgX19lMTQsIHNob3J0IF9fZTEzLAogICAgc2hvcnQgX19lMTIsIHNob3J0IF9fZTExLCBzaG9ydCBfX2UxMCwgc2hvcnQgX19lOSwgc2hvcnQgX19lOCwKICAgIHNob3J0IF9fZTcsIHNob3J0IF9fZTYsIHNob3J0IF9fZTUsIHNob3J0IF9fZTQsIHNob3J0IF9fZTMsCiAgICBzaG9ydCBfX2UyLCBzaG9ydCBfX2UxLCBzaG9ydCBfX2UwKSB7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjMyaGkpCiAgICB7X19lMCwgX19lMSwgX19lMiwgX19lMywgX19lNCwgX19lNSwgX19lNiwgX19lNywKICAgICBfX2U4LCBfX2U5LCBfX2UxMCwgX19lMTEsIF9fZTEyLCBfX2UxMywgX19lMTQsIF9fZTE1LAogICAgIF9fZTE2LCBfX2UxNywgX19lMTgsIF9fZTE5LCBfX2UyMCwgX19lMjEsIF9fZTIyLCBfX2UyMywKICAgICBfX2UyNCwgX19lMjUsIF9fZTI2LCBfX2UyNywgX19lMjgsIF9fZTI5LCBfX2UzMCwgX19lMzEgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXRfZXBpMzIgKGludCBfX0EsIGludCBfX0IsIGludCBfX0MsIGludCBfX0QsCiAgICAgaW50IF9fRSwgaW50IF9fRiwgaW50IF9fRywgaW50IF9fSCwKICAgICBpbnQgX19JLCBpbnQgX19KLCBpbnQgX19LLCBpbnQgX19MLAogICAgIGludCBfX00sIGludCBfX04sIGludCBfX08sIGludCBfX1ApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyaSkoX192MTZzaSkKICB7IF9fUCwgX19PLCBfX04sIF9fTSwgX19MLCBfX0ssIF9fSiwgX19JLAogICAgX19ILCBfX0csIF9fRiwgX19FLCBfX0QsIF9fQywgX19CLCBfX0EgfTsKfQoKI2RlZmluZSBfbW01MTJfc2V0cl9lcGkzMihlMCxlMSxlMixlMyxlNCxlNSxlNixlNywgICAgICAgICAgIFwKICAgICAgIGU4LGU5LGUxMCxlMTEsZTEyLGUxMyxlMTQsZTE1KSAgICAgICAgICBcCiAgX21tNTEyX3NldF9lcGkzMigoZTE1KSwoZTE0KSwoZTEzKSwoZTEyKSwoZTExKSwoZTEwKSwoZTkpLChlOCksKGU3KSwoZTYpLCBcCiAgICAgICAgICAgICAgICAgICAoZTUpLChlNCksKGUzKSwoZTIpLChlMSksKGUwKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXRfZXBpNjQgKGxvbmcgbG9uZyBfX0EsIGxvbmcgbG9uZyBfX0IsIGxvbmcgbG9uZyBfX0MsCiAgICAgbG9uZyBsb25nIF9fRCwgbG9uZyBsb25nIF9fRSwgbG9uZyBsb25nIF9fRiwKICAgICBsb25nIGxvbmcgX19HLCBsb25nIGxvbmcgX19IKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpIChfX3Y4ZGkpCiAgeyBfX0gsIF9fRywgX19GLCBfX0UsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXRyX2VwaTY0KGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3KSAgICAgICAgICAgXAogIF9tbTUxMl9zZXRfZXBpNjQoKGU3KSwoZTYpLChlNSksKGU0KSwoZTMpLChlMiksKGUxKSwoZTApKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldF9wZCAoZG91YmxlIF9fQSwgZG91YmxlIF9fQiwgZG91YmxlIF9fQywgZG91YmxlIF9fRCwKICAgICAgICBkb3VibGUgX19FLCBkb3VibGUgX19GLCBkb3VibGUgX19HLCBkb3VibGUgX19IKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmQpCiAgeyBfX0gsIF9fRywgX19GLCBfX0UsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXRyX3BkKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3KSAgICAgICAgICAgICAgXAogIF9tbTUxMl9zZXRfcGQoKGU3KSwoZTYpLChlNSksKGU0KSwoZTMpLChlMiksKGUxKSwoZTApKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X3BzIChmbG9hdCBfX0EsIGZsb2F0IF9fQiwgZmxvYXQgX19DLCBmbG9hdCBfX0QsCiAgICAgICAgZmxvYXQgX19FLCBmbG9hdCBfX0YsIGZsb2F0IF9fRywgZmxvYXQgX19ILAogICAgICAgIGZsb2F0IF9fSSwgZmxvYXQgX19KLCBmbG9hdCBfX0ssIGZsb2F0IF9fTCwKICAgICAgICBmbG9hdCBfX00sIGZsb2F0IF9fTiwgZmxvYXQgX19PLCBmbG9hdCBfX1ApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyKQogIHsgX19QLCBfX08sIF9fTiwgX19NLCBfX0wsIF9fSywgX19KLCBfX0ksCiAgICBfX0gsIF9fRywgX19GLCBfX0UsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXRyX3BzKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCxlMTEsZTEyLGUxMyxlMTQsZTE1KSBcCiAgX21tNTEyX3NldF9wcygoZTE1KSwoZTE0KSwoZTEzKSwoZTEyKSwoZTExKSwoZTEwKSwoZTkpLChlOCksKGU3KSwoZTYpLChlNSksIFwKICAgICAgICAgICAgICAgIChlNCksKGUzKSwoZTIpLChlMSksKGUwKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Fic19wcyhfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX21tNTEyX2FuZF9lcGkzMihfbW01MTJfc2V0MV9lcGkzMigweDdGRkZGRkZGKSwoX19tNTEyaSlfX0EpIDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hYnNfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fSywgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9tbTUxMl9tYXNrX2FuZF9lcGkzMigoX19tNTEyaSlfX1csIF9fSywgX21tNTEyX3NldDFfZXBpMzIoMHg3RkZGRkZGRiksKF9fbTUxMmkpX19BKSA7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX21tNTEyX2FuZF9lcGk2NChfbW01MTJfc2V0MV9lcGk2NCgweDdGRkZGRkZGRkZGRkZGRkYpLChfX3Y4ZGkpX19BKSA7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Fic19wZChfX201MTJkIF9fVywgX19tbWFzazggX19LLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfbW01MTJfbWFza19hbmRfZXBpNjQoKF9fdjhkaSlfX1csIF9fSywgX21tNTEyX3NldDFfZXBpNjQoMHg3RkZGRkZGRkZGRkZGRkZGKSwoX192OGRpKV9fQSk7Cn0KCi8qIFZlY3Rvci1yZWR1Y3Rpb24gYXJpdGhtZXRpYyBhY2NlcHRzIHZlY3RvcnMgYXMgaW5wdXRzIGFuZCBwcm9kdWNlcyBzY2FsYXJzIGFzCiAqIG91dHB1dHMuIFRoaXMgY2xhc3Mgb2YgdmVjdG9yIG9wZXJhdGlvbiBmb3JtcyB0aGUgYmFzaXMgb2YgbWFueSBzY2llbnRpZmljCiAqIGNvbXB1dGF0aW9ucy4gSW4gdmVjdG9yLXJlZHVjdGlvbiBhcml0aG1ldGljLCB0aGUgZXZhbHVhdGlvbiBvcmRlciBpcwogKiBpbmRlcGVuZGVudCBvZiB0aGUgb3JkZXIgb2YgdGhlIGlucHV0IGVsZW1lbnRzIG9mIFYuCgogKiBGb3IgZmxvYXRpbmctcG9pbnQgaW50cmluc2ljczoKICogMS4gV2hlbiB1c2luZyBmYWRkL2ZtdWwgaW50cmluc2ljcywgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgd2l0aGluIHRoZQogKiB2ZWN0b3IgaXMgdW5zcGVjaWZpZWQgKGFzc29jaWF0aXZlIG1hdGgpLgogKiAyLiBXaGVuIHVzaW5nIGZtaW4vZm1heCBpbnRyaW5zaWNzLCBOYU4gb3IgLTAuMCBlbGVtZW50cyB3aXRoaW4gdGhlIHZlY3RvcgogKiBwcm9kdWNlIHVuc3BlY2lmaWVkIHJlc3VsdHMuCgogKiBVc2VkIGJpc2VjdGlvbiBtZXRob2QuIEF0IGVhY2ggc3RlcCwgd2UgcGFydGl0aW9uIHRoZSB2ZWN0b3Igd2l0aCBwcmV2aW91cwogKiBzdGVwIGluIGhhbGYsIGFuZCB0aGUgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBvbiBpdHMgdHdvIGhhbHZlcy4KICogVGhpcyB0YWtlcyBsb2cyKG4pIHN0ZXBzIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdmVjdG9yLgogKi8KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JlZHVjZV9hZGRfZXBpNjQoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FkZF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JlZHVjZV9tdWxfZXBpNjQoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX211bF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JlZHVjZV9hbmRfZXBpNjQoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FuZF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JlZHVjZV9vcl9lcGk2NChfX201MTJpIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfb3JfcTUxMihfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9hZGRfZXBpNjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVykgewogIF9fVyA9IF9tbTUxMl9tYXNrel9tb3ZfZXBpNjQoX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfYWRkX3E1MTIoX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbXVsX2VwaTY0KF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza19tb3ZfZXBpNjQoX21tNTEyX3NldDFfZXBpNjQoMSksIF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX211bF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX2FuZF9lcGk2NChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2tfbW92X2VwaTY0KF9tbTUxMl9zZXQxX2VwaTY0KH4wVUxMKSwgX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfYW5kX3E1MTIoX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2Vfb3JfZXBpNjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVykgewogIF9fVyA9IF9tbTUxMl9tYXNrel9tb3ZfZXBpNjQoX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfb3JfcTUxMihfX1cpOwp9CgovLyAtMC4wIGlzIHVzZWQgdG8gaWdub3JlIHRoZSBzdGFydCB2YWx1ZSBzaW5jZSBpdCBpcyB0aGUgbmV1dHJhbCB2YWx1ZSBvZgovLyBmbG9hdGluZyBwb2ludCBhZGRpdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0bwovLyBodHRwczovL2xsdm0ub3JnL2RvY3MvTGFuZ1JlZi5odG1sI2xsdm0tdmVjdG9yLXJlZHVjZS1mYWRkLWludHJpbnNpYwpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2VfYWRkX3BkKF9fbTUxMmQgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mYWRkX3BkNTEyKC0wLjAsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JlZHVjZV9tdWxfcGQoX19tNTEyZCBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtdWxfcGQ1MTIoMS4wLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9hZGRfcGQoX19tbWFzazggX19NLCBfX201MTJkIF9fVykgewogIF9fVyA9IF9tbTUxMl9tYXNrel9tb3ZfcGQoX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZmFkZF9wZDUxMigtMC4wLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tdWxfcGQoX19tbWFzazggX19NLCBfX201MTJkIF9fVykgewogIF9fVyA9IF9tbTUxMl9tYXNrX21vdl9wZChfbW01MTJfc2V0MV9wZCgxLjApLCBfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BkNTEyKDEuMCwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX2FkZF9lcGkzMihfX201MTJpIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfYWRkX2Q1MTIoKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX211bF9lcGkzMihfX201MTJpIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfbXVsX2Q1MTIoKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX2FuZF9lcGkzMihfX201MTJpIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfYW5kX2Q1MTIoKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX29yX2VwaTMyKF9fbTUxMmkgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9vcl9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX2FkZF9lcGkzMiggX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X2VwaTMyKF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FkZF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX211bF9lcGkzMiggX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza19tb3ZfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIoMSksIF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX211bF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX2FuZF9lcGkzMiggX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza19tb3ZfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIofjBVKSwgX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfYW5kX2Q1MTIoKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2Vfb3JfZXBpMzIoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X2VwaTMyKF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX29yX2Q1MTIoKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfYWRkX3BzKF9fbTUxMiBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcHM1MTIoLTAuMGYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX211bF9wcyhfX201MTIgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BzNTEyKDEuMGYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfYWRkX3BzKF9fbW1hc2sxNiBfX00sIF9fbTUxMiBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X3BzKF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcHM1MTIoLTAuMGYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbXVsX3BzKF9fbW1hc2sxNiBfX00sIF9fbTUxMiBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza19tb3ZfcHMoX21tNTEyX3NldDFfcHMoMS4wZiksIF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtdWxfcHM1MTIoMS4wZiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21heF9lcGk2NChfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21heF9xNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfZXB1NjQoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtYXhfcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWluX2VwaTY0KF9fbTUxMmkgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9zbWluX3E1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9lcHU2NChfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1pbl9xNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21heF9lcGk2NChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X2VwaTY0KF9tbTUxMl9zZXQxX2VwaTY0KC1fX0xPTkdfTE9OR19NQVhfXyAtIDFMTCksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtYXhfcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tYXhfZXB1NjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrel9tb3ZfZXBpNjQoX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1heF9xNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21pbl9lcGk2NChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X2VwaTY0KF9tbTUxMl9zZXQxX2VwaTY0KF9fTE9OR19MT05HX01BWF9fKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21pbl9xNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21pbl9lcHU2NChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X2VwaTY0KF9tbTUxMl9zZXQxX2VwaTY0KH4wVUxMKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1pbl9xNTEyKF9fVik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21heF9lcGkzMihfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21heF9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfZXB1MzIoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtYXhfZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWluX2VwaTMyKF9fbTUxMmkgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9zbWluX2Q1MTIoKF9fdjE2c2kpX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9lcHUzMihfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1pbl9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21heF9lcGkzMihfX21tYXNrMTYgX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9lcGkzMihfbW01MTJfc2V0MV9lcGkzMigtX19JTlRfTUFYX18gLSAxKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21heF9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21heF9lcHUzMihfX21tYXNrMTYgX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrel9tb3ZfZXBpMzIoX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1heF9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21pbl9lcGkzMihfX21tYXNrMTYgX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9lcGkzMihfbW01MTJfc2V0MV9lcGkzMihfX0lOVF9NQVhfXyksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtaW5fZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9taW5fZXB1MzIoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIofjBVKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfdW1pbl9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfcGQoX19tNTEyZCBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtYXhfcGQ1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9wZChfX201MTJkIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9wZDUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tYXhfcGQoX19tbWFzazggX19NLCBfX201MTJkIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9wZChfbW01MTJfc2V0MV9wZCgtX19idWlsdGluX2luZigpKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1heF9wZDUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9taW5fcGQoX19tbWFzazggX19NLCBfX201MTJkIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9wZChfbW01MTJfc2V0MV9wZChfX2J1aWx0aW5faW5mKCkpLCBfX00sIF9fVik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWluX3BkNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21heF9wcyhfX201MTIgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BzNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9wcyhfX201MTIgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWluX3BzNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWF4X3BzKF9fbW1hc2sxNiBfX00sIF9fbTUxMiBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfcHMoX21tNTEyX3NldDFfcHMoLV9fYnVpbHRpbl9pbmZmKCkpLCBfX00sIF9fVik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BzNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWluX3BzKF9fbW1hc2sxNiBfX00sIF9fbTUxMiBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfcHMoX21tNTEyX3NldDFfcHMoX19idWlsdGluX2luZmYoKSksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtaW5fcHM1MTIoX19WKTsKfQoKLy8vIE1vdmVzIHRoZSBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mIFsxNiB4IGkzMl0gdG8gYQovLy8gICAgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgdmVjdG9yIG9mIFsxNiB4IGkzMl0uIFRoZSBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIGFyZSBtb3ZlZCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAzMi1iaXQgc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNpNTEyX3NpMzIoX19tNTEyaSBfX0EpIHsKICBfX3YxNnNpIF9fYiA9IChfX3YxNnNpKV9fQTsKICByZXR1cm4gX19iWzBdOwp9CgovLy8gTG9hZHMgOCBkb3VibGUtcHJlY2lzaW9uICg2NC1iaXQpIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIHN0b3JlZCBhdCBtZW1vcnkKLy8vIGxvY2F0aW9ucyBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIgYXQgcGFja2VkIDMyLWJpdCBpbnRlZ2VyIGluZGljZXMKLy8vIHN0b3JlZCBpbiB0aGUgbG93ZXIgaGFsZiBvZiBcYSB2aW5kZXggc2NhbGVkIGJ5IFxhIHNjYWxlIHRoZW0gaW4gZHN0LgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkdBVEhFUkRQRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICBkc3RbaSs2MzppXSA6PSBNRU1bYWRkcis2MzphZGRyXQovLy8gRU5ERk9SCi8vLyBkc3RbTUFYOjUxMl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9pMzJsb2dhdGhlcl9wZCh2aW5kZXgsIGJhc2VfYWRkciwgc2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9pMzJnYXRoZXJfcGQoX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAoYmFzZV9hZGRyKSwgKHNjYWxlKSkKCi8vLyBMb2FkcyA4IGRvdWJsZS1wcmVjaXNpb24gKDY0LWJpdCkgZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgZnJvbSBtZW1vcnkKLy8vIHN0YXJ0aW5nIGF0IGxvY2F0aW9uIFxhIGJhc2VfYWRkciBhdCBwYWNrZWQgMzItYml0IGludGVnZXIgaW5kaWNlcyBzdG9yZWQgaW4KLy8vIHRoZSBsb3dlciBoYWxmIG9mIFxhIHZpbmRleCBzY2FsZWQgYnkgXGEgc2NhbGUgaW50byBkc3QgdXNpbmcgd3JpdGVtYXNrCi8vLyBcYSBtYXNrIChlbGVtZW50cyBhcmUgY29waWVkIGZyb20gXGEgc3JjIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbWFzayBiaXQgaXMKLy8vIG5vdCBzZXQpLgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkdBVEhFUkRQRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBJRiBtYXNrW2pdCi8vLyAgICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgICBkc3RbaSs2MzppXSA6PSBNRU1bYWRkcis2MzphZGRyXQovLy8gICBFTFNFCi8vLyAgICAgZHN0W2krNjM6aV0gOj0gc3JjW2krNjM6aV0KLy8vICAgRkkKLy8vIEVOREZPUgovLy8gZHN0W01BWDo1MTJdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfbWFza19pMzJsb2dhdGhlcl9wZChzcmMsIG1hc2ssIHZpbmRleCwgYmFzZV9hZGRyLCBzY2FsZSkgICAgICAgIFwKICBfbW01MTJfbWFza19pMzJnYXRoZXJfcGQoKHNyYyksIChtYXNrKSwgX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VfYWRkciksIChzY2FsZSkpCgovLy8gTG9hZHMgOCA2NC1iaXQgaW50ZWdlciBlbGVtZW50cyBmcm9tIG1lbW9yeSBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIKLy8vIGF0IHBhY2tlZCAzMi1iaXQgaW50ZWdlciBpbmRpY2VzIHN0b3JlZCBpbiB0aGUgbG93ZXIgaGFsZiBvZiBcYSB2aW5kZXgKLy8vIHNjYWxlZCBieSBcYSBzY2FsZSBhbmQgc3RvcmVzIHRoZW0gaW4gZHN0LgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBHQVRIRVJEUSA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICBkc3RbaSs2MzppXSA6PSBNRU1bYWRkcis2MzphZGRyXQovLy8gRU5ERk9SCi8vLyBkc3RbTUFYOjUxMl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9pMzJsb2dhdGhlcl9lcGk2NCh2aW5kZXgsIGJhc2VfYWRkciwgc2NhbGUpICAgICAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9pMzJnYXRoZXJfZXBpNjQoX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAoYmFzZV9hZGRyKSwgKHNjYWxlKSkKCi8vLyBMb2FkcyA4IDY0LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIGZyb20gbWVtb3J5IHN0YXJ0aW5nIGF0IGxvY2F0aW9uIFxhIGJhc2VfYWRkcgovLy8gYXQgcGFja2VkIDMyLWJpdCBpbnRlZ2VyIGluZGljZXMgc3RvcmVkIGluIHRoZSBsb3dlciBoYWxmIG9mIFxhIHZpbmRleAovLy8gc2NhbGVkIGJ5IFxhIHNjYWxlIGFuZCBzdG9yZXMgdGhlbSBpbiBkc3QgdXNpbmcgd3JpdGVtYXNrIFxhIG1hc2sgKGVsZW1lbnRzCi8vLyBhcmUgY29waWVkIGZyb20gXGEgc3JjIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbWFzayBiaXQgaXMgbm90IHNldCkuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEdBVEhFUkRRIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEZPUiBqIDo9IDAgdG8gNwovLy8gICBpIDo9IGoqNjQKLy8vICAgbSA6PSBqKjMyCi8vLyAgIElGIG1hc2tbal0KLy8vICAgICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICAgIGRzdFtpKzYzOmldIDo9IE1FTVthZGRyKzYzOmFkZHJdCi8vLyAgIEVMU0UKLy8vICAgICBkc3RbaSs2MzppXSA6PSBzcmNbaSs2MzppXQovLy8gICBGSQovLy8gRU5ERk9SCi8vLyBkc3RbTUFYOjUxMl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmxvZ2F0aGVyX2VwaTY0KHNyYywgbWFzaywgdmluZGV4LCBiYXNlX2FkZHIsIHNjYWxlKSAgICAgXAogIF9tbTUxMl9tYXNrX2kzMmdhdGhlcl9lcGk2NCgoc3JjKSwgKG1hc2spLCBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KHZpbmRleCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFzZV9hZGRyKSwgKHNjYWxlKSkKCi8vLyBTdG9yZXMgOCBwYWNrZWQgZG91YmxlLXByZWNpc2lvbiAoNjQtYml0KSBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBpbiBcYSB2MQovLy8gYW5kIHRvIG1lbW9yeSBsb2NhdGlvbnMgc3RhcnRpbmcgYXQgbG9jYXRpb24gXGEgYmFzZV9hZGRyIGF0IHBhY2tlZCAzMi1iaXQKLy8vIGludGVnZXIgaW5kaWNlcyBzdG9yZWQgaW4gXGEgdmluZGV4IHNjYWxlZCBieSBcYSBzY2FsZS4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTQ0FUVEVSRFBEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEZPUiBqIDo9IDAgdG8gNwovLy8gICBpIDo9IGoqNjQKLy8vICAgbSA6PSBqKjMyCi8vLyAgIGFkZHIgOj0gYmFzZV9hZGRyICsgU2lnbkV4dGVuZDY0KHZpbmRleFttKzMxOm1dKSAqIFplcm9FeHRlbmQ2NChzY2FsZSkgKiA4Ci8vLyAgIE1FTVthZGRyKzYzOmFkZHJdIDo9IHYxW2krNjM6aV0KLy8vIEVOREZPUgovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9pMzJsb3NjYXR0ZXJfcGQoYmFzZV9hZGRyLCB2aW5kZXgsIHYxLCBzY2FsZSkgICAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9pMzJzY2F0dGVyX3BkKChiYXNlX2FkZHIpLCBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KHZpbmRleCksICh2MSksIChzY2FsZSkpCgovLy8gU3RvcmVzIDggcGFja2VkIGRvdWJsZS1wcmVjaXNpb24gKDY0LWJpdCkgZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgaW4gXGEgdjEKLy8vIHRvIG1lbW9yeSBsb2NhdGlvbnMgc3RhcnRpbmcgYXQgbG9jYXRpb24gXGEgYmFzZV9hZGRyIGF0IHBhY2tlZCAzMi1iaXQKLy8vIGludGVnZXIgaW5kaWNlcyBzdG9yZWQgaW4gXGEgdmluZGV4IHNjYWxlZCBieSBcYSBzY2FsZS4gT25seSB0aG9zZSBlbGVtZW50cwovLy8gd2hvc2UgY29ycmVzcG9uZGluZyBtYXNrIGJpdCBpcyBzZXQgaW4gd3JpdGVtYXNrIFxhIG1hc2sgYXJlIHdyaXR0ZW4gdG8KLy8vIG1lbW9yeS4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTQ0FUVEVSRFBEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEZPUiBqIDo9IDAgdG8gNwovLy8gICBpIDo9IGoqNjQKLy8vICAgbSA6PSBqKjMyCi8vLyAgIElGIG1hc2tbal0KLy8vICAgICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICAgIE1FTVthZGRyKzYzOmFkZHJdIDo9IGFbaSs2MzppXQovLy8gICBGSQovLy8gRU5ERk9SCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tNTEyX21hc2tfaTMybG9zY2F0dGVyX3BkKGJhc2VfYWRkciwgbWFzaywgdmluZGV4LCB2MSwgc2NhbGUpICAgICAgICBcCiAgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9wZCgoYmFzZV9hZGRyKSwgKG1hc2spLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KHZpbmRleCksICh2MSksIChzY2FsZSkpCgovLy8gU3RvcmVzIDggcGFja2VkIDY0LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIGxvY2F0ZWQgaW4gXGEgdjEgYW5kIHN0b3JlcyB0aGVtIGluCi8vLyBtZW1vcnkgbG9jYXRpb25zIHN0YXJ0aW5nIGF0IGxvY2F0aW9uIFxhIGJhc2VfYWRkciBhdCBwYWNrZWQgMzItYml0IGludGVnZXIKLy8vIGluZGljZXMgc3RvcmVkIGluIFxhIHZpbmRleCBzY2FsZWQgYnkgXGEgc2NhbGUuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNDQVRURVJEUSA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICBNRU1bYWRkcis2MzphZGRyXSA6PSBhW2krNjM6aV0KLy8vIEVOREZPUgovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9pMzJsb3NjYXR0ZXJfZXBpNjQoYmFzZV9hZGRyLCB2aW5kZXgsIHYxLCBzY2FsZSkgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9pMzJzY2F0dGVyX2VwaTY0KChiYXNlX2FkZHIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYodmluZGV4KSwgKHYxKSwgKHNjYWxlKSkKCi8vLyBTdG9yZXMgOCBwYWNrZWQgNjQtYml0IGludGVnZXIgZWxlbWVudHMgbG9jYXRlZCBpbiBhIGFuZCBzdG9yZXMgdGhlbSBpbgovLy8gbWVtb3J5IGxvY2F0aW9ucyBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIgYXQgcGFja2VkIDMyLWJpdCBpbnRlZ2VyCi8vLyBpbmRpY2VzIHN0b3JlZCBpbiBcYSB2aW5kZXggc2NhbGVkIGJ5IHNjYWxlIHVzaW5nIHdyaXRlbWFzayBcYSBtYXNrIChlbGVtZW50cwovLy8gd2hvc2UgY29ycmVzcG9uZGluZyBtYXNrIGJpdCBpcyBub3Qgc2V0IGFyZSBub3Qgd3JpdHRlbiB0byBtZW1vcnkpLgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTQ0FUVEVSRFEgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gRk9SIGogOj0gMCB0byA3Ci8vLyAgIGkgOj0gaio2NAovLy8gICBtIDo9IGoqMzIKLy8vICAgSUYgbWFza1tqXQovLy8gICAgIGFkZHIgOj0gYmFzZV9hZGRyICsgU2lnbkV4dGVuZDY0KHZpbmRleFttKzMxOm1dKSAqIFplcm9FeHRlbmQ2NChzY2FsZSkgKiA4Ci8vLyAgICAgTUVNW2FkZHIrNjM6YWRkcl0gOj0gYVtpKzYzOmldCi8vLyAgIEZJCi8vLyBFTkRGT1IKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfbWFza19pMzJsb3NjYXR0ZXJfZXBpNjQoYmFzZV9hZGRyLCBtYXNrLCB2aW5kZXgsIHYxLCBzY2FsZSkgICAgIFwKICBfbW01MTJfbWFza19pMzJzY2F0dGVyX2VwaTY0KChiYXNlX2FkZHIpLCAobWFzayksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYodmluZGV4KSwgKHYxKSwgKHNjYWxlKSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19BVlg1MTJGSU5UUklOX0ggKi8KAC8qPT09LS0tLS0tLS0tLS0gYXZ4NTEyZnAxNmludHJpbi5oIC0gQVZYNTEyLUZQMTYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJmcDE2aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkZQMTZJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyRlAxNklOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCnR5cGVkZWYgX0Zsb2F0MTYgX192MzJoZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpLCBfX2FsaWduZWRfXyg2NCkpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX201MTJoIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDY0KSkpOwp0eXBlZGVmIF9GbG9hdDE2IF9fbTUxMmhfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpLCBfX2FsaWduZWRfXygxKSkpOwp0eXBlZGVmIF9GbG9hdDE2IF9fdjhoZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX20xMjhoIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIF9GbG9hdDE2IF9fbTEyOGhfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxKSkpOwp0eXBlZGVmIF9GbG9hdDE2IF9fdjE2aGYgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgX0Zsb2F0MTYgX19tMjU2aCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMzIpLCBfX2FsaWduZWRfXygzMikpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX20yNTZoX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMSkpKTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmZwMTYiKSwgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmZwMTYiKSwgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmZwMTYiKSwgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY3Z0c2hfaChfX201MTJoIF9fYSkgewogIHJldHVybiBfX2FbMF07Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fc2V0emVyb19waCh2b2lkKSB7CiAgcmV0dXJuIChfX20xMjhoKXswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfc2V0emVyb19waCh2b2lkKSB7CiAgcmV0dXJuIChfX20yNTZoKXswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwKICAgICAgICAgICAgICAgICAgIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wfTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3VuZGVmaW5lZF9waCh2b2lkKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3VuZGVmMjU2KCk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfc2V0emVyb19waCh2b2lkKSB7CiAgcmV0dXJuIChfX201MTJoKXswLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwKICAgICAgICAgICAgICAgICAgIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLAogICAgICAgICAgICAgICAgICAgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wfTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3VuZGVmaW5lZF9waCh2b2lkKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3VuZGVmMTI4KCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl91bmRlZmluZWRfcGgodm9pZCkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl91bmRlZjUxMigpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3NldDFfcGgoX0Zsb2F0MTYgX19oKSB7CiAgcmV0dXJuIChfX201MTJoKShfX3YzMmhmKXtfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X3BoKF9GbG9hdDE2IF9faDEsIF9GbG9hdDE2IF9faDIsIF9GbG9hdDE2IF9faDMsIF9GbG9hdDE2IF9faDQsCiAgICAgICAgICAgICAgX0Zsb2F0MTYgX19oNSwgX0Zsb2F0MTYgX19oNiwgX0Zsb2F0MTYgX19oNywgX0Zsb2F0MTYgX19oOCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2g5LCBfRmxvYXQxNiBfX2gxMCwgX0Zsb2F0MTYgX19oMTEsIF9GbG9hdDE2IF9faDEyLAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDEzLCBfRmxvYXQxNiBfX2gxNCwgX0Zsb2F0MTYgX19oMTUsIF9GbG9hdDE2IF9faDE2LAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDE3LCBfRmxvYXQxNiBfX2gxOCwgX0Zsb2F0MTYgX19oMTksIF9GbG9hdDE2IF9faDIwLAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDIxLCBfRmxvYXQxNiBfX2gyMiwgX0Zsb2F0MTYgX19oMjMsIF9GbG9hdDE2IF9faDI0LAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDI1LCBfRmxvYXQxNiBfX2gyNiwgX0Zsb2F0MTYgX19oMjcsIF9GbG9hdDE2IF9faDI4LAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDI5LCBfRmxvYXQxNiBfX2gzMCwgX0Zsb2F0MTYgX19oMzEsIF9GbG9hdDE2IF9faDMyKSB7CiAgcmV0dXJuIChfX201MTJoKShfX3YzMmhmKXtfX2gzMiwgX19oMzEsIF9faDMwLCBfX2gyOSwgX19oMjgsIF9faDI3LCBfX2gyNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faDI1LCBfX2gyNCwgX19oMjMsIF9faDIyLCBfX2gyMSwgX19oMjAsIF9faDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oMTgsIF9faDE3LCBfX2gxNiwgX19oMTUsIF9faDE0LCBfX2gxMywgX19oMTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gxMSwgX19oMTAsIF9faDksICBfX2g4LCAgX19oNywgIF9faDYsICBfX2g1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oNCwgIF9faDMsICBfX2gyLCAgX19oMX07Cn0KCiNkZWZpbmUgX21tNTEyX3NldHJfcGgoaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaDcsIGg4LCBoOSwgaDEwLCBoMTEsIGgxMiwgaDEzLCBcCiAgICAgICAgICAgICAgICAgICAgICAgaDE0LCBoMTUsIGgxNiwgaDE3LCBoMTgsIGgxOSwgaDIwLCBoMjEsIGgyMiwgaDIzLCBoMjQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgaDI1LCBoMjYsIGgyNywgaDI4LCBoMjksIGgzMCwgaDMxLCBoMzIpICAgICAgICAgICAgICAgICBcCiAgX21tNTEyX3NldF9waCgoaDMyKSwgKGgzMSksIChoMzApLCAoaDI5KSwgKGgyOCksIChoMjcpLCAoaDI2KSwgKGgyNSksIChoMjQpLCBcCiAgICAgICAgICAgICAgICAoaDIzKSwgKGgyMiksIChoMjEpLCAoaDIwKSwgKGgxOSksIChoMTgpLCAoaDE3KSwgKGgxNiksIChoMTUpLCBcCiAgICAgICAgICAgICAgICAoaDE0KSwgKGgxMyksIChoMTIpLCAoaDExKSwgKGgxMCksIChoOSksIChoOCksIChoNyksIChoNiksICAgICBcCiAgICAgICAgICAgICAgICAoaDUpLCAoaDQpLCAoaDMpLCAoaDIpLCAoaDEpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY2FzdHBoX3BzKF9fbTEyOGggX19hKSB7CiAgcmV0dXJuIChfX20xMjgpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jYXN0cGhfcHMoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gKF9fbTI1NilfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Nhc3RwaF9wcyhfX201MTJoIF9fYSkgewogIHJldHVybiAoX19tNTEyKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3RwaF9wZChfX20xMjhoIF9fYSkgewogIHJldHVybiAoX19tMTI4ZClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jYXN0cGhfcGQoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY2FzdHBoX3BkKF9fbTUxMmggX19hKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3RwaF9zaTEyOChfX20xMjhoIF9fYSkgewogIHJldHVybiAoX19tMTI4aSlfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jYXN0cGhfc2kyNTYoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBoX3NpNTEyKF9fbTUxMmggX19hKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3Rwc19waChfX20xMjggX19hKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2Nhc3Rwc19waChfX20yNTYgX19hKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Nhc3Rwc19waChfX201MTIgX19hKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3RwZF9waChfX20xMjhkIF9fYSkgewogIHJldHVybiAoX19tMTI4aClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jYXN0cGRfcGgoX19tMjU2ZCBfX2EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY2FzdHBkX3BoKF9fbTUxMmQgX19hKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3RzaTEyOF9waChfX20xMjhpIF9fYSkgewogIHJldHVybiAoX19tMTI4aClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jYXN0c2kyNTZfcGgoX19tMjU2aSBfX2EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHNpNTEyX3BoKF9fbTUxMmkgX19hKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Nhc3RwaDI1Nl9waDEyOChfX20yNTZoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGg1MTJfcGgxMjgoX19tNTEyaCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBoNTEyX3BoMjU2KF9fbTUxMmggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLCAxMywgMTQsIDE1KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Nhc3RwaDEyOF9waDI1NihfX20xMjhoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgLTEsIC0xLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwaDEyOF9waDUxMihfX20xMjhoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgLTEsIC0xLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGgyNTZfcGg1MTIoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIsIDEzLCAxNCwgMTUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBoYWxmXSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggaGFsZl0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0Ci8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaGFsZl0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsxNiB4IGhhbGZdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl96ZXh0cGgxMjhfcGgyNTYoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIDAsIDEsIDIsIDMsIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFszMiB4IGhhbGZdIGZyb20gYQovLy8gICAgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBoYWxmXS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQKLy8vICAgIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBoYWxmXS4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzMyIHggaGFsZl0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwaDEyOF9waDUxMihfX20xMjhoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgX19hLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsCiAgICAgIDEzLCAxNCwgMTUsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFszMiB4IGhhbGZdIGZyb20gYQovLy8gICAgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzE2IHggaGFsZl0uIFRoZSBsb3dlciAyNTYgYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAyNTYgYml0cyBhcmUgc2V0Ci8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGhhbGZdLgovLy8gXHJldHVybnMgQSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMzIgeCBoYWxmXS4gVGhlIGxvd2VyIDI1NiBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfemV4dHBoMjU2X3BoNTEyKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgMCwgMSwgMiwgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LCAzMCwgMzEpOwp9CgojZGVmaW5lIF9tbV9jb21pX3JvdW5kX3NoKEEsIEIsIFAsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIChpbnQpKFApLCAoaW50KShSKSkKCiNkZWZpbmUgX21tX2NvbWlfc2goQSwgQiwgcHJlZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX21tX2NvbWlfcm91bmRfc2goKEEpLCAoQiksIChwcmVkKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY29taWVxX3NoKF9fbTEyOGggQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0VRX09TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2NvbWlsdF9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9MVF9PUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jb21pbGVfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTEVfT1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY29taWd0X3NoKF9fbTEyOGggQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0dUX09TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2NvbWlnZV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9HRV9PUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jb21pbmVxX3NoKF9fbTEyOGggQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9ORVFfVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWllcV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfRVFfT1EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWlsdF9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTFRfT1EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWlsZV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTEVfT1EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWlndF9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfR1RfT1EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWlnZV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfR0VfT1EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fdWNvbWluZXFfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9ORVFfVVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2FkZF9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaCkoKF9fdjMyaGYpX19BICsgKF9fdjMyaGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX2FkZF9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9hZGRfcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2FkZF9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2FkZHBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19hZGRfcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9hZGRfcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2FkZF9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfYWRkX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3N1Yl9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaCkoKF9fdjMyaGYpX19BIC0gKF9fdjMyaGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3ViX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX3N1Yl9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zdWJfcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX3N1Yl9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3N1YnBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zdWJfcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9zdWJfcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3N1Yl9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfc3ViX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX211bF9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaCkoKF9fdjMyaGYpX19BICogKF9fdjMyaGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX211bF9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9tdWxfcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX211bF9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX211bHBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19tdWxfcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9tdWxfcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X211bF9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbXVsX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Rpdl9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaCkoKF9fdjMyaGYpX19BIC8gKF9fdjMyaGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZGl2X3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX2Rpdl9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9kaXZfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9kaXZfcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2Rpdl9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2RpdnBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19kaXZfcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9kaXZfcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Rpdl9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfZGl2X3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX21pbl9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9taW5waDUxMigoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX21pbl9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9taW5fcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21pbl9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX21pbnBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19taW5fcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9taW5fcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X21pbl9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbWluX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX21heF9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9tYXhwaDUxMigoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKV9fVSwgKF9fdjMyaGYpX21tNTEyX21heF9waChfX0EsIF9fQiksIChfX3YzMmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9tYXhfcGgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21heF9yb3VuZF9waChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX21heHBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19tYXhfcm91bmRfcGgoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9tYXhfcm91bmRfcGgoKEEpLCAoQiksIChSKSksICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X21heF9yb3VuZF9waChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbWF4X3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Fic19waChfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfbW01MTJfYW5kX2VwaTMyKF9tbTUxMl9zZXQxX2VwaTMyKDB4N0ZGRjdGRkYpLCAoX19tNTEyaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY29ual9wY2goX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX21tNTEyX3hvcl9wcygoX19tNTEyKV9fQSwgX21tNTEyX3NldDFfcHMoLTAuMGYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29ual9wY2goX19tNTEyaCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigKICAgICAgKF9fbW1hc2sxNilfX1UsIChfX3YxNnNmKV9tbTUxMl9jb25qX3BjaChfX0EpLCAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY29ual9wY2goX19tbWFzazE2IF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2NvbmpfcGNoKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2FkZF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQVswXSArPSBfX0JbMF07CiAgcmV0dXJuIF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfYWRkX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9hZGRfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9hZGRfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgX19BID0gX21tX2FkZF9zaChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX2FkZF9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2FkZHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19hZGRfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfYWRkc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfYWRkX3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfYWRkc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3N1Yl9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQVswXSAtPSBfX0JbMF07CiAgcmV0dXJuIF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfc3ViX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9zdWJfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9zdWJfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgX19BID0gX21tX3N1Yl9zaChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX3N1Yl9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3N1YnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19zdWJfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc3Vic2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfc3ViX3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc3Vic2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX211bF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQVswXSAqPSBfX0JbMF07CiAgcmV0dXJuIF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfbXVsX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9tdWxfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9tdWxfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgX19BID0gX21tX211bF9zaChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX211bF9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX211bHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19tdWxfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbXVsc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfbXVsX3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbXVsc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Rpdl9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQVswXSAvPSBfX0JbMF07CiAgcmV0dXJuIF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfZGl2X3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9kaXZfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9kaXZfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgX19BID0gX21tX2Rpdl9zaChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX2Rpdl9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2RpdnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19kaXZfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZGl2c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZGl2X3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZGl2c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21pbl9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19taW5fc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21pbnNoX3JvdW5kX21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9taW5fc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21pbnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9taW5fcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbWluX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21pbnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X21pbl9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21pbnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXhfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfbWF4X3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tYXhzaF9yb3VuZF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfbWF4X3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tYXhzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWF4X3JvdW5kX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX21heF9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tYXhzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9tYXhfcm91bmRfc2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tYXhzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfcm91bmRfcGhfbWFzayhBLCBCLCBQLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2NtcHBoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoaW50KShQKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfcm91bmRfcGhfbWFzayhVLCBBLCBCLCBQLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXBwaDUxMl9tYXNrKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfcGhfbWFzayhBLCBCLCBQKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9jbXBfcm91bmRfcGhfbWFzaygoQSksIChCKSwgKFApLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9waF9tYXNrKFUsIEEsIEIsIFApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9tYXNrX2NtcF9yb3VuZF9waF9tYXNrKChVKSwgKEEpLCAoQiksIChQKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fY21wX3JvdW5kX3NoX21hc2soWCwgWSwgUCwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNoX21hc2soKF9fdjhoZikoX19tMTI4aCkoWCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZikoX19tMTI4aCkoWSksIChpbnQpKFApLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9yb3VuZF9zaF9tYXNrKE0sIFgsIFksIFAsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc2hfbWFzaygoX192OGhmKShfX20xMjhoKShYKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKShfX20xMjhoKShZKSwgKGludCkoUCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jbXBfc2hfbWFzayhYLCBZLCBQKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShYKSwgKF9fdjhoZikoX19tMTI4aCkoWSksIChpbnQpKFApLCAoX19tbWFzazgpLTEsICAgICAgXAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19jbXBfc2hfbWFzayhNLCBYLCBZLCBQKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoWCksIChfX3Y4aGYpKF9fbTEyOGgpKFkpLCAoaW50KShQKSwgKF9fbW1hc2s4KShNKSwgICAgIFwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKLy8gbG9hZHMgd2l0aCB2bW92c2g6CnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9sb2FkX3NoKHZvaWQgY29uc3QgKl9fZHApIHsKICBzdHJ1Y3QgX19tbV9sb2FkX3NoX3N0cnVjdCB7CiAgICBfRmxvYXQxNiBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX0Zsb2F0MTYgX191ID0gKChzdHJ1Y3QgX19tbV9sb2FkX3NoX3N0cnVjdCAqKV9fZHApLT5fX3U7CiAgcmV0dXJuIChfX20xMjhoKXtfX3UsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX3NoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIGNvbnN0IHZvaWQgKl9fQSkgewogIF9fbTEyOGggc3JjID0gKF9fdjhoZilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgKF9fdjhoZilfX1csIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgMCwgOCwgOCwgOCwgOCwgOCwgOCwgOCk7CgogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9sb2Fkc2gxMjhfbWFzaygoX192OGhmICopX19BLCBzcmMsIF9fVSAmIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZF9zaChfX21tYXNrOCBfX1UsIGNvbnN0IHZvaWQgKl9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9sb2Fkc2gxMjhfbWFzaygKICAgICAgKF9fdjhoZiAqKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWRfcGgodm9pZCBjb25zdCAqX19wKSB7CiAgcmV0dXJuICooY29uc3QgX19tNTEyaCAqKV9fcDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2xvYWRfcGgodm9pZCBjb25zdCAqX19wKSB7CiAgcmV0dXJuICooY29uc3QgX19tMjU2aCAqKV9fcDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2xvYWRfcGgodm9pZCBjb25zdCAqX19wKSB7CiAgcmV0dXJuICooY29uc3QgX19tMTI4aCAqKV9fcDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X3BoKHZvaWQgY29uc3QgKl9fcCkgewogIHN0cnVjdCBfX2xvYWR1X3BoIHsKICAgIF9fbTUxMmhfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcGggKilfX3ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkdV9waCh2b2lkIGNvbnN0ICpfX3ApIHsKICBzdHJ1Y3QgX19sb2FkdV9waCB7CiAgICBfX20yNTZoX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3BoICopX19wKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbG9hZHVfcGgodm9pZCBjb25zdCAqX19wKSB7CiAgc3RydWN0IF9fbG9hZHVfcGggewogICAgX19tMTI4aF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9waCAqKV9fcCktPl9fdjsKfQoKLy8gc3RvcmVzIHdpdGggdm1vdnNoOgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fc3RvcmVfc2godm9pZCAqX19kcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19hKSB7CiAgc3RydWN0IF9fbW1fc3RvcmVfc2hfc3RydWN0IHsKICAgIF9GbG9hdDE2IF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX21tX3N0b3JlX3NoX3N0cnVjdCAqKV9fZHApLT5fX3UgPSBfX2FbMF07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX3N0b3JlX3NoKHZvaWQgKl9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIF9fYnVpbHRpbl9pYTMyX3N0b3Jlc2gxMjhfbWFzaygoX192OGhmICopX19XLCBfX0EsIF9fVSAmIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfc3RvcmVfcGgodm9pZCAqX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0EpIHsKICAqKF9fbTUxMmggKilfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9zdG9yZV9waCh2b2lkICpfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQSkgewogICooX19tMjU2aCAqKV9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3N0b3JlX3BoKHZvaWQgKl9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BKSB7CiAgKihfX20xMjhoICopX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfc3RvcmV1X3BoKHZvaWQgKl9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQSkgewogIHN0cnVjdCBfX3N0b3JldV9waCB7CiAgICBfX201MTJoX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BoICopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfc3RvcmV1X3BoKHZvaWQgKl9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQSkgewogIHN0cnVjdCBfX3N0b3JldV9waCB7CiAgICBfX20yNTZoX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BoICopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fc3RvcmV1X3BoKHZvaWQgKl9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHN0cnVjdCBfX3N0b3JldV9waCB7CiAgICBfX20xMjhoX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BoICopX19QKS0+X192ID0gX19BOwp9CgovLyBtb3ZlcyB3aXRoIHZtb3ZzaDoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21vdmVfc2goX19tMTI4aCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19iKSB7CiAgX19hWzBdID0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX21vdmVfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9tbV9tb3ZlX3NoKF9fQSwgX19CKSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X21vdmVfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2hfMTI4KF9fVSwgX21tX21vdmVfc2goX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGgoKSk7Cn0KCi8vIHZtb3Z3OgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c2kxNl9zaTEyOChzaG9ydCBfX2EpIHsKICByZXR1cm4gKF9fbTEyOGkpKF9fdjhoaSl7X19hLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKfQoKc3RhdGljIF9faW5saW5lX18gc2hvcnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzaTEyOF9zaTE2KF9fbTEyOGkgX19hKSB7CiAgX192OGhpIF9fYiA9IChfX3Y4aGkpX19hOwogIHJldHVybiBfX2JbMF07Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yY3BfcGgoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcmNwcGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMzIpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yY3BfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JjcHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAoX192MzJoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcmNwX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JjcHBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfcnNxcnRfcGgoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcnNxcnRwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2szMiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JzcXJ0X3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yc3FydHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAoX192MzJoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yc3FydF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yc3FydHBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMilfX1UpOwp9CgojZGVmaW5lIF9tbTUxMl9nZXRtYW50X3BoKEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMzIpLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19nZXRtYW50X3BoKFcsIFUsIEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgKF9fdjMyaGYpKF9fbTUxMmgpKFcpLCAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRtYW50X3BoKFUsIEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKShVKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX2dldG1hbnRfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19nZXRtYW50X3JvdW5kX3BoKFcsIFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgKF9fdjMyaGYpKF9fbTUxMmgpKFcpLCAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dldG1hbnRfcm91bmRfcGgoVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfZ2V0ZXhwX3BoKF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19nZXRleHBfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19XLCAoX19tbWFzazMyKV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2dldGV4cF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9nZXRleHBfcm91bmRfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDUxMl9tYXNrKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0ZXhwX3JvdW5kX3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKFcpLCAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0ZXhwX3JvdW5kX3BoKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3NjYWxlZl9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zY2FsZWZfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fVywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NjYWxlZl9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9zY2FsZWZfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2NhbGVmX3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoVyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zY2FsZWZfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9waChBLCBCKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX19tbWFzazMyKS0xLCAgIFwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcm91bmRzY2FsZV9waChBLCBCLCBDLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShDKSwgKGludCkoaW1tKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm91bmRzY2FsZV9waChBLCBCLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoaW50KShpbW0pLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcm91bmRfcGgoQSwgQiwgQywgaW1tLCBSKSAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAoaW50KShpbW0pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JvdW5kc2NhbGVfcm91bmRfcGgoQSwgQiwgaW1tLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfbWFzaygoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKGltbSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9yb3VuZF9waChBLCBpbW0sIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF9tYXNrKChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoaW1tKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JlZHVjZV9waChBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoaW1tKSwgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAgICAgICBcCiAgICAgIChfX21tYXNrMzIpLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JlZHVjZV9waChXLCBVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIChfX3YzMmhmKShfX201MTJoKShXKSwgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JlZHVjZV9waChVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoaW1tKSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yZWR1Y2Vfcm91bmRfcGgoVywgVSwgQSwgaW1tLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoVyksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmVkdWNlX3JvdW5kX3BoKFUsIEEsIGltbSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcmVkdWNlX3JvdW5kX3BoKEEsIGltbSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fcmNwX3NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JjcHNoX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19yY3Bfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JjcHNoX21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X3JjcF9zaChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmNwc2hfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fcnNxcnRfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yc3FydHNoX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19yc3FydF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcnNxcnRzaF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JzcXJ0X3NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0c2hfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgojZGVmaW5lIF9tbV9nZXRtYW50X3JvdW5kX3NoKEEsIEIsIEMsIEQsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChpbnQpKCgoRCkgPDwgMikgfCAoQykpLCAgICAgXAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9zaChBLCBCLCBDLCBEKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoaW50KSgoKEQpIDw8IDIpIHwgKEMpKSwgICAgIFwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfc2goVywgVSwgQSwgQiwgQywgRCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChpbnQpKCgoRCkgPDwgMikgfCAoQykpLCAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fbW1hc2s4KShVKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfZ2V0bWFudF9yb3VuZF9zaChXLCBVLCBBLCBCLCBDLCBELCBSKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKGludCkoKChEKSA8PCAyKSB8IChDKSksICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3NoKFUsIEEsIEIsIEMsIEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChpbnQpKCgoRCkgPDwgMikgfCAoQykpLCAgICAgXAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3JvdW5kX3NoKFUsIEEsIEIsIEMsIEQsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChpbnQpKCgoRCkgPDwgMikgfCAoQykpLCAgICAgXAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2dldGV4cF9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNoMTI4X3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2dldGV4cF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBzaDEyOF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19nZXRleHBfc2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNoMTI4X3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2tfZ2V0ZXhwX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNoMTI4X3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9nZXRleHBfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0ZXhwc2gxMjhfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2dldGV4cF9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNoMTI4X3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3NjYWxlZl9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NjYWxlZl9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zY2FsZWZzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZikoX19CKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NjYWxlZl9zaChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmc2hfcm91bmRfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19zY2FsZWZfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NjYWxlZl9zaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zY2FsZWZzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfc2NhbGVmX3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9yb3VuZF9zaChBLCBCLCBpbW0sIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yb3VuZHNjYWxlX3NoKEEsIEIsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKGltbSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfc2goVywgVSwgQSwgQiwgSSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcm91bmRzY2FsZV9yb3VuZF9zaChXLCBVLCBBLCBCLCBJLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEkpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yb3VuZHNjYWxlX3NoKFUsIEEsIEIsIEkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfcm91bmRfc2goVSwgQSwgQiwgSSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEkpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yZWR1Y2Vfc2goQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKEMpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2Vfc2goVywgVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmVkdWNlc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2Vfc2goVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9yb3VuZF9zaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoQyksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3JvdW5kX3NoKFcsIFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2Vfcm91bmRfc2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfc3FydF9yb3VuZF9waChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc3FydHBoNTEyKChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19zcXJ0X3JvdW5kX3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChfX3YzMmhmKV9tbTUxMl9zcXJ0X3JvdW5kX3BoKChBKSwgKFIpKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NxcnRfcm91bmRfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfc3FydF9yb3VuZF9waCgoQSksIChSKSksICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3NxcnRfcGgoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc3FydHBoNTEyKChfX3YzMmhmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NxcnRfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMikoX19VKSwKICAgICAgKF9fdjMyaGYpX19idWlsdGluX2lhMzJfc3FydHBoNTEyKChfX0EpLCAoX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSksCiAgICAgIChfX3YzMmhmKShfX201MTJoKShfX1cpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NxcnRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKAogICAgICAoX19tbWFzazMyKShfX1UpLAogICAgICAoX192MzJoZilfX2J1aWx0aW5faWEzMl9zcXJ0cGg1MTIoKF9fQSksIChfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKSwKICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSk7Cn0KCiNkZWZpbmUgX21tX3NxcnRfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NxcnRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19zcXJ0X3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc3FydHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfc3FydF9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc3FydHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NxcnRfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NxcnRzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKShfX20xMjhoKShfX0EpLCAoX192OGhmKShfX20xMjhoKShfX0IpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksCiAgICAgIChfX21tYXNrOCktMSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfc3FydF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrMzIgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NxcnRzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKShfX20xMjhoKShfX0EpLCAoX192OGhmKShfX20xMjhoKShfX0IpLCAoX192OGhmKShfX20xMjhoKShfX1cpLAogICAgICAoX19tbWFzazgpKF9fVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9zcXJ0X3NoKF9fbW1hc2szMiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zcXJ0c2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZikoX19tMTI4aCkoX19BKSwgKF9fdjhoZikoX19tMTI4aCkoX19CKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLAogICAgICAoX19tbWFzazgpKF9fVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZnBjbGFzc19waF9tYXNrKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfZnBjbGFzc3BoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2szMikoVSkpKQoKI2RlZmluZSBfbW01MTJfZnBjbGFzc19waF9tYXNrKEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazMyKS0xKSkKCiNkZWZpbmUgX21tX2ZwY2xhc3Nfc2hfbWFzayhBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzc2hfbWFzaygoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19mcGNsYXNzX3NoX21hc2soVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NzaF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGRfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkZikoQSksIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwZF9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoNTEyX21hc2soKF9fdjhkZikoQSksIChfX3Y4aGYpKFcpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGRfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkZikoQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2N2dHBkX3BoKF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKAogICAgICAoX192OGRmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKAogICAgICAoX192OGRmKV9fQSwgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwZF9waChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKAogICAgICAoX192OGRmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwaF9wZChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycGQ1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIChfX21tYXNrOCkoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBoX3BkKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycGQ1MTJfbWFzaygoX192OGhmKShBKSwgKF9fdjhkZikoVyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwaF9wZChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycGQ1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY3Z0cGhfcGQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGRmKV9fVywgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBoX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNoX3NzKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHNoMnNzX3JvdW5kX21hc2soKF9fdjRzZikoQSksIChfX3Y4aGYpKEIpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kc2hfc3MoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHNoMnNzX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKEEpLCAoX192OGhmKShCKSwgKF9fdjRzZikoVyksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHNoX3NzKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHNoMnNzX3JvdW5kX21hc2soKF9fdjRzZikoQSksIChfX3Y4aGYpKEIpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c2hfc3MoX19tMTI4IF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc3Nfcm91bmRfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y4aGYpX19CLCAoX192NHNmKV9tbV91bmRlZmluZWRfcHMoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHNoX3NzKF9fbTEyOCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc3Nfcm91bmRfbWFzaygoX192NHNmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfY3Z0c2hfc3MoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzc19yb3VuZF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3Nfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNzMnNoX3JvdW5kX21hc2soKF9fdjhoZikoQSksIChfX3Y0c2YpKEIpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kc3Nfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192NHNmKShCKSwgKF9fdjhoZikoVyksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHNzX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKChfX3Y4aGYpKEEpLCAoX192NHNmKShCKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzc19zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNzMnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNmKV9fQiwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0c3Nfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNzMnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNmKV9fQiwgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9jdnRzc19zaChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNzMnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0c2Qyc2hfcm91bmRfbWFzaygoX192OGhmKShBKSwgKF9fdjJkZikoQiksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19jdnRfcm91bmRzZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNkMnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3YyZGYpKEIpLCAoX192OGhmKShXKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfY3Z0X3JvdW5kc2Rfc2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNkMnNoX3JvdW5kX21hc2soKF9fdjhoZikoQSksIChfX3YyZGYpKEIpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNkX3NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNkMnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRmKV9fQiwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0c2Rfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkZilfX0IsIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2Rfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNkMnNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzaF9zZChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc2Rfcm91bmRfbWFzaygoX192MmRmKShBKSwgKF9fdjhoZikoQiksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bmRlZmluZWRfcGQoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19jdnRfcm91bmRzaF9zZChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNkX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjJkZikoQSksIChfX3Y4aGYpKEIpLCAoX192MmRmKShXKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfY3Z0X3JvdW5kc2hfc2QoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNkX3JvdW5kX21hc2soKF9fdjJkZikoQSksIChfX3Y4aGYpKEIpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNoX3NkKF9fbTEyOGQgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNkX3JvdW5kX21hc2soCiAgICAgIChfX3YyZGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0c2hfc2QoX19tMTI4ZCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4ZCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzZF9yb3VuZF9tYXNrKAogICAgICAoX192MmRmKV9fQSwgKF9fdjhoZilfX0IsIChfX3YyZGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2hfc2QoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNkX3JvdW5kX21hc2soCiAgICAgIChfX3YyZGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwaF9lcGkxNihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzUxMl9tYXNrKChfX3YzMmhmKShBKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcGkxNihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnc1MTJfbWFzaygoX192MzJoZikoQSksIChfX3YzMmhpKShXKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGhfZXBpMTYoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnc1MTJfbWFzaygoX192MzJoZikoQSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX2VwaTE2KF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGkpX19XLCAoX19tbWFzazMyKV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBoX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwaF9lcGkxNihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShBKSwgKF9fdjMyaGkpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazMyKSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBoX2VwaTE2KFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzUxMl9tYXNrKChfX3YzMmhmKShBKSwgKF9fdjMyaGkpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGhfZXBpMTYoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnc1MTJfbWFzaygoX192MzJoZikoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwaF9lcGkxNihfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGhfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhpKV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGhfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwaTE2X3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR3MnBoNTEyX21hc2soKF9fdjMyaGkpKEEpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwaTE2X3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dzJwaDUxMl9tYXNrKChfX3YzMmhpKShBKSwgKF9fdjMyaGYpKFcpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcGkxNl9waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dzJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoaSkoQSksIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMTZfcGgoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHcycGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGkpX19BLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkxNl9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHcycGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGkpX19BLCAoX192MzJoZilfX1csIChfX21tYXNrMzIpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMTZfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHcycGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGkpX19BLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXB1MTYoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3NTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKEEpLCAoX192MzJodSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMzIpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcHUxNihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3NTEyX21hc2soKF9fdjMyaGYpKEEpLCAoX192MzJodSkoVyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX2VwdTE2KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzUxMl9tYXNrKChfX3YzMmhmKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmh1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGhfZXB1MTYoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfZXB1MTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmh1KV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9lcHUxNihfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJodSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBoX2VwdTE2KEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKEEpLCAoX192MzJodSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMzIpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGhfZXB1MTYoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKChfX3YzMmhmKShBKSwgKF9fdjMyaHUpKFcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGhfZXB1MTYoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnV3NTEyX21hc2soKF9fdjMyaGYpKEEpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGhfZXB1MTYoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmh1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHRwaF9lcHUxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmh1KV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGhfZXB1MTYoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmh1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcHUxNl9waChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dXcycGg1MTJfbWFzaygoX192MzJodSkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXB1MTZfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1dzJwaDUxMl9tYXNrKChfX3YzMmh1KShBKSwgKF9fdjMyaGYpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcHUxNl9waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dXcycGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJodSkoQSksIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1MTZfcGgoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHV3MnBoNTEyX21hc2soCiAgICAgIChfX3YzMmh1KV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MTZfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1dzJwaDUxMl9tYXNrKAogICAgICAoX192MzJodSlfX0EsIChfX3YzMmhmKV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHUxNl9waChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dXcycGg1MTJfbWFzaygKICAgICAgKF9fdjMyaHUpX19BLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXBpMzIoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMTYpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcGkzMihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxNTEyX21hc2soKF9fdjE2aGYpKEEpLCAoX192MTZzaSkoVyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX2VwaTMyKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGhfZXBpMzIoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNpKV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9lcGkzMihfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgyZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXB1MzIoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzdSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMTYpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcHUzMihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgKF9fdjE2c3UpKFcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwaF9lcHUzMihVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxNTEyX21hc2soKF9fdjE2aGYpKEEpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c3UpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwaF9lcHUzMihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c3UpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfZXB1MzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzdSlfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGhfZXB1MzIoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnN1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcGkzMl9waChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGg1MTJfbWFzaygoX192MTZzaSkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfdW5kZWZpbmVkX3BoKCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXBpMzJfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRkcTJwaDUxMl9tYXNrKChfX3YxNnNpKShBKSwgKF9fdjE2aGYpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcGkzMl9waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzaSkoQSksIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJfcGgoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoNTEyX21hc2soCiAgICAgIChfX3YxNnNpKV9fQSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRkcTJwaDUxMl9tYXNrKAogICAgICAoX192MTZzaSlfX0EsIChfX3YxNmhmKV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkzMl9waChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2kpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXB1MzJfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDUxMl9tYXNrKChfX3YxNnN1KShBKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9tbTI1Nl91bmRlZmluZWRfcGgoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcHUzMl9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDUxMl9tYXNrKChfX3YxNnN1KShBKSwgKF9fdjE2aGYpKFcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcHUzMl9waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0dWRxMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzdSkoQSksIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1MzJfcGgoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDUxMl9tYXNrKAogICAgICAoX192MTZzdSlfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTMyX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0dWRxMnBoNTEyX21hc2soCiAgICAgIChfX3YxNnN1KV9fQSwgKF9fdjE2aGYpX19XLCAoX19tbWFzazE2KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTMyX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1ZHEycGg1MTJfbWFzaygKICAgICAgKF9fdjE2c3UpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBoX2VwaTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMTYpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGhfZXBpMzIoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgKF9fdjE2c2kpKFcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGhfZXBpMzIoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMmRxNTEyX21hc2soKF9fdjE2aGYpKEEpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGhfZXBpMzIoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHRwaF9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNpKV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGhfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGhfZXB1MzIoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoQSksIChfX3YxNnN1KV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgKF9fbW1hc2sxNikoLTEpLCAgICAgICAgXAogICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwaF9lcHUzMihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgKF9fdjE2c3UpKFcpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGhfZXB1MzIoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoQSksIChfX3YxNnN1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpKFUpLCAgICAgICAgICAgXAogICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBoX2VwdTMyKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydWRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c3UpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBoX2VwdTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnN1KV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGhfZXB1MzIoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzdSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXBpNjRfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkaSkoQSksIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcGk2NF9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoNTEyX21hc2soKF9fdjhkaSkoQSksIChfX3Y4aGYpKFcpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpNjRfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkaSkoQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTY0X3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKAogICAgICAoX192OGRpKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKAogICAgICAoX192OGRpKV9fQSwgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk2NF9waChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKAogICAgICAoX192OGRpKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwaF9lcGk2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgycXE1MTJfbWFzaygoX192OGhmKShBKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcGk2NChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxNTEyX21hc2soKF9fdjhoZikoQSksIChfX3Y4ZGkpKFcpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGhfZXBpNjQoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX2VwaTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkaSlfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcHU2NF9waChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGR1KShBKSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCkoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwdTY0X3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoNTEyX21hc2soKF9fdjhkdSkoQSksIChfX3Y4aGYpKFcpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXB1NjRfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkdSkoQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTY0X3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGg1MTJfbWFzaygKICAgICAgKF9fdjhkdSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHU2NF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoNTEyX21hc2soCiAgICAgIChfX3Y4ZHUpX19BLCAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTY0X3BoKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDUxMl9tYXNrKAogICAgICAoX192OGR1KV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwaF9lcHU2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkdSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrOCkoLTEpLCAgICAgICAgICAgXAogICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBoX2VwdTY0KFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxNTEyX21hc2soKF9fdjhoZikoQSksIChfX3Y4ZHUpKFcpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGhfZXB1NjQoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX2VwdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwaF9lcHU2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGR1KV9fVywgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkdSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGhfZXBpNjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrOCkoLTEpLCAgICAgICAgICAgXAogICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwaF9lcGk2NChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxNTEyX21hc2soKF9fdjhoZikoQSksIChfX3Y4ZGkpKFcpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBoX2VwaTY0KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwaF9lcGk2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBoX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZGkpX19XLCAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGhfZXB1NjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkdSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrOCkoLTEpLCAgICAgICAgICAgXAogICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwaF9lcHU2NChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTUxMl9tYXNrKChfX3Y4aGYpKEEpLCAoX192OGR1KShXKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwaF9lcHU2NChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192OGR1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGhfZXB1NjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGhfZXB1NjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZHUpX19XLCAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2hfaTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc2kzMigoX192OGhmKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c2hfaTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNpMzIoKF9fdjhoZilfX0EsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNoX3UzMihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHNoMnVzaTMyKChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzaF91MzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl92Y3Z0c2gydXNpMzIoKF9fdjhoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNoX2k2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNoMnNpNjQoKF9fdjhoZikoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNoX2k2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzaTY0KChfX3Y4aGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNoX3U2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNoMnVzaTY0KChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzaF91NjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c2gydXNpNjQoCiAgICAgIChfX3Y4aGYpX19BLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZiAvLyBfX3g4Nl82NF9fCgojZGVmaW5lIF9tbV9jdnRfcm91bmR1MzJfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXNpMnNoKChfX3Y4aGYpKEEpLCAodW5zaWduZWQgaW50KShCKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHUzMl9zaChfX20xMjhoIF9fQSwgdW5zaWduZWQgaW50IF9fQikgewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmR1NjRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXNpNjQyc2goKF9fdjhoZikoQSksICh1bnNpZ25lZCBsb25nIGxvbmcpKEIpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHU2NF9zaChfX20xMjhoIF9fQSwgdW5zaWduZWQgbG9uZyBsb25nIF9fQikgewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kaTMyX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNpMnNoKChfX3Y4aGYpKEEpLCAoaW50KShCKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dGkzMl9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19CKSB7CiAgX19BWzBdID0gX19COwogIHJldHVybiBfX0E7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZGk2NF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaTY0MnNoKChfX3Y4aGYpKEEpLCAobG9uZyBsb25nKShCKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dGk2NF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgX19CKSB7CiAgX19BWzBdID0gX19COwogIHJldHVybiBfX0E7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2hfaTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2gyc2kzMigoX192OGhmKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHNoX2kzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2gyc2kzMigoX192OGhmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNoX2k2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnNpNjQoKF9fdjhoZikoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRzaF9pNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnNpNjQoKF9fdjhoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2hfdTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2gydXNpMzIoKF9fdjhoZikoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzaF91MzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnVzaTMyKChfX3Y4aGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNoX3U2NChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnVzaTY0KChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2hfdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzaDJ1c2k2NCgKICAgICAgKF9fdjhoZilfX0EsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbTUxMl9jdnR4X3JvdW5kcGhfcHMoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3g1MTJfbWFzaygoX192MTZoZikoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0eF9yb3VuZHBoX3BzKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDUxMl9tYXNrKChfX3YxNmhmKShBKSwgKF9fdjE2c2YpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR4X3JvdW5kcGhfcHMoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3g1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoQSksIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9jdnR4cGhfcHMoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4NTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR4cGhfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4NTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c2YpX19XLCAoX19tbWFzazE2KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0eHBoX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR4X3JvdW5kcHNfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4NTEyX21hc2soKF9fdjE2c2YpKEEpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHhfcm91bmRwc19waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4NTEyX21hc2soKF9fdjE2c2YpKEEpLCAoX192MTZoZikoVyksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHhfcm91bmRwc19waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaHg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShBKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9jdnR4cHNfcGgoX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4NTEyX21hc2soCiAgICAgIChfX3YxNnNmKV9fQSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0eHBzX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaHg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19BLCAoX192MTZoZilfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0eHBzX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDUxMl9tYXNrKAogICAgICAoX192MTZzZilfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9mbWFkZF9yb3VuZF9waChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZtYWRkX3JvdW5kX3BoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1hZGRfcm91bmRfcGgoQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZtYWRkX3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9mbXN1Yl9yb3VuZF9waChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Ztc3ViX3JvdW5kX3BoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1zdWJfcm91bmRfcGgoVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2ZubWFkZF9yb3VuZF9waChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgLShfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZubWFkZF9yb3VuZF9waChBLCBCLCBDLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIC0oX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbm1hZGRfcm91bmRfcGgoVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAtKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZm5tc3ViX3JvdW5kX3BoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgIFwKICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tc3ViX3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgLShfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mbWFkZF9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRfcGgoX19tNTEyaCBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2szMiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzazMoKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbWFkZF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfZm1zdWJfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMiktMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbXN1Yl9waChfX201MTJoIF9fQSwgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Ztc3ViX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFza3ooCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2ZubWFkZF9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgLShfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZubWFkZF9waChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DLCBfX21tYXNrMzIgX19VKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2szKC0oX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZubWFkZF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KC0oX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2ZubXN1Yl9waChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgLShfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbm1zdWJfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNreigKICAgICAgLShfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZm1hZGRzdWJfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mbWFkZHN1Yl9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZtYWRkc3ViX3JvdW5kX3BoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZHN1Yl9yb3VuZF9waChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZm1zdWJhZGRfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mbXN1YmFkZF9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Ztc3ViYWRkX3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1hZGRzdWJfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbWFkZHN1Yl9waChfX201MTJoIF9fQSwgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1hZGRzdWJfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQywgX19tbWFzazMyIF9fVSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNrMygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbWFkZHN1Yl9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2t6KAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Ztc3ViYWRkX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Ztc3ViYWRkX3BoKF9fbTUxMmggX19BLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1zdWJhZGRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNreigKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbXN1Yl9yb3VuZF9waChBLCBCLCBDLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1zdWJwaDUxMl9tYXNrMyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2Ztc3ViX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2szMiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtc3VicGg1MTJfbWFzazMoKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2szX2Ztc3ViYWRkX3JvdW5kX3BoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YmFkZHBoNTEyX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1zdWJhZGRfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQywgX19tbWFzazMyIF9fVSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1zdWJhZGRwaDUxMl9tYXNrMygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZm5tYWRkX3JvdW5kX3BoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgLShfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbm1hZGRfcGgoX19tNTEyaCBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgLShfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZm5tc3ViX3JvdW5kX3BoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgLShfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbm1zdWJfcm91bmRfcGgoQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1zdWJwaDUxMl9tYXNrMyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAtKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tc3ViX3BoKF9fbTUxMmggX19BLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIC0oX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZubXN1Yl9waChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DLCBfX21tYXNrMzIgX19VKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBoNTEyX21hc2szKC0oX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtYWRkX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2ZtYWRkX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbWFkZF9yb3VuZF9zaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKEMpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm1hZGRfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9zaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2t6KChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm1hZGRfcm91bmRfc2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShDKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkX3NoKF9fbTEyOGggX19XLCBfX20xMjhoIF9fWCwgX19tMTI4aCBfX1ksIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzazMoKF9fdjhoZilfX1csIChfX3Y4aGYpX19YLCAoX192OGhmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbWFkZF9yb3VuZF9zaChXLCBYLCBZLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fdjhoZikoX19tMTI4aCkoWCksIChfX3Y4aGYpKF9fbTEyOGgpKFkpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm1zdWJfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKChfX3Y4aGYpX19XLCAoX192OGhmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4aGYpX19CLCAoX19tbWFzazgpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2Ztc3ViX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgKF9fdjhoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGhmKV9fQiwgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1zdWJfcm91bmRfc2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAtKF9fdjhoZikoX19tMTI4aCkoQyksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Ztc3ViX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fdjhoZikoX19tMTI4aCkoQSksIC0oX192OGhmKShfX20xMjhoKShCKSwgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreigoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhoZilfX0MsIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbXN1Yl9yb3VuZF9zaChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIC0oX192OGhmKShfX20xMjhoKShDKSwgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KVIpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2Ztc3ViX3NoKF9fbTEyOGggX19XLCBfX20xMjhoIF9fWCwgX19tMTI4aCBfX1ksIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1zdWJzaDNfbWFzazMoKF9fdjhoZilfX1csIChfX3Y4aGYpX19YLCAoX192OGhmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbXN1Yl9yb3VuZF9zaChXLCBYLCBZLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1zdWJzaDNfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fdjhoZikoX19tMTI4aCkoWCksIChfX3Y4aGYpKF9fbTEyOGgpKFkpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm5tYWRkX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKChfX3Y4aGYpX19XLCAtKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubWFkZF9zaChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soKF9fdjhoZilfX1csIC0oX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZubWFkZF9yb3VuZF9zaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKEMpLCAgICAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbm1hZGRfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIC0oX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubWFkZF9zaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2t6KChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZubWFkZF9yb3VuZF9zaChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKEMpLCAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1hZGRfc2goX19tMTI4aCBfX1csIF9fbTEyOGggX19YLCBfX20xMjhoIF9fWSwgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrMygoX192OGhmKV9fVywgLShfX3Y4aGYpX19YLCAoX192OGhmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbm1hZGRfcm91bmRfc2goVywgWCwgWSwgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgLShfX3Y4aGYpKF9fbTEyOGgpKFgpLCAoX192OGhmKShfX20xMjhoKShZKSwgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm5tc3ViX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKChfX3Y4aGYpX19XLCAtKF9fdjhoZilfX0EsIC0oX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1zdWJfc2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKChfX3Y4aGYpX19XLCAtKF9fdjhoZilfX0EsIC0oX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm5tc3ViX3JvdW5kX3NoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIC0oX192OGhmKShfX20xMjhoKShCKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEMpLCAgICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZubXN1Yl9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tc3ViX3NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFza3ooKF9fdjhoZilfX0EsIC0oX192OGhmKV9fQiwgLShfX3Y4aGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZubXN1Yl9yb3VuZF9zaChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksIC0oX192OGhmKShfX20xMjhoKShDKSwgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfc2goX19tMTI4aCBfX1csIF9fbTEyOGggX19YLCBfX20xMjhoIF9fWSwgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbXN1YnNoM19tYXNrMygoX192OGhmKV9fVywgLShfX3Y4aGYpX19YLCAoX192OGhmKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrM19mbm1zdWJfcm91bmRfc2goVywgWCwgWSwgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1zdWJzaDNfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgLShfX3Y4aGYpKF9fbTEyOGgpKFgpLCAoX192OGhmKShfX20xMjhoKShZKSwgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZmNtYWRkX3NjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwgKF9fbW1hc2s4KS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZmNtYWRkX3NjaChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSwKICAgICAgKF9fdjRzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZmNtYWRkX3NjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNzaF9tYXNreigoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZjbWFkZF9zY2goX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9tbV9tb3ZlX3NzKChfX20xMjgpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFzaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpOwp9CgojZGVmaW5lIF9tbV9mY21hZGRfcm91bmRfc2NoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShDKSwgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZmNtYWRkX3JvdW5kX3NjaChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSAmIDEpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAoX192NHNmKShfX20xMjhoKShDKSwgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICBcCiAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEEpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZjbWFkZF9yb3VuZF9zY2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEMpLCAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2szX2ZjbWFkZF9yb3VuZF9zY2goQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9tbV9tb3ZlX3NzKChfX20xMjgpKEMpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNzaF9tYXNrKCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShDKSwgKF9fdjRzZikoQSksIChfX3Y0c2YpKEIpLCAoVSksIChSKSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtYWRkX3NjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjc2hfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZtYWRkX3NjaChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNzaF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTiksCiAgICAgIChfX3Y0c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkX3NjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkY3NoX21hc2t6KChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1hZGRfcm91bmRfc2NoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkY3NoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQyksIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZtYWRkX3JvdW5kX3NjaChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUgJiAxKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgKF9fdjRzZikoX19tMTI4aCkoQyksIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgXAogICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSkpCgojZGVmaW5lIF9tbV9tYXNrel9mbWFkZF9yb3VuZF9zY2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjc2hfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShDKSwgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZmNtdWxfc2NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNzaF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZjbXVsX3NjaChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbXVsY3NoX21hc2soKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVywgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZjbXVsX3NjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjc2hfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZjbXVsX3JvdW5kX3NjaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZmNtdWxfcm91bmRfc2NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgKF9fdjRzZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZjbXVsX3JvdW5kX3NjaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtdWxfc2NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjc2hfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19mbXVsX3NjaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjc2hfbWFzaygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtdWxfc2NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3NoX21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbXVsX3JvdW5kX3NjaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm11bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZtdWxfcm91bmRfc2NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm11bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksIChfX3Y0c2YpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9mbXVsX3JvdW5kX3NjaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm11bGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mY211bF9wY2goX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoNTEyX21hc2soCiAgICAgIChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLCAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZjbXVsX3BjaChfX201MTJoIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDUxMl9tYXNrKChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1csIChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZmNtdWxfcGNoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19BLCAoX192MTZzZilfX0IsIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9mY211bF9yb3VuZF9wY2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaClfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZmNtdWxfcm91bmRfcGNoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAoX192MTZzZikoX19tNTEyaCkoVyksICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mY211bF9yb3VuZF9wY2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaClfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2ZtdWxfcGNoKF9fbTUxMmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19BLCAoX192MTZzZilfX0IsIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2sxNiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm11bF9wY2goX19tNTEyaCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDUxMl9tYXNrKChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVywgKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtdWxfcGNoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDUxMl9tYXNrKAogICAgICAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtdWxfcm91bmRfcGNoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mbXVsX3JvdW5kX3BjaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksIChfX3YxNnNmKShfX201MTJoKShXKSwgICAgIFwKICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZtdWxfcm91bmRfcGNoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfZmNtYWRkX3BjaChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzaygoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNiktMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZjbWFkZF9wY2goX19tNTEyaCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoCiAgICAgIF9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNrKChfX3YxNnNmKV9fQywgKF9fdjE2c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19CLCAoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTiksCiAgICAgIChfX3YxNnNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mY21hZGRfcGNoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNrKAogICAgICAoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZjbWFkZF9wY2goX19tbWFzazE2IF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoNTEyX21hc2t6KAogICAgICAoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZmNtYWRkX3JvdW5kX3BjaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEMpLCAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgIFwKICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mY21hZGRfcm91bmRfcGNoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2sxNikoVSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIChfX3YxNnNmKShfX201MTJoKShDKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksIFwKICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEEpKSkKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZjbWFkZF9yb3VuZF9wY2goQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShDKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mY21hZGRfcm91bmRfcGNoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgXAogICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2ZtYWRkX3BjaChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFzaygoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19CLCAoX19tbWFzazE2KS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbWFkZF9wY2goX19tNTEyaCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoCiAgICAgIF9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkY3BoNTEyX21hc2soKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTiksCiAgICAgIChfX3YxNnNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbWFkZF9wY2goX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQywgX19tbWFzazE2IF9fVSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFzaygoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19CLCAoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtYWRkX3BjaChfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDUxMl9tYXNreigKICAgICAgKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtYWRkX3JvdW5kX3BjaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShDKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICBcCiAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRfcm91bmRfcGNoKEEsIFUsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCBcCiAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZF9yb3VuZF9wY2goQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgXAogICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1hZGRfcm91bmRfcGNoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEMpLCAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgIFwKICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX2FkZF9waChfX201MTJoIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZmFkZF9waDUxMigtMC4wZjE2LCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tdWxfcGgoX19tNTEyaCBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtdWxfcGg1MTIoMS4wZjE2LCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfcGgoX19tNTEyaCBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtYXhfcGg1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWluX3BoKF9fbTUxMmggX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWluX3BoNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2JsZW5kX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fVykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleDJ2YXJfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmkgX19JLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92cGVybWkydmFyaGk1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXh2YXJfcGgoX19tNTEyaSBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJoaTUxMigoX192MzJoaSlfX0IsIChfX3YzMmhpKV9fQSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCgojZW5kaWYKAGF2eDUxMnZibWkyaW50cmluLmgAYm1paW50cmluLmgAaGV4YWdvbl9wcm90b3MuaABvbXAtdG9vbHMuaAAvKj09PS0tLS0gcmRzZWVkaW50cmluLmggLSBSRFNFRUQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxyZHNlZWRpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fUkRTRUVESU5UUklOX0gKI2RlZmluZSBfX1JEU0VFRElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicmRzZWVkIikpKQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfcmRzZWVkMTZfc3RlcCh1bnNpZ25lZCBzaG9ydCAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc2VlZDE2X3N0ZXAoX19wKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfcmRzZWVkMzJfc3RlcCh1bnNpZ25lZCBpbnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHNlZWQzMl9zdGVwKF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3Jkc2VlZDY0X3N0ZXAodW5zaWduZWQgbG9uZyBsb25nICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzZWVkNjRfc3RlcChfX3ApOwp9CiNlbmRpZgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fUkRTRUVESU5UUklOX0ggKi8KAC8qPT09LS0tLSBzMzkwaW50cmluLmggLSBTeXN0ZW1aIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19TMzkwSU5UUklOX0gKI2RlZmluZSBfX1MzOTBJTlRSSU5fSAoKI2lmbmRlZiBfX3MzOTBfXwojZXJyb3IgIjxzMzkwaW50cmluLmg+IGlzIGZvciBzMzkwIG9ubHkiCiNlbmRpZgoKI2lmZGVmIF9fSFRNX18KI2luY2x1ZGUgPGh0bWludHJpbi5oPgojZW5kaWYKCiNpZmRlZiBfX1ZFQ19fCiNpbmNsdWRlIDx2ZWNpbnRyaW4uaD4KI2VuZGlmCgojZW5kaWYgLyogX19TMzkwSU5UUklOX0gqLwoALyo9PT0tLS0tIHRnbWF0aC5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciB0eXBlIGdlbmVyaWMgbWF0aCAtLS0tLS0tLS0tLS0tLS0tPT09KlwKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKXCo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ki8KCiNpZm5kZWYgX19DTEFOR19UR01BVEhfSAojZGVmaW5lIF9fQ0xBTkdfVEdNQVRIX0gKCi8qIEM5OSA3LjIyIFR5cGUtZ2VuZXJpYyBtYXRoIDx0Z21hdGguaD4uICovCiNpbmNsdWRlIDxtYXRoLmg+CgovKgogKiBBbGxvdyBhZGRpdGlvbmFsIGRlZmluaXRpb25zIGFuZCBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlcyBvbiBBcHBsZQogKiBwbGF0Zm9ybXMuIFRoaXMgaXMgZG9uZSBhZnRlciAjaW5jbHVkZSA8bWF0aC5oPiB0byBhdm9pZCBkZXBjeWNsZSBjb25mbGljdHMKICogYmV0d2VlbiBsaWJjeHggYW5kIGRhcndpbiBpbiBDKysgbW9kdWxlcyBidWlsZHMuCiAqLwojaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9fU1REQ19IT1NURURfXyAmJiBfX2hhc19pbmNsdWRlX25leHQoPHRnbWF0aC5oPikKIyAgaW5jbHVkZV9uZXh0IDx0Z21hdGguaD4KI2Vsc2UKCi8qIEMrKyBoYW5kbGVzIHR5cGUgZ2VuZXJpY2l0eSB3aXRoIG92ZXJsb2FkaW5nIGluIG1hdGguaC4gKi8KI2lmbmRlZiBfX2NwbHVzcGx1cwojaW5jbHVkZSA8Y29tcGxleC5oPgoKI2RlZmluZSBfVEdfQVRUUlNwIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18pKQojZGVmaW5lIF9UR19BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2Fsd2F5c19pbmxpbmVfXykpCgovLyBwcm9tb3Rpb24KCnR5cGVkZWYgdm9pZCBfQXJndW1lbnRfdHlwZV9pc19ub3RfYXJpdGhtZXRpYzsKc3RhdGljIF9Bcmd1bWVudF90eXBlX2lzX25vdF9hcml0aG1ldGljIF9fdGdfcHJvbW90ZSguLi4pCiAgX19hdHRyaWJ1dGVfXygoX191bmF2YWlsYWJsZV9fLF9fb3ZlcmxvYWRhYmxlX18pKTsKc3RhdGljIGRvdWJsZSAgICAgICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGludCk7CnN0YXRpYyBkb3VibGUgICAgICAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZSh1bnNpZ25lZCBpbnQpOwpzdGF0aWMgZG91YmxlICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUobG9uZyk7CnN0YXRpYyBkb3VibGUgICAgICAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZSh1bnNpZ25lZCBsb25nKTsKc3RhdGljIGRvdWJsZSAgICAgICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGxvbmcgbG9uZyk7CnN0YXRpYyBkb3VibGUgICAgICAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZSh1bnNpZ25lZCBsb25nIGxvbmcpOwpzdGF0aWMgZmxvYXQgICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUoZmxvYXQpOwpzdGF0aWMgZG91YmxlICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUoZG91YmxlKTsKc3RhdGljIGxvbmcgZG91YmxlICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGxvbmcgZG91YmxlKTsKc3RhdGljIGZsb2F0IF9Db21wbGV4ICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGZsb2F0IF9Db21wbGV4KTsKc3RhdGljIGRvdWJsZSBfQ29tcGxleCAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGRvdWJsZSBfQ29tcGxleCk7CnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleCBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShsb25nIGRvdWJsZSBfQ29tcGxleCk7CgojZGVmaW5lIF9fdGdfcHJvbW90ZTEoX194KSAgICAgICAgICAgKF9fdHlwZW9mX18oX190Z19wcm9tb3RlKF9feCkpKQojZGVmaW5lIF9fdGdfcHJvbW90ZTIoX194LCBfX3kpICAgICAgKF9fdHlwZW9mX18oX190Z19wcm9tb3RlKF9feCkgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUoX195KSkpCiNkZWZpbmUgX190Z19wcm9tb3RlMyhfX3gsIF9feSwgX196KSAoX190eXBlb2ZfXyhfX3RnX3Byb21vdGUoX194KSArIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZShfX3kpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlKF9feikpKQoKLy8gYWNvcwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvcyhmbG9hdCBfX3gpIHtyZXR1cm4gYWNvc2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvcyhkb3VibGUgX194KSB7cmV0dXJuIGFjb3MoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBhY29zbChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3MoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhY29zZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fjb3MoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYWNvc2woX194KTt9CgojdW5kZWYgYWNvcwojZGVmaW5lIGFjb3MoX194KSBfX3RnX2Fjb3MoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGFzaW4KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW4oZmxvYXQgX194KSB7cmV0dXJuIGFzaW5mKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW4oZG91YmxlIF9feCkge3JldHVybiBhc2luKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gYXNpbmwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjYXNpbmYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbihkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhc2luKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbihsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FzaW5sKF9feCk7fQoKI3VuZGVmIGFzaW4KI2RlZmluZSBhc2luKF9feCkgX190Z19hc2luKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBhdGFuCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuKGZsb2F0IF9feCkge3JldHVybiBhdGFuZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuKGRvdWJsZSBfX3gpIHtyZXR1cm4gYXRhbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4obG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGF0YW5sKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2F0YW5mKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4oZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXRhbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4obG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhdGFubChfX3gpO30KCiN1bmRlZiBhdGFuCiNkZWZpbmUgYXRhbihfX3gpIF9fdGdfYXRhbihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gYWNvc2gKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3NoKGZsb2F0IF9feCkge3JldHVybiBhY29zaGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvc2goZG91YmxlIF9feCkge3JldHVybiBhY29zaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3NoKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBhY29zaGwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zaChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fjb3NoZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zaChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhY29zaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3NoKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYWNvc2hsKF9feCk7fQoKI3VuZGVmIGFjb3NoCiNkZWZpbmUgYWNvc2goX194KSBfX3RnX2Fjb3NoKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBhc2luaAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbmgoZmxvYXQgX194KSB7cmV0dXJuIGFzaW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luaChkb3VibGUgX194KSB7cmV0dXJuIGFzaW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbmgobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGFzaW5obChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW5oKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjYXNpbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW5oKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FzaW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbmgobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhc2luaGwoX194KTt9CgojdW5kZWYgYXNpbmgKI2RlZmluZSBhc2luaChfX3gpIF9fdGdfYXNpbmgoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGF0YW5oCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuaChmbG9hdCBfX3gpIHtyZXR1cm4gYXRhbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW5oKGRvdWJsZSBfX3gpIHtyZXR1cm4gYXRhbmgoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuaChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gYXRhbmhsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbmgoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhdGFuaGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbmgoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXRhbmgoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuaChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2F0YW5obChfX3gpO30KCiN1bmRlZiBhdGFuaAojZGVmaW5lIGF0YW5oKF9feCkgX190Z19hdGFuaChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gY29zCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jb3MoZmxvYXQgX194KSB7cmV0dXJuIGNvc2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGRvdWJsZSBfX3gpIHtyZXR1cm4gY29zKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBjb3NsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjY29zZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb3MoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjY29zKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjY29zbChfX3gpO30KCiN1bmRlZiBjb3MKI2RlZmluZSBjb3MoX194KSBfX3RnX2NvcyhfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gc2luCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19zaW4oZmxvYXQgX194KSB7cmV0dXJuIHNpbmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGRvdWJsZSBfX3gpIHtyZXR1cm4gc2luKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBzaW5sKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjc2luZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19zaW4oZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjc2luKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjc2lubChfX3gpO30KCiN1bmRlZiBzaW4KI2RlZmluZSBzaW4oX194KSBfX3RnX3NpbihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gdGFuCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z190YW4oZmxvYXQgX194KSB7cmV0dXJuIHRhbmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGRvdWJsZSBfX3gpIHtyZXR1cm4gdGFuKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGxvbmcgZG91YmxlIF9feCkge3JldHVybiB0YW5sKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjdGFuZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z190YW4oZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjdGFuKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjdGFubChfX3gpO30KCiN1bmRlZiB0YW4KI2RlZmluZSB0YW4oX194KSBfX3RnX3RhbihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gY29zaAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zaChmbG9hdCBfX3gpIHtyZXR1cm4gY29zaGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zaChkb3VibGUgX194KSB7cmV0dXJuIGNvc2goX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jb3NoKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBjb3NobChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvc2goZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNjb3NoZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb3NoKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Nvc2goX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb3NoKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjY29zaGwoX194KTt9CgojdW5kZWYgY29zaAojZGVmaW5lIGNvc2goX194KSBfX3RnX2Nvc2goX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHNpbmgKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbmgoZmxvYXQgX194KSB7cmV0dXJuIHNpbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbmgoZG91YmxlIF9feCkge3JldHVybiBzaW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luaChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gc2luaGwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19zaW5oKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjc2luaGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luaChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNzaW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luaChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NpbmhsKF9feCk7fQoKI3VuZGVmIHNpbmgKI2RlZmluZSBzaW5oKF9feCkgX190Z19zaW5oKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyB0YW5oCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z190YW5oKGZsb2F0IF9feCkge3JldHVybiB0YW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z190YW5oKGRvdWJsZSBfX3gpIHtyZXR1cm4gdGFuaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RhbmgobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHRhbmhsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuaChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3RhbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RhbmgoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjdGFuaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RhbmgobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGN0YW5obChfX3gpO30KCiN1bmRlZiB0YW5oCiNkZWZpbmUgdGFuaChfX3gpIF9fdGdfdGFuaChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gZXhwCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19leHAoZmxvYXQgX194KSB7cmV0dXJuIGV4cGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBleHBsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjZXhwZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19leHAoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjZXhwKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjZXhwbChfX3gpO30KCiN1bmRlZiBleHAKI2RlZmluZSBleHAoX194KSBfX3RnX2V4cChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbG9nCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19sb2coZmxvYXQgX194KSB7cmV0dXJuIGxvZ2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsb2dsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjbG9nZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19sb2coZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjbG9nKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjbG9nbChfX3gpO30KCiN1bmRlZiBsb2cKI2RlZmluZSBsb2coX194KSBfX3RnX2xvZyhfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gcG93CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19wb3coZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gcG93ZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Bvdyhkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIHBvdyhfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcG93KGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIHBvd2woX194LCBfX3kpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3BvdyhmbG9hdCBfQ29tcGxleCBfX3gsIGZsb2F0IF9Db21wbGV4IF9feSkge3JldHVybiBjcG93ZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Bvdyhkb3VibGUgX0NvbXBsZXggX194LCBkb3VibGUgX0NvbXBsZXggX195KSB7cmV0dXJuIGNwb3coX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Bvdyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gsIGxvbmcgZG91YmxlIF9Db21wbGV4IF9feSkKICAgIHtyZXR1cm4gY3Bvd2woX194LCBfX3kpO30KCiN1bmRlZiBwb3cKI2RlZmluZSBwb3coX194LCBfX3kpIF9fdGdfcG93KF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIHNxcnQKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NxcnQoZmxvYXQgX194KSB7cmV0dXJuIHNxcnRmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NxcnQoZG91YmxlIF9feCkge3JldHVybiBzcXJ0KF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc3FydChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gc3FydGwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19zcXJ0KGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjc3FydGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc3FydChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNzcXJ0KF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc3FydChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NxcnRsKF9feCk7fQoKI3VuZGVmIHNxcnQKI2RlZmluZSBzcXJ0KF9feCkgX190Z19zcXJ0KF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBmYWJzCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mYWJzKGZsb2F0IF9feCkge3JldHVybiBmYWJzZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mYWJzKGRvdWJsZSBfX3gpIHtyZXR1cm4gZmFicyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZhYnMobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGZhYnNsKF9feCk7fQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmFicyhmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fic2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmFicyhkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhYnMoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mYWJzKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYWJzbChfX3gpO30KCiN1bmRlZiBmYWJzCiNkZWZpbmUgZmFicyhfX3gpIF9fdGdfZmFicyhfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gYXRhbjIKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4yKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIGF0YW4yZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4yKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHtyZXR1cm4gYXRhbjIoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4yKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIGF0YW4ybChfX3gsIF9feSk7fQoKI3VuZGVmIGF0YW4yCiNkZWZpbmUgYXRhbjIoX194LCBfX3kpIF9fdGdfYXRhbjIoX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIGNicnQKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NicnQoZmxvYXQgX194KSB7cmV0dXJuIGNicnRmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NicnQoZG91YmxlIF9feCkge3JldHVybiBjYnJ0KF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2JydChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gY2JydGwoX194KTt9CgojdW5kZWYgY2JydAojZGVmaW5lIGNicnQoX194KSBfX3RnX2NicnQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNlaWwKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NlaWwoZmxvYXQgX194KSB7cmV0dXJuIGNlaWxmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NlaWwoZG91YmxlIF9feCkge3JldHVybiBjZWlsKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2VpbChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gY2VpbGwoX194KTt9CgojdW5kZWYgY2VpbAojZGVmaW5lIGNlaWwoX194KSBfX3RnX2NlaWwoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNvcHlzaWduCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jb3B5c2lnbihmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiBjb3B5c2lnbmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jb3B5c2lnbihkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIGNvcHlzaWduKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jb3B5c2lnbihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBjb3B5c2lnbmwoX194LCBfX3kpO30KCiN1bmRlZiBjb3B5c2lnbgojZGVmaW5lIGNvcHlzaWduKF9feCwgX195KSBfX3RnX2NvcHlzaWduKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBlcmYKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2VyZihmbG9hdCBfX3gpIHtyZXR1cm4gZXJmZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19lcmYoZG91YmxlIF9feCkge3JldHVybiBlcmYoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19lcmYobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGVyZmwoX194KTt9CgojdW5kZWYgZXJmCiNkZWZpbmUgZXJmKF9feCkgX190Z19lcmYoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGVyZmMKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2VyZmMoZmxvYXQgX194KSB7cmV0dXJuIGVyZmNmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2VyZmMoZG91YmxlIF9feCkge3JldHVybiBlcmZjKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXJmYyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gZXJmY2woX194KTt9CgojdW5kZWYgZXJmYwojZGVmaW5lIGVyZmMoX194KSBfX3RnX2VyZmMoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGV4cDIKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cDIoZmxvYXQgX194KSB7cmV0dXJuIGV4cDJmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cDIoZG91YmxlIF9feCkge3JldHVybiBleHAyKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwMihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwMmwoX194KTt9CgojdW5kZWYgZXhwMgojZGVmaW5lIGV4cDIoX194KSBfX3RnX2V4cDIoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGV4cG0xCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19leHBtMShmbG9hdCBfX3gpIHtyZXR1cm4gZXhwbTFmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cG0xKGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwbTEoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19leHBtMShsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwbTFsKF9feCk7fQoKI3VuZGVmIGV4cG0xCiNkZWZpbmUgZXhwbTEoX194KSBfX3RnX2V4cG0xKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBmZGltCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mZGltKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIGZkaW1mKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmRpbShkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIGZkaW0oX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZkaW0obG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gZmRpbWwoX194LCBfX3kpO30KCiN1bmRlZiBmZGltCiNkZWZpbmUgZmRpbShfX3gsIF9feSkgX190Z19mZGltKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gZmxvb3IKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Zsb29yKGZsb2F0IF9feCkge3JldHVybiBmbG9vcmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmxvb3IoZG91YmxlIF9feCkge3JldHVybiBmbG9vcihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Zsb29yKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBmbG9vcmwoX194KTt9CgojdW5kZWYgZmxvb3IKI2RlZmluZSBmbG9vcihfX3gpIF9fdGdfZmxvb3IoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGZtYQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1hKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opCiAgICB7cmV0dXJuIGZtYWYoX194LCBfX3ksIF9feik7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtYShkb3VibGUgX194LCBkb3VibGUgX195LCBkb3VibGUgX196KQogICAge3JldHVybiBmbWEoX194LCBfX3ksIF9feik7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1hKGxvbmcgZG91YmxlIF9feCxsb25nIGRvdWJsZSBfX3ksIGxvbmcgZG91YmxlIF9feikKICAgIHtyZXR1cm4gZm1hbChfX3gsIF9feSwgX196KTt9CgojdW5kZWYgZm1hCiNkZWZpbmUgZm1hKF9feCwgX195LCBfX3opICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgX190Z19mbWEoX190Z19wcm9tb3RlMygoX194KSwgKF9feSksIChfX3opKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMygoX194KSwgKF9feSksIChfX3opKShfX3kpLCBcCiAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMygoX194KSwgKF9feSksIChfX3opKShfX3opKQoKLy8gZm1heAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1heChmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiBmbWF4ZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtYXgoZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBmbWF4KF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbWF4KGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIGZtYXhsKF9feCwgX195KTt9CgojdW5kZWYgZm1heAojZGVmaW5lIGZtYXgoX194LCBfX3kpIF9fdGdfZm1heChfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIGZtaW4KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtaW4oZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gZm1pbmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbWluKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHtyZXR1cm4gZm1pbihfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1pbihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBmbWlubChfX3gsIF9feSk7fQoKI3VuZGVmIGZtaW4KI2RlZmluZSBmbWluKF9feCwgX195KSBfX3RnX2ZtaW4oX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBmbW9kCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mbW9kKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIGZtb2RmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1vZChkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIGZtb2QoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Ztb2QobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gZm1vZGwoX194LCBfX3kpO30KCiN1bmRlZiBmbW9kCiNkZWZpbmUgZm1vZChfX3gsIF9feSkgX190Z19mbW9kKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gZnJleHAKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZyZXhwKGZsb2F0IF9feCwgaW50KiBfX3kpIHtyZXR1cm4gZnJleHBmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZnJleHAoZG91YmxlIF9feCwgaW50KiBfX3kpIHtyZXR1cm4gZnJleHAoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZyZXhwKGxvbmcgZG91YmxlIF9feCwgaW50KiBfX3kpIHtyZXR1cm4gZnJleHBsKF9feCwgX195KTt9CgojdW5kZWYgZnJleHAKI2RlZmluZSBmcmV4cChfX3gsIF9feSkgX190Z19mcmV4cChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpLCBfX3kpCgovLyBoeXBvdAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfaHlwb3QoZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gaHlwb3RmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfaHlwb3QoZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBoeXBvdChfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfaHlwb3QobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gaHlwb3RsKF9feCwgX195KTt9CgojdW5kZWYgaHlwb3QKI2RlZmluZSBoeXBvdChfX3gsIF9feSkgX190Z19oeXBvdChfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gaWxvZ2IKCnN0YXRpYyBpbnQKICAgIF9UR19BVFRSUwogICAgX190Z19pbG9nYihmbG9hdCBfX3gpIHtyZXR1cm4gaWxvZ2JmKF9feCk7fQoKc3RhdGljIGludAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2lsb2diKGRvdWJsZSBfX3gpIHtyZXR1cm4gaWxvZ2IoX194KTt9CgpzdGF0aWMgaW50CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfaWxvZ2IobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGlsb2dibChfX3gpO30KCiN1bmRlZiBpbG9nYgojZGVmaW5lIGlsb2diKF9feCkgX190Z19pbG9nYihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbGRleHAKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xkZXhwKGZsb2F0IF9feCwgaW50IF9feSkge3JldHVybiBsZGV4cGYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sZGV4cChkb3VibGUgX194LCBpbnQgX195KSB7cmV0dXJuIGxkZXhwKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sZGV4cChsb25nIGRvdWJsZSBfX3gsIGludCBfX3kpIHtyZXR1cm4gbGRleHBsKF9feCwgX195KTt9CgojdW5kZWYgbGRleHAKI2RlZmluZSBsZGV4cChfX3gsIF9feSkgX190Z19sZGV4cChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpLCBfX3kpCgovLyBsZ2FtbWEKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xnYW1tYShmbG9hdCBfX3gpIHtyZXR1cm4gbGdhbW1hZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sZ2FtbWEoZG91YmxlIF9feCkge3JldHVybiBsZ2FtbWEoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sZ2FtbWEobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxnYW1tYWwoX194KTt9CgojdW5kZWYgbGdhbW1hCiNkZWZpbmUgbGdhbW1hKF9feCkgX190Z19sZ2FtbWEoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxscmludAoKc3RhdGljIGxvbmcgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xscmludChmbG9hdCBfX3gpIHtyZXR1cm4gbGxyaW50ZihfX3gpO30KCnN0YXRpYyBsb25nIGxvbmcKICAgIF9UR19BVFRSUwogICAgX190Z19sbHJpbnQoZG91YmxlIF9feCkge3JldHVybiBsbHJpbnQoX194KTt9CgpzdGF0aWMgbG9uZyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGxyaW50KGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsbHJpbnRsKF9feCk7fQoKI3VuZGVmIGxscmludAojZGVmaW5lIGxscmludChfX3gpIF9fdGdfbGxyaW50KF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBsbHJvdW5kCgpzdGF0aWMgbG9uZyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGxyb3VuZChmbG9hdCBfX3gpIHtyZXR1cm4gbGxyb3VuZGYoX194KTt9CgpzdGF0aWMgbG9uZyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGxyb3VuZChkb3VibGUgX194KSB7cmV0dXJuIGxscm91bmQoX194KTt9CgpzdGF0aWMgbG9uZyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGxyb3VuZChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbGxyb3VuZGwoX194KTt9CgojdW5kZWYgbGxyb3VuZAojZGVmaW5lIGxscm91bmQoX194KSBfX3RnX2xscm91bmQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxvZzEwCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19sb2cxMChmbG9hdCBfX3gpIHtyZXR1cm4gbG9nMTBmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZzEwKGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nMTAoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sb2cxMChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nMTBsKF9feCk7fQoKI3VuZGVmIGxvZzEwCiNkZWZpbmUgbG9nMTAoX194KSBfX3RnX2xvZzEwKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBsb2cxcAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMXAoZmxvYXQgX194KSB7cmV0dXJuIGxvZzFwZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sb2cxcChkb3VibGUgX194KSB7cmV0dXJuIGxvZzFwKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMXAobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxvZzFwbChfX3gpO30KCiN1bmRlZiBsb2cxcAojZGVmaW5lIGxvZzFwKF9feCkgX190Z19sb2cxcChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbG9nMgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMihmbG9hdCBfX3gpIHtyZXR1cm4gbG9nMmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMihkb3VibGUgX194KSB7cmV0dXJuIGxvZzIoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sb2cyKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsb2cybChfX3gpO30KCiN1bmRlZiBsb2cyCiNkZWZpbmUgbG9nMihfX3gpIF9fdGdfbG9nMihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbG9nYgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nYihmbG9hdCBfX3gpIHtyZXR1cm4gbG9nYmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nYihkb3VibGUgX194KSB7cmV0dXJuIGxvZ2IoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sb2diKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsb2dibChfX3gpO30KCiN1bmRlZiBsb2diCiNkZWZpbmUgbG9nYihfX3gpIF9fdGdfbG9nYihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbHJpbnQKCnN0YXRpYyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbHJpbnQoZmxvYXQgX194KSB7cmV0dXJuIGxyaW50ZihfX3gpO30KCnN0YXRpYyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbHJpbnQoZG91YmxlIF9feCkge3JldHVybiBscmludChfX3gpO30KCnN0YXRpYyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbHJpbnQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxyaW50bChfX3gpO30KCiN1bmRlZiBscmludAojZGVmaW5lIGxyaW50KF9feCkgX190Z19scmludChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbHJvdW5kCgpzdGF0aWMgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xyb3VuZChmbG9hdCBfX3gpIHtyZXR1cm4gbHJvdW5kZihfX3gpO30KCnN0YXRpYyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbHJvdW5kKGRvdWJsZSBfX3gpIHtyZXR1cm4gbHJvdW5kKF9feCk7fQoKc3RhdGljIGxvbmcKICAgIF9UR19BVFRSUwogICAgX190Z19scm91bmQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxyb3VuZGwoX194KTt9CgojdW5kZWYgbHJvdW5kCiNkZWZpbmUgbHJvdW5kKF9feCkgX190Z19scm91bmQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIG5lYXJieWludAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbmVhcmJ5aW50KGZsb2F0IF9feCkge3JldHVybiBuZWFyYnlpbnRmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX25lYXJieWludChkb3VibGUgX194KSB7cmV0dXJuIG5lYXJieWludChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX25lYXJieWludChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbmVhcmJ5aW50bChfX3gpO30KCiN1bmRlZiBuZWFyYnlpbnQKI2RlZmluZSBuZWFyYnlpbnQoX194KSBfX3RnX25lYXJieWludChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbmV4dGFmdGVyCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19uZXh0YWZ0ZXIoZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gbmV4dGFmdGVyZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX25leHRhZnRlcihkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIG5leHRhZnRlcihfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbmV4dGFmdGVyKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIG5leHRhZnRlcmwoX194LCBfX3kpO30KCiN1bmRlZiBuZXh0YWZ0ZXIKI2RlZmluZSBuZXh0YWZ0ZXIoX194LCBfX3kpIF9fdGdfbmV4dGFmdGVyKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIG5leHR0b3dhcmQKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX25leHR0b3dhcmQoZmxvYXQgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gbmV4dHRvd2FyZGYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19uZXh0dG93YXJkKGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBuZXh0dG93YXJkKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19uZXh0dG93YXJkKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIG5leHR0b3dhcmRsKF9feCwgX195KTt9CgojdW5kZWYgbmV4dHRvd2FyZAojZGVmaW5lIG5leHR0b3dhcmQoX194LCBfX3kpIF9fdGdfbmV4dHRvd2FyZChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpLCAoX195KSkKCi8vIHJlbWFpbmRlcgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcmVtYWluZGVyKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIHJlbWFpbmRlcmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yZW1haW5kZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiByZW1haW5kZXIoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JlbWFpbmRlcihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiByZW1haW5kZXJsKF9feCwgX195KTt9CgojdW5kZWYgcmVtYWluZGVyCiNkZWZpbmUgcmVtYWluZGVyKF9feCwgX195KSBfX3RnX3JlbWFpbmRlcihfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyByZW1xdW8KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JlbXF1byhmbG9hdCBfX3gsIGZsb2F0IF9feSwgaW50KiBfX3opCiAgICB7cmV0dXJuIHJlbXF1b2YoX194LCBfX3ksIF9feik7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JlbXF1byhkb3VibGUgX194LCBkb3VibGUgX195LCBpbnQqIF9feikKICAgIHtyZXR1cm4gcmVtcXVvKF9feCwgX195LCBfX3opO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JlbXF1byhsb25nIGRvdWJsZSBfX3gsbG9uZyBkb3VibGUgX195LCBpbnQqIF9feikKICAgIHtyZXR1cm4gcmVtcXVvbChfX3gsIF9feSwgX196KTt9CgojdW5kZWYgcmVtcXVvCiNkZWZpbmUgcmVtcXVvKF9feCwgX195LCBfX3opICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBfX3RnX3JlbXF1byhfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpLCBcCiAgICAgICAgICAgICAgICAgICAgKF9feikpCgovLyByaW50CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19yaW50KGZsb2F0IF9feCkge3JldHVybiByaW50ZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yaW50KGRvdWJsZSBfX3gpIHtyZXR1cm4gcmludChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JpbnQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHJpbnRsKF9feCk7fQoKI3VuZGVmIHJpbnQKI2RlZmluZSByaW50KF9feCkgX190Z19yaW50KF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyByb3VuZAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcm91bmQoZmxvYXQgX194KSB7cmV0dXJuIHJvdW5kZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yb3VuZChkb3VibGUgX194KSB7cmV0dXJuIHJvdW5kKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcm91bmQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHJvdW5kbChfX3gpO30KCiN1bmRlZiByb3VuZAojZGVmaW5lIHJvdW5kKF9feCkgX190Z19yb3VuZChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gc2NhbGJuCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19zY2FsYm4oZmxvYXQgX194LCBpbnQgX195KSB7cmV0dXJuIHNjYWxibmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19zY2FsYm4oZG91YmxlIF9feCwgaW50IF9feSkge3JldHVybiBzY2FsYm4oX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NjYWxibihsb25nIGRvdWJsZSBfX3gsIGludCBfX3kpIHtyZXR1cm4gc2NhbGJubChfX3gsIF9feSk7fQoKI3VuZGVmIHNjYWxibgojZGVmaW5lIHNjYWxibihfX3gsIF9feSkgX190Z19zY2FsYm4oX190Z19wcm9tb3RlMSgoX194KSkoX194KSwgX195KQoKLy8gc2NhbGJsbgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2NhbGJsbihmbG9hdCBfX3gsIGxvbmcgX195KSB7cmV0dXJuIHNjYWxibG5mKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2NhbGJsbihkb3VibGUgX194LCBsb25nIF9feSkge3JldHVybiBzY2FsYmxuKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19zY2FsYmxuKGxvbmcgZG91YmxlIF9feCwgbG9uZyBfX3kpIHtyZXR1cm4gc2NhbGJsbmwoX194LCBfX3kpO30KCiN1bmRlZiBzY2FsYmxuCiNkZWZpbmUgc2NhbGJsbihfX3gsIF9feSkgX190Z19zY2FsYmxuKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCksIF9feSkKCi8vIHRnYW1tYQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGdhbW1hKGZsb2F0IF9feCkge3JldHVybiB0Z2FtbWFmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RnYW1tYShkb3VibGUgX194KSB7cmV0dXJuIHRnYW1tYShfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RnYW1tYShsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gdGdhbW1hbChfX3gpO30KCiN1bmRlZiB0Z2FtbWEKI2RlZmluZSB0Z2FtbWEoX194KSBfX3RnX3RnYW1tYShfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gdHJ1bmMKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RydW5jKGZsb2F0IF9feCkge3JldHVybiB0cnVuY2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdHJ1bmMoZG91YmxlIF9feCkge3JldHVybiB0cnVuYyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RydW5jKGxvbmcgZG91YmxlIF9feCkge3JldHVybiB0cnVuY2woX194KTt9CgojdW5kZWYgdHJ1bmMKI2RlZmluZSB0cnVuYyhfX3gpIF9fdGdfdHJ1bmMoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNhcmcKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NhcmcoZmxvYXQgX194KSB7cmV0dXJuIGF0YW4yZigwLkYsIF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NhcmcoZG91YmxlIF9feCkge3JldHVybiBhdGFuMigwLiwgX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jYXJnKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBhdGFuMmwoMC5MLCBfX3gpO30KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NhcmcoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhcmdmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NhcmcoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXJnKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2FyZyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FyZ2woX194KTt9CgojdW5kZWYgY2FyZwojZGVmaW5lIGNhcmcoX194KSBfX3RnX2NhcmcoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNpbWFnCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jaW1hZyhmbG9hdCBfX3gpIHtyZXR1cm4gMDt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2ltYWcoZG91YmxlIF9feCkge3JldHVybiAwO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NpbWFnKGxvbmcgZG91YmxlIF9feCkge3JldHVybiAwO30KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NpbWFnKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjaW1hZ2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2ltYWcoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjaW1hZyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NpbWFnKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjaW1hZ2woX194KTt9CgojdW5kZWYgY2ltYWcKI2RlZmluZSBjaW1hZyhfX3gpIF9fdGdfY2ltYWcoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNvbmoKCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NvbmooZmxvYXQgX194KSB7cmV0dXJuIF9feDt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29uaihkb3VibGUgX194KSB7cmV0dXJuIF9feDt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb25qKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29uaihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY29uamYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29uaihkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNvbmooX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb25qKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjb25qbChfX3gpO30KCiN1bmRlZiBjb25qCiNkZWZpbmUgY29uaihfX3gpIF9fdGdfY29uaihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gY3Byb2oKCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nwcm9qKGZsb2F0IF9feCkge3JldHVybiBjcHJvamYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3Byb2ooZG91YmxlIF9feCkge3JldHVybiBjcHJvaihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nwcm9qKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBjcHJvamwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jcHJvaihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3Byb2pmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nwcm9qKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3Byb2ooX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jcHJvaihsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3Byb2psKF9feCk7fQoKI3VuZGVmIGNwcm9qCiNkZWZpbmUgY3Byb2ooX194KSBfX3RnX2Nwcm9qKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjcmVhbAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3JlYWwoZmxvYXQgX194KSB7cmV0dXJuIF9feDt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3JlYWwoZG91YmxlIF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3JlYWwobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIF9feDt9CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jcmVhbChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3JlYWxmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NyZWFsKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3JlYWwoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jcmVhbChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3JlYWxsKF9feCk7fQoKI3VuZGVmIGNyZWFsCiNkZWZpbmUgY3JlYWwoX194KSBfX3RnX2NyZWFsKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgojdW5kZWYgX1RHX0FUVFJTcAojdW5kZWYgX1RHX0FUVFJTCgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KI2VuZGlmIC8qIF9faGFzX2luY2x1ZGVfbmV4dCAqLwojZW5kaWYgLyogX19DTEFOR19UR01BVEhfSCAqLwoAdmFkZWZzLmgALyo9PT0tLS0tIHZhcmFyZ3MuaCAtIFZhcmlhYmxlIGFyZ3VtZW50IGhhbmRsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KKgoqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgoqCio9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQoqLwojaWZuZGVmIF9fVkFSQVJHU19ICiNkZWZpbmUgX19WQVJBUkdTX0gKICAjZXJyb3IgIlBsZWFzZSB1c2UgPHN0ZGFyZy5oPiBpbnN0ZWFkIG9mIDx2YXJhcmdzLmg+IgojZW5kaWYKAC8qPT09LS0tLSB3YXNtX3NpbWQxMjguaCAtIFdlYkFzc2VtYmx5IHBvcnRhYmxlIFNJTUQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19XQVNNX1NJTUQxMjhfSAojZGVmaW5lIF9fV0FTTV9TSU1EMTI4X0gKCiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCi8vIFVzZXItZmFjaW5nIHR5cGUKdHlwZWRlZiBpbnQzMl90IHYxMjhfdCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKCi8vIEludGVybmFsIHR5cGVzIGRldGVybWluZWQgYnkgY2xhbmcgYnVpbHRpbiBkZWZpbml0aW9ucwp0eXBlZGVmIGludDMyX3QgX192MTI4X3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBzaWduZWQgY2hhciBfX2k4eDE2CiAgICBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdTh4MTYKICAgIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIHNob3J0IF9faTE2eDggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX191MTZ4OAogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgaW50IF9faTMyeDQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyeDQKICAgIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX2k2NHgyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3U2NHgyCiAgICBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBmbG9hdCBfX2YzMng0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIGRvdWJsZSBfX2Y2NHgyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwoKdHlwZWRlZiBzaWduZWQgY2hhciBfX2k4eDggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191OHg4CiAgICBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCksIF9fYWxpZ25lZF9fKDgpKSk7CnR5cGVkZWYgc2hvcnQgX19pMTZ4NCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCksIF9fYWxpZ25lZF9fKDgpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX191MTZ4NAogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwp0eXBlZGVmIGludCBfX2kzMngyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSwgX19hbGlnbmVkX18oOCkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191MzJ4MgogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwp0eXBlZGVmIGZsb2F0IF9fZjMyeDIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwoKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNpbWQxMjgiKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCiNkZWZpbmUgX19SRVFVSVJFX0NPTlNUQU5UKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19kaWFnbm9zZV9pZl9fKCFfX2J1aWx0aW5fY29uc3RhbnRfcChjKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjICIgbXVzdCBiZSBjb25zdGFudCIsICJlcnJvciIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X2xvYWQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICAvLyBVQi1mcmVlIHVuYWxpZ25lZCBhY2Nlc3MgY29waWVkIGZyb20geG1taW50cmluLmgKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZF9zdHJ1Y3QgewogICAgX192MTI4X3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkX3N0cnVjdCAqKV9fbWVtKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdjEyOF9sb2FkOF9zcGxhdChjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkOF9zcGxhdF9zdHJ1Y3QgewogICAgdWludDhfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgdWludDhfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkOF9zcGxhdF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkoX191OHgxNil7X192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192fTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3YxMjhfbG9hZDE2X3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQxNl9zcGxhdF9zdHJ1Y3QgewogICAgdWludDE2X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHVpbnQxNl90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQxNl9zcGxhdF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkoX191MTZ4OCl7X192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3Z9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdjEyOF9sb2FkMzJfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX3NwbGF0X3N0cnVjdCB7CiAgICB1aW50MzJfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgdWludDMyX3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX3NwbGF0X3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KShfX3UzMng0KXtfX3YsIF9fdiwgX192LCBfX3Z9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdjEyOF9sb2FkNjRfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDY0X3NwbGF0X3N0cnVjdCB7CiAgICB1aW50NjRfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgdWludDY0X3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDY0X3NwbGF0X3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KShfX3U2NHgyKXtfX3YsIF9fdn07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9sb2FkOHg4KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV9pMTZ4OF9sb2FkOHg4X3N0cnVjdCB7CiAgICBfX2k4eDggX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9faTh4OCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21faTE2eDhfbG9hZDh4OF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX192LCBfX2kxNng4KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X2xvYWQ4eDgoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3UxNng4X2xvYWQ4eDhfc3RydWN0IHsKICAgIF9fdTh4OCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX191OHg4IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV91MTZ4OF9sb2FkOHg4X3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3YsIF9fdTE2eDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfbG9hZDE2eDQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX2kzMng0X2xvYWQxNng0X3N0cnVjdCB7CiAgICBfX2kxNng0IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX2kxNng0IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV9pMzJ4NF9sb2FkMTZ4NF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX192LCBfX2kzMng0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2xvYWQxNng0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV91MzJ4NF9sb2FkMTZ4NF9zdHJ1Y3QgewogICAgX191MTZ4NCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX191MTZ4NCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdTMyeDRfbG9hZDE2eDRfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fdiwgX191MzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pNjR4Ml9sb2FkMzJ4Mihjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21faTY0eDJfbG9hZDMyeDJfc3RydWN0IHsKICAgIF9faTMyeDIgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9faTMyeDIgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX2k2NHgyX2xvYWQzMngyX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3YsIF9faTY0eDIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTY0eDJfbG9hZDMyeDIoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3U2NHgyX2xvYWQzMngyX3N0cnVjdCB7CiAgICBfX3UzMngyIF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX3UzMngyIF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV91NjR4Ml9sb2FkMzJ4Ml9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX192LCBfX3U2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3YxMjhfbG9hZDMyX3plcm8oY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX3plcm9fc3RydWN0IHsKICAgIGludDMyX3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludDMyX3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX3plcm9fc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpKF9faTMyeDQpe19fdiwgMCwgMCwgMH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV92MTI4X2xvYWQ2NF96ZXJvKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF96ZXJvX3N0cnVjdCB7CiAgICBpbnQ2NF90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBpbnQ2NF90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF96ZXJvX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KShfX2k2NHgyKXtfX3YsIDB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9sb2FkOF9sYW5lKAogICAgY29uc3Qgdm9pZCAqX19tZW0sIHYxMjhfdCBfX3ZlYywgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkOF9sYW5lX3N0cnVjdCB7CiAgICBpbnQ4X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludDhfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkOF9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIF9faTh4MTYgX19yZXQgPSAoX19pOHgxNilfX3ZlYzsKICBfX3JldFtfX2ldID0gX192OwogIHJldHVybiAodjEyOF90KV9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9sb2FkMTZfbGFuZSgKICAgIGNvbnN0IHZvaWQgKl9fbWVtLCB2MTI4X3QgX192ZWMsIGludCBfX2kpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDE2X2xhbmVfc3RydWN0IHsKICAgIGludDE2X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludDE2X3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDE2X2xhbmVfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgX19pMTZ4OCBfX3JldCA9IChfX2kxNng4KV9fdmVjOwogIF9fcmV0W19faV0gPSBfX3Y7CiAgcmV0dXJuICh2MTI4X3QpX19yZXQ7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X2xvYWQzMl9sYW5lKAogICAgY29uc3Qgdm9pZCAqX19tZW0sIHYxMjhfdCBfX3ZlYywgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkMzJfbGFuZV9zdHJ1Y3QgewogICAgaW50MzJfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgaW50MzJfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkMzJfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICBfX2kzMng0IF9fcmV0ID0gKF9faTMyeDQpX192ZWM7CiAgX19yZXRbX19pXSA9IF9fdjsKICByZXR1cm4gKHYxMjhfdClfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfbG9hZDY0X2xhbmUoCiAgICBjb25zdCB2b2lkICpfX21lbSwgdjEyOF90IF9fdmVjLCBpbnQgX19pKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF9sYW5lX3N0cnVjdCB7CiAgICBpbnQ2NF90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBpbnQ2NF90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIF9faTY0eDIgX19yZXQgPSAoX19pNjR4MilfX3ZlYzsKICBfX3JldFtfX2ldID0gX192OwogIHJldHVybiAodjEyOF90KV9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfc3RvcmUodm9pZCAqX19tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19hKSB7CiAgLy8gVUItZnJlZSB1bmFsaWduZWQgYWNjZXNzIGNvcGllZCBmcm9tIHhtbWludHJpbi5oCiAgc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlX3N0cnVjdCB7CiAgICBfX3YxMjhfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX193YXNtX3YxMjhfc3RvcmVfc3RydWN0ICopX19tZW0pLT5fX3YgPSBfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9zdG9yZThfbGFuZSh2b2lkICpfX21lbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlOF9sYW5lX3N0cnVjdCB7CiAgICBpbnQ4X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlOF9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192ID0gKChfX2k4eDE2KV9fdmVjKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfc3RvcmUxNl9sYW5lKHZvaWQgKl9fbWVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZTE2X2xhbmVfc3RydWN0IHsKICAgIGludDE2X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlMTZfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdiA9CiAgICAgICgoX19pMTZ4OClfX3ZlYylbX19pXTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X3N0b3JlMzJfbGFuZSh2b2lkICpfX21lbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfc3RvcmUzMl9sYW5lX3N0cnVjdCB7CiAgICBpbnQzMl90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZTMyX2xhbmVfc3RydWN0ICopX19tZW0pLT5fX3YgPQogICAgICAoKF9faTMyeDQpX192ZWMpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9zdG9yZTY0X2xhbmUodm9pZCAqX19tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlNjRfbGFuZV9zdHJ1Y3QgewogICAgaW50NjRfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX193YXNtX3YxMjhfc3RvcmU2NF9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192ID0KICAgICAgKChfX2k2NHgyKV9fdmVjKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTh4MTZfbWFrZShpbnQ4X3QgX19jMCwgaW50OF90IF9fYzEsIGludDhfdCBfX2MyLCBpbnQ4X3QgX19jMywgaW50OF90IF9fYzQsCiAgICAgICAgICAgICAgICBpbnQ4X3QgX19jNSwgaW50OF90IF9fYzYsIGludDhfdCBfX2M3LCBpbnQ4X3QgX19jOCwgaW50OF90IF9fYzksCiAgICAgICAgICAgICAgICBpbnQ4X3QgX19jMTAsIGludDhfdCBfX2MxMSwgaW50OF90IF9fYzEyLCBpbnQ4X3QgX19jMTMsCiAgICAgICAgICAgICAgICBpbnQ4X3QgX19jMTQsIGludDhfdCBfX2MxNSkgewogIHJldHVybiAodjEyOF90KShfX2k4eDE2KXtfX2MwLCAgX19jMSwgIF9fYzIsICBfX2MzLCBfX2M0LCAgX19jNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNiwgIF9fYzcsICBfX2M4LCAgX19jOSwgX19jMTAsIF9fYzExLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxMiwgX19jMTMsIF9fYzE0LCBfX2MxNX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91OHgxNl9tYWtlKHVpbnQ4X3QgX19jMCwgdWludDhfdCBfX2MxLCB1aW50OF90IF9fYzIsIHVpbnQ4X3QgX19jMywKICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jNCwgdWludDhfdCBfX2M1LCB1aW50OF90IF9fYzYsIHVpbnQ4X3QgX19jNywKICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jOCwgdWludDhfdCBfX2M5LCB1aW50OF90IF9fYzEwLCB1aW50OF90IF9fYzExLAogICAgICAgICAgICAgICAgdWludDhfdCBfX2MxMiwgdWludDhfdCBfX2MxMywgdWludDhfdCBfX2MxNCwgdWludDhfdCBfX2MxNSkgewogIHJldHVybiAodjEyOF90KShfX3U4eDE2KXtfX2MwLCAgX19jMSwgIF9fYzIsICBfX2MzLCBfX2M0LCAgX19jNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNiwgIF9fYzcsICBfX2M4LCAgX19jOSwgX19jMTAsIF9fYzExLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxMiwgX19jMTMsIF9fYzE0LCBfX2MxNX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9tYWtlKGludDE2X3QgX19jMCwgaW50MTZfdCBfX2MxLCBpbnQxNl90IF9fYzIsIGludDE2X3QgX19jMywKICAgICAgICAgICAgICAgIGludDE2X3QgX19jNCwgaW50MTZfdCBfX2M1LCBpbnQxNl90IF9fYzYsIGludDE2X3QgX19jNykgewogIHJldHVybiAodjEyOF90KShfX2kxNng4KXtfX2MwLCBfX2MxLCBfX2MyLCBfX2MzLCBfX2M0LCBfX2M1LCBfX2M2LCBfX2M3fTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X21ha2UodWludDE2X3QgX19jMCwgdWludDE2X3QgX19jMSwgdWludDE2X3QgX19jMiwgdWludDE2X3QgX19jMywKICAgICAgICAgICAgICAgIHVpbnQxNl90IF9fYzQsIHVpbnQxNl90IF9fYzUsIHVpbnQxNl90IF9fYzYsIHVpbnQxNl90IF9fYzcpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MTZ4OCl7X19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jN307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9tYWtlKGludDMyX3QgX19jMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBfX2MxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IF9fYzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgX19jMykgewogIHJldHVybiAodjEyOF90KShfX2kzMng0KXtfX2MwLCBfX2MxLCBfX2MyLCBfX2MzfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X21ha2UodWludDMyX3QgX19jMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19jMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19jMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19jMykgewogIHJldHVybiAodjEyOF90KShfX3UzMng0KXtfX2MwLCBfX2MxLCBfX2MyLCBfX2MzfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX21ha2UoaW50NjRfdCBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pNjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9tYWtlKHVpbnQ2NF90IF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX191NjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9tYWtlKGZsb2F0IF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IF9fYzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IF9fYzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IF9fYzMpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mMzJ4NCl7X19jMCwgX19jMSwgX19jMiwgX19jM307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9tYWtlKGRvdWJsZSBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgX19jMSkgewogIHJldHVybiAodjEyOF90KShfX2Y2NHgyKXtfX2MwLCBfX2MxfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k4eDE2X2NvbnN0KGludDhfdCBfX2MwLCBpbnQ4X3QgX19jMSwgaW50OF90IF9fYzIsIGludDhfdCBfX2MzLAogICAgICAgICAgICAgICAgIGludDhfdCBfX2M0LCBpbnQ4X3QgX19jNSwgaW50OF90IF9fYzYsIGludDhfdCBfX2M3LAogICAgICAgICAgICAgICAgIGludDhfdCBfX2M4LCBpbnQ4X3QgX19jOSwgaW50OF90IF9fYzEwLCBpbnQ4X3QgX19jMTEsCiAgICAgICAgICAgICAgICAgaW50OF90IF9fYzEyLCBpbnQ4X3QgX19jMTMsIGludDhfdCBfX2MxNCwgaW50OF90IF9fYzE1KQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzQpCiAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M1KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNikKICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M3KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jOCkKICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jOSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEwKQogICAgICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxNSkgewogIHJldHVybiAodjEyOF90KShfX2k4eDE2KXtfX2MwLCAgX19jMSwgIF9fYzIsICBfX2MzLCBfX2M0LCAgX19jNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNiwgIF9fYzcsICBfX2M4LCAgX19jOSwgX19jMTAsIF9fYzExLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxMiwgX19jMTMsIF9fYzE0LCBfX2MxNX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91OHgxNl9jb25zdCh1aW50OF90IF9fYzAsIHVpbnQ4X3QgX19jMSwgdWludDhfdCBfX2MyLCB1aW50OF90IF9fYzMsCiAgICAgICAgICAgICAgICAgdWludDhfdCBfX2M0LCB1aW50OF90IF9fYzUsIHVpbnQ4X3QgX19jNiwgdWludDhfdCBfX2M3LAogICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jOCwgdWludDhfdCBfX2M5LCB1aW50OF90IF9fYzEwLCB1aW50OF90IF9fYzExLAogICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jMTIsIHVpbnQ4X3QgX19jMTMsIHVpbnQ4X3QgX19jMTQsIHVpbnQ4X3QgX19jMTUpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNCkKICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzUpIF9fUkVRVUlSRV9DT05TVEFOVChfX2M2KQogICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzcpIF9fUkVRVUlSRV9DT05TVEFOVChfX2M4KQogICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M5KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTApCiAgICAgICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEzKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzE1KSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTh4MTYpe19fYzAsICBfX2MxLCAgX19jMiwgIF9fYzMsIF9fYzQsICBfX2M1LAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2M2LCAgX19jNywgIF9fYzgsICBfX2M5LCBfX2MxMCwgX19jMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzEyLCBfX2MxMywgX19jMTQsIF9fYzE1fTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kxNng4X2NvbnN0KGludDE2X3QgX19jMCwgaW50MTZfdCBfX2MxLCBpbnQxNl90IF9fYzIsIGludDE2X3QgX19jMywKICAgICAgICAgICAgICAgICBpbnQxNl90IF9fYzQsIGludDE2X3QgX19jNSwgaW50MTZfdCBfX2M2LCBpbnQxNl90IF9fYzcpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNCkKICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzUpIF9fUkVRVUlSRV9DT05TVEFOVChfX2M2KQogICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzcpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMTZ4OCl7X19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jN307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9jb25zdCh1aW50MTZfdCBfX2MwLCB1aW50MTZfdCBfX2MxLCB1aW50MTZfdCBfX2MyLCB1aW50MTZfdCBfX2MzLAogICAgICAgICAgICAgICAgIHVpbnQxNl90IF9fYzQsIHVpbnQxNl90IF9fYzUsIHVpbnQxNl90IF9fYzYsIHVpbnQxNl90IF9fYzcpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNCkKICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzUpIF9fUkVRVUlSRV9DT05TVEFOVChfX2M2KQogICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzcpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MTZ4OCl7X19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jN307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMzJ4NF9jb25zdChpbnQzMl90IF9fYzAsIGludDMyX3QgX19jMSwgaW50MzJfdCBfX2MyLCBpbnQzMl90IF9fYzMpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTMyeDQpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzN9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfY29uc3QodWludDMyX3QgX19jMCwgdWludDMyX3QgX19jMSwgdWludDMyX3QgX19jMiwgdWludDMyX3QgX19jMykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MwKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzIpCiAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzMpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MzJ4NCl7X19jMCwgX19jMSwgX19jMiwgX19jM307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9jb25zdChpbnQ2NF90IF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IF9fYzEpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pNjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9jb25zdCh1aW50NjRfdCBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgX19jMSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MwKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMSkgewogIHJldHVybiAodjEyOF90KShfX3U2NHgyKXtfX2MwLCBfX2MxfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2YzMng0X2NvbnN0KGZsb2F0IF9fYzAsIGZsb2F0IF9fYzEsIGZsb2F0IF9fYzIsIGZsb2F0IF9fYzMpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fZjMyeDQpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzN9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfY29uc3QoZG91YmxlIF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgX19jMSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MwKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMSkgewogIHJldHVybiAodjEyOF90KShfX2Y2NHgyKXtfX2MwLCBfX2MxfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2NvbnN0X3NwbGF0KGludDhfdCBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTh4MTYpe19fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fY307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9jb25zdF9zcGxhdCh1aW50OF90IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX191OHgxNil7X19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2NvbnN0X3NwbGF0KGludDE2X3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX2kxNng4KXtfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fY307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9jb25zdF9zcGxhdCh1aW50MTZfdCBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTE2eDgpe19fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2NvbnN0X3NwbGF0KGludDMyX3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX2kzMng0KXtfX2MsIF9fYywgX19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfY29uc3Rfc3BsYXQodWludDMyX3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX3UzMng0KXtfX2MsIF9fYywgX19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfY29uc3Rfc3BsYXQoaW50NjRfdCBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTY0eDIpe19fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U2NHgyX2NvbnN0X3NwbGF0KHVpbnQ2NF90IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX191NjR4Mil7X19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfY29uc3Rfc3BsYXQoZmxvYXQgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX2YzMng0KXtfX2MsIF9fYywgX19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfY29uc3Rfc3BsYXQoZG91YmxlIF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mNjR4Mil7X19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfc3BsYXQoaW50OF90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2k4eDE2KXtfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfc3BsYXQodWludDhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX191OHgxNil7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50OF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX19pOHgxNilfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfZXh0cmFjdF9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX191OHgxNilfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9yZXBsYWNlX2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDhfdCBfX2IpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX19pOHgxNiBfX3YgPSAoX19pOHgxNilfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IF9fYikKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX3U4eDE2IF9fdiA9IChfX3U4eDE2KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9zcGxhdChpbnQxNl90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2kxNng4KXtfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9zcGxhdCh1aW50MTZfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MTZ4OCl7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9faTE2eDgpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fdTE2eDgpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90IF9fYikKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX2kxNng4IF9fdiA9IChfX2kxNng4KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9yZXBsYWNlX2xhbmUoCiAgICB2MTI4X3QgX19hLCBpbnQgX19pLCB1aW50MTZfdCBfX2IpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX3UxNng4IF9fdiA9IChfX3UxNng4KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9zcGxhdChpbnQzMl90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2kzMng0KXtfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfc3BsYXQodWludDMyX3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTMyeDQpe19fYSwgX19hLCBfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfZXh0cmFjdF9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX19pMzJ4NClfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLCBpbnQgX19pKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX191MzJ4NClfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9yZXBsYWNlX2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgX19iKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9faTMyeDQgX192ID0gKF9faTMyeDQpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X3JlcGxhY2VfbGFuZSgKICAgIHYxMjhfdCBfX2EsIGludCBfX2ksIHVpbnQzMl90IF9fYikgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9fdTMyeDQgX192ID0gKF9fdTMyeDQpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX3NwbGF0KGludDY0X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTY0eDIpe19fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U2NHgyX3NwbGF0KHVpbnQ2NF90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX3U2NHgyKXtfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludDY0X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfZXh0cmFjdF9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX19pNjR4MilfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLCBpbnQgX19pKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX191NjR4MilfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9yZXBsYWNlX2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgX19iKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9faTY0eDIgX192ID0gKF9faTY0eDIpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U2NHgyX3JlcGxhY2VfbGFuZSgKICAgIHYxMjhfdCBfX2EsIGludCBfX2ksIHVpbnQ2NF90IF9fYikgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9fdTY0eDIgX192ID0gKF9fdTY0eDIpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X3NwbGF0KGZsb2F0IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2YzMng0KXtfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX19mMzJ4NClfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9yZXBsYWNlX2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IF9fYikKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX2YzMng0IF9fdiA9IChfX2YzMng0KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9zcGxhdChkb3VibGUgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fZjY0eDIpe19fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgcmV0dXJuICgoX19mNjR4MilfX2EpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9yZXBsYWNlX2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBfX2IpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX19mNjR4MiBfX3YgPSAoX19mNjR4MilfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfZXEodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTh4MTYpX19hID09IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9uZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pOHgxNilfX2EgIT0gKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA8IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgPCAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTh4MTYpX19hID4gKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U4eDE2KV9fYSA+IChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pOHgxNilfX2EgPD0gKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U4eDE2KV9fYSA8PSAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTh4MTYpX19hID49IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgPj0gKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2VxKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kxNng4KV9fYSA9PSAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hICE9IChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPCAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hIDwgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kxNng4KV9fYSA+IChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OClfX2EgPiAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpX19hIDw9IChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OClfX2EgPD0gKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kxNng4KV9fYSA+PSAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hID49IChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9lcSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NClfX2EgPT0gKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X25lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KV9fYSAhPSAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hIDwgKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSA8IChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NClfX2EgPiAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTMyeDQpX19hID4gKF9fdTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KV9fYSA8PSAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTMyeDQpX19hIDw9IChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NClfX2EgPj0gKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSA+PSAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfZXEodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hID09IChfX2k2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9uZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4MilfX2EgIT0gKF9faTY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKV9fYSA8IChfX2k2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4MilfX2EgPiAoX19pNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hIDw9IChfX2k2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4MilfX2EgPj0gKF9faTY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2VxKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2YzMng0KV9fYSA9PSAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hICE9IChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgPCAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hID4gKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2YzMng0KV9fYSA8PSAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hID49IChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9lcSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgPT0gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX25lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2Y2NHgyKV9fYSAhPSAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hIDwgKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2Y2NHgyKV9fYSA+IChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgPD0gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2Y2NHgyKV9fYSA+PSAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9ub3QodjEyOF90IF9fYSkgewogIHJldHVybiB+X19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9hbmQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9vcih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfeG9yKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfYW5kbm90KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGJvb2wgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9hbnlfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2FueV90cnVlX3YxMjgoKF9faTh4MTYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfYml0c2VsZWN0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fbWFzaykgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2JpdHNlbGVjdCgoX19pMzJ4NClfX2EsIChfX2kzMng0KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9faTMyeDQpX19tYXNrKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2Ficyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWJzX2k4eDE2KChfX2k4eDE2KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9uZWcodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSgtKF9fdTh4MTYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9hbGxfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2FsbF90cnVlX2k4eDE2KChfX2k4eDE2KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2JpdG1hc2sodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9iaXRtYXNrX2k4eDE2KChfX2k4eDE2KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9wb3BjbnQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3BvcGNudF9pOHgxNigoX19pOHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfc2hsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA8PCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA+PiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U4eDE2KV9fYSA+PiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfYWRkKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgKyAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfYWRkX3NhdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWRkX3NhdF9zX2k4eDE2KChfX2k4eDE2KV9fYSwgKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X2FkZF9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2FkZF9zYXRfdV9pOHgxNigoX191OHgxNilfX2EsIChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9zdWIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U4eDE2KV9fYSAtIChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9zdWJfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zdWJfc2F0X3NfaTh4MTYoKF9faTh4MTYpX19hLCAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfc3ViX3NhdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fc3ViX3NhdF91X2k4eDE2KChfX3U4eDE2KV9fYSwgKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X21pbih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9taW5fc19pOHgxNigoX19pOHgxNilfX2EsIChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9taW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWluX3VfaTh4MTYoKF9fdTh4MTYpX19hLCAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfbWF4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21heF9zX2k4eDE2KChfX2k4eDE2KV9fYSwgKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X21heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9tYXhfdV9pOHgxNigoX191OHgxNilfX2EsIChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9hdmdyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hdmdyX3VfaTh4MTYoKF9fdTh4MTYpX19hLCAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfYWJzKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hYnNfaTE2eDgoKF9faTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X25lZyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKC0oX191MTZ4OClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBib29sIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2FsbF90cnVlKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3dhc21fYWxsX3RydWVfaTE2eDgoKF9faTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfYml0bWFzayh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2JpdG1hc2tfaTE2eDgoKF9faTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3NobCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPDwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3Nocih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPj4gX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X3Nocih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OClfX2EgPj4gX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2FkZCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hICsgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2FkZF9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2FkZF9zYXRfc19pMTZ4OCgoX19pMTZ4OClfX2EsIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9hZGRfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hZGRfc2F0X3VfaTE2eDgoKF9fdTE2eDgpX19hLCAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgLSAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfc3ViX3NhdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fc3ViX3NhdF9zX2kxNng4KChfX2kxNng4KV9fYSwgKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X3N1Yl9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3N1Yl9zYXRfdV9pMTZ4OCgoX191MTZ4OClfX2EsIChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9tdWwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KV9fYSAqIChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9taW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWluX3NfaTE2eDgoKF9faTE2eDgpX19hLCAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl91X2kxNng4KChfX3UxNng4KV9fYSwgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X21heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9tYXhfc19pMTZ4OCgoX19pMTZ4OClfX2EsIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X3VfaTE2eDgoKF9fdTE2eDgpX19hLCAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfYXZncih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYXZncl91X2kxNng4KChfX3UxNng4KV9fYSwgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2Ficyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWJzX2kzMng0KChfX2kzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9uZWcodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSgtKF9fdTMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9hbGxfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2FsbF90cnVlX2kzMng0KChfX2kzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2JpdG1hc2sodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9iaXRtYXNrX2kzMng0KChfX2kzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9zaGwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hIDw8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hID4+IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTMyeDQpX19hID4+IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9hZGQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSArIChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9zdWIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSAtIChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9tdWwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSAqIChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9taW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWluX3NfaTMyeDQoKF9faTMyeDQpX19hLCAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl91X2kzMng0KChfX3UzMng0KV9fYSwgKF9fdTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X21heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9tYXhfc19pMzJ4NCgoX19pMzJ4NClfX2EsIChfX2kzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X3VfaTMyeDQoKF9fdTMyeDQpX19hLCAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfZG90X2kxNng4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2RvdF9zX2kzMng0X2kxNng4KChfX2kxNng4KV9fYSwgKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2Ficyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWJzX2k2NHgyKChfX2k2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9uZWcodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSgtKF9fdTY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9hbGxfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2FsbF90cnVlX2k2NHgyKChfX2k2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2JpdG1hc2sodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9iaXRtYXNrX2k2NHgyKChfX2k2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9zaGwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hIDw8IChpbnQ2NF90KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hID4+IChpbnQ2NF90KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTY0eDIpX19hID4+IChpbnQ2NF90KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9hZGQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U2NHgyKV9fYSArIChfX3U2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9zdWIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U2NHgyKV9fYSAtIChfX3U2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9tdWwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U2NHgyKV9fYSAqIChfX3U2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9hYnModjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Fic19mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbmVnKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoLShfX2YzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9zcXJ0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zcXJ0X2YzMng0KChfX2YzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9jZWlsKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9jZWlsX2YzMng0KChfX2YzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9mbG9vcih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZmxvb3JfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X3RydW5jKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV90cnVuY19mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbmVhcmVzdCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbmVhcmVzdF9mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfYWRkKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgKyAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgLSAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbXVsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgKiAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfZGl2KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgLyAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl9mMzJ4NCgoX19mMzJ4NClfX2EsIChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X2YzMng0KChfX2YzMng0KV9fYSwgKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X3BtaW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3BtaW5fZjMyeDQoKF9fZjMyeDQpX19hLCAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfcG1heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fcG1heF9mMzJ4NCgoX19mMzJ4NClfX2EsIChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9hYnModjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Fic19mNjR4MigoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbmVnKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoLShfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9zcXJ0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zcXJ0X2Y2NHgyKChfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9jZWlsKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9jZWlsX2Y2NHgyKChfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9mbG9vcih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZmxvb3JfZjY0eDIoKF9fZjY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX3RydW5jKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV90cnVuY19mNjR4MigoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbmVhcmVzdCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbmVhcmVzdF9mNjR4MigoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfYWRkKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgKyAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgLSAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbXVsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgKiAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfZGl2KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgLyAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl9mNjR4MigoX19mNjR4MilfX2EsIChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X2Y2NHgyKChfX2Y2NHgyKV9fYSwgKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX3BtaW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3BtaW5fZjY0eDIoKF9fZjY0eDIpX19hLCAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfcG1heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fcG1heF9mNjR4MigoX19mNjR4MilfX2EsIChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMzJ4NF90cnVuY19zYXRfZjMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3RydW5jX3NhdHVyYXRlX3NfaTMyeDRfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X3RydW5jX3NhdF9mMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fdHJ1bmNfc2F0dXJhdGVfdV9pMzJ4NF9mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fZjMyeDRfY29udmVydF9pMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX2kzMng0KV9fYSwgX19mMzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9mMzJ4NF9jb252ZXJ0X3UzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdTMyeDQpX19hLCBfX2YzMng0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2Y2NHgyX2NvbnZlcnRfbG93X2kzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9faTMyeDIpe19fYVswXSwgX19hWzFdfSwgX19mNjR4Mik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9mNjR4Ml9jb252ZXJ0X2xvd191MzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3UzMngyKXtfX2FbMF0sIF9fYVsxXX0sIF9fZjY0eDIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfdHJ1bmNfc2F0X2Y2NHgyX3plcm8odjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3RydW5jX3NhdF96ZXJvX3NfZjY0eDJfaTMyeDQoKF9fZjY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X3RydW5jX3NhdF9mNjR4Ml96ZXJvKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV90cnVuY19zYXRfemVyb191X2Y2NHgyX2kzMng0KChfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9mMzJ4NF9kZW1vdGVfZjY0eDJfemVybyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19mNjR4MilfX2EsIChfX2Y2NHgyKXswLCAwfSwgMCwgMSwgMiwgMyksCiAgICAgIF9fZjMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fZjY0eDJfcHJvbW90ZV9sb3dfZjMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fZjMyeDIpeygoX19mMzJ4NClfX2EpWzBdLCAoKF9fZjMyeDQpX19hKVsxXX0sIF9fZjY0eDIpOwp9CgojZGVmaW5lIHdhc21faTh4MTZfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2M3LCBfX2M4LCBfX2M5LCBfX2MxMCwgX19jMTEsIF9fYzEyLCBfX2MxMywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxNCwgX19jMTUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodjEyOF90KV9fYnVpbHRpbl93YXNtX3NodWZmbGVfaTh4MTYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19pOHgxNikoX19hKSwgKF9faTh4MTYpKF9fYiksIF9fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsICAgICAgXAogICAgICBfX2M2LCBfX2M3LCBfX2M4LCBfX2M5LCBfX2MxMCwgX19jMTEsIF9fYzEyLCBfX2MxMywgX19jMTQsIF9fYzE1KSkKCiNkZWZpbmUgd2FzbV9pMTZ4OF9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzLCBfX2M0LCBfX2M1LCBfX2M2LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCh2MTI4X3QpX19idWlsdGluX3dhc21fc2h1ZmZsZV9pOHgxNiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX2k4eDE2KShfX2EpLCAoX19pOHgxNikoX19iKSwgKF9fYzApKjIsIChfX2MwKSoyICsgMSwgKF9fYzEpKjIsICAgICAgICBcCiAgICAgIChfX2MxKSoyICsgMSwgKF9fYzIpKjIsIChfX2MyKSoyICsgMSwgKF9fYzMpKjIsIChfX2MzKSoyICsgMSwgKF9fYzQpKjIsICBcCiAgICAgIChfX2M0KSoyICsgMSwgKF9fYzUpKjIsIChfX2M1KSoyICsgMSwgKF9fYzYpKjIsIChfX2M2KSoyICsgMSwgKF9fYzcpKjIsICBcCiAgICAgIChfX2M3KSoyICsgMSkpCgojZGVmaW5lIHdhc21faTMyeDRfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMykgICAgICAgICAgICAgICAgICAgXAogICgodjEyOF90KV9fYnVpbHRpbl93YXNtX3NodWZmbGVfaTh4MTYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19pOHgxNikoX19hKSwgKF9faTh4MTYpKF9fYiksIChfX2MwKSo0LCAoX19jMCkqNCArIDEsIChfX2MwKSo0ICsgMiwgICAgXAogICAgICAoX19jMCkqNCArIDMsIChfX2MxKSo0LCAoX19jMSkqNCArIDEsIChfX2MxKSo0ICsgMiwgKF9fYzEpKjQgKyAzLCAgICAgICAgXAogICAgICAoX19jMikqNCwgKF9fYzIpKjQgKyAxLCAoX19jMikqNCArIDIsIChfX2MyKSo0ICsgMywgKF9fYzMpKjQsICAgICAgICAgICAgXAogICAgICAoX19jMykqNCArIDEsIChfX2MzKSo0ICsgMiwgKF9fYzMpKjQgKyAzKSkKCiNkZWZpbmUgd2FzbV9pNjR4Ml9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCh2MTI4X3QpX19idWlsdGluX3dhc21fc2h1ZmZsZV9pOHgxNiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX2k4eDE2KShfX2EpLCAoX19pOHgxNikoX19iKSwgKF9fYzApKjgsIChfX2MwKSo4ICsgMSwgKF9fYzApKjggKyAyLCAgICBcCiAgICAgIChfX2MwKSo4ICsgMywgKF9fYzApKjggKyA0LCAoX19jMCkqOCArIDUsIChfX2MwKSo4ICsgNiwgKF9fYzApKjggKyA3LCAgICBcCiAgICAgIChfX2MxKSo4LCAoX19jMSkqOCArIDEsIChfX2MxKSo4ICsgMiwgKF9fYzEpKjggKyAzLCAoX19jMSkqOCArIDQsICAgICAgICBcCiAgICAgIChfX2MxKSo4ICsgNSwgKF9fYzEpKjggKyA2LCAoX19jMSkqOCArIDcpKQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X3N3aXp6bGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3N3aXp6bGVfaTh4MTYoKF9faTh4MTYpX19hLCAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTh4MTZfbmFycm93X2kxNng4KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9uYXJyb3dfc19pOHgxNl9pMTZ4OCgoX19pMTZ4OClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U4eDE2X25hcnJvd19pMTZ4OCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbmFycm93X3VfaTh4MTZfaTE2eDgoKF9faTE2eDgpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9uYXJyb3dfaTMyeDQodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX25hcnJvd19zX2kxNng4X2kzMng0KChfX2kzMng0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfbmFycm93X2kzMng0KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9uYXJyb3dfdV9pMTZ4OF9pMzJ4NCgoX19pMzJ4NClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kxNng4X2V4dGVuZF9sb3dfaTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9faTh4OCl7KChfX2k4eDE2KV9fYSlbMF0sICgoX19pOHgxNilfX2EpWzFdLCAoKF9faTh4MTYpX19hKVsyXSwKICAgICAgICAgICAgICAgKChfX2k4eDE2KV9fYSlbM10sICgoX19pOHgxNilfX2EpWzRdLCAoKF9faTh4MTYpX19hKVs1XSwKICAgICAgICAgICAgICAgKChfX2k4eDE2KV9fYSlbNl0sICgoX19pOHgxNilfX2EpWzddfSwKICAgICAgX19pMTZ4OCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9leHRlbmRfaGlnaF9pOHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX19pOHg4KXsoKF9faTh4MTYpX19hKVs4XSwgKChfX2k4eDE2KV9fYSlbOV0sICgoX19pOHgxNilfX2EpWzEwXSwKICAgICAgICAgICAgICAgKChfX2k4eDE2KV9fYSlbMTFdLCAoKF9faTh4MTYpX19hKVsxMl0sICgoX19pOHgxNilfX2EpWzEzXSwKICAgICAgICAgICAgICAgKChfX2k4eDE2KV9fYSlbMTRdLCAoKF9faTh4MTYpX19hKVsxNV19LAogICAgICBfX2kxNng4KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X2V4dGVuZF9sb3dfdTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTh4OCl7KChfX3U4eDE2KV9fYSlbMF0sICgoX191OHgxNilfX2EpWzFdLCAoKF9fdTh4MTYpX19hKVsyXSwKICAgICAgICAgICAgICAgKChfX3U4eDE2KV9fYSlbM10sICgoX191OHgxNilfX2EpWzRdLCAoKF9fdTh4MTYpX19hKVs1XSwKICAgICAgICAgICAgICAgKChfX3U4eDE2KV9fYSlbNl0sICgoX191OHgxNilfX2EpWzddfSwKICAgICAgX191MTZ4OCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9leHRlbmRfaGlnaF91OHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX191OHg4KXsoKF9fdTh4MTYpX19hKVs4XSwgKChfX3U4eDE2KV9fYSlbOV0sICgoX191OHgxNilfX2EpWzEwXSwKICAgICAgICAgICAgICAgKChfX3U4eDE2KV9fYSlbMTFdLCAoKF9fdTh4MTYpX19hKVsxMl0sICgoX191OHgxNilfX2EpWzEzXSwKICAgICAgICAgICAgICAgKChfX3U4eDE2KV9fYSlbMTRdLCAoKF9fdTh4MTYpX19hKVsxNV19LAogICAgICBfX3UxNng4KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2V4dGVuZF9sb3dfaTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9faTE2eDQpeygoX19pMTZ4OClfX2EpWzBdLCAoKF9faTE2eDgpX19hKVsxXSwgKChfX2kxNng4KV9fYSlbMl0sCiAgICAgICAgICAgICAgICAoKF9faTE2eDgpX19hKVszXX0sCiAgICAgIF9faTMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfZXh0ZW5kX2hpZ2hfaTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9faTE2eDQpeygoX19pMTZ4OClfX2EpWzRdLCAoKF9faTE2eDgpX19hKVs1XSwgKChfX2kxNng4KV9fYSlbNl0sCiAgICAgICAgICAgICAgICAoKF9faTE2eDgpX19hKVs3XX0sCiAgICAgIF9faTMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfZXh0ZW5kX2xvd191MTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX191MTZ4NCl7KChfX3UxNng4KV9fYSlbMF0sICgoX191MTZ4OClfX2EpWzFdLCAoKF9fdTE2eDgpX19hKVsyXSwKICAgICAgICAgICAgICAgICgoX191MTZ4OClfX2EpWzNdfSwKICAgICAgX191MzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MzJ4NF9leHRlbmRfaGlnaF91MTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX191MTZ4NCl7KChfX3UxNng4KV9fYSlbNF0sICgoX191MTZ4OClfX2EpWzVdLCAoKF9fdTE2eDgpX19hKVs2XSwKICAgICAgICAgICAgICAgICgoX191MTZ4OClfX2EpWzddfSwKICAgICAgX191MzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pNjR4Ml9leHRlbmRfbG93X2kzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2kzMngyKXsoKF9faTMyeDQpX19hKVswXSwgKChfX2kzMng0KV9fYSlbMV19LCBfX2k2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k2NHgyX2V4dGVuZF9oaWdoX2kzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2kzMngyKXsoKF9faTMyeDQpX19hKVsyXSwgKChfX2kzMng0KV9fYSlbM119LCBfX2k2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2V4dGVuZF9sb3dfdTMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTMyeDIpeygoX191MzJ4NClfX2EpWzBdLCAoKF9fdTMyeDQpX19hKVsxXX0sIF9fdTY0eDIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTY0eDJfZXh0ZW5kX2hpZ2hfdTMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTMyeDIpeygoX191MzJ4NClfX2EpWzJdLCAoKF9fdTMyeDQpX19hKVszXX0sIF9fdTY0eDIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfZXh0YWRkX3BhaXJ3aXNlX2k4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9leHRhZGRfcGFpcndpc2VfaTh4MTZfc19pMTZ4OCgoX19pOHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfZXh0YWRkX3BhaXJ3aXNlX3U4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9leHRhZGRfcGFpcndpc2VfaTh4MTZfdV9pMTZ4OCgoX191OHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfZXh0YWRkX3BhaXJ3aXNlX2kxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9leHRhZGRfcGFpcndpc2VfaTE2eDhfc19pMzJ4NCgoX19pMTZ4OClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfZXh0YWRkX3BhaXJ3aXNlX3UxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9leHRhZGRfcGFpcndpc2VfaTE2eDhfdV9pMzJ4NCgoX191MTZ4OClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfZXh0bXVsX2xvd19pOHgxNih2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kxNng4KXdhc21faTE2eDhfZXh0ZW5kX2xvd19pOHgxNihfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTE2eDgpd2FzbV9pMTZ4OF9leHRlbmRfbG93X2k4eDE2KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfZXh0bXVsX2hpZ2hfaTh4MTYodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OCl3YXNtX2kxNng4X2V4dGVuZF9oaWdoX2k4eDE2KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX19pMTZ4OCl3YXNtX2kxNng4X2V4dGVuZF9oaWdoX2k4eDE2KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfZXh0bXVsX2xvd191OHgxNih2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KXdhc21fdTE2eDhfZXh0ZW5kX2xvd191OHgxNihfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTE2eDgpd2FzbV91MTZ4OF9leHRlbmRfbG93X3U4eDE2KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfZXh0bXVsX2hpZ2hfdTh4MTYodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OCl3YXNtX3UxNng4X2V4dGVuZF9oaWdoX3U4eDE2KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX191MTZ4OCl3YXNtX3UxNng4X2V4dGVuZF9oaWdoX3U4eDE2KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfZXh0bXVsX2xvd19pMTZ4OCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KXdhc21faTMyeDRfZXh0ZW5kX2xvd19pMTZ4OChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTMyeDQpd2FzbV9pMzJ4NF9leHRlbmRfbG93X2kxNng4KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfZXh0bXVsX2hpZ2hfaTE2eDgodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NCl3YXNtX2kzMng0X2V4dGVuZF9oaWdoX2kxNng4KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX19pMzJ4NCl3YXNtX2kzMng0X2V4dGVuZF9oaWdoX2kxNng4KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfZXh0bXVsX2xvd191MTZ4OCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KXdhc21fdTMyeDRfZXh0ZW5kX2xvd191MTZ4OChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTMyeDQpd2FzbV91MzJ4NF9leHRlbmRfbG93X3UxNng4KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfZXh0bXVsX2hpZ2hfdTE2eDgodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NCl3YXNtX3UzMng0X2V4dGVuZF9oaWdoX3UxNng4KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX191MzJ4NCl3YXNtX3UzMng0X2V4dGVuZF9oaWdoX3UxNng4KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTY0eDJfZXh0bXVsX2xvd19pMzJ4NCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKXdhc21faTY0eDJfZXh0ZW5kX2xvd19pMzJ4NChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTY0eDIpd2FzbV9pNjR4Ml9leHRlbmRfbG93X2kzMng0KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTY0eDJfZXh0bXVsX2hpZ2hfaTMyeDQodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4Mil3YXNtX2k2NHgyX2V4dGVuZF9oaWdoX2kzMng0KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX19pNjR4Mil3YXNtX2k2NHgyX2V4dGVuZF9oaWdoX2kzMng0KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTY0eDJfZXh0bXVsX2xvd191MzJ4NCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U2NHgyKXdhc21fdTY0eDJfZXh0ZW5kX2xvd191MzJ4NChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTY0eDIpd2FzbV91NjR4Ml9leHRlbmRfbG93X3UzMng0KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTY0eDJfZXh0bXVsX2hpZ2hfdTMyeDQodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191NjR4Mil3YXNtX3U2NHgyX2V4dGVuZF9oaWdoX3UzMng0KF9fYSkgKgogICAgICAgICAgICAgICAgICAoX191NjR4Mil3YXNtX3U2NHgyX2V4dGVuZF9oaWdoX3UzMng0KF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfcTE1bXVscl9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9xMTVtdWxyX3NhdF9zX2kxNng4KChfX2kxNng4KV9fYSwgKF9faTE2eDgpX19iKTsKfQoKLy8gT2xkIGludHJpbnNpYyBuYW1lcyBzdXBwb3J0ZWQgdG8gZWFzZSB0cmFuc2l0aW9uaW5nIHRvIHRoZSBzdGFuZGFyZCBuYW1lcy4gRG8KLy8gbm90IHVzZSB0aGVzZTsgdGhleSB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlLgoKI2RlZmluZSBfX0RFUFJFQ0FURURfRk5fQVRUUlMoX19yZXBsYWNlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGRlcHJlY2F0ZWQoInVzZSAiIF9fcmVwbGFjZW1lbnQgIiBpbnN0ZWFkIiwgX19yZXBsYWNlbWVudCkpKQoKI2RlZmluZSBfX1dBU01fU1RSKFgpICNYCgojaWZkZWYgX19ERVBSRUNBVEVECiNkZWZpbmUgX19ERVBSRUNBVEVEX1dBU01fTUFDUk8oX19uYW1lLCBfX3JlcGxhY2VtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX1ByYWdtYShfX1dBU01fU1RSKEdDQyB3YXJuaW5nKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICInIiBfX25hbWUgIicgaXMgZGVwcmVjYXRlZDogdXNlICciIF9fcmVwbGFjZW1lbnQgIicgaW5zdGVhZCIpKSkKI2Vsc2UKI2RlZmluZSBfX0RFUFJFQ0FURURfV0FTTV9NQUNSTyhfX25hbWUsIF9fcmVwbGFjZW1lbnQpCiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV92MTI4X2xvYWQ4X3NwbGF0IikKd2FzbV92OHgxNl9sb2FkX3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9sb2FkOF9zcGxhdChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9sb2FkMTZfc3BsYXQiKQp3YXNtX3YxNng4X2xvYWRfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV92MTI4X2xvYWQxNl9zcGxhdChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9sb2FkMzJfc3BsYXQiKQp3YXNtX3YzMng0X2xvYWRfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV92MTI4X2xvYWQzMl9zcGxhdChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9sb2FkNjRfc3BsYXQiKQp3YXNtX3Y2NHgyX2xvYWRfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV92MTI4X2xvYWQ2NF9zcGxhdChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTE2eDhfbG9hZDh4OCIpCndhc21faTE2eDhfbG9hZF84eDgoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV9pMTZ4OF9sb2FkOHg4KF9fbWVtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MTZ4OF9sb2FkOHg4IikKd2FzbV91MTZ4OF9sb2FkXzh4OChjb25zdCB2b2lkICpfX21lbSkgewogIHJldHVybiB3YXNtX3UxNng4X2xvYWQ4eDgoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2kzMng0X2xvYWQxNng0IikKd2FzbV9pMzJ4NF9sb2FkXzE2eDQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV9pMzJ4NF9sb2FkMTZ4NChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTMyeDRfbG9hZDE2eDQiKQp3YXNtX3UzMng0X2xvYWRfMTZ4NChjb25zdCB2b2lkICpfX21lbSkgewogIHJldHVybiB3YXNtX3UzMng0X2xvYWQxNng0KF9fbWVtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pNjR4Ml9sb2FkMzJ4MiIpCndhc21faTY0eDJfbG9hZF8zMngyKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21faTY0eDJfbG9hZDMyeDIoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3U2NHgyX2xvYWQzMngyIikKd2FzbV91NjR4Ml9sb2FkXzMyeDIoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV91NjR4Ml9sb2FkMzJ4MihfX21lbSk7Cn0KCiNkZWZpbmUgd2FzbV92OHgxNl9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzLCBfX2M0LCBfX2M1LCBfX2M2LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzcsIF9fYzgsIF9fYzksIF9fYzEwLCBfX2MxMSwgX19jMTIsIF9fYzEzLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzE0LCBfX2MxNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERVBSRUNBVEVEX1dBU01fTUFDUk8oIndhc21fdjh4MTZfc2h1ZmZsZSIsICJ3YXNtX2k4eDE2X3NodWZmbGUiKSAgICAgICAgICBcCiAgd2FzbV9pOHgxNl9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzLCBfX2M0LCBfX2M1LCBfX2M2LCBfX2M3LCBcCiAgICAgICAgICAgICAgICAgICAgIF9fYzgsIF9fYzksIF9fYzEwLCBfX2MxMSwgX19jMTIsIF9fYzEzLCBfX2MxNCwgX19jMTUpCgojZGVmaW5lIHdhc21fdjE2eDhfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2M3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVQUkVDQVRFRF9XQVNNX01BQ1JPKCJ3YXNtX3YxNng4X3NodWZmbGUiLCAid2FzbV9pMTZ4OF9zaHVmZmxlIikgICAgICAgICAgXAogIHdhc21faTE2eDhfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jNykKCiNkZWZpbmUgd2FzbV92MzJ4NF9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzKSAgICAgICAgICAgICAgICAgICBcCiAgX19ERVBSRUNBVEVEX1dBU01fTUFDUk8oIndhc21fdjMyeDRfc2h1ZmZsZSIsICJ3YXNtX2kzMng0X3NodWZmbGUiKSAgICAgICAgICBcCiAgd2FzbV9pMzJ4NF9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzKQoKI2RlZmluZSB3YXNtX3Y2NHgyX3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFUFJFQ0FURURfV0FTTV9NQUNSTygid2FzbV92NjR4Ml9zaHVmZmxlIiwgIndhc21faTY0eDJfc2h1ZmZsZSIpICAgICAgICAgIFwKICB3YXNtX2k2NHgyX3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEpCgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2k4eDE2X3N3aXp6bGUiKQp3YXNtX3Y4eDE2X3N3aXp6bGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX2k4eDE2X3N3aXp6bGUoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBib29sIF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV92MTI4X2FueV90cnVlIikKd2FzbV9pOHgxNl9hbnlfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9hbnlfdHJ1ZShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBib29sIF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV92MTI4X2FueV90cnVlIikKd2FzbV9pMTZ4OF9hbnlfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9hbnlfdHJ1ZShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBib29sIF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV92MTI4X2FueV90cnVlIikKd2FzbV9pMzJ4NF9hbnlfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9hbnlfdHJ1ZShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2k4eDE2X2FkZF9zYXQiKQp3YXNtX2k4eDE2X2FkZF9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21faTh4MTZfYWRkX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTh4MTZfYWRkX3NhdCIpCndhc21fdTh4MTZfYWRkX3NhdHVyYXRlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV91OHgxNl9hZGRfc2F0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pOHgxNl9zdWJfc2F0IikKd2FzbV9pOHgxNl9zdWJfc2F0dXJhdGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX2k4eDE2X3N1Yl9zYXQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3U4eDE2X3N1Yl9zYXQiKQp3YXNtX3U4eDE2X3N1Yl9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21fdTh4MTZfc3ViX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTE2eDhfYWRkX3NhdCIpCndhc21faTE2eDhfYWRkX3NhdHVyYXRlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV9pMTZ4OF9hZGRfc2F0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MTZ4OF9hZGRfc2F0IikKd2FzbV91MTZ4OF9hZGRfc2F0dXJhdGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX3UxNng4X2FkZF9zYXQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2kxNng4X3N1Yl9zYXQiKQp3YXNtX2kxNng4X3N1Yl9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21faTE2eDhfc3ViX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTE2eDhfc3ViX3NhdCIpCndhc21fdTE2eDhfc3ViX3NhdHVyYXRlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV91MTZ4OF9zdWJfc2F0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMTZ4OF9leHRlbmRfbG93X2k4eDE2IikKd2FzbV9pMTZ4OF93aWRlbl9sb3dfaTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX2kxNng4X2V4dGVuZF9sb3dfaTh4MTYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMTZ4OF9leHRlbmRfaGlnaF9pOHgxNiIpCndhc21faTE2eDhfd2lkZW5faGlnaF9pOHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21faTE2eDhfZXh0ZW5kX2hpZ2hfaTh4MTYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MTZ4OF9leHRlbmRfbG93X3U4eDE2IikKd2FzbV9pMTZ4OF93aWRlbl9sb3dfdTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3UxNng4X2V4dGVuZF9sb3dfdTh4MTYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MTZ4OF9leHRlbmRfaGlnaF91OHgxNiIpCndhc21faTE2eDhfd2lkZW5faGlnaF91OHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdTE2eDhfZXh0ZW5kX2hpZ2hfdTh4MTYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMzJ4NF9leHRlbmRfbG93X2kxNng4IikKd2FzbV9pMzJ4NF93aWRlbl9sb3dfaTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX2kzMng0X2V4dGVuZF9sb3dfaTE2eDgoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMzJ4NF9leHRlbmRfaGlnaF9pMTZ4OCIpCndhc21faTMyeDRfd2lkZW5faGlnaF9pMTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21faTMyeDRfZXh0ZW5kX2hpZ2hfaTE2eDgoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MzJ4NF9leHRlbmRfbG93X3UxNng4IikKd2FzbV9pMzJ4NF93aWRlbl9sb3dfdTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3UzMng0X2V4dGVuZF9sb3dfdTE2eDgoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MzJ4NF9leHRlbmRfaGlnaF91MTZ4OCIpCndhc21faTMyeDRfd2lkZW5faGlnaF91MTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdTMyeDRfZXh0ZW5kX2hpZ2hfdTE2eDgoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMzJ4NF90cnVuY19zYXRfZjMyeDQiKQp3YXNtX2kzMng0X3RydW5jX3NhdHVyYXRlX2YzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV9pMzJ4NF90cnVuY19zYXRfZjMyeDQoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91MzJ4NF90cnVuY19zYXRfZjMyeDQiKQp3YXNtX3UzMng0X3RydW5jX3NhdHVyYXRlX2YzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV91MzJ4NF90cnVuY19zYXRfZjMyeDQoX19hKTsKfQoKLy8gVW5kZWZpbmUgaGVscGVyIG1hY3JvcwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFUFJFQ0FURURfRk5fQVRUUlMKCiNlbmRpZiAvLyBfX1dBU01fU0lNRDEyOF9ICgAvKj09PS0tLS0geHNhdmVvcHRpbnRyaW4uaCAtIFhTQVZFT1BUIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHhzYXZlb3B0aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1hTQVZFT1BUSU5UUklOX0gKI2RlZmluZSBfX1hTQVZFT1BUSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygieHNhdmVvcHQiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmVvcHQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmVvcHQoX19wLCBfX20pOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmVvcHQ2NCh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94c2F2ZW9wdDY0KF9fcCwgX19tKTsKfQojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALyo9PT0tLS0tIHhzYXZlc2ludHJpbi5oIC0gWFNBVkVTIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx4c2F2ZXNpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fWFNBVkVTSU5UUklOX0gKI2RlZmluZSBfX1hTQVZFU0lOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oInhzYXZlcyIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94c2F2ZXModm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmVzKF9fcCwgX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hyc3RvcnModm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHJzdG9ycyhfX3AsIF9fbSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94cnN0b3JzNjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHJzdG9yczY0KF9fcCwgX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlczY0KHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hzYXZlczY0KF9fcCwgX19tKTsKfQojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIF9fY29tcGxleF9jbWF0aC5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gc3RkOjpjb21wbGV4IGhlYWRlciBjb3BpZWQgZnJvbSB0aGUgbGliY3h4IHNvdXJjZSBhbmQgc2ltcGxpZmllZCBmb3IgdXNlIGluCi8vIE9wZW5NUCB0YXJnZXQgb2ZmbG9hZCByZWdpb25zLgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBfT1BFTk1QCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBPcGVuTVAgY29tcGlsYXRpb24gb25seS4iCiNlbmRpZgoKI2lmbmRlZiBfX2NwbHVzcGx1cwojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgQysrIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZm5kZWYgX0xJQkNQUF9DT01QTEVYCiNkZWZpbmUgX0xJQkNQUF9DT01QTEVYCgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgY29uc3RleHByIF9fYXR0cmlidXRlX18oKG5vdGhyb3cpKQoKbmFtZXNwYWNlIHN0ZCB7CgovLyBhYnMKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IF9fREVWSUNFX18gX1RwIGFicyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX19jKSB7CiAgcmV0dXJuIGh5cG90KF9fYy5yZWFsKCksIF9fYy5pbWFnKCkpOwp9CgovLyBhcmcKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IF9fREVWSUNFX18gX1RwIGFyZyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX19jKSB7CiAgcmV0dXJuIGF0YW4yKF9fYy5pbWFnKCksIF9fYy5yZWFsKCkpOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgp0eXBlbmFtZSBlbmFibGVfaWY8aXNfaW50ZWdyYWw8X1RwPjo6dmFsdWUgfHwgaXNfc2FtZTxfVHAsIGRvdWJsZT46OnZhbHVlLAogICAgICAgICAgICAgICAgICAgZG91YmxlPjo6dHlwZQphcmcoX1RwIF9fcmUpIHsKICByZXR1cm4gYXRhbjIoMC4sIF9fcmUpOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgp0eXBlbmFtZSBlbmFibGVfaWY8aXNfc2FtZTxfVHAsIGZsb2F0Pjo6dmFsdWUsIGZsb2F0Pjo6dHlwZSBhcmcoX1RwIF9fcmUpIHsKICByZXR1cm4gYXRhbjJmKDAuRiwgX19yZSk7Cn0KCi8vIG5vcm0KCnRlbXBsYXRlIDxjbGFzcyBfVHA+IF9fREVWSUNFX18gX1RwIG5vcm0oY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9fYykgewogIGlmIChzdGQ6OmlzaW5mKF9fYy5yZWFsKCkpKQogICAgcmV0dXJuIGFicyhfX2MucmVhbCgpKTsKICBpZiAoc3RkOjppc2luZihfX2MuaW1hZygpKSkKICAgIHJldHVybiBhYnMoX19jLmltYWcoKSk7CiAgcmV0dXJuIF9fYy5yZWFsKCkgKiBfX2MucmVhbCgpICsgX19jLmltYWcoKSAqIF9fYy5pbWFnKCk7Cn0KCi8vIGNvbmoKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IGNvbmooY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9fYykgewogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX2MucmVhbCgpLCAtX19jLmltYWcoKSk7Cn0KCi8vIHByb2oKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IHByb2ooY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9fYykgewogIHN0ZDo6Y29tcGxleDxfVHA+IF9fciA9IF9fYzsKICBpZiAoc3RkOjppc2luZihfX2MucmVhbCgpKSB8fCBzdGQ6OmlzaW5mKF9fYy5pbWFnKCkpKQogICAgX19yID0gc3RkOjpjb21wbGV4PF9UcD4oSU5GSU5JVFksIGNvcHlzaWduKF9UcCgwKSwgX19jLmltYWcoKSkpOwogIHJldHVybiBfX3I7Cn0KCi8vIHBvbGFyCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpjb21wbGV4PF9UcD4gcG9sYXIoY29uc3QgX1RwICZfX3JobywgY29uc3QgX1RwICZfX3RoZXRhID0gX1RwKCkpIHsKICBpZiAoc3RkOjppc25hbihfX3JobykgfHwgc2lnbmJpdChfX3JobykpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKE5BTiksIF9UcChOQU4pKTsKICBpZiAoc3RkOjppc25hbihfX3RoZXRhKSkgewogICAgaWYgKHN0ZDo6aXNpbmYoX19yaG8pKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX19yaG8sIF9fdGhldGEpOwogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fdGhldGEsIF9fdGhldGEpOwogIH0KICBpZiAoc3RkOjppc2luZihfX3RoZXRhKSkgewogICAgaWYgKHN0ZDo6aXNpbmYoX19yaG8pKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX19yaG8sIF9UcChOQU4pKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoTkFOKSwgX1RwKE5BTikpOwogIH0KICBfVHAgX194ID0gX19yaG8gKiBjb3MoX190aGV0YSk7CiAgaWYgKHN0ZDo6aXNuYW4oX194KSkKICAgIF9feCA9IDA7CiAgX1RwIF9feSA9IF9fcmhvICogc2luKF9fdGhldGEpOwogIGlmIChzdGQ6OmlzbmFuKF9feSkpCiAgICBfX3kgPSAwOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gsIF9feSk7Cn0KCi8vIGxvZwoKdGVtcGxhdGUgPGNsYXNzIF9UcD4gc3RkOjpjb21wbGV4PF9UcD4gbG9nKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4obG9nKGFicyhfX3gpKSwgYXJnKF9feCkpOwp9CgovLyBsb2cxMAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4gc3RkOjpjb21wbGV4PF9UcD4gbG9nMTAoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHJldHVybiBsb2coX194KSAvIGxvZyhfVHAoMTApKTsKfQoKLy8gc3FydAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBzcXJ0KGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoSU5GSU5JVFkpLCBfX3guaW1hZygpKTsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKF9feC5yZWFsKCkgPiBfVHAoMCkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBzdGQ6OmlzbmFuKF9feC5pbWFnKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfX3guaW1hZygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb3B5c2lnbihfVHAoMCksIF9feC5pbWFnKCkpKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihzdGQ6OmlzbmFuKF9feC5pbWFnKCkpID8gX194LmltYWcoKSA6IF9UcCgwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3gucmVhbCgpLCBfX3guaW1hZygpKSk7CiAgfQogIHJldHVybiBwb2xhcihzcXJ0KGFicyhfX3gpKSwgYXJnKF9feCkgLyBfVHAoMikpOwp9CgovLyBleHAKCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gZXhwKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBfVHAgX19pID0gX194LmltYWcoKTsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKF9feC5yZWFsKCkgPCBfVHAoMCkpIHsKICAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKF9faSkpCiAgICAgICAgX19pID0gX1RwKDEpOwogICAgfSBlbHNlIGlmIChfX2kgPT0gMCB8fCAhc3RkOjppc2Zpbml0ZShfX2kpKSB7CiAgICAgIGlmIChzdGQ6OmlzaW5mKF9faSkpCiAgICAgICAgX19pID0gX1RwKE5BTik7CiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfX2kpOwogICAgfQogIH0gZWxzZSBpZiAoc3RkOjppc25hbihfX3gucmVhbCgpKSAmJiBfX3guaW1hZygpID09IDApCiAgICByZXR1cm4gX194OwogIF9UcCBfX2UgPSBleHAoX194LnJlYWwoKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fZSAqIGNvcyhfX2kpLCBfX2UgKiBzaW4oX19pKSk7Cn0KCi8vIHBvdwoKdGVtcGxhdGUgPGNsYXNzIF9UcD4Kc3RkOjpjb21wbGV4PF9UcD4gcG93KGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX195KSB7CiAgcmV0dXJuIGV4cChfX3kgKiBsb2coX194KSk7Cn0KCi8vIF9fc3FyLCBjb21wdXRlcyBwb3coeCwgMikKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IF9fc3FyKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oKF9feC5yZWFsKCkgLSBfX3guaW1hZygpKSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX194LnJlYWwoKSArIF9feC5pbWFnKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfVHAoMikgKiBfX3gucmVhbCgpICogX194LmltYWcoKSk7Cn0KCi8vIGFzaW5oCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGFzaW5oKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBjb25zdCBfVHAgX19waShhdGFuMigrMC4sIC0wLikpOwogIGlmIChzdGQ6OmlzaW5mKF9feC5yZWFsKCkpKSB7CiAgICBpZiAoc3RkOjppc25hbihfX3guaW1hZygpKSkKICAgICAgcmV0dXJuIF9feDsKICAgIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9fcGkgKiBfVHAoMC4yNSksIF9feC5pbWFnKCkpKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBjb3B5c2lnbihfVHAoMCksIF9feC5pbWFnKCkpKTsKICB9CiAgaWYgKHN0ZDo6aXNuYW4oX194LnJlYWwoKSkpIHsKICAgIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LmltYWcoKSwgX194LnJlYWwoKSk7CiAgICBpZiAoX194LmltYWcoKSA9PSAwKQogICAgICByZXR1cm4gX194OwogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIF9feC5yZWFsKCkpOwogIH0KICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfX3guaW1hZygpLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpIC8gX1RwKDIpLCBfX3guaW1hZygpKSk7CiAgc3RkOjpjb21wbGV4PF9UcD4gX196ID0gbG9nKF9feCArIHNxcnQoX19zcXIoX194KSArIF9UcCgxKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfX3oucmVhbCgpLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX196LmltYWcoKSwgX194LmltYWcoKSkpOwp9CgovLyBhY29zaAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBhY29zaChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgY29uc3QgX1RwIF9fcGkoYXRhbjIoKzAuLCAtMC4pKTsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKHN0ZDo6aXNuYW4oX194LmltYWcoKSkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX194LnJlYWwoKSksIF9feC5pbWFnKCkpOwogICAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpIHsKICAgICAgaWYgKF9feC5yZWFsKCkgPiAwKQogICAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpICogX1RwKDAuMjUpLCBfX3guaW1hZygpKSk7CiAgICAgIGVsc2UKICAgICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oLV9feC5yZWFsKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9fcGkgKiBfVHAoMC43NSksIF9feC5pbWFnKCkpKTsKICAgIH0KICAgIGlmIChfX3gucmVhbCgpIDwgMCkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KC1fX3gucmVhbCgpLCBjb3B5c2lnbihfX3BpLCBfX3guaW1hZygpKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgY29weXNpZ24oX1RwKDApLCBfX3guaW1hZygpKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5yZWFsKCkpKSB7CiAgICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGFicyhfX3guaW1hZygpKSwgX194LnJlYWwoKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgX194LnJlYWwoKSk7CiAgfQogIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGFicyhfX3guaW1hZygpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpIC8gX1RwKDIpLCBfX3guaW1hZygpKSk7CiAgc3RkOjpjb21wbGV4PF9UcD4gX196ID0gbG9nKF9feCArIHNxcnQoX19zcXIoX194KSAtIF9UcCgxKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfX3oucmVhbCgpLCBfVHAoMCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3ouaW1hZygpLCBfX3guaW1hZygpKSk7Cn0KCi8vIGF0YW5oCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGF0YW5oKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBjb25zdCBfVHAgX19waShhdGFuMigrMC4sIC0wLikpOwogIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKSB7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX1RwKDApLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpIC8gX1RwKDIpLCBfX3guaW1hZygpKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5pbWFnKCkpKSB7CiAgICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSB8fCBfX3gucmVhbCgpID09IDApCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfVHAoMCksIF9feC5yZWFsKCkpLCBfX3guaW1hZygpKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3guaW1hZygpLCBfX3guaW1hZygpKTsKICB9CiAgaWYgKHN0ZDo6aXNuYW4oX194LnJlYWwoKSkpIHsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfX3gucmVhbCgpKTsKICB9CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkpIHsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfVHAoMCksIF9feC5yZWFsKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9fcGkgLyBfVHAoMiksIF9feC5pbWFnKCkpKTsKICB9CiAgaWYgKGFicyhfX3gucmVhbCgpKSA9PSBfVHAoMSkgJiYgX194LmltYWcoKSA9PSBfVHAoMCkpIHsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfVHAoSU5GSU5JVFkpLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfVHAoMCksIF9feC5pbWFnKCkpKTsKICB9CiAgc3RkOjpjb21wbGV4PF9UcD4gX196ID0gbG9nKChfVHAoMSkgKyBfX3gpIC8gKF9UcCgxKSAtIF9feCkpIC8gX1RwKDIpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3B5c2lnbihfX3oucmVhbCgpLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX196LmltYWcoKSwgX194LmltYWcoKSkpOwp9CgovLyBzaW5oCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IHNpbmgoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIGlmIChzdGQ6OmlzaW5mKF9feC5yZWFsKCkpICYmICFzdGQ6OmlzZmluaXRlKF9feC5pbWFnKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIF9UcChOQU4pKTsKICBpZiAoX194LnJlYWwoKSA9PSAwICYmICFzdGQ6OmlzZmluaXRlKF9feC5pbWFnKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIF9UcChOQU4pKTsKICBpZiAoX194LmltYWcoKSA9PSAwICYmICFzdGQ6OmlzZmluaXRlKF9feC5yZWFsKCkpKQogICAgcmV0dXJuIF9feDsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oc2luaChfX3gucmVhbCgpKSAqIGNvcyhfX3guaW1hZygpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29zaChfX3gucmVhbCgpKSAqIHNpbihfX3guaW1hZygpKSk7Cn0KCi8vIGNvc2gKCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gY29zaChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkgJiYgIXN0ZDo6aXNmaW5pdGUoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oYWJzKF9feC5yZWFsKCkpLCBfVHAoTkFOKSk7CiAgaWYgKF9feC5yZWFsKCkgPT0gMCAmJiAhc3RkOjppc2Zpbml0ZShfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoTkFOKSwgX194LnJlYWwoKSk7CiAgaWYgKF9feC5yZWFsKCkgPT0gMCAmJiBfX3guaW1hZygpID09IDApCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDEpLCBfX3guaW1hZygpKTsKICBpZiAoX194LmltYWcoKSA9PSAwICYmICFzdGQ6OmlzZmluaXRlKF9feC5yZWFsKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGFicyhfX3gucmVhbCgpKSwgX194LmltYWcoKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGNvc2goX194LnJlYWwoKSkgKiBjb3MoX194LmltYWcoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmgoX194LnJlYWwoKSkgKiBzaW4oX194LmltYWcoKSkpOwp9CgovLyB0YW5oCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IHRhbmgoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIGlmIChzdGQ6OmlzaW5mKF9feC5yZWFsKCkpKSB7CiAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoX194LmltYWcoKSkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoMSksIF9UcCgwKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9UcCgwKSwgc2luKF9UcCgyKSAqIF9feC5pbWFnKCkpKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5yZWFsKCkpICYmIF9feC5pbWFnKCkgPT0gMCkKICAgIHJldHVybiBfX3g7CiAgX1RwIF9fMnIoX1RwKDIpICogX194LnJlYWwoKSk7CiAgX1RwIF9fMmkoX1RwKDIpICogX194LmltYWcoKSk7CiAgX1RwIF9fZChjb3NoKF9fMnIpICsgY29zKF9fMmkpKTsKICBfVHAgX18ycnNoKHNpbmgoX18ycikpOwogIGlmIChzdGQ6OmlzaW5mKF9fMnJzaCkgJiYgc3RkOjppc2luZihfX2QpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fMnJzaCA+IF9UcCgwKSA/IF9UcCgxKSA6IF9UcCgtMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX18yaSA+IF9UcCgwKSA/IF9UcCgwKSA6IF9UcCgtMC4pKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX18ycnNoIC8gX19kLCBzaW4oX18yaSkgLyBfX2QpOwp9CgovLyBhc2luCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGFzaW4oY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGFzaW5oKGNvbXBsZXg8X1RwPigtX194LmltYWcoKSwgX194LnJlYWwoKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3ouaW1hZygpLCAtX196LnJlYWwoKSk7Cn0KCi8vIGFjb3MKCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gYWNvcyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgY29uc3QgX1RwIF9fcGkoYXRhbjIoKzAuLCAtMC4pKTsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKHN0ZDo6aXNuYW4oX194LmltYWcoKSkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3guaW1hZygpLCBfX3gucmVhbCgpKTsKICAgIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKSB7CiAgICAgIGlmIChfX3gucmVhbCgpIDwgX1RwKDApKQogICAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoMC43NSkgKiBfX3BpLCAtX194LmltYWcoKSk7CiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoMC4yNSkgKiBfX3BpLCAtX194LmltYWcoKSk7CiAgICB9CiAgICBpZiAoX194LnJlYWwoKSA8IF9UcCgwKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYml0KF9feC5pbWFnKCkpID8gLV9feC5yZWFsKCkgOiBfX3gucmVhbCgpKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfVHAoMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmJpdChfX3guaW1hZygpKSA/IF9feC5yZWFsKCkgOiAtX194LnJlYWwoKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5yZWFsKCkpKSB7CiAgICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIC1fX3guaW1hZygpKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfX3gucmVhbCgpKTsKICB9CiAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX19waSAvIF9UcCgyKSwgLV9feC5pbWFnKCkpOwogIGlmIChfX3gucmVhbCgpID09IDAgJiYgKF9feC5pbWFnKCkgPT0gMCB8fCBpc25hbihfX3guaW1hZygpKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX19waSAvIF9UcCgyKSwgLV9feC5pbWFnKCkpOwogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGxvZyhfX3ggKyBzcXJ0KF9fc3FyKF9feCkgLSBfVHAoMSkpKTsKICBpZiAoc2lnbmJpdChfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX196LmltYWcoKSksIGFicyhfX3oucmVhbCgpKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGFicyhfX3ouaW1hZygpKSwgLWFicyhfX3oucmVhbCgpKSk7Cn0KCi8vIGF0YW4KCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gYXRhbihjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgc3RkOjpjb21wbGV4PF9UcD4gX196ID0gYXRhbmgoY29tcGxleDxfVHA+KC1fX3guaW1hZygpLCBfX3gucmVhbCgpKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fei5pbWFnKCksIC1fX3oucmVhbCgpKTsKfQoKLy8gc2luCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IHNpbihjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgc3RkOjpjb21wbGV4PF9UcD4gX196ID0gc2luaChjb21wbGV4PF9UcD4oLV9feC5pbWFnKCksIF9feC5yZWFsKCkpKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX196LmltYWcoKSwgLV9fei5yZWFsKCkpOwp9CgovLyBjb3MKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IGNvcyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgcmV0dXJuIGNvc2goY29tcGxleDxfVHA+KC1fX3guaW1hZygpLCBfX3gucmVhbCgpKSk7Cn0KCi8vIHRhbgoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiB0YW4oY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IHRhbmgoY29tcGxleDxfVHA+KC1fX3guaW1hZygpLCBfX3gucmVhbCgpKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fei5pbWFnKCksIC1fX3oucmVhbCgpKTsKfQoKfSAvLyBuYW1lc3BhY2Ugc3RkCgojZW5kaWYKAHNhbml0aXplci9jb3ZlcmFnZV9pbnRlcmZhY2UuaAByYgBUZXJtaW5hdGUgcGFyc2luZyBkdWUgdG8gSGFuZGxlciBlcnJvci4AYWxsAGxpc3QgY291bnQgAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvZGZhLmNjAFJ1blN0YXRlT25CeXRlVW5sb2NrZWQgZmFpbGVkIGFmdGVyIFJlc2V0Q2FjaGUAVW5leHBlY3RlZCBvcGNvZGUgaW4gc2hvcnQgY2lyY3VpdDogAEJhZCByZWZlcmVuY2UgY291bnQgAGtSZWdleHBDYXB0dXJlIGNhcCgpID09IDAAPwBceHsleH0AQnVoaWQASW5oZXJpdGVkAEthaXRoaQBMdABNZWV0ZWlfTWF5ZWsAUABUYWlfTGUAVkRTTyBzeW1ib2wgdW5leHBlY3RlZGx5IGxvbmcAL3Byb2Mvc2VsZi9hdXh2AG1tYXAgZXJyb3I6ICVkAHVuc2lnbmVkIGxvbmcAZFYAJj0AbFMALT4qAElOVkFMSURfQVJHVU1FTlQAUkVTT1VSQ0VfRVhIQVVTVEVEAHNsb3cgcmVsZWFzZQBNdXRleDo6RmVyIHdoaWxlIGluIHRpbWVkIHdhaXQARmFpbGVkIHRvIHJlYWQgcmVhbC10aW1lIGNsb2NrLgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2djZC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vbW9udGdvbWVyeS5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVyL2FlYWQuYwBreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQuc291cmNlX2ZpbGUAa3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LndvcmtpbmdfZGlyZWN0b3J5AGt5dGhlLnByb3RvLmNvbW1vbi5Db3JwdXNQYXRoLnJvb3QAa3l0aGUucHJvdG8uQ29udGV4dERlcGVuZGVudFZlcnNpb24uUm93LnNvdXJjZV9jb250ZXh0AFteLV0uKlwuZ28AJXMgKHJlZ2V4IHdhcyAlcykKACBpcyBub3QgYSBub3JtYWwgZGlyZWN0b3J5LgBLWVRIRV9FWENMVURFX0VNUFRZX0RJUlMAKSBkdWUgdG8gaXRzIGluY2x1c2lvbiBpbiAAL2J1aWxkACBmb3IgdHJhbnNjcmlwdCAAYXZ4NTEyaWZtYXZsaW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnBmaW50cmluLmggLSBQRiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnBmaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlBGSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlBGSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJwZiIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTMyZ2F0aGVyX3BkKGluZGV4LCBtYXNrLCBhZGRyLCBzY2FsZSwgaGludCkgXAogIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnBmZHBkKChfX21tYXNrOCkobWFzayksIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMmdhdGhlcl9wZChpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwZCgoX19tbWFzazgpIC0xLCAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2kzMmdhdGhlcl9wcyhpbmRleCwgbWFzaywgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwcygoX19tbWFzazE2KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMmdhdGhlcl9wcyhpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwcygoX19tbWFzazE2KSAtMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTY0Z2F0aGVyX3BkKGluZGV4LCBtYXNrLCBhZGRyLCBzY2FsZSwgaGludCkgXAogIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnBmcXBkKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NGdhdGhlcl9wZChpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwZCgoX19tbWFzazgpIC0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NGdhdGhlcl9wcyhpbmRleCwgbWFzaywgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwcygoX19tbWFzazgpKG1hc2spLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NGdhdGhlcl9wcyhpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwcygoX19tbWFzazgpIC0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMnNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmZHBkKChfX21tYXNrOCktMSwgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2kzMnNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmZHBkKChfX21tYXNrOCkobWFzayksIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGhpbnQpKQoKI2RlZmluZSBfbW01MTJfcHJlZmV0Y2hfaTMyc2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZkcHMoKF9fbW1hc2sxNiktMSwgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTMyc2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZkcHMoKF9fbW1hc2sxNikobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgKHZvaWQgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NHNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBkKChfX21tYXNrOCktMSwgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NHNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBkKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGhpbnQpKQoKI2RlZmluZSBfbW01MTJfcHJlZmV0Y2hfaTY0c2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZxcHMoKF9fbW1hc2s4KS0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikoYWRkciksIChpbnQpKHNjYWxlKSwgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NHNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBzKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnZibWlpbnRyaW4uaCAtIFZCTUkgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2Ym1paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1ZCTUlJTlRSSU5fSAojZGVmaW5lIF9fVkJNSUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmJtaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cGVybWkydmFycWk1MTIoKF9fdjY0cWkpX19BLCAoX192NjRxaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFzazJfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrNjQgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3Blcm11dGV4MnZhcl9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfcGVybXV0ZXh2YXJfZXBpOCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJxaTUxMigoX192NjRxaSkgX19CLCAoX192NjRxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3Blcm11dGV4dmFyX2VwaTggKF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLAogICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX3Blcm11dGV4dmFyX2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX211bHRpc2hpZnRfZXBpNjRfZXBpOChfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBtdWx0aXNoaWZ0cWI1MTIoKF9fdjY0cWkpX19YLCAoX192NjRxaSkgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAvKj09PS0tLS0tLS0tLS0tLS0tLSBhdnh2bm5paW50cmluLmggLSBWTk5JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4dm5uaWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlhWTk5JSU5UUklOX0gKI2RlZmluZSBfX0FWWFZOTklJTlRSSU5fSAoKLyogQmVsb3cgaW50cmluc2ljcyBkZWZpbmVkIGluIGF2eDUxMnZsdm5uaWludHJpbi5oIGNhbiBiZSB1c2VkIGZvciBBVlhWTk5JICovCi8vLyBcZm4gX19tMjU2aSBfbW0yNTZfZHBidXNkX2VwaTMyKF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCi8vLyBcZm4gX19tMjU2aSBfbW0yNTZfZHBidXNkc19lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQovLy8gXGZuIF9fbTI1NmkgX21tMjU2X2Rwd3NzZF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQovLy8gXGZuIF9fbTI1NmkgX21tMjU2X2Rwd3NzZHNfZXBpMzIoX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKLy8vIFxmbiBfX20xMjhpIF9tbV9kcGJ1c2RfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKLy8vIFxmbiBfX20xMjhpIF9tbV9kcGJ1c2RzX2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCi8vLyBcZm4gX19tMTI4aSBfbW1fZHB3c3NkX2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCi8vLyBcZm4gX19tMTI4aSBfbW1fZHB3c3Nkc19lcGkzMihfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoKLyogSW50cmluc2ljcyB3aXRoIF9hdnhfIHByZWZpeCBhcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBtc3ZjLiAqLwovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4dm5uaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdnh2bm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIF9fUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZHBidXNkX2F2eF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkMjU2KChfX3Y4c2kpX19TLCAoX192OHNpKV9fQSwgKF9fdjhzaSlfX0IpOwp9CgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgX19TIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZHBidXNkc19hdnhfZXBpMzIoX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMyNTYoKF9fdjhzaSlfX1MsIChfX3Y4c2kpX19BLCAoX192OHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TLAovLy8gIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBXU1NEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihfX0Iud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IF9fUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9kcHdzc2RfYXZ4X2VwaTMyKF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBkcHdzc2QyNTYoKF9fdjhzaSlfX1MsIChfX3Y4c2kpX19BLCAoX192OHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TCi8vLyB1c2luZyBzaWduZWQgc2F0dXJhdGlvbiwgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0RTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihfX0Iud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIpCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9kcHdzc2RzX2F2eF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkczI1NigoX192OHNpKV9fUywgKF9fdjhzaSlfX0EsIChfX3Y4c2kpX19CKTsKfQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIF9fUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZHBidXNkX2F2eF9lcGkzMihfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkMTI4KChfX3Y0c2kpX19TLCAoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgX19TIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZHBidXNkc19hdnhfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMxMjgoKF9fdjRzaSlfX1MsIChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TLAovLy8gYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoX19CLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Rwd3NzZF9hdnhfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZDEyOCgoX192NHNpKV9fUywgKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDIgaW50ZXJtZWRpYXRlIHNpZ25lZCAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSAyIHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiBcYSBfX1MKLy8vIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoX19CLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMikKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Rwd3NzZHNfYXZ4X2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcHdzc2RzMTI4KChfX3Y0c2kpX19TLCAoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZiAvLyBfX0FWWFZOTklJTlRSSU5fSAoALyo9PT0tLS0tIGJtaWludHJpbi5oIC0gQk1JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8Ym1paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0JNSUlOVFJJTl9ICiNkZWZpbmUgX19CTUlJTlRSSU5fSAoKLyogQWxsb3cgdXNpbmcgdGhlIHR6Y250IGludHJpbnNpY3MgZXZlbiBmb3Igbm9uLUJNSSB0YXJnZXRzLiBTaW5jZSB0aGUgVFpDTlQKICAgaW5zdHJ1Y3Rpb24gYmVoYXZlcyBhcyBCU0Ygb24gbm9uLUJNSSB0YXJnZXRzLCB0aGVyZSBpcyBjb2RlIHRoYXQgZXhwZWN0cwogICB0byB1c2UgaXQgYXMgYSBwb3RlbnRpYWxseSBmYXN0ZXIgdmVyc2lvbiBvZiBCU0YuICovCiNkZWZpbmUgX19SRUxBWEVEX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgojZGVmaW5lIF90emNudF91MTYoYSkgICAgIChfX3R6Y250X3UxNigoYSkpKQoKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUWkNOVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyIHdob3NlIHRyYWlsaW5nIHplcm9zIGFyZSB0byBiZSBjb3VudGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIHNob3J0IF9fUkVMQVhFRF9GTl9BVFRSUwpfX3R6Y250X3UxNih1bnNpZ25lZCBzaG9ydCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTE2KF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19SRUxBWEVEX0ZOX0FUVFJTCl9fdHpjbnRfdTMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTMyKF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4KLy8vICAgIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19SRUxBWEVEX0ZOX0FUVFJTCl9tbV90emNudF8zMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3R6Y250X3UzMihfX1gpOwp9CgojZGVmaW5lIF90emNudF91MzIoYSkgICAgIChfX3R6Y250X3UzMigoYSkpKQoKI2lmZGVmIF9feDg2XzY0X18KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19SRUxBWEVEX0ZOX0FUVFJTCl9fdHpjbnRfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTY0KF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4KLy8vICAgIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19SRUxBWEVEX0ZOX0FUVFJTCl9tbV90emNudF82NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3R6Y250X3U2NChfX1gpOwp9CgojZGVmaW5lIF90emNudF91NjQoYSkgICAgIChfX3R6Y250X3U2NCgoYSkpKQoKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiN1bmRlZiBfX1JFTEFYRURfRk5fQVRUUlMKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQk1JX18pCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYm1pIikpKQoKI2RlZmluZSBfYW5kbl91MzIoYSwgYikgICAoX19hbmRuX3UzMigoYSksIChiKSkpCgovKiBfYmV4dHJfdTMyICE9IF9fYmV4dHJfdTMyICovCiNkZWZpbmUgX2Jsc2lfdTMyKGEpICAgICAgKF9fYmxzaV91MzIoKGEpKSkKCiNkZWZpbmUgX2Jsc21za191MzIoYSkgICAgKF9fYmxzbXNrX3UzMigoYSkpKQoKI2RlZmluZSBfYmxzcl91MzIoYSkgICAgICAoX19ibHNyX3UzMigoYSkpKQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZCBvcGVyYW5kIHdpdGggdGhlIG9uZSdzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFORE4gPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX1kKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUgc2Vjb25kCi8vLyAgICBvcGVyYW5kIHdpdGggdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19hbmRuX3UzMih1bnNpZ25lZCBpbnQgX19YLCB1bnNpZ25lZCBpbnQgX19ZKQp7CiAgcmV0dXJuIH5fX1ggJiBfX1k7Cn0KCi8qIEFNRC1zcGVjaWZpZWQsIGRvdWJsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUiAqLwovLy8gRXh0cmFjdHMgdGhlIHNwZWNpZmllZCBiaXRzIGZyb20gdGhlIGZpcnN0IG9wZXJhbmQgYW5kIHJldHVybnMgdGhlbQovLy8gICAgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCRVhUUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgd2hvc2UgYml0cyBhcmUgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggYml0cyBhcmUgZXh0cmFjdGVkLiBCaXRzIFs3OjBdCi8vLyAgICBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LiBCaXRzIFsxNTo4XSBzcGVjaWZ5IHRoZQovLy8gICAgbnVtYmVyIG9mIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBleHRyYWN0ZWQgYml0cy4KLy8vIFxzZWUgX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmV4dHJfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYmV4dHJfdTMyKF9fWCwgX19ZKTsKfQoKLyogSW50ZWwtc3BlY2lmaWVkLCBzaW5nbGUtbGVhZGluZy11bmRlcnNjb3JlIHZlcnNpb24gb2YgQkVYVFIgKi8KLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZW0KLy8vICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGJpdHMgYXJlIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBfX1kKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKLy8vICAgIGJpdCBmb3IgdGhlIGJpdHMgdG8gYmUgZXh0cmFjdGVkLiBCaXRzIFs3OjBdIHNwZWNpZnkgdGhlIGluZGV4LgovLy8gXHBhcmFtIF9fWgovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vICAgIEJpdHMgWzc6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9iZXh0cl91MzIodW5zaWduZWQgaW50IF9fWCwgdW5zaWduZWQgaW50IF9fWSwgdW5zaWduZWQgaW50IF9fWikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91MzIgKF9fWCwgKChfX1kgJiAweGZmKSB8ICgoX19aICYgMHhmZikgPDwgOCkpKTsKfQoKLyogSW50ZWwtc3BlY2lmaWVkLCBzaW5nbGUtbGVhZGluZy11bmRlcnNjb3JlIHZlcnNpb24gb2YgQkVYVFIyICovCi8vLyBFeHRyYWN0cyB0aGUgc3BlY2lmaWVkIGJpdHMgZnJvbSB0aGUgZmlyc3Qgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGVtCi8vLyAgICBpbiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJFWFRSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBiaXRzIGFyZSBleHRyYWN0ZWQuIEJpdHMgWzc6MF0KLy8vICAgIHNwZWNpZnkgdGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQuIEJpdHMgWzE1OjhdIHNwZWNpZnkgdGhlCi8vLyAgICBudW1iZXIgb2YgYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9iZXh0cjJfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYmV4dHJfdTMyKF9fWCwgX19ZKTsKfQoKLy8vIENsZWFycyBhbGwgYml0cyBpbiB0aGUgc291cmNlIGV4Y2VwdCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdAovLy8gICAgY29udGFpbmluZyBhIHZhbHVlIG9mIDEgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCTFNJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBjbGVhcmVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgY2xlYXJpbmcgdGhlIGJpdHMgZnJvbQovLy8gICAgdGhlIHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzaV91MzIodW5zaWduZWQgaW50IF9fWCkKewogIHJldHVybiBfX1ggJiAtX19YOwp9CgovLy8gQ3JlYXRlcyBhIG1hc2sgd2hvc2UgYml0cyBhcmUgc2V0IHRvIDEsIHVzaW5nIGJpdCAwIHVwIHRvIGFuZAovLy8gICAgaW5jbHVkaW5nIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgdGhhdCBpcyBzZXQgdG8gMSBpbiB0aGUgc291cmNlCi8vLyAgICBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkxTTVNLIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIGNyZWF0ZSB0aGUgbWFzay4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgbmV3bHkgY3JlYXRlZCBtYXNrLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzbXNrX3UzMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fWCBeIChfX1ggLSAxKTsKfQoKLy8vIENsZWFycyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG9wZXJhbmQgdG8gYmUgY2xlYXJlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIGNsZWFyaW5nIHRoZSBzb3VyY2UKLy8vICAgIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibHNyX3UzMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fWCAmIChfX1ggLSAxKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KCiNkZWZpbmUgX2FuZG5fdTY0KGEsIGIpICAgKF9fYW5kbl91NjQoKGEpLCAoYikpKQoKLyogX2JleHRyX3U2NCAhPSBfX2JleHRyX3U2NCAqLwojZGVmaW5lIF9ibHNpX3U2NChhKSAgICAgIChfX2Jsc2lfdTY0KChhKSkpCgojZGVmaW5lIF9ibHNtc2tfdTY0KGEpICAgIChfX2Jsc21za191NjQoKGEpKSkKCiNkZWZpbmUgX2Jsc3JfdTY0KGEpICAgICAgKF9fYmxzcl91NjQoKGEpKSkKCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHRoZSBzZWNvbmQgb3BlcmFuZCB3aXRoIHRoZSBvbmUncwovLy8gICAgY29tcGxlbWVudCBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCB3aXRoIHRoZSBvbmUncyBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYW5kbl91NjQgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX1kpCnsKICByZXR1cm4gfl9fWCAmIF9fWTsKfQoKLyogQU1ELXNwZWNpZmllZCwgZG91YmxlLWxlYWRpbmctdW5kZXJzY29yZSB2ZXJzaW9uIG9mIEJFWFRSICovCi8vLyBFeHRyYWN0cyB0aGUgc3BlY2lmaWVkIGJpdHMgZnJvbSB0aGUgZmlyc3Qgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGVtCi8vLyAgICBpbiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJFWFRSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgYml0cyBhcmUgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4gQml0cwovLy8gICAgWzc6MF0gc3BlY2lmeSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gQml0cyBbMTU6OF0gc3BlY2lmeQovLy8gICAgdGhlIG51bWJlciBvZiBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19iZXh0cl91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91NjQoX19YLCBfX1kpOwp9CgovKiBJbnRlbC1zcGVjaWZpZWQsIHNpbmdsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUiAqLwovLy8gRXh0cmFjdHMgdGhlIHNwZWNpZmllZCBiaXRzIGZyb20gdGhlIGZpcnN0IG9wZXJhbmQgYW5kIHJldHVybnMgdGhlbQovLy8gICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHVzZWQgdG8gc3BlY2lmeSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50Ci8vLyAgICBiaXQgZm9yIHRoZSBiaXRzIHRvIGJlIGV4dHJhY3RlZC4gQml0cyBbNzowXSBzcGVjaWZ5IHRoZSBpbmRleC4KLy8vIFxwYXJhbSBfX1oKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyAgICBCaXRzIFs3OjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBjb250YWluIHRoZQovLy8gICAgZXh0cmFjdGVkIGJpdHMuCi8vLyBcc2VlIF9fYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX2JleHRyX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YLCB1bnNpZ25lZCBpbnQgX19ZLCB1bnNpZ25lZCBpbnQgX19aKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2JleHRyX3U2NCAoX19YLCAoKF9fWSAmIDB4ZmYpIHwgKChfX1ogJiAweGZmKSA8PCA4KSkpOwp9CgovKiBJbnRlbC1zcGVjaWZpZWQsIHNpbmdsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUjIgKi8KLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZW0KLy8vICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggYml0cyBhcmUgZXh0cmFjdGVkLiBCaXRzCi8vLyAgICBbNzowXSBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LiBCaXRzIFsxNTo4XSBzcGVjaWZ5Ci8vLyAgICB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBjb250YWluIHRoZQovLy8gICAgZXh0cmFjdGVkIGJpdHMuCi8vLyBcc2VlIF9fYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX2JleHRyMl91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91NjQoX19YLCBfX1kpOwp9CgovLy8gQ2xlYXJzIGFsbCBiaXRzIGluIHRoZSBzb3VyY2UgZXhjZXB0IGZvciB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0Ci8vLyAgICBjb250YWluaW5nIGEgdmFsdWUgb2YgMSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU0kgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBjbGVhcmVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIGNsZWFyaW5nIHRoZQovLy8gICAgYml0cyBmcm9tIHRoZSBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc2lfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19YICYgLV9fWDsKfQoKLy8vIENyZWF0ZXMgYSBtYXNrIHdob3NlIGJpdHMgYXJlIHNldCB0byAxLCB1c2luZyBiaXQgMCB1cCB0byBhbmQKLy8vICAgIGluY2x1ZGluZyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU01TSyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHVzZWQgdG8gY3JlYXRlIHRoZSBtYXNrLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbmV3bHkgY3JlYXRlZCBtYXNrLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzbXNrX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YKQp7CiAgcmV0dXJuIF9fWCBeIChfX1ggLSAxKTsKfQoKLy8vIENsZWFycyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBvcGVyYW5kIHRvIGJlIGNsZWFyZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgY2xlYXJpbmcgdGhlCi8vLyAgICBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc3JfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19YICYgKF9fWCAtIDEpOwp9CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSAgIFwKICAgICAgICAgIHx8IGRlZmluZWQoX19CTUlfXykgKi8KCiNlbmRpZiAvKiBfX0JNSUlOVFJJTl9IICovCgBzdGRub3JldHVybi5oAHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaAAsIDE9AEVycm9yIHBhcnNpbmcgJwAnAF0AcmVxdWVzdGVkIGdyb3VwIABccwBbOl5wcmludDpdAGFsdG1hdGNoIC0+ICVkIHwgJWQAUnVuU3RhdGVPbkJ5dGVVbmxvY2tlZCBmYWlsZWQgYWZ0ZXIgUmVzZXQAKCVkLD8pAG5qb2JfID0gAFNpbXBsaWZ5IGNhc2Ugbm90IGhhbmRsZWQ6IAB7JWR9AFxmAEVneXB0aWFuX0hpZXJvZ2x5cGhzAE5ld2EAKioqICVzIHJlY2VpdmVkIGF0IHRpbWU9JWxkJXMgKioqCgAlczogZmFpbGVkIHRvIHJlYWQgcHJvZ3JhbSBoZWFkZXIgJWQAaW5kZXggPCBHZXROdW1TeW1ib2xzKCkAKGFub255bW91cyBuYW1lc3BhY2UpAG1pAG9yAFJlcXVlc3RlZCBzdWZmaXggc2l6ZSAAdGhyZWFkIHNob3VsZCBob2xkIGF0IGxlYXN0IGEgcmVhZCBsb2NrIG9uIE11dGV4ICVwICVzACAlcABXYWl0IG9uIABGdXRleCBvcGVyYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJWQKAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYm4uYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL3JhbmRvbS5jAFAtMjI0AE5JU1QgUC0yNTYATkEAa3l0aGUvcHJvdG8vY3h4LnByb3RvAC1XKG5vLSk/KGVycm9yPSk/Y292ZXJhZ2UtbWlzbWF0Y2h8LVcobm8tKT8oZXJyb3I9KT9mcmFtZS1sYXJnZXItdGhhbi4qfC1XKG5vLSk/KGVycm9yPSk/bWF5YmUtdW5pbml0aWFsaXplZHwtVyhuby0pPyhlcnJvcj0pP3RocmVhZC1zYWZldHl8LVcobm8tKT8oZXJyb3I9KT90aHJlYWQtdW5zdXBwb3J0ZWQtbG9jay1uYW1lfC1XKG5vLSk/KGVycm9yPSk/dW51c2VkLWJ1dC1zZXQtcGFyYW1ldGVyfC1XKG5vLSk/KGVycm9yPSk/dW51c2VkLWJ1dC1zZXQtdmFyaWFibGV8LVcobm8tKT8oZXJyb3I9KT91bnVzZWQtbG9jYWwtdHlwZWRlZnN8LWVuYWJsZS1saWJzdGRjeHgtZGVidWd8LWYobm8tKT9hbGlnbi1mdW5jdGlvbnMuKnwtZihuby0pP2FzeW5jaHJvbm91cy11bndpbmQtdGFibGVzfC1mKG5vLSk/YnVpbHRpbi0uKnwtZihuby0pP2NhbGxncmFwaC1wcm9maWxlcy1zZWN0aW9uc3wtZihuby0pP2Zsb2F0LXN0b3JlfC1mKG5vLSk/Y2Fub25pY2FsLXN5c3RlbS1oZWFkZXJzfC1mKG5vLSk/ZWxpbWluYXRlLXVudXNlZC1kZWJ1Zy10eXBlc3wtZihuby0pP2djc2V8LWYobm8tKT9pZGVudHwtZihuby0pP2lubGluZS1zbWFsbC1mdW5jdGlvbnN8LWYobm8tKT9pdm9wdHN8LWYobm8tKT9ub24tY2FsbC1leGNlcHRpb25zfC1mKG5vLSk/b3B0aW1pemUtbG9jYWxpdHl8LWYobm8tKT9wZXJtaXNzaXZlfC1mKG5vLSk/cGx1Z2luLWFyZy0uKnwtZihuby0pP3BsdWdpbj0uKnwtZihuby0pP3ByZWZldGNoLWxvb3AtYXJyYXlzfC1mKG5vLSk/cHJvZmlsZS1jb3JyZWN0aW9ufC1mKG5vLSk/cHJvZmlsZS1kaXIuKnwtZihuby0pP3Byb2ZpbGUtZ2VuZXJhdGUuKnwtZihuby0pP3Byb2ZpbGUtdXNlLip8LWYobm8tKT9wcm9maWxlLXJldXNlZGlzdHwtZihuby0pP3Byb2ZpbGUtdmFsdWVzfC1mKG5vLSk/cmVjb3JkLWNvbXBpbGF0aW9uLWluZm8taW4tZWxmfC1mKG5vLSk/cmVvcmRlci1mdW5jdGlvbnM9Lip8LWYobm8tKT9yb3VuZGluZy1tYXRofC1mKG5vLSk/cmlwYXwtZihuby0pP3JpcGEtZGlzYWxsb3ctYXNtLW1vZHVsZXN8LWYobm8tKT9zYW5pdGl6ZS4qfC1mKG5vLSk/c2VlfC1mKG5vLSk/c3RyaWN0LWVudW0tcHJlY2lzaW9ufC1mKG5vLSk/dHJhY2VyfC1mKG5vLSk/dHJlZS0uKnwtZihuby0pP3Vucm9sbC1hbGwtbG9vcHN8LWYobm8tKT93YXJuLWluY29tcGxldGUtcGF0dGVybnN8LWcoOmxpbmVzLHNvdXJjZXxnZGIpfC1tKG5vLSk/YWxpZ24tZG91YmxlfC1tKG5vLSk/ZnBtYXRoPS4qfC1tKG5vLSk/Y2xkfC1tKG5vLSk/cmVkLXpvbmV8LS1wYXJhbT0uKnwtbWNwdT0uKnwtbWFwY3MtZnJhbWV8LXBhc3MtZXhpdC1jb2RlcwAtTVtGVFFdAC1hbmFseXplci1jb25maWcAXigAOiBtYXBwZWQgdG8gAG5vdF9mcmVlc3RhbmRpbmcAMABfX2NsYW5nX2N1ZGFfY29tcGxleF9idWlsdGlucy5oAC8qPT09LS0tLSBhcm1fY2RlLmggLSBBUk0gQ0RFIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19BUk1fQ0RFX0gKI2RlZmluZSBfX0FSTV9DREVfSAoKI2lmICFfX0FSTV9GRUFUVVJFX0NERQojZXJyb3IgIkNERSBzdXBwb3J0IG5vdCBlbmFibGVkIgojZW5kaWYKCiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MSkpKQp1aW50MzJfdCBfX2FybV9jeDEoaW50LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gxYSkpKQp1aW50MzJfdCBfX2FybV9jeDFhKGludCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDFkKSkpCnVpbnQ2NF90IF9fYXJtX2N4MWQoaW50LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gxZGEpKSkKdWludDY0X3QgX19hcm1fY3gxZGEoaW50LCB1aW50NjRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MikpKQp1aW50MzJfdCBfX2FybV9jeDIoaW50LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MmEpKSkKdWludDMyX3QgX19hcm1fY3gyYShpbnQsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MmQpKSkKdWludDY0X3QgX19hcm1fY3gyZChpbnQsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gyZGEpKSkKdWludDY0X3QgX19hcm1fY3gyZGEoaW50LCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDMpKSkKdWludDMyX3QgX19hcm1fY3gzKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gzYSkpKQp1aW50MzJfdCBfX2FybV9jeDNhKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4M2QpKSkKdWludDY0X3QgX19hcm1fY3gzZChpbnQsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4M2RhKSkpCnVpbnQ2NF90IF9fYXJtX2N4M2RhKGludCwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDFfdTMyKGludCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFhX3UzMikpKQp1aW50MzJfdCBfX2FybV92Y3gxYV91MzIoaW50LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFkX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gxZF91NjQoaW50LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MWRhX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gxZGFfdTY0KGludCwgdWludDY0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gyX3UzMikpKQp1aW50MzJfdCBfX2FybV92Y3gyX3UzMihpbnQsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MmFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDJhX3UzMihpbnQsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJkX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gyZF91NjQoaW50LCB1aW50NjRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJkYV91NjQpKSkKdWludDY0X3QgX19hcm1fdmN4MmRhX3U2NChpbnQsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDNfdTMyKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M2FfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDNhX3UzMihpbnQsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzZF91NjQpKSkKdWludDY0X3QgX19hcm1fdmN4M2RfdTY0KGludCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M2RhX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gzZGFfdTY0KGludCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDMyX3QpOwoKI2lmIF9fQVJNX0ZFQVRVUkVfTVZFCgp0eXBlZGVmIHVpbnQxNl90IG12ZV9wcmVkMTZfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg4KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQxNl90IGludDE2eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg0KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQzMl90IGludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygyKSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQ2NF90IGludDY0eDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygxNiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgaW50OF90IGludDh4MTZfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg4KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSB1aW50MTZfdCB1aW50MTZ4OF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDQpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIHVpbnQzMl90IHVpbnQzMng0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oMiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDY0X3QgdWludDY0eDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygxNiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDhfdCB1aW50OHgxNl90OwoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4MXFfbShpbnQsIGludDE2eDhfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDFxX20oaW50LCBpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gxcV9tKGludCwgaW50NjR4Ml90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gxcV9tKGludCwgaW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDFxX20oaW50LCB1aW50MTZ4OF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDFxX20oaW50LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDFxX20oaW50LCB1aW50NjR4Ml90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MXFfbShpbnQsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MXFfdTgoaW50LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gxcWFfbShpbnQsIGludDE2eDhfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gxcWFfbShpbnQsIGludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gxcWFfbShpbnQsIGludDY0eDJfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDFxYV9tKGludCwgaW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gxcWFfbShpbnQsIHVpbnQxNng4X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDFxYV9tKGludCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MXFhX20oaW50LCB1aW50NjR4Ml90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDFxYV9tKGludCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4MXFhKGludCwgaW50MTZ4OF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4MXFhKGludCwgaW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4MXFhKGludCwgaW50NjR4Ml90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gxcWEoaW50LCBpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4MXFhKGludCwgdWludDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gxcWEoaW50LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDFxYShpbnQsIHVpbnQ2NHgyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gxcWEoaW50LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9tX2ltcGxfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCBpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIGludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCB1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9tX2ltcGxfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgdWludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4MnEoaW50LCBpbnQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDJxKGludCwgaW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gycShpbnQsIGludDY0eDJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gycShpbnQsIGludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDJxKGludCwgdWludDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDJxKGludCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDJxKGludCwgdWludDY0eDJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnEoaW50LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCBpbnQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV91OF9zMzIpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycV91OChpbnQsIGludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3M2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgaW50NjR4Ml90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfczgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycV91OChpbnQsIGludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgdWludDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3UzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3U2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgdWludDY0eDJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIGludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9pbXBsX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCBpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDJxYV9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDJxYV9pbXBsKGludCwgaW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCB1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCB1aW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIGludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX21faW1wbF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCBpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gycWFfbV9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gycWFfbV9pbXBsKGludCwgaW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCB1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCB1aW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfaW1wbF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCBpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIGludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCB1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfaW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgdWludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gzcV9tX2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfbV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfbV9pbXBsX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gzcV9tX2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfbV9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF9zMzIpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgaW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF9zNjQpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCB1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF91MzIpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgdWludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX3U4X2ltcGxfdTY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX2ltcGxfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIHVpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfbV9pbXBsX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDNxYV9tX2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDNxYV9tX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIHVpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTgpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U4KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91OCkpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91OCkpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3U4KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTgpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3UzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91NjQpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZyZWludGVycHJldHFfdThfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQ4eDE2X3QpOwojZGVmaW5lIF9fYXJtX3ZjeDJxX20oY3AsIGluYWN0aXZlLCBuLCBpbW0sIHByZWQpIF9fYXJtX3ZjeDJxX21faW1wbCgoY3ApLCAoaW5hY3RpdmUpLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG4pLCAoaW1tKSwgKHByZWQpKQojZGVmaW5lIF9fYXJtX3ZjeDJxYShjcCwgYWNjLCBuLCBpbW0pIF9fYXJtX3ZjeDJxYV9pbXBsKChjcCksIChhY2MpLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG4pLCAoaW1tKSkKI2RlZmluZSBfX2FybV92Y3gycWFfbShjcCwgYWNjLCBuLCBpbW0sIHByZWQpIF9fYXJtX3ZjeDJxYV9tX2ltcGwoKGNwKSwgKGFjYyksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobiksIChpbW0pLCAocHJlZCkpCiNkZWZpbmUgX19hcm1fdmN4M3EoY3AsIG4sIG0sIGltbSkgX19hcm1fdmN4M3FfaW1wbCgoY3ApLCAobiksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobSksIChpbW0pKQojZGVmaW5lIF9fYXJtX3ZjeDNxX20oY3AsIGluYWN0aXZlLCBuLCBtLCBpbW0sIHByZWQpIF9fYXJtX3ZjeDNxX21faW1wbCgoY3ApLCAoaW5hY3RpdmUpLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG4pLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG0pLCAoaW1tKSwgKHByZWQpKQojZGVmaW5lIF9fYXJtX3ZjeDNxX3U4KGNwLCBuLCBtLCBpbW0pIF9fYXJtX3ZjeDNxX3U4X2ltcGwoKGNwKSwgKG4pLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG0pLCAoaW1tKSkKI2RlZmluZSBfX2FybV92Y3gzcWEoY3AsIGFjYywgbiwgbSwgaW1tKSBfX2FybV92Y3gzcWFfaW1wbCgoY3ApLCAoYWNjKSwgX19hcm1fdnJlaW50ZXJwcmV0cV91OChuKSwgX19hcm1fdnJlaW50ZXJwcmV0cV91OChtKSwgKGltbSkpCiNkZWZpbmUgX19hcm1fdmN4M3FhX20oY3AsIGFjYywgbiwgbSwgaW1tLCBwcmVkKSBfX2FybV92Y3gzcWFfbV9pbXBsKChjcCksIChhY2MpLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG4pLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG0pLCAoaW1tKSwgKHByZWQpKQoKI2VuZGlmIC8qIF9fQVJNX0ZFQVRVUkVfTVZFICovCgojaWYgX19BUk1fRkVBVFVSRV9NVkUgJiAyCgp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CnR5cGVkZWYgZmxvYXQgZmxvYXQzMl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDgpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGZsb2F0MTZfdCBmbG9hdDE2eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg0KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBmbG9hdDMyX3QgZmxvYXQzMng0X3Q7CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDFxX20oaW50LCBmbG9hdDE2eDhfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MXFfbShpbnQsIGZsb2F0MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDFxYShpbnQsIGZsb2F0MTZ4OF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gxcWEoaW50LCBmbG9hdDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3gxcWFfbShpbnQsIGZsb2F0MTZ4OF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MXFhX20oaW50LCBmbG9hdDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDJxKGludCwgZmxvYXQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MnEoaW50LCBmbG9hdDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgZmxvYXQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X2YxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgZmxvYXQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV91OF9mMzIpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycV91OChpbnQsIGZsb2F0MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDJxYV9pbXBsKGludCwgZmxvYXQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCBmbG9hdDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX21faW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgZmxvYXQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIGZsb2F0MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX2YxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX3U4X2ltcGxfZjMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgZmxvYXQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCBmbG9hdDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDNxYV9tX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91OCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91OCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChmbG9hdDMyeDRfdCk7CgojZW5kaWYgLyogX19BUk1fRkVBVFVSRV9NVkUgJiAyICovCgojaWZkZWYgX19jcGx1c3BsdXMKfSAvKiBleHRlcm4gIkMiICovCiNlbmRpZgoKI2VuZGlmIC8qIF9fQVJNX0NERV9IICovCgAvLz09PS0tLS0gYXJtX2Ntc2UuaCAtIEFybSBDTVNFIHN1cHBvcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBfX0FSTV9DTVNFX0gKI2RlZmluZSBfX0FSTV9DTVNFX0gKCiNpZiAoX19BUk1fRkVBVFVSRV9DTVNFICYgMHgxKQojaW5jbHVkZSA8c3RkZGVmLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNkZWZpbmUgX19BUk1fQ01TRV9TRUNVUkVfTU9ERSAoX19BUk1fRkVBVFVSRV9DTVNFICYgMHgyKQojZGVmaW5lIENNU0VfTVBVX1JFQURXUklURSAxIC8qIGNoZWNrcyBpZiByZWFkd3JpdGVfb2sgZmllbGQgaXMgc2V0ICovCiNkZWZpbmUgQ01TRV9BVV9OT05TRUNVUkUgIDIgLyogY2hlY2tzIGlmIHBlcm1pc3Npb25zIGhhdmUgc2VjdXJlIGZpZWxkIHVuc2V0ICovCiNkZWZpbmUgQ01TRV9NUFVfVU5QUklWICAgIDQgLyogc2V0cyBUIGZsYWcgb24gVFQgaW5zcnR1Y3Rpb24gKi8KI2RlZmluZSBDTVNFX01QVV9SRUFEICAgICAgOCAvKiBjaGVja3MgaWYgcmVhZF9vayBmaWVsZCBpcyBzZXQgKi8KI2RlZmluZSBDTVNFX01QVV9OT05TRUNVUkUgMTYgLyogc2V0cyBBIGZsYWcsIGNoZWNrcyBpZiBzZWN1cmUgZmllbGQgdW5zZXQgKi8KI2RlZmluZSBDTVNFX05PTlNFQ1VSRSAoQ01TRV9BVV9OT05TRUNVUkUgfCBDTVNFX01QVV9OT05TRUNVUkUpCgojZGVmaW5lIGNtc2VfY2hlY2tfcG9pbnRlZF9vYmplY3QocCwgZikgXAogIGNtc2VfY2hlY2tfYWRkcmVzc19yYW5nZSgocCksIHNpemVvZigqKHApKSwgKGYpKQoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYKCnR5cGVkZWYgdW5pb24gewogIHN0cnVjdCBjbXNlX2FkZHJlc3NfaW5mbyB7CiNpZmRlZiBfX0FSTV9CSUdfRU5ESUFOCiAgICAvKiBfX0FSTV9CSUdfRU5ESUFOICovCiNpZiAoX19BUk1fQ01TRV9TRUNVUkVfTU9ERSkKICAgIHVuc2lnbmVkIGlkYXVfcmVnaW9uIDogODsKICAgIHVuc2lnbmVkIGlkYXVfcmVnaW9uX3ZhbGlkIDogMTsKICAgIHVuc2lnbmVkIHNlY3VyZSA6IDE7CiAgICB1bnNpZ25lZCBub25zZWN1cmVfcmVhZHdyaXRlX29rIDogMTsKICAgIHVuc2lnbmVkIG5vbnNlY3VyZV9yZWFkX29rIDogMTsKI2Vsc2UKICAgIHVuc2lnbmVkIDogMTI7CiNlbmRpZgogICAgdW5zaWduZWQgcmVhZHdyaXRlX29rIDogMTsKICAgIHVuc2lnbmVkIHJlYWRfb2sgOiAxOwojaWYgKF9fQVJNX0NNU0VfU0VDVVJFX01PREUpCiAgICB1bnNpZ25lZCBzYXVfcmVnaW9uX3ZhbGlkIDogMTsKI2Vsc2UKICAgIHVuc2lnbmVkIDogMTsKI2VuZGlmCiAgICB1bnNpZ25lZCBtcHVfcmVnaW9uX3ZhbGlkIDogMTsKI2lmIChfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogICAgdW5zaWduZWQgc2F1X3JlZ2lvbiA6IDg7CiNlbHNlCiAgICB1bnNpZ25lZCA6IDg7CiNlbmRpZgogICAgdW5zaWduZWQgbXB1X3JlZ2lvbiA6IDg7CgojZWxzZSAvKiBfX0FSTV9MSVRUTEVfRU5ESUFOICovCiAgICB1bnNpZ25lZCBtcHVfcmVnaW9uIDogODsKI2lmIChfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogICAgdW5zaWduZWQgc2F1X3JlZ2lvbiA6IDg7CiNlbHNlCiAgICB1bnNpZ25lZCA6IDg7CiNlbmRpZgogICAgdW5zaWduZWQgbXB1X3JlZ2lvbl92YWxpZCA6IDE7CiNpZiAoX19BUk1fQ01TRV9TRUNVUkVfTU9ERSkKICAgIHVuc2lnbmVkIHNhdV9yZWdpb25fdmFsaWQgOiAxOwojZWxzZQogICAgdW5zaWduZWQgOiAxOwojZW5kaWYKICAgIHVuc2lnbmVkIHJlYWRfb2sgOiAxOwogICAgdW5zaWduZWQgcmVhZHdyaXRlX29rIDogMTsKI2lmIChfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogICAgdW5zaWduZWQgbm9uc2VjdXJlX3JlYWRfb2sgOiAxOwogICAgdW5zaWduZWQgbm9uc2VjdXJlX3JlYWR3cml0ZV9vayA6IDE7CiAgICB1bnNpZ25lZCBzZWN1cmUgOiAxOwogICAgdW5zaWduZWQgaWRhdV9yZWdpb25fdmFsaWQgOiAxOwogICAgdW5zaWduZWQgaWRhdV9yZWdpb24gOiA4OwojZWxzZQogICAgdW5zaWduZWQgOiAxMjsKI2VuZGlmCiNlbmRpZiAvKl9fQVJNX0xJVFRMRV9FTkRJQU4gKi8KICB9IGZsYWdzOwogIHVuc2lnbmVkIHZhbHVlOwp9IGNtc2VfYWRkcmVzc19pbmZvX3Q7CgpzdGF0aWMgY21zZV9hZGRyZXNzX2luZm9fdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpjbXNlX1RUKHZvaWQgKl9fcCkgewogIGNtc2VfYWRkcmVzc19pbmZvX3QgX191OwogIF9fdS52YWx1ZSA9IF9fYnVpbHRpbl9hcm1fY21zZV9UVChfX3ApOwogIHJldHVybiBfX3U7Cn0Kc3RhdGljIGNtc2VfYWRkcmVzc19pbmZvX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKY21zZV9UVFQodm9pZCAqX19wKSB7CiAgY21zZV9hZGRyZXNzX2luZm9fdCBfX3U7CiAgX191LnZhbHVlID0gX19idWlsdGluX2FybV9jbXNlX1RUVChfX3ApOwogIHJldHVybiBfX3U7Cn0KCiNpZiBfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFCnN0YXRpYyBjbXNlX2FkZHJlc3NfaW5mb190IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCmNtc2VfVFRBKHZvaWQgKl9fcCkgewogIGNtc2VfYWRkcmVzc19pbmZvX3QgX191OwogIF9fdS52YWx1ZSA9IF9fYnVpbHRpbl9hcm1fY21zZV9UVEEoX19wKTsKICByZXR1cm4gX191Owp9CnN0YXRpYyBjbXNlX2FkZHJlc3NfaW5mb190IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCmNtc2VfVFRBVCh2b2lkICpfX3ApIHsKICBjbXNlX2FkZHJlc3NfaW5mb190IF9fdTsKICBfX3UudmFsdWUgPSBfX2J1aWx0aW5fYXJtX2Ntc2VfVFRBVChfX3ApOwogIHJldHVybiBfX3U7Cn0KI2VuZGlmCgojZGVmaW5lIGNtc2VfVFRfZnB0cihwKSBjbXNlX1RUKF9fYnVpbHRpbl9iaXRfY2FzdCh2b2lkICosIChwKSkpCiNkZWZpbmUgY21zZV9UVFRfZnB0cihwKSBjbXNlX1RUVChfX2J1aWx0aW5fYml0X2Nhc3Qodm9pZCAqLCAocCkpKQoKI2lmIF9fQVJNX0NNU0VfU0VDVVJFX01PREUKI2RlZmluZSBjbXNlX1RUQV9mcHRyKHApIGNtc2VfVFRBKF9fYnVpbHRpbl9iaXRfY2FzdCh2b2lkICosIChwKSkpCiNkZWZpbmUgY21zZV9UVEFUX2ZwdHIocCkgY21zZV9UVEFUKF9fYnVpbHRpbl9iaXRfY2FzdCh2b2lkICosIChwKSkpCiNlbmRpZgoKc3RhdGljIHZvaWQgKl9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKY21zZV9jaGVja19hZGRyZXNzX3JhbmdlKHZvaWQgKl9fcGIsIHNpemVfdCBfX3MsIGludCBfX2ZsYWdzKSB7CiAgdWludHB0cl90IF9fYmVnaW4gPSAodWludHB0cl90KV9fcGI7CiAgdWludHB0cl90IF9fZW5kID0gX19iZWdpbiArIF9fcyAtIDE7CgogIGlmIChfX2VuZCA8IF9fYmVnaW4pCiAgICByZXR1cm4gTlVMTDsgLyogd3JhcCBhcm91bmQgY2hlY2sgKi8KCiAgLyogQ2hlY2sgd2hldGhlciB0aGUgcmFuZ2UgY3Jvc3NlcyBhIDMyLWJ5dGVzIGFsaWduZWQgYWRkcmVzcyAqLwogIGNvbnN0IGludCBfX3NpbmdsZV9jaGVjayA9IChfX2JlZ2luIF4gX19lbmQpIDwgMHgyMHU7CgogIC8qIGV4ZWN1dGUgdGhlIHJpZ2h0IHZhcmlhbnQgb2YgdGhlIFRUIGluc3RydWN0aW9ucyAqLwogIHZvaWQgKl9fcGUgPSAodm9pZCAqKV9fZW5kOwogIGNtc2VfYWRkcmVzc19pbmZvX3QgX19wZXJtYiwgX19wZXJtZTsKICBzd2l0Y2ggKF9fZmxhZ3MgJiAoQ01TRV9NUFVfVU5QUklWIHwgQ01TRV9NUFVfTk9OU0VDVVJFKSkgewogIGNhc2UgMDoKICAgIF9fcGVybWIgPSBjbXNlX1RUKF9fcGIpOwogICAgX19wZXJtZSA9IF9fc2luZ2xlX2NoZWNrID8gX19wZXJtYiA6IGNtc2VfVFQoX19wZSk7CiAgICBicmVhazsKICBjYXNlIENNU0VfTVBVX1VOUFJJVjoKICAgIF9fcGVybWIgPSBjbXNlX1RUVChfX3BiKTsKICAgIF9fcGVybWUgPSBfX3NpbmdsZV9jaGVjayA/IF9fcGVybWIgOiBjbXNlX1RUVChfX3BlKTsKICAgIGJyZWFrOwojaWYgX19BUk1fQ01TRV9TRUNVUkVfTU9ERQogIGNhc2UgQ01TRV9NUFVfTk9OU0VDVVJFOgogICAgX19wZXJtYiA9IGNtc2VfVFRBKF9fcGIpOwogICAgX19wZXJtZSA9IF9fc2luZ2xlX2NoZWNrID8gX19wZXJtYiA6IGNtc2VfVFRBKF9fcGUpOwogICAgYnJlYWs7CiAgY2FzZSBDTVNFX01QVV9VTlBSSVYgfCBDTVNFX01QVV9OT05TRUNVUkU6CiAgICBfX3Blcm1iID0gY21zZV9UVEFUKF9fcGIpOwogICAgX19wZXJtZSA9IF9fc2luZ2xlX2NoZWNrID8gX19wZXJtYiA6IGNtc2VfVFRBVChfX3BlKTsKICAgIGJyZWFrOwojZW5kaWYKICAvKiBpZiBDTVNFX05PTlNFQ1VSRSBpcyBzcGVjaWZpZWQgdy9vIF9fQVJNX0NNU0VfU0VDVVJFX01PREUgKi8KICBkZWZhdWx0OgogICAgcmV0dXJuIE5VTEw7CiAgfQoKICAvKiBjaGVjayB0aGF0IHRoZSByYW5nZSBkb2VzIG5vdCBjcm9zcyBNUFUsIFNBVSwgb3IgSURBVSByZWdpb24gYm91bmRhcmllcyAqLwogIGlmIChfX3Blcm1iLnZhbHVlICE9IF9fcGVybWUudmFsdWUpCiAgICByZXR1cm4gTlVMTDsKI2lmICEoX19BUk1fQ01TRV9TRUNVUkVfTU9ERSkKICAvKiBDTVNFX0FVX05PTlNFQ1VSRSBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIF9fQVJNX0ZFQVRVUkVfQ01TRSAmIDB4MiAqLwogIGlmIChfX2ZsYWdzICYgQ01TRV9BVV9OT05TRUNVUkUpCiAgICByZXR1cm4gTlVMTDsKI2VuZGlmCgogIC8qIGNoZWNrIHRoZSBwZXJtaXNzaW9uIG9uIHRoZSByYW5nZSAqLwogIHN3aXRjaCAoX19mbGFncyAmIH4oQ01TRV9NUFVfVU5QUklWIHwgQ01TRV9NUFVfTk9OU0VDVVJFKSkgewojaWYgKF9fQVJNX0NNU0VfU0VDVVJFX01PREUpCiAgY2FzZSBDTVNFX01QVV9SRUFEIHwgQ01TRV9NUFVfUkVBRFdSSVRFIHwgQ01TRV9BVV9OT05TRUNVUkU6CiAgY2FzZSBDTVNFX01QVV9SRUFEV1JJVEUgfCBDTVNFX0FVX05PTlNFQ1VSRToKICAgIHJldHVybiBfX3Blcm1iLmZsYWdzLm5vbnNlY3VyZV9yZWFkd3JpdGVfb2sgPyBfX3BiIDogTlVMTDsKCiAgY2FzZSBDTVNFX01QVV9SRUFEIHwgQ01TRV9BVV9OT05TRUNVUkU6CiAgICByZXR1cm4gX19wZXJtYi5mbGFncy5ub25zZWN1cmVfcmVhZF9vayA/IF9fcGIgOiBOVUxMOwoKICBjYXNlIENNU0VfQVVfTk9OU0VDVVJFOgogICAgcmV0dXJuIF9fcGVybWIuZmxhZ3Muc2VjdXJlID8gTlVMTCA6IF9fcGI7CiNlbmRpZgogIGNhc2UgQ01TRV9NUFVfUkVBRCB8IENNU0VfTVBVX1JFQURXUklURToKICBjYXNlIENNU0VfTVBVX1JFQURXUklURToKICAgIHJldHVybiBfX3Blcm1iLmZsYWdzLnJlYWR3cml0ZV9vayA/IF9fcGIgOiBOVUxMOwoKICBjYXNlIENNU0VfTVBVX1JFQUQ6CiAgICByZXR1cm4gX19wZXJtYi5mbGFncy5yZWFkX29rID8gX19wYiA6IE5VTEw7CgogIGRlZmF1bHQ6CiAgICByZXR1cm4gTlVMTDsKICB9Cn0KCiNpZiBfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFCnN0YXRpYyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKY21zZV9ub25zZWN1cmVfY2FsbGVyKHZvaWQpIHsKICByZXR1cm4gISgodWludHB0cl90KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSAmIDEpOwp9CgojZGVmaW5lIGNtc2VfbnNmcHRyX2NyZWF0ZShwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYnVpbHRpbl9iaXRfY2FzdChfX3R5cGVvZl9fKHApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAoX19idWlsdGluX2JpdF9jYXN0KHVpbnRwdHJfdCwgcCkgJiB+KHVpbnRwdHJfdCkxKSkKCiNkZWZpbmUgY21zZV9pc19uc2ZwdHIocCkgKChfX2J1aWx0aW5fYml0X2Nhc3QodWludHB0cl90LCBwKSAmIDEpID09IDApCgojZW5kaWYgLyogX19BUk1fQ01TRV9TRUNVUkVfTU9ERSAqLwoKdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vcmV0dXJuX18pKSBjbXNlX2Fib3J0KHZvaWQpOwojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKfQojZW5kaWYKCiNlbmRpZiAvKiAoX19BUk1fRkVBVFVSRV9DTVNFICYgMHgxKSAqLwoKI2VuZGlmIC8qIF9fQVJNX0NNU0VfSCAqLwoALyo9PT0tLS0tIGFybV9zdmUuaCAtIEFSTSBTVkUgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FSTV9TVkVfSAojZGVmaW5lIF9fQVJNX1NWRV9ICgojaWYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUpCiNlcnJvciAiU1ZFIHN1cHBvcnQgbm90IGVuYWJsZWQiCiNlbHNlCgojaWYgIWRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pCiNlcnJvciAiQmlnIGVuZGlhbiBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBmb3IgYXJtX3N2ZS5oIgojZW5kaWYKI2luY2x1ZGUgPHN0ZGludC5oPgoKI2lmZGVmICBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2Vsc2UKI2luY2x1ZGUgPHN0ZGJvb2wuaD4KI2VuZGlmCgp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CnR5cGVkZWYgZmxvYXQgZmxvYXQzMl90Owp0eXBlZGVmIGRvdWJsZSBmbG9hdDY0X3Q7CnR5cGVkZWYgX19TVkludDhfdCBzdmludDhfdDsKdHlwZWRlZiBfX1NWSW50MTZfdCBzdmludDE2X3Q7CnR5cGVkZWYgX19TVkludDMyX3Qgc3ZpbnQzMl90Owp0eXBlZGVmIF9fU1ZJbnQ2NF90IHN2aW50NjRfdDsKdHlwZWRlZiBfX1NWVWludDhfdCBzdnVpbnQ4X3Q7CnR5cGVkZWYgX19TVlVpbnQxNl90IHN2dWludDE2X3Q7CnR5cGVkZWYgX19TVlVpbnQzMl90IHN2dWludDMyX3Q7CnR5cGVkZWYgX19TVlVpbnQ2NF90IHN2dWludDY0X3Q7CnR5cGVkZWYgX19TVkZsb2F0MTZfdCBzdmZsb2F0MTZfdDsKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICYmICFkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNl9TQ0FMQVJfQVJJVEhNRVRJQykKI2Vycm9yICJfX0FSTV9GRUFUVVJFX0JGMTZfU0NBTEFSX0FSSVRITUVUSUMgbXVzdCBiZSBkZWZpbmVkIHdoZW4gX19BUk1fRkVBVFVSRV9TVkVfQkYxNiBpcyBkZWZpbmVkIgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCnR5cGVkZWYgX19TVkJGbG9hdDE2X3Qgc3ZiZmxvYXQxNl90OwojZW5kaWYKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNl9TQ0FMQVJfQVJJVEhNRVRJQykKI2luY2x1ZGUgPGFybV9iZjE2Lmg+CnR5cGVkZWYgX19iZjE2IGJmbG9hdDE2X3Q7CiNlbmRpZgoKdHlwZWRlZiBfX1NWRmxvYXQzMl90IHN2ZmxvYXQzMl90Owp0eXBlZGVmIF9fU1ZGbG9hdDY0X3Qgc3ZmbG9hdDY0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDh4Ml90IHN2aW50OHgyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDE2eDJfdCBzdmludDE2eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50MzJ4Ml90IHN2aW50MzJ4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQ2NHgyX3Qgc3ZpbnQ2NHgyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQ4eDJfdCBzdnVpbnQ4eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDE2eDJfdCBzdnVpbnQxNngyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQzMngyX3Qgc3Z1aW50MzJ4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50NjR4Ml90IHN2dWludDY0eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQxNngyX3Qgc3ZmbG9hdDE2eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQzMngyX3Qgc3ZmbG9hdDMyeDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQ2NHgyX3Qgc3ZmbG9hdDY0eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50OHgzX3Qgc3ZpbnQ4eDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50MTZ4M190IHN2aW50MTZ4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQzMngzX3Qgc3ZpbnQzMngzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDY0eDNfdCBzdmludDY0eDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDh4M190IHN2dWludDh4M190Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50MTZ4M190IHN2dWludDE2eDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDMyeDNfdCBzdnVpbnQzMngzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQ2NHgzX3Qgc3Z1aW50NjR4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDE2eDNfdCBzdmZsb2F0MTZ4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDMyeDNfdCBzdmZsb2F0MzJ4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDY0eDNfdCBzdmZsb2F0NjR4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQ4eDRfdCBzdmludDh4NF90Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQxNng0X3Qgc3ZpbnQxNng0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDMyeDRfdCBzdmludDMyeDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50NjR4NF90IHN2aW50NjR4NF90Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50OHg0X3Qgc3Z1aW50OHg0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQxNng0X3Qgc3Z1aW50MTZ4NF90Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50MzJ4NF90IHN2dWludDMyeDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDY0eDRfdCBzdnVpbnQ2NHg0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0MTZ4NF90IHN2ZmxvYXQxNng0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0MzJ4NF90IHN2ZmxvYXQzMng0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0NjR4NF90IHN2ZmxvYXQ2NHg0X3Q7CnR5cGVkZWYgX19TVkJvb2xfdCAgc3Zib29sX3Q7CgojaWZkZWYgX19BUk1fRkVBVFVSRV9TVkVfQkYxNgp0eXBlZGVmIF9fY2xhbmdfc3ZiZmxvYXQxNngyX3Qgc3ZiZmxvYXQxNngyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmJmbG9hdDE2eDNfdCBzdmJmbG9hdDE2eDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2YmZsb2F0MTZ4NF90IHN2YmZsb2F0MTZ4NF90OwojZW5kaWYKZW51bSBzdnBhdHRlcm4KewogIFNWX1BPVzIgPSAwLAogIFNWX1ZMMSA9IDEsCiAgU1ZfVkwyID0gMiwKICBTVl9WTDMgPSAzLAogIFNWX1ZMNCA9IDQsCiAgU1ZfVkw1ID0gNSwKICBTVl9WTDYgPSA2LAogIFNWX1ZMNyA9IDcsCiAgU1ZfVkw4ID0gOCwKICBTVl9WTDE2ID0gOSwKICBTVl9WTDMyID0gMTAsCiAgU1ZfVkw2NCA9IDExLAogIFNWX1ZMMTI4ID0gMTIsCiAgU1ZfVkwyNTYgPSAxMywKICBTVl9NVUw0ID0gMjksCiAgU1ZfTVVMMyA9IDMwLAogIFNWX0FMTCA9IDMxCn07CgplbnVtIHN2cHJmb3AKewogIFNWX1BMREwxS0VFUCA9IDAsCiAgU1ZfUExETDFTVFJNID0gMSwKICBTVl9QTERMMktFRVAgPSAyLAogIFNWX1BMREwyU1RSTSA9IDMsCiAgU1ZfUExETDNLRUVQID0gNCwKICBTVl9QTERMM1NUUk0gPSA1LAogIFNWX1BTVEwxS0VFUCA9IDgsCiAgU1ZfUFNUTDFTVFJNID0gOSwKICBTVl9QU1RMMktFRVAgPSAxMCwKICBTVl9QU1RMMlNUUk0gPSAxMSwKICBTVl9QU1RMM0tFRVAgPSAxMiwKICBTVl9QU1RMM1NUUk0gPSAxMwp9OwoKLyogRnVuY3Rpb24gYXR0cmlidXRlcyAqLwojZGVmaW5lIF9fYWkgc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKCiNkZWZpbmUgX19haW8gc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX292ZXJsb2FkYWJsZV9fKSkKCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9mNjQoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3M4KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3MxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9zMzIoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczY0KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTgoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3UzMihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91NjQoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X2YzMihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9mNjQoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X2Y2NChfX1ZBX0FSR1NfXykKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3M4KG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9zMTYob3ApOwp9CgpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3MzMihvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczY0KG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF91OChvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3UxNihvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3UzMihvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3U2NChvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2YzMihvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9mNjQob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczgob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3MxNihvcCk7Cn0KCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczMyKG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9zNjQob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3U4KG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTE2KG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTMyKG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTY0KG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfZjMyKG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X2Y2NChvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zOChvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfczE2KG9wKTsKfQoKX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zMzIob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3M2NChvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfdTgob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91MTYob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91MzIob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91NjQob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9mMzIob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfZjY0KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3M4KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9zMTYob3ApOwp9CgpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3MzMihvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfczY0KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF91OChvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3UxNihvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3UzMihvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3U2NChvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2YzMihvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9mNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3M4KG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczE2KG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczMyKG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczY0KG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfdTgob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfdTE2KG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3UzMihvcCk7Cn0KCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91NjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9mMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X2Y2NChvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfczgob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zMTYob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91OChvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91MTYob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfdTMyKG9wKTsKfQoKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3U2NChvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X2YzMihvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfZjY0KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9zOChvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3MxNihvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3MzMihvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3M2NChvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3U4KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3UxNihvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl91MzIob3ApOwp9CgpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTY0KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfZjMyKG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9mNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3M4KG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczE2KG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczMyKG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczY0KG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTgob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTE2KG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3UzMihvcCk7Cn0KCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91NjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9mMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2Y2NChvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfZjE2KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3M4KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3MxNihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfZjE2KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9zMzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3U4KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl91MTYob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3UzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfZjE2KHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfdTY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfZjMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfZjY0KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczgob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3MxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczMyKG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9zNjQob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3U4KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTMyKG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTY0KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X2YxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9mMzIob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfZjY0KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2ZmxvYXQzMl90IHN2cmVpbnRlcnByZXRfZjMyKHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3M4KG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3MxNihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQzMl90IHN2cmVpbnRlcnByZXRfZjMyKHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9zMzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3U4KG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl91MTYob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3UzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQzMl90IHN2cmVpbnRlcnByZXRfZjMyKHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfdTY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfZjMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfZjY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDY0X3Qgc3ZyZWludGVycHJldF9mNjQoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfczgob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfczE2KG9wKTsKfQoKX19haW8gc3ZmbG9hdDY0X3Qgc3ZyZWludGVycHJldF9mNjQoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3MzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zNjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTgob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3UxNihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDY0X3Qgc3ZyZWludGVycHJldF9mNjQoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF91NjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9mMzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9mNjQob3ApOwp9CgpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWJkX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWJkX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWJkX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWJkX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWJkX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWJkX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWJkX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhYmRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhYmRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhYmRfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYmRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zOF94KSkpCnN2aW50OF90IHN2YWJkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YWJkX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWJkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YWJkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczhfeikpKQpzdmludDhfdCBzdmFiZF9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFiZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFiZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFiZF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2YWJkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWJkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWJkX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWJkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91OF94KSkpCnN2dWludDhfdCBzdmFiZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFiZF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFiZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFiZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZhYmRfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhYmRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhYmRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhYmRfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFiZF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWJkX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFiZF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWJkX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFiZF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWJkX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zOF9tKSkpCnN2aW50OF90IHN2YWJkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFiZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhYmRfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczE2X20pKSkKc3ZpbnQxNl90IHN2YWJkX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhYmRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczMyX3gpKSkKc3ZpbnQzMl90IHN2YWJkX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M2NF94KSkpCnN2aW50NjRfdCBzdmFiZF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhYmRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczhfeikpKQpzdmludDhfdCBzdmFiZF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZhYmRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczY0X3opKSkKc3ZpbnQ2NF90IHN2YWJkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MxNl96KSkpCnN2aW50MTZfdCBzdmFiZF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91OF9tKSkpCnN2dWludDhfdCBzdmFiZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhYmRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWJkX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFiZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U4X3gpKSkKc3Z1aW50OF90IHN2YWJkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFiZF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhYmRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWJkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZhYmRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MzJfeikpKQpzdnVpbnQzMl90IHN2YWJkX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFiZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhYmRfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFic19mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhYnNfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWJzX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFic19mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFic19mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFic19mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFic19mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFic19mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFic19mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zOF9tKSkpCnN2aW50OF90IHN2YWJzX3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFic19zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zNjRfbSkpKQpzdmludDY0X3Qgc3ZhYnNfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X20pKSkKc3ZpbnQxNl90IHN2YWJzX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhYnNfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMzJfeCkpKQpzdmludDMyX3Qgc3ZhYnNfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF94KSkpCnN2aW50NjRfdCBzdmFic19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWJzX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zOF96KSkpCnN2aW50OF90IHN2YWJzX3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczMyX3opKSkKc3ZpbnQzMl90IHN2YWJzX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zNjRfeikpKQpzdmludDY0X3Qgc3ZhYnNfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MxNl96KSkpCnN2aW50MTZfdCBzdmFic19zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX25fZjY0KSkpCnN2Ym9vbF90IHN2YWNnZV9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9uX2YzMikpKQpzdmJvb2xfdCBzdmFjZ2Vfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2Vfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2dlX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX2Y2NCkpKQpzdmJvb2xfdCBzdmFjZ2VfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2VfZjMyKSkpCnN2Ym9vbF90IHN2YWNnZV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9mMTYpKSkKc3Zib29sX3Qgc3ZhY2dlX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X25fZjY0KSkpCnN2Ym9vbF90IHN2YWNndF9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9uX2YzMikpKQpzdmJvb2xfdCBzdmFjZ3Rfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3Rfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2d0X25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X2Y2NCkpKQpzdmJvb2xfdCBzdmFjZ3RfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3RfZjMyKSkpCnN2Ym9vbF90IHN2YWNndF9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9mMTYpKSkKc3Zib29sX3Qgc3ZhY2d0X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX25fZjY0KSkpCnN2Ym9vbF90IHN2YWNsZV9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9uX2YzMikpKQpzdmJvb2xfdCBzdmFjbGVfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2xlX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX2Y2NCkpKQpzdmJvb2xfdCBzdmFjbGVfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfZjMyKSkpCnN2Ym9vbF90IHN2YWNsZV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9mMTYpKSkKc3Zib29sX3Qgc3ZhY2xlX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X25fZjY0KSkpCnN2Ym9vbF90IHN2YWNsdF9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9uX2YzMikpKQpzdmJvb2xfdCBzdmFjbHRfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2x0X25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X2Y2NCkpKQpzdmJvb2xfdCBzdmFjbHRfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfZjMyKSkpCnN2Ym9vbF90IHN2YWNsdF9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9mMTYpKSkKc3Zib29sX3Qgc3ZhY2x0X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFkZF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFkZF9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFkZF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFkZF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFkZF9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFkZF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFkZF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFkZF9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFkZF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91OF9tKSkpCnN2dWludDhfdCBzdmFkZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFkZF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFkZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczhfbSkpKQpzdmludDhfdCBzdmFkZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFkZF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2YWRkX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWRkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWRkX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRkX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zOF94KSkpCnN2aW50OF90IHN2YWRkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YWRkX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWRkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YWRkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZhZGRfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhZGRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhZGRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhZGRfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhZGRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZhZGRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZhZGRfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZhZGRfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWRkX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFkZF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWRkX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFkZF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWRkX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFkZF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhZGRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRkX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFkZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhZGRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zOF9tKSkpCnN2aW50OF90IHN2YWRkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhZGRfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U4X3gpKSkKc3Z1aW50OF90IHN2YWRkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFkZF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhZGRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczhfeCkpKQpzdmludDhfdCBzdmFkZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWRkX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdmFkZF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91OF96KSkpCnN2dWludDhfdCBzdmFkZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhZGRfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWRkX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFkZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhZGRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczMyX3opKSkKc3ZpbnQzMl90IHN2YWRkX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdmFkZF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZhZGRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRhX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZhZGRhX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkYV9mMzIpKSkKZmxvYXQzMl90IHN2YWRkYV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGFfZjE2KSkpCmZsb2F0MTZfdCBzdmFkZGFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3M4KSkpCmludDY0X3Qgc3ZhZGR2X3M4KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9zMzIpKSkKaW50NjRfdCBzdmFkZHZfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczY0KSkpCmludDY0X3Qgc3ZhZGR2X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3MxNikpKQppbnQ2NF90IHN2YWRkdl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91OCkpKQp1aW50NjRfdCBzdmFkZHZfdTgoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91MzIpKSkKdWludDY0X3Qgc3ZhZGR2X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91NjQpKSkKdWludDY0X3Qgc3ZhZGR2X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91MTYpKSkKdWludDY0X3Qgc3ZhZGR2X3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9mNjQpKSkKZmxvYXQ2NF90IHN2YWRkdl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X2YzMikpKQpmbG9hdDMyX3Qgc3ZhZGR2X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfZjE2KSkpCmZsb2F0MTZfdCBzdmFkZHZfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyYl91MzJiYXNlX3UzMm9mZnNldCkpKQpzdnVpbnQzMl90IHN2YWRyYl91MzJiYXNlX3UzMm9mZnNldChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3U2NGJhc2VfdTY0b2Zmc2V0KSkpCnN2dWludDY0X3Qgc3ZhZHJiX3U2NGJhc2VfdTY0b2Zmc2V0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmJfdTMyYmFzZV9zMzJvZmZzZXQpKSkKc3Z1aW50MzJfdCBzdmFkcmJfdTMyYmFzZV9zMzJvZmZzZXQoc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3U2NGJhc2VfczY0b2Zmc2V0KSkpCnN2dWludDY0X3Qgc3ZhZHJiX3U2NGJhc2VfczY0b2Zmc2V0KHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyZF91MzJiYXNlX3UzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJkX3UzMmJhc2VfdTMyaW5kZXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyZF91NjRiYXNlX3U2NGluZGV4KSkpCnN2dWludDY0X3Qgc3ZhZHJkX3U2NGJhc2VfdTY0aW5kZXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyZF91MzJiYXNlX3MzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJkX3UzMmJhc2VfczMyaW5kZXgoc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3U2NGJhc2VfczY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmRfdTY0YmFzZV9zNjRpbmRleChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTMyYmFzZV91MzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyaF91MzJiYXNlX3UzMmluZGV4KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTY0YmFzZV91NjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyaF91NjRiYXNlX3U2NGluZGV4KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTMyYmFzZV9zMzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyaF91MzJiYXNlX3MzMmluZGV4KHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91NjRiYXNlX3M2NGluZGV4KSkpCnN2dWludDY0X3Qgc3ZhZHJoX3U2NGJhc2VfczY0aW5kZXgoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3UzMmJhc2VfdTMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcndfdTMyYmFzZV91MzJpbmRleChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3U2NGJhc2VfdTY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcndfdTY0YmFzZV91NjRpbmRleChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3UzMmJhc2VfczMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcndfdTMyYmFzZV9zMzJpbmRleChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTY0YmFzZV9zNjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyd191NjRiYXNlX3M2NGluZGV4KHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX2JfeikpKQpzdmJvb2xfdCBzdmFuZF9iX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhbmRfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhbmRfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhbmRfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhbmRfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhbmRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhbmRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhbmRfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhbmRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91OF94KSkpCnN2dWludDhfdCBzdmFuZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFuZF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFuZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFuZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczhfeCkpKQpzdmludDhfdCBzdmFuZF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFuZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFuZF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFuZF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2YW5kX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2YW5kX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2YW5kX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2YW5kX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zOF96KSkpCnN2aW50OF90IHN2YW5kX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YW5kX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YW5kX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YW5kX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U4X20pKSkKc3Z1aW50OF90IHN2YW5kX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFuZF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhbmRfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YW5kX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczhfbSkpKQpzdmludDhfdCBzdmFuZF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhbmRfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczY0X20pKSkKc3ZpbnQ2NF90IHN2YW5kX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFuZF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91OF94KSkpCnN2dWludDhfdCBzdmFuZF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhbmRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YW5kX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFuZF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhbmRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczMyX3gpKSkKc3ZpbnQzMl90IHN2YW5kX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M2NF94KSkpCnN2aW50NjRfdCBzdmFuZF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhbmRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZhbmRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MzJfeikpKQpzdnVpbnQzMl90IHN2YW5kX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFuZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhbmRfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zOF96KSkpCnN2aW50OF90IHN2YW5kX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MzMl96KSkpCnN2aW50MzJfdCBzdmFuZF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhbmRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczE2X3opKSkKc3ZpbnQxNl90IHN2YW5kX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kdl91OCkpKQp1aW50OF90IHN2YW5kdl91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3UzMikpKQp1aW50MzJfdCBzdmFuZHZfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3U2NCkpKQp1aW50NjRfdCBzdmFuZHZfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3UxNikpKQp1aW50MTZfdCBzdmFuZHZfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3M4KSkpCmludDhfdCBzdmFuZHZfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3MzMikpKQppbnQzMl90IHN2YW5kdl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kdl9zNjQpKSkKaW50NjRfdCBzdmFuZHZfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczE2KSkpCmludDE2X3Qgc3ZhbmR2X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zOF9tKSkpCnN2aW50OF90IHN2YXNyX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zhc3Jfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3Jfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3Jfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczhfeikpKQpzdmludDhfdCBzdmFzcl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3Jfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YXNyX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczhfbSkpKQpzdmludDhfdCBzdmFzcl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczMyX20pKSkKc3ZpbnQzMl90IHN2YXNyX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zhc3JfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczhfeCkpKQpzdmludDhfdCBzdmFzcl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zhc3JfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczhfeikpKQpzdmludDhfdCBzdmFzcl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3JfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczhfeCkpKQpzdmludDhfdCBzdmFzcl93aWRlX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zOF96KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zOF9tKSkpCnN2aW50OF90IHN2YXNyX3dpZGVfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczhfeikpKQpzdmludDhfdCBzdmFzcl93aWRlX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczhfbSkpKQpzdmludDhfdCBzdmFzcmRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3JkX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zhc3JkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3JkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zOF94KSkpCnN2aW50OF90IHN2YXNyZF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFzcmRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcmRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcmRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zhc3JkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YXNyZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyZF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfYl96KSkpCnN2Ym9vbF90IHN2YmljX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91OF9tKSkpCnN2dWludDhfdCBzdmJpY19uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmJpY19uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmJpY19uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmJpY19uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczhfbSkpKQpzdmludDhfdCBzdmJpY19uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmJpY19uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmJpY19uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmJpY19uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U4X3gpKSkKc3Z1aW50OF90IHN2YmljX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YmljX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YmljX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YmljX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zOF94KSkpCnN2aW50OF90IHN2YmljX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YmljX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YmljX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YmljX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZiaWNfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZiaWNfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZiaWNfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZiaWNfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZiaWNfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZiaWNfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZiaWNfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZiaWNfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZiaWNfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MzJfbSkpKQpzdnVpbnQzMl90IHN2YmljX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmJpY191NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZiaWNfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zOF9tKSkpCnN2aW50OF90IHN2YmljX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MzMl9tKSkpCnN2aW50MzJfdCBzdmJpY19zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zNjRfbSkpKQpzdmludDY0X3Qgc3ZiaWNfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczE2X20pKSkKc3ZpbnQxNl90IHN2YmljX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U4X3gpKSkKc3Z1aW50OF90IHN2YmljX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmJpY191MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZiaWNfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MTZfeCkpKQpzdnVpbnQxNl90IHN2YmljX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczhfeCkpKQpzdmludDhfdCBzdmJpY19zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMzJfeCkpKQpzdmludDMyX3Qgc3ZiaWNfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YmljX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MxNl94KSkpCnN2aW50MTZfdCBzdmJpY19zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191OF96KSkpCnN2dWludDhfdCBzdmJpY191OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZiaWNfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191NjRfeikpKQpzdnVpbnQ2NF90IHN2YmljX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmJpY191MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZiaWNfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczMyX3opKSkKc3ZpbnQzMl90IHN2YmljX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M2NF96KSkpCnN2aW50NjRfdCBzdmJpY19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMTZfeikpKQpzdmludDE2X3Qgc3ZiaWNfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmthX2JfbSkpKQpzdmJvb2xfdCBzdmJya2FfYl9tKHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2FfYl96KSkpCnN2Ym9vbF90IHN2YnJrYV9iX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtiX2JfbSkpKQpzdmJvb2xfdCBzdmJya2JfYl9tKHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2JfYl96KSkpCnN2Ym9vbF90IHN2YnJrYl9iX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtuX2JfeikpKQpzdmJvb2xfdCBzdmJya25fYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya3BhX2JfeikpKQpzdmJvb2xfdCBzdmJya3BhX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtwYl9iX3opKSkKc3Zib29sX3Qgc3ZicmtwYl9iX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmNhZGRfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZjYWRkX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2Y2FkZF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmNhZGRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjYWRkX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y2FkZF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmNhZGRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjYWRkX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2Y2FkZF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTgpKSkKdWludDhfdCBzdmNsYXN0YV9uX3U4KHN2Ym9vbF90LCB1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3UzMikpKQp1aW50MzJfdCBzdmNsYXN0YV9uX3UzMihzdmJvb2xfdCwgdWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3U2NCkpKQp1aW50NjRfdCBzdmNsYXN0YV9uX3U2NChzdmJvb2xfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3UxNikpKQp1aW50MTZfdCBzdmNsYXN0YV9uX3UxNihzdmJvb2xfdCwgdWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3M4KSkpCmludDhfdCBzdmNsYXN0YV9uX3M4KHN2Ym9vbF90LCBpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9mNjQpKSkKZmxvYXQ2NF90IHN2Y2xhc3RhX25fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9mMzIpKSkKZmxvYXQzMl90IHN2Y2xhc3RhX25fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9mMTYpKSkKZmxvYXQxNl90IHN2Y2xhc3RhX25fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zMzIpKSkKaW50MzJfdCBzdmNsYXN0YV9uX3MzMihzdmJvb2xfdCwgaW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zNjQpKSkKaW50NjRfdCBzdmNsYXN0YV9uX3M2NChzdmJvb2xfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zMTYpKSkKaW50MTZfdCBzdmNsYXN0YV9uX3MxNihzdmJvb2xfdCwgaW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfdTgpKSkKc3Z1aW50OF90IHN2Y2xhc3RhX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3UzMikpKQpzdnVpbnQzMl90IHN2Y2xhc3RhX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y2xhc3RhX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3UxNikpKQpzdnVpbnQxNl90IHN2Y2xhc3RhX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3M4KSkpCnN2aW50OF90IHN2Y2xhc3RhX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZjbGFzdGFfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZjbGFzdGFfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZjbGFzdGFfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9zMzIpKSkKc3ZpbnQzMl90IHN2Y2xhc3RhX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2xhc3RhX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9zMTYpKSkKc3ZpbnQxNl90IHN2Y2xhc3RhX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3U4KSkpCnVpbnQ4X3Qgc3ZjbGFzdGJfbl91OChzdmJvb2xfdCwgdWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91MzIpKSkKdWludDMyX3Qgc3ZjbGFzdGJfbl91MzIoc3Zib29sX3QsIHVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91NjQpKSkKdWludDY0X3Qgc3ZjbGFzdGJfbl91NjQoc3Zib29sX3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91MTYpKSkKdWludDE2X3Qgc3ZjbGFzdGJfbl91MTYoc3Zib29sX3QsIHVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zOCkpKQppbnQ4X3Qgc3ZjbGFzdGJfbl9zOChzdmJvb2xfdCwgaW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fZjY0KSkpCmZsb2F0NjRfdCBzdmNsYXN0Yl9uX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fZjMyKSkpCmZsb2F0MzJfdCBzdmNsYXN0Yl9uX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fZjE2KSkpCmZsb2F0MTZfdCBzdmNsYXN0Yl9uX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczMyKSkpCmludDMyX3Qgc3ZjbGFzdGJfbl9zMzIoc3Zib29sX3QsIGludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczY0KSkpCmludDY0X3Qgc3ZjbGFzdGJfbl9zNjQoc3Zib29sX3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczE2KSkpCmludDE2X3Qgc3ZjbGFzdGJfbl9zMTYoc3Zib29sX3QsIGludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3U4KSkpCnN2dWludDhfdCBzdmNsYXN0Yl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91MzIpKSkKc3Z1aW50MzJfdCBzdmNsYXN0Yl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmNsYXN0Yl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91MTYpKSkKc3Z1aW50MTZfdCBzdmNsYXN0Yl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zOCkpKQpzdmludDhfdCBzdmNsYXN0Yl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Y2xhc3RiX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Y2xhc3RiX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Y2xhc3RiX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfczMyKSkpCnN2aW50MzJfdCBzdmNsYXN0Yl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfczY0KSkpCnN2aW50NjRfdCBzdmNsYXN0Yl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfczE2KSkpCnN2aW50MTZfdCBzdmNsYXN0Yl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczhfbSkpKQpzdnVpbnQ4X3Qgc3ZjbHNfczhfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbHNfczMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbHNfczY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbHNfczE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M4X3gpKSkKc3Z1aW50OF90IHN2Y2xzX3M4X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczMyX3gpKSkKc3Z1aW50MzJfdCBzdmNsc19zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczY0X3gpKSkKc3Z1aW50NjRfdCBzdmNsc19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsc19zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczhfeikpKQpzdnVpbnQ4X3Qgc3ZjbHNfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zMzJfeikpKQpzdnVpbnQzMl90IHN2Y2xzX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zNjRfeikpKQpzdnVpbnQ2NF90IHN2Y2xzX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zMTZfeikpKQpzdnVpbnQxNl90IHN2Y2xzX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91OF9tKSkpCnN2dWludDhfdCBzdmNsel91OF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbHpfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfbSkpKQpzdnVpbnQ2NF90IHN2Y2x6X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmNsel91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X20pKSkKc3Z1aW50OF90IHN2Y2x6X3M4X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMzJfbSkpKQpzdnVpbnQzMl90IHN2Y2x6X3MzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zNjRfbSkpKQpzdnVpbnQ2NF90IHN2Y2x6X3M2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMTZfbSkpKQpzdnVpbnQxNl90IHN2Y2x6X3MxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91OF94KSkpCnN2dWludDhfdCBzdmNsel91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MzJfeCkpKQpzdnVpbnQzMl90IHN2Y2x6X3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmNsel91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UxNl94KSkpCnN2dWludDE2X3Qgc3ZjbHpfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zOF94KSkpCnN2dWludDhfdCBzdmNsel9zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MzMl94KSkpCnN2dWludDMyX3Qgc3ZjbHpfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M2NF94KSkpCnN2dWludDY0X3Qgc3ZjbHpfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MxNl94KSkpCnN2dWludDE2X3Qgc3ZjbHpfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U4X3opKSkKc3Z1aW50OF90IHN2Y2x6X3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZjbHpfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfeikpKQpzdnVpbnQ2NF90IHN2Y2x6X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmNsel91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X3opKSkKc3Z1aW50OF90IHN2Y2x6X3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczMyX3opKSkKc3Z1aW50MzJfdCBzdmNsel9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczY0X3opKSkKc3Z1aW50NjRfdCBzdmNsel9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczE2X3opKSkKc3Z1aW50MTZfdCBzdmNsel9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2Y21sYV9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZjbWxhX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmNtbGFfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y21sYV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjbWxhX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmNtbGFfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y21sYV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjbWxhX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmNtbGFfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Y21sYV9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZjbWxhX2xhbmVfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGVxX25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wZXFfbl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGVxX25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZXFfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGVxX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3U4KSkpCnN2Ym9vbF90IHN2Y21wZXFfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGVxX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3MzMikpKQpzdmJvb2xfdCBzdmNtcGVxX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGVxX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3MxNikpKQpzdmJvb2xfdCBzdmNtcGVxX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGVxX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfZjE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGdlX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGdlX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGdlX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGdlX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGdlX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGdlX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ2VfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2VfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGdlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2VfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGd0X25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGd0X25fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGd0X25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGd0X25fczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGd0X25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfczgpKSkKc3Zib29sX3Qgc3ZjbXBndF9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBndF9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndF9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBndF9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfZjMyKSkpCnN2Ym9vbF90IHN2Y21wZ3RfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X2YxNikpKQpzdmJvb2xfdCBzdmNtcGd0X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91OCkpKQpzdmJvb2xfdCBzdmNtcGd0X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ3RfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91NjQpKSkKc3Zib29sX3Qgc3ZjbXBndF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV91OCkpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGxlX25fdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfczY0KSkpCnN2Ym9vbF90IHN2Y21wbGVfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfZjY0KSkpCnN2Ym9vbF90IHN2Y21wbGVfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX2YzMikpKQpzdmJvb2xfdCBzdmNtcGxlX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfdTY0KSkpCnN2Ym9vbF90IHN2Y21wbGVfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGx0X25fdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wbHRfbl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczgpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGx0X25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczY0KSkpCnN2Ym9vbF90IHN2Y21wbHRfbl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF91OCkpKQpzdmJvb2xfdCBzdmNtcGx0X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsdF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfczgpKSkKc3Zib29sX3Qgc3ZjbXBsdF9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdF9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdF9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X2YxNikpKQpzdmJvb2xfdCBzdmNtcGx0X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcG5lX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcG5lX25fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcG5lX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcG5lX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcG5lX25fczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBuZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3UzMikpKQpzdmJvb2xfdCBzdmNtcG5lX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTY0KSkpCnN2Ym9vbF90IHN2Y21wbmVfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfczY0KSkpCnN2Ym9vbF90IHN2Y21wbmVfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfczE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfZjY0KSkpCnN2Ym9vbF90IHN2Y21wbmVfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX2YzMikpKQpzdmJvb2xfdCBzdmNtcG5lX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGVfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXB1b19uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXB1b19uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXB1b19uX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fZjY0KSkpCnN2Ym9vbF90IHN2Y21wdW9fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX2YzMikpKQpzdmJvb2xfdCBzdmNtcHVvX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19mMTYpKSkKc3Zib29sX3Qgc3ZjbXB1b19mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91OF9tKSkpCnN2dWludDhfdCBzdmNub3RfdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmNub3RfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmNub3RfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmNub3RfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczhfbSkpKQpzdmludDhfdCBzdmNub3RfczhfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MzMl9tKSkpCnN2aW50MzJfdCBzdmNub3RfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M2NF9tKSkpCnN2aW50NjRfdCBzdmNub3RfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl9tKSkpCnN2aW50MTZfdCBzdmNub3RfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U4X3gpKSkKc3Z1aW50OF90IHN2Y25vdF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmNub3RfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmNub3RfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNub3RfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczhfeCkpKQpzdmludDhfdCBzdmNub3RfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczMyX3gpKSkKc3ZpbnQzMl90IHN2Y25vdF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M2NF94KSkpCnN2aW50NjRfdCBzdmNub3RfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMTZfeCkpKQpzdmludDE2X3Qgc3Zjbm90X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdThfeikpKQpzdnVpbnQ4X3Qgc3Zjbm90X3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MzJfeikpKQpzdnVpbnQzMl90IHN2Y25vdF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2Y25vdF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MTZfeikpKQpzdnVpbnQxNl90IHN2Y25vdF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zOF96KSkpCnN2aW50OF90IHN2Y25vdF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMzJfeikpKQpzdmludDMyX3Qgc3Zjbm90X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X3opKSkKc3ZpbnQ2NF90IHN2Y25vdF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl96KSkpCnN2aW50MTZfdCBzdmNub3RfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U4X20pKSkKc3Z1aW50OF90IHN2Y250X3U4X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmNudF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbnRfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MTZfbSkpKQpzdnVpbnQxNl90IHN2Y250X3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczhfbSkpKQpzdnVpbnQ4X3Qgc3ZjbnRfczhfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2Y2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbnRfZjY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjMyX20pKSkKc3Z1aW50MzJfdCBzdmNudF9mMzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMTZfbSkpKQpzdnVpbnQxNl90IHN2Y250X2YxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbnRfczMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbnRfczY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfczE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U4X3gpKSkKc3Z1aW50OF90IHN2Y250X3U4X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZjbnRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M4X3gpKSkKc3Z1aW50OF90IHN2Y250X3M4X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjY0X3gpKSkKc3Z1aW50NjRfdCBzdmNudF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMzJfeCkpKQpzdnVpbnQzMl90IHN2Y250X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YxNl94KSkpCnN2dWludDE2X3Qgc3ZjbnRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczMyX3gpKSkKc3Z1aW50MzJfdCBzdmNudF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczY0X3gpKSkKc3Z1aW50NjRfdCBzdmNudF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZjbnRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmNudF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZjbnRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MTZfeikpKQpzdnVpbnQxNl90IHN2Y250X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczhfeikpKQpzdnVpbnQ4X3Qgc3ZjbnRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mNjRfeikpKQpzdnVpbnQ2NF90IHN2Y250X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YzMl96KSkpCnN2dWludDMyX3Qgc3ZjbnRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjE2X3opKSkKc3Z1aW50MTZfdCBzdmNudF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMzJfeikpKQpzdnVpbnQzMl90IHN2Y250X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zNjRfeikpKQpzdnVpbnQ2NF90IHN2Y250X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMTZfeikpKQpzdnVpbnQxNl90IHN2Y250X3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudGIpKSkKdWludDY0X3Qgc3ZjbnRiKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250Yl9wYXQpKSkKdWludDY0X3Qgc3ZjbnRiX3BhdChlbnVtIHN2cGF0dGVybik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250ZCkpKQp1aW50NjRfdCBzdmNudGQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRkX3BhdCkpKQp1aW50NjRfdCBzdmNudGRfcGF0KGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRoKSkpCnVpbnQ2NF90IHN2Y250aCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudGhfcGF0KSkpCnVpbnQ2NF90IHN2Y250aF9wYXQoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudHBfYjgpKSkKdWludDY0X3Qgc3ZjbnRwX2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250cF9iMzIpKSkKdWludDY0X3Qgc3ZjbnRwX2IzMihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudHBfYjY0KSkpCnVpbnQ2NF90IHN2Y250cF9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRwX2IxNikpKQp1aW50NjRfdCBzdmNudHBfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250dykpKQp1aW50NjRfdCBzdmNudHcoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnR3X3BhdCkpKQp1aW50NjRfdCBzdmNudHdfcGF0KGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3UzMikpKQpzdnVpbnQzMl90IHN2Y29tcGFjdF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfdTY0KSkpCnN2dWludDY0X3Qgc3Zjb21wYWN0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zjb21wYWN0X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Y29tcGFjdF9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3MzMikpKQpzdmludDMyX3Qgc3Zjb21wYWN0X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3M2NCkpKQpzdmludDY0X3Qgc3Zjb21wYWN0X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3U4KSkpCnN2dWludDh4Ml90IHN2Y3JlYXRlMl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2Y3JlYXRlMl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91NjQpKSkKc3Z1aW50NjR4Ml90IHN2Y3JlYXRlMl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2Y3JlYXRlMl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zOCkpKQpzdmludDh4Ml90IHN2Y3JlYXRlMl9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfZjY0KSkpCnN2ZmxvYXQ2NHgyX3Qgc3ZjcmVhdGUyX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZjcmVhdGUyX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZjcmVhdGUyX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfczMyKSkpCnN2aW50MzJ4Ml90IHN2Y3JlYXRlMl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfczY0KSkpCnN2aW50NjR4Ml90IHN2Y3JlYXRlMl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfczE2KSkpCnN2aW50MTZ4Ml90IHN2Y3JlYXRlMl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTgpKSkKc3Z1aW50OHgzX3Qgc3ZjcmVhdGUzX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTMyKSkpCnN2dWludDMyeDNfdCBzdmNyZWF0ZTNfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTY0KSkpCnN2dWludDY0eDNfdCBzdmNyZWF0ZTNfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTE2KSkpCnN2dWludDE2eDNfdCBzdmNyZWF0ZTNfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczgpKSkKc3ZpbnQ4eDNfdCBzdmNyZWF0ZTNfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdmNyZWF0ZTNfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZjcmVhdGUzX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2Y3JlYXRlM19mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZjcmVhdGUzX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX3M2NCkpKQpzdmludDY0eDNfdCBzdmNyZWF0ZTNfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczE2KSkpCnN2aW50MTZ4M190IHN2Y3JlYXRlM19zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF91OCkpKQpzdnVpbnQ4eDRfdCBzdmNyZWF0ZTRfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3UzMikpKQpzdnVpbnQzMng0X3Qgc3ZjcmVhdGU0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3U2NCkpKQpzdnVpbnQ2NHg0X3Qgc3ZjcmVhdGU0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3UxNikpKQpzdnVpbnQxNng0X3Qgc3ZjcmVhdGU0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3M4KSkpCnN2aW50OHg0X3Qgc3ZjcmVhdGU0X3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2Y3JlYXRlNF9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZjcmVhdGU0X2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdmNyZWF0ZTRfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3MzMikpKQpzdmludDMyeDRfdCBzdmNyZWF0ZTRfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZjcmVhdGU0X3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczE2KSkpCnN2aW50MTZ4NF90IHN2Y3JlYXRlNF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2YzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9mMzJfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2YzMl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mNjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfZjY0X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mNjRfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3MxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MxNl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zMzJfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMzJfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMzJfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczY0X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczY0X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczY0X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3UxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91MzJfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UzMl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91NjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTY0X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91NjRfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjE2X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX2YxNl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjE2X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9mNjRfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2Y2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfczMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3M2NF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3M2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3M2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3UzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl91MzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3UzMl96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91NjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfdTY0X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91NjRfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjE2X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X2YxNl9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjE2X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9mMzJfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YzMl94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfczMyX20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3M2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3M2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3M2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3UzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF91MzJfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3UzMl96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91NjRfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfdTY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91NjRfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMTZfZjE2X20pKSkKc3ZpbnQxNl90IHN2Y3Z0X3MxNl9mMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfeCkpKQpzdmludDE2X3Qgc3ZjdnRfczE2X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfeikpKQpzdmludDE2X3Qgc3ZjdnRfczE2X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMTZfbSkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2YxNl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl94KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl96KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YzMl9tKSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX3gpKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX3opKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjY0X20pKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mNjRfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfeCkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfeikpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMTZfbSkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2YxNl9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl94KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl96KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YzMl9tKSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjMyX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX3gpKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX3opKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjY0X20pKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfeCkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfeikpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UxNl9mMTZfbSkpKQpzdnVpbnQxNl90IHN2Y3Z0X3UxNl9mMTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MTZfZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmN2dF91MTZfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTE2X2YxNl96KSkpCnN2dWludDE2X3Qgc3ZjdnRfdTE2X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMTZfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mMTZfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjE2X3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YxNl96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMzJfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mMzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjMyX3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YzMl96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mNjRfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mNjRfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjY0X3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2Y2NF96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMTZfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mMTZfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjE2X3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YxNl96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMzJfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mMzJfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjMyX3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YzMl96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mNjRfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mNjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjY0X3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2Y2NF96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2X25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZGl2X25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczMyX3gpKSkKc3ZpbnQzMl90IHN2ZGl2X25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2X25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZGl2X25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczY0X3opKSkKc3ZpbnQ2NF90IHN2ZGl2X25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmRpdl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmRpdl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmRpdl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmRpdl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczMyX3gpKSkKc3ZpbnQzMl90IHN2ZGl2X3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZGl2X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2X3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmRpdl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmRpdl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdnJfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdnJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZGl2cl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZyX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdnJfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZGl2cl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZyX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZyX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmRpdnJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2cl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZyX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmRpdnJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2cl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmRpdnJfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmRpdnJfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmRpdnJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdnJfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdnJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZkaXZyX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZyX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZyX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkaXZyX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZyX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZGl2cl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2cl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2cl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZGl2cl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2cl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2cl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fczMyKSkpCnN2aW50MzJfdCBzdmRvdF9uX3MzMihzdmludDMyX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9uX3M2NCkpKQpzdmludDY0X3Qgc3Zkb3Rfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZG90X25fdTMyKHN2dWludDMyX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fdTY0KSkpCnN2dWludDY0X3Qgc3Zkb3Rfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9zMzIpKSkKc3ZpbnQzMl90IHN2ZG90X3MzMihzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X3M2NCkpKQpzdmludDY0X3Qgc3Zkb3RfczY0KHN2aW50NjRfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF91MzIpKSkKc3Z1aW50MzJfdCBzdmRvdF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF91NjQpKSkKc3Z1aW50NjRfdCBzdmRvdF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmRvdF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3Zkb3RfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2ZG90X2xhbmVfdTMyKHN2dWludDMyX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3Zkb3RfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4KSkpCnN2dWludDhfdCBzdmR1cF9uX3U4KHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwX25fdTMyKHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmR1cF9uX3U2NCh1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBfbl91MTYodWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M4KSkpCnN2aW50OF90IHN2ZHVwX25fczgoaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfbl9mNjQoZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbl9mMzIoZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfbl9mMTYoZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwX25fczMyKGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBfbl9zNjQoaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczE2KSkpCnN2aW50MTZfdCBzdmR1cF9uX3MxNihpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OF9tKSkpCnN2dWludDhfdCBzdmR1cF9uX3U4X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmR1cF9uX3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmR1cF9uX3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmR1cF9uX3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczhfbSkpKQpzdmludDhfdCBzdmR1cF9uX3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX25fZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZHVwX25fZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZHVwX25fZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmR1cF9uX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmR1cF9uX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmR1cF9uX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2I4KSkpCnN2Ym9vbF90IHN2ZHVwX25fYjgoYm9vbCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYjMyKSkpCnN2Ym9vbF90IHN2ZHVwX25fYjMyKGJvb2wpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2I2NCkpKQpzdmJvb2xfdCBzdmR1cF9uX2I2NChib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iMTYpKSkKc3Zib29sX3Qgc3ZkdXBfbl9iMTYoYm9vbCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZkdXBfbl91OF94KHN2Ym9vbF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZHVwX25fdTMyX3goc3Zib29sX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZHVwX25fdTY0X3goc3Zib29sX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZHVwX25fdTE2X3goc3Zib29sX3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zOF94KSkpCnN2aW50OF90IHN2ZHVwX25fczhfeChzdmJvb2xfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmR1cF9uX2Y2NF94KHN2Ym9vbF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZHVwX25fZjMyX3goc3Zib29sX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfbl9mMTZfeChzdmJvb2xfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkdXBfbl9zMzJfeChzdmJvb2xfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZHVwX25fczY0X3goc3Zib29sX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmR1cF9uX3MxNl94KHN2Ym9vbF90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OF96KSkpCnN2dWludDhfdCBzdmR1cF9uX3U4X3ooc3Zib29sX3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkdXBfbl91MzJfeihzdmJvb2xfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkdXBfbl91NjRfeihzdmJvb2xfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZkdXBfbl91MTZfeihzdmJvb2xfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZkdXBfbl9zOF96KHN2Ym9vbF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX25fZjY0X3ooc3Zib29sX3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbl9mMzJfeihzdmJvb2xfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmR1cF9uX2YxNl96KHN2Ym9vbF90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmR1cF9uX3MzMl96KHN2Ym9vbF90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkdXBfbl9zNjRfeihzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczE2X3opKSkKc3ZpbnQxNl90IHN2ZHVwX25fczE2X3ooc3Zib29sX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3U4KSkpCnN2dWludDhfdCBzdmR1cF9sYW5lX3U4KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBfbGFuZV91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwX2xhbmVfdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdmR1cF9sYW5lX3UxNihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBfbGFuZV9zOChzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2xhbmVfZjY0KHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZHVwX2xhbmVfZjE2KHN2ZmxvYXQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmR1cF9sYW5lX3MzMihzdmludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2ZHVwX2xhbmVfczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZkdXBfbGFuZV9zMTYoc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwcV9uX3UxNih1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBxX25fZjE2KGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczE2KSkpCnN2aW50MTZfdCBzdmR1cHFfbl9zMTYoaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwcV9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmR1cHFfbl9mMzIoZmxvYXQzMl90LCBmbG9hdDMyX3QsIGZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczMyKSkpCnN2aW50MzJfdCBzdmR1cHFfbl9zMzIoaW50MzJfdCwgaW50MzJfdCwgaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwcV9uX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBxX25fZjY0KGZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczY0KSkpCnN2aW50NjRfdCBzdmR1cHFfbl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3U4KSkpCnN2dWludDhfdCBzdmR1cHFfbl91OCh1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBxX25fczgoaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjE2KSkpCnN2Ym9vbF90IHN2ZHVwcV9uX2IxNihib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjMyKSkpCnN2Ym9vbF90IHN2ZHVwcV9uX2IzMihib29sLCBib29sLCBib29sLCBib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjY0KSkpCnN2Ym9vbF90IHN2ZHVwcV9uX2I2NChib29sLCBib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjgpKSkKc3Zib29sX3Qgc3ZkdXBxX25fYjgoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3U4KSkpCnN2dWludDhfdCBzdmR1cHFfbGFuZV91OChzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBxX2xhbmVfdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBxX2xhbmVfdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBxX2xhbmVfdTE2KHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBxX2xhbmVfczgoc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwcV9sYW5lX2Y2NChzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBxX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdmR1cHFfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmR1cHFfbGFuZV9zMzIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBxX2xhbmVfczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2ZHVwcV9sYW5lX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfYl96KSkpCnN2Ym9vbF90IHN2ZW9yX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91OF9tKSkpCnN2dWludDhfdCBzdmVvcl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmVvcl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmVvcl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmVvcl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczhfbSkpKQpzdmludDhfdCBzdmVvcl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmVvcl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmVvcl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmVvcl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2ZW9yX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZW9yX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZW9yX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZW9yX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zOF94KSkpCnN2aW50OF90IHN2ZW9yX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2ZW9yX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZW9yX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2ZW9yX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zlb3Jfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zlb3Jfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zlb3Jfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zlb3Jfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zlb3Jfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zlb3Jfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zlb3Jfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zlb3Jfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zlb3JfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZW9yX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmVvcl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zlb3JfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zOF9tKSkpCnN2aW50OF90IHN2ZW9yX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MzMl9tKSkpCnN2aW50MzJfdCBzdmVvcl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zlb3JfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczE2X20pKSkKc3ZpbnQxNl90IHN2ZW9yX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U4X3gpKSkKc3Z1aW50OF90IHN2ZW9yX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmVvcl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zlb3JfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZW9yX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczhfeCkpKQpzdmludDhfdCBzdmVvcl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zlb3JfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZW9yX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MxNl94KSkpCnN2aW50MTZfdCBzdmVvcl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91OF96KSkpCnN2dWludDhfdCBzdmVvcl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zlb3JfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZW9yX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmVvcl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zlb3JfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczMyX3opKSkKc3ZpbnQzMl90IHN2ZW9yX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M2NF96KSkpCnN2aW50NjRfdCBzdmVvcl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMTZfeikpKQpzdmludDE2X3Qgc3Zlb3JfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3U4KSkpCnVpbnQ4X3Qgc3Zlb3J2X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfdTMyKSkpCnVpbnQzMl90IHN2ZW9ydl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfdTY0KSkpCnVpbnQ2NF90IHN2ZW9ydl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfdTE2KSkpCnVpbnQxNl90IHN2ZW9ydl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfczgpKSkKaW50OF90IHN2ZW9ydl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfczMyKSkpCmludDMyX3Qgc3Zlb3J2X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3M2NCkpKQppbnQ2NF90IHN2ZW9ydl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zMTYpKSkKaW50MTZfdCBzdmVvcnZfczE2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4cGFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZXhwYV9mNjQoc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXhwYV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZleHBhX2YzMihzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHBhX2YxNikpKQpzdmZsb2F0MTZfdCBzdmV4cGFfZjE2KHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF91OCkpKQpzdnVpbnQ4X3Qgc3ZleHRfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZleHRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZleHRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZleHRfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczgpKSkKc3ZpbnQ4X3Qgc3ZleHRfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmV4dF9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmV4dF9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X2YxNikpKQpzdmZsb2F0MTZfdCBzdmV4dF9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3MzMikpKQpzdmludDMyX3Qgc3ZleHRfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3M2NCkpKQpzdmludDY0X3Qgc3ZleHRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3MxNikpKQpzdmludDE2X3Qgc3ZleHRfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZleHRiX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZleHRiX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZleHRiX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZleHRiX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZXh0Yl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MxNl94KSkpCnN2aW50MTZfdCBzdmV4dGJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMzJfeikpKQpzdmludDMyX3Qgc3ZleHRiX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZXh0Yl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MxNl96KSkpCnN2aW50MTZfdCBzdmV4dGJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZXh0Yl91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZXh0Yl91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZXh0Yl91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZXh0Yl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZXh0Yl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZXh0Yl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZXh0Yl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZXh0Yl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2ZXh0Yl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZleHRoX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZleHRoX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZleHRoX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZXh0aF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3MzMl96KSkpCnN2aW50MzJfdCBzdmV4dGhfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zNjRfeikpKQpzdmludDY0X3Qgc3ZleHRoX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmV4dGhfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmV4dGhfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmV4dGhfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmV4dGhfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmV4dGhfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmV4dGhfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfczY0X20pKSkKc3ZpbnQ2NF90IHN2ZXh0d19zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZXh0d19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3M2NF96KSkpCnN2aW50NjRfdCBzdmV4dHdfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d191NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZXh0d191NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d191NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZXh0d191NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d191NjRfeikpKQpzdnVpbnQ2NF90IHN2ZXh0d191NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml91OCkpKQpzdnVpbnQ4X3Qgc3ZnZXQyX3U4KHN2dWludDh4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml91MzIpKSkKc3Z1aW50MzJfdCBzdmdldDJfdTMyKHN2dWludDMyeDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfdTY0KSkpCnN2dWludDY0X3Qgc3ZnZXQyX3U2NChzdnVpbnQ2NHgyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3UxNikpKQpzdnVpbnQxNl90IHN2Z2V0Ml91MTYoc3Z1aW50MTZ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zOCkpKQpzdmludDhfdCBzdmdldDJfczgoc3ZpbnQ4eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Z2V0Ml9mNjQoc3ZmbG9hdDY0eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Z2V0Ml9mMzIoc3ZmbG9hdDMyeDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Z2V0Ml9mMTYoc3ZmbG9hdDE2eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfczMyKSkpCnN2aW50MzJfdCBzdmdldDJfczMyKHN2aW50MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zNjQpKSkKc3ZpbnQ2NF90IHN2Z2V0Ml9zNjQoc3ZpbnQ2NHgyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3MxNikpKQpzdmludDE2X3Qgc3ZnZXQyX3MxNihzdmludDE2eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTgpKSkKc3Z1aW50OF90IHN2Z2V0M191OChzdnVpbnQ4eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTMyKSkpCnN2dWludDMyX3Qgc3ZnZXQzX3UzMihzdnVpbnQzMngzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3U2NCkpKQpzdnVpbnQ2NF90IHN2Z2V0M191NjQoc3Z1aW50NjR4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M191MTYpKSkKc3Z1aW50MTZfdCBzdmdldDNfdTE2KHN2dWludDE2eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfczgpKSkKc3ZpbnQ4X3Qgc3ZnZXQzX3M4KHN2aW50OHgzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmdldDNfZjY0KHN2ZmxvYXQ2NHgzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2YzMikpKQpzdmZsb2F0MzJfdCBzdmdldDNfZjMyKHN2ZmxvYXQzMngzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2YxNikpKQpzdmZsb2F0MTZfdCBzdmdldDNfZjE2KHN2ZmxvYXQxNngzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3MzMikpKQpzdmludDMyX3Qgc3ZnZXQzX3MzMihzdmludDMyeDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfczY0KSkpCnN2aW50NjRfdCBzdmdldDNfczY0KHN2aW50NjR4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zMTYpKSkKc3ZpbnQxNl90IHN2Z2V0M19zMTYoc3ZpbnQxNngzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3U4KSkpCnN2dWludDhfdCBzdmdldDRfdTgoc3Z1aW50OHg0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3UzMikpKQpzdnVpbnQzMl90IHN2Z2V0NF91MzIoc3Z1aW50MzJ4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF91NjQpKSkKc3Z1aW50NjRfdCBzdmdldDRfdTY0KHN2dWludDY0eDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTE2KSkpCnN2dWludDE2X3Qgc3ZnZXQ0X3UxNihzdnVpbnQxNng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3M4KSkpCnN2aW50OF90IHN2Z2V0NF9zOChzdmludDh4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZnZXQ0X2Y2NChzdmZsb2F0NjR4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZnZXQ0X2YzMihzdmZsb2F0MzJ4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZnZXQ0X2YxNihzdmZsb2F0MTZ4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9zMzIpKSkKc3ZpbnQzMl90IHN2Z2V0NF9zMzIoc3ZpbnQzMng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3M2NCkpKQpzdmludDY0X3Qgc3ZnZXQ0X3M2NChzdmludDY0eDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfczE2KSkpCnN2aW50MTZfdCBzdmdldDRfczE2KHN2aW50MTZ4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfdTgpKSkKc3Z1aW50OF90IHN2aW5kZXhfdTgodWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZpbmRleF91MzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmluZGV4X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluZGV4X3UxNikpKQpzdnVpbnQxNl90IHN2aW5kZXhfdTE2KHVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfczgpKSkKc3ZpbnQ4X3Qgc3ZpbmRleF9zOChpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmluZGV4X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2aW5kZXhfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluZGV4X3MxNikpKQpzdmludDE2X3Qgc3ZpbmRleF9zMTYoaW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3U4KSkpCnN2dWludDhfdCBzdmluc3Jfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmluc3Jfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmluc3Jfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmluc3Jfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zOCkpKQpzdmludDhfdCBzdmluc3Jfbl9zOChzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2aW5zcl9uX2Y2NChzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2aW5zcl9uX2YzMihzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fZjE2KSkpCnN2ZmxvYXQxNl90IHN2aW5zcl9uX2YxNihzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczMyKSkpCnN2aW50MzJfdCBzdmluc3Jfbl9zMzIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczY0KSkpCnN2aW50NjRfdCBzdmluc3Jfbl9zNjQoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczE2KSkpCnN2aW50MTZfdCBzdmluc3Jfbl9zMTYoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91OCkpKQp1aW50OF90IHN2bGFzdGFfdTgoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfdTMyKSkpCnVpbnQzMl90IHN2bGFzdGFfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91NjQpKSkKdWludDY0X3Qgc3ZsYXN0YV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3UxNikpKQp1aW50MTZfdCBzdmxhc3RhX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfczgpKSkKaW50OF90IHN2bGFzdGFfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9mNjQpKSkKZmxvYXQ2NF90IHN2bGFzdGFfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfZjMyKSkpCmZsb2F0MzJfdCBzdmxhc3RhX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX2YxNikpKQpmbG9hdDE2X3Qgc3ZsYXN0YV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9zMzIpKSkKaW50MzJfdCBzdmxhc3RhX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9zNjQpKSkKaW50NjRfdCBzdmxhc3RhX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9zMTYpKSkKaW50MTZfdCBzdmxhc3RhX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl91OCkpKQp1aW50OF90IHN2bGFzdGJfdTgoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfdTMyKSkpCnVpbnQzMl90IHN2bGFzdGJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl91NjQpKSkKdWludDY0X3Qgc3ZsYXN0Yl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3UxNikpKQp1aW50MTZfdCBzdmxhc3RiX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfczgpKSkKaW50OF90IHN2bGFzdGJfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9mNjQpKSkKZmxvYXQ2NF90IHN2bGFzdGJfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfZjMyKSkpCmZsb2F0MzJfdCBzdmxhc3RiX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX2YxNikpKQpmbG9hdDE2X3Qgc3ZsYXN0Yl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zMzIpKSkKaW50MzJfdCBzdmxhc3RiX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zNjQpKSkKaW50NjRfdCBzdmxhc3RiX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zMTYpKSkKaW50MTZfdCBzdmxhc3RiX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdTgpKSkKc3Z1aW50OF90IHN2bGQxX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkMV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9zOCkpKQpzdmludDhfdCBzdmxkMV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFfczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl91MzJiYXNlX2luZGV4X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl91MzJiYXNlX2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfczMyaW5kZXhfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmluZGV4X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfczY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfczMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkMV92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGQxX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZDFfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkMV92bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZDFycV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXJxX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFycV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxcnFfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zOCkpKQpzdmludDhfdCBzdmxkMXJxX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxcnFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxcnFfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxcnFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfczMyKSkpCnN2aW50MzJfdCBzdmxkMXJxX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxcnFfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFycV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNiX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl92bnVtX3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl92bnVtX3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFzYl92bnVtX3UxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2Jfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2Jfdm51bV9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFzYl92bnVtX3MxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl91MTYpKSkKc3Z1aW50MTZfdCBzdmxkMXNiX3UxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2JfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfczE2KSkpCnN2aW50MTZfdCBzdmxkMXNiX3MxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJpbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfdm51bV91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd192bnVtX3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd192bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd192bnVtX3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd191NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1Yl92bnVtX3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkMXViX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX3ZudW1fczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX3ZudW1fczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkMXViX3ZudW1fczE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxdWJfdTE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxdWJfczE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3MzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyaW5kZXhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfdm51bV91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX3ZudW1fczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF92bnVtX3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d192bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d192bnVtX3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d191NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91OCkpKQpzdnVpbnQ4eDJfdCBzdmxkMl91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdTMyKSkpCnN2dWludDMyeDJfdCBzdmxkMl91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91NjQpKSkKc3Z1aW50NjR4Ml90IHN2bGQyX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3UxNikpKQpzdnVpbnQxNngyX3Qgc3ZsZDJfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfczgpKSkKc3ZpbnQ4eDJfdCBzdmxkMl9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmxkMl9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZsZDJfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2YxNikpKQpzdmZsb2F0MTZ4Ml90IHN2bGQyX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZsZDJfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZsZDJfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZsZDJfczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3U4KSkpCnN2dWludDh4Ml90IHN2bGQyX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTMyKSkpCnN2dWludDMyeDJfdCBzdmxkMl92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTY0KSkpCnN2dWludDY0eDJfdCBzdmxkMl92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTE2KSkpCnN2dWludDE2eDJfdCBzdmxkMl92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczgpKSkKc3ZpbnQ4eDJfdCBzdmxkMl92bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NHgyX3Qgc3ZsZDJfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdmxkMl92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2YxNikpKQpzdmZsb2F0MTZ4Ml90IHN2bGQyX3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczMyKSkpCnN2aW50MzJ4Ml90IHN2bGQyX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3M2NCkpKQpzdmludDY0eDJfdCBzdmxkMl92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZsZDJfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3U4KSkpCnN2dWludDh4M190IHN2bGQzX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM191MzIpKSkKc3Z1aW50MzJ4M190IHN2bGQzX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZsZDNfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTE2KSkpCnN2dWludDE2eDNfdCBzdmxkM191MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19zOCkpKQpzdmludDh4M190IHN2bGQzX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2bGQzX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19mMzIpKSkKc3ZmbG9hdDMyeDNfdCBzdmxkM19mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZsZDNfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3MzMikpKQpzdmludDMyeDNfdCBzdmxkM19zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3M2NCkpKQpzdmludDY0eDNfdCBzdmxkM19zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3MxNikpKQpzdmludDE2eDNfdCBzdmxkM19zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fdTgpKSkKc3Z1aW50OHgzX3Qgc3ZsZDNfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV91MzIpKSkKc3Z1aW50MzJ4M190IHN2bGQzX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV91NjQpKSkKc3Z1aW50NjR4M190IHN2bGQzX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV91MTYpKSkKc3Z1aW50MTZ4M190IHN2bGQzX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9zOCkpKQpzdmludDh4M190IHN2bGQzX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdmxkM192bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2bGQzX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZsZDNfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZsZDNfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fczY0KSkpCnN2aW50NjR4M190IHN2bGQzX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3MxNikpKQpzdmludDE2eDNfdCBzdmxkM192bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTgpKSkKc3Z1aW50OHg0X3Qgc3ZsZDRfdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3UzMikpKQpzdnVpbnQzMng0X3Qgc3ZsZDRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTY0KSkpCnN2dWludDY0eDRfdCBzdmxkNF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2bGQ0X3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3M4KSkpCnN2aW50OHg0X3Qgc3ZsZDRfczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfZjY0KSkpCnN2ZmxvYXQ2NHg0X3Qgc3ZsZDRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2YzMikpKQpzdmZsb2F0MzJ4NF90IHN2bGQ0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdmxkNF9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfczMyKSkpCnN2aW50MzJ4NF90IHN2bGQ0X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfczY0KSkpCnN2aW50NjR4NF90IHN2bGQ0X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfczE2KSkpCnN2aW50MTZ4NF90IHN2bGQ0X3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV91OCkpKQpzdnVpbnQ4eDRfdCBzdmxkNF92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3UzMikpKQpzdnVpbnQzMng0X3Qgc3ZsZDRfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3U2NCkpKQpzdnVpbnQ2NHg0X3Qgc3ZsZDRfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3UxNikpKQpzdnVpbnQxNng0X3Qgc3ZsZDRfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3M4KSkpCnN2aW50OHg0X3Qgc3ZsZDRfdm51bV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2bGQ0X3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZsZDRfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdmxkNF92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3MzMikpKQpzdmludDMyeDRfdCBzdmxkNF92bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZsZDRfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczE2KSkpCnN2aW50MTZ4NF90IHN2bGQ0X3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3U4KSkpCnN2dWludDhfdCBzdmxkZmYxX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3M4KSkpCnN2aW50OF90IHN2bGRmZjFfczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZGZmMV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJiYXNlX29mZnNldF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmluZGV4X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMm9mZnNldF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkZmYxX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMV92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9zOCkpKQpzdmludDhfdCBzdmxkZmYxX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRmZjFfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV92bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZGZmMV92bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2Jfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2Jfdm51bV91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRmZjFzYl92bnVtX3UxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2Jfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl92bnVtX3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2Jfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl92bnVtX3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2Jfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRmZjFzYl92bnVtX3MxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMXNiX3UxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX3MxNikpKQpzdmludDE2X3Qgc3ZsZGZmMXNiX3MxNihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfczMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJpbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF92bnVtX3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF92bnVtX3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfdm51bV9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd192bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd192bnVtX3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfdm51bV9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd191NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRmZjF1Yl92bnVtX3UxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX3ZudW1fczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRmZjF1Yl92bnVtX3MxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMXViX3UxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXViX3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3MxNikpKQpzdmludDE2X3Qgc3ZsZGZmMXViX3MxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF92bnVtX3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d192bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d192bnVtX3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d192bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X3ZudW1fczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d191NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG5mMV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjFfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zOCkpKQpzdmludDhfdCBzdmxkbmYxX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRuZjFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRuZjFfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRuZjFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG5mMV92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMV92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjFfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fczgpKSkKc3ZpbnQ4X3Qgc3ZsZG5mMV92bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG5mMV92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRuZjFfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkbmYxX3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjFfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjFfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFzYl92bnVtX3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2Jfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxc2Jfdm51bV91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMXNiX3ZudW1fdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXNiX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXNiX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMXNiX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxc2JfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxc2JfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbmYxc2JfdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjFzYl9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXNiX3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2JfczE2KSkpCnN2aW50MTZfdCBzdmxkbmYxc2JfczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzaF92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFzaF92bnVtX3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXNoX3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjFzaF92bnVtX3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxc2hfdm51bV9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzaF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxc2hfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXNoX3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXNoX3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXNoX3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXN3X3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXN3X3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc3dfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFzd192bnVtX3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXN3X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjFzd191NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzd19zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFzd19zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjF1Yl92bnVtX3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXViX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbmYxdWJfdm51bV91MTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXViX3ZudW1fczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjF1Yl92bnVtX3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkbmYxdWJfdm51bV9zMTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxdWJfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXViX3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjF1Yl91MTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjF1Yl9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjF1Yl9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjF1Yl9zMTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjF1aF92bnVtX3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjF1aF92bnVtX3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXVoX3ZudW1fczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxdWhfdm51bV9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMXVoX3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxdWhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXVoX3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjF1aF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdXdfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxdXdfdm51bV91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdXdfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjF1d192bnVtX3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1d191NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxdXdfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXV3X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXV3X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTgpKSkKc3Z1aW50OF90IHN2bGRudDFfdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbnQxX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczgpKSkKc3ZpbnQ4X3Qgc3ZsZG50MV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkbnQxX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRudDFfczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGRudDFfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbnQxX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGRudDFfdm51bV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZG50MV92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkbnQxX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl91OCkpKQp1aW50NjRfdCBzdmxlbl91OChzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl91MzIpKSkKdWludDY0X3Qgc3ZsZW5fdTMyKHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl91NjQpKSkKdWludDY0X3Qgc3ZsZW5fdTY0KHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl91MTYpKSkKdWludDY0X3Qgc3ZsZW5fdTE2KHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9zOCkpKQp1aW50NjRfdCBzdmxlbl9zOChzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2Y2NCkpKQp1aW50NjRfdCBzdmxlbl9mNjQoc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9mMzIpKSkKdWludDY0X3Qgc3ZsZW5fZjMyKHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fZjE2KSkpCnVpbnQ2NF90IHN2bGVuX2YxNihzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3MzMikpKQp1aW50NjRfdCBzdmxlbl9zMzIoc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fczY0KSkpCnVpbnQ2NF90IHN2bGVuX3M2NChzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9zMTYpKSkKdWludDY0X3Qgc3ZsZW5fczE2KHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc2xfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc2xfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zsc2xfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bHNsX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmxzbF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zsc2xfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zsc2xfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bHNsX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmxzbF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc2xfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc2xfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zsc2xfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmxzbF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U4X20pKSkKc3Z1aW50OF90IHN2bHNsX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc2xfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczhfbSkpKQpzdmludDhfdCBzdmxzbF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczMyX20pKSkKc3ZpbnQzMl90IHN2bHNsX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zsc2xfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNsX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmxzbF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zOF94KSkpCnN2aW50OF90IHN2bHNsX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M2NF94KSkpCnN2aW50NjRfdCBzdmxzbF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczE2X3gpKSkKc3ZpbnQxNl90IHN2bHNsX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91OF96KSkpCnN2dWludDhfdCBzdmxzbF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bHNsX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzbF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zsc2xfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MzMl96KSkpCnN2aW50MzJfdCBzdmxzbF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczY0X3opKSkKc3ZpbnQ2NF90IHN2bHNsX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzbF93aWRlX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zOF94KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3U4X3opKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczhfeikpKQpzdmludDhfdCBzdmxzbF93aWRlX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zOF9tKSkpCnN2aW50OF90IHN2bHNsX3dpZGVfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3MzMl9tKSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczhfeCkpKQpzdmludDhfdCBzdmxzbF93aWRlX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91OF96KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczE2X3opKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3Jfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc3Jfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc3Jfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNyX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNyX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91OF96KSkpCnN2dWludDhfdCBzdmxzcl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmxzcl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U4X20pKSkKc3Z1aW50OF90IHN2bHNyX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc3JfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3JfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmxzcl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3JfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91OF96KSkpCnN2dWludDhfdCBzdmxzcl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc3JfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bHNyX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzcl93aWRlX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91OF94KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3U4X3opKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWFkX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1hZF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWFkX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1hZF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWFkX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1hZF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYWRfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1hZF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1hZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1hZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczhfbSkpKQpzdmludDhfdCBzdm1hZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYWRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1hZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWFkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91OF94KSkpCnN2dWludDhfdCBzdm1hZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWFkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWFkX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWFkX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zOF94KSkpCnN2aW50OF90IHN2bWFkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1hZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWFkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYWRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWFkX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtYWRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYWRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtYWRfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYWRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWFkX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtYWRfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1hZF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWFkX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1hZF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWFkX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1hZF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWFkX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1hZF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U4X20pKSkKc3Z1aW50OF90IHN2bWFkX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWFkX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1hZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYWRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zOF9tKSkpCnN2aW50OF90IHN2bWFkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYWRfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtYWRfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYWRfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91OF94KSkpCnN2dWludDhfdCBzdm1hZF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1hZF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYWRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWFkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczhfeCkpKQpzdmludDhfdCBzdm1hZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWFkX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWFkX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWFkX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYWRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtYWRfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWFkX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1hZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYWRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MzMl96KSkpCnN2aW50MzJfdCBzdm1hZF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M2NF96KSkpCnN2aW50NjRfdCBzdm1hZF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MxNl96KSkpCnN2aW50MTZfdCBzdm1hZF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczhfbSkpKQpzdmludDhfdCBzdm1heF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1heF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1heF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1heF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtYXhfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtYXhfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYXhfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYXhfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zOF96KSkpCnN2aW50OF90IHN2bWF4X25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWF4X25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWF4X25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczE2X3opKSkKc3ZpbnQxNl90IHN2bWF4X25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtYXhfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYXhfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYXhfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bWF4X25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWF4X25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWF4X25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWF4X25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91OF96KSkpCnN2dWludDhfdCBzdm1heF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1heF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1heF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1heF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4X2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWF4X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtYXhfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczMyX20pKSkKc3ZpbnQzMl90IHN2bWF4X3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M2NF9tKSkpCnN2aW50NjRfdCBzdm1heF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYXhfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczhfeCkpKQpzdmludDhfdCBzdm1heF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtYXhfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWF4X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MxNl94KSkpCnN2aW50MTZfdCBzdm1heF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zOF96KSkpCnN2aW50OF90IHN2bWF4X3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MzMl96KSkpCnN2aW50MzJfdCBzdm1heF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtYXhfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczE2X3opKSkKc3ZpbnQxNl90IHN2bWF4X3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U4X20pKSkKc3Z1aW50OF90IHN2bWF4X3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1heF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYXhfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWF4X3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYXhfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWF4X3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1heF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYXhfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91OF96KSkpCnN2dWludDhfdCBzdm1heF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtYXhfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWF4X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1heF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heG5tX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heG5tX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtYXhubXZfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2YzMikpKQpmbG9hdDMyX3Qgc3ZtYXhubXZfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2YxNikpKQpmbG9hdDE2X3Qgc3ZtYXhubXZfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9mNjQpKSkKZmxvYXQ2NF90IHN2bWF4dl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X2YzMikpKQpmbG9hdDMyX3Qgc3ZtYXh2X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfZjE2KSkpCmZsb2F0MTZfdCBzdm1heHZfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zOCkpKQppbnQ4X3Qgc3ZtYXh2X3M4KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zMzIpKSkKaW50MzJfdCBzdm1heHZfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfczY0KSkpCmludDY0X3Qgc3ZtYXh2X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3MxNikpKQppbnQxNl90IHN2bWF4dl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl91OCkpKQp1aW50OF90IHN2bWF4dl91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3UzMikpKQp1aW50MzJfdCBzdm1heHZfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3U2NCkpKQp1aW50NjRfdCBzdm1heHZfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3UxNikpKQp1aW50MTZfdCBzdm1heHZfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbl9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbl9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1pbl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbl9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zOF9tKSkpCnN2aW50OF90IHN2bWluX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWluX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWluX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWluX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczhfeCkpKQpzdmludDhfdCBzdm1pbl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1pbl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1pbl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1pbl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtaW5fbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtaW5fbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtaW5fbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtaW5fbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91OF9tKSkpCnN2dWludDhfdCBzdm1pbl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1pbl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1pbl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1pbl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtaW5fbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5fbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtaW5fbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtaW5fbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWluX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWluX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWluX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWluX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWluX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWluX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWluX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczhfbSkpKQpzdmludDhfdCBzdm1pbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtaW5fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWluX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1pbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zOF94KSkpCnN2aW50OF90IHN2bWluX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MzMl94KSkpCnN2aW50MzJfdCBzdm1pbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtaW5fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWluX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtaW5fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczMyX3opKSkKc3ZpbnQzMl90IHN2bWluX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M2NF96KSkpCnN2aW50NjRfdCBzdm1pbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtaW5fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtaW5fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWluX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1pbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtaW5fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91OF94KSkpCnN2dWludDhfdCBzdm1pbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWluX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U4X3opKSkKc3Z1aW50OF90IHN2bWluX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1pbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtaW5fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWluX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXZfZjY0KSkpCmZsb2F0NjRfdCBzdm1pbm5tdl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXZfZjMyKSkpCmZsb2F0MzJfdCBzdm1pbm5tdl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXZfZjE2KSkpCmZsb2F0MTZfdCBzdm1pbm5tdl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtaW52X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfZjMyKSkpCmZsb2F0MzJfdCBzdm1pbnZfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9mMTYpKSkKZmxvYXQxNl90IHN2bWludl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3M4KSkpCmludDhfdCBzdm1pbnZfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3MzMikpKQppbnQzMl90IHN2bWludl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9zNjQpKSkKaW50NjRfdCBzdm1pbnZfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczE2KSkpCmludDE2X3Qgc3ZtaW52X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3U4KSkpCnVpbnQ4X3Qgc3ZtaW52X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTMyKSkpCnVpbnQzMl90IHN2bWludl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTY0KSkpCnVpbnQ2NF90IHN2bWludl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTE2KSkpCnVpbnQxNl90IHN2bWludl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxhX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1sYV9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1sYV9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1sYV9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bWxhX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbGFfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbGFfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbGFfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbGFfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWxhX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbGFfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1sYV9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbGFfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sYV9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1sYV9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sYV9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczhfeCkpKQpzdmludDhfdCBzdm1sYV9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbGFfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sYV9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxhX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91OF96KSkpCnN2dWludDhfdCBzdm1sYV9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWxhX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxhX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWxhX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zOF96KSkpCnN2aW50OF90IHN2bWxhX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sYV9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWxhX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbGFfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sYV9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxhX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sYV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxhX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sYV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxhX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91OF9tKSkpCnN2dWludDhfdCBzdm1sYV91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sYV91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbGFfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWxhX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczhfbSkpKQpzdmludDhfdCBzdm1sYV9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczMyX20pKSkKc3ZpbnQzMl90IHN2bWxhX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWxhX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczE2X20pKSkKc3ZpbnQxNl90IHN2bWxhX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbGFfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbGFfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxhX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sYV91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbGFfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sYV9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sYV9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3MxNl94KSkpCnN2aW50MTZfdCBzdm1sYV9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3U4X3opKSkKc3Z1aW50OF90IHN2bWxhX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MzJfeikpKQpzdnVpbnQzMl90IHN2bWxhX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1sYV91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbGFfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zOF96KSkpCnN2aW50OF90IHN2bWxhX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMzJfeikpKQpzdmludDMyX3Qgc3ZtbGFfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbGFfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbGFfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdm1sYV9sYW5lX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxzX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1sc19uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1sc19uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1sc19uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U4X20pKSkKc3Z1aW50OF90IHN2bWxzX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbHNfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbHNfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbHNfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbHNfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWxzX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbHNfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1sc19uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbHNfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sc19uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1sc19uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sc19uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczhfeCkpKQpzdmludDhfdCBzdm1sc19uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbHNfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sc19uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxzX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91OF96KSkpCnN2dWludDhfdCBzdm1sc19uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWxzX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxzX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWxzX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zOF96KSkpCnN2aW50OF90IHN2bWxzX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sc19uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWxzX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbHNfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sc19mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxzX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sc19mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxzX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sc19mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxzX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191OF9tKSkpCnN2dWludDhfdCBzdm1sc191OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sc191MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbHNfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MTZfbSkpKQpzdnVpbnQxNl90IHN2bWxzX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczhfbSkpKQpzdmludDhfdCBzdm1sc19zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczMyX20pKSkKc3ZpbnQzMl90IHN2bWxzX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWxzX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczE2X20pKSkKc3ZpbnQxNl90IHN2bWxzX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbHNfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbHNfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxzX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sc191MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbHNfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sc19zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sc19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3MxNl94KSkpCnN2aW50MTZfdCBzdm1sc19zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3U4X3opKSkKc3Z1aW50OF90IHN2bWxzX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MzJfeikpKQpzdnVpbnQzMl90IHN2bWxzX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1sc191NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbHNfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zOF96KSkpCnN2aW50OF90IHN2bWxzX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMzJfeikpKQpzdmludDMyX3Qgc3ZtbHNfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zNjRfeikpKQpzdmludDY0X3Qgc3ZtbHNfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMTZfeikpKQpzdmludDE2X3Qgc3ZtbHNfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdm1sc19sYW5lX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdl9iX3opKSkKc3Zib29sX3Qgc3Ztb3ZfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3Ztc2Jfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXNiX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1zYl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3Ztc2Jfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXNiX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1zYl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3Ztc2Jfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXNiX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1zYl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Ztc2Jfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1zYl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1zYl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1zYl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczhfbSkpKQpzdmludDhfdCBzdm1zYl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Ztc2Jfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1zYl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bXNiX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91OF94KSkpCnN2dWludDhfdCBzdm1zYl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXNiX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXNiX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXNiX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zOF94KSkpCnN2aW50OF90IHN2bXNiX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1zYl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXNiX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Ztc2Jfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3U4X3opKSkKc3Z1aW50OF90IHN2bXNiX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Ztc2Jfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Ztc2Jfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Ztc2Jfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Ztc2Jfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXNiX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Ztc2Jfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1zYl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXNiX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1zYl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXNiX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1zYl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXNiX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1zYl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U4X20pKSkKc3Z1aW50OF90IHN2bXNiX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXNiX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1zYl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Ztc2JfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zOF9tKSkpCnN2aW50OF90IHN2bXNiX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zMzJfbSkpKQpzdmludDMyX3Qgc3Ztc2JfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zNjRfbSkpKQpzdmludDY0X3Qgc3Ztc2JfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zMTZfbSkpKQpzdmludDE2X3Qgc3Ztc2JfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91OF94KSkpCnN2dWludDhfdCBzdm1zYl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1zYl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U2NF94KSkpCnN2dWludDY0X3Qgc3Ztc2JfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXNiX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczhfeCkpKQpzdmludDhfdCBzdm1zYl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXNiX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXNiX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczE2X3gpKSkKc3ZpbnQxNl90IHN2bXNiX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdThfeikpKQpzdnVpbnQ4X3Qgc3Ztc2JfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UzMl96KSkpCnN2dWludDMyX3Qgc3Ztc2JfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXNiX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1zYl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M4X3opKSkKc3ZpbnQ4X3Qgc3Ztc2JfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MzMl96KSkpCnN2aW50MzJfdCBzdm1zYl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M2NF96KSkpCnN2aW50NjRfdCBzdm1zYl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MxNl96KSkpCnN2aW50MTZfdCBzdm1zYl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtdWxfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtdWxfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtdWxfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtdWxfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91OF94KSkpCnN2dWludDhfdCBzdm11bF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm11bF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm11bF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczhfeCkpKQpzdmludDhfdCBzdm11bF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm11bF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bXVsX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bXVsX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zOF96KSkpCnN2aW50OF90IHN2bXVsX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bXVsX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bXVsX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVsX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtdWxfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczhfbSkpKQpzdmludDhfdCBzdm11bF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtdWxfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MxNl9tKSkpCnN2aW50MTZfdCBzdm11bF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91OF94KSkpCnN2dWludDhfdCBzdm11bF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtdWxfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm11bF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtdWxfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MzJfeikpKQpzdnVpbnQzMl90IHN2bXVsX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm11bF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zOF96KSkpCnN2aW50OF90IHN2bXVsX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczE2X3opKSkKc3ZpbnQxNl90IHN2bXVsX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX2xhbmVfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm11bF9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxoX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm11bGhfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsaF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxoX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtdWxoX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm11bGhfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsaF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxoX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxoX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bGhfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bXVsaF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxoX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsaF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtdWxoX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bGhfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsaF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bXVsaF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtdWxoX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm11bGhfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsaF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bXVsaF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxoX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm11bGhfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsaF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zOF9tKSkpCnN2aW50OF90IHN2bXVsaF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsaF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsaF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczE2X20pKSkKc3ZpbnQxNl90IHN2bXVsaF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczhfeCkpKQpzdmludDhfdCBzdm11bGhfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MzMl94KSkpCnN2aW50MzJfdCBzdm11bGhfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bGhfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bGhfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxoX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMzJfeikpKQpzdmludDMyX3Qgc3ZtdWxoX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxoX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxoX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91OF9tKSkpCnN2dWludDhfdCBzdm11bGhfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bGhfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bGhfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm11bGhfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtdWxoX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtdWxoX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtdWxoX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U4X3opKSkKc3Z1aW50OF90IHN2bXVsaF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MzJfeikpKQpzdnVpbnQzMl90IHN2bXVsaF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsaF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsaF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bHhfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bHhfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bHhfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm11bHhfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bHhfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bHhfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm11bHhfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bHhfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bHhfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm11bHhfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bHhfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bHhfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmFuZF9iX3opKSkKc3Zib29sX3Qgc3ZuYW5kX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZuZWdfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bmVnX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5lZ19mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZuZWdfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZuZWdfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZuZWdfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZuZWdfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZuZWdfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZuZWdfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczhfbSkpKQpzdmludDhfdCBzdm5lZ19zOF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMzJfbSkpKQpzdmludDMyX3Qgc3ZuZWdfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczY0X20pKSkKc3ZpbnQ2NF90IHN2bmVnX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl9tKSkpCnN2aW50MTZfdCBzdm5lZ19zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zOF94KSkpCnN2aW50OF90IHN2bmVnX3M4X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczMyX3gpKSkKc3ZpbnQzMl90IHN2bmVnX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfeCkpKQpzdmludDY0X3Qgc3ZuZWdfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl94KSkpCnN2aW50MTZfdCBzdm5lZ19zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczhfeikpKQpzdmludDhfdCBzdm5lZ19zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MzMl96KSkpCnN2aW50MzJfdCBzdm5lZ19zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczY0X3opKSkKc3ZpbnQ2NF90IHN2bmVnX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMTZfeikpKQpzdmludDE2X3Qgc3ZuZWdfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1hZF9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tYWRfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tYWRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tYWRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sYV9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tbGFfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tbGFfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tbGFfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sc19uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sc19uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sc19uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sc19uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sc19uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sc19uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tbHNfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sc19mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tbHNfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sc19mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tbHNfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sc19mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1zYl9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tc2JfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tc2JfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tc2JfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm9yX2JfeikpKQpzdmJvb2xfdCBzdm5vcl9iX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X2JfeikpKQpzdmJvb2xfdCBzdm5vdF9iX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zub3RfdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bm90X3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm5vdF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zub3RfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zOF9tKSkpCnN2aW50OF90IHN2bm90X3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MzMl9tKSkpCnN2aW50MzJfdCBzdm5vdF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zub3RfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczE2X20pKSkKc3ZpbnQxNl90IHN2bm90X3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U4X3gpKSkKc3Z1aW50OF90IHN2bm90X3U4X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UzMl94KSkpCnN2dWludDMyX3Qgc3Zub3RfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bm90X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm5vdF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zub3RfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zub3RfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF94KSkpCnN2aW50NjRfdCBzdm5vdF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczE2X3gpKSkKc3ZpbnQxNl90IHN2bm90X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91OF96KSkpCnN2dWludDhfdCBzdm5vdF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MzJfeikpKQpzdnVpbnQzMl90IHN2bm90X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm5vdF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UxNl96KSkpCnN2dWludDE2X3Qgc3Zub3RfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zOF96KSkpCnN2aW50OF90IHN2bm90X3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczMyX3opKSkKc3ZpbnQzMl90IHN2bm90X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zNjRfeikpKQpzdmludDY0X3Qgc3Zub3RfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MxNl96KSkpCnN2aW50MTZfdCBzdm5vdF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zvcm5fYl96KSkpCnN2Ym9vbF90IHN2b3JuX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfYl96KSkpCnN2Ym9vbF90IHN2b3JyX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91OF9tKSkpCnN2dWludDhfdCBzdm9ycl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm9ycl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm9ycl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm9ycl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczhfbSkpKQpzdmludDhfdCBzdm9ycl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm9ycl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm9ycl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm9ycl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2b3JyX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2b3JyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2b3JyX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2b3JyX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zOF94KSkpCnN2aW50OF90IHN2b3JyX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2b3JyX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2b3JyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2b3JyX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZvcnJfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZvcnJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZvcnJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZvcnJfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZvcnJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZvcnJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZvcnJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZvcnJfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZvcnJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MzJfbSkpKQpzdnVpbnQzMl90IHN2b3JyX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm9ycl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZvcnJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zOF9tKSkpCnN2aW50OF90IHN2b3JyX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MzMl9tKSkpCnN2aW50MzJfdCBzdm9ycl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZvcnJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczE2X20pKSkKc3ZpbnQxNl90IHN2b3JyX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U4X3gpKSkKc3Z1aW50OF90IHN2b3JyX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm9ycl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZvcnJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MTZfeCkpKQpzdnVpbnQxNl90IHN2b3JyX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczhfeCkpKQpzdmludDhfdCBzdm9ycl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZvcnJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2b3JyX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MxNl94KSkpCnN2aW50MTZfdCBzdm9ycl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91OF96KSkpCnN2dWludDhfdCBzdm9ycl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZvcnJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91NjRfeikpKQpzdnVpbnQ2NF90IHN2b3JyX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm9ycl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZvcnJfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczMyX3opKSkKc3ZpbnQzMl90IHN2b3JyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M2NF96KSkpCnN2aW50NjRfdCBzdm9ycl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMTZfeikpKQpzdmludDE2X3Qgc3ZvcnJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTgpKSkKdWludDhfdCBzdm9ydl91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTMyKSkpCnVpbnQzMl90IHN2b3J2X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3U2NCkpKQp1aW50NjRfdCBzdm9ydl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl91MTYpKSkKdWludDE2X3Qgc3ZvcnZfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfczgpKSkKaW50OF90IHN2b3J2X3M4KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3MzMikpKQppbnQzMl90IHN2b3J2X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfczY0KSkpCmludDY0X3Qgc3ZvcnZfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zMTYpKSkKaW50MTZfdCBzdm9ydl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cGZhbHNlX2IpKSkKc3Zib29sX3Qgc3ZwZmFsc2VfYigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBmaXJzdF9iKSkpCnN2Ym9vbF90IHN2cGZpcnN0X2Ioc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbmV4dF9iOCkpKQpzdmJvb2xfdCBzdnBuZXh0X2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG5leHRfYjMyKSkpCnN2Ym9vbF90IHN2cG5leHRfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG5leHRfYjY0KSkpCnN2Ym9vbF90IHN2cG5leHRfYjY0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG5leHRfYjE2KSkpCnN2Ym9vbF90IHN2cG5leHRfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYikpKQp2b2lkIHN2cHJmYihzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX3UzMmJhc2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTY0YmFzZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91MzJiYXNlX29mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3MzMm9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfczMyb2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91MzJvZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX3UzMm9mZnNldChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3M2NG9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfczY0b2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91NjRvZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX3U2NG9mZnNldChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfdm51bSkpKQp2b2lkIHN2cHJmYl92bnVtKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZCkpKQp2b2lkIHN2cHJmZChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX3UzMmJhc2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfdTY0YmFzZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91MzJiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl91MzJiYXNlX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX3U2NGJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX3MzMmluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfdTMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl9zNjRpbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfczY0aW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl91NjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfdm51bSkpKQp2b2lkIHN2cHJmZF92bnVtKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaCkpKQp2b2lkIHN2cHJmaChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX3UzMmJhc2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfdTY0YmFzZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91MzJiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl91MzJiYXNlX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX3U2NGJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX3MzMmluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfdTMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl9zNjRpbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfczY0aW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl91NjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfdm51bSkpKQp2b2lkIHN2cHJmaF92bnVtKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmdykpKQp2b2lkIHN2cHJmdyhzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZndfZ2F0aGVyX3UzMmJhc2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmd19nYXRoZXJfdTY0YmFzZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91MzJiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl91MzJiYXNlX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX3U2NGJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX3MzMmluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfdTMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl9zNjRpbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfczY0aW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl91NjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfdm51bSkpKQp2b2lkIHN2cHJmd192bnVtKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRlc3RfYW55KSkpCmJvb2wgc3ZwdGVzdF9hbnkoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdGVzdF9maXJzdCkpKQpib29sIHN2cHRlc3RfZmlyc3Qoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdGVzdF9sYXN0KSkpCmJvb2wgc3ZwdGVzdF9sYXN0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfcGF0X2I4KSkpCnN2Ym9vbF90IHN2cHRydWVfcGF0X2I4KGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9wYXRfYjMyKSkpCnN2Ym9vbF90IHN2cHRydWVfcGF0X2IzMihlbnVtIHN2cGF0dGVybik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfcGF0X2I2NCkpKQpzdmJvb2xfdCBzdnB0cnVlX3BhdF9iNjQoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnB0cnVlX3BhdF9iMTYpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9wYXRfYjE2KGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9iOCkpKQpzdmJvb2xfdCBzdnB0cnVlX2I4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfYjMyKSkpCnN2Ym9vbF90IHN2cHRydWVfYjMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfYjY0KSkpCnN2Ym9vbF90IHN2cHRydWVfYjY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfYjE2KSkpCnN2Ym9vbF90IHN2cHRydWVfYjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4KSkpCnN2aW50OF90IHN2cWFkZF9uX3M4KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWFkZF9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWFkZF9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWFkZF9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZxYWRkX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZxYWRkX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZxYWRkX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4KSkpCnN2aW50OF90IHN2cWFkZF9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyKSkpCnN2aW50MzJfdCBzdnFhZGRfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NCkpKQpzdmludDY0X3Qgc3ZxYWRkX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTYpKSkKc3ZpbnQxNl90IHN2cWFkZF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTgpKSkKc3Z1aW50OF90IHN2cWFkZF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MzIpKSkKc3Z1aW50MzJfdCBzdnFhZGRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTY0KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UxNikpKQpzdnVpbnQxNl90IHN2cWFkZF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Jfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNiX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2Jfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2Jfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNiX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2JfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjYl9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNiX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNiX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjYl9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNkX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2Rfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2Rfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNkX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfczY0KSkpCnN2aW50NjRfdCBzdnFkZWNkX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF91NjQpKSkKc3Z1aW50NjRfdCBzdnFkZWNkX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjZF9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNkX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNkX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjZF9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfcGF0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZGVjZF9wYXRfczY0KHN2aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZxZGVjZF9wYXRfdTY0KHN2dWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNoX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2hfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2hfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNoX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNoX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNoX3UxNihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjaF9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNoX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNoX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjaF9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X3MxNikpKQpzdmludDE2X3Qgc3ZxZGVjaF9wYXRfczE2KHN2aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfdTE2KSkpCnN2dWludDE2X3Qgc3ZxZGVjaF9wYXRfdTE2KHN2dWludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zMzJfYjgpKSkKaW50MzJfdCBzdnFkZWNwX25fczMyX2I4KGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iMzIpKSkKaW50MzJfdCBzdnFkZWNwX25fczMyX2IzMihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zMzJfYjY0KSkpCmludDMyX3Qgc3ZxZGVjcF9uX3MzMl9iNjQoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczMyX2IxNikpKQppbnQzMl90IHN2cWRlY3Bfbl9zMzJfYjE2KGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iOCkpKQppbnQ2NF90IHN2cWRlY3Bfbl9zNjRfYjgoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2IzMikpKQppbnQ2NF90IHN2cWRlY3Bfbl9zNjRfYjMyKGludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iNjQpKSkKaW50NjRfdCBzdnFkZWNwX25fczY0X2I2NChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zNjRfYjE2KSkpCmludDY0X3Qgc3ZxZGVjcF9uX3M2NF9iMTYoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2I4KSkpCnVpbnQzMl90IHN2cWRlY3Bfbl91MzJfYjgodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iMzIpKSkKdWludDMyX3Qgc3ZxZGVjcF9uX3UzMl9iMzIodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iNjQpKSkKdWludDMyX3Qgc3ZxZGVjcF9uX3UzMl9iNjQodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iMTYpKSkKdWludDMyX3Qgc3ZxZGVjcF9uX3UzMl9iMTYodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iOCkpKQp1aW50NjRfdCBzdnFkZWNwX25fdTY0X2I4KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjMyKSkpCnVpbnQ2NF90IHN2cWRlY3Bfbl91NjRfYjMyKHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjY0KSkpCnVpbnQ2NF90IHN2cWRlY3Bfbl91NjRfYjY0KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjE2KSkpCnVpbnQ2NF90IHN2cWRlY3Bfbl91NjRfYjE2KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfczMyKSkpCnN2aW50MzJfdCBzdnFkZWNwX3MzMihzdmludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRlY3BfczY0KHN2aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3MxNikpKQpzdmludDE2X3Qgc3ZxZGVjcF9zMTYoc3ZpbnQxNl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfdTMyKSkpCnN2dWludDMyX3Qgc3ZxZGVjcF91MzIoc3Z1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWRlY3BfdTY0KHN2dWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNwX3UxNihzdnVpbnQxNl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWN3X25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3M2NCkpKQppbnQ2NF90IHN2cWRlY3dfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY3dfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWN3X25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfczMyKSkpCnN2aW50MzJfdCBzdnFkZWN3X3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd191MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWN3X3UzMihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjd19wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWN3X3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWN3X3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjd19wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X3MzMikpKQpzdmludDMyX3Qgc3ZxZGVjd19wYXRfczMyKHN2aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZxZGVjd19wYXRfdTMyKHN2dWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Jfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNiX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2Jfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2Jfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNiX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2JfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jYl9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNiX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNiX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jYl9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNkX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2Rfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2Rfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNkX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfczY0KSkpCnN2aW50NjRfdCBzdnFpbmNkX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF91NjQpKSkKc3Z1aW50NjRfdCBzdnFpbmNkX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jZF9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNkX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNkX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jZF9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfcGF0X3M2NCkpKQpzdmludDY0X3Qgc3ZxaW5jZF9wYXRfczY0KHN2aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZxaW5jZF9wYXRfdTY0KHN2dWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNoX25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2hfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2hfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNoX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNoX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNoX3UxNihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jaF9wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNoX3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNoX3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jaF9wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X3MxNikpKQpzdmludDE2X3Qgc3ZxaW5jaF9wYXRfczE2KHN2aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfdTE2KSkpCnN2dWludDE2X3Qgc3ZxaW5jaF9wYXRfdTE2KHN2dWludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zMzJfYjgpKSkKaW50MzJfdCBzdnFpbmNwX25fczMyX2I4KGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iMzIpKSkKaW50MzJfdCBzdnFpbmNwX25fczMyX2IzMihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zMzJfYjY0KSkpCmludDMyX3Qgc3ZxaW5jcF9uX3MzMl9iNjQoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczMyX2IxNikpKQppbnQzMl90IHN2cWluY3Bfbl9zMzJfYjE2KGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iOCkpKQppbnQ2NF90IHN2cWluY3Bfbl9zNjRfYjgoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2IzMikpKQppbnQ2NF90IHN2cWluY3Bfbl9zNjRfYjMyKGludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iNjQpKSkKaW50NjRfdCBzdnFpbmNwX25fczY0X2I2NChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zNjRfYjE2KSkpCmludDY0X3Qgc3ZxaW5jcF9uX3M2NF9iMTYoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2I4KSkpCnVpbnQzMl90IHN2cWluY3Bfbl91MzJfYjgodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iMzIpKSkKdWludDMyX3Qgc3ZxaW5jcF9uX3UzMl9iMzIodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iNjQpKSkKdWludDMyX3Qgc3ZxaW5jcF9uX3UzMl9iNjQodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iMTYpKSkKdWludDMyX3Qgc3ZxaW5jcF9uX3UzMl9iMTYodWludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iOCkpKQp1aW50NjRfdCBzdnFpbmNwX25fdTY0X2I4KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjMyKSkpCnVpbnQ2NF90IHN2cWluY3Bfbl91NjRfYjMyKHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjY0KSkpCnVpbnQ2NF90IHN2cWluY3Bfbl91NjRfYjY0KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjE2KSkpCnVpbnQ2NF90IHN2cWluY3Bfbl91NjRfYjE2KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfczMyKSkpCnN2aW50MzJfdCBzdnFpbmNwX3MzMihzdmludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWluY3BfczY0KHN2aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3MxNikpKQpzdmludDE2X3Qgc3ZxaW5jcF9zMTYoc3ZpbnQxNl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfdTMyKSkpCnN2dWludDMyX3Qgc3ZxaW5jcF91MzIoc3Z1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWluY3BfdTY0KHN2dWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNwX3UxNihzdnVpbnQxNl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmN3X25fczMyKGludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3M2NCkpKQppbnQ2NF90IHN2cWluY3dfbl9zNjQoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY3dfbl91MzIodWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmN3X25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfczMyKSkpCnN2aW50MzJfdCBzdnFpbmN3X3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd191MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmN3X3UzMihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jd19wYXRfbl9zMzIoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmN3X3BhdF9uX3M2NChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmN3X3BhdF9uX3UzMih1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jd19wYXRfbl91NjQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X3MzMikpKQpzdmludDMyX3Qgc3ZxaW5jd19wYXRfczMyKHN2aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZxaW5jd19wYXRfdTMyKHN2dWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4KSkpCnN2aW50OF90IHN2cXN1Yl9uX3M4KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXN1Yl9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXN1Yl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXN1Yl9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zxc3ViX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zxc3ViX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zxc3ViX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4KSkpCnN2aW50OF90IHN2cXN1Yl9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyKSkpCnN2aW50MzJfdCBzdnFzdWJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NCkpKQpzdmludDY0X3Qgc3Zxc3ViX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTYpKSkKc3ZpbnQxNl90IHN2cXN1Yl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTgpKSkKc3Z1aW50OF90IHN2cXN1Yl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MzIpKSkKc3Z1aW50MzJfdCBzdnFzdWJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTY0KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UxNikpKQpzdnVpbnQxNl90IHN2cXN1Yl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91OF9tKSkpCnN2dWludDhfdCBzdnJiaXRfdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJiaXRfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJiaXRfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJiaXRfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczhfbSkpKQpzdmludDhfdCBzdnJiaXRfczhfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MzMl9tKSkpCnN2aW50MzJfdCBzdnJiaXRfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M2NF9tKSkpCnN2aW50NjRfdCBzdnJiaXRfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MxNl9tKSkpCnN2aW50MTZfdCBzdnJiaXRfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U4X3gpKSkKc3Z1aW50OF90IHN2cmJpdF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJiaXRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJiaXRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJiaXRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczhfeCkpKQpzdmludDhfdCBzdnJiaXRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmJpdF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M2NF94KSkpCnN2aW50NjRfdCBzdnJiaXRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyYml0X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZyYml0X3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmJpdF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmJpdF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfeikpKQpzdnVpbnQxNl90IHN2cmJpdF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF96KSkpCnN2aW50OF90IHN2cmJpdF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMzJfeikpKQpzdmludDMyX3Qgc3ZyYml0X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmJpdF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MxNl96KSkpCnN2aW50MTZfdCBzdnJiaXRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmRmZnIpKSkKc3Zib29sX3Qgc3ZyZGZmcigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJkZmZyX3opKSkKc3Zib29sX3Qgc3ZyZGZmcl96KHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZWNwZV9mNjQoc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJlY3BlX2YzMihzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cmVjcGVfZjE2KHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZWNwc19mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNwc19mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNwc19mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2cmVjcHhfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2cmVjcHhfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2cmVjcHhfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTgpKSkKc3Z1aW50OF90IHN2cmV2X3U4KHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3UzMikpKQpzdnVpbnQzMl90IHN2cmV2X3UzMihzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTY0KSkpCnN2dWludDY0X3Qgc3ZyZXZfdTY0KHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91MTYpKSkKc3Z1aW50MTZfdCBzdnJldl91MTYoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3M4KSkpCnN2aW50OF90IHN2cmV2X3M4KHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2cmV2X2Y2NChzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2YzMikpKQpzdmZsb2F0MzJfdCBzdnJldl9mMzIoc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZyZXZfZjE2KHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfczMyKSkpCnN2aW50MzJfdCBzdnJldl9zMzIoc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfczY0KSkpCnN2aW50NjRfdCBzdnJldl9zNjQoc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfczE2KSkpCnN2aW50MTZfdCBzdnJldl9zMTYoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfYjgpKSkKc3Zib29sX3Qgc3ZyZXZfYjgoc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9iMzIpKSkKc3Zib29sX3Qgc3ZyZXZfYjMyKHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfYjY0KSkpCnN2Ym9vbF90IHN2cmV2X2I2NChzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2IxNikpKQpzdmJvb2xfdCBzdnJldl9iMTYoc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJldmJfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldmJfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJldmJfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX20pKSkKc3ZpbnQzMl90IHN2cmV2Yl9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2Yl9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczE2X20pKSkKc3ZpbnQxNl90IHN2cmV2Yl9zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJldmJfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldmJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJldmJfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmV2Yl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3M2NF94KSkpCnN2aW50NjRfdCBzdnJldmJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyZXZiX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJldmJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJldmJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJldmJfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX3opKSkKc3ZpbnQzMl90IHN2cmV2Yl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3M2NF96KSkpCnN2aW50NjRfdCBzdnJldmJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfeikpKQpzdmludDE2X3Qgc3ZyZXZiX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJldmhfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldmhfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczMyX20pKSkKc3ZpbnQzMl90IHN2cmV2aF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2aF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJldmhfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldmhfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmV2aF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3M2NF94KSkpCnN2aW50NjRfdCBzdnJldmhfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmV2aF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2aF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfeikpKQpzdmludDMyX3Qgc3ZyZXZoX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmV2aF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyZXZ3X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF9tKSkpCnN2aW50NjRfdCBzdnJldndfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyZXZ3X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF94KSkpCnN2aW50NjRfdCBzdnJldndfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2d191NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2d191NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2d19zNjRfeikpKQpzdmludDY0X3Qgc3ZyZXZ3X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50YV9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50YV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50YV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50aV9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50aV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50aV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludG1fZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50bV9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludG1fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludG1fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludG5fZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50bl9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludG5fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludG5fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50cF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50cF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50cF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50eF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50eF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50eF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50el9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50el9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50el9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zyc3FydGVfZjY0KHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cnNxcnRlX2YzMihzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX2YxNikpKQpzdmZsb2F0MTZfdCBzdnJzcXJ0ZV9mMTYoc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0c19mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zyc3FydHNfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRzX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJzcXJ0c19mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydHNfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cnNxcnRzX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9iKSkpCnN2Ym9vbF90IHN2c2VsX2Ioc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3U4KSkpCnN2dWludDhfdCBzdnNlbF91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91MzIpKSkKc3Z1aW50MzJfdCBzdnNlbF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91NjQpKSkKc3Z1aW50NjRfdCBzdnNlbF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91MTYpKSkKc3Z1aW50MTZfdCBzdnNlbF91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9zOCkpKQpzdmludDhfdCBzdnNlbF9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2c2VsX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2c2VsX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjE2KSkpCnN2ZmxvYXQxNl90IHN2c2VsX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczMyKSkpCnN2aW50MzJfdCBzdnNlbF9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczY0KSkpCnN2aW50NjRfdCBzdnNlbF9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczE2KSkpCnN2aW50MTZfdCBzdnNlbF9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3U4KSkpCnN2dWludDh4Ml90IHN2c2V0Ml91OChzdnVpbnQ4eDJfdCwgdWludDY0X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2c2V0Ml91MzIoc3Z1aW50MzJ4Ml90LCB1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml91NjQpKSkKc3Z1aW50NjR4Ml90IHN2c2V0Ml91NjQoc3Z1aW50NjR4Ml90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2c2V0Ml91MTYoc3Z1aW50MTZ4Ml90LCB1aW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zOCkpKQpzdmludDh4Ml90IHN2c2V0Ml9zOChzdmludDh4Ml90LCB1aW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjY0KSkpCnN2ZmxvYXQ2NHgyX3Qgc3ZzZXQyX2Y2NChzdmZsb2F0NjR4Ml90LCB1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZzZXQyX2YzMihzdmZsb2F0MzJ4Ml90LCB1aW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZzZXQyX2YxNihzdmZsb2F0MTZ4Ml90LCB1aW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczMyKSkpCnN2aW50MzJ4Ml90IHN2c2V0Ml9zMzIoc3ZpbnQzMngyX3QsIHVpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczY0KSkpCnN2aW50NjR4Ml90IHN2c2V0Ml9zNjQoc3ZpbnQ2NHgyX3QsIHVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczE2KSkpCnN2aW50MTZ4Ml90IHN2c2V0Ml9zMTYoc3ZpbnQxNngyX3QsIHVpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfdTgpKSkKc3Z1aW50OHgzX3Qgc3ZzZXQzX3U4KHN2dWludDh4M190LCB1aW50NjRfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZzZXQzX3UzMihzdnVpbnQzMngzX3QsIHVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZzZXQzX3U2NChzdnVpbnQ2NHgzX3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3UxNikpKQpzdnVpbnQxNngzX3Qgc3ZzZXQzX3UxNihzdnVpbnQxNngzX3QsIHVpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3M4KSkpCnN2aW50OHgzX3Qgc3ZzZXQzX3M4KHN2aW50OHgzX3QsIHVpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdnNldDNfZjY0KHN2ZmxvYXQ2NHgzX3QsIHVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19mMzIpKSkKc3ZmbG9hdDMyeDNfdCBzdnNldDNfZjMyKHN2ZmxvYXQzMngzX3QsIHVpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdnNldDNfZjE2KHN2ZmxvYXQxNngzX3QsIHVpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZzZXQzX3MzMihzdmludDMyeDNfdCwgdWludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3ZzZXQzX3M2NChzdmludDY0eDNfdCwgdWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19zMTYpKSkKc3ZpbnQxNngzX3Qgc3ZzZXQzX3MxNihzdmludDE2eDNfdCwgdWludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91OCkpKQpzdnVpbnQ4eDRfdCBzdnNldDRfdTgoc3Z1aW50OHg0X3QsIHVpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTMyKSkpCnN2dWludDMyeDRfdCBzdnNldDRfdTMyKHN2dWludDMyeDRfdCwgdWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTY0KSkpCnN2dWludDY0eDRfdCBzdnNldDRfdTY0KHN2dWludDY0eDRfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTE2KSkpCnN2dWludDE2eDRfdCBzdnNldDRfdTE2KHN2dWludDE2eDRfdCwgdWludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfczgpKSkKc3ZpbnQ4eDRfdCBzdnNldDRfczgoc3ZpbnQ4eDRfdCwgdWludDY0X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2c2V0NF9mNjQoc3ZmbG9hdDY0eDRfdCwgdWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2YzMikpKQpzdmZsb2F0MzJ4NF90IHN2c2V0NF9mMzIoc3ZmbG9hdDMyeDRfdCwgdWludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2c2V0NF9mMTYoc3ZmbG9hdDE2eDRfdCwgdWludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3MzMikpKQpzdmludDMyeDRfdCBzdnNldDRfczMyKHN2aW50MzJ4NF90LCB1aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3M2NCkpKQpzdmludDY0eDRfdCBzdnNldDRfczY0KHN2aW50NjR4NF90LCB1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3MxNikpKQpzdmludDE2eDRfdCBzdnNldDRfczE2KHN2aW50MTZ4NF90LCB1aW50NjRfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXRmZnIpKSkKdm9pZCBzdnNldGZmcigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91OCkpKQpzdnVpbnQ4X3Qgc3ZzcGxpY2VfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZzcGxpY2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZzcGxpY2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTE2KSkpCnN2dWludDE2X3Qgc3ZzcGxpY2VfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfczgpKSkKc3ZpbnQ4X3Qgc3ZzcGxpY2Vfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnNwbGljZV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2YzMikpKQpzdmZsb2F0MzJfdCBzdnNwbGljZV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2YxNikpKQpzdmZsb2F0MTZfdCBzdnNwbGljZV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3MzMikpKQpzdmludDMyX3Qgc3ZzcGxpY2VfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3M2NCkpKQpzdmludDY0X3Qgc3ZzcGxpY2VfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3MxNikpKQpzdmludDE2X3Qgc3ZzcGxpY2VfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnNxcnRfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnNxcnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnNxcnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnNxcnRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3FydF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzcXJ0X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnNxcnRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3FydF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzcXJ0X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3U4KSkpCnZvaWQgc3ZzdDFfdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdTMyKSkpCnZvaWQgc3ZzdDFfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdTY0KSkpCnZvaWQgc3ZzdDFfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdTE2KSkpCnZvaWQgc3ZzdDFfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfczgpKSkKdm9pZCBzdnN0MV9zOChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfZjY0KSkpCnZvaWQgc3ZzdDFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9mMzIpKSkKdm9pZCBzdnN0MV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2YxNikpKQp2b2lkIHN2c3QxX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfczMyKSkpCnZvaWQgc3ZzdDFfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3M2NCkpKQp2b2lkIHN2c3QxX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zMTYpKSkKdm9pZCBzdnN0MV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2VfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3MzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJpbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3MzMmluZGV4X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyaW5kZXhfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3M2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0aW5kZXhfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91OCkpKQp2b2lkIHN2c3QxX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91MzIpKSkKdm9pZCBzdnN0MV92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDFfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3UxNikpKQp2b2lkIHN2c3QxX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zOCkpKQp2b2lkIHN2c3QxX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDFfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fZjMyKSkpCnZvaWQgc3ZzdDFfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDFfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDFfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zNjQpKSkKdm9pZCBzdnN0MV92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3MxNikpKQp2b2lkIHN2c3QxX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zMzIpKSkKdm9pZCBzdnN0MWJfczMyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3M2NCkpKQp2b2lkIHN2c3QxYl9zNjQoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfczE2KSkpCnZvaWQgc3ZzdDFiX3MxNihzdmJvb2xfdCwgaW50OF90ICosIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl91MzIpKSkKdm9pZCBzdnN0MWJfdTMyKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdTY0KSkpCnZvaWQgc3ZzdDFiX3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3UxNikpKQp2b2lkIHN2c3QxYl91MTYoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3MzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDFiX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDFiX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczE2KSkpCnZvaWQgc3ZzdDFiX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDFiX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV91NjQpKSkKdm9pZCBzdnN0MWJfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3UxNikpKQp2b2lkIHN2c3QxYl92bnVtX3UxNihzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3MzMikpKQp2b2lkIHN2c3QxaF9zMzIoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3M2NCkpKQp2b2lkIHN2c3QxaF9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3UzMikpKQp2b2lkIHN2c3QxaF91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdTY0KSkpCnZvaWQgc3ZzdDFoX3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJpbmRleF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF92bnVtX3MzMikpKQp2b2lkIHN2c3QxaF92bnVtX3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdm51bV9zNjQpKSkKdm9pZCBzdnN0MWhfdm51bV9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDFoX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDFoX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3M2NCkpKQp2b2lkIHN2c3Qxd19zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3U2NCkpKQp2b2lkIHN2c3Qxd191NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfdm51bV9zNjQpKSkKdm9pZCBzdnN0MXdfdm51bV9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDF3X3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTgpKSkKdm9pZCBzdnN0Ml91OChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3UzMikpKQp2b2lkIHN2c3QyX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTY0KSkpCnZvaWQgc3ZzdDJfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml91MTYpKSkKdm9pZCBzdnN0Ml91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3M4KSkpCnZvaWQgc3ZzdDJfczgoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDh4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfZjY0KSkpCnZvaWQgc3ZzdDJfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZmbG9hdDY0eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX2YzMikpKQp2b2lkIHN2c3QyX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9mMTYpKSkKdm9pZCBzdnN0Ml9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBzdmZsb2F0MTZ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczMyKSkpCnZvaWQgc3ZzdDJfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczY0KSkpCnZvaWQgc3ZzdDJfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjR4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczE2KSkpCnZvaWQgc3ZzdDJfczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MTZ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV91OCkpKQp2b2lkIHN2c3QyX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3UzMikpKQp2b2lkIHN2c3QyX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3U2NCkpKQp2b2lkIHN2c3QyX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3UxNikpKQp2b2lkIHN2c3QyX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3M4KSkpCnZvaWQgc3ZzdDJfdm51bV9zOChzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX2Y2NCkpKQp2b2lkIHN2c3QyX3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fZjMyKSkpCnZvaWQgc3ZzdDJfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9mMTYpKSkKdm9pZCBzdnN0Ml92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3MzMikpKQp2b2lkIHN2c3QyX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9zNjQpKSkKdm9pZCBzdnN0Ml92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fczE2KSkpCnZvaWQgc3ZzdDJfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M191OCkpKQp2b2lkIHN2c3QzX3U4KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDh4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdTMyKSkpCnZvaWQgc3ZzdDNfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M191NjQpKSkKdm9pZCBzdnN0M191NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3UxNikpKQp2b2lkIHN2c3QzX3UxNihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfczgpKSkKdm9pZCBzdnN0M19zOChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19mNjQpKSkKdm9pZCBzdnN0M19mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjR4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfZjMyKSkpCnZvaWQgc3ZzdDNfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX2YxNikpKQp2b2lkIHN2c3QzX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zMzIpKSkKdm9pZCBzdnN0M19zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zNjQpKSkKdm9pZCBzdnN0M19zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zMTYpKSkKdm9pZCBzdnN0M19zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3U4KSkpCnZvaWQgc3ZzdDNfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDNfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDNfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fdTE2KSkpCnZvaWQgc3ZzdDNfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fczgpKSkKdm9pZCBzdnN0M192bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ4eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDNfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBpbnQ2NF90LCBzdmZsb2F0NjR4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9mMzIpKSkKdm9pZCBzdnN0M192bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIGludDY0X3QsIHN2ZmxvYXQzMngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX2YxNikpKQp2b2lkIHN2c3QzX3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDNfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQzMngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3M2NCkpKQp2b2lkIHN2c3QzX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIGludDY0X3QsIHN2aW50NjR4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zMTYpKSkKdm9pZCBzdnN0M192bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3U4KSkpCnZvaWQgc3ZzdDRfdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF91MzIpKSkKdm9pZCBzdnN0NF91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyeDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3U2NCkpKQp2b2lkIHN2c3Q0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjR4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTE2KSkpCnZvaWQgc3ZzdDRfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9zOCkpKQp2b2lkIHN2c3Q0X3M4KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X2Y2NCkpKQp2b2lkIHN2c3Q0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9mMzIpKSkKdm9pZCBzdnN0NF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfZjE2KSkpCnZvaWQgc3ZzdDRfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3MzMikpKQp2b2lkIHN2c3Q0X3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyeDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3M2NCkpKQp2b2lkIHN2c3Q0X3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3MxNikpKQp2b2lkIHN2c3Q0X3MxNihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fdTgpKSkKdm9pZCBzdnN0NF92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDh4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91MzIpKSkKdm9pZCBzdnN0NF92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91NjQpKSkKdm9pZCBzdnN0NF92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgaW50NjRfdCwgc3Z1aW50NjR4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91MTYpKSkKdm9pZCBzdnN0NF92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgKiwgaW50NjRfdCwgc3Z1aW50MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zOCkpKQp2b2lkIHN2c3Q0X3ZudW1fczgoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDh4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9mNjQpKSkKdm9pZCBzdnN0NF92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX2YzMikpKQp2b2lkIHN2c3Q0X3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyeDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDRfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zMzIpKSkKdm9pZCBzdnN0NF92bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyeDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fczY0KSkpCnZvaWQgc3ZzdDRfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3MxNikpKQp2b2lkIHN2c3Q0X3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91OCkpKQp2b2lkIHN2c3RudDFfdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91MzIpKSkKdm9pZCBzdnN0bnQxX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdTY0KSkpCnZvaWQgc3ZzdG50MV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3UxNikpKQp2b2lkIHN2c3RudDFfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zOCkpKQp2b2lkIHN2c3RudDFfczgoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjY0KSkpCnZvaWQgc3ZzdG50MV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjMyKSkpCnZvaWQgc3ZzdG50MV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjE2KSkpCnZvaWQgc3ZzdG50MV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfczMyKSkpCnZvaWQgc3ZzdG50MV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zNjQpKSkKdm9pZCBzdnN0bnQxX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3MxNikpKQp2b2lkIHN2c3RudDFfczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91OCkpKQp2b2lkIHN2c3RudDFfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdG50MV92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91NjQpKSkKdm9pZCBzdnN0bnQxX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3UxNikpKQp2b2lkIHN2c3RudDFfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fczgpKSkKdm9pZCBzdnN0bnQxX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9mNjQpKSkKdm9pZCBzdnN0bnQxX3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fZjMyKSkpCnZvaWQgc3ZzdG50MV92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2YxNikpKQp2b2lkIHN2c3RudDFfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9zMzIpKSkKdm9pZCBzdnN0bnQxX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9zNjQpKSkKdm9pZCBzdnN0bnQxX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9zMTYpKSkKdm9pZCBzdnN0bnQxX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzdWJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzdWJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZzdWJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZzdWJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZzdWJfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZzdWJfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91OF94KSkpCnN2dWludDhfdCBzdnN1Yl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1Yl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1Yl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnN1Yl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczhfeCkpKQpzdmludDhfdCBzdnN1Yl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnN1Yl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnN1Yl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1Yl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3ViX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3ViX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3ViX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2c3ViX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zOF96KSkpCnN2aW50OF90IHN2c3ViX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczMyX3opKSkKc3ZpbnQzMl90IHN2c3ViX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2c3ViX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczE2X3opKSkKc3ZpbnQxNl90IHN2c3ViX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3ViX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1Yl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3ViX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1Yl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3ViX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1Yl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U4X20pKSkKc3Z1aW50OF90IHN2c3ViX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1Yl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzdWJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3ViX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczhfbSkpKQpzdmludDhfdCBzdnN1Yl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZzdWJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczY0X20pKSkKc3ZpbnQ2NF90IHN2c3ViX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1Yl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91OF94KSkpCnN2dWludDhfdCBzdnN1Yl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzdWJfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3ViX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnN1Yl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZzdWJfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczMyX3gpKSkKc3ZpbnQzMl90IHN2c3ViX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdnN1Yl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3ViX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1Yl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zOF96KSkpCnN2aW50OF90IHN2c3ViX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MzMl96KSkpCnN2aW50MzJfdCBzdnN1Yl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczE2X3opKSkKc3ZpbnQxNl90IHN2c3ViX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1YnJfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U4X20pKSkKc3Z1aW50OF90IHN2c3Vicl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzdWJyX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1YnJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3Vicl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZzdWJyX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1YnJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2c3Vicl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZzdWJyX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3Vicl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzdWJyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1YnJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3Vicl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZzdWJyX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnN1YnJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3Vicl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJyX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3Vicl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJyX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1YnJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2c3Vicl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJyX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnN1YnJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2c3Vicl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJyX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnN1YnJfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnN1YnJfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnN1YnJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1YnJfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1YnJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91OF9tKSkpCnN2dWludDhfdCBzdnN1YnJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1YnJfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1YnJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnN1YnJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczhfbSkpKQpzdmludDhfdCBzdnN1YnJfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1YnJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M2NF9tKSkpCnN2aW50NjRfdCBzdnN1YnJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1YnJfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U4X3gpKSkKc3Z1aW50OF90IHN2c3Vicl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3Vicl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3Vicl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3Vicl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zOF94KSkpCnN2aW50OF90IHN2c3Vicl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2c3Vicl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3Vicl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2c3Vicl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJyX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJyX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzdWJyX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJyX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJyX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMzJfeikpKQpzdmludDMyX3Qgc3ZzdWJyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJyX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJyX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3U4KSkpCnN2dWludDhfdCBzdnRibF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3UzMikpKQpzdnVpbnQzMl90IHN2dGJsX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTY0KSkpCnN2dWludDY0X3Qgc3Z0YmxfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF91MTYpKSkKc3Z1aW50MTZfdCBzdnRibF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3M4KSkpCnN2aW50OF90IHN2dGJsX3M4KHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0YmxfZjY0KHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dGJsX2YzMihzdmZsb2F0MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRibF9mMTYoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zMzIpKSkKc3ZpbnQzMl90IHN2dGJsX3MzMihzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zNjQpKSkKc3ZpbnQ2NF90IHN2dGJsX3M2NChzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zMTYpKSkKc3ZpbnQxNl90IHN2dGJsX3MxNihzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRtYWRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dG1hZF9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dG1hZF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0bWFkX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0bWFkX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRtYWRfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTgpKSkKc3Z1aW50OF90IHN2dHJuMV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV91MzIpKSkKc3Z1aW50MzJfdCBzdnRybjFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTY0KSkpCnN2dWludDY0X3Qgc3Z0cm4xX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3UxNikpKQpzdnVpbnQxNl90IHN2dHJuMV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9zOCkpKQpzdmludDhfdCBzdnRybjFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4xX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4xX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfczE2KSkpCnN2aW50MTZfdCBzdnRybjFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2I4KSkpCnN2Ym9vbF90IHN2dHJuMV9iOChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfYjMyKSkpCnN2Ym9vbF90IHN2dHJuMV9iMzIoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2I2NCkpKQpzdmJvb2xfdCBzdnRybjFfYjY0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9iMTYpKSkKc3Zib29sX3Qgc3Z0cm4xX2IxNihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTgpKSkKc3Z1aW50OF90IHN2dHJuMl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl91MzIpKSkKc3Z1aW50MzJfdCBzdnRybjJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTY0KSkpCnN2dWludDY0X3Qgc3Z0cm4yX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3UxNikpKQpzdnVpbnQxNl90IHN2dHJuMl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9zOCkpKQpzdmludDhfdCBzdnRybjJfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjJfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4yX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMl9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4yX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfczE2KSkpCnN2aW50MTZfdCBzdnRybjJfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2I4KSkpCnN2Ym9vbF90IHN2dHJuMl9iOChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfYjMyKSkpCnN2Ym9vbF90IHN2dHJuMl9iMzIoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2I2NCkpKQpzdmJvb2xfdCBzdnRybjJfYjY0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9iMTYpKSkKc3Zib29sX3Qgc3Z0cm4yX2IxNihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzbXVsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRzbXVsX2Y2NChzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNtdWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHNtdWxfZjMyKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c211bF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0c211bF9mMTYoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzc2VsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRzc2VsX2Y2NChzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNzZWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHNzZWxfZjMyKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c3NlbF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0c3NlbF9mMTYoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl91OCkpKQpzdnVpbnQ4eDJfdCBzdnVuZGVmMl91OCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2dW5kZWYyX3UzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl91NjQpKSkKc3Z1aW50NjR4Ml90IHN2dW5kZWYyX3U2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2dW5kZWYyX3UxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9zOCkpKQpzdmludDh4Ml90IHN2dW5kZWYyX3M4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX2Y2NCkpKQpzdmZsb2F0NjR4Ml90IHN2dW5kZWYyX2Y2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdnVuZGVmMl9mMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3Z1bmRlZjJfZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3MzMikpKQpzdmludDMyeDJfdCBzdnVuZGVmMl9zMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjJfczY0KSkpCnN2aW50NjR4Ml90IHN2dW5kZWYyX3M2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9zMTYpKSkKc3ZpbnQxNngyX3Qgc3Z1bmRlZjJfczE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3U4KSkpCnN2dWludDh4M190IHN2dW5kZWYzX3U4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3UzMikpKQpzdnVpbnQzMngzX3Qgc3Z1bmRlZjNfdTMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3Z1bmRlZjNfdTY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3UxNikpKQpzdnVpbnQxNngzX3Qgc3Z1bmRlZjNfdTE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3M4KSkpCnN2aW50OHgzX3Qgc3Z1bmRlZjNfczgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfZjY0KSkpCnN2ZmxvYXQ2NHgzX3Qgc3Z1bmRlZjNfZjY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2dW5kZWYzX2YzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmM19mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdnVuZGVmM19mMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfczMyKSkpCnN2aW50MzJ4M190IHN2dW5kZWYzX3MzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmM19zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3Z1bmRlZjNfczY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3MxNikpKQpzdmludDE2eDNfdCBzdnVuZGVmM19zMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfdTgpKSkKc3Z1aW50OHg0X3Qgc3Z1bmRlZjRfdTgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfdTMyKSkpCnN2dWludDMyeDRfdCBzdnVuZGVmNF91MzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfdTY0KSkpCnN2dWludDY0eDRfdCBzdnVuZGVmNF91NjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfdTE2KSkpCnN2dWludDE2eDRfdCBzdnVuZGVmNF91MTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfczgpKSkKc3ZpbnQ4eDRfdCBzdnVuZGVmNF9zOCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF9mNjQpKSkKc3ZmbG9hdDY0eDRfdCBzdnVuZGVmNF9mNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3Z1bmRlZjRfZjMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWY0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2dW5kZWY0X2YxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF9zMzIpKSkKc3ZpbnQzMng0X3Qgc3Z1bmRlZjRfczMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWY0X3M2NCkpKQpzdmludDY0eDRfdCBzdnVuZGVmNF9zNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfczE2KSkpCnN2aW50MTZ4NF90IHN2dW5kZWY0X3MxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX3U4KSkpCnN2dWludDhfdCBzdnVuZGVmX3U4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfdTMyKSkpCnN2dWludDMyX3Qgc3Z1bmRlZl91MzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZl91NjQpKSkKc3Z1aW50NjRfdCBzdnVuZGVmX3U2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX3UxNikpKQpzdnVpbnQxNl90IHN2dW5kZWZfdTE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfczgpKSkKc3ZpbnQ4X3Qgc3Z1bmRlZl9zOCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnVuZGVmX2Y2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX2YzMikpKQpzdmZsb2F0MzJfdCBzdnVuZGVmX2YzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX2YxNikpKQpzdmZsb2F0MTZfdCBzdnVuZGVmX2YxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX3MzMikpKQpzdmludDMyX3Qgc3Z1bmRlZl9zMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZl9zNjQpKSkKc3ZpbnQ2NF90IHN2dW5kZWZfczY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfczE2KSkpCnN2aW50MTZfdCBzdnVuZGVmX3MxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9iKSkpCnN2Ym9vbF90IHN2dW5wa2hpX2Ioc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zMzIpKSkKc3ZpbnQzMl90IHN2dW5wa2hpX3MzMihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zNjQpKSkKc3ZpbnQ2NF90IHN2dW5wa2hpX3M2NChzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zMTYpKSkKc3ZpbnQxNl90IHN2dW5wa2hpX3MxNihzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3UzMikpKQpzdnVpbnQzMl90IHN2dW5wa2hpX3UzMihzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBraGlfdTY0KSkpCnN2dWludDY0X3Qgc3Z1bnBraGlfdTY0KHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV91MTYpKSkKc3Z1aW50MTZfdCBzdnVucGtoaV91MTYoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fYikpKQpzdmJvb2xfdCBzdnVucGtsb19iKHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fczMyKSkpCnN2aW50MzJfdCBzdnVucGtsb19zMzIoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fczY0KSkpCnN2aW50NjRfdCBzdnVucGtsb19zNjQoc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fczE2KSkpCnN2aW50MTZfdCBzdnVucGtsb19zMTYoc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb191MzIpKSkKc3Z1aW50MzJfdCBzdnVucGtsb191MzIoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3U2NCkpKQpzdnVpbnQ2NF90IHN2dW5wa2xvX3U2NChzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fdTE2KSkpCnN2dWludDE2X3Qgc3Z1bnBrbG9fdTE2KHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV91OCkpKQpzdnVpbnQ4X3Qgc3Z1enAxX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAxX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3M4KSkpCnN2aW50OF90IHN2dXpwMV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAxX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczMyKSkpCnN2aW50MzJfdCBzdnV6cDFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAxX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfYjgpKSkKc3Zib29sX3Qgc3Z1enAxX2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9iMzIpKSkKc3Zib29sX3Qgc3Z1enAxX2IzMihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfYjY0KSkpCnN2Ym9vbF90IHN2dXpwMV9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2IxNikpKQpzdmJvb2xfdCBzdnV6cDFfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl91OCkpKQpzdnVpbnQ4X3Qgc3Z1enAyX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAyX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3M4KSkpCnN2aW50OF90IHN2dXpwMl9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMl9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDJfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAyX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczMyKSkpCnN2aW50MzJfdCBzdnV6cDJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAyX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfYjgpKSkKc3Zib29sX3Qgc3Z1enAyX2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9iMzIpKSkKc3Zib29sX3Qgc3Z1enAyX2IzMihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfYjY0KSkpCnN2Ym9vbF90IHN2dXpwMl9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2IxNikpKQpzdmJvb2xfdCBzdnV6cDJfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iOF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I4X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IzMl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IzMl9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iNjRfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iNjRfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjE2X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjE2X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I4X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjhfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyX3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMTZfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMTZfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOF91MzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IzMl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IzMl91MzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NF91MzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNl91MzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I4X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjhfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMzJfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMzJfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iNjRfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iNjRfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMTZfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMTZfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjMyX3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iOF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IzMl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I2NF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IxNl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjhfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjMyX3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I2NF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMTZfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iOF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzJfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IxNl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d3JmZnIpKSkKdm9pZCBzdndyZmZyKHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3U4KSkpCnN2dWludDhfdCBzdnppcDFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z6aXAxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2emlwMV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnppcDFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9zMzIpKSkKc3ZpbnQzMl90IHN2emlwMV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczY0KSkpCnN2aW50NjRfdCBzdnppcDFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3MxNikpKQpzdmludDE2X3Qgc3Z6aXAxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9iOCkpKQpzdmJvb2xfdCBzdnppcDFfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2IzMikpKQpzdmJvb2xfdCBzdnppcDFfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9iNjQpKSkKc3Zib29sX3Qgc3Z6aXAxX2I2NChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfYjE2KSkpCnN2Ym9vbF90IHN2emlwMV9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3U4KSkpCnN2dWludDhfdCBzdnppcDJfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAyX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDJfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAyX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z6aXAyX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2emlwMl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2YxNikpKQpzdmZsb2F0MTZfdCBzdnppcDJfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9zMzIpKSkKc3ZpbnQzMl90IHN2emlwMl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczY0KSkpCnN2aW50NjRfdCBzdnppcDJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3MxNikpKQpzdmludDE2X3Qgc3Z6aXAyX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9iOCkpKQpzdmJvb2xfdCBzdnppcDJfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2IzMikpKQpzdmJvb2xfdCBzdnppcDJfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9iNjQpKSkKc3Zib29sX3Qgc3Z6aXAyX2I2NChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfYjE2KSkpCnN2Ym9vbF90IHN2emlwMl9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWJkX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWJkX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWJkX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczhfbSkpKQpzdmludDhfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YWJkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczhfeCkpKQpzdmludDhfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YWJkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczhfeikpKQpzdmludDhfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YWJkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWJkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFiZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWJkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFiZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2YWJkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWJkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczE2X20pKSkKc3ZpbnQxNl90IHN2YWJkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MzMl94KSkpCnN2aW50MzJfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWJkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MzMl96KSkpCnN2aW50MzJfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczE2X3opKSkKc3ZpbnQxNl90IHN2YWJkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U4X20pKSkKc3Z1aW50OF90IHN2YWJkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWJkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U4X3gpKSkKc3Z1aW50OF90IHN2YWJkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWJkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFiZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U4X3opKSkKc3Z1aW50OF90IHN2YWJkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWJkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFiZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWJzX20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFic19tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhYnNfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWJzX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWJzX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWJzX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWJzX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWJzX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWJzX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhYnNfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFic19tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zNjRfbSkpKQpzdmludDY0X3Qgc3ZhYnNfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X20pKSkKc3ZpbnQxNl90IHN2YWJzX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczMyX3gpKSkKc3ZpbnQzMl90IHN2YWJzX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zNjRfeCkpKQpzdmludDY0X3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MxNl94KSkpCnN2aW50MTZfdCBzdmFic194KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczhfeikpKQpzdmludDhfdCBzdmFic196KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMzJfeikpKQpzdmludDMyX3Qgc3ZhYnNfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF96KSkpCnN2aW50NjRfdCBzdmFic196KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X3opKSkKc3ZpbnQxNl90IHN2YWJzX3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2Vfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2dlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9uX2YzMikpKQpzdmJvb2xfdCBzdmFjZ2Uoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX25fZjE2KSkpCnN2Ym9vbF90IHN2YWNnZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2VfZjY0KSkpCnN2Ym9vbF90IHN2YWNnZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9mMzIpKSkKc3Zib29sX3Qgc3ZhY2dlKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX2YxNikpKQpzdmJvb2xfdCBzdmFjZ2Uoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3Rfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2d0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9uX2YzMikpKQpzdmJvb2xfdCBzdmFjZ3Qoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X25fZjE2KSkpCnN2Ym9vbF90IHN2YWNndChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3RfZjY0KSkpCnN2Ym9vbF90IHN2YWNndChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9mMzIpKSkKc3Zib29sX3Qgc3ZhY2d0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X2YxNikpKQpzdmJvb2xfdCBzdmFjZ3Qoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2xlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9uX2YzMikpKQpzdmJvb2xfdCBzdmFjbGUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX25fZjE2KSkpCnN2Ym9vbF90IHN2YWNsZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfZjY0KSkpCnN2Ym9vbF90IHN2YWNsZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9mMzIpKSkKc3Zib29sX3Qgc3ZhY2xlKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX2YxNikpKQpzdmJvb2xfdCBzdmFjbGUoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2x0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9uX2YzMikpKQpzdmJvb2xfdCBzdmFjbHQoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X25fZjE2KSkpCnN2Ym9vbF90IHN2YWNsdChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfZjY0KSkpCnN2Ym9vbF90IHN2YWNsdChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9mMzIpKSkKc3Zib29sX3Qgc3ZhY2x0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X2YxNikpKQpzdmJvb2xfdCBzdmFjbHQoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWRkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWRkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWRkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91OF9tKSkpCnN2dWludDhfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zOF9tKSkpCnN2aW50OF90IHN2YWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczY0X20pKSkKc3ZpbnQ2NF90IHN2YWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91OF94KSkpCnN2dWludDhfdCBzdmFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zOF94KSkpCnN2aW50OF90IHN2YWRkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91OF96KSkpCnN2dWludDhfdCBzdmFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zOF96KSkpCnN2aW50OF90IHN2YWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczY0X3opKSkKc3ZpbnQ2NF90IHN2YWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGFfZjY0KSkpCmZsb2F0NjRfdCBzdmFkZGEoc3Zib29sX3QsIGZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRhX2YzMikpKQpmbG9hdDMyX3Qgc3ZhZGRhKHN2Ym9vbF90LCBmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkYV9mMTYpKSkKZmxvYXQxNl90IHN2YWRkYShzdmJvb2xfdCwgZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczgpKSkKaW50NjRfdCBzdmFkZHYoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9zMzIpKSkKaW50NjRfdCBzdmFkZHYoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczY0KSkpCmludDY0X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3MxNikpKQppbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91OCkpKQp1aW50NjRfdCBzdmFkZHYoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfdTMyKSkpCnVpbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfdTY0KSkpCnVpbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfdTE2KSkpCnVpbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfZjY0KSkpCmZsb2F0NjRfdCBzdmFkZHYoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9mMzIpKSkKZmxvYXQzMl90IHN2YWRkdihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X2YxNikpKQpmbG9hdDE2X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmJfdTMyYmFzZV91MzJvZmZzZXQpKSkKc3Z1aW50MzJfdCBzdmFkcmJfb2Zmc2V0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3U2NGJhc2VfdTY0b2Zmc2V0KSkpCnN2dWludDY0X3Qgc3ZhZHJiX29mZnNldChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyYl91MzJiYXNlX3MzMm9mZnNldCkpKQpzdnVpbnQzMl90IHN2YWRyYl9vZmZzZXQoc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyYl91NjRiYXNlX3M2NG9mZnNldCkpKQpzdnVpbnQ2NF90IHN2YWRyYl9vZmZzZXQoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyZF91MzJiYXNlX3UzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJkX2luZGV4KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3U2NGJhc2VfdTY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmRfaW5kZXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmRfdTMyYmFzZV9zMzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyZF9pbmRleChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3U2NGJhc2VfczY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmRfaW5kZXgoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91MzJiYXNlX3UzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJoX2luZGV4KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJoX3U2NGJhc2VfdTY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmhfaW5kZXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTMyYmFzZV9zMzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyaF9pbmRleChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJoX3U2NGJhc2VfczY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmhfaW5kZXgoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyd191MzJiYXNlX3UzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJ3X2luZGV4KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3U2NGJhc2VfdTY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcndfaW5kZXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTMyYmFzZV9zMzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyd19pbmRleChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3U2NGJhc2VfczY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcndfaW5kZXgoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX2JfeikpKQpzdmJvb2xfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91OF9tKSkpCnN2dWludDhfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YW5kX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zOF9tKSkpCnN2aW50OF90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91OF94KSkpCnN2dWludDhfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YW5kX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zOF94KSkpCnN2aW50OF90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFuZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91OF96KSkpCnN2dWludDhfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2YW5kX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zOF96KSkpCnN2aW50OF90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YW5kX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczhfbSkpKQpzdmludDhfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczMyX20pKSkKc3ZpbnQzMl90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YW5kX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczhfeCkpKQpzdmludDhfdCBzdmFuZF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczMyX3gpKSkKc3ZpbnQzMl90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M2NF94KSkpCnN2aW50NjRfdCBzdmFuZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MTZfeikpKQpzdnVpbnQxNl90IHN2YW5kX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczhfeikpKQpzdmludDhfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczMyX3opKSkKc3ZpbnQzMl90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M2NF96KSkpCnN2aW50NjRfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3U4KSkpCnVpbnQ4X3Qgc3ZhbmR2KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3UzMikpKQp1aW50MzJfdCBzdmFuZHYoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3U2NCkpKQp1aW50NjRfdCBzdmFuZHYoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3UxNikpKQp1aW50MTZfdCBzdmFuZHYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3M4KSkpCmludDhfdCBzdmFuZHYoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kdl9zMzIpKSkKaW50MzJfdCBzdmFuZHYoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczY0KSkpCmludDY0X3Qgc3ZhbmR2KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3MxNikpKQppbnQxNl90IHN2YW5kdihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczhfbSkpKQpzdmludDhfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YXNyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3JfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zOF96KSkpCnN2aW50OF90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3JfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3JfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3JfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zOF94KSkpCnN2aW50OF90IHN2YXNyX3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczhfeikpKQpzdmludDhfdCBzdmFzcl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MzMl96KSkpCnN2aW50MzJfdCBzdmFzcl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczY0X3opKSkKc3ZpbnQ2NF90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3JfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zOF9tKSkpCnN2aW50OF90IHN2YXNyX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zOF94KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zOF96KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczhfbSkpKQpzdmludDhfdCBzdmFzcl93aWRlX20oc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczMyX20pKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczhfeCkpKQpzdmludDhfdCBzdmFzcl93aWRlX3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczhfeikpKQpzdmludDhfdCBzdmFzcl93aWRlX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3JkX20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3JkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YXNyZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcmRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zOF94KSkpCnN2aW50OF90IHN2YXNyZF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcmRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3JkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczhfeikpKQpzdmludDhfdCBzdmFzcmRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFzcmRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3JkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX2JfeikpKQpzdmJvb2xfdCBzdmJpY196KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91OF9tKSkpCnN2dWludDhfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YmljX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zOF9tKSkpCnN2aW50OF90IHN2YmljX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YmljX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmJpY19tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91OF94KSkpCnN2dWludDhfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YmljX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zOF94KSkpCnN2aW50OF90IHN2YmljX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YmljX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MxNl94KSkpCnN2aW50MTZfdCBzdmJpY194KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91OF96KSkpCnN2dWludDhfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2YmljX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zOF96KSkpCnN2aW50OF90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MxNl96KSkpCnN2aW50MTZfdCBzdmJpY196KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MTZfbSkpKQpzdnVpbnQxNl90IHN2YmljX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczhfbSkpKQpzdmludDhfdCBzdmJpY19tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczMyX20pKSkKc3ZpbnQzMl90IHN2YmljX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M2NF9tKSkpCnN2aW50NjRfdCBzdmJpY19tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMTZfbSkpKQpzdmludDE2X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MTZfeCkpKQpzdnVpbnQxNl90IHN2YmljX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczhfeCkpKQpzdmludDhfdCBzdmJpY194KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczMyX3gpKSkKc3ZpbnQzMl90IHN2YmljX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M2NF94KSkpCnN2aW50NjRfdCBzdmJpY194KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMTZfeCkpKQpzdmludDE2X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdThfeikpKQpzdnVpbnQ4X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MTZfeikpKQpzdnVpbnQxNl90IHN2YmljX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczhfeikpKQpzdmludDhfdCBzdmJpY196KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczMyX3opKSkKc3ZpbnQzMl90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M2NF96KSkpCnN2aW50NjRfdCBzdmJpY196KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMTZfeikpKQpzdmludDE2X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmthX2JfbSkpKQpzdmJvb2xfdCBzdmJya2FfbShzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrYV9iX3opKSkKc3Zib29sX3Qgc3ZicmthX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrYl9iX20pKSkKc3Zib29sX3Qgc3ZicmtiX20oc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2JfYl96KSkpCnN2Ym9vbF90IHN2YnJrYl96KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya25fYl96KSkpCnN2Ym9vbF90IHN2YnJrbl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtwYV9iX3opKSkKc3Zib29sX3Qgc3ZicmtwYV96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtwYl9iX3opKSkKc3Zib29sX3Qgc3ZicmtwYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmNhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmNhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmNhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl91OCkpKQp1aW50OF90IHN2Y2xhc3RhKHN2Ym9vbF90LCB1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl91MzIpKSkKdWludDMyX3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTY0KSkpCnVpbnQ2NF90IHN2Y2xhc3RhKHN2Ym9vbF90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3UxNikpKQp1aW50MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgdWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zOCkpKQppbnQ4X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIGludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9mNjQpKSkKZmxvYXQ2NF90IHN2Y2xhc3RhKHN2Ym9vbF90LCBmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fZjMyKSkpCmZsb2F0MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2YxNikpKQpmbG9hdDE2X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIGZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zMzIpKSkKaW50MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgaW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fczY0KSkpCmludDY0X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3MxNikpKQppbnQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfdTgpKSkKc3Z1aW50OF90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV91MzIpKSkKc3Z1aW50MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV91NjQpKSkKc3Z1aW50NjRfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV91MTYpKSkKc3Z1aW50MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9zOCkpKQpzdmludDhfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2YzMikpKQpzdmZsb2F0MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2YxNikpKQpzdmZsb2F0MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3MzMikpKQpzdmludDMyX3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3M2NCkpKQpzdmludDY0X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3MxNikpKQpzdmludDE2X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fdTgpKSkKdWludDhfdCBzdmNsYXN0YihzdmJvb2xfdCwgdWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fdTMyKSkpCnVpbnQzMl90IHN2Y2xhc3RiKHN2Ym9vbF90LCB1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3U2NCkpKQp1aW50NjRfdCBzdmNsYXN0YihzdmJvb2xfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91MTYpKSkKdWludDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczgpKSkKaW50OF90IHN2Y2xhc3RiKHN2Ym9vbF90LCBpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fZjY0KSkpCmZsb2F0NjRfdCBzdmNsYXN0YihzdmJvb2xfdCwgZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX2YzMikpKQpmbG9hdDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIGZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9mMTYpKSkKZmxvYXQxNl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczMyKSkpCmludDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIGludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3M2NCkpKQppbnQ2NF90IHN2Y2xhc3RiKHN2Ym9vbF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zMTYpKSkKaW50MTZfdCBzdmNsYXN0YihzdmJvb2xfdCwgaW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3U4KSkpCnN2dWludDhfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfczgpKSkKc3ZpbnQ4X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zMzIpKSkKc3ZpbnQzMl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2xhc3RiKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zMTYpKSkKc3ZpbnQxNl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zOF9tKSkpCnN2dWludDhfdCBzdmNsc19tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbHNfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbHNfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbHNfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M4X3gpKSkKc3Z1aW50OF90IHN2Y2xzX3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MzMl94KSkpCnN2dWludDMyX3Qgc3ZjbHNfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M2NF94KSkpCnN2dWludDY0X3Qgc3ZjbHNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MxNl94KSkpCnN2dWludDE2X3Qgc3ZjbHNfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M4X3opKSkKc3Z1aW50OF90IHN2Y2xzX3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MzMl96KSkpCnN2dWludDMyX3Qgc3ZjbHNfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M2NF96KSkpCnN2dWludDY0X3Qgc3ZjbHNfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MxNl96KSkpCnN2dWludDE2X3Qgc3ZjbHNfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U4X20pKSkKc3Z1aW50OF90IHN2Y2x6X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbHpfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfbSkpKQpzdnVpbnQ2NF90IHN2Y2x6X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmNsel9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X20pKSkKc3Z1aW50OF90IHN2Y2x6X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczMyX20pKSkKc3Z1aW50MzJfdCBzdmNsel9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczY0X20pKSkKc3Z1aW50NjRfdCBzdmNsel9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczE2X20pKSkKc3Z1aW50MTZfdCBzdmNsel9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfeCkpKQpzdnVpbnQ2NF90IHN2Y2x6X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsel94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X3gpKSkKc3Z1aW50OF90IHN2Y2x6X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MzMl94KSkpCnN2dWludDMyX3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M2NF94KSkpCnN2dWludDY0X3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MxNl94KSkpCnN2dWludDE2X3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U4X3opKSkKc3Z1aW50OF90IHN2Y2x6X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MzJfeikpKQpzdnVpbnQzMl90IHN2Y2x6X3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmNsel96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UxNl96KSkpCnN2dWludDE2X3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zOF96KSkpCnN2dWludDhfdCBzdmNsel96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMzJfeikpKQpzdnVpbnQzMl90IHN2Y2x6X3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zNjRfeikpKQpzdnVpbnQ2NF90IHN2Y2x6X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMTZfeikpKQpzdnVpbnQxNl90IHN2Y2x6X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmNtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2Y21sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmNtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y21sYV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmNtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2Y21sYV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZjbWxhX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdmNtbGFfbGFuZShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczY0KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3U4KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTMyKSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV91NjQpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3UxNikpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczgpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczMyKSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczY0KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczE2KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfZjY0KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX2YzMikpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV91NjQpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGUoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV91OCkpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGUoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczgpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfczgpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfczMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfczY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X2YzMikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfdTgpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3U2NCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX2YxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91OCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfdTY0KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczgpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczY0KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3U4KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfczgpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfczMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfczY0KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfczE2KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfZjY0KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X2YzMikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3U2NCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zOCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX2YxNikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wdW8oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19uX2YzMikpKQpzdmJvb2xfdCBzdmNtcHVvKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXB1byhzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcHVvKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19mMzIpKSkKc3Zib29sX3Qgc3ZjbXB1byhzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fZjE2KSkpCnN2Ym9vbF90IHN2Y21wdW8oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zjbm90X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2Y25vdF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2Y25vdF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MTZfbSkpKQpzdnVpbnQxNl90IHN2Y25vdF9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zOF9tKSkpCnN2aW50OF90IHN2Y25vdF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MzMl9tKSkpCnN2aW50MzJfdCBzdmNub3RfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M2NF9tKSkpCnN2aW50NjRfdCBzdmNub3RfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl9tKSkpCnN2aW50MTZfdCBzdmNub3RfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U4X3gpKSkKc3Z1aW50OF90IHN2Y25vdF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UzMl94KSkpCnN2dWludDMyX3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U2NF94KSkpCnN2dWludDY0X3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UxNl94KSkpCnN2dWludDE2X3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X3gpKSkKc3ZpbnQ2NF90IHN2Y25vdF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl94KSkpCnN2aW50MTZfdCBzdmNub3RfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91OF96KSkpCnN2dWludDhfdCBzdmNub3RfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MzJfeikpKQpzdnVpbnQzMl90IHN2Y25vdF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2Y25vdF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MTZfeikpKQpzdnVpbnQxNl90IHN2Y25vdF96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zOF96KSkpCnN2aW50OF90IHN2Y25vdF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczMyX3opKSkKc3ZpbnQzMl90IHN2Y25vdF96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M2NF96KSkpCnN2aW50NjRfdCBzdmNub3RfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMTZfeikpKQpzdmludDE2X3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91OF9tKSkpCnN2dWludDhfdCBzdmNudF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MzJfbSkpKQpzdnVpbnQzMl90IHN2Y250X20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zOF9tKSkpCnN2dWludDhfdCBzdmNudF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2Y2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbnRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjMyX20pKSkKc3Z1aW50MzJfdCBzdmNudF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMTZfbSkpKQpzdnVpbnQxNl90IHN2Y250X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbnRfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbnRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U4X3gpKSkKc3Z1aW50OF90IHN2Y250X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MzJfeCkpKQpzdnVpbnQzMl90IHN2Y250X3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmNudF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UxNl94KSkpCnN2dWludDE2X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zOF94KSkpCnN2dWludDhfdCBzdmNudF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YzMl94KSkpCnN2dWludDMyX3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMzJfeCkpKQpzdnVpbnQzMl90IHN2Y250X3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMTZfeCkpKQpzdnVpbnQxNl90IHN2Y250X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91OF96KSkpCnN2dWludDhfdCBzdmNudF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmNudF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MTZfeikpKQpzdnVpbnQxNl90IHN2Y250X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczhfeikpKQpzdnVpbnQ4X3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjY0X3opKSkKc3Z1aW50NjRfdCBzdmNudF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMzJfeikpKQpzdnVpbnQzMl90IHN2Y250X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YxNl96KSkpCnN2dWludDE2X3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczMyX3opKSkKc3Z1aW50MzJfdCBzdmNudF96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczY0X3opKSkKc3Z1aW50NjRfdCBzdmNudF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczE2X3opKSkKc3Z1aW50MTZfdCBzdmNudF96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3UzMikpKQpzdnVpbnQzMl90IHN2Y29tcGFjdChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfdTY0KSkpCnN2dWludDY0X3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Y29tcGFjdChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3MzMikpKQpzdmludDMyX3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X3M2NCkpKQpzdmludDY0X3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3U4KSkpCnN2dWludDh4Ml90IHN2Y3JlYXRlMihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfdTMyKSkpCnN2dWludDMyeDJfdCBzdmNyZWF0ZTIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfdTY0KSkpCnN2dWludDY0eDJfdCBzdmNyZWF0ZTIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfdTE2KSkpCnN2dWludDE2eDJfdCBzdmNyZWF0ZTIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfczgpKSkKc3ZpbnQ4eDJfdCBzdmNyZWF0ZTIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmNyZWF0ZTIoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdmNyZWF0ZTIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdmNyZWF0ZTIoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZjcmVhdGUyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZjcmVhdGUyKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZjcmVhdGUyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191OCkpKQpzdnVpbnQ4eDNfdCBzdmNyZWF0ZTMoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTMyKSkpCnN2dWludDMyeDNfdCBzdmNyZWF0ZTMoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTY0KSkpCnN2dWludDY0eDNfdCBzdmNyZWF0ZTMoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfdTE2KSkpCnN2dWludDE2eDNfdCBzdmNyZWF0ZTMoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczgpKSkKc3ZpbnQ4eDNfdCBzdmNyZWF0ZTMoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfZjY0KSkpCnN2ZmxvYXQ2NHgzX3Qgc3ZjcmVhdGUzKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2Y3JlYXRlMyhzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdmNyZWF0ZTMoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczMyKSkpCnN2aW50MzJ4M190IHN2Y3JlYXRlMyhzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3ZjcmVhdGUzKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX3MxNikpKQpzdmludDE2eDNfdCBzdmNyZWF0ZTMoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTgpKSkKc3Z1aW50OHg0X3Qgc3ZjcmVhdGU0KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTMyKSkpCnN2dWludDMyeDRfdCBzdmNyZWF0ZTQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTY0KSkpCnN2dWludDY0eDRfdCBzdmNyZWF0ZTQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTE2KSkpCnN2dWludDE2eDRfdCBzdmNyZWF0ZTQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczgpKSkKc3ZpbnQ4eDRfdCBzdmNyZWF0ZTQoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2Y3JlYXRlNChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZjcmVhdGU0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdmNyZWF0ZTQoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3MzMikpKQpzdmludDMyeDRfdCBzdmNyZWF0ZTQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZjcmVhdGU0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczE2KSkpCnN2aW50MTZ4NF90IHN2Y3JlYXRlNChzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2YzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2YzMl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mNjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mNjRfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MxNl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMzJfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMzJfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczY0X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczY0X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UzMl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91NjRfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91NjRfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjE2X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjE2X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2Y2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3M2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3M2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3UzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3UzMl96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91NjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91NjRfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjE2X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjE2X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YzMl94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3M2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3M2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3UzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3UzMl96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91NjRfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91NjRfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMTZfZjE2X20pKSkKc3ZpbnQxNl90IHN2Y3Z0X3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfeCkpKQpzdmludDE2X3Qgc3ZjdnRfczE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfeikpKQpzdmludDE2X3Qgc3ZjdnRfczE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMTZfbSkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl94KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl96KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YzMl9tKSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX3gpKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX3opKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjY0X20pKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfeCkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfeikpKQpzdmludDMyX3Qgc3ZjdnRfczMyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMTZfbSkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl94KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl96KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YzMl9tKSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX3gpKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX3opKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjY0X20pKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfeCkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfeikpKQpzdmludDY0X3Qgc3ZjdnRfczY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UxNl9mMTZfbSkpKQpzdnVpbnQxNl90IHN2Y3Z0X3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MTZfZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmN2dF91MTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTE2X2YxNl96KSkpCnN2dWludDE2X3Qgc3ZjdnRfdTE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMTZfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjE2X3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YxNl96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMzJfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjMyX3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YzMl96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mNjRfbSkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjY0X3gpKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2Y2NF96KSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMTZfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjE2X3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YxNl96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMzJfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjMyX3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YzMl96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mNjRfbSkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjY0X3gpKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2Y2NF96KSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2X20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2X20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2X3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczMyX3gpKSkKc3ZpbnQzMl90IHN2ZGl2X3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZGl2X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmRpdl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2X3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmRpdl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fczMyKSkpCnN2aW50MzJfdCBzdmRvdChzdmludDMyX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZG90KHN2aW50NjRfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fdTMyKSkpCnN2dWludDMyX3Qgc3Zkb3Qoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fdTY0KSkpCnN2dWludDY0X3Qgc3Zkb3Qoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfczMyKSkpCnN2aW50MzJfdCBzdmRvdChzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9zNjQpKSkKc3ZpbnQ2NF90IHN2ZG90KHN2aW50NjRfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfdTMyKSkpCnN2dWludDMyX3Qgc3Zkb3Qoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfdTY0KSkpCnN2dWludDY0X3Qgc3Zkb3Qoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3Zkb3RfbGFuZShzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2ZG90X2xhbmUoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmRvdF9sYW5lKHN2dWludDMyX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZG90X2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZkdXBfdTgodWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwX3UzMih1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwX3U2NCh1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwX3UxNih1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M4KSkpCnN2aW50OF90IHN2ZHVwX3M4KGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmR1cF9mNjQoZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwX2YzMihmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfZjE2KGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMikpKQpzdmludDMyX3Qgc3ZkdXBfczMyKGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZHVwX3M2NChpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczE2KSkpCnN2aW50MTZfdCBzdmR1cF9zMTYoaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4X20pKSkKc3Z1aW50OF90IHN2ZHVwX3U4X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkdXBfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmR1cF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZHVwX3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZkdXBfczhfbShzdmludDhfdCwgc3Zib29sX3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmR1cF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmR1cF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZHVwX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZkdXBfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2I4KSkpCnN2Ym9vbF90IHN2ZHVwX2I4KGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iMzIpKSkKc3Zib29sX3Qgc3ZkdXBfYjMyKGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iNjQpKSkKc3Zib29sX3Qgc3ZkdXBfYjY0KGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iMTYpKSkKc3Zib29sX3Qgc3ZkdXBfYjE2KGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OF94KSkpCnN2dWludDhfdCBzdmR1cF91OF94KHN2Ym9vbF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmR1cF91MzJfeChzdmJvb2xfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZHVwX3U2NF94KHN2Ym9vbF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZkdXBfdTE2X3goc3Zib29sX3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczhfeCkpKQpzdmludDhfdCBzdmR1cF9zOF94KHN2Ym9vbF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmR1cF9mNjRfeChzdmJvb2xfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfZjMyX3goc3Zib29sX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZHVwX2YxNl94KHN2Ym9vbF90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkdXBfczMyX3goc3Zib29sX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkdXBfczY0X3goc3Zib29sX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZkdXBfczE2X3goc3Zib29sX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OF96KSkpCnN2dWludDhfdCBzdmR1cF91OF96KHN2Ym9vbF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmR1cF91MzJfeihzdmJvb2xfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZHVwX3U2NF96KHN2Ym9vbF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZkdXBfdTE2X3ooc3Zib29sX3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczhfeikpKQpzdmludDhfdCBzdmR1cF9zOF96KHN2Ym9vbF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmR1cF9mNjRfeihzdmJvb2xfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfZjMyX3ooc3Zib29sX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZHVwX2YxNl96KHN2Ym9vbF90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkdXBfczMyX3ooc3Zib29sX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkdXBfczY0X3ooc3Zib29sX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZkdXBfczE2X3ooc3Zib29sX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV91OCkpKQpzdnVpbnQ4X3Qgc3ZkdXBfbGFuZShzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmR1cF9sYW5lKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBfbGFuZShzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwX2xhbmUoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zOCkpKQpzdmludDhfdCBzdmR1cF9sYW5lKHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2xhbmUoc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwX2xhbmUoc3ZmbG9hdDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZHVwX2xhbmUoc3ZmbG9hdDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmR1cF9sYW5lKHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2ZHVwX2xhbmUoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZkdXBfbGFuZShzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwcV91MTYodWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2YxNikpKQpzdmZsb2F0MTZfdCBzdmR1cHFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3MxNikpKQpzdmludDE2X3Qgc3ZkdXBxX3MxNihpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwcV91MzIodWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwcV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyX3QsIGZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3MzMikpKQpzdmludDMyX3Qgc3ZkdXBxX3MzMihpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwcV91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmR1cHFfZjY0KGZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBxX3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3U4KSkpCnN2dWludDhfdCBzdmR1cHFfdTgodWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9zOCkpKQpzdmludDhfdCBzdmR1cHFfczgoaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2IxNikpKQpzdmJvb2xfdCBzdmR1cHFfYjE2KGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjMyKSkpCnN2Ym9vbF90IHN2ZHVwcV9iMzIoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iNjQpKSkKc3Zib29sX3Qgc3ZkdXBxX2I2NChib29sLCBib29sKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2I4KSkpCnN2Ym9vbF90IHN2ZHVwcV9iOChib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3U4KSkpCnN2dWludDhfdCBzdmR1cHFfbGFuZShzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwcV9sYW5lKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwcV9sYW5lKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwcV9sYW5lKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3M4KSkpCnN2aW50OF90IHN2ZHVwcV9sYW5lKHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBxX2xhbmUoc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmR1cHFfbGFuZShzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZHVwcV9sYW5lKHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwcV9sYW5lKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdmR1cHFfbGFuZShzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZkdXBxX2xhbmUoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9iX3opKSkKc3Zib29sX3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZW9yX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczhfbSkpKQpzdmludDhfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZW9yX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmVvcl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZW9yX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczhfeCkpKQpzdmludDhfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2ZW9yX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmVvcl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczhfeikpKQpzdmludDhfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U4X20pKSkKc3Z1aW50OF90IHN2ZW9yX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZW9yX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MzMl9tKSkpCnN2aW50MzJfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczE2X20pKSkKc3ZpbnQxNl90IHN2ZW9yX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U4X3gpKSkKc3Z1aW50OF90IHN2ZW9yX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZW9yX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmVvcl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MzMl94KSkpCnN2aW50MzJfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczE2X3gpKSkKc3ZpbnQxNl90IHN2ZW9yX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U4X3opKSkKc3Z1aW50OF90IHN2ZW9yX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZW9yX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmVvcl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MzMl96KSkpCnN2aW50MzJfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zNjRfeikpKQpzdmludDY0X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczE2X3opKSkKc3ZpbnQxNl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91OCkpKQp1aW50OF90IHN2ZW9ydihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91MzIpKSkKdWludDMyX3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91NjQpKSkKdWludDY0X3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91MTYpKSkKdWludDE2X3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zOCkpKQppbnQ4X3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfczMyKSkpCmludDMyX3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3M2NCkpKQppbnQ2NF90IHN2ZW9ydihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zMTYpKSkKaW50MTZfdCBzdmVvcnYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4cGFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZXhwYShzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXhwYV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZleHBhKHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHBhX2YxNikpKQpzdmZsb2F0MTZfdCBzdmV4cGEoc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF91OCkpKQpzdnVpbnQ4X3Qgc3ZleHQoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3UzMikpKQpzdnVpbnQzMl90IHN2ZXh0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3U2NCkpKQpzdnVpbnQ2NF90IHN2ZXh0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3UxNikpKQpzdnVpbnQxNl90IHN2ZXh0KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3M4KSkpCnN2aW50OF90IHN2ZXh0KHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZXh0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZXh0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZXh0KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczMyKSkpCnN2aW50MzJfdCBzdmV4dChzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczY0KSkpCnN2aW50NjRfdCBzdmV4dChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczE2KSkpCnN2aW50MTZfdCBzdmV4dChzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl9tKSkpCnN2aW50MzJfdCBzdmV4dGJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3M2NF9tKSkpCnN2aW50NjRfdCBzdmV4dGJfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MxNl9tKSkpCnN2aW50MTZfdCBzdmV4dGJfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl94KSkpCnN2aW50MzJfdCBzdmV4dGJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHRiX3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczE2X3gpKSkKc3ZpbnQxNl90IHN2ZXh0Yl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl96KSkpCnN2aW50MzJfdCBzdmV4dGJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zNjRfeikpKQpzdmludDY0X3Qgc3ZleHRiX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczE2X3opKSkKc3ZpbnQxNl90IHN2ZXh0Yl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZleHRiX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZleHRiX20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZleHRiX20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZleHRiX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZleHRiX3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZleHRiX3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZleHRiX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZleHRiX3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZleHRiX3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3MzMl9tKSkpCnN2aW50MzJfdCBzdmV4dGhfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3M2NF9tKSkpCnN2aW50NjRfdCBzdmV4dGhfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3MzMl94KSkpCnN2aW50MzJfdCBzdmV4dGhfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHRoX3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczMyX3opKSkKc3ZpbnQzMl90IHN2ZXh0aF96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3M2NF96KSkpCnN2aW50NjRfdCBzdmV4dGhfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZXh0aF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZXh0aF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZXh0aF94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZXh0aF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfeikpKQpzdnVpbnQzMl90IHN2ZXh0aF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZXh0aF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d19zNjRfbSkpKQpzdmludDY0X3Qgc3ZleHR3X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d19zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHR3X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZXh0d196KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZleHR3X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZleHR3X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZleHR3X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3U4KSkpCnN2dWludDhfdCBzdmdldDIoc3Z1aW50OHgyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml91MzIpKSkKc3Z1aW50MzJfdCBzdmdldDIoc3Z1aW50MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfdTY0KSkpCnN2dWludDY0X3Qgc3ZnZXQyKHN2dWludDY0eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3UxNikpKQpzdnVpbnQxNl90IHN2Z2V0MihzdnVpbnQxNngyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zOCkpKQpzdmludDhfdCBzdmdldDIoc3ZpbnQ4eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmdldDIoc3ZmbG9hdDY0eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX2YzMikpKQpzdmZsb2F0MzJfdCBzdmdldDIoc3ZmbG9hdDMyeDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX2YxNikpKQpzdmZsb2F0MTZfdCBzdmdldDIoc3ZmbG9hdDE2eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3MzMikpKQpzdmludDMyX3Qgc3ZnZXQyKHN2aW50MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfczY0KSkpCnN2aW50NjRfdCBzdmdldDIoc3ZpbnQ2NHgyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zMTYpKSkKc3ZpbnQxNl90IHN2Z2V0MihzdmludDE2eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3U4KSkpCnN2dWludDhfdCBzdmdldDMoc3Z1aW50OHgzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M191MzIpKSkKc3Z1aW50MzJfdCBzdmdldDMoc3Z1aW50MzJ4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTY0KSkpCnN2dWludDY0X3Qgc3ZnZXQzKHN2dWludDY0eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3UxNikpKQpzdnVpbnQxNl90IHN2Z2V0MyhzdnVpbnQxNngzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zOCkpKQpzdmludDhfdCBzdmdldDMoc3ZpbnQ4eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmdldDMoc3ZmbG9hdDY0eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2YzMikpKQpzdmZsb2F0MzJfdCBzdmdldDMoc3ZmbG9hdDMyeDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2YxNikpKQpzdmZsb2F0MTZfdCBzdmdldDMoc3ZmbG9hdDE2eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3MzMikpKQpzdmludDMyX3Qgc3ZnZXQzKHN2aW50MzJ4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfczY0KSkpCnN2aW50NjRfdCBzdmdldDMoc3ZpbnQ2NHgzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zMTYpKSkKc3ZpbnQxNl90IHN2Z2V0MyhzdmludDE2eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3U4KSkpCnN2dWludDhfdCBzdmdldDQoc3Z1aW50OHg0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF91MzIpKSkKc3Z1aW50MzJfdCBzdmdldDQoc3Z1aW50MzJ4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTY0KSkpCnN2dWludDY0X3Qgc3ZnZXQ0KHN2dWludDY0eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3UxNikpKQpzdnVpbnQxNl90IHN2Z2V0NChzdnVpbnQxNng0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9zOCkpKQpzdmludDhfdCBzdmdldDQoc3ZpbnQ4eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmdldDQoc3ZmbG9hdDY0eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmdldDQoc3ZmbG9hdDMyeDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2YxNikpKQpzdmZsb2F0MTZfdCBzdmdldDQoc3ZmbG9hdDE2eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3MzMikpKQpzdmludDMyX3Qgc3ZnZXQ0KHN2aW50MzJ4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfczY0KSkpCnN2aW50NjRfdCBzdmdldDQoc3ZpbnQ2NHg0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9zMTYpKSkKc3ZpbnQxNl90IHN2Z2V0NChzdmludDE2eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fdTgpKSkKc3Z1aW50OF90IHN2aW5zcihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZpbnNyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2aW5zcihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmluc3Ioc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczgpKSkKc3ZpbnQ4X3Qgc3ZpbnNyKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2aW5zcihzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmluc3Ioc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZpbnNyKHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczMyKSkpCnN2aW50MzJfdCBzdmluc3Ioc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZpbnNyKHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2aW5zcihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91OCkpKQp1aW50OF90IHN2bGFzdGEoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3UzMikpKQp1aW50MzJfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfdTY0KSkpCnVpbnQ2NF90IHN2bGFzdGEoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91MTYpKSkKdWludDE2X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3M4KSkpCmludDhfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9mMzIpKSkKZmxvYXQzMl90IHN2bGFzdGEoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfZjE2KSkpCmZsb2F0MTZfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3MzMikpKQppbnQzMl90IHN2bGFzdGEoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3M2NCkpKQppbnQ2NF90IHN2bGFzdGEoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3MxNikpKQppbnQxNl90IHN2bGFzdGEoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3U4KSkpCnVpbnQ4X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfdTMyKSkpCnVpbnQzMl90IHN2bGFzdGIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl91NjQpKSkKdWludDY0X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3UxNikpKQp1aW50MTZfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfczgpKSkKaW50OF90IHN2bGFzdGIoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfZjY0KSkpCmZsb2F0NjRfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX2YzMikpKQpmbG9hdDMyX3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9mMTYpKSkKZmxvYXQxNl90IHN2bGFzdGIoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfczMyKSkpCmludDMyX3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfczY0KSkpCmludDY0X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfczE2KSkpCmludDE2X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3U4KSkpCnN2dWludDhfdCBzdmxkMShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3M4KSkpCnN2aW50OF90IHN2bGQxKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDEoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfczY0KSkpCnN2aW50NjRfdCBzdmxkMShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3MxNikpKQpzdmludDE2X3Qgc3ZsZDEoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9zOCkpKQpzdmludDhfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3U4KSkpCnN2dWludDhfdCBzdmxkMXJxKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXJxKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFycShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxcnEoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zOCkpKQpzdmludDhfdCBzdmxkMXJxKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMXJxKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMXJxKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkMXJxKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFycShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfczY0KSkpCnN2aW50NjRfdCBzdmxkMXJxKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxcnEoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdTgpKSkKc3Z1aW50OHgyX3Qgc3ZsZDIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2bGQyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZsZDIoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdTE2KSkpCnN2dWludDE2eDJfdCBzdmxkMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zOCkpKQpzdmludDh4Ml90IHN2bGQyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmxkMihzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZsZDIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2YxNikpKQpzdmZsb2F0MTZ4Ml90IHN2bGQyKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZsZDIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZsZDIoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZsZDIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3U4KSkpCnN2dWludDh4Ml90IHN2bGQyX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3UzMikpKQpzdnVpbnQzMngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3UxNikpKQpzdnVpbnQxNngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3M4KSkpCnN2aW50OHgyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2YzMikpKQpzdmZsb2F0MzJ4Ml90IHN2bGQyX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczY0KSkpCnN2aW50NjR4Ml90IHN2bGQyX3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3MxNikpKQpzdmludDE2eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTgpKSkKc3Z1aW50OHgzX3Qgc3ZsZDMoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM191MzIpKSkKc3Z1aW50MzJ4M190IHN2bGQzKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZsZDMoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTE2KSkpCnN2dWludDE2eDNfdCBzdmxkMyhzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19zOCkpKQpzdmludDh4M190IHN2bGQzKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdmxkMyhzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZsZDMoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2bGQzKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZsZDMoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3ZsZDMoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19zMTYpKSkKc3ZpbnQxNngzX3Qgc3ZsZDMoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3U4KSkpCnN2dWludDh4M190IHN2bGQzX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3UxNikpKQpzdnVpbnQxNngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3M4KSkpCnN2aW50OHgzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2bGQzX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fczY0KSkpCnN2aW50NjR4M190IHN2bGQzX3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3MxNikpKQpzdmludDE2eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTgpKSkKc3Z1aW50OHg0X3Qgc3ZsZDQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91MzIpKSkKc3Z1aW50MzJ4NF90IHN2bGQ0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3U2NCkpKQpzdnVpbnQ2NHg0X3Qgc3ZsZDQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTE2KSkpCnN2dWludDE2eDRfdCBzdmxkNChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zOCkpKQpzdmludDh4NF90IHN2bGQ0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9mNjQpKSkKc3ZmbG9hdDY0eDRfdCBzdmxkNChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZsZDQoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2bGQ0KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zMzIpKSkKc3ZpbnQzMng0X3Qgc3ZsZDQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZsZDQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZsZDQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3U4KSkpCnN2dWludDh4NF90IHN2bGQ0X3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3UzMikpKQpzdnVpbnQzMng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3U2NCkpKQpzdnVpbnQ2NHg0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3UxNikpKQpzdnVpbnQxNng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3M4KSkpCnN2aW50OHg0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9mNjQpKSkKc3ZmbG9hdDY0eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX2YzMikpKQpzdmZsb2F0MzJ4NF90IHN2bGQ0X3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fZjE2KSkpCnN2ZmxvYXQxNng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9zMzIpKSkKc3ZpbnQzMng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczY0KSkpCnN2aW50NjR4NF90IHN2bGQ0X3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3MxNikpKQpzdmludDE2eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZGZmMShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjEoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkZmYxKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczgpKSkKc3ZpbnQ4X3Qgc3ZsZGZmMShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMShzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZGZmMShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjEoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX2luZGV4X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXRfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczgpKSkKc3ZpbnQ4X3Qgc3ZsZGZmMV92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZGZmMV92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3U4KSkpCnN2dWludDhfdCBzdmxkbmYxKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjEoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zOCkpKQpzdmludDhfdCBzdmxkbmYxKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbmYxKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbmYxKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkbmYxKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjEoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zOCkpKQpzdmludDhfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTgpKSkKc3Z1aW50OF90IHN2bGRudDEoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDEoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG50MShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3M4KSkpCnN2aW50OF90IHN2bGRudDEoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDEoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRudDEoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRudDEoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDEoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3MxNikpKQpzdmludDE2X3Qgc3ZsZG50MShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fdTgpKSkKdWludDY0X3Qgc3ZsZW4oc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3UzMikpKQp1aW50NjRfdCBzdmxlbihzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3U2NCkpKQp1aW50NjRfdCBzdmxlbihzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3UxNikpKQp1aW50NjRfdCBzdmxlbihzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3M4KSkpCnVpbnQ2NF90IHN2bGVuKHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2Y2NCkpKQp1aW50NjRfdCBzdmxlbihzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9mMzIpKSkKdWludDY0X3Qgc3ZsZW4oc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fZjE2KSkpCnVpbnQ2NF90IHN2bGVuKHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3MzMikpKQp1aW50NjRfdCBzdmxlbihzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fczY0KSkpCnVpbnQ2NF90IHN2bGVuKHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9zMTYpKSkKdWludDY0X3Qgc3ZsZW4oc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczhfbSkpKQpzdmludDhfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bHNsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmxzbF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bHNsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91OF96KSkpCnN2dWludDhfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zOF96KSkpCnN2aW50OF90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmxzbF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U4X20pKSkKc3Z1aW50OF90IHN2bHNsX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bHNsX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M2NF9tKSkpCnN2aW50NjRfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczE2X20pKSkKc3ZpbnQxNl90IHN2bHNsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91OF94KSkpCnN2dWludDhfdCBzdmxzbF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmxzbF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zOF94KSkpCnN2aW50OF90IHN2bHNsX3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczMyX3gpKSkKc3ZpbnQzMl90IHN2bHNsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zNjRfeCkpKQpzdmludDY0X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MxNl94KSkpCnN2aW50MTZfdCBzdmxzbF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczhfeikpKQpzdmludDhfdCBzdmxzbF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MzMl96KSkpCnN2aW50MzJfdCBzdmxzbF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczY0X3opKSkKc3ZpbnQ2NF90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zOF9tKSkpCnN2aW50OF90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91OF94KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zOF94KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91OF96KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zOF96KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczhfbSkpKQpzdmludDhfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczMyX20pKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczE2X20pKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczhfeCkpKQpzdmludDhfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczMyX3gpKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczE2X3gpKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczhfeikpKQpzdmludDhfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczE2X3opKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzcl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U4X20pKSkKc3Z1aW50OF90IHN2bHNyX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bHNyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNyX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzcl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U4X3opKSkKc3Z1aW50OF90IHN2bHNyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bHNyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzcl93aWRlX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91OF94KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91OF96KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWFkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWFkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWFkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zOF9tKSkpCnN2aW50OF90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWFkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1hZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zOF94KSkpCnN2aW50OF90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWFkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1hZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zOF96KSkpCnN2aW50OF90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWFkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWFkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U4X20pKSkKc3Z1aW50OF90IHN2bWFkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWFkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczhfbSkpKQpzdmludDhfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U4X3gpKSkKc3Z1aW50OF90IHN2bWFkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1hZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWFkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczhfeCkpKQpzdmludDhfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MzMl94KSkpCnN2aW50MzJfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M2NF94KSkpCnN2aW50NjRfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MxNl94KSkpCnN2aW50MTZfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U4X3opKSkKc3Z1aW50OF90IHN2bWFkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1hZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MTZfeikpKQpzdnVpbnQxNl90IHN2bWFkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczhfeikpKQpzdmludDhfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MzMl96KSkpCnN2aW50MzJfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M2NF96KSkpCnN2aW50NjRfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MxNl96KSkpCnN2aW50MTZfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4X20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1heF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczhfbSkpKQpzdmludDhfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWF4X20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczhfeCkpKQpzdmludDhfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWF4X3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczhfeikpKQpzdmludDhfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWF4X3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1heF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWF4X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1heF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWF4X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1heF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWF4X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWF4X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MzMl9tKSkpCnN2aW50MzJfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczE2X20pKSkKc3ZpbnQxNl90IHN2bWF4X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MzMl94KSkpCnN2aW50MzJfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWF4X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MzMl96KSkpCnN2aW50MzJfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczE2X3opKSkKc3ZpbnQxNl90IHN2bWF4X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U4X20pKSkKc3Z1aW50OF90IHN2bWF4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWF4X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1heF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U4X3gpKSkKc3Z1aW50OF90IHN2bWF4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWF4X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1heF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U4X3opKSkKc3Z1aW50OF90IHN2bWF4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWF4X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1heF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1fbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heG5tX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1fbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1feChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heG5tX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1feihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtYXhubXYoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2YzMikpKQpmbG9hdDMyX3Qgc3ZtYXhubXYoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm12X2YxNikpKQpmbG9hdDE2X3Qgc3ZtYXhubXYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9mNjQpKSkKZmxvYXQ2NF90IHN2bWF4dihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X2YzMikpKQpmbG9hdDMyX3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfZjE2KSkpCmZsb2F0MTZfdCBzdm1heHYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zOCkpKQppbnQ4X3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfczMyKSkpCmludDMyX3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3M2NCkpKQppbnQ2NF90IHN2bWF4dihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zMTYpKSkKaW50MTZfdCBzdm1heHYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTgpKSkKdWludDhfdCBzdm1heHYoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTMyKSkpCnVpbnQzMl90IHN2bWF4dihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTY0KSkpCnVpbnQ2NF90IHN2bWF4dihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTE2KSkpCnVpbnQxNl90IHN2bWF4dihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWluX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWluX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWluX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWluX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWluX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bWluX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U4X20pKSkKc3Z1aW50OF90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5feChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtaW5feihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1pbl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWluX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWluX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWluX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zOF9tKSkpCnN2aW50OF90IHN2bWluX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWluX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zOF94KSkpCnN2aW50OF90IHN2bWluX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWluX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MxNl94KSkpCnN2aW50MTZfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zOF96KSkpCnN2aW50OF90IHN2bWluX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWluX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MxNl96KSkpCnN2aW50MTZfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91OF9tKSkpCnN2dWludDhfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91OF94KSkpCnN2dWludDhfdCBzdm1pbl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1pbl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91OF96KSkpCnN2dWludDhfdCBzdm1pbl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1pbl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWlubm1fbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWlubm1feChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWlubm1feihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1feChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1feihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mNjQpKSkKZmxvYXQ2NF90IHN2bWlubm12KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mMzIpKSkKZmxvYXQzMl90IHN2bWlubm12KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mMTYpKSkKZmxvYXQxNl90IHN2bWlubm12KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfZjY0KSkpCmZsb2F0NjRfdCBzdm1pbnYoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9mMzIpKSkKZmxvYXQzMl90IHN2bWludihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X2YxNikpKQpmbG9hdDE2X3Qgc3ZtaW52KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczgpKSkKaW50OF90IHN2bWludihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3MzMikpKQppbnQzMl90IHN2bWludihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9zNjQpKSkKaW50NjRfdCBzdm1pbnYoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczE2KSkpCmludDE2X3Qgc3ZtaW52KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3U4KSkpCnVpbnQ4X3Qgc3ZtaW52KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3UzMikpKQp1aW50MzJfdCBzdm1pbnYoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3U2NCkpKQp1aW50NjRfdCBzdm1pbnYoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3UxNikpKQp1aW50MTZfdCBzdm1pbnYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxhX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxhX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91OF9tKSkpCnN2dWludDhfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWxhX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91OF94KSkpCnN2dWludDhfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxhX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91OF96KSkpCnN2dWludDhfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxhX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWxhX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWxhX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWxhX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zOF9tKSkpCnN2aW50OF90IHN2bWxhX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczMyX20pKSkKc3ZpbnQzMl90IHN2bWxhX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWxhX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczE2X20pKSkKc3ZpbnQxNl90IHN2bWxhX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWxhX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zOF94KSkpCnN2aW50OF90IHN2bWxhX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWxhX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxhX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxhX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MzJfeikpKQpzdnVpbnQzMl90IHN2bWxhX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zOF96KSkpCnN2aW50OF90IHN2bWxhX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczMyX3opKSkKc3ZpbnQzMl90IHN2bWxhX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczY0X3opKSkKc3ZpbnQ2NF90IHN2bWxhX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczE2X3opKSkKc3ZpbnQxNl90IHN2bWxhX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfbGFuZShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYV9sYW5lKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bWxhX2xhbmUoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxzX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sc194KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxzX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sc196KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91OF9tKSkpCnN2dWludDhfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWxzX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91OF94KSkpCnN2dWludDhfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxzX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91OF96KSkpCnN2dWludDhfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxzX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWxzX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1sc194KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWxzX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1sc196KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MzJfbSkpKQpzdnVpbnQzMl90IHN2bWxzX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zOF9tKSkpCnN2aW50OF90IHN2bWxzX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczMyX20pKSkKc3ZpbnQzMl90IHN2bWxzX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWxzX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczE2X20pKSkKc3ZpbnQxNl90IHN2bWxzX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MzJfeCkpKQpzdnVpbnQzMl90IHN2bWxzX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zOF94KSkpCnN2aW50OF90IHN2bWxzX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWxzX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxzX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxzX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MzJfeikpKQpzdnVpbnQzMl90IHN2bWxzX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zOF96KSkpCnN2aW50OF90IHN2bWxzX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczMyX3opKSkKc3ZpbnQzMl90IHN2bWxzX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczY0X3opKSkKc3ZpbnQ2NF90IHN2bWxzX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczE2X3opKSkKc3ZpbnQxNl90IHN2bWxzX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfbGFuZShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc19sYW5lKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bWxzX2xhbmUoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZfYl96KSkpCnN2Ym9vbF90IHN2bW92X3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXNiX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXNiX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXNiX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zOF9tKSkpCnN2aW50OF90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXNiX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1zYl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zOF94KSkpCnN2aW50OF90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bXNiX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1zYl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zOF96KSkpCnN2aW50OF90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXNiX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXNiX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U4X20pKSkKc3Z1aW50OF90IHN2bXNiX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXNiX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczhfbSkpKQpzdmludDhfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U4X3gpKSkKc3Z1aW50OF90IHN2bXNiX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1zYl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U2NF94KSkpCnN2dWludDY0X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXNiX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczhfeCkpKQpzdmludDhfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MzMl94KSkpCnN2aW50MzJfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M2NF94KSkpCnN2aW50NjRfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MxNl94KSkpCnN2aW50MTZfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U4X3opKSkKc3Z1aW50OF90IHN2bXNiX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1zYl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U2NF96KSkpCnN2dWludDY0X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MTZfeikpKQpzdnVpbnQxNl90IHN2bXNiX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczhfeikpKQpzdmludDhfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MzMl96KSkpCnN2aW50MzJfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M2NF96KSkpCnN2aW50NjRfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MxNl96KSkpCnN2aW50MTZfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVsX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVsX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVsX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczhfbSkpKQpzdmludDhfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczhfeCkpKQpzdmludDhfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm11bF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczhfeikpKQpzdmludDhfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVsX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXVsX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm11bF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MzMl9tKSkpCnN2aW50MzJfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczE2X20pKSkKc3ZpbnQxNl90IHN2bXVsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U4X3gpKSkKc3Z1aW50OF90IHN2bXVsX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm11bF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MzMl94KSkpCnN2aW50MzJfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczE2X3gpKSkKc3ZpbnQxNl90IHN2bXVsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U4X3opKSkKc3Z1aW50OF90IHN2bXVsX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm11bF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczE2X3opKSkKc3ZpbnQxNl90IHN2bXVsX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bXVsX2xhbmUoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm11bF9sYW5lKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWxfbGFuZShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczhfeCkpKQpzdmludDhfdCBzdm11bGhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zOF96KSkpCnN2aW50OF90IHN2bXVsaF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91OF96KSkpCnN2dWludDhfdCBzdm11bGhfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zOF9tKSkpCnN2aW50OF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MzMl9tKSkpCnN2aW50MzJfdCBzdm11bGhfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M2NF9tKSkpCnN2aW50NjRfdCBzdm11bGhfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MxNl9tKSkpCnN2aW50MTZfdCBzdm11bGhfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsaF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczE2X3gpKSkKc3ZpbnQxNl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczhfeikpKQpzdmludDhfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMzJfeikpKQpzdmludDMyX3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91OF9tKSkpCnN2dWludDhfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U4X3gpKSkKc3Z1aW50OF90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bGhfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm11bGhfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm11bGhfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MzJfeikpKQpzdnVpbnQzMl90IHN2bXVsaF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsaF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsaF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm11bHhfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bHhfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bHhfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm11bHhfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bHhfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bHhfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm11bHhfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bHhfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bHhfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmFuZF9iX3opKSkKc3Zib29sX3Qgc3ZuYW5kX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5lZ19tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZuZWdfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bmVnX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5lZ194KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5lZ194KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5lZ194KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zOF9tKSkpCnN2aW50OF90IHN2bmVnX20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMzJfbSkpKQpzdmludDMyX3Qgc3ZuZWdfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczY0X20pKSkKc3ZpbnQ2NF90IHN2bmVnX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl9tKSkpCnN2aW50MTZfdCBzdm5lZ19tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zOF94KSkpCnN2aW50OF90IHN2bmVnX3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MzMl94KSkpCnN2aW50MzJfdCBzdm5lZ194KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bmVnX3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMTZfeCkpKQpzdmludDE2X3Qgc3ZuZWdfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZuZWdfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczMyX3opKSkKc3ZpbnQzMl90IHN2bmVnX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfeikpKQpzdmludDY0X3Qgc3ZuZWdfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl96KSkpCnN2aW50MTZfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sc194KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sc196KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc194KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc196KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3JfYl96KSkpCnN2Ym9vbF90IHN2bm9yX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9iX3opKSkKc3Zib29sX3Qgc3Zub3RfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zub3RfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm5vdF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zub3RfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bm90X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczhfbSkpKQpzdmludDhfdCBzdm5vdF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczMyX20pKSkKc3ZpbnQzMl90IHN2bm90X20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF9tKSkpCnN2aW50NjRfdCBzdm5vdF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zub3RfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zub3RfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UzMl94KSkpCnN2dWludDMyX3Qgc3Zub3RfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bm90X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm5vdF94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zub3RfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczMyX3gpKSkKc3ZpbnQzMl90IHN2bm90X3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zNjRfeCkpKQpzdmludDY0X3Qgc3Zub3RfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MxNl94KSkpCnN2aW50MTZfdCBzdm5vdF94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdThfeikpKQpzdnVpbnQ4X3Qgc3Zub3RfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UzMl96KSkpCnN2dWludDMyX3Qgc3Zub3RfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bm90X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm5vdF96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M4X3opKSkKc3ZpbnQ4X3Qgc3Zub3RfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczMyX3opKSkKc3ZpbnQzMl90IHN2bm90X3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zNjRfeikpKQpzdmludDY0X3Qgc3Zub3RfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MxNl96KSkpCnN2aW50MTZfdCBzdm5vdF96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zvcm5fYl96KSkpCnN2Ym9vbF90IHN2b3JuX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9iX3opKSkKc3Zib29sX3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2b3JyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczhfbSkpKQpzdmludDhfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2b3JyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm9ycl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2b3JyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczhfeCkpKQpzdmludDhfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2b3JyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm9ycl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2b3JyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczhfeikpKQpzdmludDhfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2b3JyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U4X20pKSkKc3Z1aW50OF90IHN2b3JyX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2b3JyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MzMl9tKSkpCnN2aW50MzJfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczE2X20pKSkKc3ZpbnQxNl90IHN2b3JyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U4X3gpKSkKc3Z1aW50OF90IHN2b3JyX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2b3JyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm9ycl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MzMl94KSkpCnN2aW50MzJfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2b3JyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U4X3opKSkKc3Z1aW50OF90IHN2b3JyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91NjRfeikpKQpzdnVpbnQ2NF90IHN2b3JyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm9ycl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MzMl96KSkpCnN2aW50MzJfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zNjRfeikpKQpzdmludDY0X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczE2X3opKSkKc3ZpbnQxNl90IHN2b3JyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3U4KSkpCnVpbnQ4X3Qgc3ZvcnYoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl91MzIpKSkKdWludDMyX3Qgc3ZvcnYoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTY0KSkpCnVpbnQ2NF90IHN2b3J2KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3UxNikpKQp1aW50MTZfdCBzdm9ydihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zOCkpKQppbnQ4X3Qgc3ZvcnYoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3MzMikpKQppbnQzMl90IHN2b3J2KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfczY0KSkpCmludDY0X3Qgc3ZvcnYoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zMTYpKSkKaW50MTZfdCBzdm9ydihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwZmFsc2VfYikpKQpzdmJvb2xfdCBzdnBmYWxzZSgpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwZmlyc3RfYikpKQpzdmJvb2xfdCBzdnBmaXJzdChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91MzJiYXNlKSkpCnZvaWQgc3ZwcmZiX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmYl9nYXRoZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3MzMm9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTMyb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfczY0b2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91NjRvZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91MzJiYXNlKSkpCnZvaWQgc3ZwcmZkX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmZF9nYXRoZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91NjRiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTMyaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91MzJiYXNlKSkpCnZvaWQgc3ZwcmZoX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmaF9nYXRoZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91NjRiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTMyaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91MzJiYXNlKSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTY0YmFzZSkpKQp2b2lkIHN2cHJmd19nYXRoZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91NjRiYXNlX2luZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfczMyaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTMyaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3U2NGluZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxYWRkKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyKSkpCnN2aW50MzJfdCBzdnFhZGQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxYWRkKHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWFkZChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTgpKSkKc3Z1aW50OF90IHN2cWFkZChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZxYWRkKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWFkZChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnFhZGQoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4KSkpCnN2aW50OF90IHN2cWFkZChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MzMikpKQpzdmludDMyX3Qgc3ZxYWRkKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWFkZChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczE2KSkpCnN2aW50MTZfdCBzdnFhZGQoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U4KSkpCnN2dWludDhfdCBzdnFhZGQoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMikpKQpzdnVpbnQzMl90IHN2cWFkZChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjQpKSkKc3Z1aW50NjRfdCBzdnFhZGQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2KSkpCnN2dWludDE2X3Qgc3ZxYWRkKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3MzMikpKQppbnQzMl90IHN2cWRlY2IoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2IoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNiKHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2IodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2JfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjYl9wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2JfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxZGVjYl9wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2JfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2JfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjYl9wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fczMyKSkpCmludDMyX3Qgc3ZxZGVjZChpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fczY0KSkpCmludDY0X3Qgc3ZxZGVjZChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2QodWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjZCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRlY2Qoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWRlY2Qoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNkX3BhdChpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNkX3BhdChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjZF9wYXQodWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNkX3BhdCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfcGF0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZGVjZF9wYXQoc3ZpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZxZGVjZF9wYXQoc3Z1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNoKGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNoKGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjaCh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNoKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3MxNikpKQpzdmludDE2X3Qgc3ZxZGVjaChzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfdTE2KSkpCnN2dWludDE2X3Qgc3ZxZGVjaChzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWRlY2hfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2hfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNoX3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2hfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNoX3BhdChzdmludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNoX3BhdChzdnVpbnQxNl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iOCkpKQppbnQzMl90IHN2cWRlY3BfYjgoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iMzIpKSkKaW50MzJfdCBzdnFkZWNwX2IzMihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczMyX2I2NCkpKQppbnQzMl90IHN2cWRlY3BfYjY0KGludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zMzJfYjE2KSkpCmludDMyX3Qgc3ZxZGVjcF9iMTYoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iOCkpKQppbnQ2NF90IHN2cWRlY3BfYjgoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iMzIpKSkKaW50NjRfdCBzdnFkZWNwX2IzMihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2I2NCkpKQppbnQ2NF90IHN2cWRlY3BfYjY0KGludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zNjRfYjE2KSkpCmludDY0X3Qgc3ZxZGVjcF9iMTYoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iOCkpKQp1aW50MzJfdCBzdnFkZWNwX2I4KHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2IzMikpKQp1aW50MzJfdCBzdnFkZWNwX2IzMih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iNjQpKSkKdWludDMyX3Qgc3ZxZGVjcF9iNjQodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91MzJfYjE2KSkpCnVpbnQzMl90IHN2cWRlY3BfYjE2KHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTY0X2I4KSkpCnVpbnQ2NF90IHN2cWRlY3BfYjgodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjMyKSkpCnVpbnQ2NF90IHN2cWRlY3BfYjMyKHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTY0X2I2NCkpKQp1aW50NjRfdCBzdnFkZWNwX2I2NCh1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iMTYpKSkKdWludDY0X3Qgc3ZxZGVjcF9iMTYodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfczMyKSkpCnN2aW50MzJfdCBzdnFkZWNwKHN2aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRlY3Aoc3ZpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3MxNikpKQpzdmludDE2X3Qgc3ZxZGVjcChzdmludDE2X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfdTMyKSkpCnN2dWludDMyX3Qgc3ZxZGVjcChzdnVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWRlY3Aoc3Z1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNwKHN2dWludDE2X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWN3KGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWN3KGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjdyh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWN3KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3MzMikpKQpzdmludDMyX3Qgc3ZxZGVjdyhzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfdTMyKSkpCnN2dWludDMyX3Qgc3ZxZGVjdyhzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWRlY3dfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY3dfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWN3X3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY3dfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfczMyKSkpCnN2aW50MzJfdCBzdnFkZWN3X3BhdChzdmludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF91MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWN3X3BhdChzdnVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3MzMikpKQppbnQzMl90IHN2cWluY2IoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2IoaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNiKHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2IodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2JfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jYl9wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2JfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxaW5jYl9wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2JfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2JfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jYl9wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fczMyKSkpCmludDMyX3Qgc3ZxaW5jZChpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fczY0KSkpCmludDY0X3Qgc3ZxaW5jZChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2QodWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jZCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWluY2Qoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWluY2Qoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNkX3BhdChpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNkX3BhdChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jZF9wYXQodWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNkX3BhdCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfcGF0X3M2NCkpKQpzdmludDY0X3Qgc3ZxaW5jZF9wYXQoc3ZpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZxaW5jZF9wYXQoc3Z1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNoKGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNoKGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jaCh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNoKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3MxNikpKQpzdmludDE2X3Qgc3ZxaW5jaChzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfdTE2KSkpCnN2dWludDE2X3Qgc3ZxaW5jaChzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWluY2hfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2hfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNoX3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2hfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNoX3BhdChzdmludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNoX3BhdChzdnVpbnQxNl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iOCkpKQppbnQzMl90IHN2cWluY3BfYjgoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iMzIpKSkKaW50MzJfdCBzdnFpbmNwX2IzMihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczMyX2I2NCkpKQppbnQzMl90IHN2cWluY3BfYjY0KGludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zMzJfYjE2KSkpCmludDMyX3Qgc3ZxaW5jcF9iMTYoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iOCkpKQppbnQ2NF90IHN2cWluY3BfYjgoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iMzIpKSkKaW50NjRfdCBzdnFpbmNwX2IzMihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2I2NCkpKQppbnQ2NF90IHN2cWluY3BfYjY0KGludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zNjRfYjE2KSkpCmludDY0X3Qgc3ZxaW5jcF9iMTYoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iOCkpKQp1aW50MzJfdCBzdnFpbmNwX2I4KHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2IzMikpKQp1aW50MzJfdCBzdnFpbmNwX2IzMih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iNjQpKSkKdWludDMyX3Qgc3ZxaW5jcF9iNjQodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91MzJfYjE2KSkpCnVpbnQzMl90IHN2cWluY3BfYjE2KHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTY0X2I4KSkpCnVpbnQ2NF90IHN2cWluY3BfYjgodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjMyKSkpCnVpbnQ2NF90IHN2cWluY3BfYjMyKHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTY0X2I2NCkpKQp1aW50NjRfdCBzdnFpbmNwX2I2NCh1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iMTYpKSkKdWludDY0X3Qgc3ZxaW5jcF9iMTYodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfczMyKSkpCnN2aW50MzJfdCBzdnFpbmNwKHN2aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWluY3Aoc3ZpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3MxNikpKQpzdmludDE2X3Qgc3ZxaW5jcChzdmludDE2X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfdTMyKSkpCnN2dWludDMyX3Qgc3ZxaW5jcChzdnVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWluY3Aoc3Z1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNwKHN2dWludDE2X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmN3KGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmN3KGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jdyh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmN3KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3MzMikpKQpzdmludDMyX3Qgc3ZxaW5jdyhzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfdTMyKSkpCnN2dWludDMyX3Qgc3ZxaW5jdyhzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWluY3dfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY3dfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmN3X3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY3dfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfczMyKSkpCnN2aW50MzJfdCBzdnFpbmN3X3BhdChzdmludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF91MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmN3X3BhdChzdnVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczgpKSkKc3ZpbnQ4X3Qgc3Zxc3ViKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyKSkpCnN2aW50MzJfdCBzdnFzdWIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zxc3ViKHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXN1YihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTgpKSkKc3Z1aW50OF90IHN2cXN1YihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zxc3ViKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cXN1YihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnFzdWIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4KSkpCnN2aW50OF90IHN2cXN1YihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MzMikpKQpzdmludDMyX3Qgc3Zxc3ViKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXN1YihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczE2KSkpCnN2aW50MTZfdCBzdnFzdWIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U4KSkpCnN2dWludDhfdCBzdnFzdWIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMikpKQpzdnVpbnQzMl90IHN2cXN1YihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjQpKSkKc3Z1aW50NjRfdCBzdnFzdWIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2KSkpCnN2dWludDE2X3Qgc3Zxc3ViKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U4X20pKSkKc3Z1aW50OF90IHN2cmJpdF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJiaXRfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJiaXRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJiaXRfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczhfbSkpKQpzdmludDhfdCBzdnJiaXRfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyYml0X20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyYml0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZyYml0X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91OF94KSkpCnN2dWludDhfdCBzdnJiaXRfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmJpdF94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmJpdF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmJpdF94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF94KSkpCnN2aW50OF90IHN2cmJpdF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmJpdF94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M2NF94KSkpCnN2aW50NjRfdCBzdnJiaXRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZyYml0X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczhfeikpKQpzdmludDhfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MzMl96KSkpCnN2aW50MzJfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zNjRfeikpKQpzdmludDY0X3Qgc3ZyYml0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczE2X3opKSkKc3ZpbnQxNl90IHN2cmJpdF96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZWNwZShzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJlY3BlKHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cmVjcGUoc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZWNwcyhzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNwcyhzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwc19mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNwcyhzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2cmVjcHhfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2cmVjcHhfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnJlY3B4X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2cmVjcHhfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTgpKSkKc3Z1aW50OF90IHN2cmV2KHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91MzIpKSkKc3Z1aW50MzJfdCBzdnJldihzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3U2NCkpKQpzdnVpbnQ2NF90IHN2cmV2KHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTE2KSkpCnN2dWludDE2X3Qgc3ZyZXYoc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zOCkpKQpzdmludDhfdCBzdnJldihzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZXYoc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cmV2KHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2YxNikpKQpzdmZsb2F0MTZfdCBzdnJldihzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zMzIpKSkKc3ZpbnQzMl90IHN2cmV2KHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zNjQpKSkKc3ZpbnQ2NF90IHN2cmV2KHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zMTYpKSkKc3ZpbnQxNl90IHN2cmV2KHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJldmJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldmJfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJldmJfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX20pKSkKc3ZpbnQzMl90IHN2cmV2Yl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2Yl9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczE2X20pKSkKc3ZpbnQxNl90IHN2cmV2Yl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJldmJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldmJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJldmJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmV2Yl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3M2NF94KSkpCnN2aW50NjRfdCBzdnJldmJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyZXZiX3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJldmJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJldmJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJldmJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczMyX3opKSkKc3ZpbnQzMl90IHN2cmV2Yl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3M2NF96KSkpCnN2aW50NjRfdCBzdnJldmJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfeikpKQpzdmludDE2X3Qgc3ZyZXZiX3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJldmhfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldmhfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczMyX20pKSkKc3ZpbnQzMl90IHN2cmV2aF9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2aF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJldmhfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldmhfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmV2aF94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3M2NF94KSkpCnN2aW50NjRfdCBzdnJldmhfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmV2aF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2aF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfeikpKQpzdmludDMyX3Qgc3ZyZXZoX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmV2aF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyZXZ3X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF9tKSkpCnN2aW50NjRfdCBzdnJldndfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyZXZ3X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF94KSkpCnN2aW50NjRfdCBzdnJldndfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2d191NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2d196KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2d19zNjRfeikpKQpzdmludDY0X3Qgc3ZyZXZ3X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50YV9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50YV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludGFfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50YV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50aV9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50aV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludGlfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50aV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludG1fbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50bV9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludG1feChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludG1feihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludG5fbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50bl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludG5feChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludG5feihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50bl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50cF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50cF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHBfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50cF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50eF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50eF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHhfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50eF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyaW50el9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50el94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmludHpfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyaW50el96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zyc3FydGUoc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cnNxcnRlKHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX2YxNikpKQpzdmZsb2F0MTZfdCBzdnJzcXJ0ZShzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0c19mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Zyc3FydHMoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRzX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJzcXJ0cyhzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydHNfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cnNxcnRzKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c2NhbGVfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c2NhbGVfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9iKSkpCnN2Ym9vbF90IHN2c2VsKHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfdTgpKSkKc3Z1aW50OF90IHN2c2VsKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91MzIpKSkKc3Z1aW50MzJfdCBzdnNlbChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91NjQpKSkKc3Z1aW50NjRfdCBzdnNlbChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91MTYpKSkKc3Z1aW50MTZfdCBzdnNlbChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9zOCkpKQpzdmludDhfdCBzdnNlbChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnNlbChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2YzMikpKQpzdmZsb2F0MzJfdCBzdnNlbChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2YxNikpKQpzdmZsb2F0MTZfdCBzdnNlbChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3MzMikpKQpzdmludDMyX3Qgc3ZzZWwoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3M2NCkpKQpzdmludDY0X3Qgc3ZzZWwoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3MxNikpKQpzdmludDE2X3Qgc3ZzZWwoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml91OCkpKQpzdnVpbnQ4eDJfdCBzdnNldDIoc3Z1aW50OHgyX3QsIHVpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3UzMikpKQpzdnVpbnQzMngyX3Qgc3ZzZXQyKHN2dWludDMyeDJfdCwgdWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZzZXQyKHN2dWludDY0eDJfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3UxNikpKQpzdnVpbnQxNngyX3Qgc3ZzZXQyKHN2dWludDE2eDJfdCwgdWludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3M4KSkpCnN2aW50OHgyX3Qgc3ZzZXQyKHN2aW50OHgyX3QsIHVpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjY0KSkpCnN2ZmxvYXQ2NHgyX3Qgc3ZzZXQyKHN2ZmxvYXQ2NHgyX3QsIHVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZzZXQyKHN2ZmxvYXQzMngyX3QsIHVpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZzZXQyKHN2ZmxvYXQxNngyX3QsIHVpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczMyKSkpCnN2aW50MzJ4Ml90IHN2c2V0MihzdmludDMyeDJfdCwgdWludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczY0KSkpCnN2aW50NjR4Ml90IHN2c2V0MihzdmludDY0eDJfdCwgdWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczE2KSkpCnN2aW50MTZ4Ml90IHN2c2V0MihzdmludDE2eDJfdCwgdWludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfdTgpKSkKc3Z1aW50OHgzX3Qgc3ZzZXQzKHN2dWludDh4M190LCB1aW50NjRfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M191MzIpKSkKc3Z1aW50MzJ4M190IHN2c2V0MyhzdnVpbnQzMngzX3QsIHVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M191NjQpKSkKc3Z1aW50NjR4M190IHN2c2V0MyhzdnVpbnQ2NHgzX3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M191MTYpKSkKc3Z1aW50MTZ4M190IHN2c2V0MyhzdnVpbnQxNngzX3QsIHVpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19zOCkpKQpzdmludDh4M190IHN2c2V0MyhzdmludDh4M190LCB1aW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2c2V0MyhzdmZsb2F0NjR4M190LCB1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2c2V0MyhzdmZsb2F0MzJ4M190LCB1aW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2c2V0MyhzdmZsb2F0MTZ4M190LCB1aW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3MzMikpKQpzdmludDMyeDNfdCBzdnNldDMoc3ZpbnQzMngzX3QsIHVpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3M2NCkpKQpzdmludDY0eDNfdCBzdnNldDMoc3ZpbnQ2NHgzX3QsIHVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3MxNikpKQpzdmludDE2eDNfdCBzdnNldDMoc3ZpbnQxNngzX3QsIHVpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3U4KSkpCnN2dWludDh4NF90IHN2c2V0NChzdnVpbnQ4eDRfdCwgdWludDY0X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTMyKSkpCnN2dWludDMyeDRfdCBzdnNldDQoc3Z1aW50MzJ4NF90LCB1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTY0KSkpCnN2dWludDY0eDRfdCBzdnNldDQoc3Z1aW50NjR4NF90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTE2KSkpCnN2dWludDE2eDRfdCBzdnNldDQoc3Z1aW50MTZ4NF90LCB1aW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfczgpKSkKc3ZpbnQ4eDRfdCBzdnNldDQoc3ZpbnQ4eDRfdCwgdWludDY0X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9mNjQpKSkKc3ZmbG9hdDY0eDRfdCBzdnNldDQoc3ZmbG9hdDY0eDRfdCwgdWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdnNldDQoc3ZmbG9hdDMyeDRfdCwgdWludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdnNldDQoc3ZmbG9hdDE2eDRfdCwgdWludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9zMzIpKSkKc3ZpbnQzMng0X3Qgc3ZzZXQ0KHN2aW50MzJ4NF90LCB1aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZzZXQ0KHN2aW50NjR4NF90LCB1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZzZXQ0KHN2aW50MTZ4NF90LCB1aW50NjRfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3U4KSkpCnN2dWludDhfdCBzdnNwbGljZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTE2KSkpCnN2dWludDE2X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfczgpKSkKc3ZpbnQ4X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9zMzIpKSkKc3ZpbnQzMl90IHN2c3BsaWNlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9zNjQpKSkKc3ZpbnQ2NF90IHN2c3BsaWNlKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9zMTYpKSkKc3ZpbnQxNl90IHN2c3BsaWNlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzcXJ0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzcXJ0X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzcXJ0X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzcXJ0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnNxcnRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3FydF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzcXJ0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnNxcnRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3FydF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91OCkpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91MzIpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91NjQpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91MTYpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zOCkpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfZjY0KSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9mMzIpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2YxNikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfczMyKSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3M2NCkpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zMTYpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJpbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyaW5kZXhfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0aW5kZXhfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zMzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJvZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRvZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91OCkpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3U2NCkpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91MTYpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fczgpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mNjQpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mMzIpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mMTYpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zMzIpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3M2NCkpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fczE2KSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3MzMikpKQp2b2lkIHN2c3QxYihzdmJvb2xfdCwgaW50OF90ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfczY0KSkpCnZvaWQgc3ZzdDFiKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zMTYpKSkKdm9pZCBzdnN0MWIoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3UzMikpKQp2b2lkIHN2c3QxYihzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl91NjQpKSkKdm9pZCBzdnN0MWIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdTE2KSkpCnZvaWQgc3ZzdDFiKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zMzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfczMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDhfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDhfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3MzMikpKQp2b2lkIHN2c3QxYl92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3M2NCkpKQp2b2lkIHN2c3QxYl92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3MxNikpKQp2b2lkIHN2c3QxYl92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3UzMikpKQp2b2lkIHN2c3QxYl92bnVtKHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDFiX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV91MTYpKSkKdm9pZCBzdnN0MWJfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zMzIpKSkKdm9pZCBzdnN0MWgoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zNjQpKSkKdm9pZCBzdnN0MWgoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF91MzIpKSkKdm9pZCBzdnN0MWgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3U2NCkpKQp2b2lkIHN2c3QxaChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3MzMmluZGV4X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3MzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3M2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3MzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdm51bV9zMzIpKSkKdm9pZCBzdnN0MWhfdm51bShzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDFoX3ZudW0oc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF92bnVtX3UzMikpKQp2b2lkIHN2c3QxaF92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF92bnVtX3U2NCkpKQp2b2lkIHN2c3QxaF92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zNjQpKSkKdm9pZCBzdnN0MXcoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd191NjQpKSkKdm9pZCBzdnN0MXcoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3M2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3ZudW1fczY0KSkpCnZvaWQgc3ZzdDF3X3ZudW0oc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd192bnVtX3U2NCkpKQp2b2lkIHN2c3Qxd192bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3U4KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTMyKSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml91NjQpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjR4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3UxNikpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczgpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfZjY0KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjR4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX2YzMikpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9mMTYpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczMyKSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczY0KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczE2KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV91OCkpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV91MzIpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV91NjQpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV91MTYpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9zOCkpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDh4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9mMzIpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX2YxNikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3M2NCkpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9zMTYpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3U4KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdTMyKSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M191NjQpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjR4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3UxNikpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfczgpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfZjY0KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjR4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX2YzMikpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19mMTYpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfczMyKSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfczY0KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfczE2KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91OCkpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91MzIpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91NjQpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91MTYpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zOCkpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDh4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9mMzIpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX2YxNikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3M2NCkpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zMTYpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3U4KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTMyKSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF91NjQpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjR4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3UxNikpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczgpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfZjY0KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjR4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X2YzMikpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9mMTYpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczMyKSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczY0KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczE2KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91OCkpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91MzIpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91NjQpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91MTYpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zOCkpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDh4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9mMzIpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX2YxNikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fczMyKSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3M2NCkpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zMTYpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdTgpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3UzMikpKQp2b2lkIHN2c3RudDEoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91NjQpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdTE2KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3M4KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjY0KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjMyKSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfZjE2KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfczMyKSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zNjQpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3MxNikpKQp2b2lkIHN2c3RudDEoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91OCkpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3UzMikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91MTYpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3M4KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2Y2NCkpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9mMzIpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3MzMikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3M2NCkpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3MxNikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3ViX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3ViX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3ViX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91OF9tKSkpCnN2dWludDhfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3ViX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zOF9tKSkpCnN2aW50OF90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91OF94KSkpCnN2dWludDhfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3ViX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zOF94KSkpCnN2aW50OF90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91OF96KSkpCnN2dWludDhfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3ViX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zOF96KSkpCnN2aW50OF90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c3ViX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3ViX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3ViX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3ViX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczhfbSkpKQpzdmludDhfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczMyX20pKSkKc3ZpbnQzMl90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M2NF9tKSkpCnN2aW50NjRfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3ViX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczhfeCkpKQpzdmludDhfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczMyX3gpKSkKc3ZpbnQzMl90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2c3ViX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczhfeikpKQpzdmludDhfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczMyX3opKSkKc3ZpbnQzMl90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M2NF96KSkpCnN2aW50NjRfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zOF9tKSkpCnN2aW50OF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczhfeCkpKQpzdmludDhfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91OF96KSkpCnN2dWludDhfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U4X20pKSkKc3Z1aW50OF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczhfbSkpKQpzdmludDhfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91OF94KSkpCnN2dWludDhfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MTZfeikpKQpzdnVpbnQxNl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zOF96KSkpCnN2aW50OF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MzMl96KSkpCnN2aW50MzJfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M2NF96KSkpCnN2aW50NjRfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MxNl96KSkpCnN2aW50MTZfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTgpKSkKc3Z1aW50OF90IHN2dGJsKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3UzMikpKQpzdnVpbnQzMl90IHN2dGJsKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTY0KSkpCnN2dWludDY0X3Qgc3Z0Ymwoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF91MTYpKSkKc3Z1aW50MTZfdCBzdnRibChzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3M4KSkpCnN2aW50OF90IHN2dGJsKHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dGJsKHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRibChzdmZsb2F0MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0Ymwoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfczMyKSkpCnN2aW50MzJfdCBzdnRibChzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfczY0KSkpCnN2aW50NjRfdCBzdnRibChzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfczE2KSkpCnN2aW50MTZfdCBzdnRibChzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0bWFkX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRtYWQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRtYWRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dG1hZChzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dG1hZF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0bWFkKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3U4KSkpCnN2dWludDhfdCBzdnRybjEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4xKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3M4KSkpCnN2aW50OF90IHN2dHJuMShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4xKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4xKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfczE2KSkpCnN2aW50MTZfdCBzdnRybjEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3U4KSkpCnN2dWludDhfdCBzdnRybjIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4yKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3M4KSkpCnN2aW50OF90IHN2dHJuMihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjIoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4yKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4yKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfczE2KSkpCnN2aW50MTZfdCBzdnRybjIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c211bF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0c211bChzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzbXVsX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRzbXVsKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNtdWxfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHNtdWwoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c3NlbF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0c3NlbChzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzc2VsX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRzc2VsKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNzZWxfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHNzZWwoc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBraGlfYikpKQpzdmJvb2xfdCBzdnVucGtoaShzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zMzIpKSkKc3ZpbnQzMl90IHN2dW5wa2hpKHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zNjQpKSkKc3ZpbnQ2NF90IHN2dW5wa2hpKHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9zMTYpKSkKc3ZpbnQxNl90IHN2dW5wa2hpKHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3UzMikpKQpzdnVpbnQzMl90IHN2dW5wa2hpKHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBraGlfdTY0KSkpCnN2dWludDY0X3Qgc3Z1bnBraGkoc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV91MTYpKSkKc3Z1aW50MTZfdCBzdnVucGtoaShzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fYikpKQpzdmJvb2xfdCBzdnVucGtsbyhzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zMzIpKSkKc3ZpbnQzMl90IHN2dW5wa2xvKHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zNjQpKSkKc3ZpbnQ2NF90IHN2dW5wa2xvKHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zMTYpKSkKc3ZpbnQxNl90IHN2dW5wa2xvKHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3UzMikpKQpzdnVpbnQzMl90IHN2dW5wa2xvKHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fdTY0KSkpCnN2dWludDY0X3Qgc3Z1bnBrbG8oc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb191MTYpKSkKc3Z1aW50MTZfdCBzdnVucGtsbyhzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3U4KSkpCnN2dWludDhfdCBzdnV6cDEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3M4KSkpCnN2aW50OF90IHN2dXpwMShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnV6cDEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z1enAxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dXpwMShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3MzMikpKQpzdmludDMyX3Qgc3Z1enAxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9zNjQpKSkKc3ZpbnQ2NF90IHN2dXpwMShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczE2KSkpCnN2aW50MTZfdCBzdnV6cDEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3U4KSkpCnN2dWludDhfdCBzdnV6cDIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAyKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3M4KSkpCnN2aW50OF90IHN2dXpwMihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnV6cDIoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z1enAyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dXpwMihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3MzMikpKQpzdmludDMyX3Qgc3Z1enAyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9zNjQpKSkKc3ZpbnQ2NF90IHN2dXpwMihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczE2KSkpCnN2aW50MTZfdCBzdnV6cDIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjgoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NChpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMTYoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMzIoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNihpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I4KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjE2KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IzMih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I4X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjgodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjQodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMTZfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMTYodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjMyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjMyKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjhfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iOChpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IxNl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IxNihpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IzMl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IzMihpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3U4KSkpCnN2dWludDhfdCBzdnppcDEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3UzMikpKQpzdnVpbnQzMl90IHN2emlwMShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV91NjQpKSkKc3Z1aW50NjRfdCBzdnppcDEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTE2KSkpCnN2dWludDE2X3Qgc3Z6aXAxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3M4KSkpCnN2aW50OF90IHN2emlwMShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczE2KSkpCnN2aW50MTZfdCBzdnppcDEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3U4KSkpCnN2dWludDhfdCBzdnppcDIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3UzMikpKQpzdnVpbnQzMl90IHN2emlwMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl91NjQpKSkKc3Z1aW50NjRfdCBzdnppcDIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTE2KSkpCnN2dWludDE2X3Qgc3Z6aXAyKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3M4KSkpCnN2aW50OF90IHN2emlwMihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDIoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczE2KSkpCnN2aW50MTZfdCBzdnppcDIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwoKI2lmIGRlZmluZWQgKF9fQVJNX0ZFQVRVUkVfU1ZFMl9CSVRQRVJNKQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZGVwX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZGVwX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZGVwX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZiZGVwX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3U4KSkpCnN2dWludDhfdCBzdmJkZXBfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZGVwX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmRlcF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF91MTYpKSkKc3Z1aW50MTZfdCBzdmJkZXBfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZXh0X25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZXh0X25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZXh0X25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZiZXh0X25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3U4KSkpCnN2dWludDhfdCBzdmJleHRfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZXh0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YmV4dF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF91MTYpKSkKc3Z1aW50MTZfdCBzdmJleHRfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZ3JwX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZ3JwX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZ3JwX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZiZ3JwX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3U4KSkpCnN2dWludDhfdCBzdmJncnBfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZ3JwX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmdycF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF91MTYpKSkKc3Z1aW50MTZfdCBzdmJncnBfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTgpKSkKc3Z1aW50OF90IHN2YmRlcChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZGVwKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmRlcChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJkZXAoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3U4KSkpCnN2dWludDhfdCBzdmJkZXAoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3UzMikpKQpzdnVpbnQzMl90IHN2YmRlcChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF91NjQpKSkKc3Z1aW50NjRfdCBzdmJkZXAoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTE2KSkpCnN2dWludDE2X3Qgc3ZiZGVwKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTgpKSkKc3Z1aW50OF90IHN2YmV4dChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZXh0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmV4dChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJleHQoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3U4KSkpCnN2dWludDhfdCBzdmJleHQoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3UzMikpKQpzdnVpbnQzMl90IHN2YmV4dChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF91NjQpKSkKc3Z1aW50NjRfdCBzdmJleHQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZiZXh0KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTgpKSkKc3Z1aW50OF90IHN2YmdycChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiZ3JwKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmdycChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJncnAoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3U4KSkpCnN2dWludDhfdCBzdmJncnAoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3UzMikpKQpzdnVpbnQzMl90IHN2YmdycChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF91NjQpKSkKc3Z1aW50NjRfdCBzdmJncnAoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTE2KSkpCnN2dWludDE2X3Qgc3ZiZ3JwKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwojZW5kaWYgIC8vZGVmaW5lZCAoX19BUk1fRkVBVFVSRV9TVkUyX0JJVFBFUk0pCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczgpKSkKc3ZpbnQ4X3Qgc3ZhYmFfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczMyKSkpCnN2aW50MzJfdCBzdmFiYV9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczY0KSkpCnN2aW50NjRfdCBzdmFiYV9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczE2KSkpCnN2aW50MTZfdCBzdmFiYV9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTgpKSkKc3Z1aW50OF90IHN2YWJhX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYV9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9zOCkpKQpzdmludDhfdCBzdmFiYV9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfczMyKSkpCnN2aW50MzJfdCBzdmFiYV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTgpKSkKc3Z1aW50OF90IHN2YWJhX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fczMyKSkpCnN2aW50MzJfdCBzdmFiYWxiX25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFsYl9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbGJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbGJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFsYl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWxiX25fdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfczMyKSkpCnN2aW50MzJfdCBzdmFiYWxiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhbGJfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3MxNikpKQpzdmludDE2X3Qgc3ZhYmFsYl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbGJfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhbGJfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhbGJfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsdF9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhbHRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fczE2KSkpCnN2aW50MTZfdCBzdmFiYWx0X25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWx0X25fdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhbHRfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFsdF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsdF9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfczY0KSkpCnN2aW50NjRfdCBzdmFiYWx0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbHRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWx0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWx0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWx0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmRsYl9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fczE2KSkpCnN2aW50MTZfdCBzdmFiZGxiX25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsYl9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiZGxiX25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbGJfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbGJfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJkbGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJkbGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsYl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmRsYl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmRsYl91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fczMyKSkpCnN2aW50MzJfdCBzdmFiZGx0X25fczMyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJkbHRfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhYmRsdF9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbHRfbl91MzIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmRsdF9uX3U2NChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiZGx0X25fdTE2KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczMyKSkpCnN2aW50MzJfdCBzdmFiZGx0X3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczY0KSkpCnN2aW50NjRfdCBzdmFiZGx0X3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczE2KSkpCnN2aW50MTZfdCBzdmFiZGx0X3MxNihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbHRfdTMyKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbHRfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbHRfdTE2KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhZGFscF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkYWxwX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRhbHBfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkYWxwX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWRhbHBfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGFscF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczMyX3opKSkKc3ZpbnQzMl90IHN2YWRhbHBfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhZGFscF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MxNl96KSkpCnN2aW50MTZfdCBzdmFkYWxwX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRhbHBfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhZGFscF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkYWxwX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGFscF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkYWxwX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRhbHBfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFkYWxwX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWRhbHBfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhZGFscF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRjbGJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkY2xiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsYl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGNsYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2x0X25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRjbHRfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkY2x0X3UzMikpKQpzdnVpbnQzMl90IHN2YWRjbHRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkY2x0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRjbHRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2YWRkaG5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdmFkZGhuYl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fdTE2KSkpCnN2dWludDhfdCBzdmFkZGhuYl9uX3UxNihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fczMyKSkpCnN2aW50MTZfdCBzdmFkZGhuYl9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobmJfbl9zNjQoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobmJfbl9zMTYoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfdTMyKSkpCnN2dWludDE2X3Qgc3ZhZGRobmJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl91NjQpKSkKc3Z1aW50MzJfdCBzdmFkZGhuYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3ZhZGRobmJfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9zMzIpKSkKc3ZpbnQxNl90IHN2YWRkaG5iX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobmJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfczE2KSkpCnN2aW50OF90IHN2YWRkaG5iX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fdTMyKSkpCnN2dWludDE2X3Qgc3ZhZGRobnRfbl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG50X25fdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl91MTYpKSkKc3Z1aW50OF90IHN2YWRkaG50X25fdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZhZGRobnRfbl9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobnRfbl9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3MxNikpKQpzdmludDhfdCBzdmFkZGhudF9uX3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfdTMyKSkpCnN2dWludDE2X3Qgc3ZhZGRobnRfdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF91NjQpKSkKc3Z1aW50MzJfdCBzdmFkZGhudF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3UxNikpKQpzdnVpbnQ4X3Qgc3ZhZGRobnRfdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3MzMikpKQpzdmludDE2X3Qgc3ZhZGRobnRfczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9zNjQpKSkKc3ZpbnQzMl90IHN2YWRkaG50X3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfczE2KSkpCnN2aW50OF90IHN2YWRkaG50X3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fczMyKSkpCnN2aW50MzJfdCBzdmFkZGxiX25fczMyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYl9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRkbGJfbl91MzIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsYl9uX3U2NChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGxiX25fdTE2KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfczMyKSkpCnN2aW50MzJfdCBzdmFkZGxiX3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfczY0KSkpCnN2aW50NjRfdCBzdmFkZGxiX3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfczE2KSkpCnN2aW50MTZfdCBzdmFkZGxiX3MxNihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3UzMikpKQpzdnVpbnQzMl90IHN2YWRkbGJfdTMyKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkbGJfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkbGJfdTE2KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGJ0X25fczMyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdmFkZGxidF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYnRfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsYnRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfczY0KSkpCnN2aW50NjRfdCBzdmFkZGxidF9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbGJ0X3MxNihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fczMyKSkpCnN2aW50MzJfdCBzdmFkZGx0X25fczMyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbHRfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsdF9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRkbHRfbl91MzIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsdF9uX3U2NChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGx0X25fdTE2KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfczMyKSkpCnN2aW50MzJfdCBzdmFkZGx0X3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfczY0KSkpCnN2aW50NjRfdCBzdmFkZGx0X3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfczE2KSkpCnN2aW50MTZfdCBzdmFkZGx0X3MxNihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3UzMikpKQpzdnVpbnQzMl90IHN2YWRkbHRfdTMyKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkbHRfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3UxNikpKQpzdnVpbnQxNl90IHN2YWRkbHRfdTE2KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWRkcF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWRkcF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWRkcF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWRkcF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWRkcF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWRkcF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3U4X20pKSkKc3Z1aW50OF90IHN2YWRkcF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRkcF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkcF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWRkcF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zOF9tKSkpCnN2aW50OF90IHN2YWRkcF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczMyX20pKSkKc3ZpbnQzMl90IHN2YWRkcF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczY0X20pKSkKc3ZpbnQ2NF90IHN2YWRkcF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkcF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhZGRwX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGRwX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhZGRwX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhZGRwX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhZGRwX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGRwX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRwX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGRwX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkd2Jfbl9zMzIoc3ZpbnQzMl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGR3Yl9uX3M2NChzdmludDY0X3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fczE2KSkpCnN2aW50MTZfdCBzdmFkZHdiX25fczE2KHN2aW50MTZfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRkd2Jfbl91MzIoc3Z1aW50MzJfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGR3Yl9uX3U2NChzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHdiX25fdTE2KHN2dWludDE2X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3Yl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGR3Yl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3MxNikpKQpzdmludDE2X3Qgc3ZhZGR3Yl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3Yl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGR3Yl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGR3Yl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3dF9uX3MzMihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fczY0KSkpCnN2aW50NjRfdCBzdmFkZHd0X25fczY0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkd3Rfbl9zMTYoc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3dF9uX3UzMihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHd0X25fdTY0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkd3Rfbl91MTYoc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczMyKSkpCnN2aW50MzJfdCBzdmFkZHd0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczY0KSkpCnN2aW50NjRfdCBzdmFkZHd0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczE2KSkpCnN2aW50MTZfdCBzdmFkZHd0X3MxNihzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHd0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHd0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHd0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiY2F4X25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJjYXhfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJjYXhfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJjYXhfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zOCkpKQpzdmludDhfdCBzdmJjYXhfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3MzMikpKQpzdmludDMyX3Qgc3ZiY2F4X25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X25fczY0KSkpCnN2aW50NjRfdCBzdmJjYXhfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YmNheF9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91OCkpKQpzdnVpbnQ4X3Qgc3ZiY2F4X3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZiY2F4X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3U2NCkpKQpzdnVpbnQ2NF90IHN2YmNheF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91MTYpKSkKc3Z1aW50MTZfdCBzdmJjYXhfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczgpKSkKc3ZpbnQ4X3Qgc3ZiY2F4X3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczMyKSkpCnN2aW50MzJfdCBzdmJjYXhfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczY0KSkpCnN2aW50NjRfdCBzdmJjYXhfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczE2KSkpCnN2aW50MTZfdCBzdmJjYXhfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTgpKSkKc3Z1aW50OF90IHN2YnNsMW5fbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbDFuX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsMW5fbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wxbl9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl9zOCkpKQpzdmludDhfdCBzdmJzbDFuX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fczMyKSkpCnN2aW50MzJfdCBzdmJzbDFuX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wxbl9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsMW5fbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3U4KSkpCnN2dWludDhfdCBzdmJzbDFuX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsMW5fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsMW5fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsMW5fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3M4KSkpCnN2aW50OF90IHN2YnNsMW5fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczMyKSkpCnN2aW50MzJfdCBzdmJzbDFuX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsMW5fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3MxNikpKQpzdmludDE2X3Qgc3Zic2wxbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wybl9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsMm5fbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wybl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDJuX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3M4KSkpCnN2aW50OF90IHN2YnNsMm5fbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMm5fbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczY0KSkpCnN2aW50NjRfdCBzdmJzbDJuX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3MxNikpKQpzdmludDE2X3Qgc3Zic2wybl9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fdTgpKSkKc3Z1aW50OF90IHN2YnNsMm5fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wybl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wybl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wybl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wybl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMm5fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wybl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fczE2KSkpCnN2aW50MTZfdCBzdmJzbDJuX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2xfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2xfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczgpKSkKc3ZpbnQ4X3Qgc3Zic2xfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczMyKSkpCnN2aW50MzJfdCBzdmJzbF9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczY0KSkpCnN2aW50NjRfdCBzdmJzbF9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczE2KSkpCnN2aW50MTZfdCBzdmJzbF9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3U4KSkpCnN2dWludDhfdCBzdmJzbF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfdTMyKSkpCnN2dWludDMyX3Qgc3Zic2xfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfczgpKSkKc3ZpbnQ4X3Qgc3Zic2xfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3MzMikpKQpzdmludDMyX3Qgc3Zic2xfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfczE2KSkpCnN2aW50MTZfdCBzdmJzbF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91OCkpKQpzdnVpbnQ4X3Qgc3ZjYWRkX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91MzIpKSkKc3Z1aW50MzJfdCBzdmNhZGRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y2FkZF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfdTE2KSkpCnN2dWludDE2X3Qgc3ZjYWRkX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zOCkpKQpzdmludDhfdCBzdmNhZGRfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zMzIpKSkKc3ZpbnQzMl90IHN2Y2FkZF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3M2NCkpKQpzdmludDY0X3Qgc3ZjYWRkX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfczE2KSkpCnN2aW50MTZfdCBzdmNhZGRfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2RvdF9zMzIpKSkKc3ZpbnQzMl90IHN2Y2RvdF9zMzIoc3ZpbnQzMl90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X3M2NCkpKQpzdmludDY0X3Qgc3ZjZG90X3M2NChzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2RvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZjZG90X2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNkb3RfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2RvdF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfdTgpKSkKc3Z1aW50OF90IHN2Y21sYV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91MzIpKSkKc3Z1aW50MzJfdCBzdmNtbGFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y21sYV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbWxhX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zOCkpKQpzdmludDhfdCBzdmNtbGFfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfczMyKSkpCnN2aW50MzJfdCBzdmNtbGFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3M2NCkpKQpzdmludDY0X3Qgc3ZjbWxhX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zMTYpKSkKc3ZpbnQxNl90IHN2Y21sYV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmNtbGFfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbWxhX2xhbmVfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZjbWxhX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZjbWxhX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bHRfZjMyX2YxNl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0bHRfZjMyX2YxNl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2YzMl9mMTZfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dGx0X2YzMl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2Y2NF9mMzJfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dGx0X2Y2NF9mMzJfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRsdF9mNjRfZjMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRsdF9mNjRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRudF9mMTZfZjMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRudF9mMTZfZjMyX20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0bnRfZjMyX2Y2NF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eF9mMzJfZjY0X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0eF9mMzJfZjY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnR4X2YzMl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhfZjMyX2Y2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eF9mMzJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnR4bnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eG50X2YzMl9mNjRfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTgpKSkKc3Z1aW50OF90IHN2ZW9yM19uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3IzX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3IzX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3IzX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczgpKSkKc3ZpbnQ4X3Qgc3Zlb3IzX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9yM19uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3IzX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczE2KSkpCnN2aW50MTZfdCBzdmVvcjNfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfdTgpKSkKc3Z1aW50OF90IHN2ZW9yM191OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9yM191MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191NjQpKSkKc3Z1aW50NjRfdCBzdmVvcjNfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3IzX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3M4KSkpCnN2aW50OF90IHN2ZW9yM19zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3MzMikpKQpzdmludDMyX3Qgc3Zlb3IzX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3IzX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3MxNikpKQpzdmludDE2X3Qgc3Zlb3IzX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3U4KSkpCnN2dWludDhfdCBzdmVvcmJ0X25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3JidF9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcmJ0X25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3UxNikpKQpzdnVpbnQxNl90IHN2ZW9yYnRfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczgpKSkKc3ZpbnQ4X3Qgc3Zlb3JidF9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3MzMikpKQpzdmludDMyX3Qgc3Zlb3JidF9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9yYnRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczE2KSkpCnN2aW50MTZfdCBzdmVvcmJ0X25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91OCkpKQpzdnVpbnQ4X3Qgc3Zlb3JidF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcmJ0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcmJ0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcmJ0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zOCkpKQpzdmludDhfdCBzdmVvcmJ0X3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3MzMikpKQpzdmludDMyX3Qgc3Zlb3JidF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfczY0KSkpCnN2aW50NjRfdCBzdmVvcmJ0X3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9yYnRfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fdTgpKSkKc3Z1aW50OF90IHN2ZW9ydGJfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcnRiX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9ydGJfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3J0Yl9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zOCkpKQpzdmludDhfdCBzdmVvcnRiX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fczMyKSkpCnN2aW50MzJfdCBzdmVvcnRiX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3J0Yl9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9ydGJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3U4KSkpCnN2dWludDhfdCBzdmVvcnRiX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9ydGJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9ydGJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3UxNikpKQpzdnVpbnQxNl90IHN2ZW9ydGJfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3M4KSkpCnN2aW50OF90IHN2ZW9ydGJfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczMyKSkpCnN2aW50MzJfdCBzdmVvcnRiX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9ydGJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3MxNikpKQpzdmludDE2X3Qgc3Zlb3J0Yl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZoYWRkX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhhZGRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aGFkZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZoYWRkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZoYWRkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmhhZGRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2aGFkZF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZoYWRkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZoYWRkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmhhZGRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2aGFkZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZoYWRkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2aGFkZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZoYWRkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhhZGRfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aGFkZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aGFkZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZoYWRkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhhZGRfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aGFkZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2aGFkZF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZoYWRkX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhhZGRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2aGFkZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zOF9tKSkpCnN2aW50OF90IHN2aGFkZF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2aGFkZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczY0X20pKSkKc3ZpbnQ2NF90IHN2aGFkZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2aGFkZF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczhfeCkpKQpzdmludDhfdCBzdmhhZGRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdmhhZGRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdmhhZGRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdmhhZGRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZoYWRkX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZoYWRkX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZoYWRkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZoYWRkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91OF9tKSkpCnN2dWludDhfdCBzdmhhZGRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhhZGRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhhZGRfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhhZGRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZoYWRkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZoYWRkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZoYWRkX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZoYWRkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U4X3opKSkKc3Z1aW50OF90IHN2aGFkZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2aGFkZF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGFkZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2aGFkZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF91MzJfeikpKQpzdnVpbnQzMl90IHN2aGlzdGNudF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGlzdGNudF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF9zMzJfeikpKQpzdnVpbnQzMl90IHN2aGlzdGNudF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RjbnRfczY0X3opKSkKc3Z1aW50NjRfdCBzdmhpc3RjbnRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0c2VnX3U4KSkpCnN2dWludDhfdCBzdmhpc3RzZWdfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RzZWdfczgpKSkKc3Z1aW50OF90IHN2aGlzdHNlZ19zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zOF9tKSkpCnN2aW50OF90IHN2aHN1Yl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zoc3ViX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhzdWJfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczE2X20pKSkKc3ZpbnQxNl90IHN2aHN1Yl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zOF94KSkpCnN2aW50OF90IHN2aHN1Yl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zoc3ViX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1Yl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zOF96KSkpCnN2aW50OF90IHN2aHN1Yl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3ViX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmhzdWJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczE2X3opKSkKc3ZpbnQxNl90IHN2aHN1Yl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2aHN1Yl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zoc3ViX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhzdWJfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91OF94KSkpCnN2dWludDhfdCBzdmhzdWJfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aHN1Yl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3ViX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91OF96KSkpCnN2dWludDhfdCBzdmhzdWJfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1Yl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zoc3ViX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmhzdWJfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczhfbSkpKQpzdmludDhfdCBzdmhzdWJfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhzdWJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3ViX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zoc3ViX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zoc3ViX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3ViX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zOF96KSkpCnN2aW50OF90IHN2aHN1Yl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1Yl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1Yl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczE2X3opKSkKc3ZpbnQxNl90IHN2aHN1Yl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3ViX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3ViX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zoc3ViX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3ViX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1Yl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aHN1Yl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aHN1Yl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1Yl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91OF96KSkpCnN2dWludDhfdCBzdmhzdWJfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmhzdWJfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczhfbSkpKQpzdmludDhfdCBzdmhzdWJyX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zoc3Vicl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1YnJfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJyX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zOF94KSkpCnN2aW50OF90IHN2aHN1YnJfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJyX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zoc3Vicl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1YnJfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1YnJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmhzdWJyX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3Vicl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2aHN1YnJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJyX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3Vicl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91OF94KSkpCnN2dWludDhfdCBzdmhzdWJyX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3Vicl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJyX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1YnJfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJyX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zoc3Vicl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1YnJfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJyX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1YnJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zoc3Vicl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJyX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2aHN1YnJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3Vicl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MzMl96KSkpCnN2aW50MzJfdCBzdmhzdWJyX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1YnJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3Vicl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U4X20pKSkKc3Z1aW50OF90IHN2aHN1YnJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3Vicl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJyX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aHN1YnJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1YnJfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3Vicl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhzdWJyX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1YnJfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1YnJfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zoc3Vicl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJyX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1YnJfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2VfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9zNjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjY0X20pKSkKc3ZpbnQ2NF90IHN2bG9nYl9mNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMzJfbSkpKQpzdmludDMyX3Qgc3Zsb2diX2YzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YxNl9tKSkpCnN2aW50MTZfdCBzdmxvZ2JfZjE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjY0X3gpKSkKc3ZpbnQ2NF90IHN2bG9nYl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjMyX3gpKSkKc3ZpbnQzMl90IHN2bG9nYl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjE2X3gpKSkKc3ZpbnQxNl90IHN2bG9nYl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjY0X3opKSkKc3ZpbnQ2NF90IHN2bG9nYl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjMyX3opKSkKc3ZpbnQzMl90IHN2bG9nYl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjE2X3opKSkKc3ZpbnQxNl90IHN2bG9nYl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3U4KSkpCnN2Ym9vbF90IHN2bWF0Y2hfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXRjaF91MTYpKSkKc3Zib29sX3Qgc3ZtYXRjaF91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3M4KSkpCnN2Ym9vbF90IHN2bWF0Y2hfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfczE2KSkpCnN2Ym9vbF90IHN2bWF0Y2hfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1wX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heG5tcF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubXBfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1wX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heG5tcF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubXBfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heHBfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heHBfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heHBfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heHBfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heHBfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heHBfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zOF9tKSkpCnN2aW50OF90IHN2bWF4cF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczMyX20pKSkKc3ZpbnQzMl90IHN2bWF4cF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWF4cF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczE2X20pKSkKc3ZpbnQxNl90IHN2bWF4cF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczhfeCkpKQpzdmludDhfdCBzdm1heHBfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MzMl94KSkpCnN2aW50MzJfdCBzdm1heHBfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3M2NF94KSkpCnN2aW50NjRfdCBzdm1heHBfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MxNl94KSkpCnN2aW50MTZfdCBzdm1heHBfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3U4X20pKSkKc3Z1aW50OF90IHN2bWF4cF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWF4cF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWF4cF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWF4cF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91OF94KSkpCnN2dWludDhfdCBzdm1heHBfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1heHBfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1heHBfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1heHBfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tcF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubXBfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWlubm1wX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tcF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubXBfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWlubm1wX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5wX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5wX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5wX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5wX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5wX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5wX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczhfbSkpKQpzdmludDhfdCBzdm1pbnBfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1pbnBfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1pbnBfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1pbnBfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtaW5wX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtaW5wX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtaW5wX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtaW5wX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91OF9tKSkpCnN2dWludDhfdCBzdm1pbnBfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1pbnBfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1pbnBfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1pbnBfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtaW5wX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5wX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtaW5wX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtaW5wX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYV9sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2bWxhX2xhbmVfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWxiX25fZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsYl9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbGJfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fczE2KSkpCnN2aW50MTZfdCBzdm1sYWxiX25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWxiX25fdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbGJfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsYl9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWxiX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbGJfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfczE2KSkpCnN2aW50MTZfdCBzdm1sYWxiX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbGJfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sYWxiX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYl9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWxiX2xhbmVfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbGJfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbHRfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fczMyKSkpCnN2aW50MzJfdCBzdm1sYWx0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsdF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbHRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbHRfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWx0X25fdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbHRfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsdF9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfczY0KSkpCnN2aW50NjRfdCBzdm1sYWx0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbHRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWx0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWx0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWx0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsdF9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbHRfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm1sYWx0X2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbHRfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsdF9sYW5lX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzX2xhbmVfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdm1sc19sYW5lX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sc19sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm1sc19sYW5lX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdm1sc19sYW5lX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNsYl9uX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbGJfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fczY0KSkpCnN2aW50NjRfdCBzdm1sc2xiX25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZtbHNsYl9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYl9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2xiX25fdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2bWxzbGJfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNsYl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfczMyKSkpCnN2aW50MzJfdCBzdm1sc2xiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbGJfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3MxNikpKQpzdmludDE2X3Qgc3ZtbHNsYl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3UzMikpKQpzdnVpbnQzMl90IHN2bWxzbGJfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbGJfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3UxNikpKQpzdnVpbnQxNl90IHN2bWxzbGJfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsYl9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbGJfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYl9sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2xiX2xhbmVfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2x0X25fZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsdF9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbHRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fczE2KSkpCnN2aW50MTZfdCBzdm1sc2x0X25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2x0X25fdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbHRfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsdF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2x0X2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbHRfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdF9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfczE2KSkpCnN2aW50MTZfdCBzdm1sc2x0X3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsdF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsdF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsdF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbHRfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sc2x0X2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2x0X2xhbmVfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbHRfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3MzMikpKQpzdmludDMyX3Qgc3Ztb3ZsYl9zMzIoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bW92bGJfczY0KHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfczE2KSkpCnN2aW50MTZfdCBzdm1vdmxiX3MxNihzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTMyKSkpCnN2dWludDMyX3Qgc3Ztb3ZsYl91MzIoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTY0KSkpCnN2dWludDY0X3Qgc3Ztb3ZsYl91NjQoc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTE2KSkpCnN2dWludDE2X3Qgc3Ztb3ZsYl91MTYoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bW92bHRfczMyKHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfczY0KSkpCnN2aW50NjRfdCBzdm1vdmx0X3M2NChzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3MxNikpKQpzdmludDE2X3Qgc3Ztb3ZsdF9zMTYoc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3UzMikpKQpzdnVpbnQzMl90IHN2bW92bHRfdTMyKHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bW92bHRfdTY0KHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3UxNikpKQpzdnVpbnQxNl90IHN2bW92bHRfdTE2KHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsX2xhbmVfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdm11bF9sYW5lX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsYl9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fczE2KSkpCnN2aW50MTZfdCBzdm11bGxiX25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsYl9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGxiX25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbGJfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbGJfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsYl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsYl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsYl91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bGxiX2xhbmVfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbGJfbGFuZV9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbGJfbGFuZV91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsYl9sYW5lX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbHRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsdF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fczE2KSkpCnN2aW50MTZfdCBzdm11bGx0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsdF9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGx0X25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbHRfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbHRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbHRfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbHRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsdF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsdF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsdF91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bGx0X2xhbmVfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbHRfbGFuZV9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbHRfbGFuZV91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsdF9sYW5lX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3U4KSkpCnN2dWludDhfdCBzdm5ic2xfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3UzMikpKQpzdnVpbnQzMl90IHN2bmJzbF9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bmJzbF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3UxNikpKQpzdnVpbnQxNl90IHN2bmJzbF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3M4KSkpCnN2aW50OF90IHN2bmJzbF9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fczMyKSkpCnN2aW50MzJfdCBzdm5ic2xfbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bmJzbF9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3MxNikpKQpzdmludDE2X3Qgc3ZuYnNsX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3U4KSkpCnN2dWludDhfdCBzdm5ic2xfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF91MzIpKSkKc3Z1aW50MzJfdCBzdm5ic2xfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTY0KSkpCnN2dWludDY0X3Qgc3ZuYnNsX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3UxNikpKQpzdnVpbnQxNl90IHN2bmJzbF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zOCkpKQpzdmludDhfdCBzdm5ic2xfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zMzIpKSkKc3ZpbnQzMl90IHN2bmJzbF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zNjQpKSkKc3ZpbnQ2NF90IHN2bmJzbF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zMTYpKSkKc3ZpbnQxNl90IHN2bmJzbF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hdGNoX3U4KSkpCnN2Ym9vbF90IHN2bm1hdGNoX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hdGNoX3UxNikpKQpzdmJvb2xfdCBzdm5tYXRjaF91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYXRjaF9zOCkpKQpzdmJvb2xfdCBzdm5tYXRjaF9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfczE2KSkpCnN2Ym9vbF90IHN2bm1hdGNoX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsX3U4KSkpCnN2dWludDhfdCBzdnBtdWxfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiX25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsYl9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsYl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3UxNikpKQpzdnVpbnQxNl90IHN2cG11bGxiX3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsbGJfcGFpcl9uX3U4KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsYl9wYWlyX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsbGJfcGFpcl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfdTMyKSkpCnN2dWludDMyX3Qgc3ZwbXVsbGJfcGFpcl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbHRfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2cG11bGx0X25fdTE2KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGx0X3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZwbXVsbHRfdTE2KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl9uX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsdF9wYWlyX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2cG11bGx0X3BhaXJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsdF9wYWlyX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsdF9wYWlyX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWJzX3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMzJfbSkpKQpzdmludDMyX3Qgc3ZxYWJzX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfbSkpKQpzdmludDY0X3Qgc3ZxYWJzX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMTZfbSkpKQpzdmludDE2X3Qgc3ZxYWJzX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zOF94KSkpCnN2aW50OF90IHN2cWFic19zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMzJfeCkpKQpzdmludDMyX3Qgc3ZxYWJzX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cWFic19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MxNl94KSkpCnN2aW50MTZfdCBzdnFhYnNfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zOF96KSkpCnN2aW50OF90IHN2cWFic19zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMzJfeikpKQpzdmludDMyX3Qgc3ZxYWJzX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczY0X3opKSkKc3ZpbnQ2NF90IHN2cWFic19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhYnNfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWRkX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFhZGRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cWFkZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZxYWRkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxYWRkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFhZGRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cWFkZF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZxYWRkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxYWRkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhZGRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cWFkZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZxYWRkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cWFkZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZxYWRkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFhZGRfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cWFkZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cWFkZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxYWRkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFhZGRfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cWFkZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cWFkZF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxYWRkX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFhZGRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cWFkZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zOF9tKSkpCnN2aW50OF90IHN2cWFkZF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2cWFkZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczY0X20pKSkKc3ZpbnQ2NF90IHN2cWFkZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2cWFkZF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczhfeCkpKQpzdmludDhfdCBzdnFhZGRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdnFhZGRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdnFhZGRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdnFhZGRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxYWRkX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZxYWRkX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZxYWRkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZxYWRkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91OF9tKSkpCnN2dWludDhfdCBzdnFhZGRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFhZGRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFhZGRfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFhZGRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxYWRkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U4X3opKSkKc3Z1aW50OF90IHN2cWFkZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2cWFkZF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cWFkZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2cWFkZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczgpKSkKc3ZpbnQ4X3Qgc3ZxY2FkZF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zMzIpKSkKc3ZpbnQzMl90IHN2cWNhZGRfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczY0KSkpCnN2aW50NjRfdCBzdnFjYWRkX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFjYWRkX3MxNikpKQpzdmludDE2X3Qgc3ZxY2FkZF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGJfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYl9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWxiX25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsYl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYl9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxiX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxidF9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYnRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGJ0X25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGJ0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYnRfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWxidF9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsdF9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWx0X25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbHRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWx0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWx0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWx0X3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWx0X2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbHRfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYl9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xiX25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbGJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xiX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2xiX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xiX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGJ0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xidF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYnRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYnRfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xidF9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbGJ0X3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2x0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbHRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsdF9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbHRfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbHRfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbHRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbHRfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsdF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxZG11bGhfbl9zOChzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxoX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsaF9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGhfbl9zMTYoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczgpKSkKc3ZpbnQ4X3Qgc3ZxZG11bGhfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsaF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxoX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGhfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxoX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsaF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGhfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX25fczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbGJfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsbGJfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsYl9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGxiX3MxNihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsYl9sYW5lX3MzMihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsYl9sYW5lX3M2NChzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsdF9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsdF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsdF9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGx0X3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsdF9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsbHRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGx0X2xhbmVfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGx0X2xhbmVfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF9tKSkpCnN2aW50OF90IHN2cW5lZ19zOF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczMyX20pKSkKc3ZpbnQzMl90IHN2cW5lZ19zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczY0X20pKSkKc3ZpbnQ2NF90IHN2cW5lZ19zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczE2X20pKSkKc3ZpbnQxNl90IHN2cW5lZ19zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczhfeCkpKQpzdmludDhfdCBzdnFuZWdfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczMyX3gpKSkKc3ZpbnQzMl90IHN2cW5lZ19zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M2NF94KSkpCnN2aW50NjRfdCBzdnFuZWdfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfeCkpKQpzdmludDE2X3Qgc3ZxbmVnX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczhfeikpKQpzdmludDhfdCBzdnFuZWdfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczMyX3opKSkKc3ZpbnQzMl90IHN2cW5lZ19zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M2NF96KSkpCnN2aW50NjRfdCBzdnFuZWdfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfeikpKQpzdmludDE2X3Qgc3ZxbmVnX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX3M4KSkpCnN2aW50OF90IHN2cXJkY21sYWhfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRjbWxhaF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRjbWxhaF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRjbWxhaF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZGNtbGFoX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkY21sYWhfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtbGFoX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxhaF9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbGFoX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sYWhfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtbGFoX3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sYWhfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sYWhfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sYWhfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxhaF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbGFoX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sYWhfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zOCkpKQpzdmludDhfdCBzdnFyZG1sc2hfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbHNoX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX25fczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sc2hfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxzaF9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9zOCkpKQpzdmludDhfdCBzdnFyZG1sc2hfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxzaF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxzaF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxzaF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbHNoX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sc2hfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxzaF9sYW5lX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3M4KSkpCnN2aW50OF90IHN2cXJkbXVsaF9uX3M4KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbXVsaF9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbXVsaF9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbXVsaF9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtdWxoX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbXVsaF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczY0KSkpCnN2aW50NjRfdCBzdnFyZG11bGhfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtdWxoX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtdWxoX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtdWxoX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtdWxoX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zOF9tKSkpCnN2aW50OF90IHN2cXJzaGxfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFyc2hsX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxcnNobF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cXJzaGxfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxcnNobF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXJzaGxfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFyc2hsX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZxcnNobF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczhfeikpKQpzdmludDhfdCBzdnFyc2hsX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZxcnNobF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXJzaGxfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFyc2hsX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91OF9tKSkpCnN2dWludDhfdCBzdnFyc2hsX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFyc2hsX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFyc2hsX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFyc2hsX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxcnNobF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxcnNobF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZxcnNobF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZxcnNobF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXJzaGxfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXJzaGxfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXJzaGxfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXJzaGxfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczhfbSkpKQpzdmludDhfdCBzdnFyc2hsX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cXJzaGxfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxcnNobF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFyc2hsX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczhfeCkpKQpzdmludDhfdCBzdnFyc2hsX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXJzaGxfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxcnNobF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnFyc2hsX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczhfeikpKQpzdmludDhfdCBzdnFyc2hsX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczMyX3opKSkKc3ZpbnQzMl90IHN2cXJzaGxfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zNjRfeikpKQpzdmludDY0X3Qgc3ZxcnNobF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MxNl96KSkpCnN2aW50MTZfdCBzdnFyc2hsX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZxcnNobF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXJzaGxfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFyc2hsX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZxcnNobF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91OF94KSkpCnN2dWludDhfdCBzdnFyc2hsX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxcnNobF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U4X3opKSkKc3Z1aW50OF90IHN2cXJzaGxfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFyc2hsX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxcnNobF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MTZfeikpKQpzdnVpbnQxNl90IHN2cXJzaGxfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZxcnNocm5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXJzaHJuYl9uX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2cXJzaHJuYl9uX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZxcnNocm5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocm5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnFyc2hybmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cXJzaHJudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXJzaHJudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZxcnNocm50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3ZxcnNocm50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocm50X25fdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnFyc2hybnRfbl91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bmJfbl9zMzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hydW5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW5iX25fczY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocnVuYl9uX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVuYl9uX3MxNikpKQpzdnVpbnQ4X3Qgc3ZxcnNocnVuYl9uX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVudF9uX3MzMikpKQpzdnVpbnQxNl90IHN2cXJzaHJ1bnRfbl9zMzIoc3Z1aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bnRfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hydW50X25fczY0KHN2dWludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW50X25fczE2KSkpCnN2dWludDhfdCBzdnFyc2hydW50X25fczE2KHN2dWludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc2hsX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzaGxfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cXNobF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc2hsX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc2hsX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzaGxfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXNobF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc2hsX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc2hsX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzaGxfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXNobF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc2hsX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXNobF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzaGxfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc2hsX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXNobF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc2hsX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzaGxfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc2hsX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91OF96KSkpCnN2dWludDhfdCBzdnFzaGxfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc2hsX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXNobF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzaGxfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zOF9tKSkpCnN2aW50OF90IHN2cXNobF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cXNobF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczY0X20pKSkKc3ZpbnQ2NF90IHN2cXNobF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cXNobF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczhfeCkpKQpzdmludDhfdCBzdnFzaGxfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzaGxfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzaGxfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzaGxfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc2hsX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc2hsX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc2hsX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc2hsX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91OF9tKSkpCnN2dWludDhfdCBzdnFzaGxfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXNobF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc2hsX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzaGxfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91OF94KSkpCnN2dWludDhfdCBzdnFzaGxfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc2hsX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzaGxfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91OF96KSkpCnN2dWludDhfdCBzdnFzaGxfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MzJfeikpKQpzdnVpbnQzMl90IHN2cXNobF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc2hsX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzaGxfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zOF9tKSkpCnN2dWludDhfdCBzdnFzaGx1X25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc2hsdV9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc2hsdV9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc2hsdV9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M4X3gpKSkKc3Z1aW50OF90IHN2cXNobHVfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzaGx1X25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzaGx1X25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzaGx1X25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczhfeikpKQpzdnVpbnQ4X3Qgc3Zxc2hsdV9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMzJfeikpKQpzdnVpbnQzMl90IHN2cXNobHVfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zNjRfeikpKQpzdnVpbnQ2NF90IHN2cXNobHVfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMTZfeikpKQpzdnVpbnQxNl90IHN2cXNobHVfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fczMyKSkpCnN2aW50MTZfdCBzdnFzaHJuYl9uX3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXNocm5iX25fczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnFzaHJuYl9uX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFzaHJuYl9uX3UzMihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zxc2hybmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hybmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3Zxc2hybnRfbl9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXNocm50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fczE2KSkpCnN2aW50OF90IHN2cXNocm50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFzaHJudF9uX3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fdTY0KSkpCnN2dWludDMyX3Qgc3Zxc2hybnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hybnRfbl91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVuYl9uX3MzMikpKQpzdnVpbnQxNl90IHN2cXNocnVuYl9uX3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW5iX25fczY0KSkpCnN2dWludDMyX3Qgc3Zxc2hydW5iX25fczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bmJfbl9zMTYpKSkKc3Z1aW50OF90IHN2cXNocnVuYl9uX3MxNihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW50X25fczMyKSkpCnN2dWludDE2X3Qgc3Zxc2hydW50X25fczMyKHN2dWludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bnRfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJ1bnRfbl9zNjQoc3Z1aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVudF9uX3MxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hydW50X25fczE2KHN2dWludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3ViX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzdWJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cXN1Yl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3ViX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc3ViX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzdWJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXN1Yl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc3ViX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc3ViX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1Yl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc3ViX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1Yl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc3ViX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzdWJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1Yl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXN1Yl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc3ViX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzdWJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXN1Yl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXN1Yl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3ViX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXN1Yl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zOF9tKSkpCnN2aW50OF90IHN2cXN1Yl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1Yl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczY0X20pKSkKc3ZpbnQ2NF90IHN2cXN1Yl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1Yl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczhfeCkpKQpzdmludDhfdCBzdnFzdWJfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzdWJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc3ViX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3ViX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc3ViX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91OF9tKSkpCnN2dWludDhfdCBzdnFzdWJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzdWJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc3ViX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U4X3opKSkKc3Z1aW50OF90IHN2cXN1Yl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXN1Yl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1Yl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXN1Yl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zOF9tKSkpCnN2aW50OF90IHN2cXN1YnJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzdWJyX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3Vicl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1YnJfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1YnJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc3Vicl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczhfeikpKQpzdmludDhfdCBzdnFzdWJyX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc3Vicl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1YnJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJyX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91OF9tKSkpCnN2dWludDhfdCBzdnFzdWJyX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc3Vicl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJyX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXN1YnJfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3Vicl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXN1YnJfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXN1YnJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJyX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczhfbSkpKQpzdmludDhfdCBzdnFzdWJyX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1YnJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3Vicl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzdWJyX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczhfeCkpKQpzdmludDhfdCBzdnFzdWJyX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1YnJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc3Vicl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJyX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczhfeikpKQpzdmludDhfdCBzdnFzdWJyX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczMyX3opKSkKc3ZpbnQzMl90IHN2cXN1YnJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3Vicl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJyX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc3Vicl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1YnJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfczMyKSkpCnN2aW50MTZfdCBzdnF4dG5iX3MzMihzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3M2NCkpKQpzdmludDMyX3Qgc3ZxeHRuYl9zNjQoc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZxeHRuYl9zMTYoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnF4dG5iX3UzMihzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl91NjQpKSkKc3Z1aW50MzJfdCBzdnF4dG5iX3U2NChzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl91MTYpKSkKc3Z1aW50OF90IHN2cXh0bmJfdTE2KHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3MzMikpKQpzdmludDE2X3Qgc3ZxeHRudF9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3M2NCkpKQpzdmludDMyX3Qgc3ZxeHRudF9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3MxNikpKQpzdmludDhfdCBzdnF4dG50X3MxNihzdmludDhfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF91MzIpKSkKc3Z1aW50MTZfdCBzdnF4dG50X3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF91NjQpKSkKc3Z1aW50MzJfdCBzdnF4dG50X3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF91MTYpKSkKc3Z1aW50OF90IHN2cXh0bnRfdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW5iX3MzMikpKQpzdnVpbnQxNl90IHN2cXh0dW5iX3MzMihzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVuYl9zNjQpKSkKc3Z1aW50MzJfdCBzdnF4dHVuYl9zNjQoc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bmJfczE2KSkpCnN2dWludDhfdCBzdnF4dHVuYl9zMTYoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bnRfczMyKSkpCnN2dWludDE2X3Qgc3ZxeHR1bnRfczMyKHN2dWludDE2X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW50X3M2NCkpKQpzdnVpbnQzMl90IHN2cXh0dW50X3M2NChzdnVpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVudF9zMTYpKSkKc3Z1aW50OF90IHN2cXh0dW50X3MxNihzdnVpbnQ4X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2cmFkZGhuYl9uX3UzMihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cmFkZGhuYl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG5iX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobmJfbl9zMzIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobmJfbl9zNjQoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fczE2KSkpCnN2aW50OF90IHN2cmFkZGhuYl9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfdTMyKSkpCnN2dWludDE2X3Qgc3ZyYWRkaG5iX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2cmFkZGhuYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl91MTYpKSkKc3Z1aW50OF90IHN2cmFkZGhuYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9zMzIpKSkKc3ZpbnQxNl90IHN2cmFkZGhuYl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobmJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3MxNikpKQpzdmludDhfdCBzdnJhZGRobmJfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fdTMyKSkpCnN2dWludDE2X3Qgc3ZyYWRkaG50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG50X25fdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fdTE2KSkpCnN2dWludDhfdCBzdnJhZGRobnRfbl91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZyYWRkaG50X25fczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobnRfbl9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZyYWRkaG50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfdTMyKSkpCnN2dWludDE2X3Qgc3ZyYWRkaG50X3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3U2NCkpKQpzdnVpbnQzMl90IHN2cmFkZGhudF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF91MTYpKSkKc3Z1aW50OF90IHN2cmFkZGhudF91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3MzMikpKQpzdmludDE2X3Qgc3ZyYWRkaG50X3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3M2NCkpKQpzdmludDMyX3Qgc3ZyYWRkaG50X3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3MxNikpKQpzdmludDhfdCBzdnJhZGRobnRfczE2KHN2aW50OF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJlY3BlX3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmVjcGVfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyZWNwZV91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zOF9tKSkpCnN2aW50OF90IHN2cmhhZGRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnJoYWRkX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyaGFkZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cmhhZGRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cmhhZGRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnJoYWRkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyaGFkZF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczhfeikpKQpzdmludDhfdCBzdnJoYWRkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZyaGFkZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cmhhZGRfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnJoYWRkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91OF9tKSkpCnN2dWludDhfdCBzdnJoYWRkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZyaGFkZF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJoYWRkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cmhhZGRfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJoYWRkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyaGFkZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmhhZGRfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cmhhZGRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJoYWRkX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczhfbSkpKQpzdmludDhfdCBzdnJoYWRkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2cmhhZGRfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyaGFkZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdnJoYWRkX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczhfeCkpKQpzdmludDhfdCBzdnJoYWRkX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmhhZGRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZyaGFkZF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdnJoYWRkX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczhfeikpKQpzdmludDhfdCBzdnJoYWRkX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczMyX3opKSkKc3ZpbnQzMl90IHN2cmhhZGRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZyaGFkZF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdnJoYWRkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZyaGFkZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmhhZGRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zyc2hsX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnJzaGxfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cnNobF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hsX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zyc2hsX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnJzaGxfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cnNobF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zyc2hsX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hsX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnJzaGxfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cnNobF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zyc2hsX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cnNobF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzaGxfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zyc2hsX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cnNobF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zyc2hsX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNobF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJzaGxfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zyc2hsX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91OF96KSkpCnN2dWludDhfdCBzdnJzaGxfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zyc2hsX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cnNobF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJzaGxfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zOF9tKSkpCnN2aW50OF90IHN2cnNobF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cnNobF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczY0X20pKSkKc3ZpbnQ2NF90IHN2cnNobF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cnNobF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczhfeCkpKQpzdmludDhfdCBzdnJzaGxfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MzMl94KSkpCnN2aW50MzJfdCBzdnJzaGxfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M2NF94KSkpCnN2aW50NjRfdCBzdnJzaGxfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnJzaGxfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hsX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMzJfeikpKQpzdmludDMyX3Qgc3Zyc2hsX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zNjRfeikpKQpzdmludDY0X3Qgc3Zyc2hsX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMTZfeikpKQpzdmludDE2X3Qgc3Zyc2hsX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91OF9tKSkpCnN2dWludDhfdCBzdnJzaGxfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cnNobF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zyc2hsX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJzaGxfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91OF94KSkpCnN2dWludDhfdCBzdnJzaGxfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNobF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zyc2hsX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJzaGxfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91OF96KSkpCnN2dWludDhfdCBzdnJzaGxfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MzJfeikpKQpzdnVpbnQzMl90IHN2cnNobF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zyc2hsX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJzaGxfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zyc2hyX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cnNocl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cnNocl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cnNocl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zyc2hyX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc2hyX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaHJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cnNocl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zyc2hyX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cnNocl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cnNocl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cnNocl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zyc2hyX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc2hyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJzaHJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cnNocl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hyX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cnNocl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cnNocl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cnNocl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zyc2hyX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zyc2hyX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJzaHJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cnNocl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3Zyc2hybmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnNocm5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cnNocm5iX25fdTE2KHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnNocm5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3Zyc2hybmJfbl9zNjQoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2cnNocm5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cnNocm50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzaHJudF9uX3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnJzaHJudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnNocm50X25fczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fczY0KSkpCnN2aW50MzJfdCBzdnJzaHJudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnJzaHJudF9uX3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc3FydGVfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNxcnRlX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzcXJ0ZV91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3M4KSkpCnN2aW50OF90IHN2cnNyYV9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cnNyYV9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cnNyYV9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cnNyYV9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zyc3JhX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zyc3JhX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zyc3JhX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zyc3JhX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3Zyc3ViaG5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhuYl9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhuYl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG5iX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobmJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG5iX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG5iX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3MzMikpKQpzdmludDE2X3Qgc3Zyc3ViaG5iX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhuYl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfczE2KSkpCnN2aW50OF90IHN2cnN1YmhuYl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobnRfbl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl91MTYpKSkKc3Z1aW50OF90IHN2cnN1YmhudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobnRfbl9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3MxNikpKQpzdmludDhfdCBzdnJzdWJobnRfbl9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobnRfdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG50X3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG50X3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobnRfczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczY0KSkpCnN2aW50MzJfdCBzdnJzdWJobnRfczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczE2KSkpCnN2aW50OF90IHN2cnN1YmhudF9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbGJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsYl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZzYmNsYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNiY2x0X25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbHRfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbHRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbHRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fczMyKSkpCnN2aW50MzJfdCBzdnNobGxiX25fczMyKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fczY0KSkpCnN2aW50NjRfdCBzdnNobGxiX25fczY0KHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fczE2KSkpCnN2aW50MTZfdCBzdnNobGxiX25fczE2KHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNobGxiX25fdTMyKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2hsbGJfbl91NjQoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzaGxsYl9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzaGxsdF9uX3MzMihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzaGxsdF9uX3M2NChzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzaGxsdF9uX3MxNihzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzaGxsdF9uX3UzMihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNobGx0X25fdTY0KHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2c2hsbHRfbl91MTYoc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnNocm5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c2hybmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnNocm5iX25fdTE2KHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZzaHJuYl9uX3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZzaHJuYl9uX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnNocm5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3ZzaHJudF9uX3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnNocm50X25fdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZzaHJudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZzaHJudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fczY0KSkpCnN2aW50MzJfdCBzdnNocm50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzaHJudF9uX3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTgpKSkKc3Z1aW50OF90IHN2c2xpX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNsaV9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzbGlfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3UxNikpKQpzdnVpbnQxNl90IHN2c2xpX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zOCkpKQpzdmludDhfdCBzdnNsaV9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3MzMikpKQpzdmludDMyX3Qgc3ZzbGlfbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c2xpX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fczE2KSkpCnN2aW50MTZfdCBzdnNsaV9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzcWFkZF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzcWFkZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzcWFkZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3FhZGRfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3FhZGRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3FhZGRfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3FhZGRfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdnNxYWRkX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnNxYWRkX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnNxYWRkX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnNxYWRkX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U4X20pKSkKc3Z1aW50OF90IHN2c3FhZGRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnNxYWRkX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzcWFkZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3FhZGRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3FhZGRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91OF96KSkpCnN2dWludDhfdCBzdnNxYWRkX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzcWFkZF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3FhZGRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnNxYWRkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3M4KSkpCnN2aW50OF90IHN2c3JhX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczMyKSkpCnN2aW50MzJfdCBzdnNyYV9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzcmFfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3JhX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTgpKSkKc3Z1aW50OF90IHN2c3JhX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNyYV9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzcmFfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3JhX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zzcmlfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3UzMikpKQpzdnVpbnQzMl90IHN2c3JpX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNyaV9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zzcmlfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3M4KSkpCnN2aW50OF90IHN2c3JpX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczMyKSkpCnN2aW50MzJfdCBzdnNyaV9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3M2NCkpKQpzdmludDY0X3Qgc3Zzcmlfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3JpX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3M2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGluZGV4X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X2YzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZzdWJobmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG5iX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG5iX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdnN1YmhuYl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3MxNikpKQpzdmludDhfdCBzdnN1YmhuYl9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhuYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG5iX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfdTE2KSkpCnN2dWludDhfdCBzdnN1YmhuYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZzdWJobmJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfczY0KSkpCnN2aW50MzJfdCBzdnN1YmhuYl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobmJfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhudF9uX3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZzdWJobnRfbl91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnN1YmhudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fczY0KSkpCnN2aW50MzJfdCBzdnN1YmhudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fczE2KSkpCnN2aW50OF90IHN2c3ViaG50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhudF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG50X3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfdTE2KSkpCnN2dWludDhfdCBzdnN1YmhudF91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfczMyKSkpCnN2aW50MTZfdCBzdnN1YmhudF9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3M2NCkpKQpzdmludDMyX3Qgc3ZzdWJobnRfczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobnRfczE2KHN2aW50OF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYl9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fczE2KSkpCnN2aW50MTZfdCBzdnN1YmxiX25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsYl9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YmxiX25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3VibGJfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGJfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsYl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsYl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsYl91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYnRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGJ0X25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X25fczE2KSkpCnN2aW50MTZfdCBzdnN1YmxidF9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfczMyKSkpCnN2aW50MzJfdCBzdnN1YmxidF9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGJ0X3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYnRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fczE2KSkpCnN2aW50MTZfdCBzdnN1Ymx0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsdF9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ymx0X25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3VibHRfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHRfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsdF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsdF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsdF91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHRiX25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX25fczE2KSkpCnN2aW50MTZfdCBzdnN1Ymx0Yl9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfczMyKSkpCnN2aW50MzJfdCBzdnN1Ymx0Yl9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHRiX3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vid2Jfbl9zMzIoc3ZpbnQzMl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJ3Yl9uX3M2NChzdmludDY0X3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fczE2KSkpCnN2aW50MTZfdCBzdnN1YndiX25fczE2KHN2aW50MTZfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2c3Vid2Jfbl91MzIoc3Z1aW50MzJfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJ3Yl9uX3U2NChzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YndiX25fdTE2KHN2dWludDE2X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3Yl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJ3Yl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJ3Yl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3Yl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJ3Yl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJ3Yl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3dF9uX3MzMihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fczY0KSkpCnN2aW50NjRfdCBzdnN1Ynd0X25fczY0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3Vid3Rfbl9zMTYoc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3dF9uX3UzMihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ynd0X25fdTY0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3Vid3Rfbl91MTYoc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczMyKSkpCnN2aW50MzJfdCBzdnN1Ynd0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczY0KSkpCnN2aW50NjRfdCBzdnN1Ynd0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczE2KSkpCnN2aW50MTZfdCBzdnN1Ynd0X3MxNihzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ynd0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ynd0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ynd0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfdTgpKSkKc3Z1aW50OF90IHN2dGJsMl91OChzdnVpbnQ4eDJfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3UzMikpKQpzdnVpbnQzMl90IHN2dGJsMl91MzIoc3Z1aW50MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3U2NCkpKQpzdnVpbnQ2NF90IHN2dGJsMl91NjQoc3Z1aW50NjR4Ml90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3UxNikpKQpzdnVpbnQxNl90IHN2dGJsMl91MTYoc3Z1aW50MTZ4Ml90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3M4KSkpCnN2aW50OF90IHN2dGJsMl9zOChzdmludDh4Ml90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dGJsMl9mNjQoc3ZmbG9hdDY0eDJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0YmwyX2YzMihzdmZsb2F0MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRibDJfZjE2KHN2ZmxvYXQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfczMyKSkpCnN2aW50MzJfdCBzdnRibDJfczMyKHN2aW50MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3M2NCkpKQpzdmludDY0X3Qgc3Z0YmwyX3M2NChzdmludDY0eDJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9zMTYpKSkKc3ZpbnQxNl90IHN2dGJsMl9zMTYoc3ZpbnQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF91OCkpKQpzdnVpbnQ4X3Qgc3Z0YnhfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3UzMikpKQpzdnVpbnQzMl90IHN2dGJ4X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfdTY0KSkpCnN2dWludDY0X3Qgc3Z0YnhfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF91MTYpKSkKc3Z1aW50MTZfdCBzdnRieF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3M4KSkpCnN2aW50OF90IHN2dGJ4X3M4KHN2aW50OF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dGJ4X2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0YnhfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X2YxNikpKQpzdmZsb2F0MTZfdCBzdnRieF9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczMyKSkpCnN2aW50MzJfdCBzdnRieF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9zNjQpKSkKc3ZpbnQ2NF90IHN2dGJ4X3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3MxNikpKQpzdmludDE2X3Qgc3Z0YnhfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnVxYWRkX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2dXFhZGRfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Z1cWFkZF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnVxYWRkX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2dXFhZGRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Z1cWFkZF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnVxYWRkX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2dXFhZGRfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Z1cWFkZF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zOF9tKSkpCnN2aW50OF90IHN2dXFhZGRfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2dXFhZGRfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczY0X20pKSkKc3ZpbnQ2NF90IHN2dXFhZGRfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2dXFhZGRfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczhfeCkpKQpzdmludDhfdCBzdnVxYWRkX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdnVxYWRkX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdnVxYWRkX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdnVxYWRkX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3Z1cWFkZF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3Z1cWFkZF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3Z1cWFkZF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjhfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyX3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMTZfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMzJfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I4X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyX3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjE2X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IzMl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjhfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyX3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMTZfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMzJfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I4X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyX3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjE2X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IzMl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3U4KSkpCnN2Ym9vbF90IHN2d2hpbGVyd191OCh1aW50OF90IGNvbnN0ICosIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19zOCkpKQpzdmJvb2xfdCBzdndoaWxlcndfczgoaW50OF90IGNvbnN0ICosIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlcndfdTY0KHVpbnQ2NF90IGNvbnN0ICosIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjY0KSkpCnN2Ym9vbF90IHN2d2hpbGVyd19mNjQoZmxvYXQ2NF90IGNvbnN0ICosIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlcndfczY0KGludDY0X3QgY29uc3QgKiwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3UxNikpKQpzdmJvb2xfdCBzdndoaWxlcndfdTE2KHVpbnQxNl90IGNvbnN0ICosIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjE2KSkpCnN2Ym9vbF90IHN2d2hpbGVyd19mMTYoZmxvYXQxNl90IGNvbnN0ICosIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3MxNikpKQpzdmJvb2xfdCBzdndoaWxlcndfczE2KGludDE2X3QgY29uc3QgKiwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlcndfdTMyKHVpbnQzMl90IGNvbnN0ICosIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjMyKSkpCnN2Ym9vbF90IHN2d2hpbGVyd19mMzIoZmxvYXQzMl90IGNvbnN0ICosIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlcndfczMyKGludDMyX3QgY29uc3QgKiwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3U4KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl91OCh1aW50OF90IGNvbnN0ICosIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9zOCkpKQpzdmJvb2xfdCBzdndoaWxld3JfczgoaW50OF90IGNvbnN0ICosIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxld3JfdTY0KHVpbnQ2NF90IGNvbnN0ICosIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfZjY0KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9mNjQoZmxvYXQ2NF90IGNvbnN0ICosIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3M2NCkpKQpzdmJvb2xfdCBzdndoaWxld3JfczY0KGludDY0X3QgY29uc3QgKiwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3UxNikpKQpzdmJvb2xfdCBzdndoaWxld3JfdTE2KHVpbnQxNl90IGNvbnN0ICosIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfZjE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9mMTYoZmxvYXQxNl90IGNvbnN0ICosIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3MxNikpKQpzdmJvb2xfdCBzdndoaWxld3JfczE2KGludDE2X3QgY29uc3QgKiwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxld3JfdTMyKHVpbnQzMl90IGNvbnN0ICosIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfZjMyKSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9mMzIoZmxvYXQzMl90IGNvbnN0ICosIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxld3JfczMyKGludDMyX3QgY29uc3QgKiwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl91OCkpKQpzdnVpbnQ4X3Qgc3Z4YXJfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2eGFyX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnhhcl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fdTE2KSkpCnN2dWludDE2X3Qgc3Z4YXJfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3M4KSkpCnN2aW50OF90IHN2eGFyX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fczMyKSkpCnN2aW50MzJfdCBzdnhhcl9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3M2NCkpKQpzdmludDY0X3Qgc3Z4YXJfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2eGFyX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3M4KSkpCnN2aW50OF90IHN2YWJhKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczMyKSkpCnN2aW50MzJfdCBzdmFiYShzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmEoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTgpKSkKc3Z1aW50OF90IHN2YWJhKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3M4KSkpCnN2aW50OF90IHN2YWJhKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfczMyKSkpCnN2aW50MzJfdCBzdmFiYShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmEoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTgpKSkKc3Z1aW50OF90IHN2YWJhKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsYihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fczY0KSkpCnN2aW50NjRfdCBzdmFiYWxiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWxiKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWxiKHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWxiKHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsYihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfczY0KSkpCnN2aW50NjRfdCBzdmFiYWxiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWxiKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWxiKHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWxiKHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fczE2KSkpCnN2aW50MTZfdCBzdmFiYWx0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmFsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfczE2KSkpCnN2aW50MTZfdCBzdmFiYWx0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmFsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fczMyKSkpCnN2aW50MzJfdCBzdmFiZGxiKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fczY0KSkpCnN2aW50NjRfdCBzdmFiZGxiKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fczE2KSkpCnN2aW50MTZfdCBzdmFiZGxiKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbGIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbGIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbGIoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfczMyKSkpCnN2aW50MzJfdCBzdmFiZGxiKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfczY0KSkpCnN2aW50NjRfdCBzdmFiZGxiKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfczE2KSkpCnN2aW50MTZfdCBzdmFiZGxiKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbGIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbGIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhYmRsdChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmRsdChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhYmRsdChzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiZGx0KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiZGx0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiZGx0KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3MzMikpKQpzdmludDMyX3Qgc3ZhYmRsdChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3M2NCkpKQpzdmludDY0X3Qgc3ZhYmRsdChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3MxNikpKQpzdmludDE2X3Qgc3ZhYmRsdChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF91MzIpKSkKc3Z1aW50MzJfdCBzdmFiZGx0KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF91NjQpKSkKc3Z1aW50NjRfdCBzdmFiZGx0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF91MTYpKSkKc3Z1aW50MTZfdCBzdmFiZGx0KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczMyX20pKSkKc3ZpbnQzMl90IHN2YWRhbHBfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhZGFscF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFkYWxwX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGFscF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3M2NF94KSkpCnN2aW50NjRfdCBzdmFkYWxwX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWRhbHBfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MzMl96KSkpCnN2aW50MzJfdCBzdmFkYWxwX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczY0X3opKSkKc3ZpbnQ2NF90IHN2YWRhbHBfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMTZfeikpKQpzdmludDE2X3Qgc3ZhZGFscF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFkYWxwX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRhbHBfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhZGFscF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWRhbHBfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhZGFscF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFkYWxwX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhZGFscF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFkYWxwX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MTZfeikpKQpzdnVpbnQxNl90IHN2YWRhbHBfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2xiKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2xiKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGNsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsYihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2x0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2x0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGNsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsdChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZhZGRobmIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdmFkZGhuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZhZGRobmIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2YWRkaG5iKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobmIoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fczE2KSkpCnN2aW50OF90IHN2YWRkaG5iKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhuYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG5iKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfdTE2KSkpCnN2dWludDhfdCBzdmFkZGhuYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZhZGRobmIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfczY0KSkpCnN2aW50MzJfdCBzdmFkZGhuYihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobmIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fdTE2KSkpCnN2dWludDhfdCBzdmFkZGhudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fczMyKSkpCnN2aW50MTZfdCBzdmFkZGhudChzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfdTE2KSkpCnN2dWludDhfdCBzdmFkZGhudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfczMyKSkpCnN2aW50MTZfdCBzdmFkZGhudChzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsYihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbGIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsYihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsYnQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdmFkZGxidChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbGJ0KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfczMyKSkpCnN2aW50MzJfdCBzdmFkZGxidChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJ0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYnQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbHQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbHQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbHQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsdChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsdChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsdChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbHQoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbHQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbHQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsdChzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsdChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zOF9tKSkpCnN2aW50OF90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3U4X3gpKSkKc3Z1aW50OF90IHN2YWRkcF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczhfeCkpKQpzdmludDhfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkd2Ioc3ZpbnQzMl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkd2Ioc3ZpbnQ2NF90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkd2Ioc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRkd2Ioc3Z1aW50MzJfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkd2Ioc3Z1aW50NjRfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkd2Ioc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3YihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGR3YihzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX3MxNikpKQpzdmludDE2X3Qgc3ZhZGR3YihzdmludDE2X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3YihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGR3YihzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGR3YihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3dChzdmludDMyX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGR3dChzdmludDY0X3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGR3dChzdmludDE2X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3dChzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGR3dChzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGR3dChzdnVpbnQxNl90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczMyKSkpCnN2aW50MzJfdCBzdmFkZHd0KHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczY0KSkpCnN2aW50NjRfdCBzdmFkZHd0KHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3RfczE2KSkpCnN2aW50MTZfdCBzdmFkZHd0KHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHd0KHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHd0KHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHd0KHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiY2F4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YmNheChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJjYXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZiY2F4KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3M4KSkpCnN2aW50OF90IHN2YmNheChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YmNheChzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YmNheChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YmNheChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfdTgpKSkKc3Z1aW50OF90IHN2YmNheChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91MzIpKSkKc3Z1aW50MzJfdCBzdmJjYXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZiY2F4KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3UxNikpKQpzdnVpbnQxNl90IHN2YmNheChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zOCkpKQpzdmludDhfdCBzdmJjYXgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczMyKSkpCnN2aW50MzJfdCBzdmJjYXgoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczY0KSkpCnN2aW50NjRfdCBzdmJjYXgoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfczE2KSkpCnN2aW50MTZfdCBzdmJjYXgoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTgpKSkKc3Z1aW50OF90IHN2YnNsMW4oc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsMW4oc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsMW4oc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsMW4oc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3M4KSkpCnN2aW50OF90IHN2YnNsMW4oc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3MzMikpKQpzdmludDMyX3Qgc3Zic2wxbihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fczY0KSkpCnN2aW50NjRfdCBzdmJzbDFuKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsMW4oc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wxbihzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wxbihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wxbihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wxbihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wxbihzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczMyKSkpCnN2aW50MzJfdCBzdmJzbDFuKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsMW4oc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3MxNikpKQpzdmludDE2X3Qgc3Zic2wxbihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wybihzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wybihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wybihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wybihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wybihzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczMyKSkpCnN2aW50MzJfdCBzdmJzbDJuKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsMm4oc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3MxNikpKQpzdmludDE2X3Qgc3Zic2wybihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3U4KSkpCnN2dWludDhfdCBzdmJzbDJuKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbDJuKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbDJuKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDJuKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zOCkpKQpzdmludDhfdCBzdmJzbDJuKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMm4oc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wybihzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fczE2KSkpCnN2aW50MTZfdCBzdmJzbDJuKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2woc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2woc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zOCkpKQpzdmludDhfdCBzdmJzbChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3MzMikpKQpzdmludDMyX3Qgc3Zic2woc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczE2KSkpCnN2aW50MTZfdCBzdmJzbChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF91OCkpKQpzdnVpbnQ4X3Qgc3Zic2woc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfdTE2KSkpCnN2dWludDE2X3Qgc3Zic2woc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zOCkpKQpzdmludDhfdCBzdmJzbChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3MzMikpKQpzdmludDMyX3Qgc3Zic2woc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfczE2KSkpCnN2aW50MTZfdCBzdmJzbChzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91OCkpKQpzdnVpbnQ4X3Qgc3ZjYWRkKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfdTMyKSkpCnN2dWludDMyX3Qgc3ZjYWRkKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91NjQpKSkKc3Z1aW50NjRfdCBzdmNhZGQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3UxNikpKQpzdnVpbnQxNl90IHN2Y2FkZChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfczgpKSkKc3ZpbnQ4X3Qgc3ZjYWRkKHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3MzMikpKQpzdmludDMyX3Qgc3ZjYWRkKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfczY0KSkpCnN2aW50NjRfdCBzdmNhZGQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zMTYpKSkKc3ZpbnQxNl90IHN2Y2FkZChzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X3MzMikpKQpzdmludDMyX3Qgc3ZjZG90KHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNkb3RfczY0KSkpCnN2aW50NjRfdCBzdmNkb3Qoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmNkb3RfbGFuZShzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2RvdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZjZG90X2xhbmUoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91OCkpKQpzdnVpbnQ4X3Qgc3ZjbWxhKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91MzIpKSkKc3Z1aW50MzJfdCBzdmNtbGEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y21sYShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbWxhKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zOCkpKQpzdmludDhfdCBzdmNtbGEoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3MzMikpKQpzdmludDMyX3Qgc3ZjbWxhKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zNjQpKSkKc3ZpbnQ2NF90IHN2Y21sYShzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfczE2KSkpCnN2aW50MTZfdCBzdmNtbGEoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZjbWxhX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2Y21sYV9sYW5lKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2Y21sYV9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2Y21sYV9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2YzMl9mMTZfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dGx0X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRsdF9mMzJfZjE2X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRsdF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRsdF9mNjRfZjMyX20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRsdF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bHRfZjY0X2YzMl94KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0bHRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bnRfZjE2X2YzMl9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0bnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dG50X2YzMl9mNjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dG50X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnR4X2YzMl9mNjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dHhfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhfZjMyX2Y2NF94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnR4X2YzMl9mNjRfeikpKQpzdmZsb2F0MzJfdCBzdmN2dHhfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0eG50X2YzMl9mNjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dHhudF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3U4KSkpCnN2dWludDhfdCBzdmVvcjMoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3IzKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yMyhzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcjMoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczgpKSkKc3ZpbnQ4X3Qgc3Zlb3IzKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3MzMikpKQpzdmludDMyX3Qgc3Zlb3IzKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3IzKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3MxNikpKQpzdmludDE2X3Qgc3Zlb3IzKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191OCkpKQpzdnVpbnQ4X3Qgc3Zlb3IzKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9yMyhzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191NjQpKSkKc3Z1aW50NjRfdCBzdmVvcjMoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3IzKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3M4KSkpCnN2aW50OF90IHN2ZW9yMyhzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19zMzIpKSkKc3ZpbnQzMl90IHN2ZW9yMyhzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9yMyhzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19zMTYpKSkKc3ZpbnQxNl90IHN2ZW9yMyhzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zlb3JidChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3JidChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3JidChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3JidChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczgpKSkKc3ZpbnQ4X3Qgc3Zlb3JidChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczMyKSkpCnN2aW50MzJfdCBzdmVvcmJ0KHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9yYnQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3MxNikpKQpzdmludDE2X3Qgc3Zlb3JidChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3U4KSkpCnN2dWludDhfdCBzdmVvcmJ0KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcmJ0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcmJ0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcmJ0KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zOCkpKQpzdmludDhfdCBzdmVvcmJ0KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9yYnQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3M2NCkpKQpzdmludDY0X3Qgc3Zlb3JidChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfczE2KSkpCnN2aW50MTZfdCBzdmVvcmJ0KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3U4KSkpCnN2dWludDhfdCBzdmVvcnRiKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcnRiKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcnRiKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcnRiKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zOCkpKQpzdmludDhfdCBzdmVvcnRiKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9ydGIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3J0YihzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fczE2KSkpCnN2aW50MTZfdCBzdmVvcnRiKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTgpKSkKc3Z1aW50OF90IHN2ZW9ydGIoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9ydGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9ydGIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3UxNikpKQpzdnVpbnQxNl90IHN2ZW9ydGIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3M4KSkpCnN2aW50OF90IHN2ZW9ydGIoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3MzMikpKQpzdmludDMyX3Qgc3Zlb3J0YihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczY0KSkpCnN2aW50NjRfdCBzdmVvcnRiKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9ydGIoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zOF9tKSkpCnN2aW50OF90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczhfeikpKQpzdmludDhfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91OF9tKSkpCnN2dWludDhfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczhfbSkpKQpzdmludDhfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zOF94KSkpCnN2aW50OF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczMyX3opKSkKc3ZpbnQzMl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczY0X3opKSkKc3ZpbnQ2NF90IHN2aGFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczE2X3opKSkKc3ZpbnQxNl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91OF94KSkpCnN2dWludDhfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U4X3opKSkKc3Z1aW50OF90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RjbnRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhpc3RjbnRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RjbnRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhpc3RjbnRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RjbnRfczMyX3opKSkKc3Z1aW50MzJfdCBzdmhpc3RjbnRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0Y250X3M2NF96KSkpCnN2dWludDY0X3Qgc3ZoaXN0Y250X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdHNlZ191OCkpKQpzdnVpbnQ4X3Qgc3ZoaXN0c2VnKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdHNlZ19zOCkpKQpzdnVpbnQ4X3Qgc3ZoaXN0c2VnKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zOF9tKSkpCnN2aW50OF90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczhfeikpKQpzdmludDhfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczhfbSkpKQpzdmludDhfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zOF94KSkpCnN2aW50OF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczE2X3opKSkKc3ZpbnQxNl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91OF94KSkpCnN2dWludDhfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczhfbSkpKQpzdmludDhfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zOF96KSkpCnN2aW50OF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91OF96KSkpCnN2dWludDhfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczE2X20pKSkKc3ZpbnQxNl90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zOF94KSkpCnN2aW50OF90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MxNl94KSkpCnN2aW50MTZfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczhfeikpKQpzdmludDhfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MzMl96KSkpCnN2aW50MzJfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U4X20pKSkKc3Z1aW50OF90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MzJfbSkpKQpzdnVpbnQzMl90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91OF94KSkpCnN2dWludDhfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXhfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRudDFfZ2F0aGVyX29mZnNldF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXViX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfbSkpKQpzdmludDY0X3Qgc3Zsb2diX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YzMl9tKSkpCnN2aW50MzJfdCBzdmxvZ2JfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjE2X20pKSkKc3ZpbnQxNl90IHN2bG9nYl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfeCkpKQpzdmludDY0X3Qgc3Zsb2diX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMzJfeCkpKQpzdmludDMyX3Qgc3Zsb2diX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMTZfeCkpKQpzdmludDE2X3Qgc3Zsb2diX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfeikpKQpzdmludDY0X3Qgc3Zsb2diX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMzJfeikpKQpzdmludDMyX3Qgc3Zsb2diX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMTZfeikpKQpzdmludDE2X3Qgc3Zsb2diX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfdTgpKSkKc3Zib29sX3Qgc3ZtYXRjaChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXRjaF91MTYpKSkKc3Zib29sX3Qgc3ZtYXRjaChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3M4KSkpCnN2Ym9vbF90IHN2bWF0Y2goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3MxNikpKQpzdmJvb2xfdCBzdm1hdGNoKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heG5tcF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubXBfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1wX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heG5tcF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubXBfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4bm1wX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczhfbSkpKQpzdmludDhfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zOF94KSkpCnN2aW50OF90IHN2bWF4cF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MzMl94KSkpCnN2aW50MzJfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3M2NF94KSkpCnN2aW50NjRfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MxNl94KSkpCnN2aW50MTZfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3U4X20pKSkKc3Z1aW50OF90IHN2bWF4cF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1heHBfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1heHBfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1heHBfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWF4cF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWF4cF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWF4cF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1wX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tcF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubXBfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1wX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tcF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubXBfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zOF9tKSkpCnN2aW50OF90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWlucF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWlucF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWlucF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtaW5wX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWlucF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91OF94KSkpCnN2dWludDhfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYV9sYW5lKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2bWxhX2xhbmUoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhX2xhbmUoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWxiKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYihzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fczE2KSkpCnN2aW50MTZfdCBzdm1sYWxiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsYihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsYihzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsYihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsYihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfczMyKSkpCnN2aW50MzJfdCBzdm1sYWxiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3MxNikpKQpzdmludDE2X3Qgc3ZtbGFsYihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbGIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbGIoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3UxNikpKQpzdnVpbnQxNl90IHN2bWxhbGIoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWxiX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsYl9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbGJfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsYl9sYW5lKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWxiX2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWx0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fczE2KSkpCnN2aW50MTZfdCBzdm1sYWx0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsdChzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfczMyKSkpCnN2aW50MzJfdCBzdm1sYWx0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbHQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3MxNikpKQpzdmludDE2X3Qgc3ZtbGFsdChzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbHQoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbHQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3UxNikpKQpzdnVpbnQxNl90IHN2bWxhbHQoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWx0X2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbHRfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsdF9sYW5lKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWx0X2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc19sYW5lKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2bWxzX2xhbmUoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzX2xhbmUoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsYihzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fczE2KSkpCnN2aW50MTZfdCBzdm1sc2xiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsYihzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsYihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNsYihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfczMyKSkpCnN2aW50MzJfdCBzdm1sc2xiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3MxNikpKQpzdmludDE2X3Qgc3ZtbHNsYihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3UzMikpKQpzdnVpbnQzMl90IHN2bWxzbGIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbGIoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3UxNikpKQpzdnVpbnQxNl90IHN2bWxzbGIoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsYl9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbGJfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYl9sYW5lKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2xiX2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2x0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fczE2KSkpCnN2aW50MTZfdCBzdm1sc2x0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNsdChzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfczMyKSkpCnN2aW50MzJfdCBzdm1sc2x0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbHQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3MxNikpKQpzdmludDE2X3Qgc3ZtbHNsdChzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3UzMikpKQpzdnVpbnQzMl90IHN2bWxzbHQoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbHQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3UxNikpKQpzdnVpbnQxNl90IHN2bWxzbHQoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2x0X2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbHRfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsdF9sYW5lKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2x0X2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bW92bGIoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfczY0KSkpCnN2aW50NjRfdCBzdm1vdmxiKHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3MxNikpKQpzdmludDE2X3Qgc3Ztb3ZsYihzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3UzMikpKQpzdnVpbnQzMl90IHN2bW92bGIoc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bW92bGIoc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3UxNikpKQpzdnVpbnQxNl90IHN2bW92bGIoc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfczMyKSkpCnN2aW50MzJfdCBzdm1vdmx0KHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3M2NCkpKQpzdmludDY0X3Qgc3Ztb3ZsdChzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF9zMTYpKSkKc3ZpbnQxNl90IHN2bW92bHQoc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF91MzIpKSkKc3Z1aW50MzJfdCBzdm1vdmx0KHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF91NjQpKSkKc3Z1aW50NjRfdCBzdm1vdmx0KHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF91MTYpKSkKc3Z1aW50MTZfdCBzdm1vdmx0KHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm11bF9sYW5lKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxfbGFuZShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsX2xhbmUoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdm11bF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fczMyKSkpCnN2aW50MzJfdCBzdm11bGxiKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fczY0KSkpCnN2aW50NjRfdCBzdm11bGxiKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fczE2KSkpCnN2aW50MTZfdCBzdm11bGxiKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbGIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbGIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbGIoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfczMyKSkpCnN2aW50MzJfdCBzdm11bGxiKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfczY0KSkpCnN2aW50NjRfdCBzdm11bGxiKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfczE2KSkpCnN2aW50MTZfdCBzdm11bGxiKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbGIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbGIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsYl9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm11bGxiX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGxiX2xhbmUoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbGJfbGFuZShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fczMyKSkpCnN2aW50MzJfdCBzdm11bGx0KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fczY0KSkpCnN2aW50NjRfdCBzdm11bGx0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fczE2KSkpCnN2aW50MTZfdCBzdm11bGx0KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbHQoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbHQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbHQoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfczMyKSkpCnN2aW50MzJfdCBzdm11bGx0KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfczY0KSkpCnN2aW50NjRfdCBzdm11bGx0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfczE2KSkpCnN2aW50MTZfdCBzdm11bGx0KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbHQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3UxNikpKQpzdnVpbnQxNl90IHN2bXVsbHQoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsdF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm11bGx0X2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGx0X2xhbmUoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbHRfbGFuZShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZuYnNsKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3UzMikpKQpzdnVpbnQzMl90IHN2bmJzbChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm5ic2woc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZuYnNsKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3M4KSkpCnN2aW50OF90IHN2bmJzbChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bmJzbChzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bmJzbChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bmJzbChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTgpKSkKc3Z1aW50OF90IHN2bmJzbChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF91MzIpKSkKc3Z1aW50MzJfdCBzdm5ic2woc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTY0KSkpCnN2dWludDY0X3Qgc3ZuYnNsKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3UxNikpKQpzdnVpbnQxNl90IHN2bmJzbChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zOCkpKQpzdmludDhfdCBzdm5ic2woc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfczMyKSkpCnN2aW50MzJfdCBzdm5ic2woc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfczY0KSkpCnN2aW50NjRfdCBzdm5ic2woc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfczE2KSkpCnN2aW50MTZfdCBzdm5ic2woc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYXRjaF91OCkpKQpzdmJvb2xfdCBzdm5tYXRjaChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfdTE2KSkpCnN2Ym9vbF90IHN2bm1hdGNoKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hdGNoX3M4KSkpCnN2Ym9vbF90IHN2bm1hdGNoKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfczE2KSkpCnN2Ym9vbF90IHN2bm1hdGNoKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxfdTgpKSkKc3Z1aW50OF90IHN2cG11bChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZwbXVsbGIoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZwbXVsbGIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl9uX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsYl9wYWlyKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZwbXVsbGJfcGFpcihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsYl9wYWlyKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfdTMyKSkpCnN2dWludDMyX3Qgc3ZwbXVsbGJfcGFpcihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbHQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsdChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsdChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX25fdTgpKSkKc3Z1aW50OF90IHN2cG11bGx0X3BhaXIoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3BhaXJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsdF9wYWlyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3BhaXJfdTgpKSkKc3Z1aW50OF90IHN2cG11bGx0X3BhaXIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsdF9wYWlyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWJzX20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczMyX20pKSkKc3ZpbnQzMl90IHN2cWFic19tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczY0X20pKSkKc3ZpbnQ2NF90IHN2cWFic19tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczE2X20pKSkKc3ZpbnQxNl90IHN2cWFic19tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczhfeCkpKQpzdmludDhfdCBzdnFhYnNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MzMl94KSkpCnN2aW50MzJfdCBzdnFhYnNfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfeCkpKQpzdmludDY0X3Qgc3ZxYWJzX3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczE2X3gpKSkKc3ZpbnQxNl90IHN2cWFic194KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxYWJzX3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMzJfeikpKQpzdmludDMyX3Qgc3ZxYWJzX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczY0X3opKSkKc3ZpbnQ2NF90IHN2cWFic196KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhYnNfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczhfeCkpKQpzdmludDhfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zOF96KSkpCnN2aW50OF90IHN2cWFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zOF9tKSkpCnN2aW50OF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cWFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczhfeikpKQpzdmludDhfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91OF9tKSkpCnN2dWludDhfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U4X3gpKSkKc3Z1aW50OF90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2cWFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cWFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2cWFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczgpKSkKc3ZpbnQ4X3Qgc3ZxY2FkZChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczMyKSkpCnN2aW50MzJfdCBzdnFjYWRkKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFjYWRkX3M2NCkpKQpzdmludDY0X3Qgc3ZxY2FkZChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zMTYpKSkKc3ZpbnQxNl90IHN2cWNhZGQoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWxiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGJfbGFuZShzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYl9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYnQoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxidChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGJ0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxidChzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbGJ0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsYnQoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbHQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsdChzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsdChzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWx0X2xhbmUoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsYihzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYl9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xiX2xhbmUoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xidChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJ0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYnQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGJ0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsYnQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2xidChzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsdChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsdChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsdChzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2x0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2x0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2x0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2x0X2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbHRfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9uX3M4KSkpCnN2aW50OF90IHN2cWRtdWxoKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxoKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGgoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsaChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczgpKSkKc3ZpbnQ4X3Qgc3ZxZG11bGgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGgoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsaChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxoKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsaF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGhfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxoX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGxiKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsYihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsbGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbGIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGxiKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsYihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbGJfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbGJfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbHQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGx0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsdChzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsdChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbHQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGx0KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsdF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczhfbSkpKQpzdmludDhfdCBzdnFuZWdfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMzJfbSkpKQpzdmludDMyX3Qgc3ZxbmVnX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zNjRfbSkpKQpzdmludDY0X3Qgc3ZxbmVnX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfbSkpKQpzdmludDE2X3Qgc3ZxbmVnX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF94KSkpCnN2aW50OF90IHN2cW5lZ194KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczMyX3gpKSkKc3ZpbnQzMl90IHN2cW5lZ194KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M2NF94KSkpCnN2aW50NjRfdCBzdnFuZWdfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfeCkpKQpzdmludDE2X3Qgc3ZxbmVnX3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczhfeikpKQpzdmludDhfdCBzdnFuZWdfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MzMl96KSkpCnN2aW50MzJfdCBzdnFuZWdfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zNjRfeikpKQpzdmludDY0X3Qgc3ZxbmVnX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczE2X3opKSkKc3ZpbnQxNl90IHN2cW5lZ196KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9zOCkpKQpzdmludDhfdCBzdnFyZGNtbGFoKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczMyKSkpCnN2aW50MzJfdCBzdnFyZGNtbGFoKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczY0KSkpCnN2aW50NjRfdCBzdnFyZGNtbGFoKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczE2KSkpCnN2aW50MTZfdCBzdnFyZGNtbGFoKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkY21sYWhfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRjbWxhaF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zOCkpKQpzdmludDhfdCBzdnFyZG1sYWgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sYWgoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sYWgoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sYWgoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX3M4KSkpCnN2aW50OF90IHN2cXJkbWxhaChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxhaChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxhaChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaChzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbGFoX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sYWhfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3M4KSkpCnN2aW50OF90IHN2cXJkbWxzaChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxzaChzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxzaChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxzaChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtbHNoKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbHNoKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbHNoKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sc2hfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxzaF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtdWxoKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX25fczMyKSkpCnN2aW50MzJfdCBzdnFyZG11bGgoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtdWxoKHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbXVsaChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX3M4KSkpCnN2aW50OF90IHN2cXJkbXVsaChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtdWxoKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbXVsaChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczE2KSkpCnN2aW50MTZfdCBzdnFyZG11bGgoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZG11bGhfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFyZG11bGhfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFyZG11bGhfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zOF94KSkpCnN2aW50OF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczhfeikpKQpzdmludDhfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zOF9tKSkpCnN2aW50OF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczhfeCkpKQpzdmludDhfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MzMl94KSkpCnN2aW50MzJfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMzJfeikpKQpzdmludDMyX3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczE2X3opKSkKc3ZpbnQxNl90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91OF9tKSkpCnN2dWludDhfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91OF94KSkpCnN2dWludDhfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91OF96KSkpCnN2dWludDhfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MzJfeikpKQpzdnVpbnQzMl90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fczMyKSkpCnN2aW50MTZfdCBzdnFyc2hybmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXJzaHJuYihzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnFyc2hybmIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hybmIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocm5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZxcnNocm5iKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZxcnNocm50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXJzaHJudChzdmludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fczE2KSkpCnN2aW50OF90IHN2cXJzaHJudChzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hybnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocm50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZxcnNocm50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVuYl9uX3MzMikpKQpzdnVpbnQxNl90IHN2cXJzaHJ1bmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW5iX25fczY0KSkpCnN2dWludDMyX3Qgc3ZxcnNocnVuYihzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bmJfbl9zMTYpKSkKc3Z1aW50OF90IHN2cXJzaHJ1bmIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW50X25fczMyKSkpCnN2dWludDE2X3Qgc3ZxcnNocnVudChzdnVpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bnRfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hydW50KHN2dWludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVudF9uX3MxNikpKQpzdnVpbnQ4X3Qgc3ZxcnNocnVudChzdnVpbnQ4X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczhfbSkpKQpzdmludDhfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zOF94KSkpCnN2aW50OF90IHN2cXNobF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXNobF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91OF96KSkpCnN2dWludDhfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXNobF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cXNobF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczY0X20pKSkKc3ZpbnQ2NF90IHN2cXNobF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cXNobF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczhfeCkpKQpzdmludDhfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zOF96KSkpCnN2aW50OF90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U4X20pKSkKc3Z1aW50OF90IHN2cXNobF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXNobF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91OF94KSkpCnN2dWludDhfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MTZfeikpKQpzdnVpbnQxNl90IHN2cXNobF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M4X20pKSkKc3Z1aW50OF90IHN2cXNobHVfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMzJfbSkpKQpzdnVpbnQzMl90IHN2cXNobHVfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGx1X20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc2hsdV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zOF94KSkpCnN2dWludDhfdCBzdnFzaGx1X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzaGx1X3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M2NF94KSkpCnN2dWludDY0X3Qgc3Zxc2hsdV94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMTZfeCkpKQpzdnVpbnQxNl90IHN2cXNobHVfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczhfeikpKQpzdnVpbnQ4X3Qgc3Zxc2hsdV96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MzMl96KSkpCnN2dWludDMyX3Qgc3Zxc2hsdV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zNjRfeikpKQpzdnVpbnQ2NF90IHN2cXNobHVfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczE2X3opKSkKc3Z1aW50MTZfdCBzdnFzaGx1X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cXNocm5iKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXNocm5iKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zxc2hybmIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXNocm5iKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zxc2hybmIoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cXNocm5iKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fczMyKSkpCnN2aW50MTZfdCBzdnFzaHJudChzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cXNocm50KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnFzaHJudChzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXNocm50KHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fdTY0KSkpCnN2dWludDMyX3Qgc3Zxc2hybnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl91MTYpKSkKc3Z1aW50OF90IHN2cXNocm50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW5iX25fczMyKSkpCnN2dWludDE2X3Qgc3Zxc2hydW5iKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW5iX25fczY0KSkpCnN2dWludDMyX3Qgc3Zxc2hydW5iKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW5iX25fczE2KSkpCnN2dWludDhfdCBzdnFzaHJ1bmIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bnRfbl9zMzIpKSkKc3Z1aW50MTZfdCBzdnFzaHJ1bnQoc3Z1aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bnRfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJ1bnQoc3Z1aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bnRfbl9zMTYpKSkKc3Z1aW50OF90IHN2cXNocnVudChzdnVpbnQ4X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczhfbSkpKQpzdmludDhfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zOF94KSkpCnN2aW50OF90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczY0X20pKSkKc3ZpbnQ2NF90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczhfeCkpKQpzdmludDhfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zOF96KSkpCnN2aW50OF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91OF96KSkpCnN2dWludDhfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zOF94KSkpCnN2aW50OF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczhfeikpKQpzdmludDhfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zOF9tKSkpCnN2aW50OF90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczhfeCkpKQpzdmludDhfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczE2X3opKSkKc3ZpbnQxNl90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91OF9tKSkpCnN2dWludDhfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U4X3opKSkKc3Z1aW50OF90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl9zMzIpKSkKc3ZpbnQxNl90IHN2cXh0bmIoc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfczY0KSkpCnN2aW50MzJfdCBzdnF4dG5iKHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3MxNikpKQpzdmludDhfdCBzdnF4dG5iKHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3UzMikpKQpzdnVpbnQxNl90IHN2cXh0bmIoc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2cXh0bmIoc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3ZxeHRuYihzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczMyKSkpCnN2aW50MTZfdCBzdnF4dG50KHN2aW50MTZfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczY0KSkpCnN2aW50MzJfdCBzdnF4dG50KHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczE2KSkpCnN2aW50OF90IHN2cXh0bnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3UzMikpKQpzdnVpbnQxNl90IHN2cXh0bnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3U2NCkpKQpzdnVpbnQzMl90IHN2cXh0bnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3UxNikpKQpzdnVpbnQ4X3Qgc3ZxeHRudChzdnVpbnQ4X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bmJfczMyKSkpCnN2dWludDE2X3Qgc3ZxeHR1bmIoc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW5iX3M2NCkpKQpzdnVpbnQzMl90IHN2cXh0dW5iKHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVuYl9zMTYpKSkKc3Z1aW50OF90IHN2cXh0dW5iKHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVudF9zMzIpKSkKc3Z1aW50MTZfdCBzdnF4dHVudChzdnVpbnQxNl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bnRfczY0KSkpCnN2dWludDMyX3Qgc3ZxeHR1bnQoc3Z1aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW50X3MxNikpKQpzdnVpbnQ4X3Qgc3ZxeHR1bnQoc3Z1aW50OF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZyYWRkaG5iKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cmFkZGhuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cmFkZGhuYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cmFkZGhuYihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobmIoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3MxNikpKQpzdmludDhfdCBzdnJhZGRobmIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobmIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG5iKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG5iKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZyYWRkaG5iKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhuYihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfczE2KSkpCnN2aW50OF90IHN2cmFkZGhuYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fczE2KSkpCnN2aW50OF90IHN2cmFkZGhudChzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczE2KSkpCnN2aW50OF90IHN2cmFkZGhudChzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmVjcGVfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZyZWNwZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJlY3BlX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zOF94KSkpCnN2aW50OF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczhfeikpKQpzdmludDhfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91OF94KSkpCnN2dWludDhfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zOF9tKSkpCnN2aW50OF90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczhfeCkpKQpzdmludDhfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczE2X3opKSkKc3ZpbnQxNl90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91OF9tKSkpCnN2dWludDhfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U4X3opKSkKc3Z1aW50OF90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczhfbSkpKQpzdmludDhfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zOF94KSkpCnN2aW50OF90IHN2cnNobF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cnNobF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91OF96KSkpCnN2dWludDhfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cnNobF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczMyX20pKSkKc3ZpbnQzMl90IHN2cnNobF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczY0X20pKSkKc3ZpbnQ2NF90IHN2cnNobF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cnNobF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczhfeCkpKQpzdmludDhfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zNjRfeCkpKQpzdmludDY0X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMTZfeCkpKQpzdmludDE2X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zOF96KSkpCnN2aW50OF90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MzMl96KSkpCnN2aW50MzJfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MxNl96KSkpCnN2aW50MTZfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U4X20pKSkKc3Z1aW50OF90IHN2cnNobF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cnNobF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91OF94KSkpCnN2dWludDhfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdThfeikpKQpzdnVpbnQ4X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MTZfeikpKQpzdnVpbnQxNl90IHN2cnNobF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczhfbSkpKQpzdmludDhfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2cnNocl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3U4X20pKSkKc3Z1aW50OF90IHN2cnNocl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cnNocl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnJzaHJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91OF94KSkpCnN2dWludDhfdCBzdnJzaHJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNocl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cnNocl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cnNocl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zOF96KSkpCnN2aW50OF90IHN2cnNocl96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cnNocl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zyc2hyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zyc2hyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzaHJuYihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnNocm5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnJzaHJuYihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc2hybmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3Zyc2hybmIoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnJzaHJuYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3Zyc2hybnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzaHJudChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc2hybnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc2hybnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fczY0KSkpCnN2aW50MzJfdCBzdnJzaHJudChzdmludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc2hybnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzcXJ0ZV9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc3FydGVfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV91MzJfeikpKQpzdnVpbnQzMl90IHN2cnNxcnRlX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fczgpKSkKc3ZpbnQ4X3Qgc3Zyc3JhKHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fczMyKSkpCnN2aW50MzJfdCBzdnJzcmEoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3M2NCkpKQpzdmludDY0X3Qgc3Zyc3JhKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cnNyYShzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTgpKSkKc3Z1aW50OF90IHN2cnNyYShzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zyc3JhKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cnNyYShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnJzcmEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3Zyc3ViaG5iKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnN1YmhuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cnN1YmhuYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhuYihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdnJzdWJobmIoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3MxNikpKQpzdmludDhfdCBzdnJzdWJobmIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobmIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG5iKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG5iKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3MzMikpKQpzdmludDE2X3Qgc3Zyc3ViaG5iKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhuYihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfczE2KSkpCnN2aW50OF90IHN2cnN1YmhuYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fczY0KSkpCnN2aW50MzJfdCBzdnJzdWJobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fczE2KSkpCnN2aW50OF90IHN2cnN1YmhudChzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczY0KSkpCnN2aW50MzJfdCBzdnJzdWJobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfczE2KSkpCnN2aW50OF90IHN2cnN1YmhudChzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbGIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl91MzIpKSkKc3Z1aW50MzJfdCBzdnNiY2xiKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl91NjQpKSkKc3Z1aW50NjRfdCBzdnNiY2xiKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbHQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF91MzIpKSkKc3Z1aW50MzJfdCBzdnNiY2x0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF91NjQpKSkKc3Z1aW50NjRfdCBzdnNiY2x0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzaGxsYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c2hsbGIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fczE2KSkpCnN2aW50MTZfdCBzdnNobGxiKHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzaGxsYihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzaGxsYihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzaGxsYihzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c2hsbHQoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fczY0KSkpCnN2aW50NjRfdCBzdnNobGx0KHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzaGxsdChzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2hsbHQoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2hsbHQoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2c2hsbHQoc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZzaHJuYihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzaHJuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnNocm5iKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c2hybmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fczY0KSkpCnN2aW50MzJfdCBzdnNocm5iKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnNocm5iKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2c2hybnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c2hybnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZzaHJudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c2hybnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2c2hybnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzaHJudChzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3U4KSkpCnN2dWludDhfdCBzdnNsaShzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNsaShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2xpKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzbGkoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zOCkpKQpzdmludDhfdCBzdnNsaShzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fczMyKSkpCnN2aW50MzJfdCBzdnNsaShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c2xpKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3MxNikpKQpzdmludDE2X3Qgc3ZzbGkoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91OF9tKSkpCnN2dWludDhfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3FhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzcWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91OF94KSkpCnN2dWludDhfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3FhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3FhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzcWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3FhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzcWFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3FhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzcWFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2c3FhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczgpKSkKc3ZpbnQ4X3Qgc3ZzcmEoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3MzMikpKQpzdmludDMyX3Qgc3ZzcmEoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczY0KSkpCnN2aW50NjRfdCBzdnNyYShzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3JhKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3U4KSkpCnN2dWludDhfdCBzdnNyYShzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNyYShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3JhKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzcmEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zzcmkoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zzcmkoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNyaShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3JpKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczgpKSkKc3ZpbnQ4X3Qgc3Zzcmkoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3MzMikpKQpzdmludDMyX3Qgc3Zzcmkoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczY0KSkpCnN2aW50NjRfdCBzdnNyaShzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3JpKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfZjMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV91MzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfZjMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NGluZGV4X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDhfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZzdWJobmIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnN1YmhuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZzdWJobmIoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG5iKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZzdWJobmIoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fczE2KSkpCnN2aW50OF90IHN2c3ViaG5iKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhuYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG5iKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfdTE2KSkpCnN2dWludDhfdCBzdnN1YmhuYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZzdWJobmIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfczY0KSkpCnN2aW50MzJfdCBzdnN1YmhuYihzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobmIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fdTE2KSkpCnN2dWludDhfdCBzdnN1YmhudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnN1YmhudChzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZzdWJobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfdTE2KSkpCnN2dWludDhfdCBzdnN1YmhudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfczMyKSkpCnN2aW50MTZfdCBzdnN1YmhudChzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3M2NCkpKQpzdmludDMyX3Qgc3ZzdWJobnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobnQoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsYihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsYihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYnQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdnN1YmxidChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGJ0KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfczMyKSkpCnN2aW50MzJfdCBzdnN1YmxidChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGJ0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYnQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsdChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsdChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsdChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHQoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJsdChzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsdChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX25fczY0KSkpCnN2aW50NjRfdCBzdnN1Ymx0YihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHRiKHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfczMyKSkpCnN2aW50MzJfdCBzdnN1Ymx0YihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHRiKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdGIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vid2Ioc3ZpbnQzMl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3Vid2Ioc3ZpbnQ2NF90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3Vid2Ioc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2c3Vid2Ioc3Z1aW50MzJfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3Vid2Ioc3Z1aW50NjRfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3Vid2Ioc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3YihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJ3YihzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJ3YihzdmludDE2X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3YihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJ3YihzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJ3YihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3dChzdmludDMyX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJ3dChzdmludDY0X3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJ3dChzdmludDE2X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3dChzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJ3dChzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJ3dChzdnVpbnQxNl90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczMyKSkpCnN2aW50MzJfdCBzdnN1Ynd0KHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczY0KSkpCnN2aW50NjRfdCBzdnN1Ynd0KHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3RfczE2KSkpCnN2aW50MTZfdCBzdnN1Ynd0KHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ynd0KHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ynd0KHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ynd0KHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfdTgpKSkKc3Z1aW50OF90IHN2dGJsMihzdnVpbnQ4eDJfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl91MzIpKSkKc3Z1aW50MzJfdCBzdnRibDIoc3Z1aW50MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl91NjQpKSkKc3Z1aW50NjRfdCBzdnRibDIoc3Z1aW50NjR4Ml90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl91MTYpKSkKc3Z1aW50MTZfdCBzdnRibDIoc3Z1aW50MTZ4Ml90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9zOCkpKQpzdmludDhfdCBzdnRibDIoc3ZpbnQ4eDJfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0YmwyKHN2ZmxvYXQ2NHgyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRibDIoc3ZmbG9hdDMyeDJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dGJsMihzdmZsb2F0MTZ4Ml90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9zMzIpKSkKc3ZpbnQzMl90IHN2dGJsMihzdmludDMyeDJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfczY0KSkpCnN2aW50NjRfdCBzdnRibDIoc3ZpbnQ2NHgyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3MxNikpKQpzdmludDE2X3Qgc3Z0YmwyKHN2aW50MTZ4Ml90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3U4KSkpCnN2dWludDhfdCBzdnRieChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3UzMikpKQpzdnVpbnQzMl90IHN2dGJ4KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfdTY0KSkpCnN2dWludDY0X3Qgc3Z0Yngoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF91MTYpKSkKc3Z1aW50MTZfdCBzdnRieChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3M4KSkpCnN2aW50OF90IHN2dGJ4KHN2aW50OF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRieChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dGJ4KHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0Yngoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3MzMikpKQpzdmludDMyX3Qgc3Z0Yngoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczY0KSkpCnN2aW50NjRfdCBzdnRieChzdmludDY0X3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9zMTYpKSkKc3ZpbnQxNl90IHN2dGJ4KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zOF9tKSkpCnN2aW50OF90IHN2dXFhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczhfeikpKQpzdmludDhfdCBzdnVxYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczhfbSkpKQpzdmludDhfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3Z1cWFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3Z1cWFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3Z1cWFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zOF94KSkpCnN2aW50OF90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdnVxYWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdnVxYWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdnVxYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczMyX3opKSkKc3ZpbnQzMl90IHN2dXFhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczY0X3opKSkKc3ZpbnQ2NF90IHN2dXFhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczE2X3opKSkKc3ZpbnQxNl90IHN2dXFhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iOF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I4KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IzMl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IzMihpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iNjRfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iNjQoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjE2X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjE2KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I4X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjgoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyKGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMTZfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMTYoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IzMl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I4X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjgodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMzJfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMzIodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iNjRfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iNjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMTZfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMTYodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iOF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I4KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IzMl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IzMihpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iNjRfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iNjQoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjE2X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjE2KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I4X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjgoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyKGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMTZfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMTYoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IzMl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I4X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjgodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMzJfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMzIodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iNjRfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iNjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMTZfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMTYodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd191OCkpKQpzdmJvb2xfdCBzdndoaWxlcncodWludDhfdCBjb25zdCAqLCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3M4KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhpbnQ4X3QgY29uc3QgKiwgaW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlcncodWludDY0X3QgY29uc3QgKiwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjY0KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhmbG9hdDY0X3QgY29uc3QgKiwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlcncoaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3UxNikpKQpzdmJvb2xfdCBzdndoaWxlcncodWludDE2X3QgY29uc3QgKiwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjE2KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhmbG9hdDE2X3QgY29uc3QgKiwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3MxNikpKQpzdmJvb2xfdCBzdndoaWxlcncoaW50MTZfdCBjb25zdCAqLCBpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlcncodWludDMyX3QgY29uc3QgKiwgdWludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfZjMyKSkpCnN2Ym9vbF90IHN2d2hpbGVydyhmbG9hdDMyX3QgY29uc3QgKiwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlcncoaW50MzJfdCBjb25zdCAqLCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3U4KSkpCnN2Ym9vbF90IHN2d2hpbGV3cih1aW50OF90IGNvbnN0ICosIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczgpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGludDhfdCBjb25zdCAqLCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGV3cih1aW50NjRfdCBjb25zdCAqLCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGZsb2F0NjRfdCBjb25zdCAqLCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGV3cihpbnQ2NF90IGNvbnN0ICosIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cih1aW50MTZfdCBjb25zdCAqLCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGZsb2F0MTZfdCBjb25zdCAqLCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cihpbnQxNl90IGNvbnN0ICosIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGV3cih1aW50MzJfdCBjb25zdCAqLCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGZsb2F0MzJfdCBjb25zdCAqLCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGV3cihpbnQzMl90IGNvbnN0ICosIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3U4KSkpCnN2dWludDhfdCBzdnhhcihzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnhhcihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2eGFyKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fdTE2KSkpCnN2dWludDE2X3Qgc3Z4YXIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl9zOCkpKQpzdmludDhfdCBzdnhhcihzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fczMyKSkpCnN2aW50MzJfdCBzdnhhcihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2eGFyKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3MxNikpKQpzdmludDE2X3Qgc3Z4YXIoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNl9TQ0FMQVJfQVJJVEhNRVRJQykKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X2JmMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3X2JmMTYoYmZsb2F0MTZfdCBjb25zdCAqLCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfYmYxNikpKQpzdmJvb2xfdCBzdndoaWxld3JfYmYxNihiZmxvYXQxNl90IGNvbnN0ICosIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfYmYxNikpKQpzdmJvb2xfdCBzdndoaWxlcncoYmZsb2F0MTZfdCBjb25zdCAqLCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX2JmMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGJmbG9hdDE2X3QgY29uc3QgKiwgYmZsb2F0MTZfdCBjb25zdCAqKTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNl9TQ0FMQVJfQVJJVEhNRVRJQykKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMikgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0YmwyX2JmMTYoc3ZiZmxvYXQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRieF9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRibDIoc3ZiZmxvYXQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0Yngoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2dWludDE2X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMl9BRVMpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWVzZF91OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNkX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNlX3U4KSkpCnN2dWludDhfdCBzdmFlc2VfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFlc2ltY191OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNpbWNfdTgoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNtY191OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNtY191OChzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGJfcGFpcl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGJfcGFpcl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3BhaXJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdF9wYWlyX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdF9wYWlyX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWVzZF91OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNkKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWVzZV91OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNlKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWVzaW1jX3U4KSkpCnN2dWludDhfdCBzdmFlc2ltYyhzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNtY191OCkpKQpzdnVpbnQ4X3Qgc3ZhZXNtYyhzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiX3BhaXIoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsYl9wYWlyKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGx0X3BhaXIoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdF9wYWlyKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTJfQUVTKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyX1NIQTMpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmF4MV91NjQpKSkKc3Z1aW50NjRfdCBzdnJheDFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJheDFfczY0KSkpCnN2aW50NjRfdCBzdnJheDFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmF4MV91NjQpKSkKc3Z1aW50NjRfdCBzdnJheDEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJheDFfczY0KSkpCnN2aW50NjRfdCBzdnJheDEoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTJfU0hBMykKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMl9TTTQpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c200ZV91MzIpKSkKc3Z1aW50MzJfdCBzdnNtNGVfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNtNGVrZXlfdTMyKSkpCnN2dWludDMyX3Qgc3ZzbTRla2V5X3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c200ZV91MzIpKSkKc3Z1aW50MzJfdCBzdnNtNGUoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNtNGVrZXlfdTMyKSkpCnN2dWludDMyX3Qgc3ZzbTRla2V5KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTJfU000KQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZmRvdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmZG90X25fZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmZG90X2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZkb3RfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGJfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsYl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWxiX2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbGJfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWxiX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbHRfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWx0X25fZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsdF9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWx0X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsdF9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1tbGFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbWxhX2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmNsYXN0YV9uX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Y2xhc3RhX2JmMTYoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9iZjE2KSkpCmJmbG9hdDE2X3Qgc3ZjbGFzdGJfbl9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmNsYXN0Yl9iZjE2KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2JmMTZfbSkpKQpzdnVpbnQxNl90IHN2Y250X2JmMTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfYmYxNl94KSkpCnN2dWludDE2X3Qgc3ZjbnRfYmYxNl94KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9iZjE2X3opKSkKc3Z1aW50MTZfdCBzdmNudF9iZjE2X3ooc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9iZjE2KSkpCnN2YmZsb2F0MTZ4Ml90IHN2Y3JlYXRlMl9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZjcmVhdGUzX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9iZjE2KSkpCnN2YmZsb2F0MTZ4NF90IHN2Y3JlYXRlNF9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2JmMTZfZjMyX20pKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0X2JmMTZfZjMyX20oc3ZiZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9iZjE2X2YzMl94KSkpCnN2YmZsb2F0MTZfdCBzdmN2dF9iZjE2X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2JmMTZfZjMyX3opKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0X2JmMTZfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRudF9iZjE2X2YzMl9tKSkpCnN2YmZsb2F0MTZfdCBzdmN2dG50X2JmMTZfZjMyX20oc3ZiZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX25fYmYxNihiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iZjE2X20pKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX25fYmYxNl9tKHN2YmZsb2F0MTZfdCwgc3Zib29sX3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTZfeCkpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbl9iZjE2X3goc3Zib29sX3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTZfeikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbl9iZjE2X3ooc3Zib29sX3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2xhbmVfYmYxNihzdmJmbG9hdDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBxX25fYmYxNihiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBxX2xhbmVfYmYxNihzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZleHRfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZnZXQyX2JmMTYoc3ZiZmxvYXQxNngyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Z2V0M19iZjE2KHN2YmZsb2F0MTZ4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmdldDRfYmYxNihzdmJmbG9hdDE2eDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmluc3Jfbl9iZjE2KHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfYmYxNikpKQpiZmxvYXQxNl90IHN2bGFzdGFfYmYxNihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9iZjE2KSkpCmJmbG9hdDE2X3Qgc3ZsYXN0Yl9iZjE2KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGQxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMXJxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZsZDJfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZ4Ml90IHN2bGQyX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmxkM19iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZsZDNfdm51bV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9iZjE2KSkpCnN2YmZsb2F0MTZ4NF90IHN2bGQ0X2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdmxkNF92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZGZmMV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZGZmMV92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG5mMV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG5mMV92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG50MV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG50MV92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2JmMTYpKSkKdWludDY0X3Qgc3ZsZW5fYmYxNihzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnJldl9iZjE2KHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2c2VsX2JmMTYoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZzZXQyX2JmMTYoc3ZiZmxvYXQxNngyX3QsIHVpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdnNldDNfYmYxNihzdmJmbG9hdDE2eDNfdCwgdWludDY0X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9iZjE2KSkpCnN2YmZsb2F0MTZ4NF90IHN2c2V0NF9iZjE2KHN2YmZsb2F0MTZ4NF90LCB1aW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZzcGxpY2VfYmYxNihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9iZjE2KSkpCnZvaWQgc3ZzdDFfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX2JmMTYpKSkKdm9pZCBzdnN0MV92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfYmYxNikpKQp2b2lkIHN2c3QyX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX2JmMTYpKSkKdm9pZCBzdnN0Ml92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19iZjE2KSkpCnZvaWQgc3ZzdDNfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBzdmJmbG9hdDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fYmYxNikpKQp2b2lkIHN2c3QzX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X2JmMTYpKSkKdm9pZCBzdnN0NF9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDRfdm51bV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIGludDY0X3QsIHN2YmZsb2F0MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9iZjE2KSkpCnZvaWQgc3ZzdG50MV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdG50MV92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0YmxfYmYxNihzdmJmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4xX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4yX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9iZjE2KSkpCnN2YmZsb2F0MTZ4Ml90IHN2dW5kZWYyX2JmMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdnVuZGVmM19iZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWY0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3Z1bmRlZjRfYmYxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dW5kZWZfYmYxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAyX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAyX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZmRvdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmZG90KHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZmRvdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZmRvdChzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZmRvdF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmZG90X2xhbmUoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbGJfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWxiKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWxiX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsYl9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGJfbGFuZShzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbHQoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsdChzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWx0X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsdF9sYW5lKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1tbGFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbWxhKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgYmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmNsYXN0YihzdmJvb2xfdCwgYmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9iZjE2X20pKSkKc3Z1aW50MTZfdCBzdmNudF9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfYmYxNl94KSkpCnN2dWludDE2X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2JmMTZfeikpKQpzdnVpbnQxNl90IHN2Y250X3ooc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdmNyZWF0ZTIoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZjcmVhdGUzKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZjcmVhdGU0KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9iZjE2X2YzMl9tKSkpCnN2YmZsb2F0MTZfdCBzdmN2dF9iZjE2X20oc3ZiZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfYmYxNl9mMzJfeCkpKQpzdmJmbG9hdDE2X3Qgc3ZjdnRfYmYxNl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9iZjE2X2YzMl96KSkpCnN2YmZsb2F0MTZfdCBzdmN2dF9iZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bnRfYmYxNl9mMzJfbSkpKQpzdmJmbG9hdDE2X3Qgc3ZjdnRudF9iZjE2X20oc3ZiZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmR1cF9iZjE2KGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iZjE2X20pKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2JmMTZfbShzdmJmbG9hdDE2X3QsIHN2Ym9vbF90LCBiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYmYxNl94KSkpCnN2YmZsb2F0MTZfdCBzdmR1cF9iZjE2X3goc3Zib29sX3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iZjE2X3opKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2JmMTZfeihzdmJvb2xfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2xhbmUoc3ZiZmxvYXQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmR1cHFfYmYxNihiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90LCBiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwcV9sYW5lKHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZleHQoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmdldDIoc3ZiZmxvYXQxNngyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmdldDMoc3ZiZmxvYXQxNngzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmdldDQoc3ZiZmxvYXQxNng0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2aW5zcihzdmJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9iZjE2KSkpCmJmbG9hdDE2X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfYmYxNikpKQpiZmxvYXQxNl90IHN2bGFzdGIoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZDFfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZDFycShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZsZDIoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZsZDMoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZsZDQoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZGZmMShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGRuZjEoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbnQxKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2JmMTYpKSkKdWludDY0X3Qgc3ZsZW4oc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2cmV2KHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnNlbChzdmJvb2xfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZzZXQyKHN2YmZsb2F0MTZ4Ml90LCB1aW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19iZjE2KSkpCnN2YmZsb2F0MTZ4M190IHN2c2V0MyhzdmJmbG9hdDE2eDNfdCwgdWludDY0X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdnNldDQoc3ZiZmxvYXQxNng0X3QsIHVpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2JmMTYpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfYmYxNikpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fYmYxNikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfYmYxNikpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fYmYxNikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfYmYxNikpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fYmYxNikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9iZjE2KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2JmMTYpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dGJsKHN2YmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4xKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjIoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dXpwMShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAyKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnppcDEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2emlwMihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfRlAzMikKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbWxhX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1tbGFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbWxhX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1tbGEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX01BVE1VTF9GUDMyKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfTUFUTVVMX0ZQNjQpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTgpKSkKc3Z1aW50OF90IHN2bGQxcm9fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFyb191MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxcm9fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb191MTYpKSkKc3Z1aW50MTZfdCBzdmxkMXJvX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fczgpKSkKc3ZpbnQ4X3Qgc3ZsZDFyb19zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMXJvX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMXJvX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkMXJvX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFyb19zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fczY0KSkpCnN2aW50NjRfdCBzdmxkMXJvX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zMTYpKSkKc3ZpbnQxNl90IHN2bGQxcm9fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bW1sYV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfdTgpKSkKc3Z1aW50OF90IHN2dHJuMXFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMXFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dHJuMXFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3UxNikpKQpzdnVpbnQxNl90IHN2dHJuMXFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3M4KSkpCnN2aW50OF90IHN2dHJuMXFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0cm4xcV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4xcV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4xcV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9zMzIpKSkKc3ZpbnQzMl90IHN2dHJuMXFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMXFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMXFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91OCkpKQpzdnVpbnQ4X3Qgc3Z0cm4ycV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTMyKSkpCnN2dWludDMyX3Qgc3Z0cm4ycV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTY0KSkpCnN2dWludDY0X3Qgc3Z0cm4ycV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4ycV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfczgpKSkKc3ZpbnQ4X3Qgc3Z0cm4ycV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjJxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjJxX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRybjJxX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4ycV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4ycV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3MxNikpKQpzdmludDE2X3Qgc3Z0cm4ycV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3U4KSkpCnN2dWludDhfdCBzdnV6cDFxX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV91MzIpKSkKc3Z1aW50MzJfdCBzdnV6cDFxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDFxX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDFxX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zOCkpKQpzdmludDhfdCBzdnV6cDFxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMXFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dXpwMXFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dXpwMXFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczMyKSkpCnN2aW50MzJfdCBzdnV6cDFxX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczY0KSkpCnN2aW50NjRfdCBzdnV6cDFxX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczE2KSkpCnN2aW50MTZfdCBzdnV6cDFxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfdTgpKSkKc3Z1aW50OF90IHN2dXpwMnFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMnFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMnFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3UxNikpKQpzdnVpbnQxNl90IHN2dXpwMnFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3M4KSkpCnN2aW50OF90IHN2dXpwMnFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z1enAycV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z1enAycV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAycV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9zMzIpKSkKc3ZpbnQzMl90IHN2dXpwMnFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9zNjQpKSkKc3ZpbnQ2NF90IHN2dXpwMnFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMnFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91OCkpKQpzdnVpbnQ4X3Qgc3Z6aXAxcV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAxcV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTY0KSkpCnN2dWludDY0X3Qgc3Z6aXAxcV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTE2KSkpCnN2dWludDE2X3Qgc3Z6aXAxcV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAxcV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDFxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnppcDFxX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnppcDFxX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAxcV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3M2NCkpKQpzdmludDY0X3Qgc3Z6aXAxcV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3MxNikpKQpzdmludDE2X3Qgc3Z6aXAxcV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3U4KSkpCnN2dWludDhfdCBzdnppcDJxX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV91MzIpKSkKc3Z1aW50MzJfdCBzdnppcDJxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV91NjQpKSkKc3Z1aW50NjRfdCBzdnppcDJxX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDJxX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zOCkpKQpzdmludDhfdCBzdnppcDJxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2emlwMnFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2emlwMnFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMnFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczMyKSkpCnN2aW50MzJfdCBzdnppcDJxX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczY0KSkpCnN2aW50NjRfdCBzdnppcDJxX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczE2KSkpCnN2aW50MTZfdCBzdnppcDJxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3U4KSkpCnN2dWludDhfdCBzdmxkMXJvKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb191MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXJvKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFybyhzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxcm8oc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zOCkpKQpzdmludDhfdCBzdmxkMXJvKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMXJvKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMXJvKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkMXJvKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFybyhzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fczY0KSkpCnN2aW50NjRfdCBzdmxkMXJvKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zMTYpKSkKc3ZpbnQxNl90IHN2bGQxcm8oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bW1sYShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfdTgpKSkKc3Z1aW50OF90IHN2dHJuMXEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV91MzIpKSkKc3Z1aW50MzJfdCBzdnRybjFxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjFxKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV91MTYpKSkKc3Z1aW50MTZfdCBzdnRybjFxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9zOCkpKQpzdmludDhfdCBzdnRybjFxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjFxKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjFxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRybjFxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4xcShzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4xcShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3MxNikpKQpzdmludDE2X3Qgc3Z0cm4xcShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3U4KSkpCnN2dWludDhfdCBzdnRybjJxKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTMyKSkpCnN2dWludDMyX3Qgc3Z0cm4ycShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTY0KSkpCnN2dWludDY0X3Qgc3Z0cm4ycShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4ycShzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfczgpKSkKc3ZpbnQ4X3Qgc3Z0cm4ycShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0cm4ycShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0cm4ycShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4ycShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9zMzIpKSkKc3ZpbnQzMl90IHN2dHJuMnEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9zNjQpKSkKc3ZpbnQ2NF90IHN2dHJuMnEoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMnEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV91OCkpKQpzdnVpbnQ4X3Qgc3Z1enAxcShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMXEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMXEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3UxNikpKQpzdnVpbnQxNl90IHN2dXpwMXEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3M4KSkpCnN2aW50OF90IHN2dXpwMXEoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMXEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dXpwMXEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dXpwMXEoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczMyKSkpCnN2aW50MzJfdCBzdnV6cDFxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczY0KSkpCnN2aW50NjRfdCBzdnV6cDFxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczE2KSkpCnN2aW50MTZfdCBzdnV6cDFxKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfdTgpKSkKc3Z1aW50OF90IHN2dXpwMnEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV91MzIpKSkKc3Z1aW50MzJfdCBzdnV6cDJxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV91NjQpKSkKc3Z1aW50NjRfdCBzdnV6cDJxKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDJxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9zOCkpKQpzdmludDhfdCBzdnV6cDJxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnV6cDJxKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDJxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnV6cDJxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3MzMikpKQpzdmludDMyX3Qgc3Z1enAycShzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAycShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3MxNikpKQpzdmludDE2X3Qgc3Z1enAycShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3U4KSkpCnN2dWludDhfdCBzdnppcDFxKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAxcShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTY0KSkpCnN2dWludDY0X3Qgc3Z6aXAxcShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTE2KSkpCnN2dWludDE2X3Qgc3Z6aXAxcShzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAxcShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z6aXAxcShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAxcShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z6aXAxcShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9zMzIpKSkKc3ZpbnQzMl90IHN2emlwMXEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMXEoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9zMTYpKSkKc3ZpbnQxNl90IHN2emlwMXEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV91OCkpKQpzdnVpbnQ4X3Qgc3Z6aXAycShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3UzMikpKQpzdnVpbnQzMl90IHN2emlwMnEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMnEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3UxNikpKQpzdnVpbnQxNl90IHN2emlwMnEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3M4KSkpCnN2aW50OF90IHN2emlwMnEoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2emlwMnEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2emlwMnEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMnEoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczMyKSkpCnN2aW50MzJfdCBzdnppcDJxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczY0KSkpCnN2aW50NjRfdCBzdnppcDJxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczE2KSkpCnN2aW50MTZfdCBzdnppcDJxKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfTUFUTVVMX0ZQNjQpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfRlA2NCkgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGQxcm9fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjFxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dHJuMnFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAxcV9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDJxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2emlwMXFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAycV9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZDFybyhzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4xcShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dHJuMnEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDFxKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAycShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2emlwMXEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnppcDJxKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfTUFUTVVMX0ZQNjQpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX01BVE1VTF9JTlQ4KQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfczMyKSkpCnN2aW50MzJfdCBzdm1tbGFfczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbWxhX3UzMikpKQpzdnVpbnQzMl90IHN2bW1sYV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1ZG90X25fczMyKSkpCnN2aW50MzJfdCBzdnN1ZG90X25fczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1ZG90X3MzMikpKQpzdmludDMyX3Qgc3ZzdWRvdF9zMzIoc3ZpbnQzMl90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWRvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZzdWRvdF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c2RvdF9uX3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdF9uX3MzMihzdmludDMyX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c2RvdF9zMzIpKSkKc3ZpbnQzMl90IHN2dXNkb3RfczMyKHN2aW50MzJfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXNkb3RfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2dXNkb3RfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdnVpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXNtbWxhX3MzMikpKQpzdmludDMyX3Qgc3Z1c21tbGFfczMyKHN2aW50MzJfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfczMyKSkpCnN2aW50MzJfdCBzdm1tbGEoc3ZpbnQzMl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbWxhX3UzMikpKQpzdnVpbnQzMl90IHN2bW1sYShzdnVpbnQzMl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1ZG90X25fczMyKSkpCnN2aW50MzJfdCBzdnN1ZG90KHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWRvdF9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vkb3Qoc3ZpbnQzMl90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vkb3RfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vkb3RfbGFuZShzdmludDMyX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXNkb3Rfbl9zMzIpKSkKc3ZpbnQzMl90IHN2dXNkb3Qoc3ZpbnQzMl90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVzZG90X3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdChzdmludDMyX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c2RvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdF9sYW5lKHN2aW50MzJfdCwgc3Z1aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c21tbGFfczMyKSkpCnN2aW50MzJfdCBzdnVzbW1sYShzdmludDMyX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfSU5UOCkKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdmN2dG50X2JmMTZfeCAgICAgIHN2Y3Z0bnRfYmYxNl9tCiNkZWZpbmUgc3ZjdnRudF9iZjE2X2YzMl94ICBzdmN2dG50X2JmMTZfZjMyX20KI2VuZGlmIC8qX19BUk1fRkVBVFVSRV9TVkVfQkYxNiAqLwoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyKQojZGVmaW5lIHN2Y3Z0bnRfZjE2X3ggICAgICBzdmN2dG50X2YxNl9tCiNkZWZpbmUgc3ZjdnRudF9mMTZfZjMyX3ggIHN2Y3Z0bnRfZjE2X2YzMl9tCiNkZWZpbmUgc3ZjdnRudF9mMzJfeCAgICAgIHN2Y3Z0bnRfZjMyX20KI2RlZmluZSBzdmN2dG50X2YzMl9mNjRfeCAgc3ZjdnRudF9mMzJfZjY0X20KCiNkZWZpbmUgc3ZjdnR4bnRfZjMyX3ggICAgIHN2Y3Z0eG50X2YzMl9tCiNkZWZpbmUgc3ZjdnR4bnRfZjMyX2Y2NF94IHN2Y3Z0eG50X2YzMl9mNjRfbQoKI2VuZGlmIC8qX19BUk1fRkVBVFVSRV9TVkUyICovCgojaWZkZWYgX19jcGx1c3BsdXMKfSAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmIC8qX19BUk1fRkVBVFVSRV9TVkUgKi8KCiNlbmRpZiAvKiBfX0FSTV9TVkVfSCAqLwoALyo9PT0tLS0tLSBhdng1MTJ2cG9wY250ZHFpbnRyaW4uaCAtIEFWWDUxMlZQT1BDTlREUSBpbnRyaW5zaWNzLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJOZXZlciB1c2UgPGF2eDUxMnZwb3BjbnRkcWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWUE9QQ05URFFJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVlBPUENOVERRSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZwb3BjbnRkcSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTIF9tbTUxMl9wb3BjbnRfZXBpNjQoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBvcGNudHFfNTEyKChfX3Y4ZGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfcG9wY250X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKAogICAgICAoX19tbWFzazgpX19VLCAoX192OGRpKV9tbTUxMl9wb3BjbnRfZXBpNjQoX19BKSwgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfcG9wY250X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gX21tNTEyX21hc2tfcG9wY250X2VwaTY0KChfX201MTJpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIF9fVSwgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMgX21tNTEyX3BvcGNudF9lcGkzMihfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cG9wY250ZF81MTIoKF9fdjE2c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfcG9wY250X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigKICAgICAgKF9fbW1hc2sxNilfX1UsIChfX3YxNnNpKV9tbTUxMl9wb3BjbnRfZXBpMzIoX19BKSwgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3BvcGNudF9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpMzIoKF9fbTUxMmkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgX19VLCBfX0EpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAGF2eGludHJpbi5oAC8qPT09LS0tLSBodG14bGludHJpbi5oIC0gWEwgY29tcGlsZXIgSFRNIGV4ZWN1dGlvbiBpbnRyaW5zaWNzLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fSFRNWExJTlRSSU5fSAojZGVmaW5lIF9fSFRNWExJTlRSSU5fSAoKI2lmbmRlZiBfX0hUTV9fCiNlcnJvciAiSFRNIGluc3RydWN0aW9uIHNldCBub3QgZW5hYmxlZCIKI2VuZGlmCgojaW5jbHVkZSA8aHRtaW50cmluLmg+CgojaWZkZWYgX19wb3dlcnBjX18KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgojZGVmaW5lIF9URVhBU1JfUFRSKFRNX0JVRikgKCh0ZXhhc3JfdCAqKSgoY2hhciAqKShUTV9CVUYpICsgMCkpCiNkZWZpbmUgX1RFWEFTUlVfUFRSKFRNX0JVRikgKCh0ZXhhc3J1X3QgKikoKGNoYXIgKikoVE1fQlVGKSArIDApKQojZGVmaW5lIF9URVhBU1JMX1BUUihUTV9CVUYpICgodGV4YXNybF90ICopKChjaGFyICopKFRNX0JVRikgKyA0KSkKI2RlZmluZSBfVEZJQVJfUFRSKFRNX0JVRikgKCh0Zmlhcl90ICopKChjaGFyICopKFRNX0JVRikgKyA4KSkKCnR5cGVkZWYgY2hhciBUTV9idWZmX3R5cGVbMTZdOwoKLyogVGhpcyBtYWNybyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkKICAgc3RhcnRlZCBmcm9tIHRoZSBfX1RNX2JlZ2luKCkgYW5kIF9fVE1fc2ltcGxlX2JlZ2luKCkgaW50cmluc2ljIGZ1bmN0aW9ucwogICBiZWxvdy4gICovCiNkZWZpbmUgX0hUTV9UQkVHSU5fU1RBUlRFRCAgICAgMQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX3NpbXBsZV9iZWdpbiAodm9pZCkKewogIGlmIChfX2J1aWx0aW5fZXhwZWN0IChfX2J1aWx0aW5fdGJlZ2luICgwKSwgMSkpCiAgICByZXR1cm4gX0hUTV9UQkVHSU5fU1RBUlRFRDsKICByZXR1cm4gMDsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2JlZ2luICh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICAqX1RFWEFTUkxfUFRSIChfX1RNX2J1ZmYpID0gMDsKICBpZiAoX19idWlsdGluX2V4cGVjdCAoX19idWlsdGluX3RiZWdpbiAoMCksIDEpKQogICAgcmV0dXJuIF9IVE1fVEJFR0lOX1NUQVJURUQ7CiNpZmRlZiBfX3Bvd2VycGM2NF9fCiAgKl9URVhBU1JfUFRSIChfX1RNX2J1ZmYpID0gX19idWlsdGluX2dldF90ZXhhc3IgKCk7CiNlbHNlCiAgKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKSA9IF9fYnVpbHRpbl9nZXRfdGV4YXNydSAoKTsKICAqX1RFWEFTUkxfUFRSIChfX1RNX2J1ZmYpID0gX19idWlsdGluX2dldF90ZXhhc3IgKCk7CiNlbmRpZgogICpfVEZJQVJfUFRSIChfX1RNX2J1ZmYpID0gX19idWlsdGluX2dldF90ZmlhciAoKTsKICByZXR1cm4gMDsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2VuZCAodm9pZCkKewogIGlmIChfX2J1aWx0aW5fZXhwZWN0IChfX2J1aWx0aW5fdGVuZCAoMCksIDEpKQogICAgcmV0dXJuIDE7CiAgcmV0dXJuIDA7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9hYm9ydCAodm9pZCkKewogIF9fYnVpbHRpbl90YWJvcnQgKDApOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZApfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fbmFtZWRfYWJvcnQgKHVuc2lnbmVkIGNoYXIgY29uc3QgX19jb2RlKQp7CiAgX19idWlsdGluX3RhYm9ydCAoX19jb2RlKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX3Jlc3VtZSAodm9pZCkKewogIF9fYnVpbHRpbl90cmVzdW1lICgpOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZApfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fc3VzcGVuZCAodm9pZCkKewogIF9fYnVpbHRpbl90c3VzcGVuZCAoKTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2lzX3VzZXJfYWJvcnQgKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKICByZXR1cm4gX1RFWEFTUlVfQUJPUlQgKHRleGFzcnUpOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1faXNfbmFtZWRfdXNlcl9hYm9ydCAodm9pZCogY29uc3QgX19UTV9idWZmLCB1bnNpZ25lZCBjaGFyICpfX2NvZGUpCnsKICB0ZXhhc3J1X3QgdGV4YXNydSA9ICpfVEVYQVNSVV9QVFIgKF9fVE1fYnVmZik7CgogICpfX2NvZGUgPSBfVEVYQVNSVV9GQUlMVVJFX0NPREUgKHRleGFzcnUpOwogIHJldHVybiBfVEVYQVNSVV9BQk9SVCAodGV4YXNydSk7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9pc19pbGxlZ2FsICh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICB0ZXhhc3J1X3QgdGV4YXNydSA9ICpfVEVYQVNSVV9QVFIgKF9fVE1fYnVmZik7CiAgcmV0dXJuIF9URVhBU1JVX0RJU0FMTE9XRUQgKHRleGFzcnUpOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1faXNfZm9vdHByaW50X2V4Y2VlZGVkICh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICB0ZXhhc3J1X3QgdGV4YXNydSA9ICpfVEVYQVNSVV9QVFIgKF9fVE1fYnVmZik7CiAgcmV0dXJuIF9URVhBU1JVX0ZPT1RQUklOVF9PVkVSRkxPVyAodGV4YXNydSk7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9uZXN0aW5nX2RlcHRoICh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICB0ZXhhc3JsX3QgdGV4YXNybDsKCiAgaWYgKF9IVE1fU1RBVEUgKF9fYnVpbHRpbl90dGVzdCAoKSkgPT0gX0hUTV9OT05UUkFOU0FDVElPTkFMKQogICAgewogICAgICB0ZXhhc3JsID0gKl9URVhBU1JMX1BUUiAoX19UTV9idWZmKTsKICAgICAgaWYgKCFfVEVYQVNSX0ZBSUxVUkVfU1VNTUFSWSAodGV4YXNybCkpCiAgICAgICAgdGV4YXNybCA9IDA7CiAgICB9CiAgZWxzZQogICAgdGV4YXNybCA9ICh0ZXhhc3JsX3QpIF9fYnVpbHRpbl9nZXRfdGV4YXNyICgpOwoKICByZXR1cm4gX1RFWEFTUl9UUkFOU0FDVElPTl9MRVZFTCAodGV4YXNybCk7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9pc19uZXN0ZWRfdG9vX2RlZXAodm9pZCogY29uc3QgX19UTV9idWZmKQp7CiAgdGV4YXNydV90IHRleGFzcnUgPSAqX1RFWEFTUlVfUFRSIChfX1RNX2J1ZmYpOwogIHJldHVybiBfVEVYQVNSVV9ORVNUSU5HX09WRVJGTE9XICh0ZXhhc3J1KTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2lzX2NvbmZsaWN0KHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKICAvKiBSZXR1cm4gVEVYQVNSIGJpdHMgMTEgKFNlbGYtSW5kdWNlZCBDb25mbGljdCkgdGhyb3VnaAogICAgIDE0IChUcmFuc2xhdGlvbiBJbnZhbGlkYXRpb24gQ29uZmxpY3QpLiAgKi8KICByZXR1cm4gKF9URVhBU1JVX0VYVFJBQ1RfQklUUyAodGV4YXNydSwgMTQsIDQpKSA/IDEgOiAwOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1faXNfZmFpbHVyZV9wZXJzaXN0ZW50KHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKICByZXR1cm4gX1RFWEFTUlVfRkFJTFVSRV9QRVJTSVNURU5UICh0ZXhhc3J1KTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2ZhaWx1cmVfYWRkcmVzcyh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICByZXR1cm4gKl9URklBUl9QVFIgKF9fVE1fYnVmZik7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2ZhaWx1cmVfY29kZSh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICByZXR1cm4gKl9URVhBU1JfUFRSIChfX1RNX2J1ZmYpOwp9CgojaWZkZWYgX19jcGx1c3BsdXMKfQojZW5kaWYKCiNlbmRpZiAvKiBfX3Bvd2VycGNfXyAqLwoKI2lmZGVmIF9fczM5MF9fCgojaW5jbHVkZSA8c3RkaW50Lmg+CgovKiBUaGVzZSBpbnRyaW5zaWNzIGFyZSBiZWluZyBtYWRlIGF2YWlsYWJsZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoCiAgIHRoZSBJQk0gWEwgY29tcGlsZXIuICBGb3IgZG9jdW1lbnRhdGlvbiBwbGVhc2Ugc2VlIHRoZSAiei9PUyBYTAogICBDL0MrKyBQcm9ncmFtbWluZyBHdWlkZSIgcHVibGljbHkgYXZhaWxhYmxlIG9uIHRoZSB3ZWIuICAqLwoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9zaW1wbGVfYmVnaW4gKCkKewogIHJldHVybiBfX2J1aWx0aW5fdGJlZ2luX25vZmxvYXQgKDApOwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2JlZ2luICh2b2lkKiBjb25zdCBfX3RkYikKewogIHJldHVybiBfX2J1aWx0aW5fdGJlZ2luX25vZmxvYXQgKF9fdGRiKTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9lbmQgKCkKewogIHJldHVybiBfX2J1aWx0aW5fdGVuZCAoKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQpfX1RNX2Fib3J0ICgpCnsKICByZXR1cm4gX19idWlsdGluX3RhYm9ydCAoX0hUTV9GSVJTVF9VU0VSX0FCT1JUX0NPREUpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX25hbWVkX2Fib3J0ICh1bnNpZ25lZCBjaGFyIGNvbnN0IF9fY29kZSkKewogIHJldHVybiBfX2J1aWx0aW5fdGFib3J0ICgoaW50KV9IVE1fRklSU1RfVVNFUl9BQk9SVF9DT0RFICsgX19jb2RlKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9ub25fdHJhbnNhY3Rpb25hbF9zdG9yZSAodm9pZCogY29uc3QgX19hZGRyLCBsb25nIGxvbmcgY29uc3QgX192YWx1ZSkKewogIF9fYnVpbHRpbl9ub25fdHhfc3RvcmUgKCh1aW50NjRfdCopX19hZGRyLCAodWludDY0X3QpX192YWx1ZSk7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1fbmVzdGluZ19kZXB0aCAodm9pZCogY29uc3QgX190ZGJfcHRyKQp7CiAgaW50IGRlcHRoID0gX19idWlsdGluX3R4X25lc3RpbmdfZGVwdGggKCk7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgaWYgKGRlcHRoICE9IDApCiAgICByZXR1cm4gZGVwdGg7CgogIGlmICh0ZGItPmZvcm1hdCAhPSAxKQogICAgcmV0dXJuIDA7CiAgcmV0dXJuIHRkYi0+bmVzdGluZ19kZXB0aDsKfQoKLyogVHJhbnNhY3Rpb24gZmFpbHVyZSBkaWFnbm9zdGljcyAqLwoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc191c2VyX2Fib3J0ICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICBpZiAodGRiLT5mb3JtYXQgIT0gMSkKICAgIHJldHVybiAwOwoKICByZXR1cm4gISEodGRiLT5hYm9ydF9jb2RlID49IF9IVE1fRklSU1RfVVNFUl9BQk9SVF9DT0RFKTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc19uYW1lZF91c2VyX2Fib3J0ICh2b2lkKiBjb25zdCBfX3RkYl9wdHIsIHVuc2lnbmVkIGNoYXIqIF9fY29kZSkKewogIHN0cnVjdCBfX2h0bV90ZGIgKnRkYiA9IChzdHJ1Y3QgX19odG1fdGRiKilfX3RkYl9wdHI7CgogIGlmICh0ZGItPmZvcm1hdCAhPSAxKQogICAgcmV0dXJuIDA7CgogIGlmICh0ZGItPmFib3J0X2NvZGUgPj0gX0hUTV9GSVJTVF9VU0VSX0FCT1JUX0NPREUpCiAgICB7CiAgICAgICpfX2NvZGUgPSB0ZGItPmFib3J0X2NvZGUgLSBfSFRNX0ZJUlNUX1VTRVJfQUJPUlRfQ09ERTsKICAgICAgcmV0dXJuIDE7CiAgICB9CiAgcmV0dXJuIDA7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1faXNfaWxsZWdhbCAodm9pZCogY29uc3QgX190ZGJfcHRyKQp7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgcmV0dXJuICh0ZGItPmZvcm1hdCA9PSAxCgkgICYmICh0ZGItPmFib3J0X2NvZGUgPT0gNCAvKiB1bmZpbHRlcmVkIHByb2dyYW0gaW50ZXJydXB0aW9uICovCgkgICAgICB8fCB0ZGItPmFib3J0X2NvZGUgPT0gMTEgLyogcmVzdHJpY3RlZCBpbnN0cnVjdGlvbiAqLykpOwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2lzX2Zvb3RwcmludF9leGNlZWRlZCAodm9pZCogY29uc3QgX190ZGJfcHRyKQp7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgcmV0dXJuICh0ZGItPmZvcm1hdCA9PSAxCgkgICYmICh0ZGItPmFib3J0X2NvZGUgPT0gNyAvKiBmZXRjaCBvdmVyZmxvdyAqLwoJICAgICAgfHwgdGRiLT5hYm9ydF9jb2RlID09IDggLyogc3RvcmUgb3ZlcmZsb3cgKi8pKTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc19uZXN0ZWRfdG9vX2RlZXAgKHZvaWQqIGNvbnN0IF9fdGRiX3B0cikKewogIHN0cnVjdCBfX2h0bV90ZGIgKnRkYiA9IChzdHJ1Y3QgX19odG1fdGRiKilfX3RkYl9wdHI7CgogIHJldHVybiB0ZGItPmZvcm1hdCA9PSAxICYmIHRkYi0+YWJvcnRfY29kZSA9PSAxMzsgLyogZGVwdGggZXhjZWVkZWQgKi8KfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc19jb25mbGljdCAodm9pZCogY29uc3QgX190ZGJfcHRyKQp7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgcmV0dXJuICh0ZGItPmZvcm1hdCA9PSAxCgkgICYmICh0ZGItPmFib3J0X2NvZGUgPT0gOSAvKiBmZXRjaCBjb25mbGljdCAqLwoJICAgICAgfHwgdGRiLT5hYm9ydF9jb2RlID09IDEwIC8qIHN0b3JlIGNvbmZsaWN0ICovKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1faXNfZmFpbHVyZV9wZXJzaXN0ZW50IChsb25nIGNvbnN0IF9fcmVzdWx0KQp7CiAgcmV0dXJuIF9fcmVzdWx0ID09IF9IVE1fVEJFR0lOX1BFUlNJU1RFTlQ7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1fZmFpbHVyZV9hZGRyZXNzICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwogIHJldHVybiB0ZGItPmF0aWE7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1fZmFpbHVyZV9jb2RlICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICByZXR1cm4gdGRiLT5hYm9ydF9jb2RlOwp9CgojZW5kaWYgLyogX19zMzkwX18gKi8KCiNlbmRpZiAvKiBfX0hUTVhMSU5UUklOX0ggICovCgAvKj09PS0tLS0gbHdwaW50cmluLmggLSBMV1AgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fWDg2SU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGx3cGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19MV1BJTlRSSU5fSAojZGVmaW5lIF9fTFdQSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJsd3AiKSkpCgovLy8gUGFyc2VzIHRoZSBMV1BDQiBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgYW5kIGVuYWJsZXMKLy8vICAgICAgICBwcm9maWxpbmcgaWYgdmFsaWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTExXUENCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYWRkcgovLy8gICAgQWRkcmVzcyB0byB0aGUgbmV3IExpZ2h0d2VpZ2h0IFByb2ZpbGluZyBDb250cm9sIEJsb2NrIChMV1BDQikuIElmIHRoZQovLy8gICAgTFdQQ0IgaXMgdmFsaWQsIHdyaXRlcyB0aGUgYWRkcmVzcyBpbnRvIHRoZSBMV1BfQ0JBRERSIE1TUiBhbmQgZW5hYmxlcwovLy8gICAgTGlnaHR3ZWlnaHQgUHJvZmlsaW5nLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX2xsd3BjYiAodm9pZCAqX19hZGRyKQp7CiAgX19idWlsdGluX2lhMzJfbGx3cGNiKF9fYWRkcik7Cn0KCi8vLyBGbHVzaGVzIHRoZSBMV1Agc3RhdGUgdG8gbWVtb3J5IGFuZCByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBMV1BDQi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBTTFdQQ0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJuCi8vLyAgICBBZGRyZXNzIHRvIHRoZSBjdXJyZW50IExpZ2h0d2VpZ2h0IFByb2ZpbGluZyBDb250cm9sIEJsb2NrIChMV1BDQikuCi8vLyAgICBJZiBMV1AgaXMgbm90IGN1cnJlbnRseSBlbmFibGVkLCByZXR1cm5zIE5VTEwuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQqIF9fREVGQVVMVF9GTl9BVFRSUwpfX3Nsd3BjYiAodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zbHdwY2IoKTsKfQoKLy8vIEluc2VydHMgcHJvZ3JhbW1lZCBldmVudCByZWNvcmQgaW50byB0aGUgTFdQIGV2ZW50IHJpbmcgYnVmZmVyCi8vLyAgICAgICAgYW5kIGFkdmFuY2VzIHRoZSByaW5nIGJ1ZmZlciBwb2ludGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExXUElOUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBEQVRBMgovLy8gICAgQSAzMi1iaXQgdmFsdWUgaXMgemVyby1leHRlbmRlZCBhbmQgaW5zZXJ0ZWQgaW50byB0aGUgNjQtYml0IERhdGEyIGZpZWxkLgovLy8gXHBhcmFtIERBVEExCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRGF0YTEgZmllbGQuCi8vLyBccGFyYW0gRkxBR1MKLy8vICAgIEEgMzItYml0IGltbWVkaWF0ZSB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRmxhZ3MgZmllbGQuCi8vLyBccmV0dXJucyBJZiB0aGUgcmluZyBidWZmZXIgaXMgZnVsbCBhbmQgTFdQIGlzIHJ1bm5pbmcgaW4gU3luY2hyb25pemVkIE1vZGUsCi8vLyAgICB0aGUgZXZlbnQgcmVjb3JkIG92ZXJ3cml0ZXMgdGhlIGxhc3QgcmVjb3JkIGluIHRoZSBidWZmZXIsIHRoZSBNaXNzZWRFdmVudHMKLy8vICAgIGNvdW50ZXIgaW4gdGhlIExXUENCIGlzIGluY3JlbWVudGVkLCB0aGUgaGVhZCBwb2ludGVyIGlzIG5vdCBhZHZhbmNlZCwgYW5kCi8vLyAgICAxIGlzIHJldHVybmVkLiBPdGhlcndpc2UgMCBpcyByZXR1cm5lZC4KI2RlZmluZSBfX2x3cGluczMyKERBVEEyLCBEQVRBMSwgRkxBR1MpIFwKICAoX19idWlsdGluX2lhMzJfbHdwaW5zMzIoKHVuc2lnbmVkIGludCkgKERBVEEyKSwgKHVuc2lnbmVkIGludCkgKERBVEExKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KSAoRkxBR1MpKSkKCi8vLyBEZWNyZW1lbnRzIHRoZSBMV1AgcHJvZ3JhbW1lZCB2YWx1ZSBzYW1wbGUgZXZlbnQgY291bnRlci4gSWYgdGhlIHJlc3VsdCBpcwovLy8gICAgICAgIG5lZ2F0aXZlLCBpbnNlcnRzIGFuIGV2ZW50IHJlY29yZCBpbnRvIHRoZSBMV1AgZXZlbnQgcmluZyBidWZmZXIgaW4gbWVtb3J5Ci8vLyAgICAgICAgYW5kIGFkdmFuY2VzIHRoZSByaW5nIGJ1ZmZlciBwb2ludGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExXUFZBTCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBEQVRBMgovLy8gICAgQSAzMi1iaXQgdmFsdWUgaXMgemVyby1leHRlbmRlZCBhbmQgaW5zZXJ0ZWQgaW50byB0aGUgNjQtYml0IERhdGEyIGZpZWxkLgovLy8gXHBhcmFtIERBVEExCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRGF0YTEgZmllbGQuCi8vLyBccGFyYW0gRkxBR1MKLy8vICAgIEEgMzItYml0IGltbWVkaWF0ZSB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRmxhZ3MgZmllbGQuCiNkZWZpbmUgX19sd3B2YWwzMihEQVRBMiwgREFUQTEsIEZMQUdTKSBcCiAgKF9fYnVpbHRpbl9pYTMyX2x3cHZhbDMyKCh1bnNpZ25lZCBpbnQpIChEQVRBMiksICh1bnNpZ25lZCBpbnQpIChEQVRBMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGludCkgKEZMQUdTKSkpCgojaWZkZWYgX194ODZfNjRfXwoKLy8vIEluc2VydHMgcHJvZ3JhbW1lZCBldmVudCByZWNvcmQgaW50byB0aGUgTFdQIGV2ZW50IHJpbmcgYnVmZmVyCi8vLyAgICAgICAgYW5kIGFkdmFuY2VzIHRoZSByaW5nIGJ1ZmZlciBwb2ludGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExXUElOUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBEQVRBMgovLy8gICAgQSA2NC1iaXQgdmFsdWUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgNjQtYml0IERhdGEyIGZpZWxkLgovLy8gXHBhcmFtIERBVEExCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRGF0YTEgZmllbGQuCi8vLyBccGFyYW0gRkxBR1MKLy8vICAgIEEgMzItYml0IGltbWVkaWF0ZSB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRmxhZ3MgZmllbGQuCi8vLyBccmV0dXJucyBJZiB0aGUgcmluZyBidWZmZXIgaXMgZnVsbCBhbmQgTFdQIGlzIHJ1bm5pbmcgaW4gU3luY2hyb25pemVkIE1vZGUsCi8vLyAgICB0aGUgZXZlbnQgcmVjb3JkIG92ZXJ3cml0ZXMgdGhlIGxhc3QgcmVjb3JkIGluIHRoZSBidWZmZXIsIHRoZSBNaXNzZWRFdmVudHMKLy8vICAgIGNvdW50ZXIgaW4gdGhlIExXUENCIGlzIGluY3JlbWVudGVkLCB0aGUgaGVhZCBwb2ludGVyIGlzIG5vdCBhZHZhbmNlZCwgYW5kCi8vLyAgICAxIGlzIHJldHVybmVkLiBPdGhlcndpc2UgMCBpcyByZXR1cm5lZC4KI2RlZmluZSBfX2x3cGluczY0KERBVEEyLCBEQVRBMSwgRkxBR1MpIFwKICAoX19idWlsdGluX2lhMzJfbHdwaW5zNjQoKHVuc2lnbmVkIGxvbmcgbG9uZykgKERBVEEyKSwgKHVuc2lnbmVkIGludCkgKERBVEExKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KSAoRkxBR1MpKSkKCi8vLyBEZWNyZW1lbnRzIHRoZSBMV1AgcHJvZ3JhbW1lZCB2YWx1ZSBzYW1wbGUgZXZlbnQgY291bnRlci4gSWYgdGhlIHJlc3VsdCBpcwovLy8gICAgICAgIG5lZ2F0aXZlLCBpbnNlcnRzIGFuIGV2ZW50IHJlY29yZCBpbnRvIHRoZSBMV1AgZXZlbnQgcmluZyBidWZmZXIgaW4gbWVtb3J5Ci8vLyAgICAgICAgYW5kIGFkdmFuY2VzIHRoZSByaW5nIGJ1ZmZlciBwb2ludGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExXUFZBTCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBEQVRBMgovLy8gICAgQSA2NC1iaXQgdmFsdWUgaXMgYW5kIGluc2VydGVkIGludG8gdGhlIDY0LWJpdCBEYXRhMiBmaWVsZC4KLy8vIFxwYXJhbSBEQVRBMQovLy8gICAgQSAzMi1iaXQgdmFsdWUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgMzItYml0IERhdGExIGZpZWxkLgovLy8gXHBhcmFtIEZMQUdTCi8vLyAgICBBIDMyLWJpdCBpbW1lZGlhdGUgdmFsdWUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgMzItYml0IEZsYWdzIGZpZWxkLgojZGVmaW5lIF9fbHdwdmFsNjQoREFUQTIsIERBVEExLCBGTEFHUykgXAogIChfX2J1aWx0aW5faWEzMl9sd3B2YWw2NCgodW5zaWduZWQgbG9uZyBsb25nKSAoREFUQTIpLCAodW5zaWduZWQgaW50KSAoREFUQTEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIChGTEFHUykpKQoKI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19MV1BJTlRSSU5fSCAqLwoAbW1fbWFsbG9jLmgALyoKICogaW5jbHVkZS9vbXAuaC52YXIKICovCgoKLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCgojaWZuZGVmIF9fT01QX0gKIyAgIGRlZmluZSBfX09NUF9ICgojICAgaW5jbHVkZSA8c3RkbGliLmg+CiMgICBpbmNsdWRlIDxzdGRpbnQuaD4KCiMgICBkZWZpbmUgS01QX1ZFUlNJT05fTUFKT1IgICAgNQojICAgZGVmaW5lIEtNUF9WRVJTSU9OX01JTk9SICAgIDAKIyAgIGRlZmluZSBLTVBfVkVSU0lPTl9CVUlMRCAgICAyMDE0MDkyNgojICAgZGVmaW5lIEtNUF9CVUlMRF9EQVRFICAgICAgICJOb19UaW1lc3RhbXAiCgojICAgaWZkZWYgX19jcGx1c3BsdXMKICAgIGV4dGVybiAiQyIgewojICAgZW5kaWYKCiMgICBkZWZpbmUgb21wX3NldF9hZmZpbml0eV9mb3JtYXQgICBvbXBjX3NldF9hZmZpbml0eV9mb3JtYXQKIyAgIGRlZmluZSBvbXBfZ2V0X2FmZmluaXR5X2Zvcm1hdCAgIG9tcGNfZ2V0X2FmZmluaXR5X2Zvcm1hdAojICAgZGVmaW5lIG9tcF9kaXNwbGF5X2FmZmluaXR5ICAgICAgb21wY19kaXNwbGF5X2FmZmluaXR5CiMgICBkZWZpbmUgb21wX2NhcHR1cmVfYWZmaW5pdHkgICAgICBvbXBjX2NhcHR1cmVfYWZmaW5pdHkKCiMgICBpZiBkZWZpbmVkKF9XSU4zMikKIyAgICAgICBkZWZpbmUgX19LQUlfS01QQ19DT05WRU5USU9OIF9fY2RlY2wKIyAgICAgICBpZm5kZWYgX19LTVBfSU1QCiMgICAgICAgICAgIGRlZmluZSBfX0tNUF9JTVAgX19kZWNsc3BlYyhkbGxpbXBvcnQpCiMgICAgICAgZW5kaWYKIyAgIGVsc2UKIyAgICAgICBkZWZpbmUgX19LQUlfS01QQ19DT05WRU5USU9OCiMgICAgICAgaWZuZGVmIF9fS01QX0lNUAojICAgICAgICAgICBkZWZpbmUgX19LTVBfSU1QCiMgICAgICAgZW5kaWYKIyAgIGVuZGlmCgogICAgLyogc2NoZWR1bGUga2luZCBjb25zdGFudHMgKi8KICAgIHR5cGVkZWYgZW51bSBvbXBfc2NoZWRfdCB7CiAgICAgICAgb21wX3NjaGVkX3N0YXRpYyAgPSAxLAogICAgICAgIG9tcF9zY2hlZF9keW5hbWljID0gMiwKICAgICAgICBvbXBfc2NoZWRfZ3VpZGVkICA9IDMsCiAgICAgICAgb21wX3NjaGVkX2F1dG8gICAgPSA0LAogICAgICAgIG9tcF9zY2hlZF9tb25vdG9uaWMgPSAweDgwMDAwMDAwCiAgICB9IG9tcF9zY2hlZF90OwoKICAgIC8qIHNldCBBUEkgZnVuY3Rpb25zICovCiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3NldF9udW1fdGhyZWFkcyAoaW50KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X2R5bmFtaWMgICAgIChpbnQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9zZXRfbmVzdGVkICAgICAgKGludCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3NldF9tYXhfYWN0aXZlX2xldmVscyAoaW50KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X3NjaGVkdWxlICAgICAgICAgIChvbXBfc2NoZWRfdCwgaW50KTsKCiAgICAvKiBxdWVyeSBBUEkgZnVuY3Rpb25zICovCiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9udW1fdGhyZWFkcyAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfZHluYW1pYyAgICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X25lc3RlZCAgICAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9tYXhfdGhyZWFkcyAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfdGhyZWFkX251bSAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X251bV9wcm9jcyAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2luX3BhcmFsbGVsICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9pbl9maW5hbCAgICAgICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2FjdGl2ZV9sZXZlbCAgICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbGV2ZWwgICAgICAgICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9hbmNlc3Rvcl90aHJlYWRfbnVtIChpbnQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfdGVhbV9zaXplICAgICAgICAgICAoaW50KTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X3RocmVhZF9saW1pdCAgICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbWF4X2FjdGl2ZV9sZXZlbHMgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9zY2hlZHVsZSAgICAgICAgICAgIChvbXBfc2NoZWRfdCAqLCBpbnQgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9tYXhfdGFza19wcmlvcml0eSAgICh2b2lkKTsKCiAgICAvKiBsb2NrIEFQSSBmdW5jdGlvbnMgKi8KICAgIHR5cGVkZWYgc3RydWN0IG9tcF9sb2NrX3QgewogICAgICAgIHZvaWQgKiBfbGs7CiAgICB9IG9tcF9sb2NrX3Q7CgogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9pbml0X2xvY2sgICAgKG9tcF9sb2NrX3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3NldF9sb2NrICAgICAob21wX2xvY2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdW5zZXRfbG9jayAgIChvbXBfbG9ja190ICopOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9kZXN0cm95X2xvY2sgKG9tcF9sb2NrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3Rlc3RfbG9jayAgICAob21wX2xvY2tfdCAqKTsKCiAgICAvKiBuZXN0ZWQgbG9jayBBUEkgZnVuY3Rpb25zICovCiAgICB0eXBlZGVmIHN0cnVjdCBvbXBfbmVzdF9sb2NrX3QgewogICAgICAgIHZvaWQgKiBfbGs7CiAgICB9IG9tcF9uZXN0X2xvY2tfdDsKCiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2luaXRfbmVzdF9sb2NrICAgIChvbXBfbmVzdF9sb2NrX3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3NldF9uZXN0X2xvY2sgICAgIChvbXBfbmVzdF9sb2NrX3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3Vuc2V0X25lc3RfbG9jayAgIChvbXBfbmVzdF9sb2NrX3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2Rlc3Ryb3lfbmVzdF9sb2NrIChvbXBfbmVzdF9sb2NrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3Rlc3RfbmVzdF9sb2NrICAgIChvbXBfbmVzdF9sb2NrX3QgKik7CgogICAgLyogT3Blbk1QIDUuMCAgU3luY2hyb25pemF0aW9uIGhpbnRzKi8KICAgIHR5cGVkZWYgZW51bSBvbXBfc3luY19oaW50X3QgewogICAgICAgIG9tcF9zeW5jX2hpbnRfbm9uZSAgICAgICAgICAgPSAwLAogICAgICAgIG9tcF9sb2NrX2hpbnRfbm9uZSAgICAgICAgICAgPSBvbXBfc3luY19oaW50X25vbmUsCiAgICAgICAgb21wX3N5bmNfaGludF91bmNvbnRlbmRlZCAgICA9IDEsCiAgICAgICAgb21wX2xvY2tfaGludF91bmNvbnRlbmRlZCAgICA9IG9tcF9zeW5jX2hpbnRfdW5jb250ZW5kZWQsCiAgICAgICAgb21wX3N5bmNfaGludF9jb250ZW5kZWQgICAgICA9ICgxPDwxKSwKICAgICAgICBvbXBfbG9ja19oaW50X2NvbnRlbmRlZCAgICAgID0gb21wX3N5bmNfaGludF9jb250ZW5kZWQsCiAgICAgICAgb21wX3N5bmNfaGludF9ub25zcGVjdWxhdGl2ZSA9ICgxPDwyKSwKICAgICAgICBvbXBfbG9ja19oaW50X25vbnNwZWN1bGF0aXZlID0gb21wX3N5bmNfaGludF9ub25zcGVjdWxhdGl2ZSwKICAgICAgICBvbXBfc3luY19oaW50X3NwZWN1bGF0aXZlICAgID0gKDE8PDMpLAogICAgICAgIG9tcF9sb2NrX2hpbnRfc3BlY3VsYXRpdmUgICAgPSBvbXBfc3luY19oaW50X3NwZWN1bGF0aXZlLAogICAgICAgIGttcF9sb2NrX2hpbnRfaGxlICAgICAgICAgICAgPSAoMTw8MTYpLAogICAgICAgIGttcF9sb2NrX2hpbnRfcnRtICAgICAgICAgICAgPSAoMTw8MTcpLAogICAgICAgIGttcF9sb2NrX2hpbnRfYWRhcHRpdmUgICAgICAgPSAoMTw8MTgpCiAgICB9IG9tcF9zeW5jX2hpbnRfdDsKCiAgICAvKiBsb2NrIGhpbnQgdHlwZSBmb3IgZHluYW1pYyB1c2VyIGxvY2sgKi8KICAgIHR5cGVkZWYgb21wX3N5bmNfaGludF90IG9tcF9sb2NrX2hpbnRfdDsKCiAgICAvKiBoaW50ZWQgbG9jayBpbml0aWFsaXplcnMgKi8KICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfaW5pdF9sb2NrX3dpdGhfaGludChvbXBfbG9ja190ICosIG9tcF9sb2NrX2hpbnRfdCk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2luaXRfbmVzdF9sb2NrX3dpdGhfaGludChvbXBfbmVzdF9sb2NrX3QgKiwgb21wX2xvY2tfaGludF90KTsKCiAgICAvKiB0aW1lIEFQSSBmdW5jdGlvbnMgKi8KICAgIGV4dGVybiBkb3VibGUgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X3d0aW1lICh2b2lkKTsKICAgIGV4dGVybiBkb3VibGUgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X3d0aWNrICh2b2lkKTsKCiAgICAvKiBPcGVuTVAgNC4wICovCiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfZGVmYXVsdF9kZXZpY2UgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X2RlZmF1bHRfZGV2aWNlIChpbnQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfaXNfaW5pdGlhbF9kZXZpY2UgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X251bV9kZXZpY2VzICh2b2lkKTsKICAgIGV4dGVybiBpbnQgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9udW1fdGVhbXMgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X3RlYW1fbnVtICh2b2lkKTsKICAgIGV4dGVybiBpbnQgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9jYW5jZWxsYXRpb24gKHZvaWQpOwoKICAgIC8qIE9wZW5NUCA0LjUgKi8KICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW5pdGlhbF9kZXZpY2UgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3RhcmdldF9hbGxvYyhzaXplX3QsIGludCk7CiAgICBleHRlcm4gdm9pZCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X2ZyZWUodm9pZCAqLCBpbnQpOwogICAgZXh0ZXJuIGludCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3RhcmdldF9pc19wcmVzZW50KGNvbnN0IHZvaWQgKiwgaW50KTsKICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfbWVtY3B5KHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBpbnQsIGludCk7CiAgICBleHRlcm4gaW50ICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X21lbWNweV9yZWN0KHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCwgY29uc3Qgc2l6ZV90ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV90ICosIGNvbnN0IHNpemVfdCAqLCBjb25zdCBzaXplX3QgKiwgY29uc3Qgc2l6ZV90ICosIGludCwgaW50KTsKICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfYXNzb2NpYXRlX3B0cihjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIGludCk7CiAgICBleHRlcm4gaW50ICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X2Rpc2Fzc29jaWF0ZV9wdHIoY29uc3Qgdm9pZCAqLCBpbnQpOwoKICAgIC8qIE9wZW5NUCA1LjAgKi8KICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfZGV2aWNlX251bSAodm9pZCk7CiAgICB0eXBlZGVmIHZvaWQgKiBvbXBfZGVwZW5kX3Q7CgogICAgLyogT3Blbk1QIDUuMSBpbnRlcm9wICovCiAgICB0eXBlZGVmIGludHB0cl90IG9tcF9pbnRwdHJfdDsKCiAgICAvKiAwLi5vbXBfZ2V0X251bV9pbnRlcm9wX3Byb3BlcnRpZXMoKS0xIGFyZSByZXNlcnZlZCBmb3IgaW1wbGVtZW50YXRpb24tZGVmaW5lZCBwcm9wZXJ0aWVzICovCiAgICB0eXBlZGVmIGVudW0gb21wX2ludGVyb3BfcHJvcGVydHkgewogICAgICAgIG9tcF9pcHJfZnJfaWQgPSAtMSwKICAgICAgICBvbXBfaXByX2ZyX25hbWUgPSAtMiwKICAgICAgICBvbXBfaXByX3ZlbmRvciA9IC0zLAogICAgICAgIG9tcF9pcHJfdmVuZG9yX25hbWUgPSAtNCwKICAgICAgICBvbXBfaXByX2RldmljZV9udW0gPSAtNSwKICAgICAgICBvbXBfaXByX3BsYXRmb3JtID0gLTYsCiAgICAgICAgb21wX2lwcl9kZXZpY2UgPSAtNywKICAgICAgICBvbXBfaXByX2RldmljZV9jb250ZXh0ID0gLTgsCiAgICAgICAgb21wX2lwcl90YXJnZXRzeW5jID0gLTksCiAgICAgICAgb21wX2lwcl9maXJzdCA9IC05CiAgICB9IG9tcF9pbnRlcm9wX3Byb3BlcnR5X3Q7CgogICAgI2RlZmluZSBvbXBfaW50ZXJvcF9ub25lIDAKCiAgICB0eXBlZGVmIGVudW0gb21wX2ludGVyb3BfcmMgewogICAgICAgIG9tcF9pcmNfbm9fdmFsdWUgPSAxLAogICAgICAgIG9tcF9pcmNfc3VjY2VzcyA9IDAsCiAgICAgICAgb21wX2lyY19lbXB0eSA9IC0xLAogICAgICAgIG9tcF9pcmNfb3V0X29mX3JhbmdlID0gLTIsCiAgICAgICAgb21wX2lyY190eXBlX2ludCA9IC0zLAogICAgICAgIG9tcF9pcmNfdHlwZV9wdHIgPSAtNCwKICAgICAgICBvbXBfaXJjX3R5cGVfc3RyID0gLTUsCiAgICAgICAgb21wX2lyY19vdGhlciA9IC02CiAgICB9IG9tcF9pbnRlcm9wX3JjX3Q7CgogICAgdHlwZWRlZiBlbnVtIG9tcF9pbnRlcm9wX2ZyIHsKICAgICAgICBvbXBfaWZyX2N1ZGEgPSAxLAogICAgICAgIG9tcF9pZnJfY3VkYV9kcml2ZXIgPSAyLAogICAgICAgIG9tcF9pZnJfb3BlbmNsID0gMywKICAgICAgICBvbXBfaWZyX3N5Y2wgPSA0LAogICAgICAgIG9tcF9pZnJfaGlwID0gNSwKICAgICAgICBvbXBfaWZyX2xldmVsX3plcm8gPSA2LAogICAgICAgIG9tcF9pZnJfbGFzdCA9IDcKICAgIH0gb21wX2ludGVyb3BfZnJfdDsKCiAgICB0eXBlZGVmIHZvaWQgKiBvbXBfaW50ZXJvcF90OwoKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X251bV9pbnRlcm9wX3Byb3BlcnRpZXNgIHJvdXRpbmUgcmV0cmlldmVzIHRoZSBudW1iZXIgb2YgaW1wbGVtZW50YXRpb24tZGVmaW5lZCBwcm9wZXJ0aWVzIGF2YWlsYWJsZSBmb3IgYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIGludCAgICAgICAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbnVtX2ludGVyb3BfcHJvcGVydGllcyhjb25zdCBvbXBfaW50ZXJvcF90KTsKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X2ludGVyb3BfaW50YCByb3V0aW5lIHJldHJpZXZlcyBhbiBpbnRlZ2VyIHByb3BlcnR5IGZyb20gYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIG9tcF9pbnRwdHJfdCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW50ZXJvcF9pbnQoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcHJvcGVydHlfdCwgaW50ICopOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfaW50ZXJvcF9wdHJgIHJvdXRpbmUgcmV0cmlldmVzIGEgcG9pbnRlciBwcm9wZXJ0eSBmcm9tIGFuIGBvbXBfaW50ZXJvcF90YCBvYmplY3QuCiAgICAgKi8KICAgIGV4dGVybiB2b2lkICogICAgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2ludGVyb3BfcHRyKGNvbnN0IG9tcF9pbnRlcm9wX3QsIG9tcF9pbnRlcm9wX3Byb3BlcnR5X3QsIGludCAqKTsKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X2ludGVyb3Bfc3RyYCByb3V0aW5lIHJldHJpZXZlcyBhIHN0cmluZyBwcm9wZXJ0eSBmcm9tIGFuIGBvbXBfaW50ZXJvcF90YCBvYmplY3QuCiAgICAgKi8KICAgIGV4dGVybiBjb25zdCBjaGFyICogX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2ludGVyb3Bfc3RyKGNvbnN0IG9tcF9pbnRlcm9wX3QsIG9tcF9pbnRlcm9wX3Byb3BlcnR5X3QsIGludCAqKTsKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X2ludGVyb3BfbmFtZWAgcm91dGluZSByZXRyaWV2ZXMgYSBwcm9wZXJ0eSBuYW1lIGZyb20gYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIGNvbnN0IGNoYXIgKiBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW50ZXJvcF9uYW1lKGNvbnN0IG9tcF9pbnRlcm9wX3QsIG9tcF9pbnRlcm9wX3Byb3BlcnR5X3QpOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfaW50ZXJvcF90eXBlX2Rlc2NgIHJvdXRpbmUgcmV0cmlldmVzIGEgZGVzY3JpcHRpb24gb2YgdGhlIHR5cGUgb2YgYSBwcm9wZXJ0eSBhc3NvY2lhdGVkIHdpdGggYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIGNvbnN0IGNoYXIgKiBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW50ZXJvcF90eXBlX2Rlc2MoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcHJvcGVydHlfdCk7CiAgICAvKiEKICAgICAqIFRoZSBgb21wX2dldF9pbnRlcm9wX3JjX2Rlc2NgIHJvdXRpbmUgcmV0cmlldmVzIGEgZGVzY3JpcHRpb24gb2YgdGhlIHJldHVybiBjb2RlIGFzc29jaWF0ZWQgd2l0aCBhbiBgb21wX2ludGVyb3BfdGAgb2JqZWN0LgogICAgICovCiAgICBleHRlcm4gY29uc3QgY2hhciAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9pbnRlcm9wX3JjX2Rlc2MoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcmNfdCk7CgogICAgLyogT3Blbk1QIDUuMSBkZXZpY2UgbWVtb3J5IHJvdXRpbmVzICovCgogICAgLyohCiAgICAgKiBUaGUgYG9tcF90YXJnZXRfbWVtY3B5X2FzeW5jYCByb3V0aW5lIGFzeW5jaHJvbm91c2x5IHBlcmZvcm1zIGEgY29weSBiZXR3ZWVuIGFueSBjb21iaW5hdGlvbiBvZiBob3N0IGFuZCBkZXZpY2UgcG9pbnRlcnMuCiAgICAgKi8KICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X21lbWNweV9hc3luYyh2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIHNpemVfdCwgaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGludCwgb21wX2RlcGVuZF90ICopOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF90YXJnZXRfbWVtY3B5X3JlY3RfYXN5bmNgIHJvdXRpbmUgYXN5bmNocm9ub3VzbHkgcGVyZm9ybXMgYSBjb3B5IGJldHdlZW4gYW55IGNvbWJpbmF0aW9uIG9mIGhvc3QgYW5kIGRldmljZSBwb2ludGVycy4KICAgICAqLwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfbWVtY3B5X3JlY3RfYXN5bmModm9pZCAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50LCBjb25zdCBzaXplX3QgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV90ICosIGNvbnN0IHNpemVfdCAqLCBjb25zdCBzaXplX3QgKiwgY29uc3Qgc2l6ZV90ICosIGludCwgaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9tcF9kZXBlbmRfdCAqKTsKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X21hcHBlZF9wdHJgIHJvdXRpbmUgcmV0dXJucyB0aGUgZGV2aWNlIHBvaW50ZXIgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBob3N0IHBvaW50ZXIgZm9yIGEgZ2l2ZW4gZGV2aWNlLgogICAgICovCiAgICBleHRlcm4gdm9pZCAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9tYXBwZWRfcHRyKGNvbnN0IHZvaWQgKiwgaW50KTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCk7CgogICAgLyoga21wIEFQSSBmdW5jdGlvbnMgKi8KICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZ2V0X3N0YWNrc2l6ZSAgICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9zdGFja3NpemUgICAgICAgICAgKGludCk7CiAgICBleHRlcm4gc2l6ZV90IF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2dldF9zdGFja3NpemVfcyAgICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfc3RhY2tzaXplX3MgICAgICAgIChzaXplX3QpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9nZXRfYmxvY2t0aW1lICAgICAgICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZ2V0X2xpYnJhcnkgICAgICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9ibG9ja3RpbWUgICAgICAgICAgKGludCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9saWJyYXJ5ICAgICAgICAgICAgKGludCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9saWJyYXJ5X3NlcmlhbCAgICAgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfbGlicmFyeV90dXJuYXJvdW5kICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2xpYnJhcnlfdGhyb3VnaHB1dCAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9kZWZhdWx0cyAgICAgICAgICAgKGNoYXIgY29uc3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9kaXNwX251bV9idWZmZXJzICAgKGludCk7CgogICAgLyogSW50ZWwgYWZmaW5pdHkgQVBJICovCiAgICB0eXBlZGVmIHZvaWQgKiBrbXBfYWZmaW5pdHlfbWFza190OwoKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2FmZmluaXR5ICAgICAgICAgICAgIChrbXBfYWZmaW5pdHlfbWFza190ICopOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9nZXRfYWZmaW5pdHkgICAgICAgICAgICAgKGttcF9hZmZpbml0eV9tYXNrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2dldF9hZmZpbml0eV9tYXhfcHJvYyAgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2NyZWF0ZV9hZmZpbml0eV9tYXNrICAgICAoa21wX2FmZmluaXR5X21hc2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZGVzdHJveV9hZmZpbml0eV9tYXNrICAgIChrbXBfYWZmaW5pdHlfbWFza190ICopOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfYWZmaW5pdHlfbWFza19wcm9jICAgKGludCwga21wX2FmZmluaXR5X21hc2tfdCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfdW5zZXRfYWZmaW5pdHlfbWFza19wcm9jIChpbnQsIGttcF9hZmZpbml0eV9tYXNrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2dldF9hZmZpbml0eV9tYXNrX3Byb2MgICAoaW50LCBrbXBfYWZmaW5pdHlfbWFza190ICopOwoKICAgIC8qIE9wZW5NUCA0LjAgYWZmaW5pdHkgQVBJICovCiAgICB0eXBlZGVmIGVudW0gb21wX3Byb2NfYmluZF90IHsKICAgICAgICBvbXBfcHJvY19iaW5kX2ZhbHNlID0gMCwKICAgICAgICBvbXBfcHJvY19iaW5kX3RydWUgPSAxLAogICAgICAgIG9tcF9wcm9jX2JpbmRfbWFzdGVyID0gMiwKICAgICAgICBvbXBfcHJvY19iaW5kX2Nsb3NlID0gMywKICAgICAgICBvbXBfcHJvY19iaW5kX3NwcmVhZCA9IDQKICAgIH0gb21wX3Byb2NfYmluZF90OwoKICAgIGV4dGVybiBvbXBfcHJvY19iaW5kX3QgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfcHJvY19iaW5kICh2b2lkKTsKCiAgICAvKiBPcGVuTVAgNC41IGFmZmluaXR5IEFQSSAqLwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfbnVtX3BsYWNlcyAodm9pZCk7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wbGFjZV9udW1fcHJvY3MgKGludCk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wbGFjZV9wcm9jX2lkcyAoaW50LCBpbnQgKik7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wbGFjZV9udW0gKHZvaWQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfcGFydGl0aW9uX251bV9wbGFjZXMgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfcGFydGl0aW9uX3BsYWNlX251bXMgKGludCAqKTsKCiAgICBleHRlcm4gdm9pZCAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX21hbGxvYyAgKHNpemVfdCk7CiAgICBleHRlcm4gdm9pZCAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2FsaWduZWRfbWFsbG9jICAoc2l6ZV90LCBzaXplX3QpOwogICAgZXh0ZXJuIHZvaWQgKiBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9jYWxsb2MgIChzaXplX3QsIHNpemVfdCk7CiAgICBleHRlcm4gdm9pZCAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3JlYWxsb2MgKHZvaWQgKiwgc2l6ZV90KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZnJlZSAgICAodm9pZCAqKTsKCiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF93YXJuaW5nc19vbih2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X3dhcm5pbmdzX29mZih2b2lkKTsKCiAgICAvKiBPcGVuTVAgNS4wIFRvb2wgQ29udHJvbCAqLwogICAgdHlwZWRlZiBlbnVtIG9tcF9jb250cm9sX3Rvb2xfcmVzdWx0X3QgewogICAgICAgIG9tcF9jb250cm9sX3Rvb2xfbm90b29sID0gLTIsCiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9ub2NhbGxiYWNrID0gLTEsCiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9zdWNjZXNzID0gMCwKICAgICAgICBvbXBfY29udHJvbF90b29sX2lnbm9yZWQgPSAxCiAgICB9IG9tcF9jb250cm9sX3Rvb2xfcmVzdWx0X3Q7CgogICAgdHlwZWRlZiBlbnVtIG9tcF9jb250cm9sX3Rvb2xfdCB7CiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9zdGFydCA9IDEsCiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9wYXVzZSA9IDIsCiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9mbHVzaCA9IDMsCiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9lbmQgPSA0CiAgICB9IG9tcF9jb250cm9sX3Rvb2xfdDsKCiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfY29udHJvbF90b29sKGludCwgaW50LCB2b2lkKik7CgogICAgLyogT3Blbk1QIDUuMCBNZW1vcnkgTWFuYWdlbWVudCAqLwogICAgdHlwZWRlZiB1aW50cHRyX3Qgb21wX3VpbnRwdHJfdDsKCiAgICB0eXBlZGVmIGVudW0gewogICAgICAgIG9tcF9hdGtfc3luY19oaW50ID0gMSwKICAgICAgICBvbXBfYXRrX2FsaWdubWVudCA9IDIsCiAgICAgICAgb21wX2F0a19hY2Nlc3MgPSAzLAogICAgICAgIG9tcF9hdGtfcG9vbF9zaXplID0gNCwKICAgICAgICBvbXBfYXRrX2ZhbGxiYWNrID0gNSwKICAgICAgICBvbXBfYXRrX2ZiX2RhdGEgPSA2LAogICAgICAgIG9tcF9hdGtfcGlubmVkID0gNywKICAgICAgICBvbXBfYXRrX3BhcnRpdGlvbiA9IDgKICAgIH0gb21wX2FsbG9jdHJhaXRfa2V5X3Q7CgogICAgdHlwZWRlZiBlbnVtIHsKICAgICAgICBvbXBfYXR2X2ZhbHNlID0gMCwKICAgICAgICBvbXBfYXR2X3RydWUgPSAxLAogICAgICAgIG9tcF9hdHZfY29udGVuZGVkID0gMywKICAgICAgICBvbXBfYXR2X3VuY29udGVuZGVkID0gNCwKICAgICAgICBvbXBfYXR2X3NlcmlhbGl6ZWQgPSA1LAogICAgICAgIG9tcF9hdHZfc2VxdWVudGlhbCA9IG9tcF9hdHZfc2VyaWFsaXplZCwgLy8gKGRlcHJlY2F0ZWQpCiAgICAgICAgb21wX2F0dl9wcml2YXRlID0gNiwKICAgICAgICBvbXBfYXR2X2FsbCA9IDcsCiAgICAgICAgb21wX2F0dl90aHJlYWQgPSA4LAogICAgICAgIG9tcF9hdHZfcHRlYW0gPSA5LAogICAgICAgIG9tcF9hdHZfY2dyb3VwID0gMTAsCiAgICAgICAgb21wX2F0dl9kZWZhdWx0X21lbV9mYiA9IDExLAogICAgICAgIG9tcF9hdHZfbnVsbF9mYiA9IDEyLAogICAgICAgIG9tcF9hdHZfYWJvcnRfZmIgPSAxMywKICAgICAgICBvbXBfYXR2X2FsbG9jYXRvcl9mYiA9IDE0LAogICAgICAgIG9tcF9hdHZfZW52aXJvbm1lbnQgPSAxNSwKICAgICAgICBvbXBfYXR2X25lYXJlc3QgPSAxNiwKICAgICAgICBvbXBfYXR2X2Jsb2NrZWQgPSAxNywKICAgICAgICBvbXBfYXR2X2ludGVybGVhdmVkID0gMTgKICAgIH0gb21wX2FsbG9jdHJhaXRfdmFsdWVfdDsKICAgICNkZWZpbmUgb21wX2F0dl9kZWZhdWx0ICgob21wX3VpbnRwdHJfdCktMSkKCiAgICB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgb21wX2FsbG9jdHJhaXRfa2V5X3Qga2V5OwogICAgICAgIG9tcF91aW50cHRyX3QgdmFsdWU7CiAgICB9IG9tcF9hbGxvY3RyYWl0X3Q7CgojICAgaWYgZGVmaW5lZChfV0lOMzIpCiAgICAvLyBPbiBXaW5kb3dzIGNsIGFuZCBpY2wgZG8gbm90IHN1cHBvcnQgNjQtYml0IGVudW0sIGxldCdzIHVzZSBpbnRlZ2VyIHRoZW4uCiAgICB0eXBlZGVmIG9tcF91aW50cHRyX3Qgb21wX2FsbG9jYXRvcl9oYW5kbGVfdDsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBvbXBfbnVsbF9hbGxvY2F0b3I7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX2RlZmF1bHRfbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9jb25zdF9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX2hpZ2hfYndfbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9sb3dfbGF0X21lbV9hbGxvYzsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBvbXBfY2dyb3VwX21lbV9hbGxvYzsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBvbXBfcHRlYW1fbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF90aHJlYWRfbWVtX2FsbG9jOwogICAgLyogUHJldmlldyBvZiB0YXJnZXQgbWVtb3J5IHN1cHBvcnQgKi8KICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBsbHZtX29tcF90YXJnZXRfaG9zdF9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3QgbGx2bV9vbXBfdGFyZ2V0X3NoYXJlZF9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3QgbGx2bV9vbXBfdGFyZ2V0X2RldmljZV9tZW1fYWxsb2M7CgogICAgdHlwZWRlZiBvbXBfdWludHB0cl90IG9tcF9tZW1zcGFjZV9oYW5kbGVfdDsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IG9tcF9kZWZhdWx0X21lbV9zcGFjZTsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IG9tcF9sYXJnZV9jYXBfbWVtX3NwYWNlOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3Qgb21wX2NvbnN0X21lbV9zcGFjZTsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IG9tcF9oaWdoX2J3X21lbV9zcGFjZTsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IG9tcF9sb3dfbGF0X21lbV9zcGFjZTsKICAgIC8qIFByZXZpZXcgb2YgdGFyZ2V0IG1lbW9yeSBzdXBwb3J0ICovCiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9tZW1zcGFjZV9oYW5kbGVfdCBjb25zdCBsbHZtX29tcF90YXJnZXRfaG9zdF9tZW1fc3BhY2U7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9tZW1zcGFjZV9oYW5kbGVfdCBjb25zdCBsbHZtX29tcF90YXJnZXRfc2hhcmVkX21lbV9zcGFjZTsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IGxsdm1fb21wX3RhcmdldF9kZXZpY2VfbWVtX3NwYWNlOwojICAgZWxzZQojICAgICAgIGlmIF9fY3BsdXNwbHVzID49IDIwMTEwMwogICAgdHlwZWRlZiBlbnVtIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgOiBvbXBfdWludHB0cl90CiMgICAgICAgZWxzZQogICAgdHlwZWRlZiBlbnVtIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QKIyAgICAgICBlbmRpZgogICAgewogICAgICBvbXBfbnVsbF9hbGxvY2F0b3IgPSAwLAogICAgICBvbXBfZGVmYXVsdF9tZW1fYWxsb2MgPSAxLAogICAgICBvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYyA9IDIsCiAgICAgIG9tcF9jb25zdF9tZW1fYWxsb2MgPSAzLAogICAgICBvbXBfaGlnaF9id19tZW1fYWxsb2MgPSA0LAogICAgICBvbXBfbG93X2xhdF9tZW1fYWxsb2MgPSA1LAogICAgICBvbXBfY2dyb3VwX21lbV9hbGxvYyA9IDYsCiAgICAgIG9tcF9wdGVhbV9tZW1fYWxsb2MgPSA3LAogICAgICBvbXBfdGhyZWFkX21lbV9hbGxvYyA9IDgsCiAgICAgIC8qIFByZXZpZXcgb2YgdGFyZ2V0IG1lbW9yeSBzdXBwb3J0ICovCiAgICAgIGxsdm1fb21wX3RhcmdldF9ob3N0X21lbV9hbGxvYyA9IDEwMCwKICAgICAgbGx2bV9vbXBfdGFyZ2V0X3NoYXJlZF9tZW1fYWxsb2MgPSAxMDEsCiAgICAgIGxsdm1fb21wX3RhcmdldF9kZXZpY2VfbWVtX2FsbG9jID0gMTAyLAogICAgICBLTVBfQUxMT0NBVE9SX01BWF9IQU5ETEUgPSBVSU5UUFRSX01BWAogICAgfSBvbXBfYWxsb2NhdG9yX2hhbmRsZV90OwojICAgICAgIGlmIF9fY3BsdXNwbHVzID49IDIwMTEwMwogICAgdHlwZWRlZiBlbnVtIG9tcF9tZW1zcGFjZV9oYW5kbGVfdCA6IG9tcF91aW50cHRyX3QKIyAgICAgICBlbHNlCiAgICB0eXBlZGVmIGVudW0gb21wX21lbXNwYWNlX2hhbmRsZV90CiMgICAgICAgZW5kaWYKICAgIHsKICAgICAgb21wX2RlZmF1bHRfbWVtX3NwYWNlID0gMCwKICAgICAgb21wX2xhcmdlX2NhcF9tZW1fc3BhY2UgPSAxLAogICAgICBvbXBfY29uc3RfbWVtX3NwYWNlID0gMiwKICAgICAgb21wX2hpZ2hfYndfbWVtX3NwYWNlID0gMywKICAgICAgb21wX2xvd19sYXRfbWVtX3NwYWNlID0gNCwKICAgICAgLyogUHJldmlldyBvZiB0YXJnZXQgbWVtb3J5IHN1cHBvcnQgKi8KICAgICAgbGx2bV9vbXBfdGFyZ2V0X2hvc3RfbWVtX3NwYWNlID0gMTAwLAogICAgICBsbHZtX29tcF90YXJnZXRfc2hhcmVkX21lbV9zcGFjZSA9IDEwMSwKICAgICAgbGx2bV9vbXBfdGFyZ2V0X2RldmljZV9tZW1fc3BhY2UgPSAxMDIsCiAgICAgIEtNUF9NRU1TUEFDRV9NQVhfSEFORExFID0gVUlOVFBUUl9NQVgKICAgIH0gb21wX21lbXNwYWNlX2hhbmRsZV90OwojICAgZW5kaWYKICAgIGV4dGVybiBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfaW5pdF9hbGxvY2F0b3Iob21wX21lbXNwYWNlX2hhbmRsZV90IG0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnRyYWl0cywgb21wX2FsbG9jdHJhaXRfdCB0cmFpdHNbXSk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2Rlc3Ryb3lfYWxsb2NhdG9yKG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYWxsb2NhdG9yKTsKCiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3NldF9kZWZhdWx0X2FsbG9jYXRvcihvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGEpOwogICAgZXh0ZXJuIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfZGVmYXVsdF9hbGxvY2F0b3Iodm9pZCk7CiMgICBpZmRlZiBfX2NwbHVzcGx1cwogICAgZXh0ZXJuIHZvaWQgKl9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfYWxsb2Moc2l6ZV90IHNpemUsIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYSA9IG9tcF9udWxsX2FsbG9jYXRvcik7CiAgICBleHRlcm4gdm9pZCAqX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9jYWxsb2Moc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSwgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhID0gb21wX251bGxfYWxsb2NhdG9yKTsKICAgIGV4dGVybiB2b2lkICpfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3JlYWxsb2Modm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhbGxvY2F0b3IgPSBvbXBfbnVsbF9hbGxvY2F0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgZnJlZV9hbGxvY2F0b3IgPSBvbXBfbnVsbF9hbGxvY2F0b3IpOwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9mcmVlKHZvaWQgKiBwdHIsIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYSA9IG9tcF9udWxsX2FsbG9jYXRvcik7CiMgICBlbHNlCiAgICBleHRlcm4gdm9pZCAqX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9hbGxvYyhzaXplX3Qgc2l6ZSwgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhKTsKICAgIGV4dGVybiB2b2lkICpfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGEpOwogICAgZXh0ZXJuIHZvaWQgKl9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfcmVhbGxvYyh2b2lkICpwdHIsIHNpemVfdCBzaXplLCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGFsbG9jYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBmcmVlX2FsbG9jYXRvcik7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2ZyZWUodm9pZCAqcHRyLCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGEpOwojICAgZW5kaWYKCiAgICAvKiBPcGVuTVAgNS4wIEFmZmluaXR5IEZvcm1hdCAqLwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9zZXRfYWZmaW5pdHlfZm9ybWF0KGNoYXIgY29uc3QgKik7CiAgICBleHRlcm4gc2l6ZV90IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X2FmZmluaXR5X2Zvcm1hdChjaGFyICosIHNpemVfdCk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2Rpc3BsYXlfYWZmaW5pdHkoY2hhciBjb25zdCAqKTsKICAgIGV4dGVybiBzaXplX3QgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9jYXB0dXJlX2FmZmluaXR5KGNoYXIgKiwgc2l6ZV90LCBjaGFyIGNvbnN0ICopOwoKICAgIC8qIE9wZW5NUCA1LjAgZXZlbnRzICovCiMgICBpZiBkZWZpbmVkKF9XSU4zMikKICAgIC8vIE9uIFdpbmRvd3MgY2wgYW5kIGljbCBkbyBub3Qgc3VwcG9ydCA2NC1iaXQgZW51bSwgbGV0J3MgdXNlIGludGVnZXIgdGhlbi4KICAgIHR5cGVkZWYgb21wX3VpbnRwdHJfdCBvbXBfZXZlbnRfaGFuZGxlX3Q7CiMgICBlbHNlCiAgICB0eXBlZGVmIGVudW0gb21wX2V2ZW50X2hhbmRsZV90IHsgS01QX0VWRU5UX01BWF9IQU5ETEUgPSBVSU5UUFRSX01BWCB9IG9tcF9ldmVudF9oYW5kbGVfdDsKIyAgIGVuZGlmCiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2Z1bGZpbGxfZXZlbnQgKCBvbXBfZXZlbnRfaGFuZGxlX3QgZXZlbnQgKTsKCiAgICAvKiBPcGVuTVAgNS4wIFBhdXNlIFJlc291cmNlcyAqLwogICAgdHlwZWRlZiBlbnVtIG9tcF9wYXVzZV9yZXNvdXJjZV90IHsKICAgICAgb21wX3BhdXNlX3Jlc3VtZSA9IDAsCiAgICAgIG9tcF9wYXVzZV9zb2Z0ID0gMSwKICAgICAgb21wX3BhdXNlX2hhcmQgPSAyCiAgICB9IG9tcF9wYXVzZV9yZXNvdXJjZV90OwogICAgZXh0ZXJuIGludCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3BhdXNlX3Jlc291cmNlKG9tcF9wYXVzZV9yZXNvdXJjZV90LCBpbnQpOwogICAgZXh0ZXJuIGludCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3BhdXNlX3Jlc291cmNlX2FsbChvbXBfcGF1c2VfcmVzb3VyY2VfdCk7CgogICAgZXh0ZXJuIGludCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9zdXBwb3J0ZWRfYWN0aXZlX2xldmVscyh2b2lkKTsKCiAgICAvKiBPcGVuTVAgNS4xICovCiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3NldF9udW1fdGVhbXMoaW50IG51bV90ZWFtcyk7CiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X21heF90ZWFtcyh2b2lkKTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfc2V0X3RlYW1zX3RocmVhZF9saW1pdChpbnQgbGltaXQpOwogICAgZXh0ZXJuIGludCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF90ZWFtc190aHJlYWRfbGltaXQodm9pZCk7CgogICAgLyogT3Blbk1QIDUuMSBEaXNwbGF5IEVudmlyb25tZW50ICovCiAgICBleHRlcm4gdm9pZCBvbXBfZGlzcGxheV9lbnYoaW50IHZlcmJvc2UpOwoKIyAgIGlmIGRlZmluZWQoX09QRU5NUCkgJiYgX09QRU5NUCA+PSAyMDE4MTEKICAgICNwcmFnbWEgb21wIGJlZ2luIGRlY2xhcmUgdmFyaWFudCBtYXRjaChkZXZpY2U9e2tpbmQoaG9zdCl9KQogICAgc3RhdGljIGlubGluZSBpbnQgb21wX2lzX2luaXRpYWxfZGV2aWNlKHZvaWQpIHsgcmV0dXJuIDE7IH0KICAgICNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHZhcmlhbnQKICAgICNwcmFnbWEgb21wIGJlZ2luIGRlY2xhcmUgdmFyaWFudCBtYXRjaChkZXZpY2U9e2tpbmQobm9ob3N0KX0pCiAgICBzdGF0aWMgaW5saW5lIGludCBvbXBfaXNfaW5pdGlhbF9kZXZpY2Uodm9pZCkgeyByZXR1cm4gMDsgfQogICAgI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAojICAgZW5kaWYKCiMgICB1bmRlZiBfX0tBSV9LTVBDX0NPTlZFTlRJT04KIyAgIHVuZGVmIF9fS01QX0lNUAoKICAgIC8qIFdhcm5pbmc6CiAgICAgICBUaGUgZm9sbG93aW5nIHR5cGVkZWZzIGFyZSBub3Qgc3RhbmRhcmQsIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgogICAgKi8KICAgIHR5cGVkZWYgaW50ICAgICBvbXBfaW50X3Q7CiAgICB0eXBlZGVmIGRvdWJsZSAgb21wX3d0aW1lX3Q7CgojICAgaWZkZWYgX19jcGx1c3BsdXMKICAgIH0KIyAgIGVuZGlmCgojZW5kaWYgLyogX19PTVBfSCAqLwoALyo9PT0tLS0tIHNtbWludHJpbi5oIC0gU1NFNCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1NNTUlOVFJJTl9ICiNkZWZpbmUgX19TTU1JTlRSSU5fSAoKI2luY2x1ZGUgPHRtbWludHJpbi5oPgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNzZTQuMSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCi8qIFNTRTQgUm91bmRpbmcgbWFjcm9zLiAqLwojZGVmaW5lIF9NTV9GUk9VTkRfVE9fTkVBUkVTVF9JTlQgICAgMHgwMAojZGVmaW5lIF9NTV9GUk9VTkRfVE9fTkVHX0lORiAgICAgICAgMHgwMQojZGVmaW5lIF9NTV9GUk9VTkRfVE9fUE9TX0lORiAgICAgICAgMHgwMgojZGVmaW5lIF9NTV9GUk9VTkRfVE9fWkVSTyAgICAgICAgICAgMHgwMwojZGVmaW5lIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTiAgICAgMHgwNAoKI2RlZmluZSBfTU1fRlJPVU5EX1JBSVNFX0VYQyAgICAgICAgIDB4MDAKI2RlZmluZSBfTU1fRlJPVU5EX05PX0VYQyAgICAgICAgICAgIDB4MDgKCiNkZWZpbmUgX01NX0ZST1VORF9OSU5UICAgICAgKF9NTV9GUk9VTkRfUkFJU0VfRVhDIHwgX01NX0ZST1VORF9UT19ORUFSRVNUX0lOVCkKI2RlZmluZSBfTU1fRlJPVU5EX0ZMT09SICAgICAoX01NX0ZST1VORF9SQUlTRV9FWEMgfCBfTU1fRlJPVU5EX1RPX05FR19JTkYpCiNkZWZpbmUgX01NX0ZST1VORF9DRUlMICAgICAgKF9NTV9GUk9VTkRfUkFJU0VfRVhDIHwgX01NX0ZST1VORF9UT19QT1NfSU5GKQojZGVmaW5lIF9NTV9GUk9VTkRfVFJVTkMgICAgIChfTU1fRlJPVU5EX1JBSVNFX0VYQyB8IF9NTV9GUk9VTkRfVE9fWkVSTykKI2RlZmluZSBfTU1fRlJPVU5EX1JJTlQgICAgICAoX01NX0ZST1VORF9SQUlTRV9FWEMgfCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCiNkZWZpbmUgX01NX0ZST1VORF9ORUFSQllJTlQgKF9NTV9GUk9VTkRfTk9fRVhDIHwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKLy8vIFJvdW5kcyB1cCBlYWNoIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGFuCi8vLyAgICBpbnRlZ2VyIGFuZCByZXR1cm5zIHRoZSByb3VuZGVkIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fY2VpbF9wcyhfX20xMjggWCk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUFMgLyBST1VORFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdmFsdWVzIHRvIGJlIHJvdW5kZWQgdXAuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9jZWlsX3BzKFgpICAgICAgIF9tbV9yb3VuZF9wcygoWCksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBSb3VuZHMgdXAgZWFjaCBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYW4KLy8vICAgIGludGVnZXIgYW5kIHJldHVybnMgdGhlIHJvdW5kZWQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2NlaWxfcGQoX19tMTI4ZCBYKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQRCAvIFJPVU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdmFsdWVzIHRvIGJlIHJvdW5kZWQgdXAuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByb3VuZGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fY2VpbF9wZChYKSAgICAgICBfbW1fcm91bmRfcGQoKFgpLCBfTU1fRlJPVU5EX0NFSUwpCgovLy8gQ29waWVzIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSBmaXJzdCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyB0aHJlZSB1cHBlciBlbGVtZW50cyBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4gUm91bmRzIHVwIHRoZSBsb3dlc3QgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDEyOC1iaXQgdmVjdG9yCi8vLyAgICBvcGVyYW5kIHRvIGFuIGludGVnZXIgYW5kIGNvcGllcyBpdCB0byB0aGUgbG93ZXN0IGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQKLy8vICAgIHJlc3VsdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2NlaWxfc3MoX19tMTI4IFgsIF9fbTEyOCBZKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRTUyAvIFJPVU5EU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gYml0cyBbMTI3OjMyXSBhcmUKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFszMTowXSBpcwovLy8gICAgcm91bmRlZCB1cCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGFuZCBjb3BpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cwovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCByb3VuZGVkCi8vLyAgICB2YWx1ZXMuCiNkZWZpbmUgX21tX2NlaWxfc3MoWCwgWSkgICAgX21tX3JvdW5kX3NzKChYKSwgKFkpLCBfTU1fRlJPVU5EX0NFSUwpCgovLy8gQ29waWVzIHRoZSB1cHBlciBlbGVtZW50IG9mIHRoZSBmaXJzdCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB1cHBlciBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gICAgUm91bmRzIHVwIHRoZSBsb3dlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgMTI4LWJpdCB2ZWN0b3Igb3BlcmFuZCB0byBhbgovLy8gICAgaW50ZWdlciBhbmQgY29waWVzIGl0IHRvIHRoZSBsb3dlciBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3IKLy8vICAgIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2NlaWxfc2QoX19tMTI4ZCBYLCBfX20xMjhkIFkpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFNEIC8gUk9VTkRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFsxMjc6NjRdIGlzCi8vLyAgICBjb3BpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIFkKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzYzOjBdIGlzCi8vLyAgICByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCByb3VuZGVkCi8vLyAgICB2YWx1ZXMuCiNkZWZpbmUgX21tX2NlaWxfc2QoWCwgWSkgICAgX21tX3JvdW5kX3NkKChYKSwgKFkpLCBfTU1fRlJPVU5EX0NFSUwpCgovLy8gUm91bmRzIGRvd24gZWFjaCBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhbgovLy8gICAgYW4gaW50ZWdlciBhbmQgcmV0dXJucyB0aGUgcm91bmRlZCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2Zsb29yX3BzKF9fbTEyOCBYKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQUyAvIFJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB2YWx1ZXMgdG8gYmUgcm91bmRlZCBkb3duLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByb3VuZGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fZmxvb3JfcHMoWCkgICAgICBfbW1fcm91bmRfcHMoKFgpLCBfTU1fRlJPVU5EX0ZMT09SKQoKLy8vIFJvdW5kcyBkb3duIGVhY2ggZWxlbWVudCBvZiB0aGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGFuCi8vLyAgICBpbnRlZ2VyIGFuZCByZXR1cm5zIHRoZSByb3VuZGVkIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9mbG9vcl9wZChfX20xMjhkIFgpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIC8gUk9VTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9mbG9vcl9wZChYKSAgICAgIF9tbV9yb3VuZF9wZCgoWCksIF9NTV9GUk9VTkRfRkxPT1IpCgovLy8gQ29waWVzIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSBmaXJzdCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyB0aHJlZSB1cHBlciBlbGVtZW50cyBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4gUm91bmRzIGRvd24gdGhlIGxvd2VzdCBlbGVtZW50IG9mIHRoZSBzZWNvbmQgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgdG8gYW4gaW50ZWdlciBhbmQgY29waWVzIGl0IHRvIHRoZSBsb3dlc3QgZWxlbWVudCBvZiB0aGUgMTI4LWJpdAovLy8gICAgcmVzdWx0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fZmxvb3Jfc3MoX19tMTI4IFgsIF9fbTEyOCBZKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRTUyAvIFJPVU5EU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gYml0cyBbMTI3OjMyXSBhcmUKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFszMTowXSBpcwovLy8gICAgcm91bmRlZCBkb3duIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fZmxvb3Jfc3MoWCwgWSkgICBfbW1fcm91bmRfc3MoKFgpLCAoWSksIF9NTV9GUk9VTkRfRkxPT1IpCgovLy8gQ29waWVzIHRoZSB1cHBlciBlbGVtZW50IG9mIHRoZSBmaXJzdCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB1cHBlciBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gICAgUm91bmRzIGRvd24gdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvIGFuCi8vLyAgICBpbnRlZ2VyIGFuZCBjb3BpZXMgaXQgdG8gdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvcgovLy8gICAgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fZmxvb3Jfc2QoX19tMTI4ZCBYLCBfX20xMjhkIFkpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFNEIC8gUk9VTkRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFsxMjc6NjRdIGlzCi8vLyAgICBjb3BpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIFkKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzYzOjBdIGlzCi8vLyAgICByb3VuZGVkIGRvd24gdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBhbmQgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMKLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fZmxvb3Jfc2QoWCwgWSkgICBfbW1fcm91bmRfc2QoKFgpLCAoWSksIF9NTV9GUk9VTkRfRkxPT1IpCgovLy8gUm91bmRzIGVhY2ggZWxlbWVudCBvZiB0aGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYW4KLy8vICAgIGludGVnZXIgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSByb3VuZGluZyBjb250cm9sIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kCi8vLyAgICBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgcm91bmRlZCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX3JvdW5kX3BzKF9fbTEyOCBYLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUFMgLyBST1VORFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgcm91bmRpbmcgb3BlcmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo0XSBhcmUgcmVzZXJ2ZWQuIFxuCi8vLyAgICBCaXQgWzNdIGlzIGEgcHJlY2lzaW9uIGV4Y2VwdGlvbiB2YWx1ZTogXG4KLy8vICAgICAgMDogQSBub3JtYWwgUEUgZXhjZXB0aW9uIGlzIHVzZWQgXG4KLy8vICAgICAgMTogVGhlIFBFIGZpZWxkIGlzIG5vdCB1cGRhdGVkIFxuCi8vLyAgICBCaXQgWzJdIGlzIHRoZSByb3VuZGluZyBjb250cm9sIHNvdXJjZTogXG4KLy8vICAgICAgMDogVXNlIGJpdHMgWzE6MF0gb2YgXGEgTSBcbgovLy8gICAgICAxOiBVc2UgdGhlIGN1cnJlbnQgTVhDU1Igc2V0dGluZyBcbgovLy8gICAgQml0cyBbMTowXSBjb250YWluIHRoZSByb3VuZGluZyBjb250cm9sIGRlZmluaXRpb246IFxuCi8vLyAgICAgIDAwOiBOZWFyZXN0IFxuCi8vLyAgICAgIDAxOiBEb3dud2FyZCAodG93YXJkIG5lZ2F0aXZlIGluZmluaXR5KSBcbgovLy8gICAgICAxMDogVXB3YXJkICh0b3dhcmQgcG9zaXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDExOiBUcnVuY2F0ZWQKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcm91bmRlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3JvdW5kX3BzKFgsIE0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yb3VuZHBzKChfX3Y0c2YpKF9fbTEyOCkoWCksIChNKSkpCgovLy8gQ29waWVzIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSBmaXJzdCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyB0aHJlZSB1cHBlciBlbGVtZW50cyBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4gUm91bmRzIHRoZSBsb3dlc3QgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDEyOC1iaXQgdmVjdG9yCi8vLyAgICBvcGVyYW5kIHRvIGFuIGludGVnZXIgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSByb3VuZGluZyBjb250cm9sIHNwZWNpZmllZAovLy8gICAgYnkgdGhlIHRoaXJkIGFyZ3VtZW50IGFuZCBjb3BpZXMgaXQgdG8gdGhlIGxvd2VzdCBlbGVtZW50IG9mIHRoZSAxMjgtYml0Ci8vLyAgICByZXN1bHQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9yb3VuZF9zcyhfX20xMjggWCwgX19tMTI4IFksIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRTUyAvIFJPVU5EU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gYml0cyBbMTI3OjMyXSBhcmUKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFszMTowXSBpcwovLy8gICAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIHRoZSBzcGVjaWZpZWQgcm91bmRpbmcgY29udHJvbCBhbmQKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgcm91bmRpbmcgb3BlcmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo0XSBhcmUgcmVzZXJ2ZWQuIFxuCi8vLyAgICBCaXQgWzNdIGlzIGEgcHJlY2lzaW9uIGV4Y2VwdGlvbiB2YWx1ZTogXG4KLy8vICAgICAgMDogQSBub3JtYWwgUEUgZXhjZXB0aW9uIGlzIHVzZWQgXG4KLy8vICAgICAgMTogVGhlIFBFIGZpZWxkIGlzIG5vdCB1cGRhdGVkIFxuCi8vLyAgICBCaXQgWzJdIGlzIHRoZSByb3VuZGluZyBjb250cm9sIHNvdXJjZTogXG4KLy8vICAgICAgMDogVXNlIGJpdHMgWzE6MF0gb2YgXGEgTSBcbgovLy8gICAgICAxOiBVc2UgdGhlIGN1cnJlbnQgTVhDU1Igc2V0dGluZyBcbgovLy8gICAgQml0cyBbMTowXSBjb250YWluIHRoZSByb3VuZGluZyBjb250cm9sIGRlZmluaXRpb246IFxuCi8vLyAgICAgIDAwOiBOZWFyZXN0IFxuCi8vLyAgICAgIDAxOiBEb3dud2FyZCAodG93YXJkIG5lZ2F0aXZlIGluZmluaXR5KSBcbgovLy8gICAgICAxMDogVXB3YXJkICh0b3dhcmQgcG9zaXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDExOiBUcnVuY2F0ZWQKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCByb3VuZGVkCi8vLyAgICB2YWx1ZXMuCiNkZWZpbmUgX21tX3JvdW5kX3NzKFgsIFksIE0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yb3VuZHNzKChfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWSksIChNKSkpCgovLy8gUm91bmRzIGVhY2ggZWxlbWVudCBvZiB0aGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGFuCi8vLyAgICBpbnRlZ2VyIHZhbHVlIGFjY29yZGluZyB0byB0aGUgcm91bmRpbmcgY29udHJvbCBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZAovLy8gICAgYXJndW1lbnQgYW5kIHJldHVybnMgdGhlIHJvdW5kZWQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX3JvdW5kX3BkKF9fbTEyOGQgWCwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIC8gUk9VTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSByb3VuZGluZyBvcGVyYXRpb24uIFxuCi8vLyAgICBCaXRzIFs3OjRdIGFyZSByZXNlcnZlZC4gXG4KLy8vICAgIEJpdCBbM10gaXMgYSBwcmVjaXNpb24gZXhjZXB0aW9uIHZhbHVlOiBcbgovLy8gICAgICAwOiBBIG5vcm1hbCBQRSBleGNlcHRpb24gaXMgdXNlZCBcbgovLy8gICAgICAxOiBUaGUgUEUgZmllbGQgaXMgbm90IHVwZGF0ZWQgXG4KLy8vICAgIEJpdCBbMl0gaXMgdGhlIHJvdW5kaW5nIGNvbnRyb2wgc291cmNlOiBcbgovLy8gICAgICAwOiBVc2UgYml0cyBbMTowXSBvZiBcYSBNIFxuCi8vLyAgICAgIDE6IFVzZSB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nIFxuCi8vLyAgICBCaXRzIFsxOjBdIGNvbnRhaW4gdGhlIHJvdW5kaW5nIGNvbnRyb2wgZGVmaW5pdGlvbjogXG4KLy8vICAgICAgMDA6IE5lYXJlc3QgXG4KLy8vICAgICAgMDE6IERvd253YXJkICh0b3dhcmQgbmVnYXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDEwOiBVcHdhcmQgKHRvd2FyZCBwb3NpdGl2ZSBpbmZpbml0eSkgXG4KLy8vICAgICAgMTE6IFRydW5jYXRlZAovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcm91bmRlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3JvdW5kX3BkKFgsIE0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm91bmRwZCgoX192MmRmKShfX20xMjhkKShYKSwgKE0pKSkKCi8vLyBDb3BpZXMgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHVwcGVyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyAgICBSb3VuZHMgdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvIGFuCi8vLyAgICBpbnRlZ2VyIHZhbHVlIGFjY29yZGluZyB0byB0aGUgcm91bmRpbmcgY29udHJvbCBzcGVjaWZpZWQgYnkgdGhlIHRoaXJkCi8vLyAgICBhcmd1bWVudCBhbmQgY29waWVzIGl0IHRvIHRoZSBsb3dlciBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3IKLy8vICAgIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX3JvdW5kX3NkKF9fbTEyOGQgWCwgX19tMTI4ZCBZLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EU0QgLyBST1VORFNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzEyNzo2NF0gaXMKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB2YWx1ZSBzdG9yZWQgaW4gYml0cyBbNjM6MF0gaXMKLy8vICAgIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyB0aGUgc3BlY2lmaWVkIHJvdW5kaW5nIGNvbnRyb2wgYW5kCi8vLyAgICBjb3BpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGludGVnZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHJvdW5kaW5nIG9wZXJhdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6NF0gYXJlIHJlc2VydmVkLiBcbgovLy8gICAgQml0IFszXSBpcyBhIHByZWNpc2lvbiBleGNlcHRpb24gdmFsdWU6IFxuCi8vLyAgICAgIDA6IEEgbm9ybWFsIFBFIGV4Y2VwdGlvbiBpcyB1c2VkIFxuCi8vLyAgICAgIDE6IFRoZSBQRSBmaWVsZCBpcyBub3QgdXBkYXRlZCBcbgovLy8gICAgQml0IFsyXSBpcyB0aGUgcm91bmRpbmcgY29udHJvbCBzb3VyY2U6IFxuCi8vLyAgICAgIDA6IFVzZSBiaXRzIFsxOjBdIG9mIFxhIE0gXG4KLy8vICAgICAgMTogVXNlIHRoZSBjdXJyZW50IE1YQ1NSIHNldHRpbmcgXG4KLy8vICAgIEJpdHMgWzE6MF0gY29udGFpbiB0aGUgcm91bmRpbmcgY29udHJvbCBkZWZpbml0aW9uOiBcbgovLy8gICAgICAwMDogTmVhcmVzdCBcbgovLy8gICAgICAwMTogRG93bndhcmQgKHRvd2FyZCBuZWdhdGl2ZSBpbmZpbml0eSkgXG4KLy8vICAgICAgMTA6IFVwd2FyZCAodG93YXJkIHBvc2l0aXZlIGluZmluaXR5KSBcbgovLy8gICAgICAxMTogVHJ1bmNhdGVkCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fcm91bmRfc2QoWCwgWSwgTSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yb3VuZHNkKChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIChNKSkpCgovKiBTU0U0IFBhY2tlZCBCbGVuZGluZyBJbnRyaW5zaWNzLiAgKi8KLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hlcmUgdGhlIHZhbHVlcyBhcmUKLy8vICAgIHNlbGVjdGVkIGZyb20gZWl0aGVyIHRoZSBmaXJzdCBvciBzZWNvbmQgb3BlcmFuZCBhcyBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICB0aGlyZCBvcGVyYW5kLCB0aGUgY29udHJvbCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fYmxlbmRfcGQoX19tMTI4ZCBWMSwgX19tMTI4ZCBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCTEVORFBEIC8gQkxFTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggbWFzayBiaXRzIFsxOjBdIHNwZWNpZnlpbmcgaG93IHRoZQovLy8gICAgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgICBpbmRleCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIFYxIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gICAgV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjIKLy8vICAgIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4KI2RlZmluZSBfbW1fYmxlbmRfcGQoVjEsIFYyLCBNKSBcCiAgKChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9ibGVuZHBkICgoX192MmRmKShfX20xMjhkKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFYyKSwgKGludCkoTSkpKQoKLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aGVyZSB0aGUgdmFsdWVzIGFyZSBzZWxlY3RlZAovLy8gICAgZnJvbSBlaXRoZXIgdGhlIGZpcnN0IG9yIHNlY29uZCBvcGVyYW5kIGFzIHNwZWNpZmllZCBieSB0aGUgdGhpcmQKLy8vICAgIG9wZXJhbmQsIHRoZSBjb250cm9sIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2JsZW5kX3BzKF9fbTEyOCBWMSwgX19tMTI4IFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EUFMgLyBCTEVORFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggbWFzayBiaXRzIFszOjBdIHNwZWNpZnlpbmcgaG93IHRoZQovLy8gICAgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgICBpbmRleCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIFYxIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gICAgV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjIKLy8vICAgIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9ibGVuZF9wcyhWMSwgVjIsIE0pIFwKICAoKF9fbTEyOCkgX19idWlsdGluX2lhMzJfYmxlbmRwcyAoKF9fdjRzZikoX19tMTI4KShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShWMiksIChpbnQpKE0pKSkKCi8vLyBSZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdoZXJlIHRoZSB2YWx1ZXMgYXJlCi8vLyAgICBzZWxlY3RlZCBmcm9tIGVpdGhlciB0aGUgZmlyc3Qgb3Igc2Vjb25kIG9wZXJhbmQgYXMgc3BlY2lmaWVkIGJ5IHRoZQovLy8gICAgdGhpcmQgb3BlcmFuZCwgdGhlIGNvbnRyb2wgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRWUEQgLyBCTEVORFZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX00KLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgMTI3IGFuZCA2MyBzcGVjaWZ5aW5nIGhvdyB0aGUKLy8vICAgIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICAgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgNjQtYml0IGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBfX1YxIGlzIGNvcGllZCB0byB0aGUgc2FtZQovLy8gICAgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjIgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYmxlbmR2X3BkIChfX20xMjhkIF9fVjEsIF9fbTEyOGQgX19WMiwgX19tMTI4ZCBfX00pCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2JsZW5kdnBkICgoX192MmRmKV9fVjEsIChfX3YyZGYpX19WMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fTSk7Cn0KCi8vLyBSZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hlcmUgdGhlIHZhbHVlcyBhcmUKLy8vICAgIHNlbGVjdGVkIGZyb20gZWl0aGVyIHRoZSBmaXJzdCBvciBzZWNvbmQgb3BlcmFuZCBhcyBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICB0aGlyZCBvcGVyYW5kLCB0aGUgY29udHJvbCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCTEVORFZQUyAvIEJMRU5EVlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX00KLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgMTI3LCA5NSwgNjMsIGFuZCAzMSBzcGVjaWZ5aW5nCi8vLyAgICBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzCi8vLyAgICB0byB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgMzItYml0IGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBfX1YxIGlzIGNvcGllZCB0byB0aGUgc2FtZQovLy8gICAgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjIgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2JsZW5kdl9wcyAoX19tMTI4IF9fVjEsIF9fbTEyOCBfX1YyLCBfX20xMjggX19NKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2JsZW5kdnBzICgoX192NHNmKV9fVjEsIChfX3Y0c2YpX19WMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19NKTsKfQoKLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gd2hlcmUgdGhlIHZhbHVlcyBhcmUgc2VsZWN0ZWQKLy8vICAgIGZyb20gZWl0aGVyIG9mIHRoZSBmaXJzdCBvciBzZWNvbmQgb3BlcmFuZCBhcyBzcGVjaWZpZWQgYnkgdGhlIHRoaXJkCi8vLyAgICBvcGVyYW5kLCB0aGUgY29udHJvbCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQkxFTkRWQiAvIFBCTEVORFZCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIF9fTQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyAxMjcsIDExOSwgMTExLi4uNyBzcGVjaWZ5aW5nCi8vLyAgICBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzCi8vLyAgICB0byB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgOC1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lCi8vLyAgICBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgOC1iaXQKLy8vICAgIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBfX1YyIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2JsZW5kdl9lcGk4IChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMiwgX19tMTI4aSBfX00pCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BibGVuZHZiMTI4ICgoX192MTZxaSlfX1YxLCAoX192MTZxaSlfX1YyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fTSk7Cn0KCi8vLyBSZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIHNlbGVjdGVkCi8vLyAgICBmcm9tIGVpdGhlciBvZiB0aGUgZmlyc3Qgb3Igc2Vjb25kIG9wZXJhbmQgYXMgc3BlY2lmaWVkIGJ5IHRoZSB0aGlyZAovLy8gICAgb3BlcmFuZCwgdGhlIGNvbnRyb2wgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX2JsZW5kX2VwaTE2KF9fbTEyOGkgVjEsIF9fbTEyOGkgVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEJMRU5EVyAvIFBCTEVORFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyBbNzowXSBzcGVjaWZ5aW5nIGhvdyB0aGUKLy8vICAgIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICAgaW5kZXggb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQKLy8vICAgIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBWMSBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4KLy8vICAgIFdoZW4gYSBtYXNrIGJpdCBpcyAxLCB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIFYyCi8vLyAgICBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2JsZW5kX2VwaTE2KFYxLCBWMiwgTSkgXAogICgoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcGJsZW5kdzEyOCAoKF9fdjhoaSkoX19tMTI4aSkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShWMiksIChpbnQpKE0pKSkKCi8qIFNTRTQgRHdvcmQgTXVsdGlwbHkgSW5zdHJ1Y3Rpb25zLiAgKi8KLy8vIE11bHRpcGxlcyBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBpMzJdCi8vLyAgICBhbmQgcmV0dXJucyB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgZWFjaCBwcm9kdWN0IGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1VTExEIC8gUE1VTExEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tdWxsb19lcGkzMiAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192NHN1KV9fVjEgKiAoX192NHN1KV9fVjIpOwp9CgovLy8gTXVsdGlwbGllcyBjb3JyZXNwb25kaW5nIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgdmVjdG9ycyBvZiBbNCB4IGkzMl0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0KLy8vICAgIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMRFEgLyBQTVVMRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tdWxfZXBpMzIgKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbXVsZHExMjggKChfX3Y0c2kpX19WMSwgKF9fdjRzaSlfX1YyKTsKfQoKLyogU1NFNCBGbG9hdGluZyBQb2ludCBEb3QgUHJvZHVjdCBJbnN0cnVjdGlvbnMuICAqLwovLy8gQ29tcHV0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHRoZSB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdCi8vLyAgICBhbmQgcmV0dXJucyBpdCBpbiB0aGUgZWxlbWVudHMgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gICAgVGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgY29udHJvbHMgd2hpY2ggaW5wdXQgZWxlbWVudHMKLy8vICAgIHdpbGwgY29udHJpYnV0ZSB0byB0aGUgZG90IHByb2R1Y3QsIGFuZCB3aGVyZSB0aGUgZmluYWwgcmVzdWx0cyBhcmUKLy8vICAgIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9kcF9wcyhfX20xMjggWCwgX19tMTI4IFksIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBQUyAvIERQUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuIE1hc2sgYml0cyBbNzo0XSBkZXRlcm1pbmUgd2hpY2ggZWxlbWVudHMKLy8vICAgIG9mIHRoZSBpbnB1dCB2ZWN0b3JzIGFyZSB1c2VkLCB3aXRoIGJpdCBbNF0gY29ycmVzcG9uZGluZyB0byB0aGUgbG93ZXN0Ci8vLyAgICBlbGVtZW50IGFuZCBiaXQgWzddIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgZWxlbWVudCBvZiBlYWNoIFs0IHgKLy8vICAgIGZsb2F0XSB2ZWN0b3IuIElmIGEgYml0IGlzIHNldCwgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgZnJvbSB0aGUgdHdvCi8vLyAgICBpbnB1dCB2ZWN0b3JzIGFyZSB1c2VkIGFzIGFuIGlucHV0IGZvciBkb3QgcHJvZHVjdDsgb3RoZXJ3aXNlIHRoYXQgaW5wdXQKLy8vICAgIGlzIHRyZWF0ZWQgYXMgemVyby4gQml0cyBbMzowXSBkZXRlcm1pbmUgd2hpY2ggZWxlbWVudHMgb2YgdGhlIHJlc3VsdAovLy8gICAgd2lsbCByZWNlaXZlIGEgY29weSBvZiB0aGUgZmluYWwgZG90IHByb2R1Y3QsIHdpdGggYml0IFswXSBjb3JyZXNwb25kaW5nCi8vLyAgICB0byB0aGUgbG93ZXN0IGVsZW1lbnQgYW5kIGJpdCBbM10gY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBlbGVtZW50IG9mCi8vLyAgICBlYWNoIFs0IHggZmxvYXRdIHN1YnZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgZG90IHByb2R1Y3QgaXMgcmV0dXJuZWQKLy8vICAgIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQ7IG90aGVyd2lzZSB0aGF0IGVsZW1lbnQgaXMgc2V0IHRvIHplcm8uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRvdCBwcm9kdWN0LgojZGVmaW5lIF9tbV9kcF9wcyhYLCBZLCBNKSBcCiAgKChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2RwcHMoKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWSksIChNKSkpCgovLy8gQ29tcHV0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHRoZSB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXQovLy8gICAgYW5kIHJldHVybnMgaXQgaW4gdGhlIGVsZW1lbnRzIG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyAgICBUaGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBjb250cm9scyB3aGljaCBpbnB1dAovLy8gICAgZWxlbWVudHMgd2lsbCBjb250cmlidXRlIHRvIHRoZSBkb3QgcHJvZHVjdCwgYW5kIHdoZXJlIHRoZSBmaW5hbCByZXN1bHRzCi8vLyAgICBhcmUgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9kcF9wZChfX20xMjhkIFgsIF9fbTEyOGQgWSwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUFBEIC8gRFBQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLiBNYXNrIGJpdHMgWzU6NF0gZGV0ZXJtaW5lIHdoaWNoIGVsZW1lbnRzCi8vLyAgICBvZiB0aGUgaW5wdXQgdmVjdG9ycyBhcmUgdXNlZCwgd2l0aCBiaXQgWzRdIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxvd2VzdAovLy8gICAgZWxlbWVudCBhbmQgYml0IFs1XSBjb3JyZXNwb25kaW5nIHRvIHRoZSBoaWdoZXN0IGVsZW1lbnQgb2YgZWFjaCBvZiBbMiB4Ci8vLyAgICBkb3VibGVdIHZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBmcm9tIHRoZSB0d28KLy8vICAgIGlucHV0IHZlY3RvcnMgYXJlIHVzZWQgYXMgYW4gaW5wdXQgZm9yIGRvdCBwcm9kdWN0OyBvdGhlcndpc2UgdGhhdCBpbnB1dAovLy8gICAgaXMgdHJlYXRlZCBhcyB6ZXJvLiBCaXRzIFsxOjBdIGRldGVybWluZSB3aGljaCBlbGVtZW50cyBvZiB0aGUgcmVzdWx0Ci8vLyAgICB3aWxsIHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBmaW5hbCBkb3QgcHJvZHVjdCwgd2l0aCBiaXQgWzBdIGNvcnJlc3BvbmRpbmcKLy8vICAgIHRvIHRoZSBsb3dlc3QgZWxlbWVudCBhbmQgYml0IFsxXSBjb3JyZXNwb25kaW5nIHRvIHRoZSBoaWdoZXN0IGVsZW1lbnQgb2YKLy8vICAgIGVhY2ggWzIgeCBkb3VibGVdIHZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgZG90IHByb2R1Y3QgaXMgcmV0dXJuZWQgaW4KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQ7IG90aGVyd2lzZSB0aGF0IGVsZW1lbnQgaXMgc2V0IHRvIHplcm8uCiNkZWZpbmUgX21tX2RwX3BkKFgsIFksIE0pIFwKICAoKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2RwcGQoKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIChNKSkpCgovKiBTU0U0IFN0cmVhbWluZyBMb2FkIEhpbnQgSW5zdHJ1Y3Rpb24uICAqLwovLy8gTG9hZHMgaW50ZWdlciB2YWx1ZXMgZnJvbSBhIDEyOC1iaXQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdG8gYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlREUUEgLyBNT1ZOVERRQSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgaW50ZWdlcgovLy8gICAgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRhdGEgc3RvcmVkIGF0IHRoZQovLy8gICAgc3BlY2lmaWVkIG1lbW9yeSBsb2NhdGlvbi4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdHJlYW1fbG9hZF9zaTEyOCAoX19tMTI4aSBjb25zdCAqX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5fbm9udGVtcG9yYWxfbG9hZCAoKGNvbnN0IF9fdjJkaSAqKSBfX1YpOwp9CgovKiBTU0U0IFBhY2tlZCBJbnRlZ2VyIE1pbi9NYXggSW5zdHJ1Y3Rpb25zLiAgKi8KLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsxNiB4IGk4XSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZSBsZXNzZXIKLy8vICAgIG9mIHRoZSB0d28gdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOU0IgLyBQTUlOU0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGxlc3NlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwaTggKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWluc2IxMjggKChfX3YxNnFpKSBfX1YxLCAoX192MTZxaSkgX19WMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbMTYgeCBpOF0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUKLy8vICAgIGdyZWF0ZXIgdmFsdWUgb2YgdGhlIHR3by4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFNCIC8gUE1BWFNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgZ3JlYXRlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWF4X2VwaTggKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWF4c2IxMjggKChfX3YxNnFpKSBfX1YxLCAoX192MTZxaSkgX19WMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbOCB4IHUxNl0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0gY29udGFpbmluZyB0aGUgbGVzc2VyCi8vLyAgICB2YWx1ZSBvZiB0aGUgdHdvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOVVcgLyBQTUlOVVcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XSBjb250YWluaW5nIHRoZSBsZXNzZXIgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21pbl9lcHUxNiAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtaW51dzEyOCAoKF9fdjhoaSkgX19WMSwgKF9fdjhoaSkgX19WMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbOCB4IHUxNl0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0gY29udGFpbmluZyB0aGUKLy8vICAgIGdyZWF0ZXIgdmFsdWUgb2YgdGhlIHR3by4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFVXIC8gUE1BWFVXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCB1MTZdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCB1MTZdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0gY29udGFpbmluZyB0aGUgZ3JlYXRlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWF4X2VwdTE2IChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1heHV3MTI4ICgoX192OGhpKSBfX1YxLCAoX192OGhpKSBfX1YyKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTMyXSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBsZXNzZXIKLy8vICAgIHZhbHVlIG9mIHRoZSB0d28uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNSU5TRCAvIFBNSU5TRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGxlc3NlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwaTMyIChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1pbnNkMTI4ICgoX192NHNpKSBfX1YxLCAoX192NHNpKSBfX1YyKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTMyXSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZQovLy8gICAgZ3JlYXRlciB2YWx1ZSBvZiB0aGUgdHdvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUFYU0QgLyBQTUFYU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBncmVhdGVyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfZXBpMzIgKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWF4c2QxMjggKChfX3Y0c2kpIF9fVjEsIChfX3Y0c2kpIF9fVjIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCB1MzJdIGFuZCByZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdIGNvbnRhaW5pbmcgdGhlIGxlc3NlcgovLy8gICAgdmFsdWUgb2YgdGhlIHR3by4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1JTlVEIC8gUE1JTlVEIDwvYz4gIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggdTMyXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggdTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdIGNvbnRhaW5pbmcgdGhlIGxlc3NlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwdTMyIChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1pbnVkMTI4KChfX3Y0c2kpIF9fVjEsIChfX3Y0c2kpIF9fVjIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCB1MzJdIGFuZCByZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBncmVhdGVyIHZhbHVlIG9mIHRoZSB0d28uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNQVhVRCAvIFBNQVhVRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggdTMyXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggdTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcHUzMiAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtYXh1ZDEyOCgoX192NHNpKSBfX1YxLCAoX192NHNpKSBfX1YyKTsKfQoKLyogU1NFNCBJbnNlcnRpb24gYW5kIEV4dHJhY3Rpb24gZnJvbSBYTU0gUmVnaXN0ZXIgSW5zdHJ1Y3Rpb25zLiAgKi8KLy8vIFRha2VzIHRoZSBmaXJzdCBhcmd1bWVudCBcYSBYIGFuZCBpbnNlcnRzIGFuIGVsZW1lbnQgZnJvbSB0aGUgc2Vjb25kCi8vLyAgICBhcmd1bWVudCBcYSBZIGFzIHNlbGVjdGVkIGJ5IHRoZSB0aGlyZCBhcmd1bWVudCBcYSBOLiBUaGF0IHJlc3VsdCB0aGVuCi8vLyAgICBoYXMgZWxlbWVudHMgemVyb2VkIG91dCBhbHNvIGFzIHNlbGVjdGVkIGJ5IHRoZSB0aGlyZCBhcmd1bWVudCBcYSBOLiBUaGUKLy8vICAgIHJlc3VsdGluZyAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBpcyB0aGVuIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9pbnNlcnRfcHMoX19tMTI4IFgsIF9fbTEyOCBZLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igc291cmNlIG9wZXJhbmQgb2YgWzQgeCBmbG9hdF0uIFdpdGggdGhlIGV4Y2VwdGlvbiBvZgovLy8gICAgdGhvc2UgYml0cyBpbiB0aGUgcmVzdWx0IGNvcGllZCBmcm9tIHBhcmFtZXRlciBcYSBZIGFuZCB6ZXJvZWQgYnkgYml0cwovLy8gICAgWzM6MF0gb2YgXGEgTiwgYWxsIGJpdHMgZnJvbSB0aGlzIHBhcmFtZXRlciBhcmUgY29waWVkIHRvIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBzb3VyY2Ugb3BlcmFuZCBvZiBbNCB4IGZsb2F0XS4gT25lIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgZnJvbSB0aGlzIHNvdXJjZSwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1tZWRpYXRlCi8vLyAgICBwYXJhbWV0ZXIsIGlzIGNvcGllZCB0byB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIE4KLy8vICAgIFNwZWNpZmllcyB3aGljaCBiaXRzIGZyb20gb3BlcmFuZCBcYSBZIHdpbGwgYmUgY29waWVkLCB3aGljaCBiaXRzIGluIHRoZQovLy8gICAgcmVzdWx0IHRoZXkgd2lsbCBiZSBiZSBjb3BpZWQgdG8sIGFuZCB3aGljaCBiaXRzIGluIHRoZSByZXN1bHQgd2lsbCBiZQovLy8gICAgY2xlYXJlZC4gVGhlIGZvbGxvd2luZyBhc3NpZ25tZW50cyBhcmUgbWFkZTogXG4KLy8vICAgIEJpdHMgWzc6Nl0gc3BlY2lmeSB0aGUgYml0cyB0byBjb3B5IGZyb20gb3BlcmFuZCBcYSBZOiBcbgovLy8gICAgICAwMDogU2VsZWN0cyBiaXRzIFszMTowXSBmcm9tIG9wZXJhbmQgXGEgWS4gXG4KLy8vICAgICAgMDE6IFNlbGVjdHMgYml0cyBbNjM6MzJdIGZyb20gb3BlcmFuZCBcYSBZLiBcbgovLy8gICAgICAxMDogU2VsZWN0cyBiaXRzIFs5NTo2NF0gZnJvbSBvcGVyYW5kIFxhIFkuIFxuCi8vLyAgICAgIDExOiBTZWxlY3RzIGJpdHMgWzEyNzo5Nl0gZnJvbSBvcGVyYW5kIFxhIFkuIFxuCi8vLyAgICBCaXRzIFs1OjRdIHNwZWNpZnkgdGhlIGJpdHMgaW4gdGhlIHJlc3VsdCB0byB3aGljaCB0aGUgc2VsZWN0ZWQgYml0cwovLy8gICAgZnJvbSBvcGVyYW5kIFxhIFkgYXJlIGNvcGllZDogXG4KLy8vICAgICAgMDA6IENvcGllcyB0aGUgc2VsZWN0ZWQgYml0cyBmcm9tIFxhIFkgdG8gcmVzdWx0IGJpdHMgWzMxOjBdLiBcbgovLy8gICAgICAwMTogQ29waWVzIHRoZSBzZWxlY3RlZCBiaXRzIGZyb20gXGEgWSB0byByZXN1bHQgYml0cyBbNjM6MzJdLiBcbgovLy8gICAgICAxMDogQ29waWVzIHRoZSBzZWxlY3RlZCBiaXRzIGZyb20gXGEgWSB0byByZXN1bHQgYml0cyBbOTU6NjRdLiBcbgovLy8gICAgICAxMTogQ29waWVzIHRoZSBzZWxlY3RlZCBiaXRzIGZyb20gXGEgWSB0byByZXN1bHQgYml0cyBbMTI3Ojk2XS4gXG4KLy8vICAgIEJpdHNbMzowXTogSWYgYW55IG9mIHRoZXNlIGJpdHMgYXJlIHNldCwgdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0Ci8vLyAgICBlbGVtZW50IGlzIGNsZWFyZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZAovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cyBmcm9tIHRoZSBvcGVyYW5kcy4KI2RlZmluZSBfbW1faW5zZXJ0X3BzKFgsIFksIE4pIF9fYnVpbHRpbl9pYTMyX2luc2VydHBzMTI4KChYKSwgKFkpLCAoTikpCgovLy8gRXh0cmFjdHMgYSAzMi1iaXQgaW50ZWdlciBmcm9tIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gYW5kCi8vLyAgICByZXR1cm5zIGl0LCB1c2luZyB0aGUgaW1tZWRpYXRlIHZhbHVlIHBhcmFtZXRlciBcYSBOIGFzIGEgc2VsZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2V4dHJhY3RfcHMoX19tMTI4IFgsIGNvbnN0IGludCBOKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVFBTIC8gRVhUUkFDVFBTIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0cyBbMTowXSBkZXRlcm1pbmVzIHdoaWNoIGJpdHMgZnJvbSB0aGUgYXJndW1lbnQKLy8vICAgIFxhIFggYXJlIGV4dHJhY3RlZCBhbmQgcmV0dXJuZWQ6IFxuCi8vLyAgICAwMDogQml0cyBbMzE6MF0gb2YgcGFyYW1ldGVyIFxhIFggYXJlIHJldHVybmVkLiBcbgovLy8gICAgMDE6IEJpdHMgWzYzOjMyXSBvZiBwYXJhbWV0ZXIgXGEgWCBhcmUgcmV0dXJuZWQuIFxuCi8vLyAgICAxMDogQml0cyBbOTU6NjRdIG9mIHBhcmFtZXRlciBcYSBYIGFyZSByZXR1cm5lZC4gXG4KLy8vICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHBhcmFtZXRlciBcYSBYIGFyZSByZXR1cm5lZC4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgZXh0cmFjdGVkIDMyIGJpdHMgb2YgZmxvYXQgZGF0YS4KI2RlZmluZSBfbW1fZXh0cmFjdF9wcyhYLCBOKSBcCiAgX19idWlsdGluX2JpdF9jYXN0KGludCwgX19idWlsdGluX2lhMzJfdmVjX2V4dF92NHNmKChfX3Y0c2YpKF9fbTEyOCkoWCksIChpbnQpKE4pKSkKCi8qIE1pc2NlbGxhbmVvdXMgaW5zZXJ0IGFuZCBleHRyYWN0IG1hY3Jvcy4gICovCi8qIEV4dHJhY3QgYSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IGZyb20gWCBhdCBpbmRleCBOIGludG8gRC4gICovCiNkZWZpbmUgX01NX0VYVFJBQ1RfRkxPQVQoRCwgWCwgTikgXAogIGRvIHsgKEQpID0gX19idWlsdGluX2lhMzJfdmVjX2V4dF92NHNmKChfX3Y0c2YpKF9fbTEyOCkoWCksIChpbnQpKE4pKTsgfSB3aGlsZSAoMCkKCi8qIE9yIHRvZ2V0aGVyIDIgc2V0cyBvZiBpbmRleGVzIChYIGFuZCBZKSB3aXRoIHRoZSB6ZXJvaW5nIGJpdHMgKFopIHRvIGNyZWF0ZQogICBhbiBpbmRleCBzdWl0YWJsZSBmb3IgX21tX2luc2VydF9wcy4gICovCiNkZWZpbmUgX01NX01LX0lOU0VSVFBTX05EWChYLCBZLCBaKSAoKChYKSA8PCA2KSB8ICgoWSkgPDwgNCkgfCAoWikpCgovKiBFeHRyYWN0IGEgZmxvYXQgZnJvbSBYIGF0IGluZGV4IE4gaW50byB0aGUgZmlyc3QgaW5kZXggb2YgdGhlIHJldHVybi4gICovCiNkZWZpbmUgX01NX1BJQ0tfT1VUX1BTKFgsIE4pIF9tbV9pbnNlcnRfcHMgKF9tbV9zZXR6ZXJvX3BzKCksIChYKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9NS19JTlNFUlRQU19ORFgoKE4pLCAwLCAweDBlKSkKCi8qIEluc2VydCBpbnQgaW50byBwYWNrZWQgaW50ZWdlciBhcnJheSBhdCBpbmRleC4gICovCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGJ5IGZpcnN0IG1ha2luZyBhIGNvcHkgb2YKLy8vICAgIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHBhcmFtZXRlciwgYW5kIHRoZW4gaW5zZXJ0aW5nIHRoZSBsb3dlciA4IGJpdHMKLy8vICAgIG9mIGFuIGludGVnZXIgcGFyYW1ldGVyIFxhIEkgaW50byBhbiBvZmZzZXQgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUKLy8vICAgIHZhbHVlIHBhcmFtZXRlciBcYSBOLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1faW5zZXJ0X2VwaTgoX19tMTI4aSBYLCBpbnQgSSwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQSU5TUkIgLyBQSU5TUkIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFsxNiB4IGk4XS4gVGhpcyB2ZWN0b3IgaXMgY29waWVkIHRvIHRoZQovLy8gICAgcmVzdWx0IGFuZCB0aGVuIG9uZSBvZiB0aGUgc2l4dGVlbiBlbGVtZW50cyBpbiB0aGUgcmVzdWx0IHZlY3RvciBpcwovLy8gICAgcmVwbGFjZWQgYnkgdGhlIGxvd2VyIDggYml0cyBvZiBcYSBJLgovLy8gXHBhcmFtIEkKLy8vICAgIEFuIGludGVnZXIuIFRoZSBsb3dlciA4IGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB3cml0dGVuIHRvIHRoZSByZXN1bHQKLy8vICAgIGJlZ2lubmluZyBhdCB0aGUgb2Zmc2V0IHNwZWNpZmllZCBieSBcYSBOLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0cyBbMzowXSBzcGVjaWZ5IHRoZSBiaXQgb2Zmc2V0IGluIHRoZSByZXN1bHQgYXQKLy8vICAgIHdoaWNoIHRoZSBsb3dlciA4IGJpdHMgb2YgXGEgSSBhcmUgd3JpdHRlbi4gXG4KLy8vICAgIDAwMDA6IEJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDAwMTogQml0cyBbMTU6OF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDAxMDogQml0cyBbMjM6MTZdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDAwMTE6IEJpdHMgWzMxOjI0XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAwMTAwOiBCaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDEwMTogQml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDAxMTA6IEJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAwMTExOiBCaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTAwMDogQml0cyBbNzE6NjRdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDEwMDE6IEJpdHMgWzc5OjcyXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMDEwOiBCaXRzIFs4Nzo4MF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTAxMTogQml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDExMDA6IEJpdHMgWzEwMzo5Nl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTEwMTogQml0cyBbMTExOjEwNF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTExMDogQml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTExMTogQml0cyBbMTI3OjEyMF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbnN0cnVjdGVkIHZhbHVlcy4KI2RlZmluZSBfbW1faW5zZXJ0X2VwaTgoWCwgSSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3YxNnFpKChfX3YxNnFpKShfX20xMjhpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEkpLCAoaW50KShOKSkpCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBieSBmaXJzdCBtYWtpbmcgYSBjb3B5IG9mCi8vLyAgICB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIsIGFuZCB0aGVuIGluc2VydGluZyB0aGUgMzItYml0Ci8vLyAgICBpbnRlZ2VyIHBhcmFtZXRlciBcYSBJIGF0IHRoZSBvZmZzZXQgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgdmFsdWUKLy8vICAgIHBhcmFtZXRlciBcYSBOLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1faW5zZXJ0X2VwaTMyKF9fbTEyOGkgWCwgaW50IEksIGNvbnN0IGludCBOKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUElOU1JEIC8gUElOU1JEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0uIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUKLy8vICAgIHJlc3VsdCBhbmQgdGhlbiBvbmUgb2YgdGhlIGZvdXIgZWxlbWVudHMgaW4gdGhlIHJlc3VsdCB2ZWN0b3IgaXMKLy8vICAgIHJlcGxhY2VkIGJ5IFxhIEkuCi8vLyBccGFyYW0gSQovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB0aGF0IGlzIHdyaXR0ZW4gdG8gdGhlIHJlc3VsdCBiZWdpbm5pbmcgYXQgdGhlIG9mZnNldAovLy8gICAgc3BlY2lmaWVkIGJ5IFxhIE4uCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXRzIFsxOjBdIHNwZWNpZnkgdGhlIGJpdCBvZmZzZXQgaW4gdGhlIHJlc3VsdCBhdAovLy8gICAgd2hpY2ggdGhlIGludGVnZXIgXGEgSSBpcyB3cml0dGVuLiBcbgovLy8gICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9pbnNlcnRfZXBpMzIoWCwgSSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3Y0c2koKF9fdjRzaSkoX19tMTI4aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEkpLCAoaW50KShOKSkpCgojaWZkZWYgX194ODZfNjRfXwovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBieSBmaXJzdCBtYWtpbmcgYSBjb3B5IG9mCi8vLyAgICB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIsIGFuZCB0aGVuIGluc2VydGluZyB0aGUgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHBhcmFtZXRlciBcYSBJLCB1c2luZyB0aGUgaW1tZWRpYXRlIHZhbHVlIHBhcmFtZXRlciBcYSBOIGFzIGFuCi8vLyAgICBpbnNlcnRpb24gbG9jYXRpb24gc2VsZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9pbnNlcnRfZXBpNjQoX19tMTI4aSBYLCBsb25nIGxvbmcgSSwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQSU5TUlEgLyBQSU5TUlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhpcyB2ZWN0b3IgaXMgY29waWVkIHRvIHRoZQovLy8gICAgcmVzdWx0IGFuZCB0aGVuIG9uZSBvZiB0aGUgdHdvIGVsZW1lbnRzIGluIHRoZSByZXN1bHQgdmVjdG9yIGlzIHJlcGxhY2VkCi8vLyAgICBieSBcYSBJLgovLy8gXHBhcmFtIEkKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdGhhdCBpcyB3cml0dGVuIHRvIHRoZSByZXN1bHQgYmVnaW5uaW5nIGF0IHRoZSBvZmZzZXQKLy8vICAgIHNwZWNpZmllZCBieSBcYSBOLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0IFswXSBzcGVjaWZpZXMgdGhlIGJpdCBvZmZzZXQgaW4gdGhlIHJlc3VsdCBhdAovLy8gICAgd2hpY2ggdGhlIGludGVnZXIgXGEgSSBpcyB3cml0dGVuLiBcbgovLy8gICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTogQml0cyBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9pbnNlcnRfZXBpNjQoWCwgSSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3YyZGkoKF9fdjJkaSkoX19tMTI4aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKEkpLCAoaW50KShOKSkpCiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgovKiBFeHRyYWN0IGludCBmcm9tIHBhY2tlZCBpbnRlZ2VyIGFycmF5IGF0IGluZGV4LiAgVGhpcyByZXR1cm5zIHRoZSBlbGVtZW50CiAqIGFzIGEgemVybyBleHRlbmRlZCB2YWx1ZSwgc28gaXQgaXMgdW5zaWduZWQuCiAqLwovLy8gRXh0cmFjdHMgYW4gOC1iaXQgZWxlbWVudCBmcm9tIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mCi8vLyAgICBbMTYgeCBpOF0sIHVzaW5nIHRoZSBpbW1lZGlhdGUgdmFsdWUgcGFyYW1ldGVyIFxhIE4gYXMgYSBzZWxlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fZXh0cmFjdF9lcGk4KF9fbTEyOGkgWCwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVhUUkIgLyBQRVhUUkIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0cyBbMzowXSBzcGVjaWZ5IHdoaWNoIDgtYml0IHZlY3RvciBlbGVtZW50IGZyb20KLy8vICAgIHRoZSBhcmd1bWVudCBcYSBYIHRvIGV4dHJhY3QgYW5kIGNvcHkgdG8gdGhlIHJlc3VsdC4gXG4KLy8vICAgIDAwMDA6IEJpdHMgWzc6MF0gb2YgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4gXG4KLy8vICAgIDAwMDE6IEJpdHMgWzE1OjhdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDAxMDogQml0cyBbMjM6MTZdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDAxMTogQml0cyBbMzE6MjRdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDEwMDogQml0cyBbMzk6MzJdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDEwMTogQml0cyBbNDc6NDBdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDExMDogQml0cyBbNTU6NDhdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDExMTogQml0cyBbNjM6NTZdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTAwMDogQml0cyBbNzE6NjRdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTAwMTogQml0cyBbNzk6NzJdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTAxMDogQml0cyBbODc6ODBdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTAxMTogQml0cyBbOTU6ODhdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTEwMDogQml0cyBbMTAzOjk2XSBvZiB0aGUgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4gXG4KLy8vICAgIDExMDE6IEJpdHMgWzExMToxMDRdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTExMDogQml0cyBbMTE5OjExMl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMTExOiBCaXRzIFsxMjc6MTIwXSBvZiB0aGUgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zICBBbiB1bnNpZ25lZCBpbnRlZ2VyLCB3aG9zZSBsb3dlciA4IGJpdHMgYXJlIHNlbGVjdGVkIGZyb20gdGhlCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIHBhcmFtZXRlciBhbmQgdGhlIHJlbWFpbmluZyBiaXRzIGFyZSBhc3NpZ25lZAovLy8gICAgemVyb3MuCiNkZWZpbmUgX21tX2V4dHJhY3RfZXBpOChYLCBOKSBcCiAgKChpbnQpKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfdmVjX2V4dF92MTZxaSgoX192MTZxaSkoX19tMTI4aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE4pKSkKCi8vLyBFeHRyYWN0cyBhIDMyLWJpdCBlbGVtZW50IGZyb20gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YKLy8vICAgIFs0IHggaTMyXSwgdXNpbmcgdGhlIGltbWVkaWF0ZSB2YWx1ZSBwYXJhbWV0ZXIgXGEgTiBhcyBhIHNlbGVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9leHRyYWN0X2VwaTMyKF9fbTEyOGkgWCwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVhUUkQgLyBQRVhUUkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0cyBbMTowXSBzcGVjaWZ5IHdoaWNoIDMyLWJpdCB2ZWN0b3IgZWxlbWVudCBmcm9tCi8vLyAgICB0aGUgYXJndW1lbnQgXGEgWCB0byBleHRyYWN0IGFuZCBjb3B5IHRvIHRoZSByZXN1bHQuIFxuCi8vLyAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4gXG4KLy8vICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXhyYWN0ZWQuCi8vLyBccmV0dXJucyAgQW4gaW50ZWdlciwgd2hvc2UgbG93ZXIgMzIgYml0cyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyIGFuZCB0aGUgcmVtYWluaW5nIGJpdHMgYXJlIGFzc2lnbmVkIHplcm9zLgojZGVmaW5lIF9tbV9leHRyYWN0X2VwaTMyKFgsIE4pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0c2koKF9fdjRzaSkoX19tMTI4aSkoWCksIChpbnQpKE4pKSkKCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBFeHRyYWN0cyBhIDY0LWJpdCBlbGVtZW50IGZyb20gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YKLy8vICAgIFsyIHggaTY0XSwgdXNpbmcgdGhlIGltbWVkaWF0ZSB2YWx1ZSBwYXJhbWV0ZXIgXGEgTiBhcyBhIHNlbGVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gbG9uZyBsb25nIF9tbV9leHRyYWN0X2VwaTY0KF9fbTEyOGkgWCwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVhUUlEgLyBQRVhUUlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIE4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZS4gQml0IFswXSBzcGVjaWZpZXMgd2hpY2ggNjQtYml0IHZlY3RvciBlbGVtZW50IGZyb20KLy8vICAgIHRoZSBhcmd1bWVudCBcYSBYIHRvIHJldHVybi4gXG4KLy8vICAgIDA6IEJpdHMgWzYzOjBdIGFyZSByZXR1cm5lZC4gXG4KLy8vICAgIDE6IEJpdHMgWzEyNzo2NF0gYXJlIHJldHVybmVkLiBcbgovLy8gXHJldHVybnMgIEEgNjQtYml0IGludGVnZXIuCiNkZWZpbmUgX21tX2V4dHJhY3RfZXBpNjQoWCwgTikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjJkaSgoX192MmRpKShfX20xMjhpKShYKSwgKGludCkoTikpKQojZW5kaWYgLyogX194ODZfNjQgKi8KCi8qIFNTRTQgMTI4LWJpdCBQYWNrZWQgSW50ZWdlciBDb21wYXJpc29ucy4gICovCi8vLyBUZXN0cyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYml0cyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYXJlIGFsbAovLy8gICAgemVyb3MuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19NCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0cyB0byBiZSB0ZXN0ZWQuCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igc2VsZWN0aW5nIHdoaWNoIGJpdHMgdG8gdGVzdCBpbiBvcGVyYW5kIFxhIF9fTS4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIHNwZWNpZmllZCBiaXRzIGFyZSBhbGwgemVyb3M7IEZBTFNFIG90aGVyd2lzZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdGVzdHpfc2kxMjgoX19tMTI4aSBfX00sIF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3B0ZXN0ejEyOCgoX192MmRpKV9fTSwgKF9fdjJkaSlfX1YpOwp9CgovLy8gVGVzdHMgd2hldGhlciB0aGUgc3BlY2lmaWVkIGJpdHMgaW4gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGFyZSBhbGwKLy8vICAgIG9uZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19NCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0cyB0byBiZSB0ZXN0ZWQuCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igc2VsZWN0aW5nIHdoaWNoIGJpdHMgdG8gdGVzdCBpbiBvcGVyYW5kIFxhIF9fTS4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIHNwZWNpZmllZCBiaXRzIGFyZSBhbGwgb25lczsgRkFMU0Ugb3RoZXJ3aXNlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV90ZXN0Y19zaTEyOChfX20xMjhpIF9fTSwgX19tMTI4aSBfX1YpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHRlc3RjMTI4KChfX3YyZGkpX19NLCAoX192MmRpKV9fVik7Cn0KCi8vLyBUZXN0cyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYml0cyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYXJlCi8vLyAgICBuZWl0aGVyIGFsbCB6ZXJvcyBub3IgYWxsIG9uZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19NCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0cyB0byBiZSB0ZXN0ZWQuCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igc2VsZWN0aW5nIHdoaWNoIGJpdHMgdG8gdGVzdCBpbiBvcGVyYW5kIFxhIF9fTS4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIHNwZWNpZmllZCBiaXRzIGFyZSBuZWl0aGVyIGFsbCB6ZXJvcyBub3IgYWxsIG9uZXM7Ci8vLyAgICBGQUxTRSBvdGhlcndpc2UuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Rlc3RuemNfc2kxMjgoX19tMTI4aSBfX00sIF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3B0ZXN0bnpjMTI4KChfX3YyZGkpX19NLCAoX192MmRpKV9fVik7Cn0KCi8vLyBUZXN0cyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYml0cyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYXJlIGFsbAovLy8gICAgb25lcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fdGVzdF9hbGxfb25lcyhfX20xMjhpIFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVEVTVCAvIFBURVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIGJpdHMgc3BlY2lmaWVkIGluIHRoZSBvcGVyYW5kIGFyZSBhbGwgc2V0IHRvIDE7IEZBTFNFCi8vLyAgICBvdGhlcndpc2UuCiNkZWZpbmUgX21tX3Rlc3RfYWxsX29uZXMoVikgX21tX3Rlc3RjX3NpMTI4KChWKSwgX21tX2NtcGVxX2VwaTMyKChWKSwgKFYpKSkKCi8vLyBUZXN0cyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYml0cyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYXJlCi8vLyAgICBuZWl0aGVyIGFsbCB6ZXJvcyBub3IgYWxsIG9uZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX3Rlc3RfbWl4X29uZXNfemVyb3MoX19tMTI4aSBNLCBfX20xMjhpIFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVEVTVCAvIFBURVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIE0KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igc2VsZWN0aW5nIHdoaWNoIGJpdHMgdG8gdGVzdCBpbiBvcGVyYW5kIFxhIE0uCi8vLyBccmV0dXJucyBUUlVFIGlmIHRoZSBzcGVjaWZpZWQgYml0cyBhcmUgbmVpdGhlciBhbGwgemVyb3Mgbm9yIGFsbCBvbmVzOwovLy8gICAgRkFMU0Ugb3RoZXJ3aXNlLgojZGVmaW5lIF9tbV90ZXN0X21peF9vbmVzX3plcm9zKE0sIFYpIF9tbV90ZXN0bnpjX3NpMTI4KChNKSwgKFYpKQoKLy8vIFRlc3RzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBiaXRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhcmUgYWxsCi8vLyAgICB6ZXJvcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fdGVzdF9hbGxfemVyb3MoX19tMTI4aSBNLCBfX20xMjhpIFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVEVTVCAvIFBURVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIE0KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igc2VsZWN0aW5nIHdoaWNoIGJpdHMgdG8gdGVzdCBpbiBvcGVyYW5kIFxhIE0uCi8vLyBccmV0dXJucyBUUlVFIGlmIHRoZSBzcGVjaWZpZWQgYml0cyBhcmUgYWxsIHplcm9zOyBGQUxTRSBvdGhlcndpc2UuCiNkZWZpbmUgX21tX3Rlc3RfYWxsX3plcm9zKE0sIFYpIF9tbV90ZXN0el9zaTEyOCAoKE0pLCAoVikpCgovKiBTU0U0IDY0LWJpdCBQYWNrZWQgSW50ZWdlciBDb21wYXJpc29ucy4gICovCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyBmb3IgZXF1YWxpdHkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFUVEgLyBQQ01QRVFRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfZXBpNjQoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZGkpX19WMSA9PSAoX192MmRpKV9fVjIpOwp9CgovKiBTU0U0IFBhY2tlZCBJbnRlZ2VyIFNpZ24tRXh0ZW5zaW9uLiAgKi8KLy8vIFNpZ24tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciBlaWdodCA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB0byAxNi1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBUaGUgdXBwZXIgZWlnaHQgZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvcgovLy8gICAgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlNYQlcgLyBQTU9WU1hCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBUaGUgbG93ZXIgZWlnaHQgOC1iaXQgZWxlbWVudHMgYXJlIHNpZ24tCi8vLyAgICBleHRlbmRlZCB0byAxNi1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgc2lnbi1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGk4X2VwaTE2KF9fbTEyOGkgX19WKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXMpX19WLCAoX192MTZxcylfX1YsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpLCBfX3Y4aGkpOwp9CgovLy8gU2lnbi1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIGZvdXIgOC1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gdG8gMzItYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIHVwcGVyIHR3ZWx2ZSBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hCRCAvIFBNT1ZTWEJEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciBmb3VyIDgtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgc2lnbi1leHRlbmRlZCB0byAzMi1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgc2lnbi1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGk4X2VwaTMyKF9fbTEyOGkgX19WKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXMpX19WLCAoX192MTZxcylfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0c2kpOwp9CgovLy8gU2lnbi1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIHR3byA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaThdIHRvIDY0LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSB1cHBlciBmb3VydGVlbiBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hCUSAvIFBNT1ZTWEJRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciB0d28gOC1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICBzaWduLWV4dGVuZGVkIHRvIDY0LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSBzaWduLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwaThfZXBpNjQoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX1YsIChfX3YxNnFzKV9fViwgMCwgMSksIF9fdjJkaSk7Cn0KCi8vLyBTaWduLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgZm91ciAxNi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XSB0byAzMi1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4KLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBUaGUgdXBwZXIgZm91ciBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hXRCAvIFBNT1ZTWFdEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoZSBsb3dlciBmb3VyIDE2LWJpdCBlbGVtZW50cyBhcmUKLy8vICAgIHNpZ24tZXh0ZW5kZWQgdG8gMzItYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHNpZ24tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXBpMTZfZXBpMzIoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhoaSlfX1YsIChfX3Y4aGkpX19WLCAwLCAxLCAyLCAzKSwgX192NHNpKTsKfQoKLy8vIFNpZ24tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciB0d28gMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0gdG8gNjQtYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIHVwcGVyIHNpeCBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hXUSAvIFBNT1ZTWFdRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoZSBsb3dlciB0d28gMTYtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgIHNpZ24tZXh0ZW5kZWQgdG8gNjQtYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHNpZ24tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXBpMTZfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhoaSlfX1YsIChfX3Y4aGkpX19WLCAwLCAxKSwgX192MmRpKTsKfQoKLy8vIFNpZ24tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciB0d28gMzItYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0gdG8gNjQtYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIHVwcGVyIHR3byBlbGVtZW50cyBvZiB0aGUgaW5wdXQgdmVjdG9yCi8vLyAgICBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hEUSAvIFBNT1ZTWERRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uIFRoZSBsb3dlciB0d28gMzItYml0IGVsZW1lbnRzIGFyZQovLy8gICAgc2lnbi1leHRlbmRlZCB0byA2NC1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgc2lnbi1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkzMl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fViwgKF9fdjRzaSlfX1YsIDAsIDEpLCBfX3YyZGkpOwp9CgovKiBTU0U0IFBhY2tlZCBJbnRlZ2VyIFplcm8tRXh0ZW5zaW9uLiAgKi8KLy8vIFplcm8tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciBlaWdodCA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB0byAxNi1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBUaGUgdXBwZXIgZWlnaHQgZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvcgovLy8gICAgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlpYQlcgLyBQTU9WWlhCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBUaGUgbG93ZXIgZWlnaHQgOC1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICB6ZXJvLWV4dGVuZGVkIHRvIDE2LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSB6ZXJvLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwdThfZXBpMTYoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXUpX19WLCAoX192MTZxdSlfX1YsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpLCBfX3Y4aGkpOwp9CgovLy8gWmVyby1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIGZvdXIgOC1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gdG8gMzItYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIHVwcGVyIHR3ZWx2ZSBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WWlhCRCAvIFBNT1ZaWEJEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciBmb3VyIDgtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgemVyby1leHRlbmRlZCB0byAzMi1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgemVyby1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcHU4X2VwaTMyKF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnF1KV9fViwgKF9fdjE2cXUpX19WLCAwLCAxLCAyLCAzKSwgX192NHNpKTsKfQoKLy8vIFplcm8tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciB0d28gOC1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFsxNiB4IGk4XSB0byA2NC1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4KLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgdXBwZXIgZm91cnRlZW4gZWxlbWVudHMgb2YgdGhlIGlucHV0Ci8vLyAgICB2ZWN0b3IgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlpYQlEgLyBQTU9WWlhCUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBUaGUgbG93ZXIgdHdvIDgtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgemVyby1leHRlbmRlZCB0byA2NC1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgemVyby1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcHU4X2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnF1KV9fViwgKF9fdjE2cXUpX19WLCAwLCAxKSwgX192MmRpKTsKfQoKLy8vIFplcm8tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciBmb3VyIDE2LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdIHRvIDMyLWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uIFRoZSB1cHBlciBmb3VyIGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZaWFdEIC8gUE1PVlpYV0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4gVGhlIGxvd2VyIGZvdXIgMTYtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgemVyby1leHRlbmRlZCB0byAzMi1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgemVyby1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcHUxNl9lcGkzMihfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGh1KV9fViwgKF9fdjhodSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0c2kpOwp9CgovLy8gWmVyby1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIHR3byAxNi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XSB0byA2NC1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4KLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgdXBwZXIgc2l4IGVsZW1lbnRzIG9mIHRoZSBpbnB1dCB2ZWN0b3IKLy8vICAgIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZaWFdRIC8gUE1PVlpYV1EgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4gVGhlIGxvd2VyIHR3byAxNi1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICB6ZXJvLWV4dGVuZGVkIHRvIDY0LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSB6ZXJvLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwdTE2X2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aHUpX19WLCAoX192OGh1KV9fViwgMCwgMSksIF9fdjJkaSk7Cn0KCi8vLyBaZXJvLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgdHdvIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMzJdIHRvIDY0LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSB1cHBlciB0d28gZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvcgovLy8gICAgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlpYRFEgLyBQTU9WWlhEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBUaGUgbG93ZXIgdHdvIDMyLWJpdCBlbGVtZW50cyBhcmUKLy8vICAgIHplcm8tZXh0ZW5kZWQgdG8gNjQtYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHplcm8tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXB1MzJfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzdSlfX1YsIChfX3Y0c3UpX19WLCAwLCAxKSwgX192MmRpKTsKfQoKLyogU1NFNCBQYWNrIHdpdGggVW5zaWduZWQgU2F0dXJhdGlvbi4gICovCi8vLyBDb252ZXJ0cyAzMi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kcyBpbnRvIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYW5kIHJldHVybnMgdGhlIHBhY2tlZCByZXN1bHQuCi8vLyAgICBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4RkZGRi4gVmFsdWVzIGxlc3MgdGhhbgovLy8gICAgMHgwMDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQUNLVVNEVyAvIFBBQ0tVU0RXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBFYWNoIDMyLWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgc2lnbmVkIGludGVnZXIgYW5kIGlzIGNvbnZlcnRlZCB0byBhIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHhGRkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDAwMDAgYXJlIHNhdHVyYXRlZCB0byAweDAwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gRWFjaCAzMi1iaXQgZWxlbWVudCBpcyB0cmVhdGVkIGFzIGEKLy8vICAgIHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYSAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4RkZGRi4gVmFsdWVzCi8vLyAgICBsZXNzIHRoYW4gMHgwMDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMDAwLiBUaGUgY29udmVydGVkIFs0IHggaTE2XSB2YWx1ZXMKLy8vICAgIGFyZSB3cml0dGVuIHRvIHRoZSBoaWdoZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2t1c19lcGkzMihfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcGFja3VzZHcxMjgoKF9fdjRzaSlfX1YxLCAoX192NHNpKV9fVjIpOwp9CgovKiBTU0U0IE11bHRpcGxlIFBhY2tlZCBTdW1zIG9mIEFic29sdXRlIERpZmZlcmVuY2UuICAqLwovLy8gU3VidHJhY3RzIDgtYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGFuZCBjb21wdXRlcyB0aGUgYWJzb2x1dGUKLy8vICAgIHZhbHVlcyBvZiB0aGUgZGlmZmVyZW5jZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyAgICBUaGVuIHN1bXMgb2YgdGhlIGFic29sdXRlIGRpZmZlcmVuY2VzIGFyZSByZXR1cm5lZCBhY2NvcmRpbmcgdG8gdGhlIGJpdAovLy8gICAgZmllbGRzIGluIHRoZSBpbW1lZGlhdGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX21wc2FkYndfZXB1OChfX20xMjhpIFgsIF9fbTEyOGkgWSwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNUFNBREJXIC8gTVBTQURCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgYWJzb2x1dGUgZGlmZmVyZW5jZXMgYXJlIHRvCi8vLyAgICBiZSBjYWxjdWxhdGVkLCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBhbGdvcml0aG06Ci8vLyAgICBcY29kZQovLy8gICAgLy8gTTIgcmVwcmVzZW50cyBiaXQgMiBvZiB0aGUgaW1tZWRpYXRlIG9wZXJhbmQKLy8vICAgIC8vIE0xMCByZXByZXNlbnRzIGJpdHMgWzE6MF0gb2YgdGhlIGltbWVkaWF0ZSBvcGVyYW5kCi8vLyAgICBpID0gTTIgKiA0OwovLy8gICAgaiA9IE0xMCAqIDQ7Ci8vLyAgICBmb3IgKGsgPSAwOyBrIDwgODsgayA9IGsgKyAxKSB7Ci8vLyAgICAgIGQwID0gYWJzKFhbaSArIGsgKyAwXSAtIFlbaiArIDBdKTsKLy8vICAgICAgZDEgPSBhYnMoWFtpICsgayArIDFdIC0gWVtqICsgMV0pOwovLy8gICAgICBkMiA9IGFicyhYW2kgKyBrICsgMl0gLSBZW2ogKyAyXSk7Ci8vLyAgICAgIGQzID0gYWJzKFhbaSArIGsgKyAzXSAtIFlbaiArIDNdKTsKLy8vICAgICAgcltrXSA9IGQwICsgZDEgKyBkMiArIGQzOwovLy8gICAgfQovLy8gICAgXGVuZGNvZGUKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdW1zIG9mIHRoZSBzZXRzIG9mCi8vLyAgICBhYnNvbHV0ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCiNkZWZpbmUgX21tX21wc2FkYndfZXB1OChYLCBZLCBNKSBcCiAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9tcHNhZGJ3MTI4KChfX3YxNnFpKShfX20xMjhpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoWSksIChNKSkpCgovLy8gRmluZHMgdGhlIG1pbmltdW0gdW5zaWduZWQgMTYtYml0IGVsZW1lbnQgaW4gdGhlIGlucHV0IDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbOCB4IHUxNl0gYW5kIHJldHVybnMgaXQgYW5kIGFsb25nIHdpdGggaXRzIGluZGV4LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQSE1JTlBPU1VXIC8gUEhNSU5QT1NVVyA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2YWx1ZSB3aGVyZSBiaXRzIFsxNTowXSBjb250YWluIHRoZSBtaW5pbXVtIHZhbHVlIGZvdW5kCi8vLyAgICBpbiBwYXJhbWV0ZXIgXGEgX19WLCBiaXRzIFsxODoxNl0gY29udGFpbiB0aGUgaW5kZXggb2YgdGhlIG1pbmltdW0gdmFsdWUKLy8vICAgIGFuZCB0aGUgcmVtYWluaW5nIGJpdHMgYXJlIHNldCB0byAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWlucG9zX2VwdTE2KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9waG1pbnBvc3V3MTI4KChfX3Y4aGkpX19WKTsKfQoKLyogSGFuZGxlIHRoZSBzc2U0LjIgZGVmaW5pdGlvbnMgaGVyZS4gKi8KCi8qIFRoZXNlIGRlZmluaXRpb25zIGFyZSBub3JtYWxseSBpbiBubW1pbnRyaW4uaCwgYnV0IGdjYyBwdXRzIHRoZW0gaW4gaGVyZQogICBzbyB3ZSdsbCBkbyB0aGUgc2FtZS4gICovCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlNC4yIikpKQoKLyogVGhlc2Ugc3BlY2lmeSB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgd2UncmUgY29tcGFyaW5nLiAgKi8KI2RlZmluZSBfU0lERF9VQllURV9PUFMgICAgICAgICAgICAgICAgIDB4MDAKI2RlZmluZSBfU0lERF9VV09SRF9PUFMgICAgICAgICAgICAgICAgIDB4MDEKI2RlZmluZSBfU0lERF9TQllURV9PUFMgICAgICAgICAgICAgICAgIDB4MDIKI2RlZmluZSBfU0lERF9TV09SRF9PUFMgICAgICAgICAgICAgICAgIDB4MDMKCi8qIFRoZXNlIHNwZWNpZnkgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiBvcGVyYXRpb24uICAqLwojZGVmaW5lIF9TSUREX0NNUF9FUVVBTF9BTlkgICAgICAgICAgICAgMHgwMAojZGVmaW5lIF9TSUREX0NNUF9SQU5HRVMgICAgICAgICAgICAgICAgMHgwNAojZGVmaW5lIF9TSUREX0NNUF9FUVVBTF9FQUNIICAgICAgICAgICAgMHgwOAojZGVmaW5lIF9TSUREX0NNUF9FUVVBTF9PUkRFUkVEICAgICAgICAgMHgwYwoKLyogVGhlc2UgbWFjcm9zIHNwZWNpZnkgdGhlIHBvbGFyaXR5IG9mIHRoZSBvcGVyYXRpb24uICAqLwojZGVmaW5lIF9TSUREX1BPU0lUSVZFX1BPTEFSSVRZICAgICAgICAgMHgwMAojZGVmaW5lIF9TSUREX05FR0FUSVZFX1BPTEFSSVRZICAgICAgICAgMHgxMAojZGVmaW5lIF9TSUREX01BU0tFRF9QT1NJVElWRV9QT0xBUklUWSAgMHgyMAojZGVmaW5lIF9TSUREX01BU0tFRF9ORUdBVElWRV9QT0xBUklUWSAgMHgzMAoKLyogVGhlc2UgbWFjcm9zIGFyZSB1c2VkIGluIF9tbV9jbXBYc3RyaSgpIHRvIHNwZWNpZnkgdGhlIHJldHVybi4gICovCiNkZWZpbmUgX1NJRERfTEVBU1RfU0lHTklGSUNBTlQgICAgICAgICAweDAwCiNkZWZpbmUgX1NJRERfTU9TVF9TSUdOSUZJQ0FOVCAgICAgICAgICAweDQwCgovKiBUaGVzZSBtYWNyb3MgYXJlIHVzZWQgaW4gX21tX2NtcFhzdHJpKCkgdG8gc3BlY2lmeSB0aGUgcmV0dXJuLiAgKi8KI2RlZmluZSBfU0lERF9CSVRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAKI2RlZmluZSBfU0lERF9VTklUX01BU0sgICAgICAgICAgICAgICAgIDB4NDAKCi8qIFNTRTQuMiBQYWNrZWQgQ29tcGFyaXNvbiBJbnRyaW5zaWNzLiAgKi8KLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggaW1wbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdAovLy8gICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX2NtcGlzdHJtKF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSTSAvIFBDTVBJU1RSTSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcywgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLCBhbmQgdGhlIGZvcm1hdCBvZiB0aGUgcmV0dXJuCi8vLyAgICB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyAgICBCaXQgWzZdOiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHJlc3VsdCBpcyB6ZXJvLWV4dGVuZGVkIG9yIGV4cGFuZGVkIHRvIDE2Ci8vLyAgICAgICAgICAgICBieXRlcy4gXG4KLy8vICAgICAgMDogVGhlIHJlc3VsdCBpcyB6ZXJvLWV4dGVuZGVkIHRvIDE2IGJ5dGVzLiBcbgovLy8gICAgICAxOiBUaGUgcmVzdWx0IGlzIGV4cGFuZGVkIHRvIDE2IGJ5dGVzICh0aGlzIGV4cGFuc2lvbiBpcyBwZXJmb3JtZWQgYnkKLy8vICAgICAgICAgcmVwZWF0aW5nIGVhY2ggYml0IDggb3IgMTYgdGltZXMpLgovLy8gXHJldHVybnMgUmV0dXJucyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgbWFzayBvZgovLy8gICAgdGhlIGNvbXBhcmlzb24uCiNkZWZpbmUgX21tX2NtcGlzdHJtKEEsIEIsIE0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGNtcGlzdHJtMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBpbXBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBpbmRleCBvZiB0aGUKLy8vICAgIGNvbXBhcmlzb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGlzdHJpKF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSSSAvIFBDTVBJU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcywgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLCBhbmQgdGhlIGZvcm1hdCBvZiB0aGUgcmV0dXJuCi8vLyAgICB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyAgICBCaXQgWzZdOiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGluZGV4IG9mIHRoZSBsb3dlc3Qgc2V0IGJpdCBvciB0aGUKLy8vICAgICAgICAgICAgIGhpZ2hlc3Qgc2V0IGJpdCBpcyByZXR1cm5lZC4gXG4KLy8vICAgICAgMDogVGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBzZXQgYml0LiBcbgovLy8gICAgICAxOiBUaGUgaW5kZXggb2YgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgc2V0IGJpdC4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBpbmRleCBvZiB0aGUgY29tcGFyaXNvbi4KI2RlZmluZSBfbW1fY21waXN0cmkoQSwgQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBpc3RyaTEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGV4cGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQKLy8vICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9jbXBlc3RybShfX20xMjhpIEEsIGludCBMQSwgX19tMTI4aSBCLCBpbnQgTEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVTVFJNIC8gUENNUEVTVFJNIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEEKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExCCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzLCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0sIGFuZCB0aGUgZm9ybWF0IG9mIHRoZSByZXR1cm4KLy8vICAgIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vICAgIEJpdCBbNl06IERldGVybWluZXMgd2hldGhlciB0aGUgcmVzdWx0IGlzIHplcm8tZXh0ZW5kZWQgb3IgZXhwYW5kZWQgdG8gMTYKLy8vICAgICAgICAgICAgIGJ5dGVzLiBcbgovLy8gICAgICAwOiBUaGUgcmVzdWx0IGlzIHplcm8tZXh0ZW5kZWQgdG8gMTYgYnl0ZXMuIFxuCi8vLyAgICAgIDE6IFRoZSByZXN1bHQgaXMgZXhwYW5kZWQgdG8gMTYgYnl0ZXMgKHRoaXMgZXhwYW5zaW9uIGlzIHBlcmZvcm1lZCBieQovLy8gICAgICAgICByZXBlYXRpbmcgZWFjaCBiaXQgOCBvciAxNiB0aW1lcykuIFxuCi8vLyBccmV0dXJucyBSZXR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBtYXNrIG9mCi8vLyAgICB0aGUgY29tcGFyaXNvbi4KI2RlZmluZSBfbW1fY21wZXN0cm0oQSwgTEEsIEIsIExCLCBNKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BjbXBlc3RybTEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIChpbnQpKExBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShMQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGV4cGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IGluZGV4IG9mIHRoZQovLy8gICAgY29tcGFyaXNvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21wZXN0cmkoX19tMTI4aSBBLCBpbnQgTEEsIF9fbTEyOGkgQiwgaW50IExCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFU1RSSSAvIFBDTVBFU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExBCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBBLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQgovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQi4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcywgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLCBhbmQgdGhlIGZvcm1hdCBvZiB0aGUgcmV0dXJuCi8vLyAgICB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyAgICBCaXQgWzZdOiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGluZGV4IG9mIHRoZSBsb3dlc3Qgc2V0IGJpdCBvciB0aGUKLy8vICAgICAgICAgICAgIGhpZ2hlc3Qgc2V0IGJpdCBpcyByZXR1cm5lZC4gXG4KLy8vICAgICAgMDogVGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBzZXQgYml0LiBcbgovLy8gICAgICAxOiBUaGUgaW5kZXggb2YgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgc2V0IGJpdC4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBpbmRleCBvZiB0aGUgY29tcGFyaXNvbi4KI2RlZmluZSBfbW1fY21wZXN0cmkoQSwgTEEsIEIsIExCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGVzdHJpMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE0pKSkKCi8qIFNTRTQuMiBQYWNrZWQgQ29tcGFyaXNvbiBJbnRyaW5zaWNzIGFuZCBFRmxhZyBSZWFkaW5nLiAgKi8KLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggaW1wbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIGJpdCBtYXNrIGlzIHplcm8gYW5kIHRoZSBsZW5ndGggb2YgdGhlCi8vLyAgICBzdHJpbmcgaW4gXGEgQiBpcyB0aGUgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGlzdHJhKF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSSSAvIFBDTVBJU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgYml0IG1hc2sgaXMgemVybyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluCi8vLyAgICBcYSBCIGlzIHRoZSBtYXhpbXVtOyBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21waXN0cmEoQSwgQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBpc3RyaWExMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGltcGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyAxIGlmIHRoZSBiaXQgbWFzayBpcyBub24temVybywgb3RoZXJ3aXNlLCByZXR1cm5zCi8vLyAgICAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBpc3RyYyhfX20xMjhpIEEsIF9fbTEyOGkgQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QSVNUUkkgLyBQQ01QSVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuCi8vLyBccmV0dXJucyBSZXR1cm5zIDEgaWYgdGhlIGJpdCBtYXNrIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21waXN0cmMoQSwgQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBpc3RyaWMxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGltcGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyBiaXQgMCBvZiB0aGUgcmVzdWx0aW5nIGJpdCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBpc3RybyhfX20xMjhpIEEsIF9fbTEyOGkgQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QSVNUUkkgLyBQQ01QSVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyBccmV0dXJucyBSZXR1cm5zIGJpdCAwIG9mIHRoZSByZXN1bHRpbmcgYml0IG1hc2suCiNkZWZpbmUgX21tX2NtcGlzdHJvKEEsIEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21waXN0cmlvMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBpbXBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQSBpcyBsZXNzIHRoYW4KLy8vICAgIHRoZSBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21waXN0cnMoX19tMTI4aSBBLCBfX20xMjhpIEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUElTVFJJIC8gUENNUElTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLiBcbgovLy8gXHJldHVybnMgUmV0dXJucyAxIGlmIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBBIGlzIGxlc3MgdGhhbiB0aGUKLy8vICAgIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBpc3RycyhBLCBCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGlzdHJpczEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggaW1wbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIgaXMgbGVzcyB0aGFuCi8vLyAgICB0aGUgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGlzdHJ6KF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSSSAvIFBDTVBJU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQiBpcyBsZXNzIHRoYW4gdGhlCi8vLyAgICBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21waXN0cnooQSwgQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBpc3RyaXoxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGV4cGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyAxIGlmIHRoZSBiaXQgbWFzayBpcyB6ZXJvIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZQovLy8gICAgc3RyaW5nIGluIFxhIEIgaXMgdGhlIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBlc3RyYShfX20xMjhpIEEsIGludCBMQSwgX19tMTI4aSBCLCBpbnQgTEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVTVFJJIC8gUENNUEVTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEEKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExCCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLgovLy8gXHJldHVybnMgUmV0dXJucyAxIGlmIHRoZSBiaXQgbWFzayBpcyB6ZXJvIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4KLy8vICAgIFxhIEIgaXMgdGhlIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBlc3RyYShBLCBMQSwgQiwgTEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21wZXN0cmlhMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKExCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIHJlc3VsdGluZyBtYXNrIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UsCi8vLyAgICByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGVzdHJjKF9fbTEyOGkgQSwgaW50IExBLCBfX20xMjhpIEIsIGludCBMQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVNUUkkgLyBQQ01QRVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyBccmV0dXJucyBSZXR1cm5zIDEgaWYgdGhlIHJlc3VsdGluZyBtYXNrIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21wZXN0cmMoQSwgTEEsIEIsIExCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGVzdHJpYzEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIChpbnQpKExBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShMQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGV4cGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyBiaXQgMCBvZiB0aGUgcmVzdWx0aW5nIGJpdCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBlc3RybyhfX20xMjhpIEEsIGludCBMQSwgX19tMTI4aSBCLCBpbnQgTEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVTVFJJIC8gUENNUEVTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEEKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExCCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLgovLy8gXHJldHVybnMgUmV0dXJucyBiaXQgMCBvZiB0aGUgcmVzdWx0aW5nIGJpdCBtYXNrLgojZGVmaW5lIF9tbV9jbXBlc3RybyhBLCBMQSwgQiwgTEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21wZXN0cmlvMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKExCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEgaXMgbGVzcyB0aGFuCi8vLyAgICB0aGUgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGVzdHJzKF9fbTEyOGkgQSwgaW50IExBLCBfX20xMjhpIEIsIGludCBMQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVNUUkkgLyBQQ01QRVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBpbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyBccmV0dXJucyBSZXR1cm5zIDEgaWYgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEgaXMgbGVzcyB0aGFuIHRoZQovLy8gICAgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCiNkZWZpbmUgX21tX2NtcGVzdHJzKEEsIExBLCBCLCBMQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBlc3RyaXMxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCAoaW50KShMQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBleHBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQiBpcyBsZXNzIHRoYW4KLy8vICAgIHRoZSBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21wZXN0cnooX19tMTI4aSBBLCBpbnQgTEEsIF9fbTEyOGkgQiwgaW50IExCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFU1RSSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEEKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExCCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQiBpcyBsZXNzIHRoYW4gdGhlCi8vLyAgICBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21wZXN0cnooQSwgTEEsIEIsIExCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGVzdHJpejEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIChpbnQpKExBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShMQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE0pKSkKCi8qIFNTRTQuMiBDb21wYXJlIFBhY2tlZCBEYXRhIC0tIEdyZWF0ZXIgVGhhbi4gICovCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBhcmUKLy8vICAgIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBHVFEgLyBQQ01QR1RRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfZXBpNjQoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZGkpX19WMSA+IChfX3YyZGkpX19WMik7Cn0KCi8qIFNTRTQuMiBBY2N1bXVsYXRlIENSQzMyLiAgKi8KLy8vIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKLy8vICAgIHVuc2lnbmVkIGNoYXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDUkMzMkIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19DCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKLy8vICAgIFxhICBfX0QuCi8vLyBccGFyYW0gX19ECi8vLyAgICBBbiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyIG9wZXJhbmQgdXNlZCB0byBjb21wdXRlIHRoZSBDUkMtMzJDIGNoZWNrc3VtLgovLy8gXHJldHVybnMgVGhlIHJlc3VsdCBvZiBhZGRpbmcgb3BlcmFuZCBcYSBfX0MgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YKLy8vICAgIG9wZXJhbmQgXGEgX19ELgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jcmMzMl91OCh1bnNpZ25lZCBpbnQgX19DLCB1bnNpZ25lZCBjaGFyIF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMnFpKF9fQywgX19EKTsKfQoKLy8vIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKLy8vICAgIHVuc2lnbmVkIHNob3J0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQwovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCi8vLyAgICBcYSBfX0QuCi8vLyBccGFyYW0gX19ECi8vLyAgICBBbiB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlciBvcGVyYW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgQ1JDLTMyQyBjaGVja3N1bS4KLy8vIFxyZXR1cm5zIFRoZSByZXN1bHQgb2YgYWRkaW5nIG9wZXJhbmQgXGEgX19DIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCi8vLyAgICBvcGVyYW5kIFxhIF9fRC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3JjMzJfdTE2KHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIHNob3J0IF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMmhpKF9fQywgX19EKTsKfQoKLy8vIEFkZHMgdGhlIGZpcnN0IHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgovLy8gICAgdGhlIHNlY29uZCB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJMIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQwovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCi8vLyAgICBcYSBfX0QuCi8vLyBccGFyYW0gX19ECi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBvcGVyYW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgQ1JDLTMyQyBjaGVja3N1bS4KLy8vIFxyZXR1cm5zIFRoZSByZXN1bHQgb2YgYWRkaW5nIG9wZXJhbmQgXGEgX19DIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCi8vLyAgICBvcGVyYW5kIFxhIF9fRC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3JjMzJfdTMyKHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIGludCBfX0QpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3JjMzJzaShfX0MsIF9fRCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBBZGRzIHRoZSB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YgdGhlCi8vLyAgICB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENSQzMyUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX0MKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byBhZGQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2Ygb3BlcmFuZAovLy8gICAgXGEgX19ELgovLy8gXHBhcmFtIF9fRAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCi8vLyBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgovLy8gICAgb3BlcmFuZCBcYSBfX0QuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NyYzMyX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19DLCB1bnNpZ25lZCBsb25nIGxvbmcgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMyZGkoX19DLCBfX0QpOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojaW5jbHVkZSA8cG9wY250aW50cmluLmg+CgojZW5kaWYgLyogX19TTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0tLS0geDg2Z3ByaW50cmluLmggLSBYODYgR1BSIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fWDg2R1BSSU5UUklOX0gKI2RlZmluZSBfX1g4NkdQUklOVFJJTl9ICgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0hSRVNFVF9fKQojaW5jbHVkZSA8aHJlc2V0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19VSU5UUl9fKQojaW5jbHVkZSA8dWludHJpbnRyaW4uaD4KI2VuZGlmCgojZGVmaW5lIF9fU1NDX01BUksoVGFnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXNtX18gX192b2xhdGlsZV9fKCJtb3ZsICUlZWJ4LCAlJWVheDsgbW92bCAlMCwgJSVlYng7IC5ieXRlIDB4NjQsIDB4NjcsICIgXAogICAgICAgICAgICAgICAgICAgICAgICIweDkwOyBtb3ZsICUlZWF4LCAlJWVieDsiIDo6ImkiKFRhZykgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgIDogIiVlYXgiKTsKCiNlbmRpZiAvKiBfX1g4NkdQUklOVFJJTl9IICovCgB4c2F2ZWNpbnRyaW4uaAAvKj09PS0tLS0geHRlc3RpbnRyaW4uaCAtIFhURVNUIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHh0ZXN0aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1hURVNUSU5UUklOX0gKI2RlZmluZSBfX1hURVNUSU5UUklOX0gKCi8qIHh0ZXN0IHJldHVybnMgbm9uLXplcm8gaWYgdGhlIGluc3RydWN0aW9uIGlzIGV4ZWN1dGVkIHdpdGhpbiBhbiBSVE0gb3IgYWN0aXZlCiAqIEhMRSByZWdpb24uICovCi8qIEZJWE1FOiBUaGlzIGNhbiBiZSBhbiBlaXRoZXIgb3IgZm9yIFJUTS9ITEUuIERlYWwgd2l0aCB0aGlzIHdoZW4gSExFIGlzCiAqIHN1cHBvcnRlZC4gKi8Kc3RhdGljIF9faW5saW5lX18gaW50CiAgICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInJ0bSIpKSkKICAgIF94dGVzdCh2b2lkKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3h0ZXN0KCk7Cn0KCiNlbmRpZgoAb3Blbm1wX3dyYXBwZXJzL21hdGguaABAXHcrQABcXAB1bnN1cHBvcnRlZCBlbmNvZGluZwByb290L2ZpbGVzLwBDb21waWxlcjo6Q29weSBjYWxsZWQhAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvbmZhLmNjAFxiAENjAER1cGxveWFuAE5rbwBObABTeXJpYWMAU0lHQUJSVAB1bmV4cGVjdGVkIHBfdHlwZQBJbml0KCkgZGlkIG5vdCBzZXQgZ2V0Y3B1X2ZuXwBzeW1ib2wgb3V0IG9mIHJhbmdlAGNoYXIAdW5zaWduZWQgaW50AERkAGNvAGxzAHJzAGd0ACEAUmVxdWVzdGVkIHByZWZpeCBzaXplIABdIGhhcyBhbiBpbnZhbGlkIGxlbmd0aCAAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3MvaW50ZXJuYWwvZXNjYXBpbmcuY2MAbm8AaW5pdHkAbmV3X2ggIT0gbnVsbHB0cgB3LT53YWl0cC0+Y29uZCA9PSBudWxscHRyAFJlYWRlclVubG9jayAAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9qYWNvYmkuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL29jdC5jAEVDRFNBIEtleUdlbiBmYWlsZWQKAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVyL2VfYWVzLmMARGlmZmllLUhlbGxtYW4gcm91dGluZXMARUNESCByb3V0aW5lcwBreXRoZS5wcm90by5BbmFseXNpc1JlcXVlc3QucmV2aXNpb24Aa3l0aGUucHJvdG8uSW5kZXhlZENvbXBpbGF0aW9uLkluZGV4LnJldmlzaW9ucwBreXRoZS5wcm90by5jb21tb24uT3JpZ2luLnJldmlzaW9uAGt5dGhlL3Byb3RvL2ZpbGVjb250ZXh0LnByb3RvAC1YY2xhbmctb25seT0AL3Jvb3QAPT0APgBTeXN0ZW0gaGVhZGVyIHByZWZpeDogAE5vIEZpbGVSZWYgZm9yIABleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvaW5kZXhlci9jeHgvaW5kZXhlZF9wYXJlbnRfbWFwLmNjAC8qPT09LS0tLS0tLS0tIGF2eDUxMnZsYmYxNmludHJpbi5oIC0gQVZYNTEyX0JGMTYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2bGJmMTZpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxCRjE2SU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMQkYxNklOVFJJTl9ICgp0eXBlZGVmIHNob3J0IF9fbTEyOGJoIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwoKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgXAogICAgICAgICAgICAgICAgIF9fdGFyZ2V0X18oImF2eDUxMnZsLCBhdng1MTJiZjE2IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBcCiAgICAgICAgICAgICAgICAgX190YXJnZXRfXygiYXZ4NTEydmwsIGF2eDUxMmJmMTYiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDY0IGJpdHMgY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dG5lMnBzX3BiaChfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZTJwczJiZjE2XzEyOCgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BIG9yIF9fQi4gQSAwIG1lYW5zIGVsZW1lbnQgZnJvbSBfX1cuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0IsIGFuZCBoaWdoZXIgNjQgYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGJoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRuZTJwc19wYmgoX19tMTI4YmggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgOC1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0Egb3IgX19CLiBBIDAgbWVhbnMgZWxlbWVudCBpcyB6ZXJvLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDY0IGJpdHMgY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dG5lMnBzX3BiaChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCi8vLyBDb252ZXJ0IFR3byBQYWNrZWQgU2luZ2xlIERhdGEgdG8gT25lIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FMlBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMTI4IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAxMjggYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmJoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0bmUycHNfcGJoKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lMnBzMmJmMTZfMjU2KChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQik7Cn0KCi8vLyBDb252ZXJ0IFR3byBQYWNrZWQgU2luZ2xlIERhdGEgdG8gT25lIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FMlBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19XCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQSBvciBfX0IuIEEgMCBtZWFucyBlbGVtZW50IGZyb20gX19XLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdIHdob3NlIGxvd2VyIDEyOCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0IsIGFuZCBoaWdoZXIgMTI4IGJpdHMgY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZiaCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0bmUycHNfcGJoKF9fbTI1NmJoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgMTYtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BIG9yIF9fQi4gQSAwIG1lYW5zIGVsZW1lbnQgaXMgemVyby4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XSB3aG9zZSBsb3dlciAxMjggYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDEyOCBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2YmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRuZTJwc19wYmgoX19tbWFzazE2IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBTaW5nbGUgRGF0YSB0byBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQSwgYW5kIGhpZ2hlciA2NCBiaXRzIGFyZSAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dG5lcHNfcGJoKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl8xMjhfbWFzaygoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDQtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BLiBBIDAgbWVhbnMgZWxlbWVudCBmcm9tIF9fVy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQSwgYW5kIGhpZ2hlciA2NCBiaXRzIGFyZSAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0bmVwc19wYmgoX19tMTI4YmggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl8xMjhfbWFzaygoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBTaW5nbGUgRGF0YSB0byBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgNC1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0EuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0EsIGFuZCBoaWdoZXIgNjQgYml0cyBhcmUgMC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRuZXBzX3BiaChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl8xMjhfbWFzaygoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gY29tZXMgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRuZXBzX3BiaChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMjU2X21hc2soKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BLiBBIDAgbWVhbnMgZWxlbWVudCBmcm9tIF9fVy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIGNvbWVzIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGJoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRuZXBzX3BiaChfX20xMjhiaCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMTI4YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzI1Nl9tYXNrKChfX3Y4c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BLiBBIDAgbWVhbnMgZWxlbWVudCBpcyB6ZXJvLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gY29tZXMgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRuZXBzX3BiaChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl8yNTZfbWFzaygoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29tZXMgZnJvbSAgRG90IFByb2R1Y3Qgb2YKLy8vICBfX0EsIF9fQiBhbmQgX19ECnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2RwYmYxNl9wcyhfX20xMjggX19ELCBfX20xMjhiaCBfX0EsIF9fbTEyOGJoIF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2RwYmYxNnBzXzEyOCgoX192NHNmKV9fRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19CKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIF9fQSBhbmQgX19CJ3MgZG90IHByb2R1Y3QgYWNjdW11bGF0ZWQgd2l0aCBfX0QuIEEgMCBtZWFucyBfX0QuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbWVzIGZyb20gIERvdCBQcm9kdWN0IG9mCi8vLyAgX19BLCBfX0IgYW5kIF9fRApzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2RwYmYxNl9wcyhfX20xMjggX19ELCBfX21tYXNrOCBfX1UsIF9fbTEyOGJoIF9fQSwgX19tMTI4YmggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9kcGJmMTZfcHMoX19ELCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fRCk7Cn0KCi8vLyBEb3QgUHJvZHVjdCBvZiBCRjE2IFBhaXJzIEFjY3VtdWxhdGVkIGludG8gUGFja2VkIFNpbmdsZSBQcmVjaXNpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBfX0EgYW5kIF9fQidzIGRvdCBwcm9kdWN0IGFjY3VtdWxhdGVkIHdpdGggX19ELiBBIDAgbWVhbnMgMC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29tZXMgZnJvbSAgRG90IFByb2R1Y3Qgb2YKLy8vICBfX0EsIF9fQiBhbmQgX19ECnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2RwYmYxNl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0QsIF9fbTEyOGJoIF9fQSwgX19tMTI4YmggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9kcGJmMTZfcHMoX19ELCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZHBiZjE2X3BzKF9fbTI1NiBfX0QsIF9fbTI1NmJoIF9fQSwgX19tMjU2YmggX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfZHBiZjE2cHNfMjU2KChfX3Y4c2YpX19ELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0IpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgX19BIGFuZCBfX0IncyBkb3QgcHJvZHVjdCBhY2N1bXVsYXRlZCB3aXRoIF9fRC4gQSAwIG1lYW5zIF9fRC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29tZXMgZnJvbSAgRG90IFByb2R1Y3Qgb2YKLy8vICBfX0EsIF9fQiBhbmQgX19ECnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZHBiZjE2X3BzKF9fbTI1NiBfX0QsIF9fbW1hc2s4IF9fVSwgX19tMjU2YmggX19BLCBfX20yNTZiaCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2RwYmYxNl9wcyhfX0QsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19EKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgOC1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgX19BIGFuZCBfX0IncyBkb3QgcHJvZHVjdCBhY2N1bXVsYXRlZCB3aXRoIF9fRC4gQSAwIG1lYW5zIDAuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbWVzIGZyb20gIERvdCBQcm9kdWN0IG9mCi8vLyAgX19BLCBfX0IgYW5kIF9fRApzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9kcGJmMTZfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19ELCBfX20yNTZiaCBfX0EsIF9fbTI1NmJoIF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfZHBiZjE2X3BzKF9fRCwgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKLy8vIENvbnZlcnQgT25lIFNpbmdsZSBmbG9hdCBEYXRhIHRvIE9uZSBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIGZsb2F0IGRhdGEuCi8vLyBccmV0dXJucyBBIGJmMTYgZGF0YSB3aG9zZSBzaWduIGZpZWxkIGFuZCBleHBvbmVudCBmaWVsZCBrZWVwIHVuY2hhbmdlZCwKLy8vICAgIGFuZCBmcmFjdGlvbiBmaWVsZCBpcyB0cnVuY2F0ZWQgdG8gNyBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX2JmbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0bmVzc19zYmgoZmxvYXQgX19BKSB7CiAgX192NHNmIF9fViA9IHtfX0EsIDAsIDAsIDB9OwogIF9fdjhoaSBfX1IgPSBfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMTI4X21hc2soCiAgICAgIChfX3Y0c2YpX19WLCAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKICByZXR1cm4gX19SWzBdOwp9CgovLy8gQ29udmVydCBQYWNrZWQgQkYxNiBEYXRhIHRvIFBhY2tlZCBmbG9hdCBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2N2dHBiaF9wcyhfX20xMjhiaCBfX0EpIHsKICByZXR1cm4gX21tMjU2X2Nhc3RzaTI1Nl9wcygoX19tMjU2aSlfbW0yNTZfc2xsaV9lcGkzMigKICAgICAgKF9fbTI1NmkpX21tMjU2X2N2dGVwaTE2X2VwaTMyKChfX20xMjhpKV9fQSksIDE2KSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBCRjE2IERhdGEgdG8gUGFja2VkIGZsb2F0IERhdGEgdXNpbmcgemVyb2luZyBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2suIEVsZW1lbnRzIGFyZSB6ZXJvZWQgb3V0IHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbWFzawovLy8gICAgYml0IGlzIG5vdCBzZXQuCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBiaF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOGJoIF9fQSkgewogIHJldHVybiBfbW0yNTZfY2FzdHNpMjU2X3BzKChfX20yNTZpKV9tbTI1Nl9zbGxpX2VwaTMyKAogICAgICAoX19tMjU2aSlfbW0yNTZfbWFza3pfY3Z0ZXBpMTZfZXBpMzIoKF9fbW1hc2s4KV9fVSwgKF9fbTEyOGkpX19BKSwgMTYpKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIEJGMTYgRGF0YSB0byBQYWNrZWQgZmxvYXQgRGF0YSB1c2luZyBtZXJnaW5nIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxwYXJhbSBfX1MKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIEVsZW1lbnRzIGFyZSBjb3BpZWQgZnJvbSBfX1Mgd2hlbgovLy8gICAgIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgYml0IGlzIG5vdCBzZXQuCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2suIEVsZW1lbnRzIGFyZSB6ZXJvZWQgb3V0IHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgbWFzawovLy8gICAgYml0IGlzIG5vdCBzZXQuCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGJoX3BzKF9fbTI1NiBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4YmggX19BKSB7CiAgcmV0dXJuIF9tbTI1Nl9jYXN0c2kyNTZfcHMoKF9fbTI1NmkpX21tMjU2X21hc2tfc2xsaV9lcGkzMigKICAgICAgKF9fbTI1NmkpX19TLCAoX19tbWFzazgpX19VLCAoX19tMjU2aSlfbW0yNTZfY3Z0ZXBpMTZfZXBpMzIoKF9fbTEyOGkpX19BKSwKICAgICAgMTYpKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAC8qPT09LS0tLSBhdng1MTJ2bGJ3aW50cmluLmggLSBBVlg1MTJWTCBhbmQgQVZYNTEyQlcgaW50cmluc2ljcyAtLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxid2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTEJXSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMQldJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmJ3IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmJ3IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLyogSW50ZWdlciBjb21wYXJlICovCgojZGVmaW5lIF9tbV9jbXBfZXBpOF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBiMTI4X21hc2soKF9fdjE2cWkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcGk4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2NtcGIxMjhfbWFzaygoX192MTZxaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfZXB1OF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl91Y21wYjEyOF9tYXNrKChfX3YxNnFpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcHU4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX3VjbXBiMTI4X21hc2soKF9fdjE2cWkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXBpOF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXBiMjU2X21hc2soKF9fdjMycWkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2NtcGIyNTZfbWFzaygoX192MzJxaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXB1OF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl91Y21wYjI1Nl9tYXNrKChfX3YzMnFpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX3VjbXBiMjU2X21hc2soKF9fdjMycWkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShtKSkpCgojZGVmaW5lIF9tbV9jbXBfZXBpMTZfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXB3MTI4X21hc2soKF9fdjhoaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXBpMTZfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXB3MTI4X21hc2soKF9fdjhoaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9lcHUxNl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXB3MTI4X21hc2soKF9fdjhoaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcHUxNl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXB3MTI4X21hc2soKF9fdjhoaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwaTE2X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2NtcHcyNTZfbWFzaygoX192MTZoaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2NtcHcyNTZfbWFzaygoX192MTZoaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXB1MTZfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfdWNtcHcyNTZfbWFzaygoX192MTZoaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXB1MTZfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfdWNtcHcyNTZfbWFzaygoX192MTZoaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKG0pKSkKCiNkZWZpbmUgX21tX2NtcGVxX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcGk4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX21hc2tfY21wZ2VfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX2NtcGxlX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcGk4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX21hc2tfY21wbHRfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tMjU2X2NtcGVxX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcGk4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ2VfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X2NtcGxlX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcGk4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbHRfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tX2NtcGVxX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9jbXBnZV9lcHU4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX21hc2tfY21wZ2VfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGd0X2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX2NtcGxlX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9jbXBsdF9lcHU4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX21hc2tfY21wbHRfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW1fbWFza19jbXBuZXFfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tMjU2X2NtcGVxX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9jbXBnZV9lcHU4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ2VfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGd0X2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X2NtcGxlX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9jbXBsdF9lcHU4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbHRfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBuZXFfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tX2NtcGVxX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9tYXNrX2NtcGVxX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fY21wZ2VfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX21hc2tfY21wZ2VfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9jbXBndF9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fbWFza19jbXBndF9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX2NtcGxlX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGxlX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fY21wbHRfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX21hc2tfY21wbHRfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9jbXBuZXFfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tX21hc2tfY21wbmVxX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tMjU2X2NtcGVxX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGVxX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfY21wZ2VfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ2VfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9jbXBndF9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBndF9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X2NtcGxlX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGxlX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfY21wbHRfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbHRfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9jbXBuZXFfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbmVxX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tX2NtcGVxX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbV9tYXNrX2NtcGVxX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fY21wZ2VfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX21hc2tfY21wZ2VfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9jbXBndF9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fbWFza19jbXBndF9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX2NtcGxlX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGxlX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fY21wbHRfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX21hc2tfY21wbHRfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9jbXBuZXFfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tX21hc2tfY21wbmVxX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCiNkZWZpbmUgX21tMjU2X2NtcGVxX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGVxX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfY21wZ2VfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ2VfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9jbXBndF9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBndF9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X2NtcGxlX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGxlX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfY21wbHRfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbHRfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9jbXBuZXFfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbmVxX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9ORSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZF9lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZF9lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3ViX2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1Yl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1Yl9lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1Yl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N1Yl9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3ViX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1Yl9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zdWJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FkZF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2FkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1Yl9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zdWJfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zdWJfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3N1Yl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1Yl9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zdWJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxsb19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsbG9fZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsbG9fZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsbG9fZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbXVsbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19ibGVuZF9lcGk4IChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX1cpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fVywKICAgICAgICAgICAgICAoX192MTZxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYmxlbmRfZXBpOCAoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19XKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAoX192MzJxaSkgX19XLAogICAgICAgICAgICAgICAoX192MzJxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYmxlbmRfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19XKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fVywKICAgICAgICAgICAgICAgKF9fdjhoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYmxlbmRfZXBpMTYgKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fVykKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYgKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fVywKICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Fic19lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2Fic19lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hYnNfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2Fic19lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hYnNfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hYnNfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWJzX2VwaTggKF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYWJzX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Fic19lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hYnNfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWJzX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYWJzX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Fic19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9hYnNfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Fic19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2Fic19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BhY2tzX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcGFja3NfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGFja3NfZXBpMzIoX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfcGFja3NfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGFja3NfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BhY2tzX2VwaTE2KF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3BhY2tzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BhY2tzX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wYWNrc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wYWNrc19lcGkxNihfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wYWNrc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wYWNrc19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGFja3NfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGFja3VzX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BhY2t1c19lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fcGFja3VzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGFja3VzX2VwaTMyKF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfcGFja3VzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGFja3VzX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BhY2t1c19lcGkxNihfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3BhY2t1c19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BhY2t1c19lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wYWNrdXNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wYWNrdXNfZXBpMTYoX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wYWNrdXNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wYWNrdXNfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGFja3VzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRzX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FkZHNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRzX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fYWRkc19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZHNfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRzX2VwaTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRzX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hZGRzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkc19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hZGRzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkc19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2FkZHNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZHNfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2FkZHNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZHNfZXB1OChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fYWRkc19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZHNfZXB1OChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hZGRzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkc19lcHU4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FkZHNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZHNfZXB1OChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FkZHNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZHNfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2FkZHNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRzX2VwdTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2FkZHNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRzX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYWRkc19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWRkc19lcHUxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYWRkc19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYXZnX2VwdTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2F2Z19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2F2Z19lcHU4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2F2Z19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2F2Z19lcHU4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hdmdfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hdmdfZXB1OChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hdmdfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hdmdfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2F2Z19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2F2Z19lcHUxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hdmdfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hdmdfZXB1MTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYXZnX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYXZnX2VwdTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYXZnX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcGk4KF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX21heF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tYXhfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfZXBpOChfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9tYXhfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbWF4X2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X2VwaTE2KF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWF4X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X2VwaTE2KF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbWF4X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcHU4KF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX21heF9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9lcHU4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tYXhfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfZXB1OCAoX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbWF4X2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwdTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21heF9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcHUxNihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tYXhfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21heF9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcHUxNihfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21heF9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9lcHUxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9tYXhfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXBpOChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9taW5fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWluX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX2VwaTgoX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbWluX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21pbl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9lcGkxNihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21pbl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcGkxNihfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21pbl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXB1OChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9taW5fZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fZXB1OChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWluX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX2VwdTggKF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21pbl9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcHU4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9taW5fZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXB1MTYoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9taW5fZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fZXB1MTYoX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9taW5fZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fZXB1MTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zaHVmZmxlX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2h1ZmZsZV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2h1ZmZsZV9lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2h1ZmZsZV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2h1ZmZsZV9lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NodWZmbGVfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1YnNfZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc3Vic19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1YnNfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zdWJzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Vic19lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1YnNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1YnNfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1YnNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1YnNfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3N1YnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJzX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3N1YnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJzX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Vic19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Vic19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Vic19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Vic19lcHU4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zdWJzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Vic19lcHU4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3N1YnNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJzX2VwdTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc3Vic19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Vic19lcHU4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc3Vic19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Vic19lcHUxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3Vic19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1YnNfZXB1MTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3Vic19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N1YnNfZXB1MTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLAogICAgICBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zdWJzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJzX2VwdTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zdWJzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcGVybXV0ZXgydmFyX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpMTI4KChfX3Y4aGkpX19BLCAoX192OGhpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV4MnZhcl9lcGkxNihfX20xMjhpIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2syX3Blcm11dGV4MnZhcl9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fSSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wZXJtdXRleDJ2YXJfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLAogICAgICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTE2KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpMjU2KChfX3YxNmhpKV9fQSwgKF9fdjE2aGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXgydmFyX2VwaTE2KF9fbTI1NmkgX19BLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2syX3Blcm11dGV4MnZhcl9lcGkxNihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbW1hc2sxNiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTE2KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXgydmFyX2VwaTE2IChfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21hZGR1YnNfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWFkZHVic19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWFkZHVic19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21hZGR1YnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21hZGR1YnNfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19ZKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21hZGR1YnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21hZGR1YnNfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21hZGR1YnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21hZGRfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYWRkX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYWRkX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21hZGRfZXBpMTYoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9tYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c2VwaTE2X2VwaTggKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpMTZfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IxMjhfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNlcGkxNl9lcGk4IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpMTZfZXBpOCAoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjI1Nl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHNlcGkxNl9lcGk4IChfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjI1Nl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHVzZXBpMTZfZXBpOCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpMTZfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dXNlcGkxNl9lcGk4IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR1c2VwaTE2X2VwaTggKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjI1Nl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpMTZfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjI1Nl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR1c2VwaTE2X2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjI1Nl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpMTZfZXBpOCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4aGkpX19BLCBfX3Y4cWkpLAogICAgICAoX192OHFpKXswLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLAogICAgICAxMiwgMTMsIDE0LCAxNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92d2IxMjhfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMTZfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdndiMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdndiMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjhoaSkgX19BLCBfX00pOwp9CgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnN3YjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4aGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjhoaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMTZfZXBpOCAoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2aGkpIF9fQSwgX192MTZxaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tMjU2X2N2dGVwaTE2X2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTE2X2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW0yNTZfY3Z0ZXBpMTZfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpMTZfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdndiMjU2bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjE2aGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MTZoaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diMjU2bWVtX21hc2sgKChfX3YxNnFpKikgX19QLCAoX192MTZoaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxocnNfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGhyc19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bGhyc19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tdWxocnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxocnNfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaHJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsaHJzX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaHJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsaGlfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGhpX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsaGlfZXB1MTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbXVsaGlfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxoaV9lcHUxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaGlfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsaGlfZXB1MTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaGlfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsaGlfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGhpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsaGlfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbXVsaGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxoaV9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsaGlfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbXVsaGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNraGlfZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VucGFja2hpX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VucGFja2hpX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2hpX2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2toaV9lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2toaV9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VucGFja2hpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV91bnBhY2toaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNraGlfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3VucGFja2hpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2hpX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3VucGFja2hpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3VucGFja2xvX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bnBhY2tsb19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bnBhY2tsb19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2tsb19lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfdW5wYWNrbG9fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfdW5wYWNrbG9fZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfdW5wYWNrbG9fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNrbG9fZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV91bnBhY2tsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2xvX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bnBhY2tsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2tsb19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bnBhY2tsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk4X2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dGVwaThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpOF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dGVwaThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpOF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9jdnRlcGk4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcGk4X2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfY3Z0ZXBpOF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdThfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fY3Z0ZXB1OF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHU4X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fY3Z0ZXB1OF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHU4X2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwdThfZXBpMTYgKF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfY3Z0ZXB1OF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKCiNkZWZpbmUgX21tX21hc2tfc2h1ZmZsZWhpX2VwaTE2KFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NodWZmbGVoaV9lcGkxNigoQSksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHVmZmxlaGlfZXBpMTYoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2h1ZmZsZWhpX2VwaTE2KChBKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVoaV9lcGkxNihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NodWZmbGVoaV9lcGkxNigoQSksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZWhpX2VwaTE2KFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2h1ZmZsZWhpX2VwaTE2KChBKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fbWFza19zaHVmZmxlbG9fZXBpMTYoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2h1ZmZsZWxvX2VwaTE2KChBKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NodWZmbGVsb19lcGkxNihVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHVmZmxlbG9fZXBpMTYoKEEpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2h1ZmZsZWxvX2VwaTE2KFcsIFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2h1ZmZsZWxvX2VwaTE2KChBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZWxvX2VwaTE2KFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2h1ZmZsZWxvX2VwaTE2KChBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGx2X2VwaTE2KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsdjE2aGkoKF9fdjE2aGkpX19BLCAoX192MTZoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGx2X2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2xsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsdl9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2xsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NsbHZfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGx2OGhpKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NsbHZfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGx2X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGxfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NsbF9lcGkxNiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2xsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zbGxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NsbF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGxpX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGxpX2VwaTE2IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGxpX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zbGxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsaV9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2xsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmx2X2VwaTE2KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsdjE2aGkoKF9fdjE2aGkpX19BLCAoX192MTZoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmx2X2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Jsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Jsdl9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Jsdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NybHZfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Bzcmx2OGhpKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybHZfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmx2X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Jhdl9lcGkxNihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYXYxNmhpKChfX3YxNmhpKV9fQSwgKF9fdjE2aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jhdl9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NyYXZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYXZfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NyYXZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmF2X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhdjhoaSgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmF2X2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Jhdl9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JhX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmFfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmFfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JhX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JhX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmFfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JhX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NyYV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmFpX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NyYWlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmFpX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JhaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NyYWlfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NyYWlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmFpX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmFpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JsX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmxfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NybF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3JsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NybF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JsaV9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JsaV9lcGkxNiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JsaV9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NybGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmxpX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92X2VwaTE2IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9lcGkxNiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfZXBpMTYgKF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYgKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZoaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21vdl9lcGkxNiAoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92X2VwaTggKF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjggKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9lcGk4IChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjggKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfZXBpOCAoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAgKF9fdjMycWkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92X2VwaTggKF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAgKF9fdjMycWkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zZXQxX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBjaGFyIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXQxX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2V0MV9lcGk4IChfX21tYXNrMTYgX19NLCBjaGFyIF9fQSkKewogcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2V0MV9lcGk4IChfX20yNTZpIF9fTywgX19tbWFzazMyIF9fTSwgY2hhciBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NldDFfZXBpOCAoX19tbWFzazMyIF9fTSwgY2hhciBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbG9hZHVfZXBpMTYgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTE2IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpMTYqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZHVfZXBpMTYgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWhpMTI4X21hc2sgKChjb25zdCBfX3Y4aGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkdV9lcGkxNiAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192OGhpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkdV9lcGkxNiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpMTYgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGkxNiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkdV9lcGkxNiAoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWhpMjU2X21hc2sgKChjb25zdCBfX3YxNmhpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MTZoaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkdV9lcGkxNiAoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1aGkyNTZfbWFzayAoKGNvbnN0IF9fdjE2aGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YxNmhpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbG9hZHVfZXBpOCAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpOCB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTgqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZHVfZXBpOCAoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXFpMTI4X21hc2sgKChjb25zdCBfX3YxNnFpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MTZxaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkdV9lcGk4IChfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVxaTEyOF9tYXNrICgoY29uc3QgX192MTZxaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjE2cWkpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkdV9lcGk4ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGk4IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpOCopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkdV9lcGk4IChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1cWkyNTZfbWFzayAoKGNvbnN0IF9fdjMycWkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2xvYWR1X2VwaTggKF9fbW1hc2szMiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXFpMjU2X21hc2sgKChjb25zdCBfX3YzMnFpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MzJxaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazMyKSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGkxNiB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTE2KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9lcGkxNiAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVoaTEyOF9tYXNrICgoX192OGhpICopIF9fUCwKICAgICAgICAgICAgIChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tMjU2aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpMTYgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGkxNiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdWhpMjU2X21hc2sgKChfX3YxNmhpICopIF9fUCwKICAgICAgICAgICAgIChfX3YxNmhpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3N0b3JldV9lcGk4ICh2b2lkICpfX1AsIF9fbTEyOGkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTggewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGk4KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9lcGk4ICh2b2lkICpfX1AsIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVxaTEyOF9tYXNrICgoX192MTZxaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192MTZxaSkgX19BLAogICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdG9yZXVfZXBpOCAodm9pZCAqX19QLCBfX20yNTZpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGk4IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpOCopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfZXBpOCAodm9pZCAqX19QLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1cWkyNTZfbWFzayAoKF9fdjMycWkgKikgX19QLAogICAgICAgICAgICAgKF9fdjMycWkpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrMzIpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RfZXBpOF9tYXNrIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NtcG5lcV9lcGk4X21hc2sgKF9tbV9hbmRfc2kxMjgoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0X2VwaThfbWFzayAoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcG5lcV9lcGk4X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdF9lcGk4X21hc2sgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfY21wbmVxX2VwaThfbWFzayAoX21tMjU2X2FuZF9zaTI1NihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza190ZXN0X2VwaThfbWFzayAoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGk4X21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RfZXBpMTZfbWFzayAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jbXBuZXFfZXBpMTZfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RfZXBpMTZfbWFzayAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfY21wbmVxX2VwaTE2X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Rlc3RfZXBpMTZfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBuZXFfZXBpMTZfbWFzayAoX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza190ZXN0X2VwaTE2X21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBuZXFfZXBpMTZfbWFzayAoX19VLCBfbW0yNTZfYW5kX3NpMjU2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0bl9lcGk4X21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wZXFfZXBpOF9tYXNrIChfbW1fYW5kX3NpMTI4IChfX0EsIF9fQiksIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RuX2VwaThfbWFzayAoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcGVxX2VwaThfbWFzayAoX19VLCBfbW1fYW5kX3NpMTI4IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdG5fZXBpOF9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcGVxX2VwaThfbWFzayAoX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza190ZXN0bl9lcGk4X21hc2sgKF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBlcV9lcGk4X21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RuX2VwaTE2X21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wZXFfZXBpMTZfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RuX2VwaTE2X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcGVxX2VwaTE2X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOChfX0EsIF9fQiksIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl90ZXN0bl9lcGkxNl9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcGVxX2VwaTE2X21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdG5fZXBpMTZfbWFzayAoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcGVxX2VwaTE2X21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92ZXBpOF9tYXNrIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tbWFzazE2KSBfX2J1aWx0aW5faWEzMl9jdnRiMm1hc2sxMjggKChfX3YxNnFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZlcGk4X21hc2sgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpIF9fYnVpbHRpbl9pYTMyX2N2dGIybWFzazI1NiAoKF9fdjMycWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92ZXBpMTZfbWFzayAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jdnR3Mm1hc2sxMjggKChfX3Y4aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21vdmVwaTE2X21hc2sgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2N2dHcybWFzazI1NiAoKF9fdjE2aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tb3ZtX2VwaTggKF9fbW1hc2sxNiBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syYjEyOCAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21vdm1fZXBpOCAoX19tbWFzazMyIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJiMjU2IChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92bV9lcGkxNiAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMncxMjggKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZtX2VwaTE2IChfX21tYXNrMTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMncyNTYgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Jyb2FkY2FzdGJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9icm9hZGNhc3RiX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9icm9hZGNhc3RiX2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9icm9hZGNhc3RiX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RiX2VwaTggKF9fbTI1NmkgX19PLCBfX21tYXNrMzIgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0Yl9lcGk4IChfX21tYXNrMzIgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYnJvYWRjYXN0d19lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fYnJvYWRjYXN0d19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYnJvYWRjYXN0d19lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9icm9hZGNhc3R3X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3R3X2VwaTE2IChfX20yNTZpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X2Jyb2FkY2FzdHdfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3R3X2VwaTE2IChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfYnJvYWRjYXN0d19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NldDFfZXBpMTYgKF9fbTI1NmkgX19PLCBfX21tYXNrMTYgX19NLCBzaG9ydCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2IChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zZXQxX2VwaTE2IChfX21tYXNrMTYgX19NLCBzaG9ydCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NldDFfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIHNob3J0IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldDFfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zZXQxX2VwaTE2IChfX21tYXNrOCBfX00sIHNob3J0IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldDFfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcGVybXV0ZXh2YXJfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFyaGkxMjgoKF9fdjhoaSkgX19CLCAoX192OGhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wZXJtdXRleHZhcl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLAogICAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3Blcm11dGV4dmFyX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4dmFyX2VwaTE2IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGVybXZhcmhpMjU2KChfX3YxNmhpKSBfX0IsIChfX3YxNmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLAogICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXh2YXJfZXBpMTYgKF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwKICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgojZGVmaW5lIF9tbV9tYXNrX2FsaWducl9lcGk4KFcsIFUsIEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FsaWducl9lcGk4KFUsIEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2FsaWducl9lcGk4KFcsIFUsIEEsIEIsIE4pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2FsaWducl9lcGk4KFUsIEEsIEIsIE4pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2FsaWducl9lcGk4KChBKSwgKEIpLCAoaW50KShOKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9kYnNhZF9lcHU4KEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9kYnBzYWRidzEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX21hc2tfZGJzYWRfZXB1OChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2Ric2FkX2VwdTgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X2Ric2FkX2VwdTgoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9kYnNhZF9lcHU4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfZGJzYWRfZXB1OChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZGJwc2FkYncyNTYoKF9fdjMycWkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2Ric2FkX2VwdTgoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfZGJzYWRfZXB1OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZGJzYWRfZXB1OChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9kYnNhZF9lcHU4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19BVlg1MTJWTEJXSU5UUklOX0ggKi8KAGx6Y250aW50cmluLmgAc3RkaW50LmgAd2Jub2ludmRpbnRyaW4uaABvcGVubXBfd3JhcHBlcnMvY29tcGxleC5oAHNhbml0aXplci9saW51eF9zeXNjYWxsX2hvb2tzLmgAc2l6ZQBWTmFtZSBydWxlIGlzIG1pc3NpbmcgaXRzIHBhdHRlcm4uAFRoZSBkb2N1bWVudCBpcyBlbXB0eS4AZm9ybWF0AEludmFsaWQgUkUyOiAAIGluIENvbXB1dGVGaXJzdEJ5dGUAQmFkIGFyZyBpbiBrSW5zdEFsdE1hdGNoOiAAbWlzc2luZyApAFxyAENoZXJva2VlAEhhbmlmaV9Sb2hpbmd5YQBIYXRyYW4ASmF2YW5lc2UATWMATXJvAGVsZW1lbnQgbm90IGluIGZyZWVsaXN0AH0AdwBzaG9ydABsb25nIGRvdWJsZQBlTwBePQBsdABzdHJpbmcAb3N0cmVhbQAgIENvcmRSZXBSaW5nKAAsIHJjID0gAH0KADAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5YWJjZGVmAFNpZ25hbCB3YWtldXAAUmVsZWFzYWJsZU11dGV4TG9jazo6UmVsZWFzZSBtYXkgb25seSBiZSBjYWxsZWQgb25jZQBjbG9ja19nZXR0aW1lKENMT0NLX1JFQUxUSU1FLCAmdHMpID09IDAAZmlsZToAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9kaXYuYwBFVlBfQUVBRF9DVFhfaW5pdCBmb3IgQUVTLTEyOC1HQ00gZmFpbGVkLgoAUEVNIHJvdXRpbmVzAFguNTA5IGNlcnRpZmljYXRlIHJvdXRpbmVzAGNvbW1vbiBsaWJjcnlwdG8gcm91dGluZXMAWDUwOSBWMyByb3V0aW5lcwBPQ1NQIHJvdXRpbmVzAEVDRFNBIHJvdXRpbmVzAG92ZXJmbG93AGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2V4X2RhdGEuYwBreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQuRW52LnZhbHVlAGt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnB1c0luZm8uTGFuZ3VhZ2VSZXF1aXJlZElucHV0c0VudHJ5LmtleQBDYWxsIHNldCBtZXRob2RzIHRvIGluaXRpYWxpemUgTWFwS2V5LgBleHRlcm5hbC9wcm90b2J1Zi9zcmMvZ29vZ2xlL3Byb3RvYnVmL21hcF9maWVsZF9pbmwuaABreXRoZS5wcm90by5CdWlsZERldGFpbHMuYnVpbGRfdGFyZ2V0AGt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuSGVhZGVyU2VhcmNoRGlyLnBhdGgAZjc3LWNwcC1pbnB1dABFcnJvciBjbG9zaW5nIGt6aXAgb3V0cHV0OiAAYXJtX2FjbGUuaABhdng1MTJ2cG9wY250ZHF2bGludHJpbi5oAC8qPT09LS0tLSBidWlsdGlucy5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBleHRyYSBidWlsdGlucyAtLS0tLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgovLy8gU29tZSBsZWdhY3kgY29tcGlsZXJzIGhhdmUgYnVpbHRpbiBkZWZpbml0aW9ucyBpbiBhIGZpbGUgbmFtZWQgYnVpbHRpbnMuaC4KLy8vIFRoaXMgaGVhZGVyIGZpbGUgaGFzIGJlZW4gYWRkZWQgdG8gYWxsb3cgY29tcGF0aWJpbGl0eSB3aXRoIGNvZGUgdGhhdCB3YXMKLy8vIHdyaXR0ZW4gZm9yIHRob3NlIGNvbXBpbGVycy4gQ29kZSBtYXkgaGF2ZSBhbiBpbmNsdWRlIGxpbmUgZm9yIHRoaXMgZmlsZQovLy8gYW5kIHRvIGF2b2lkIGFuIGVycm9yIGFuIGVtcHR5IGZpbGUgd2l0aCB0aGlzIG5hbWUgaXMgcHJvdmlkZWQuCiNpZm5kZWYgX19CVUlMVElOU19ICiNkZWZpbmUgX19CVUlMVElOU19ICgojZW5kaWYgLyogX19CVUlMVElOU19IICovCgAvKj09PS0tLS0gY2xkZW1vdGVpbnRyaW4uaCAtIENMREVNT1RFIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxjbGRlbW90ZWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19DTERFTU9URUlOVFJJTl9ICiNkZWZpbmUgX19DTERFTU9URUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJjbGRlbW90ZSIpKSkKCi8vLyBIaW50IHRvIGhhcmR3YXJlIHRoYXQgdGhlIGNhY2hlIGxpbmUgdGhhdCBjb250YWlucyBccCBfX1Agc2hvdWxkIGJlIGRlbW90ZWQKLy8vIGZyb20gdGhlIGNhY2hlIGNsb3Nlc3QgdG8gdGhlIHByb2Nlc3NvciBjb3JlIHRvIGEgbGV2ZWwgbW9yZSBkaXN0YW50IGZyb20KLy8vIHRoZSBwcm9jZXNzb3IgY29yZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDTERFTU9URSA8L2M+IGluc3RydWN0aW9uLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfY2xkZW1vdGUoY29uc3Qgdm9pZCAqIF9fUCkgewogIF9fYnVpbHRpbl9pYTMyX2NsZGVtb3RlKF9fUCk7Cn0KCiNkZWZpbmUgX21tX2NsZGVtb3RlKHApIF9jbGRlbW90ZShwKQojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAGx3cGludHJpbi5oAG13YWl0eGludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0tIHVpbnRyaW50cmluLmggLSBVSU5UUiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZHUFJJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8dWludHJpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmdwcmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fVUlOVFJJTlRSSU5fSAojZGVmaW5lIF9fVUlOVFJJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInVpbnRyIikpKQoKI2lmZGVmIF9feDg2XzY0X18KCnN0cnVjdCBfX3VpbnRyX2ZyYW1lCnsKICB1bnNpZ25lZCBsb25nIGxvbmcgcmlwOwogIHVuc2lnbmVkIGxvbmcgbG9uZyByZmxhZ3M7CiAgdW5zaWduZWQgbG9uZyBsb25nIHJzcDsKfTsKCi8vLyBDbGVhcnMgdGhlIHVzZXIgaW50ZXJydXB0IGZsYWcgKFVJRikuIEl0cyBlZmZlY3QgdGFrZXMgcGxhY2UgaW1tZWRpYXRlbHk6IGEKLy8vICAgIHVzZXIgaW50ZXJydXB0IGNhbm5vdCBiZSBkZWxpdmVyZWQgb24gdGhlIGluc3RydWN0aW9uIGJvdW5kYXJ5IGZvbGxvd2luZwovLy8gICAgQ0xVSS4gQ2FuIGJlIGV4ZWN1dGVkIG9ubHkgaWYgQ1I0LlVJTlQgPSAxLCB0aGUgbG9naWNhbCBwcm9jZXNzb3IgaXMgaW4KLy8vICAgIDY0LWJpdCBtb2RlLCBhbmQgc29mdHdhcmUgaXMgbm90IGV4ZWN1dGluZyBpbnNpZGUgYW4gZW5jbGF2ZTsgb3RoZXJ3aXNlLAovLy8gICAgZWFjaCBjYXVzZXMgYW4gaW52YWxpZC1vcGNvZGUgZXhjZXB0aW9uLiBDYXVzZXMgYSB0cmFuc2FjdGlvbmFsIGFib3J0IGlmCi8vLyAgICBleGVjdXRlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbmFsIHJlZ2lvbjsgdGhlIGFib3J0IGxvYWRzIEVBWCBhcyBpdCB3b3VsZAovLy8gICAgaGFkIGl0IGJlZW4gZHVlIHRvIGFuIGV4ZWN1dGlvbiBvZiBDTEkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmdwcmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ0xVSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgVUlGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX2NsdWkgKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl9jbHVpKCk7Cn0KCi8vLyBTZXRzIHRoZSB1c2VyIGludGVycnVwdCBmbGFnIChVSUYpLiBJdHMgZWZmZWN0IHRha2VzIHBsYWNlIGltbWVkaWF0ZWx5OyBhCi8vLyAgICB1c2VyIGludGVycnVwdCBtYXkgYmUgZGVsaXZlcmVkIG9uIHRoZSBpbnN0cnVjdGlvbiBib3VuZGFyeSBmb2xsb3dpbmcKLy8vICAgIFNUVUkuIENhbiBiZSBleGVjdXRlZCBvbmx5IGlmIENSNC5VSU5UID0gMSwgdGhlIGxvZ2ljYWwgcHJvY2Vzc29yIGlzIGluCi8vLyAgICA2NC1iaXQgbW9kZSwgYW5kIHNvZnR3YXJlIGlzIG5vdCBleGVjdXRpbmcgaW5zaWRlIGFuIGVuY2xhdmU7IG90aGVyd2lzZSwKLy8vICAgIGVhY2ggY2F1c2VzIGFuIGludmFsaWQtb3Bjb2RlIGV4Y2VwdGlvbi4gQ2F1c2VzIGEgdHJhbnNhY3Rpb25hbCBhYm9ydCBpZgovLy8gICAgZXhlY3V0ZWQgaW5zaWRlIGEgdHJhbnNhY3Rpb25hbCByZWdpb247IHRoZSBhYm9ydCBsb2FkcyBFQVggYXMgaXQgd291bGQKLy8vICAgIGhhZCBpdCBiZWVuIGR1ZSB0byBhbiBleGVjdXRpb24gb2YgU1RJLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZncHJpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNUVUkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgIFVJRiA6PSAxCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9zdHVpICh2b2lkKQp7CiAgX19idWlsdGluX2lhMzJfc3R1aSgpOwp9CgovLy8gR2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSB1c2VyIGludGVycnVwdCBmbGFnIChVSUYpLiBDYW4gYmUgZXhlY3V0ZWQKLy8vICAgIHJlZ2FyZGxlc3Mgb2YgQ1BMIGFuZCBpbnNpZGUgYSB0cmFuc2FjdGlvbmFsIHJlZ2lvbi4gQ2FuIGJlIGV4ZWN1dGVkIG9ubHkKLy8vICAgIGlmIENSNC5VSU5UID0gMSwgdGhlIGxvZ2ljYWwgcHJvY2Vzc29yIGlzIGluIDY0LWJpdCBtb2RlLCBhbmQgc29mdHdhcmUgaXMKLy8vICAgIG5vdCBleGVjdXRpbmcgaW5zaWRlIGFuIGVuY2xhdmU7IG90aGVyd2lzZSwgaXQgY2F1c2VzIGFuIGludmFsaWQtb3Bjb2RlCi8vLyAgICBleGNlcHRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmdwcmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVEVTVFVJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHVzZXIgaW50ZXJydXB0IGZsYWcgKFVJRikuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICBDRiA6PSBVSUYKLy8vICAgWkYgOj0gMAovLy8gICBBRiA6PSAwCi8vLyAgIE9GIDo9IDAKLy8vICAgUEYgOj0gMAovLy8gICBTRiA6PSAwCi8vLyAgIGRzdCA6PSBDRgovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfdGVzdHVpICh2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Rlc3R1aSgpOwp9CgovLy8gU2VuZCBpbnRlcnByb2Nlc3NvciB1c2VyIGludGVycnVwdC4gQ2FuIGJlIGV4ZWN1dGVkIG9ubHkgaWYKLy8vICAgIENSNC5VSU5UID0gSUEzMl9VSU5UX1RUWzBdID0gMSwgdGhlIGxvZ2ljYWwgcHJvY2Vzc29yIGlzIGluIDY0LWJpdCBtb2RlLAovLy8gICAgYW5kIHNvZnR3YXJlIGlzIG5vdCBleGVjdXRpbmcgaW5zaWRlIGFuIGVuY2xhdmU7IG90aGVyd2lzZSwgaXQgY2F1c2VzIGFuCi8vLyAgICBpbnZhbGlkLW9wY29kZSBleGNlcHRpb24uIE1heSBiZSBleGVjdXRlZCBhdCBhbnkgcHJpdmlsZWdlIGxldmVsLCBhbGwgb2YKLy8vICAgIGl0cyBtZW1vcnkgYWNjZXNzZXMgYXJlIHBlcmZvcm1lZCB3aXRoIHN1cGVydmlzb3IgcHJpdmlsZWdlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZncHJpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNFTkRVSVBJIDwvYz4gaW5zdHJ1Y3Rpb24KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBJbmRleCBvZiB1c2VyLWludGVycnVwdCB0YXJnZXQgdGFibGUgZW50cnkgaW4gdXNlci1pbnRlcnJ1cHQgdGFyZ2V0Ci8vLyAgICB0YWJsZS4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgIElGIF9fYSA+IFVJVFRTWgovLy8gICAgIEdQICgwKQovLy8gICBGSQovLy8gICB0ZW1wVUlUVEUgOj0gTUVNW1VJVFRBRERSICsgKGE8PDQpXQovLy8gICAvLyB0ZW1wVUlUVEUgbXVzdCBiZSB2YWxpZCwgYW5kIGNhbid0IGhhdmUgYW55IHJlc2VydmVkIGJpdCBzZXQKLy8vICAgSUYgKHRlbXBVSVRURS5WID09IDAgT1IgdGVtcFVJVFRFWzc6MV0gIT0gMCkKLy8vICAgICBHUCAoMCkKLy8vICAgRkkKLy8vICAgdGVtcFVQSUQgOj0gTUVNW3RlbXBVSVRURS5VUElEQUREUl0gLy8gdW5kZXIgbG9jawovLy8gICAvLyB0ZW1wVVBJRCBjYW4ndCBoYXZlIGFueSByZXNlcnZlZCBiaXQgc2V0Ci8vLyAgIElGICh0ZW1wVVBJRFsxNToyXSAhPSAwIE9SIHRlbXBVUElEWzMxOjI0XSAhPSAwKQovLy8gICAgIEdQICgwKSAvLyByZWxlYXNlIGxvY2sKLy8vICAgRkkKLy8vICAgdGVtcFVQSUQuUElSW3RlbXBVSVRURS5VVl0gOj0gMTsKLy8vICAgSUYgKHRlbXBVUElELlNOID09IDAgQU5EIHRlbXBVUElELk9OID09IDApCi8vLyAgICAgdGVtcFVQSUQuT04gOj0gMQovLy8gICAgIHNlbmROb3RpZnkgOj0gMQovLy8gICBFTFNFCi8vLyAgICAgc2VuZE5vdGlmeSA6PSAwCi8vLyAgIEZJCi8vLyAgIE1FTVt0ZW1wVUlUVEUuVVBJREFERFJdIDo9IHRlbXBVUElEIC8vIHJlbGVhc2UgbG9jawovLy8gICBJRiBzZW5kTm90aWZ5ID09IDEKLy8vICAgICBJRiBJQTMyX0FQSUNfQkFTRVsxMF0gPT0gMSAvLyBsb2NhbCBBUElDIGlzIGluIHgyQVBJQyBtb2RlCi8vLyAgICAgICAvLyBzZW5kIG9yZGluYXJ5IElQSSB3aXRoIHZlY3RvciB0ZW1wVVBJRC5OViB0byAzMi1iaXQgcGh5c2ljYWwgQVBJQwovLy8gICAgICAgLy8gSUQgdGVtcFVQSUQuTkRTVAovLy8gICAgICAgU2VuZE9yZGluYXJ5SVBJKHRlbXBVUElELk5WLCB0ZW1wVVBJRC5ORFNUKQovLy8gICAgIEVMU0UKLy8vICAgICAgIC8vIHNlbmQgb3JkaW5hcnkgSVBJIHdpdGggdmVjdG9yIHRlbXBVUElELk5WIHRvIDgtYml0IHBoeXNpY2FsIEFQSUMKLy8vICAgICAgIC8vIElEIHRlbXBVUElELk5EU1RbMTU6OF0KLy8vICAgICAgIFNlbmRPcmRpbmFyeUlQSSh0ZW1wVVBJRC5OViwgdGVtcFVQSUQuTkRTVFsxNTo4XSkKLy8vICAgICBGSQovLy8gICBGSQovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfc2VuZHVpcGkgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9zZW5kdWlwaShfX2EpOwp9CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fVUlOVFJJTlRSSU5fSCAqLwoAdmFlc2ludHJpbi5oAC8vPT09LS0gZGZzYW5faW50ZXJmYWNlLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgRGF0YUZsb3dTYW5pdGl6ZXIuCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIERGU0FOX0lOVEVSRkFDRV9ICiNkZWZpbmUgREZTQU5fSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCnR5cGVkZWYgdWludDhfdCBkZnNhbl9sYWJlbDsKdHlwZWRlZiB1aW50MzJfdCBkZnNhbl9vcmlnaW47CgovLy8gU2lnbmF0dXJlIG9mIHRoZSBjYWxsYmFjayBhcmd1bWVudCB0byBkZnNhbl9zZXRfd3JpdGVfY2FsbGJhY2soKS4KdHlwZWRlZiB2b2lkICgqZGZzYW5fd3JpdGVfY2FsbGJhY2tfdCkoaW50IGZkLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBjb3VudCk7CgovLy8gQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIFxjIGwxIGFuZCBcYyBsMiwgcmVzdWx0aW5nIGluIGEgdW5pb24gbGFiZWwuCmRmc2FuX2xhYmVsIGRmc2FuX3VuaW9uKGRmc2FuX2xhYmVsIGwxLCBkZnNhbl9sYWJlbCBsMik7CgovLy8gU2V0cyB0aGUgbGFiZWwgZm9yIGVhY2ggYWRkcmVzcyBpbiBbYWRkcixhZGRyK3NpemUpIHRvIFxjIGxhYmVsLgp2b2lkIGRmc2FuX3NldF9sYWJlbChkZnNhbl9sYWJlbCBsYWJlbCwgdm9pZCAqYWRkciwgc2l6ZV90IHNpemUpOwoKLy8vIFNldHMgdGhlIGxhYmVsIGZvciBlYWNoIGFkZHJlc3MgaW4gW2FkZHIsYWRkcitzaXplKSB0byB0aGUgdW5pb24gb2YgdGhlCi8vLyBjdXJyZW50IGxhYmVsIGZvciB0aGF0IGFkZHJlc3MgYW5kIFxjIGxhYmVsLgp2b2lkIGRmc2FuX2FkZF9sYWJlbChkZnNhbl9sYWJlbCBsYWJlbCwgdm9pZCAqYWRkciwgc2l6ZV90IHNpemUpOwoKLy8vIFJldHJpZXZlcyB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBkYXRhLgovLy8KLy8vIFRoZSB0eXBlIG9mICdkYXRhJyBpcyBhcmJpdHJhcnkuICBUaGUgZnVuY3Rpb24gYWNjZXB0cyBhIHZhbHVlIG9mIGFueSB0eXBlLAovLy8gd2hpY2ggY2FuIGJlIHRydW5jYXRlZCBvciBleHRlbmRlZCAoaW1wbGljaXRseSBvciBleHBsaWNpdGx5KSBhcyBuZWNlc3NhcnkuCi8vLyBUaGUgdHJ1bmNhdGlvbi9leHRlbnNpb24gb3BlcmF0aW9ucyB3aWxsIHByZXNlcnZlIHRoZSBsYWJlbCBvZiB0aGUgb3JpZ2luYWwKLy8vIHZhbHVlLgpkZnNhbl9sYWJlbCBkZnNhbl9nZXRfbGFiZWwobG9uZyBkYXRhKTsKCi8vLyBSZXRyaWV2ZXMgdGhlIGltbWVkaWF0ZSBvcmlnaW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBkYXRhLiBUaGUgcmV0dXJuZWQKLy8vIG9yaWdpbiBtYXkgcG9pbnQgdG8gYW5vdGhlciBvcmlnaW4uCi8vLwovLy8gVGhlIHR5cGUgb2YgJ2RhdGEnIGlzIGFyYml0cmFyeS4KZGZzYW5fb3JpZ2luIGRmc2FuX2dldF9vcmlnaW4obG9uZyBkYXRhKTsKCi8vLyBSZXRyaWV2ZXMgdGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSBhdCB0aGUgZ2l2ZW4gYWRkcmVzcy4KZGZzYW5fbGFiZWwgZGZzYW5fcmVhZF9sYWJlbChjb25zdCB2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSk7CgovLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBsYWJlbCBsYWJlbCBjb250YWlucyB0aGUgbGFiZWwgZWxlbS4KaW50IGRmc2FuX2hhc19sYWJlbChkZnNhbl9sYWJlbCBsYWJlbCwgZGZzYW5fbGFiZWwgZWxlbSk7CgovLy8gRmx1c2hlcyB0aGUgREZTYW4gc2hhZG93LCBpLmUuIGZvcmdldHMgYWJvdXQgYWxsIGxhYmVscyBjdXJyZW50bHkgYXNzb2NpYXRlZAovLy8gd2l0aCB0aGUgYXBwbGljYXRpb24gbWVtb3J5LiAgVXNlIHRoaXMgY2FsbCB0byBzdGFydCBvdmVyIHRoZSB0YWludCB0cmFja2luZwovLy8gd2l0aGluIHRoZSBzYW1lIHByb2Nlc3MuCi8vLwovLy8gTm90ZTogSWYgYW5vdGhlciB0aHJlYWQgaXMgd29ya2luZyB3aXRoIHRhaW50ZWQgZGF0YSBkdXJpbmcgdGhlIGZsdXNoLCB0aGF0Ci8vLyB0YWludCBjb3VsZCBzdGlsbCBiZSB3cml0dGVuIHRvIHNoYWRvdyBhZnRlciB0aGUgZmx1c2guCnZvaWQgZGZzYW5fZmx1c2godm9pZCk7CgovLy8gU2V0cyBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgb24gY2FsbHMgdG8gd3JpdGUoKS4gIFRoZSBjYWxsYmFjayBpcyBpbnZva2VkCi8vLyBiZWZvcmUgdGhlIHdyaXRlIGlzIGRvbmUuICBUaGUgd3JpdGUgaXMgbm90IGd1YXJhbnRlZWQgdG8gc3VjY2VlZCB3aGVuIHRoZQovLy8gY2FsbGJhY2sgZXhlY3V0ZXMuICBQYXNzIGluIE5VTEwgdG8gcmVtb3ZlIGFueSBjYWxsYmFjay4Kdm9pZCBkZnNhbl9zZXRfd3JpdGVfY2FsbGJhY2soZGZzYW5fd3JpdGVfY2FsbGJhY2tfdCBsYWJlbGVkX3dyaXRlX2NhbGxiYWNrKTsKCi8vLyBJbnRlcmNlcHRvciBob29rcy4KLy8vIFdoZW5ldmVyIGEgZGZzYW4ncyBjdXN0b20gZnVuY3Rpb24gaXMgY2FsbGVkIHRoZSBjb3JyZXNwb25kaW5nCi8vLyBob29rIGlzIGNhbGxlZCBpdCBub24temVyby4gVGhlIGhvb2tzIHNob3VsZCBiZSBkZWZpbmVkIGJ5IHRoZSB1c2VyLgovLy8gVGhlIHByaW1hcnkgdXNlIGNhc2UgaXMgdGFpbnQtZ3VpZGVkIGZ1enppbmcsIHdoZXJlIHRoZSBmdXp6ZXIKLy8vIG5lZWRzIHRvIHNlZSB0aGUgcGFyYW1ldGVycyBvZiB0aGUgZnVuY3Rpb24gYW5kIHRoZSBsYWJlbHMuCi8vLyBGSVhNRTogaW1wbGVtZW50IG1vcmUgaG9va3MuCnZvaWQgZGZzYW5fd2Vha19ob29rX21lbWNtcCh2b2lkICpjYWxsZXJfcGMsIGNvbnN0IHZvaWQgKnMxLCBjb25zdCB2b2lkICpzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuLCBkZnNhbl9sYWJlbCBzMV9sYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmc2FuX2xhYmVsIHMyX2xhYmVsLCBkZnNhbl9sYWJlbCBuX2xhYmVsKTsKdm9pZCBkZnNhbl93ZWFrX2hvb2tfc3RybmNtcCh2b2lkICpjYWxsZXJfcGMsIGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbiwgZGZzYW5fbGFiZWwgczFfbGFiZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZzYW5fbGFiZWwgczJfbGFiZWwsIGRmc2FuX2xhYmVsIG5fbGFiZWwpOwoKLy8vIFByaW50cyB0aGUgb3JpZ2luIHRyYWNlIG9mIHRoZSBsYWJlbCBhdCB0aGUgYWRkcmVzcyBhZGRyIHRvIHN0ZGVyci4gSXQgYWxzbwovLy8gcHJpbnRzIGRlc2NyaXB0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRyYWNlLiBJZiBvcmlnaW4gdHJhY2tpbmcgaXMgbm90Ci8vLyBvbiwgb3IgdGhlIGFkZHJlc3MgaXMgbm90IGxhYmVsZWQsIGl0IHByaW50cyBub3RoaW5nLgp2b2lkIGRmc2FuX3ByaW50X29yaWdpbl90cmFjZShjb25zdCB2b2lkICphZGRyLCBjb25zdCBjaGFyICpkZXNjcmlwdGlvbik7CgovLy8gUHJpbnRzIHRoZSBvcmlnaW4gdHJhY2Ugb2YgdGhlIGxhYmVsIGF0IHRoZSBhZGRyZXNzIFxwIGFkZHIgdG8gYQovLy8gcHJlLWFsbG9jYXRlZCBvdXRwdXQgYnVmZmVyLiBJZiBvcmlnaW4gdHJhY2tpbmcgaXMgbm90IG9uLCBvciB0aGUgYWRkcmVzcyBpcwovLy8gbm90IGxhYmVsZWQsIGl0IHByaW50cyBub3RoaW5nLgovLy8KLy8vIFR5cGljYWwgdXNhZ2U6Ci8vLyBcY29kZQovLy8gICBjaGFyIGtEZXNjcmlwdGlvbltdID0gIi4uLiI7Ci8vLyAgIGNoYXIgYnVmWzEwMjRdOwovLy8gICBkZnNhbl9zcHJpbnRfb3JpZ2luX3RyYWNlKCZ0YWludGVkX3Zhciwga0Rlc2NyaXB0aW9uLCBidWYsIHNpemVvZihidWYpKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVHlwaWNhbCB1c2FnZSB0aGF0IGhhbmRsZXMgdHJ1bmNhdGlvbjoKLy8vIFxjb2RlCi8vLyAgIGNoYXIgYnVmWzEwMjRdOwovLy8gICBpbnQgbGVuID0gZGZzYW5fc3ByaW50X29yaWdpbl90cmFjZSgmdmFyLCBudWxscHRyLCBidWYsIHNpemVvZihidWYpKTsKLy8vCi8vLyAgIGlmIChsZW4gPCBzaXplb2YoYnVmKSkgewovLy8gICAgIFByb2Nlc3NPcmlnaW5UcmFjZShidWYpOwovLy8gICB9IGVsc2UgewovLy8gICAgIGNoYXIgKnRtcGJ1ZiA9IG5ldyBjaGFyW2xlbiArIDFdOwovLy8gICAgIGRmc2FuX3NwcmludF9vcmlnaW5fdHJhY2UoJnZhciwgbnVsbHB0ciwgdG1wYnVmLCBsZW4gKyAxKTsKLy8vICAgICBQcm9jZXNzT3JpZ2luVHJhY2UodG1wYnVmKTsKLy8vICAgICBkZWxldGVbXSB0bXBidWY7Ci8vLyAgIH0KLy8vIFxlbmRjb2RlCi8vLwovLy8gXHBhcmFtIGFkZHIgVGhlIHRhaW50ZWQgbWVtb3J5IGFkZHJlc3Mgd2hvc2Ugb3JpZ2luIHdlIGFyZSBwcmludGluZy4KLy8vIFxwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIHByaW50ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdHJhY2UuCi8vLyBccGFyYW0gW291dF0gb3V0X2J1ZiBUaGUgb3V0cHV0IGJ1ZmZlciB0byB3cml0ZSB0aGUgcmVzdWx0cyB0by4KLy8vIFxwYXJhbSBvdXRfYnVmX3NpemUgVGhlIHNpemUgb2YgXHAgb3V0X2J1Zi4KLy8vCi8vLyBccmV0dXJucyBUaGUgbnVtYmVyIG9mIHN5bWJvbHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gXHAgb3V0X2J1ZgovLy8gKG5vdCBpbmNsdWRpbmcgdHJhaWxpbmcgbnVsbCBieXRlICdcMCcpLiBUaHVzLCB0aGUgc3RyaW5nIGlzIHRydW5jYXRlZCBpZmYKLy8vIHJldHVybiB2YWx1ZSBpcyBub3QgbGVzcyB0aGFuIFxwIG91dF9idWZfc2l6ZS4Kc2l6ZV90IGRmc2FuX3NwcmludF9vcmlnaW5fdHJhY2UoY29uc3Qgdm9pZCAqYWRkciwgY29uc3QgY2hhciAqZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm91dF9idWYsIHNpemVfdCBvdXRfYnVmX3NpemUpOwoKLy8vIFByaW50cyB0aGUgc3RhY2sgdHJhY2UgbGVhZGluZyB0byB0aGlzIGNhbGwgdG8gYSBwcmUtYWxsb2NhdGVkIG91dHB1dAovLy8gYnVmZmVyLgovLy8KLy8vIEZvciB1c2FnZSBleGFtcGxlcywgc2VlIGRmc2FuX3NwcmludF9vcmlnaW5fdHJhY2UuCi8vLwovLy8gXHBhcmFtIFtvdXRdIG91dF9idWYgVGhlIG91dHB1dCBidWZmZXIgdG8gd3JpdGUgdGhlIHJlc3VsdHMgdG8uCi8vLyBccGFyYW0gb3V0X2J1Zl9zaXplIFRoZSBzaXplIG9mIFxwIG91dF9idWYuCi8vLwovLy8gXHJldHVybnMgVGhlIG51bWJlciBvZiBzeW1ib2xzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiB3cml0dGVuIHRvIFxwIG91dF9idWYKLy8vIChub3QgaW5jbHVkaW5nIHRyYWlsaW5nIG51bGwgYnl0ZSAnXDAnKS4gVGh1cywgdGhlIHN0cmluZyBpcyB0cnVuY2F0ZWQgaWZmCi8vLyByZXR1cm4gdmFsdWUgaXMgbm90IGxlc3MgdGhhbiBccCBvdXRfYnVmX3NpemUuCnNpemVfdCBkZnNhbl9zcHJpbnRfc3RhY2tfdHJhY2UoY2hhciAqb3V0X2J1Ziwgc2l6ZV90IG91dF9idWZfc2l6ZSk7CgovLy8gUmV0cmlldmVzIHRoZSB2ZXJ5IGZpcnN0IG9yaWdpbiBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgYXQgdGhlIGdpdmVuCi8vLyBhZGRyZXNzLgpkZnNhbl9vcmlnaW4gZGZzYW5fZ2V0X2luaXRfb3JpZ2luKGNvbnN0IHZvaWQgKmFkZHIpOwoKLy8vIFJldHVybnMgdGhlIHZhbHVlIG9mIC1kZnNhbi10cmFjay1vcmlnaW5zLgovLy8gKiAwOiBkbyBub3QgdHJhY2sgb3JpZ2lucy4KLy8vICogMTogdHJhY2sgb3JpZ2lucyBhdCBtZW1vcnkgc3RvcmUgb3BlcmF0aW9ucy4KLy8vICogMjogdHJhY2sgb3JpZ2lucyBhdCBtZW1vcnkgbG9hZCBhbmQgc3RvcmUgb3BlcmF0aW9ucy4KaW50IGRmc2FuX2dldF90cmFja19vcmlnaW5zKHZvaWQpOwojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgZGZzYW5fc2V0X2xhYmVsKGRmc2FuX2xhYmVsIGxhYmVsLCBUICZkYXRhKSB7CiAgZGZzYW5fc2V0X2xhYmVsKGxhYmVsLCAodm9pZCAqKSZkYXRhLCBzaXplb2YoVCkpOwp9CgojZW5kaWYKCiNlbmRpZiAgLy8gREZTQU5fSU5URVJGQUNFX0gKAENhcHR1cmUgaW5kZXggb3V0IG9mIHJhbmdlOiAAVW5oYW5kbGVkIABCYWQgYXJnIGluIGtJbnN0Q2FwdHVyZTogAG5vIGVycm9yAERvQ29hbGVzY2UgZmFpbGVkOiByMS0+b3AoKSBpcyAAeyVkLH0AKCl7fVtdKis/fC5eJFwAQXJhYmljAENoYW0ARGVzZXJldABMaW5lYXJfQgBPbGRfSXRhbGljAFRoYWFuYQBzaWdhY3Rpb24oZGF0YS0+c2lnbm8sICZhY3QsICZkYXRhLT5wcmV2aW91c19hY3Rpb24pID09IDAAZmQgb3V0IG9mIHJhbmdlAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvc3ltYm9saXplX2VsZi5pbmMAcC5wX3R5cGUgPT0gUFRfTlVMTABmbiAhPSAmSW5pdEFuZEdldENQVQBiYWQgbWFnaWMgbnVtYmVyIGluIE5leHQoKQBiYWQgYXJlbmEgcG9pbnRlciBpbiBOZXh0KCkAe3VubmFtZWQgdHlwZSMAb28AIGV4Y2VlZHMgQ29yZCdzIHNpemUgACouKgB0cnVlAHdha2VfbGlzdCAhPSBrUGVyVGhyZWFkU3luY2hOdWxsAEFFU19zZXRfZGVjcnlwdF9rZXkgZmFpbGVkLgoAU0hBLTUxMiBLQVQARUNEU0Egc2lnbmF0dXJlIEtBVCBmYWlsZWQuCgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9tZW0uYwB1bmtub3duIGVycm9yAERTQSByb3V0aW5lcwBjZmctdGVtcG9yYXJ5LWR0b3JzPXRydWUAKSQAS1lUSEVfQlVJTERfQ09ORklHAHN5c3RlbV9oZWFkZXJfcHJlZml4AGlucHV0cy5zaXplKCkAR05VbW9kZQBub3RfR05VTW9kZQBub3RfT2JqQwAvKj09PS0tLSBfX2NsYW5nX2N1ZGFfaW50cmluc2ljcy5oIC0gRGV2aWNlLXNpZGUgQ1VEQSBpbnRyaW5zaWMgd3JhcHBlcnMgLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19DTEFOR19DVURBX0lOVFJJTlNJQ1NfSF9fCiNkZWZpbmUgX19DTEFOR19DVURBX0lOVFJJTlNJQ1NfSF9fCiNpZm5kZWYgX19DVURBX18KI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIENVREEgY29tcGlsYXRpb24gb25seS4iCiNlbmRpZgoKLy8gc21fMzAgaW50cmluc2ljczogX19zaGZsX3t1cCxkb3duLHhvcn0uCgojZGVmaW5lIF9fU01fMzBfSU5UUklOU0lDU19IX18KI2RlZmluZSBfX1NNXzMwX0lOVFJJTlNJQ1NfSFBQX18KCiNpZiAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDMwMAoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX01BS0VfU0hVRkZMRVMiKQojZGVmaW5lIF9fTUFLRV9TSFVGRkxFUyhfX0ZuTmFtZSwgX19JbnRJbnRyaW5zaWMsIF9fRmxvYXRJbnRyaW5zaWMsIF9fTWFzaywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICBfX1R5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGludCBfX0ZuTmFtZShpbnQgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fSW50SW50cmluc2ljKF9fdmFsLCBfX29mZnNldCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICgod2FycFNpemUgLSBfX3dpZHRoKSA8PCA4KSB8IChfX01hc2spKTsgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGZsb2F0IF9fRm5OYW1lKGZsb2F0IF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fRmxvYXRJbnRyaW5zaWMoX192YWwsIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3YXJwU2l6ZSAtIF9fd2lkdGgpIDw8IDgpIHwgKF9fTWFzaykpOyAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGludCBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX192YWwsIF9fVHlwZSBfX29mZnNldCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDo6X19Gbk5hbWUoc3RhdGljX2Nhc3Q8aW50PihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGxvbmcgbG9uZyBfX0ZuTmFtZShsb25nIGxvbmcgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgXAogICAgc3RydWN0IF9fQml0cyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgX19hLCBfX2I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fdmFsKSA9PSBzaXplb2YoX19CaXRzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fQml0cykgPT0gMiAqIHNpemVvZihpbnQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX19CaXRzIF9fdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3RtcCwgJl9fdmFsLCBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fdG1wLl9fYSA9IDo6X19Gbk5hbWUoX190bXAuX19hLCBfX29mZnNldCwgX193aWR0aCk7ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fdG1wLl9fYiA9IDo6X19Gbk5hbWUoX190bXAuX19iLCBfX29mZnNldCwgX193aWR0aCk7ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGxvbmcgbG9uZyBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX19yZXQsICZfX3RtcCwgc2l6ZW9mKF9fdG1wKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBsb25nIF9fRm5OYW1lKGxvbmcgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgICAgICAgICAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSB8fCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIHNpemVvZihsb25nKSA9PSBzaXplb2YoaW50KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlmIChzaXplb2YobG9uZykgPT0gc2l6ZW9mKGxvbmcgbG9uZykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIDo6X19Gbk5hbWUoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgIFwKICAgIH0gZWxzZSBpZiAoc2l6ZW9mKGxvbmcpID09IHNpemVvZihpbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIDo6X19Gbk5hbWUoc3RhdGljX2Nhc3Q8aW50PihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgICAgICAgIFwKICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIF9fRm5OYW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgbG9uZyBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgIFwKICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6Ol9fRm5OYW1lKHN0YXRpY19jYXN0PGxvbmc+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgIFwKICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KDo6X19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBkb3VibGUgX19Gbk5hbWUoZG91YmxlIF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgICAgIFwKICAgIGxvbmcgbG9uZyBfX3RtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihfX3RtcCkgPT0gc2l6ZW9mKF9fdmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX190bXAsICZfX3ZhbCwgc2l6ZW9mKF9fdmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fdG1wID0gOjpfX0ZuTmFtZShfX3RtcCwgX19vZmZzZXQsIF9fd2lkdGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGRvdWJsZSBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX19yZXQsICZfX3RtcCwgc2l6ZW9mKF9fcmV0KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgpfX01BS0VfU0hVRkZMRVMoX19zaGZsLCBfX252dm1fc2hmbF9pZHhfaTMyLCBfX252dm1fc2hmbF9pZHhfZjMyLCAweDFmLCBpbnQpOwovLyBXZSB1c2UgMCByYXRoZXIgdGhhbiAzMSBhcyBvdXIgbWFzaywgYmVjYXVzZSBzaGZsLnVwIGFwcGxpZXMgdG8gbGFuZXMgPj0KLy8gbWF4TGFuZS4KX19NQUtFX1NIVUZGTEVTKF9fc2hmbF91cCwgX19udnZtX3NoZmxfdXBfaTMyLCBfX252dm1fc2hmbF91cF9mMzIsIDAsCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQpOwpfX01BS0VfU0hVRkZMRVMoX19zaGZsX2Rvd24sIF9fbnZ2bV9zaGZsX2Rvd25faTMyLCBfX252dm1fc2hmbF9kb3duX2YzMiwgMHgxZiwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCk7Cl9fTUFLRV9TSFVGRkxFUyhfX3NoZmxfeG9yLCBfX252dm1fc2hmbF9iZmx5X2kzMiwgX19udnZtX3NoZmxfYmZseV9mMzIsIDB4MWYsCiAgICAgICAgICAgICAgICBpbnQpOwojcHJhZ21hIHBvcF9tYWNybygiX19NQUtFX1NIVUZGTEVTIikKCiNlbmRpZiAvLyAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDMwMAoKI2lmIENVREFfVkVSU0lPTiA+PSA5MDAwCiNpZiAoIWRlZmluZWQoX19DVURBX0FSQ0hfXykgfHwgX19DVURBX0FSQ0hfXyA+PSAzMDApCi8vIF9fc2hmbF9zeW5jXyogdmFyaWFudHMgYXZhaWxhYmxlIGluIENVREEtOQojcHJhZ21hIHB1c2hfbWFjcm8oIl9fTUFLRV9TWU5DX1NIVUZGTEVTIikKI2RlZmluZSBfX01BS0VfU1lOQ19TSFVGRkxFUyhfX0ZuTmFtZSwgX19JbnRJbnRyaW5zaWMsIF9fRmxvYXRJbnRyaW5zaWMsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX01hc2ssIF9fVHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBpbnQgX19Gbk5hbWUodW5zaWduZWQgaW50IF9fbWFzaywgaW50IF9fdmFsLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19UeXBlIF9fb2Zmc2V0LCBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgIFwKICAgIHJldHVybiBfX0ludEludHJpbnNpYyhfX21hc2ssIF9fdmFsLCBfX29mZnNldCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAoKHdhcnBTaXplIC0gX193aWR0aCkgPDwgOCkgfCAoX19NYXNrKSk7ICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBmbG9hdCBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX19tYXNrLCBmbG9hdCBfX3ZhbCwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1R5cGUgX19vZmZzZXQsIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgIFwKICAgIHJldHVybiBfX0Zsb2F0SW50cmluc2ljKF9fbWFzaywgX192YWwsIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgod2FycFNpemUgLSBfX3dpZHRoKSA8PCA4KSB8IChfX01hc2spKTsgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQgX19Gbk5hbWUodW5zaWduZWQgaW50IF9fbWFzaywgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgIFwKICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6Ol9fRm5OYW1lKF9fbWFzaywgc3RhdGljX2Nhc3Q8aW50PihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBsb25nIGxvbmcgX19Gbk5hbWUodW5zaWduZWQgaW50IF9fbWFzaywgbG9uZyBsb25nIF9fdmFsLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19UeXBlIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgIFwKICAgIHN0cnVjdCBfX0JpdHMgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IF9fYSwgX19iOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihfX3ZhbCkgPT0gc2l6ZW9mKF9fQml0cykpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihfX0JpdHMpID09IDIgKiBzaXplb2YoaW50KSk7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fQml0cyBfX3RtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX190bXAsICZfX3ZhbCwgc2l6ZW9mKF9fdmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fdG1wLl9fYSA9IDo6X19Gbk5hbWUoX19tYXNrLCBfX3RtcC5fX2EsIF9fb2Zmc2V0LCBfX3dpZHRoKTsgICAgICAgICAgICAgIFwKICAgIF9fdG1wLl9fYiA9IDo6X19Gbk5hbWUoX19tYXNrLCBfX3RtcC5fX2IsIF9fb2Zmc2V0LCBfX3dpZHRoKTsgICAgICAgICAgICAgIFwKICAgIGxvbmcgbG9uZyBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX19yZXQsICZfX3RtcCwgc2l6ZW9mKF9fdG1wKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IF9fbWFzaywgdW5zaWduZWQgbG9uZyBsb25nIF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsICAgICAgICAgIFwKICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KDo6X19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBfX21hc2ssIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oX192YWwpLCBfX29mZnNldCwgX193aWR0aCkpOyAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBsb25nIF9fRm5OYW1lKHVuc2lnbmVkIGludCBfX21hc2ssIGxvbmcgX192YWwsICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVHlwZSBfX29mZnNldCwgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSB8fCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIHNpemVvZihsb25nKSA9PSBzaXplb2YoaW50KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlmIChzaXplb2YobG9uZykgPT0gc2l6ZW9mKGxvbmcgbG9uZykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KDo6X19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIF9fbWFzaywgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgICAgIFwKICAgIH0gZWxzZSBpZiAoc2l6ZW9mKGxvbmcpID09IHNpemVvZihpbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIDo6X19Gbk5hbWUoX19tYXNrLCBzdGF0aWNfY2FzdDxpbnQ+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgIFwKICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIF9fRm5OYW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IF9fbWFzaywgdW5zaWduZWQgbG9uZyBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCAgICAgICAgICAgICAgIFwKICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6Ol9fRm5OYW1lKF9fbWFzaywgc3RhdGljX2Nhc3Q8bG9uZz4oX192YWwpLCBfX29mZnNldCwgX193aWR0aCkpOyAgICAgIFwKICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBpbmxpbmUgX19kZXZpY2VfXyBkb3VibGUgX19Gbk5hbWUodW5zaWduZWQgaW50IF9fbWFzaywgZG91YmxlIF9fdmFsLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19UeXBlIF9fb2Zmc2V0LCBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7IFwKICAgIGxvbmcgbG9uZyBfX3RtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9TdGF0aWNfYXNzZXJ0KHNpemVvZihfX3RtcCkgPT0gc2l6ZW9mKF9fdmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX190bXAsICZfX3ZhbCwgc2l6ZW9mKF9fdmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9fdG1wID0gOjpfX0ZuTmFtZShfX21hc2ssIF9fdG1wLCBfX29mZnNldCwgX193aWR0aCk7ICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGRvdWJsZSBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1lbWNweSgmX19yZXQsICZfX3RtcCwgc2l6ZW9mKF9fcmV0KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX3JldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9Cl9fTUFLRV9TWU5DX1NIVUZGTEVTKF9fc2hmbF9zeW5jLCBfX252dm1fc2hmbF9zeW5jX2lkeF9pMzIsCiAgICAgICAgICAgICAgICAgICAgIF9fbnZ2bV9zaGZsX3N5bmNfaWR4X2YzMiwgMHgxZiwgaW50KTsKLy8gV2UgdXNlIDAgcmF0aGVyIHRoYW4gMzEgYXMgb3VyIG1hc2ssIGJlY2F1c2Ugc2hmbC51cCBhcHBsaWVzIHRvIGxhbmVzID49Ci8vIG1heExhbmUuCl9fTUFLRV9TWU5DX1NIVUZGTEVTKF9fc2hmbF91cF9zeW5jLCBfX252dm1fc2hmbF9zeW5jX3VwX2kzMiwKICAgICAgICAgICAgICAgICAgICAgX19udnZtX3NoZmxfc3luY191cF9mMzIsIDAsIHVuc2lnbmVkIGludCk7Cl9fTUFLRV9TWU5DX1NIVUZGTEVTKF9fc2hmbF9kb3duX3N5bmMsIF9fbnZ2bV9zaGZsX3N5bmNfZG93bl9pMzIsCiAgICAgICAgICAgICAgICAgICAgIF9fbnZ2bV9zaGZsX3N5bmNfZG93bl9mMzIsIDB4MWYsIHVuc2lnbmVkIGludCk7Cl9fTUFLRV9TWU5DX1NIVUZGTEVTKF9fc2hmbF94b3Jfc3luYywgX19udnZtX3NoZmxfc3luY19iZmx5X2kzMiwKICAgICAgICAgICAgICAgICAgICAgX19udnZtX3NoZmxfc3luY19iZmx5X2YzMiwgMHgxZiwgaW50KTsKI3ByYWdtYSBwb3BfbWFjcm8oIl9fTUFLRV9TWU5DX1NIVUZGTEVTIikKCmlubGluZSBfX2RldmljZV9fIHZvaWQgX19zeW5jd2FycCh1bnNpZ25lZCBpbnQgbWFzayA9IDB4ZmZmZmZmZmYpIHsKICByZXR1cm4gX19udnZtX2Jhcl93YXJwX3N5bmMobWFzayk7Cn0KCmlubGluZSBfX2RldmljZV9fIHZvaWQgX19iYXJyaWVyX3N5bmModW5zaWduZWQgaW50IGlkKSB7CiAgX19udnZtX2JhcnJpZXJfc3luYyhpZCk7Cn0KCmlubGluZSBfX2RldmljZV9fIHZvaWQgX19iYXJyaWVyX3N5bmNfY291bnQodW5zaWduZWQgaW50IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCkgewogIF9fbnZ2bV9iYXJyaWVyX3N5bmNfY250KGlkLCBjb3VudCk7Cn0KCmlubGluZSBfX2RldmljZV9fIGludCBfX2FsbF9zeW5jKHVuc2lnbmVkIGludCBtYXNrLCBpbnQgcHJlZCkgewogIHJldHVybiBfX252dm1fdm90ZV9hbGxfc3luYyhtYXNrLCBwcmVkKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gaW50IF9fYW55X3N5bmModW5zaWduZWQgaW50IG1hc2ssIGludCBwcmVkKSB7CiAgcmV0dXJuIF9fbnZ2bV92b3RlX2FueV9zeW5jKG1hc2ssIHByZWQpOwp9CgppbmxpbmUgX19kZXZpY2VfXyBpbnQgX191bmlfc3luYyh1bnNpZ25lZCBpbnQgbWFzaywgaW50IHByZWQpIHsKICByZXR1cm4gX19udnZtX3ZvdGVfdW5pX3N5bmMobWFzaywgcHJlZCk7Cn0KCmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGludCBfX2JhbGxvdF9zeW5jKHVuc2lnbmVkIGludCBtYXNrLCBpbnQgcHJlZCkgewogIHJldHVybiBfX252dm1fdm90ZV9iYWxsb3Rfc3luYyhtYXNrLCBwcmVkKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fYWN0aXZlbWFzaygpIHsKI2lmIENVREFfVkVSU0lPTiA8IDkwMjAKICByZXR1cm4gX19udnZtX3ZvdGVfYmFsbG90KDEpOwojZWxzZQogIHVuc2lnbmVkIGludCBtYXNrOwogIGFzbSB2b2xhdGlsZSgiYWN0aXZlbWFzay5iMzIgJTA7IiA6ICI9ciIobWFzaykpOwogIHJldHVybiBtYXNrOwojZW5kaWYKfQoKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fZm5zKHVuc2lnbmVkIG1hc2ssIHVuc2lnbmVkIGJhc2UsIGludCBvZmZzZXQpIHsKICByZXR1cm4gX19udnZtX2ZucyhtYXNrLCBiYXNlLCBvZmZzZXQpOwp9CgojZW5kaWYgLy8gIWRlZmluZWQoX19DVURBX0FSQ0hfXykgfHwgX19DVURBX0FSQ0hfXyA+PSAzMDAKCi8vIERlZmluZSBfX21hdGNoKiBidWlsdGlucyBDVURBLTkgaGVhZGVycyBleHBlY3QgdG8gc2VlLgojaWYgIWRlZmluZWQoX19DVURBX0FSQ0hfXykgfHwgX19DVURBX0FSQ0hfXyA+PSA3MDAKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fbWF0Y2gzMl9hbnlfc3luYyh1bnNpZ25lZCBpbnQgbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmFsdWUpIHsKICByZXR1cm4gX19udnZtX21hdGNoX2FueV9zeW5jX2kzMihtYXNrLCB2YWx1ZSk7Cn0KCmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgbG9uZwpfX21hdGNoNjRfYW55X3N5bmModW5zaWduZWQgaW50IG1hc2ssIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWx1ZSkgewogIHJldHVybiBfX252dm1fbWF0Y2hfYW55X3N5bmNfaTY0KG1hc2ssIHZhbHVlKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50Cl9fbWF0Y2gzMl9hbGxfc3luYyh1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IHZhbHVlLCBpbnQgKnByZWQpIHsKICByZXR1cm4gX19udnZtX21hdGNoX2FsbF9zeW5jX2kzMnAobWFzaywgdmFsdWUsIHByZWQpOwp9CgppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIGxvbmcKX19tYXRjaDY0X2FsbF9zeW5jKHVuc2lnbmVkIGludCBtYXNrLCB1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWUsIGludCAqcHJlZCkgewogIHJldHVybiBfX252dm1fbWF0Y2hfYWxsX3N5bmNfaTY0cChtYXNrLCB2YWx1ZSwgcHJlZCk7Cn0KI2luY2x1ZGUgImNydC9zbV83MF9ydC5ocHAiCgojZW5kaWYgLy8gIWRlZmluZWQoX19DVURBX0FSQ0hfXykgfHwgX19DVURBX0FSQ0hfXyA+PSA3MDAKI2VuZGlmIC8vIF9fQ1VEQV9WRVJTSU9OID49IDkwMDAKCi8vIHNtXzMyIGludHJpbnNpY3M6IF9fbGRnIGFuZCBfX2Z1bm5lbHNoaWZ0X3tsLGxjLHIscmN9LgoKLy8gUHJldmVudCB0aGUgdmFuaWxsYSBzbV8zMiBpbnRyaW5zaWNzIGhlYWRlciBmcm9tIGJlaW5nIGluY2x1ZGVkLgojZGVmaW5lIF9fU01fMzJfSU5UUklOU0lDU19IX18KI2RlZmluZSBfX1NNXzMyX0lOVFJJTlNJQ1NfSFBQX18KCiNpZiAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDMyMAoKaW5saW5lIF9fZGV2aWNlX18gY2hhciBfX2xkZyhjb25zdCBjaGFyICpwdHIpIHsgcmV0dXJuIF9fbnZ2bV9sZGdfYyhwdHIpOyB9CmlubGluZSBfX2RldmljZV9fIHNob3J0IF9fbGRnKGNvbnN0IHNob3J0ICpwdHIpIHsgcmV0dXJuIF9fbnZ2bV9sZGdfcyhwdHIpOyB9CmlubGluZSBfX2RldmljZV9fIGludCBfX2xkZyhjb25zdCBpbnQgKnB0cikgeyByZXR1cm4gX19udnZtX2xkZ19pKHB0cik7IH0KaW5saW5lIF9fZGV2aWNlX18gbG9uZyBfX2xkZyhjb25zdCBsb25nICpwdHIpIHsgcmV0dXJuIF9fbnZ2bV9sZGdfbChwdHIpOyB9CmlubGluZSBfX2RldmljZV9fIGxvbmcgbG9uZyBfX2xkZyhjb25zdCBsb25nIGxvbmcgKnB0cikgewogIHJldHVybiBfX252dm1fbGRnX2xsKHB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgY2hhciBfX2xkZyhjb25zdCB1bnNpZ25lZCBjaGFyICpwdHIpIHsKICByZXR1cm4gX19udnZtX2xkZ191YyhwdHIpOwp9CmlubGluZSBfX2RldmljZV9fIHNpZ25lZCBjaGFyIF9fbGRnKGNvbnN0IHNpZ25lZCBjaGFyICpwdHIpIHsKICByZXR1cm4gX19udnZtX2xkZ191YygoY29uc3QgdW5zaWduZWQgY2hhciAqKXB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgc2hvcnQgX19sZGcoY29uc3QgdW5zaWduZWQgc2hvcnQgKnB0cikgewogIHJldHVybiBfX252dm1fbGRnX3VzKHB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fbGRnKGNvbnN0IHVuc2lnbmVkIGludCAqcHRyKSB7CiAgcmV0dXJuIF9fbnZ2bV9sZGdfdWkocHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIF9fbGRnKGNvbnN0IHVuc2lnbmVkIGxvbmcgKnB0cikgewogIHJldHVybiBfX252dm1fbGRnX3VsKHB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbGRnKGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqcHRyKSB7CiAgcmV0dXJuIF9fbnZ2bV9sZGdfdWxsKHB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gZmxvYXQgX19sZGcoY29uc3QgZmxvYXQgKnB0cikgeyByZXR1cm4gX19udnZtX2xkZ19mKHB0cik7IH0KaW5saW5lIF9fZGV2aWNlX18gZG91YmxlIF9fbGRnKGNvbnN0IGRvdWJsZSAqcHRyKSB7IHJldHVybiBfX252dm1fbGRnX2QocHRyKTsgfQoKaW5saW5lIF9fZGV2aWNlX18gY2hhcjIgX19sZGcoY29uc3QgY2hhcjIgKnB0cikgewogIHR5cGVkZWYgY2hhciBjMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICAvLyBXZSBjYW4gYXNzdW1lIHRoYXQgcHRyIGlzIGFsaWduZWQgYXQgbGVhc3QgdG8gY2hhcjIncyBhbGlnbm1lbnQsIGJ1dCB0aGUKICAvLyBsb2FkIHdpbGwgYXNzdW1lIHRoYXQgcHRyIGlzIGFsaWduZWQgdG8gY2hhcjIncyBhbGlnbm1lbnQuICBUaGlzIGlzIG9ubHkKICAvLyBzYWZlIGlmIGFsaWdub2YoYzIpIDw9IGFsaWdub2YoY2hhcjIpLgogIGMyIHJ2ID0gX19udnZtX2xkZ19jMihyZWludGVycHJldF9jYXN0PGNvbnN0IGMyICo+KHB0cikpOwogIGNoYXIyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBjaGFyNCBfX2xkZyhjb25zdCBjaGFyNCAqcHRyKSB7CiAgdHlwZWRlZiBjaGFyIGM0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwogIGM0IHJ2ID0gX19udnZtX2xkZ19jNChyZWludGVycHJldF9jYXN0PGNvbnN0IGM0ICo+KHB0cikpOwogIGNoYXI0IHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0LnogPSBydlsyXTsKICByZXQudyA9IHJ2WzNdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gc2hvcnQyIF9fbGRnKGNvbnN0IHNob3J0MiAqcHRyKSB7CiAgdHlwZWRlZiBzaG9ydCBzMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICBzMiBydiA9IF9fbnZ2bV9sZGdfczIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBzMiAqPihwdHIpKTsKICBzaG9ydDIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIHNob3J0NCBfX2xkZyhjb25zdCBzaG9ydDQgKnB0cikgewogIHR5cGVkZWYgc2hvcnQgczQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgczQgcnYgPSBfX252dm1fbGRnX3M0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgczQgKj4ocHRyKSk7CiAgc2hvcnQ0IHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0LnogPSBydlsyXTsKICByZXQudyA9IHJ2WzNdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gaW50MiBfX2xkZyhjb25zdCBpbnQyICpwdHIpIHsKICB0eXBlZGVmIGludCBpMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICBpMiBydiA9IF9fbnZ2bV9sZGdfaTIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBpMiAqPihwdHIpKTsKICBpbnQyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBpbnQ0IF9fbGRnKGNvbnN0IGludDQgKnB0cikgewogIHR5cGVkZWYgaW50IGk0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwogIGk0IHJ2ID0gX19udnZtX2xkZ19pNChyZWludGVycHJldF9jYXN0PGNvbnN0IGk0ICo+KHB0cikpOwogIGludDQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBsb25nbG9uZzIgX19sZGcoY29uc3QgbG9uZ2xvbmcyICpwdHIpIHsKICB0eXBlZGVmIGxvbmcgbG9uZyBsbDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CiAgbGwyIHJ2ID0gX19udnZtX2xkZ19sbDIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBsbDIgKj4ocHRyKSk7CiAgbG9uZ2xvbmcyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQoKaW5saW5lIF9fZGV2aWNlX18gdWNoYXIyIF9fbGRnKGNvbnN0IHVjaGFyMiAqcHRyKSB7CiAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICB1YzIgcnYgPSBfX252dm1fbGRnX3VjMihyZWludGVycHJldF9jYXN0PGNvbnN0IHVjMiAqPihwdHIpKTsKICB1Y2hhcjIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIHVjaGFyNCBfX2xkZyhjb25zdCB1Y2hhcjQgKnB0cikgewogIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1YzQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgdWM0IHJ2ID0gX19udnZtX2xkZ191YzQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1YzQgKj4ocHRyKSk7CiAgdWNoYXI0IHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0LnogPSBydlsyXTsKICByZXQudyA9IHJ2WzNdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gdXNob3J0MiBfX2xkZyhjb25zdCB1c2hvcnQyICpwdHIpIHsKICB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVzMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICB1czIgcnYgPSBfX252dm1fbGRnX3VzMihyZWludGVycHJldF9jYXN0PGNvbnN0IHVzMiAqPihwdHIpKTsKICB1c2hvcnQyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyB1c2hvcnQ0IF9fbGRnKGNvbnN0IHVzaG9ydDQgKnB0cikgewogIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXM0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwogIHVzNCBydiA9IF9fbnZ2bV9sZGdfdXM0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdXM0ICo+KHB0cikpOwogIHVzaG9ydDQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyB1aW50MiBfX2xkZyhjb25zdCB1aW50MiAqcHRyKSB7CiAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWkyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIHVpMiBydiA9IF9fbnZ2bV9sZGdfdWkyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWkyICo+KHB0cikpOwogIHVpbnQyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyB1aW50NCBfX2xkZyhjb25zdCB1aW50NCAqcHRyKSB7CiAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWk0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwogIHVpNCBydiA9IF9fbnZ2bV9sZGdfdWk0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWk0ICo+KHB0cikpOwogIHVpbnQ0IHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0LnogPSBydlsyXTsKICByZXQudyA9IHJ2WzNdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gdWxvbmdsb25nMiBfX2xkZyhjb25zdCB1bG9uZ2xvbmcyICpwdHIpIHsKICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGwyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIHVsbDIgcnYgPSBfX252dm1fbGRnX3VsbDIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bGwyICo+KHB0cikpOwogIHVsb25nbG9uZzIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CgppbmxpbmUgX19kZXZpY2VfXyBmbG9hdDIgX19sZGcoY29uc3QgZmxvYXQyICpwdHIpIHsKICB0eXBlZGVmIGZsb2F0IGYyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIGYyIHJ2ID0gX19udnZtX2xkZ19mMihyZWludGVycHJldF9jYXN0PGNvbnN0IGYyICo+KHB0cikpOwogIGZsb2F0MiByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gZmxvYXQ0IF9fbGRnKGNvbnN0IGZsb2F0NCAqcHRyKSB7CiAgdHlwZWRlZiBmbG9hdCBmNCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKICBmNCBydiA9IF9fbnZ2bV9sZGdfZjQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBmNCAqPihwdHIpKTsKICBmbG9hdDQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBkb3VibGUyIF9fbGRnKGNvbnN0IGRvdWJsZTIgKnB0cikgewogIHR5cGVkZWYgZG91YmxlIGQyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIGQyIHJ2ID0gX19udnZtX2xkZ19kMihyZWludGVycHJldF9jYXN0PGNvbnN0IGQyICo+KHB0cikpOwogIGRvdWJsZTIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CgovLyBUT0RPOiBJbXBsZW1lbnQgdGhlc2UgYXMgaW50cmluc2ljcywgc28gdGhlIGJhY2tlbmQgY2FuIHdvcmsgaXRzIG1hZ2ljIG9uCi8vIHRoZXNlLiAgQWx0ZXJuYXRpdmVseSwgd2UgY291bGQgaW1wbGVtZW50IHRoZXNlIGFzIHBsYWluIEMgYW5kIHRyeSB0byBnZXQKLy8gbGx2bSB0byByZWNvZ25pemUgdGhlIHJlbGV2YW50IHBhdHRlcm5zLgppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBfX2Z1bm5lbHNoaWZ0X2wodW5zaWduZWQgbG93MzIsIHVuc2lnbmVkIGhpZ2gzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNoaWZ0V2lkdGgpIHsKICB1bnNpZ25lZCByZXN1bHQ7CiAgYXNtKCJzaGYubC53cmFwLmIzMiAlMCwgJTEsICUyLCAlMzsiCiAgICAgIDogIj1yIihyZXN1bHQpCiAgICAgIDogInIiKGxvdzMyKSwgInIiKGhpZ2gzMiksICJyIihzaGlmdFdpZHRoKSk7CiAgcmV0dXJuIHJlc3VsdDsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBfX2Z1bm5lbHNoaWZ0X2xjKHVuc2lnbmVkIGxvdzMyLCB1bnNpZ25lZCBoaWdoMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hpZnRXaWR0aCkgewogIHVuc2lnbmVkIHJlc3VsdDsKICBhc20oInNoZi5sLmNsYW1wLmIzMiAlMCwgJTEsICUyLCAlMzsiCiAgICAgIDogIj1yIihyZXN1bHQpCiAgICAgIDogInIiKGxvdzMyKSwgInIiKGhpZ2gzMiksICJyIihzaGlmdFdpZHRoKSk7CiAgcmV0dXJuIHJlc3VsdDsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBfX2Z1bm5lbHNoaWZ0X3IodW5zaWduZWQgbG93MzIsIHVuc2lnbmVkIGhpZ2gzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNoaWZ0V2lkdGgpIHsKICB1bnNpZ25lZCByZXN1bHQ7CiAgYXNtKCJzaGYuci53cmFwLmIzMiAlMCwgJTEsICUyLCAlMzsiCiAgICAgIDogIj1yIihyZXN1bHQpCiAgICAgIDogInIiKGxvdzMyKSwgInIiKGhpZ2gzMiksICJyIihzaGlmdFdpZHRoKSk7CiAgcmV0dXJuIHJlc3VsdDsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBfX2Z1bm5lbHNoaWZ0X3JjKHVuc2lnbmVkIGxvdzMyLCB1bnNpZ25lZCBoaWdoMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hpZnRXaWR0aCkgewogIHVuc2lnbmVkIHJldDsKICBhc20oInNoZi5yLmNsYW1wLmIzMiAlMCwgJTEsICUyLCAlMzsiCiAgICAgIDogIj1yIihyZXQpCiAgICAgIDogInIiKGxvdzMyKSwgInIiKGhpZ2gzMiksICJyIihzaGlmdFdpZHRoKSk7CiAgcmV0dXJuIHJldDsKfQoKI2VuZGlmIC8vICFkZWZpbmVkKF9fQ1VEQV9BUkNIX18pIHx8IF9fQ1VEQV9BUkNIX18gPj0gMzIwCgojZW5kaWYgLy8gZGVmaW5lZChfX0NMQU5HX0NVREFfSU5UUklOU0lDU19IX18pCgAvKj09PS0tLS0gX19jbGFuZ19jdWRhX3J1bnRpbWVfd3JhcHBlci5oIC0gQ1VEQSBydW50aW1lIHN1cHBvcnQgLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyoKICogV0FSTklORzogVGhpcyBoZWFkZXIgaXMgaW50ZW5kZWQgdG8gYmUgZGlyZWN0bHkgLWluY2x1ZGUnZCBieQogKiB0aGUgY29tcGlsZXIgYW5kIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBpbmNsdWRlZCBieSB1c2Vycy4KICoKICogQ1VEQSBoZWFkZXJzIGFyZSBpbXBsZW1lbnRlZCBpbiBhIHdheSB0aGF0IGN1cnJlbnRseSBtYWtlcyBpdAogKiBpbXBvc3NpYmxlIGZvciB1c2VyIGNvZGUgdG8gI2luY2x1ZGUgZGlyZWN0bHkgd2hlbiBjb21waWxpbmcgd2l0aAogKiBDbGFuZy4gVGhleSBwcmVzZW50IGRpZmZlcmVudCB2aWV3IG9mIENVREEtc3VwcGxpZWQgZnVuY3Rpb25zCiAqIGRlcGVuZGluZyBvbiB3aGVyZSBpbiBOVkNDJ3MgY29tcGlsYXRpb24gcGlwZWxpbmUgdGhlIGhlYWRlcnMgYXJlCiAqIGluY2x1ZGVkLiBOZWl0aGVyIG9mIHRoZXNlIG1vZGVzIHByb3ZpZGVzIGZ1bmN0aW9uIGRlZmluaXRpb25zIHdpdGgKICogY29ycmVjdCBhdHRyaWJ1dGVzLCBzbyB3ZSB1c2UgcHJlcHJvY2Vzc29yIHRvIGZvcmNlIHRoZSBoZWFkZXJzCiAqIGludG8gYSBmb3JtIHRoYXQgQ2xhbmcgY2FuIHVzZS4KICoKICogU2ltaWxhcmx5IHRvIE5WQ0Mgd2hpY2ggLWluY2x1ZGUncyBjdWRhX3J1bnRpbWUuaCwgQ2xhbmcgLWluY2x1ZGUncwogKiB0aGlzIGZpbGUgZHVyaW5nIGV2ZXJ5IENVREEgY29tcGlsYXRpb24uCiAqLwoKI2lmbmRlZiBfX0NMQU5HX0NVREFfUlVOVElNRV9XUkFQUEVSX0hfXwojZGVmaW5lIF9fQ0xBTkdfQ1VEQV9SVU5USU1FX1dSQVBQRVJfSF9fCgojaWYgZGVmaW5lZChfX0NVREFfXykgJiYgZGVmaW5lZChfX2NsYW5nX18pCgovLyBJbmNsdWRlIHNvbWUgZm9yd2FyZCBkZWNsYXJlcyB0aGF0IG11c3QgY29tZSBiZWZvcmUgY21hdGguCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfbWF0aF9mb3J3YXJkX2RlY2xhcmVzLmg+CgovLyBEZWZpbmUgX19DVURBQ0NfXyBlYXJseSBhcyBsaWJzdGRjKysgc3RhbmRhcmQgaGVhZGVycyB3aXRoIEdOVSBleHRlbnNpb25zCi8vIGVuYWJsZWQgZGVwZW5kIG9uIGl0IHRvIGF2b2lkIHVzaW5nIF9fZmxvYXQxMjgsIHdoaWNoIGlzIHVuc3VwcG9ydGVkIGluCi8vIENVREEuCiNkZWZpbmUgX19DVURBQ0NfXwoKLy8gSW5jbHVkZSBzb21lIHN0YW5kYXJkIGhlYWRlcnMgdG8gYXZvaWQgQ1VEQSBoZWFkZXJzIGluY2x1ZGluZyB0aGVtCi8vIHdoaWxlIHNvbWUgcmVxdWlyZWQgbWFjcm9zIChsaWtlIF9fVEhST1cpIGFyZSBpbiBhIHdlaXJkIHN0YXRlLgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8c3RkbGliLmg+CiN1bmRlZiBfX0NVREFDQ19fCgovLyBQcmVzZXJ2ZSBjb21tb24gbWFjcm9zIHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGJlbG93IGJ5IHVzIG9yIGJ5IENVREEKLy8gaGVhZGVycy4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX1RIUk9XIikKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0NVREFfQVJDSF9fIikKCi8vIFdBUk5JTkc6IFByZXByb2Nlc3NvciBoYWNrcyBiZWxvdyBhcmUgYmFzZWQgb24gc3BlY2lmaWMgZGV0YWlscyBvZgovLyBDVURBLTcueCBoZWFkZXJzIGFuZCBhcmUgbm90IGV4cGVjdGVkIHRvIHdvcmsgd2l0aCBhbnkgb3RoZXIKLy8gdmVyc2lvbiBvZiBDVURBIGhlYWRlcnMuCiNpbmNsdWRlICJjdWRhLmgiCiNpZiAhZGVmaW5lZChDVURBX1ZFUlNJT04pCiNlcnJvciAiY3VkYS5oIGRpZCBub3QgZGVmaW5lIENVREFfVkVSU0lPTiIKI2VsaWYgQ1VEQV9WRVJTSU9OIDwgNzAwMAojZXJyb3IgIlVuc3VwcG9ydGVkIENVREEgdmVyc2lvbiEiCiNlbmRpZgoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0NVREFfSU5DTFVERV9DT01QSUxFUl9JTlRFUk5BTF9IRUFERVJTX18iKQojaWYgQ1VEQV9WRVJTSU9OID49IDEwMDAwCiNkZWZpbmUgX19DVURBX0lOQ0xVREVfQ09NUElMRVJfSU5URVJOQUxfSEVBREVSU19fCiNlbmRpZgoKLy8gTWFrZSBsYXJnZXN0IHN1YnNldCBvZiBkZXZpY2UgZnVuY3Rpb25zIGF2YWlsYWJsZSBkdXJpbmcgaG9zdAovLyBjb21waWxhdGlvbiAtLSBTTV8zNSBmb3IgdGhlIHRpbWUgYmVpbmcuCiNpZm5kZWYgX19DVURBX0FSQ0hfXwojZGVmaW5lIF9fQ1VEQV9BUkNIX18gMzUwCiNlbmRpZgoKI2luY2x1ZGUgIl9fY2xhbmdfY3VkYV9idWlsdGluX3ZhcnMuaCIKCi8vIE5vIG5lZWQgZm9yIGRldmljZV9sYXVuY2hfcGFyYW1ldGVycy5oIGFzIF9fY2xhbmdfY3VkYV9idWlsdGluX3ZhcnMuaCBhYm92ZQovLyBoYXMgdGFrZW4gY2FyZSBvZiBidWlsdGluIHZhcmlhYmxlcyBkZWNsYXJlZCBpbiB0aGUgZmlsZS4KI2RlZmluZSBfX0RFVklDRV9MQVVOQ0hfUEFSQU1FVEVSU19IX18KCi8vIHttYXRoLGRldmljZX1fZnVuY3Rpb25zLmggb25seSBoYXZlIGRlY2xhcmF0aW9ucyBvZiB0aGUKLy8gZnVuY3Rpb25zLiBXZSBkb24ndCBuZWVkIHRoZW0gYXMgd2UncmUgZ29pbmcgdG8gcHVsbCBpbiB0aGVpcgovLyBkZWZpbml0aW9ucyBmcm9tIC5ocHAgZmlsZXMuCiNkZWZpbmUgX19ERVZJQ0VfRlVOQ1RJT05TX0hfXwojZGVmaW5lIF9fTUFUSF9GVU5DVElPTlNfSF9fCiNkZWZpbmUgX19DT01NT05fRlVOQ1RJT05TX0hfXwovLyBkZXZpY2VfZnVuY3Rpb25zX2RlY2xzIGlzIHJlcGxhY2VkIGJ5IF9fY2xhbmdfY3VkYV9kZXZpY2VfZnVuY3Rpb25zLmgKLy8gaW5jbHVkZWQgYmVsb3cuCiNkZWZpbmUgX19ERVZJQ0VfRlVOQ1RJT05TX0RFQ0xTX0hfXwoKI3VuZGVmIF9fQ1VEQUNDX18KI2lmIENVREFfVkVSU0lPTiA8IDkwMDAKI2RlZmluZSBfX0NVREFCRV9fCiNlbHNlCiNkZWZpbmUgX19DVURBQ0NfXwojZGVmaW5lIF9fQ1VEQV9MSUJERVZJQ0VfXwojZW5kaWYKLy8gRGlzYWJsZXMgZGVmaW5pdGlvbnMgb2YgZGV2aWNlLXNpZGUgcnVudGltZSBzdXBwb3J0IHN0dWJzIGluCi8vIGN1ZGFfZGV2aWNlX3J1bnRpbWVfYXBpLmgKI2luY2x1ZGUgImhvc3RfZGVmaW5lcy5oIgojdW5kZWYgX19DVURBQ0NfXwojaW5jbHVkZSAiZHJpdmVyX3R5cGVzLmgiCiNpbmNsdWRlICJob3N0X2NvbmZpZy5oIgoKLy8gVGVtcG9yYXJpbHkgcmVwbGFjZSAibnZfd2VhayIgd2l0aCB3ZWFrLCBzbyBfX2F0dHJpYnV0ZV9fKChudl93ZWFrKSkgaW4KLy8gY3VkYV9kZXZpY2VfcnVudGltZV9hcGkuaCBlbmRzIHVwIGJlaW5nIF9fYXR0cmlidXRlX18oKHdlYWspKSB3aGljaCBpcyB0aGUKLy8gZnVuY3Rpb25hbCBlcXVpdmFsZW50IG9mIHdoYXQgd2UgbmVlZC4KI3ByYWdtYSBwdXNoX21hY3JvKCJudl93ZWFrIikKI2RlZmluZSBudl93ZWFrIHdlYWsKI3VuZGVmIF9fQ1VEQUJFX18KI3VuZGVmIF9fQ1VEQV9MSUJERVZJQ0VfXwojZGVmaW5lIF9fQ1VEQUNDX18KI2luY2x1ZGUgImN1ZGFfcnVudGltZS5oIgoKI3ByYWdtYSBwb3BfbWFjcm8oIm52X3dlYWsiKQojdW5kZWYgX19DVURBQ0NfXwojZGVmaW5lIF9fQ1VEQUJFX18KCi8vIENVREEgaGVhZGVycyB1c2UgX19udnZtX21lbWNweSBhbmQgX19udnZtX21lbXNldCB3aGljaCBDbGFuZyBkb2VzCi8vIG5vdCBoYXZlIGF0IHRoZSBtb21lbnQuIEVtdWxhdGUgdGhlbSB3aXRoIGEgYnVpbHRpbiBtZW1jcHkvbWVtc2V0LgojZGVmaW5lIF9fbnZ2bV9tZW1jcHkocywgZCwgbiwgYSkgX19idWlsdGluX21lbWNweShzLCBkLCBuKQojZGVmaW5lIF9fbnZ2bV9tZW1zZXQoZCwgYywgbiwgYSkgX19idWlsdGluX21lbXNldChkLCBjLCBuKQoKI2lmIENVREFfVkVSU0lPTiA8IDkwMDAKI2luY2x1ZGUgImNydC9kZXZpY2VfcnVudGltZS5oIgojZW5kaWYKI2luY2x1ZGUgImNydC9ob3N0X3J1bnRpbWUuaCIKLy8gZGV2aWNlX3J1bnRpbWUuaCBkZWZpbmVzIF9fY3hhXyogbWFjcm9zIHRoYXQgd2lsbCBjb25mbGljdCB3aXRoCi8vIGN4eGFiaS5oLgovLyBGSVhNRTogcmVkZWZpbmUgdGhlc2UgYXMgX19kZXZpY2VfXyBmdW5jdGlvbnMuCiN1bmRlZiBfX2N4YV92ZWNfY3RvcgojdW5kZWYgX19jeGFfdmVjX2NjdG9yCiN1bmRlZiBfX2N4YV92ZWNfZHRvcgojdW5kZWYgX19jeGFfdmVjX25ldwojdW5kZWYgX19jeGFfdmVjX25ldzIKI3VuZGVmIF9fY3hhX3ZlY19uZXczCiN1bmRlZiBfX2N4YV92ZWNfZGVsZXRlMgojdW5kZWYgX19jeGFfdmVjX2RlbGV0ZQojdW5kZWYgX19jeGFfdmVjX2RlbGV0ZTMKI3VuZGVmIF9fY3hhX3B1cmVfdmlydHVhbAoKLy8gbWF0aF9mdW5jdGlvbnMuaHBwIGV4cGVjdHMgdGhpcyBob3N0IGZ1bmN0aW9uIGJlIGRlZmluZWQgb24gTWFjT1MsIGJ1dCBpdAovLyBlbmRzIHVwIG5vdCBiZWluZyB0aGVyZSBiZWNhdXNlIG9mIHRoZSBnYW1lcyB3ZSBwbGF5IGhlcmUuICBKdXN0IGRlZmluZSBpdAovLyBvdXJzZWx2ZXM7IGl0J3Mgc2ltcGxlIGVub3VnaC4KI2lmZGVmIF9fQVBQTEVfXwppbmxpbmUgX19ob3N0X18gZG91YmxlIF9fc2lnbmJpdGQoZG91YmxlIHgpIHsKICByZXR1cm4gc3RkOjpzaWduYml0KHgpOwp9CiNlbmRpZgoKLy8gQ1VEQSA5LjEgbm8gbG9uZ2VyIHByb3ZpZGVzIGRlY2xhcmF0aW9ucyBmb3IgbGliZGV2aWNlIGZ1bmN0aW9ucywgc28gd2UgbmVlZAovLyB0byBwcm92aWRlIG91ciBvd24uCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfbGliZGV2aWNlX2RlY2xhcmVzLmg+CgovLyBXcmFwcGVycyBmb3IgbWFueSBkZXZpY2Utc2lkZSBzdGFuZGFyZCBsaWJyYXJ5IGZ1bmN0aW9ucywgaW5jbC4gbWF0aAovLyBmdW5jdGlvbnMsIGJlY2FtZSBjb21waWxlciBidWlsdGlucyBpbiBDVURBLTkgYW5kIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlCi8vIENVREEgaGVhZGVycy4gQ2xhbmcgbm93IHByb3ZpZGVzIGl0cyBvd24gaW1wbGVtZW50YXRpb24gb2YgdGhlIHdyYXBwZXJzLgojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAKI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9kZXZpY2VfZnVuY3Rpb25zLmg+CiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfbWF0aC5oPgojZW5kaWYKCi8vIF9fVEhST1cgaXMgcmVkZWZpbmVkIHRvIGJlIGVtcHR5IGJ5IGRldmljZV9mdW5jdGlvbnNfZGVjbHMuaCBpbiBDVURBLiBDbGFuZydzCi8vIGNvdW50ZXJwYXJ0IGRvZXMgbm90IGRvIGl0LCBzbyB3ZSBuZWVkIHRvIG1ha2UgaXQgZW1wdHkgaGVyZSB0byBrZWVwCi8vIGZvbGxvd2luZyBDVURBIGluY2x1ZGVzIGhhcHB5LgojdW5kZWYgX19USFJPVwojZGVmaW5lIF9fVEhST1cKCi8vIENVREEgOC4wLjQxIHJlbGllcyBvbiBfX1VTRV9GQVNUX01BVEhfXyBhbmQgX19DVURBX1BSRUNfRElWJ3MgdmFsdWVzLgovLyBQcmV2aW91cyB2ZXJzaW9ucyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhleSBhcmUgZGVmaW5lZCBvciBub3QuCi8vIENVX0RFVklDRV9JTlZBTElEIG1hY3JvIGlzIG9ubHkgZGVmaW5lZCBpbiA4LjAuNDEsIHNvIHdlIHVzZSBpdAovLyBoZXJlIHRvIGRldGVjdCB0aGUgc3dpdGNoLgoKI2lmIGRlZmluZWQoQ1VfREVWSUNFX0lOVkFMSUQpCiNpZiAhZGVmaW5lZChfX1VTRV9GQVNUX01BVEhfXykKI2RlZmluZSBfX1VTRV9GQVNUX01BVEhfXyAwCiNlbmRpZgoKI2lmICFkZWZpbmVkKF9fQ1VEQV9QUkVDX0RJVikKI2RlZmluZSBfX0NVREFfUFJFQ19ESVYgMAojZW5kaWYKI2VuZGlmCgovLyBUZW1wb3JhcmlseSBwb2lzb24gX19ob3N0X18gbWFjcm8gdG8gZW5zdXJlIGl0J3Mgbm90IHVzZWQgYnkgYW55IG9mCi8vIHRoZSBoZWFkZXJzIHdlJ3JlIGFib3V0IHRvIGluY2x1ZGUuCiNwcmFnbWEgcHVzaF9tYWNybygiX19ob3N0X18iKQojZGVmaW5lIF9faG9zdF9fIFVORVhQRUNURURfSE9TVF9BVFRSSUJVVEUKCi8vIGRldmljZV9mdW5jdGlvbnMuaHBwIGFuZCBtYXRoX2Z1bmN0aW9ucyouaHBwIHVzZSAnc3RhdGljCi8vIF9fZm9yY2VpbmxpbmVfXycgKHdpdGggbm8gX19kZXZpY2VfXykgZm9yIGRlZmluaXRpb25zIG9mIGRldmljZQovLyBmdW5jdGlvbnMuIFRlbXBvcmFyaWx5IHJlZGVmaW5lIF9fZm9yY2VpbmxpbmVfXyB0byBpbmNsdWRlCi8vIF9fZGV2aWNlX18uCiNwcmFnbWEgcHVzaF9tYWNybygiX19mb3JjZWlubGluZV9fIikKI2RlZmluZSBfX2ZvcmNlaW5saW5lX18gX19kZXZpY2VfXyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKQojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojaW5jbHVkZSAiZGV2aWNlX2Z1bmN0aW9ucy5ocHAiCiNlbmRpZgoKLy8gbWF0aF9mdW5jdGlvbi5ocHAgdXNlcyB0aGUgX19VU0VfRkFTVF9NQVRIX18gbWFjcm8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UKLy8gZ2V0IHRoZSBzbG93LWJ1dC1hY2N1cmF0ZSBvciBmYXN0LWJ1dC1pbmFjY3VyYXRlIHZlcnNpb25zIG9mIGZ1bmN0aW9ucyBsaWtlCi8vIHNpbiBhbmQgZXhwLiAgVGhpcyBpcyBjb250cm9sbGVkIGluIGNsYW5nIGJ5IC1mY3VkYS1hcHByb3gtdHJhbnNjZW5kZW50YWxzLgovLwovLyBkZXZpY2VfZnVuY3Rpb25zLmhwcCB1c2VzIF9fVVNFX0ZBU1RfTUFUSF9fIGZvciBhIGRpZmZlcmVudCBwdXJwb3NlIChmYXN0IHZzLgovLyBzbG93IGRpdmlkZXMpLCBzbyB3ZSBuZWVkIHRvIHNjb3BlIG91ciBkZWZpbmUgY2FyZWZ1bGx5IGhlcmUuCiNwcmFnbWEgcHVzaF9tYWNybygiX19VU0VfRkFTVF9NQVRIX18iKQojaWYgZGVmaW5lZChfX0NMQU5HX0NVREFfQVBQUk9YX1RSQU5TQ0VOREVOVEFMU19fKQojZGVmaW5lIF9fVVNFX0ZBU1RfTUFUSF9fIDEKI2VuZGlmCgojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAKLy8gQ1VEQS05LjIgbmVlZHMgaG9zdC1zaWRlIG1lbWNweSBmb3Igc29tZSBob3N0IGZ1bmN0aW9ucyBpbgovLyBkZXZpY2VfZnVuY3Rpb25zLmhwcAojaWYgQ1VEQV9WRVJTSU9OID49IDkwMjAKI2luY2x1ZGUgPHN0cmluZy5oPgojZW5kaWYKI2luY2x1ZGUgImNydC9tYXRoX2Z1bmN0aW9ucy5ocHAiCiNlbHNlCiNpbmNsdWRlICJtYXRoX2Z1bmN0aW9ucy5ocHAiCiNlbmRpZgoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fVVNFX0ZBU1RfTUFUSF9fIikKCiNpZiBDVURBX1ZFUlNJT04gPCA5MDAwCiNpbmNsdWRlICJtYXRoX2Z1bmN0aW9uc19kYmxfcHR4My5ocHAiCiNlbmRpZgojcHJhZ21hIHBvcF9tYWNybygiX19mb3JjZWlubGluZV9fIikKCi8vIFB1bGwgaW4gaG9zdC1vbmx5IGZ1bmN0aW9ucyB0aGF0IGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIG5laXRoZXIKLy8gX19DVURBQ0NfXyBub3IgX19DVURBQkVfXyBhcmUgZGVmaW5lZC4KI3VuZGVmIF9fTUFUSF9GVU5DVElPTlNfSFBQX18KI3VuZGVmIF9fQ1VEQUJFX18KI2lmIENVREFfVkVSU0lPTiA8IDkwMDAKI2luY2x1ZGUgIm1hdGhfZnVuY3Rpb25zLmhwcCIKI2VuZGlmCi8vIEFsYXMsIGFkZGl0aW9uYWwgb3ZlcmxvYWRzIGZvciB0aGVzZSBmdW5jdGlvbnMgYXJlIGhhcmQgdG8gZ2V0IHRvLgovLyBDb25zaWRlcmluZyB0aGF0IHdlIG9ubHkgbmVlZCB0aGVzZSBvdmVybG9hZHMgZm9yIGEgZmV3IGZ1bmN0aW9ucywKLy8gd2UgY2FuIHByb3ZpZGUgdGhlbSBoZXJlLgpzdGF0aWMgaW5saW5lIGZsb2F0IHJzcXJ0KGZsb2F0IF9fYSkgeyByZXR1cm4gcnNxcnRmKF9fYSk7IH0Kc3RhdGljIGlubGluZSBmbG9hdCByY2JydChmbG9hdCBfX2EpIHsgcmV0dXJuIHJjYnJ0ZihfX2EpOyB9CnN0YXRpYyBpbmxpbmUgZmxvYXQgc2lucGkoZmxvYXQgX19hKSB7IHJldHVybiBzaW5waWYoX19hKTsgfQpzdGF0aWMgaW5saW5lIGZsb2F0IGNvc3BpKGZsb2F0IF9fYSkgeyByZXR1cm4gY29zcGlmKF9fYSk7IH0Kc3RhdGljIGlubGluZSB2b2lkIHNpbmNvc3BpKGZsb2F0IF9fYSwgZmxvYXQgKl9fYiwgZmxvYXQgKl9fYykgewogIHJldHVybiBzaW5jb3NwaWYoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIGlubGluZSBmbG9hdCBlcmZjaW52KGZsb2F0IF9fYSkgeyByZXR1cm4gZXJmY2ludmYoX19hKTsgfQpzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1jZGZpbnYoZmxvYXQgX19hKSB7IHJldHVybiBub3JtY2RmaW52ZihfX2EpOyB9CnN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWNkZihmbG9hdCBfX2EpIHsgcmV0dXJuIG5vcm1jZGZmKF9fYSk7IH0Kc3RhdGljIGlubGluZSBmbG9hdCBlcmZjeChmbG9hdCBfX2EpIHsgcmV0dXJuIGVyZmN4ZihfX2EpOyB9CgojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAovLyBGb3Igc29tZSByZWFzb24gc2luZ2xlLWFyZ3VtZW50IHZhcmlhbnQgaXMgbm90IGFsd2F5cyBkZWNsYXJlZCBieQovLyBDVURBIGhlYWRlcnMuIEFsYXMsIGRldmljZV9mdW5jdGlvbnMuaHBwIGluY2x1ZGVkIGJlbG93IG5lZWRzIGl0LgpzdGF0aWMgaW5saW5lIF9fZGV2aWNlX18gdm9pZCBfX2Jya3B0KGludCBfX2MpIHsgX19icmtwdCgpOyB9CiNlbmRpZgoKLy8gTm93IGluY2x1ZGUgKi5ocHAgd2l0aCBkZWZpbml0aW9ucyBvZiB2YXJpb3VzIEdQVSBmdW5jdGlvbnMuICBBbGFzLAovLyBhIGxvdCBvZiB0aGlucyBnZXQgZGVjbGFyZWQvZGVmaW5lZCB3aXRoIF9faG9zdF9fIGF0dHJpYnV0ZSB3aGljaAovLyB3ZSBkb24ndCB3YW50IGFuZCB3ZSBoYXZlIHRvIGRlZmluZSBpdCBvdXQuIFdlIGFsc28gaGF2ZSB0byBpbmNsdWRlCi8vIHtkZXZpY2UsbWF0aH1fZnVuY3Rpb25zLmhwcCBhZ2FpbiBpbiBvcmRlciB0byBleHRyYWN0IHRoZSBvdGhlcgovLyBicmFuY2ggb2YgI2lmL2Vsc2UgaW5zaWRlLgojZGVmaW5lIF9faG9zdF9fCiN1bmRlZiBfX0NVREFCRV9fCiNkZWZpbmUgX19DVURBQ0NfXwojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAKLy8gU29tZSBhdG9taWMgZnVuY3Rpb25zIGJlY2FtZSBjb21waWxlciBidWlsdGlucyBpbiBDVURBLTkgLCBzbyB3ZSBuZWVkIHRoZWlyCi8vIGRlY2xhcmF0aW9ucy4KI2luY2x1ZGUgImRldmljZV9hdG9taWNfZnVuY3Rpb25zLmgiCiNlbmRpZgojdW5kZWYgX19ERVZJQ0VfRlVOQ1RJT05TX0hQUF9fCiNpbmNsdWRlICJkZXZpY2VfYXRvbWljX2Z1bmN0aW9ucy5ocHAiCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMAojaW5jbHVkZSAiY3J0L2RldmljZV9mdW5jdGlvbnMuaHBwIgojaW5jbHVkZSAiY3J0L2RldmljZV9kb3VibGVfZnVuY3Rpb25zLmhwcCIKI2Vsc2UKI2luY2x1ZGUgImRldmljZV9mdW5jdGlvbnMuaHBwIgojZGVmaW5lIF9fQ1VEQUJFX18KI2luY2x1ZGUgImRldmljZV9kb3VibGVfZnVuY3Rpb25zLmgiCiN1bmRlZiBfX0NVREFCRV9fCiNlbmRpZgojaW5jbHVkZSAic21fMjBfYXRvbWljX2Z1bmN0aW9ucy5ocHAiCiNpbmNsdWRlICJzbV8yMF9pbnRyaW5zaWNzLmhwcCIKI2luY2x1ZGUgInNtXzMyX2F0b21pY19mdW5jdGlvbnMuaHBwIgoKLy8gRG9uJ3QgaW5jbHVkZSBzbV8zMF9pbnRyaW5zaWNzLmggYW5kIHNtXzMyX2ludHJpbnNpY3MuaC4gIFRoZXNlIGRlZmluZSB0aGUKLy8gX19zaGZsIGFuZCBfX2xkZyBpbnRyaW5zaWNzIHVzaW5nIGlubGluZSAodm9sYXRpbGUpIGFzbSwgYnV0IHdlIHdhbnQgdG8KLy8gZGVmaW5lIHRoZW0gdXNpbmcgYnVpbHRpbnMgc28gdGhhdCB0aGUgb3B0aW1pemVyIGNhbiByZWFzb24gYWJvdXQgYW5kIGFjcm9zcwovLyB0aGVzZSBpbnN0cnVjdGlvbnMuICBJbiBwYXJ0aWN1bGFyLCB1c2luZyBpbnRyaW5zaWNzIGZvciBsZGcgZ2V0cyB1cyB0aGUKLy8gW2FkZHIraW1tXSBhZGRyZXNzaW5nIG1vZGUsIHdoaWNoLCBhbHRob3VnaCBpdCBkb2Vzbid0IGFjdHVhbGx5IGV4aXN0IGluIHRoZQovLyBoYXJkd2FyZSwgc2VlbXMgdG8gZ2VuZXJhdGUgZmFzdGVyIG1hY2hpbmUgY29kZSBiZWNhdXNlIHB0eGFzIGNhbiBtb3JlIGVhc2lseQovLyByZWFzb24gYWJvdXQgb3VyIGNvZGUuCgojaWYgQ1VEQV9WRVJTSU9OID49IDgwMDAKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0NVREFfQVJDSF9fIikKI3VuZGVmIF9fQ1VEQV9BUkNIX18KI2luY2x1ZGUgInNtXzYwX2F0b21pY19mdW5jdGlvbnMuaHBwIgojaW5jbHVkZSAic21fNjFfaW50cmluc2ljcy5ocHAiCiNwcmFnbWEgcG9wX21hY3JvKCJfX0NVREFfQVJDSF9fIikKI2VuZGlmCgojdW5kZWYgX19NQVRIX0ZVTkNUSU9OU19IUFBfXwoKLy8gbWF0aF9mdW5jdGlvbnMuaHBwIGRlZmluZXMgOjpzaWduYml0IGFzIGEgX19ob3N0X18gX19kZXZpY2VfXyBmdW5jdGlvbi4gIFRoaXMKLy8gY29uZmxpY3RzIHdpdGggbGlic3RkYysrJ3MgY29uc3RleHByIDo6c2lnbmJpdCwgc28gd2UgaGF2ZSB0byByZW5hbWUKLy8gbWF0aF9mdW5jdGlvbi5ocHAncyA6OnNpZ25iaXQuICBJdCdzIGd1YXJkZWQgYnkgI3VuZGVmIHNpZ25iaXQsIGJ1dCB0aGF0J3MKLy8gY29uZGl0aW9uYWwgb24gX19HTlVDX18uICA6KQojcHJhZ21hIHB1c2hfbWFjcm8oInNpZ25iaXQiKQojcHJhZ21hIHB1c2hfbWFjcm8oIl9fR05VQ19fIikKI3VuZGVmIF9fR05VQ19fCiNkZWZpbmUgc2lnbmJpdCBfX2lnbm9yZWRfY3VkYV9zaWduYml0CgovLyBDVURBLTkgb21pdHMgZGV2aWNlLXNpZGUgZGVmaW5pdGlvbnMgb2Ygc29tZSBtYXRoIGZ1bmN0aW9ucyBpZiBpdCBzZWVzCi8vIGluY2x1ZGUgZ3VhcmQgZnJvbSBtYXRoLmggd3JhcHBlciBmcm9tIGxpYnN0ZGMrKy4gV2UgaGF2ZSB0byB1bmRvIHRoZSBoZWFkZXIKLy8gZ3VhcmQgdGVtcG9yYXJpbHkgdG8gZ2V0IHRoZSBkZWZpbml0aW9ucyB3ZSBuZWVkLgojcHJhZ21hIHB1c2hfbWFjcm8oIl9HTElCQ1hYX01BVEhfSCIpCiNwcmFnbWEgcHVzaF9tYWNybygiX0xJQkNQUF9WRVJTSU9OIikKI2lmIENVREFfVkVSU0lPTiA+PSA5MDAwCiN1bmRlZiBfR0xJQkNYWF9NQVRIX0gKLy8gV2UgYWxzbyBuZWVkIHRvIHVuZG8gYW5vdGhlciBndWFyZCB0aGF0IGNoZWNrcyBmb3IgbGliYysrIDMuOCsKI2lmZGVmIF9MSUJDUFBfVkVSU0lPTgojZGVmaW5lIF9MSUJDUFBfVkVSU0lPTiAzNzAwCiNlbmRpZgojZW5kaWYKCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMAojaW5jbHVkZSAiY3J0L21hdGhfZnVuY3Rpb25zLmhwcCIKI2Vsc2UKI2luY2x1ZGUgIm1hdGhfZnVuY3Rpb25zLmhwcCIKI2VuZGlmCiNwcmFnbWEgcG9wX21hY3JvKCJfR0xJQkNYWF9NQVRIX0giKQojcHJhZ21hIHBvcF9tYWNybygiX0xJQkNQUF9WRVJTSU9OIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fR05VQ19fIikKI3ByYWdtYSBwb3BfbWFjcm8oInNpZ25iaXQiKQoKI3ByYWdtYSBwb3BfbWFjcm8oIl9faG9zdF9fIikKCiNpbmNsdWRlICJ0ZXh0dXJlX2luZGlyZWN0X2Z1bmN0aW9ucy5oIgoKLy8gUmVzdG9yZSBzdGF0ZSBvZiBfX0NVREFfQVJDSF9fIGFuZCBfX1RIUk9XIHdlIGhhZCBvbiBlbnRyeS4KI3ByYWdtYSBwb3BfbWFjcm8oIl9fQ1VEQV9BUkNIX18iKQojcHJhZ21hIHBvcF9tYWNybygiX19USFJPVyIpCgovLyBTZXQgdXAgY29tcGlsZXIgbWFjcm9zIGV4cGVjdGVkIHRvIGJlIHNlZW4gZHVyaW5nIGNvbXBpbGF0aW9uLgojdW5kZWYgX19DVURBQkVfXwojZGVmaW5lIF9fQ1VEQUNDX18KCmV4dGVybiAiQyIgewovLyBEZXZpY2Utc2lkZSBDVURBIHN5c3RlbSBjYWxscy4KLy8gaHR0cDovL2RvY3MubnZpZGlhLmNvbS9jdWRhL3B0eC13cml0ZXJzLWd1aWRlLXRvLWludGVyb3BlcmFiaWxpdHkvaW5kZXguaHRtbCNzeXN0ZW0tY2FsbHMKLy8gV2UgbmVlZCB0aGVzZSBkZWNsYXJhdGlvbnMgYW5kIHdyYXBwZXJzIGZvciBkZXZpY2Utc2lkZQovLyBtYWxsb2MvZnJlZS9wcmludGYgY2FsbHMgdG8gd29yayB3aXRob3V0IHJlbHlpbmcgb24KLy8gLWZjdWRhLWRpc2FibGUtdGFyZ2V0LWNhbGwtY2hlY2tzIG9wdGlvbi4KX19kZXZpY2VfXyBpbnQgdnByaW50Zihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7Cl9fZGV2aWNlX18gdm9pZCBmcmVlKHZvaWQgKikgX19hdHRyaWJ1dGUoKG5vdGhyb3cpKTsKX19kZXZpY2VfXyB2b2lkICptYWxsb2Moc2l6ZV90KSBfX2F0dHJpYnV0ZSgobm90aHJvdykpIF9fYXR0cmlidXRlX18oKG1hbGxvYykpOwoKLy8gX19hc3NlcnRmYWlsKCkgdXNlZCB0byBoYXZlIGEgYG5vcmV0dXJuYCBhdHRyaWJ1dGUuIFVuZm9ydHVuYXRlbHkgdGhhdAovLyBjb250cmlidXRlZCB0byB0cmlnZ2VyaW5nIHRoZSBsb25nc3RhbmRpbmcgYnVnIGluIHB0eGFzIHdoZW4gYXNzZXJ0IHdhcyB1c2VkCi8vIGluIHN1ZmZpY2llbnRseSBjb252b2x1dGVkIGNvZGUuIFNlZQovLyBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzM4IGZvciB0aGUgZGV0YWlscy4KX19kZXZpY2VfXyB2b2lkIF9fYXNzZXJ0ZmFpbChjb25zdCBjaGFyICpfX21lc3NhZ2UsIGNvbnN0IGNoYXIgKl9fZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2xpbmUsIGNvbnN0IGNoYXIgKl9fZnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fY2hhclNpemUpOwoKLy8gSW4gb3JkZXIgZm9yIHN0YW5kYXJkIGFzc2VydCgpIG1hY3JvIG9uIGxpbnV4IHRvIHdvcmsgd2UgbmVlZCB0bwovLyBwcm92aWRlIGRldmljZS1zaWRlIF9fYXNzZXJ0X2ZhaWwoKQpfX2RldmljZV9fIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2Fzc2VydF9mYWlsKGNvbnN0IGNoYXIgKl9fbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpfX2ZpbGUsIHVuc2lnbmVkIF9fbGluZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpfX2Z1bmN0aW9uKSB7CiAgX19hc3NlcnRmYWlsKF9fbWVzc2FnZSwgX19maWxlLCBfX2xpbmUsIF9fZnVuY3Rpb24sIHNpemVvZihjaGFyKSk7Cn0KCi8vIENsYW5nIHdpbGwgY29udmVydCBwcmludGYgaW50byB2cHJpbnRmLCBidXQgd2Ugc3RpbGwgbmVlZAovLyBkZXZpY2Utc2lkZSBkZWNsYXJhdGlvbiBmb3IgaXQuCl9fZGV2aWNlX18gaW50IHByaW50Zihjb25zdCBjaGFyICosIC4uLik7Cn0gLy8gZXh0ZXJuICJDIgoKLy8gV2UgYWxzbyBuZWVkIGRldmljZS1zaWRlIHN0ZDo6bWFsbG9jIGFuZCBzdGQ6OmZyZWUuCm5hbWVzcGFjZSBzdGQgewpfX2RldmljZV9fIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlKHZvaWQgKl9fcHRyKSB7IDo6ZnJlZShfX3B0cik7IH0KX19kZXZpY2VfXyBzdGF0aWMgaW5saW5lIHZvaWQgKm1hbGxvYyhzaXplX3QgX19zaXplKSB7CiAgcmV0dXJuIDo6bWFsbG9jKF9fc2l6ZSk7Cn0KfSAvLyBuYW1lc3BhY2Ugc3RkCgovLyBPdXQtb2YtbGluZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBfX2NsYW5nX2N1ZGFfYnVpbHRpbl92YXJzLmguICBUaGVzZSBuZWVkIHRvCi8vIGNvbWUgYWZ0ZXIgd2UndmUgcHVsbGVkIGluIHRoZSBkZWZpbml0aW9uIG9mIHVpbnQzIGFuZCBkaW0zLgoKX19kZXZpY2VfXyBpbmxpbmUgX19jdWRhX2J1aWx0aW5fdGhyZWFkSWR4X3Q6Om9wZXJhdG9yIGRpbTMoKSBjb25zdCB7CiAgcmV0dXJuIGRpbTMoeCwgeSwgeik7Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX3RocmVhZElkeF90OjpvcGVyYXRvciB1aW50MygpIGNvbnN0IHsKICByZXR1cm4ge3gsIHksIHp9Owp9CgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90OjpvcGVyYXRvciBkaW0zKCkgY29uc3QgewogIHJldHVybiBkaW0zKHgsIHksIHopOwp9CgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90OjpvcGVyYXRvciB1aW50MygpIGNvbnN0IHsKICByZXR1cm4ge3gsIHksIHp9Owp9CgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl9ibG9ja0RpbV90OjpvcGVyYXRvciBkaW0zKCkgY29uc3QgewogIHJldHVybiBkaW0zKHgsIHksIHopOwp9CgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl9ibG9ja0RpbV90OjpvcGVyYXRvciB1aW50MygpIGNvbnN0IHsKICByZXR1cm4ge3gsIHksIHp9Owp9CgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl9ncmlkRGltX3Q6Om9wZXJhdG9yIGRpbTMoKSBjb25zdCB7CiAgcmV0dXJuIGRpbTMoeCwgeSwgeik7Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2dyaWREaW1fdDo6b3BlcmF0b3IgdWludDMoKSBjb25zdCB7CiAgcmV0dXJuIHt4LCB5LCB6fTsKfQoKI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9jbWF0aC5oPgojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2ludHJpbnNpY3MuaD4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9jb21wbGV4X2J1aWx0aW5zLmg+CgovLyBjdXJhbmRfbXRncDMyX2tlcm5lbCBoZWxwZnVsbHkgcmVkZWNsYXJlcyBibG9ja0RpbSBhbmQgdGhyZWFkSWR4IGluIGhvc3QKLy8gbW9kZSwgZ2l2aW5nIHRoZW0gdGhlaXIgInByb3BlciIgdHlwZXMgb2YgZGltMyBhbmQgdWludDMuICBUaGlzIGlzCi8vIGluY29tcGF0aWJsZSB3aXRoIHRoZSB0eXBlcyB3ZSBnaXZlIGluIF9fY2xhbmdfY3VkYV9idWlsdGluX3ZhcnMuaC4gIEFzIGFzCi8vIGhhY2ssIGZvcmNlLWluY2x1ZGUgdGhlIGhlYWRlciAobnZjYyBkb2Vzbid0IGluY2x1ZGUgaXQgYnkgZGVmYXVsdCkgYnV0Ci8vIHJlZGVmaW5lIGRpbTMgYW5kIHVpbnQzIHRvIG91ciBidWlsdGluIHR5cGVzLiAgKFRoYW5rZnVsbHkgZGltMyBhbmQgdWludDMgYXJlCi8vIG9ubHkgdXNlZCBoZXJlIGZvciB0aGUgcmVkZWNsYXJhdGlvbnMgb2YgYmxvY2tEaW0gYW5kIHRocmVhZElkeC4pCiNwcmFnbWEgcHVzaF9tYWNybygiZGltMyIpCiNwcmFnbWEgcHVzaF9tYWNybygidWludDMiKQojZGVmaW5lIGRpbTMgX19jdWRhX2J1aWx0aW5fYmxvY2tEaW1fdAojZGVmaW5lIHVpbnQzIF9fY3VkYV9idWlsdGluX3RocmVhZElkeF90CiNpbmNsdWRlICJjdXJhbmRfbXRncDMyX2tlcm5lbC5oIgojcHJhZ21hIHBvcF9tYWNybygiZGltMyIpCiNwcmFnbWEgcG9wX21hY3JvKCJ1aW50MyIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX1VTRV9GQVNUX01BVEhfXyIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX0NVREFfSU5DTFVERV9DT01QSUxFUl9JTlRFUk5BTF9IRUFERVJTX18iKQoKLy8gQ1VEQSBydW50aW1lIHVzZXMgdGhpcyB1bmRvY3VtZW50ZWQgZnVuY3Rpb24gdG8gYWNjZXNzIGtlcm5lbCBsYXVuY2gKLy8gY29uZmlndXJhdGlvbi4gVGhlIGRlY2xhcmF0aW9uIGlzIGluIGNydC9kZXZpY2VfZnVuY3Rpb25zLmggYnV0IHRoYXQgZmlsZQovLyBpbmNsdWRlcyBhIGxvdCBvZiBvdGhlciBzdHVmZiB3ZSBkb24ndCB3YW50LiBJbnN0ZWFkLCB3ZSdsbCBwcm92aWRlIG91ciBvd24KLy8gZGVjbGFyYXRpb24gZm9yIGl0IGhlcmUuCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAyMApleHRlcm4gIkMiIHVuc2lnbmVkIF9fY3VkYVB1c2hDYWxsQ29uZmlndXJhdGlvbihkaW0zIGdyaWREaW0sIGRpbTMgYmxvY2tEaW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaGFyZWRNZW0gPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpzdHJlYW0gPSAwKTsKI2VuZGlmCgojZW5kaWYgLy8gX19DVURBX18KI2VuZGlmIC8vIF9fQ0xBTkdfQ1VEQV9SVU5USU1FX1dSQVBQRVJfSF9fCgBfX2NsYW5nX2hpcF9saWJkZXZpY2VfZGVjbGFyZXMuaABfX3N0ZGRlZl9tYXhfYWxpZ25fdC5oAGFtbWludHJpbi5oAC8qPT09LS0tLSBhcm1fbXZlLmggLSBBUk0gTVZFIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19BUk1fTVZFX0gKI2RlZmluZSBfX0FSTV9NVkVfSAoKI2lmICFfX0FSTV9GRUFUVVJFX01WRQojZXJyb3IgIk1WRSBzdXBwb3J0IG5vdCBlbmFibGVkIgojZW5kaWYKCiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgp0eXBlZGVmIHVpbnQxNl90IG12ZV9wcmVkMTZfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg4KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQxNl90IGludDE2eDhfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBpbnQxNng4X3QgdmFsWzJdOyB9IGludDE2eDh4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IGludDE2eDhfdCB2YWxbNF07IH0gaW50MTZ4OHg0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oNCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgaW50MzJfdCBpbnQzMng0X3Q7CnR5cGVkZWYgc3RydWN0IHsgaW50MzJ4NF90IHZhbFsyXTsgfSBpbnQzMng0eDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBpbnQzMng0X3QgdmFsWzRdOyB9IGludDMyeDR4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDIpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGludDY0X3QgaW50NjR4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IGludDY0eDJfdCB2YWxbMl07IH0gaW50NjR4MngyX3Q7CnR5cGVkZWYgc3RydWN0IHsgaW50NjR4Ml90IHZhbFs0XTsgfSBpbnQ2NHgyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygxNiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgaW50OF90IGludDh4MTZfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBpbnQ4eDE2X3QgdmFsWzJdOyB9IGludDh4MTZ4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IGludDh4MTZfdCB2YWxbNF07IH0gaW50OHgxNng0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oOCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDE2X3QgdWludDE2eDhfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50MTZ4OF90IHZhbFsyXTsgfSB1aW50MTZ4OHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgdWludDE2eDhfdCB2YWxbNF07IH0gdWludDE2eDh4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDQpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIHVpbnQzMl90IHVpbnQzMng0X3Q7CnR5cGVkZWYgc3RydWN0IHsgdWludDMyeDRfdCB2YWxbMl07IH0gdWludDMyeDR4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IHVpbnQzMng0X3QgdmFsWzRdOyB9IHVpbnQzMng0eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygyKSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSB1aW50NjRfdCB1aW50NjR4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IHVpbnQ2NHgyX3QgdmFsWzJdOyB9IHVpbnQ2NHgyeDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50NjR4Ml90IHZhbFs0XTsgfSB1aW50NjR4Mng0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oMTYpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIHVpbnQ4X3QgdWludDh4MTZfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50OHgxNl90IHZhbFsyXTsgfSB1aW50OHgxNngyX3Q7CnR5cGVkZWYgc3RydWN0IHsgdWludDh4MTZfdCB2YWxbNF07IH0gdWludDh4MTZ4NF90OwoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9hc3JsKSkpCmludDY0X3QgX19hcm1fYXNybChpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9sc2xsKSkpCnVpbnQ2NF90IF9fYXJtX2xzbGwodWludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3NxcnNocikpKQppbnQzMl90IF9fYXJtX3NxcnNocihpbnQzMl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXJzaHJsKSkpCmludDY0X3QgX19hcm1fc3Fyc2hybChpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXJzaHJsX3NhdDQ4KSkpCmludDY0X3QgX19hcm1fc3Fyc2hybF9zYXQ0OChpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXNobCkpKQppbnQzMl90IF9fYXJtX3Nxc2hsKGludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3FzaGxsKSkpCmludDY0X3QgX19hcm1fc3FzaGxsKGludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3JzaHIpKSkKaW50MzJfdCBfX2FybV9zcnNocihpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Nyc2hybCkpKQppbnQ2NF90IF9fYXJtX3Nyc2hybChpbnQ2NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3VxcnNobCkpKQp1aW50MzJfdCBfX2FybV91cXJzaGwodWludDMyX3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3VxcnNobGwpKSkKdWludDY0X3QgX19hcm1fdXFyc2hsbCh1aW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFyc2hsbF9zYXQ0OCkpKQp1aW50NjRfdCBfX2FybV91cXJzaGxsX3NhdDQ4KHVpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXNobCkpKQp1aW50MzJfdCBfX2FybV91cXNobCh1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXNobGwpKSkKdWludDY0X3QgX19hcm1fdXFzaGxsKHVpbnQ2NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vyc2hyKSkpCnVpbnQzMl90IF9fYXJtX3Vyc2hyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vyc2hybCkpKQp1aW50NjRfdCBfX2FybV91cnNocmwodWludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wX3MxNih1aW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wKHVpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3AodWludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3M4KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wX3M4KHVpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zOCkpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcCh1aW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3AodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3AodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3AodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3MxNikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfczE2KHVpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3MxNikpKQp1aW50MzJfdCBfX2FybV92YWJhdnEodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9zMzIodWludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cSh1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zOCkpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfczgodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxKHVpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cSh1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cSh1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cSh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYmRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYmRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFiZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFiZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYmRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWJkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFiZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFiZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhYmRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFiZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWJkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJkcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFiZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFiZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYmRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFiZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFiZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhYmRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhYmRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWJkcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhYmRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFiZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYmRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJkcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFiZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYmRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWJkcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFiZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFiZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhYmRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFiZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWJkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYnNxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJzcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJzcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFic3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJzcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYnNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJzcV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYnNxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJzcV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYnNxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYnNxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYnNxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYnNxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFic3FfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYnNxX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFic3FfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFic3FfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFic3FfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRjaXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNpcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkY2lxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkY2lxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRjaXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRjaXEoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjaXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRjcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkY3EoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZhZGRsdmFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZhZGRsdmFxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdmFxX3BfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdmFxX3AodWludDY0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2YXFfczMyKGludDY0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2YXEoaW50NjRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2YXFfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2YXEodWludDY0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92YWRkbHZxX3BfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2cV9wKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdnFfcF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdnFfcCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2cV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZhZGRsdnEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3UzMikpKQp1aW50NjRfdCBfX2FybV92YWRkbHZxX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3UzMikpKQp1aW50NjRfdCBfX2FybV92YWRkbHZxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhZGRxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhZGRxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhZGRxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9wKGludDMyX3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXFfcChpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9wX3M4KGludDMyX3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3AoaW50MzJfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV9wX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfcCh1aW50MzJfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxX3AodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfcF91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV9wKHVpbnQzMl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9zMTYoaW50MzJfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXEoaW50MzJfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXFfczMyKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zMzIpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zOCkpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXFfczgoaW50MzJfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcShpbnQzMl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxKHVpbnQzMl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91MzIpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcSh1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91OCkpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxX3U4KHVpbnQzMl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXEodWludDMyX3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cV9wX3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3AoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cV9wX3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3AoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3BfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3AoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfcF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3AodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3BfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cV9wKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3BfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfcCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zMTYpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zMzIpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZhZGR2cV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZhZGR2cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWRkdnEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92YW5kcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92YW5kcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhbmRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhbmRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YW5kcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFuZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFuZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhbmRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhbmRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YW5kcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhbmRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFuZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFuZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhbmRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhbmRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YW5kcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhbmRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFuZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhbmRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YW5kcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YW5kcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFuZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YW5kcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhbmRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YW5kcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFuZHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFuZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhbmRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFuZHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YW5kcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFuZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhbmRxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhbmRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YW5kcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhbmRxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFuZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX21fbihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfbV9uKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3FfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3FfbV9uKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcV9tX24odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZiaWNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YmljcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3FfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJpY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJpY3FfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YmljcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZiaWNxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZiaWNxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3Ffbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92YmljcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3EoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZiaWNxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJpY3FfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YmljcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3FfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZiaWNxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZiaWNxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJpY3EodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YmljcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3FfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YmljcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZiaWNxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3FfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJpY3FfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJpY3FfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YmljcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZicnNycV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YnJzcnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJyc3JxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZicnNycV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZicnNycV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJyc3JxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YnJzcnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJyc3JxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZicnNycV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YnJzcnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YnJzcnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZicnNycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YnJzcnFfbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZicnNycShpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJyc3JxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YnJzcnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJyc3JxX25fczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJyc3JxKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJyc3JxX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZicnNycSh1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YnJzcnFfbl91MzIodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJyc3JxKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJyc3JxX25fdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YnJzcnEodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZicnNycV94X25fczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJyc3JxX3goaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YnJzcnFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZicnNycV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YnJzcnFfeF9uX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YnJzcnFfeChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YnJzcnFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJyc3JxX3godWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZicnNycV94X25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YnJzcnFfeCh1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YnJzcnFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZicnNycV94KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzAodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzAodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3QyNzAodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTAoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTAodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHNxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2xzcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2xzcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsc3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2xzcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2xzcV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHNxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2xzcV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHNxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHNxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHNxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHNxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsc3FfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHNxX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsc3FfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsc3FfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsc3FfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHpxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2x6cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2x6cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsenFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2x6cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHpxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2x6cV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNsenFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNsenFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjbHpxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNsenFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2x6cV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2x6cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHpxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2x6cV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHpxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHpxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHpxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNsenFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjbHpxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjbHpxX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2x6cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjbHpxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNsenEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHpxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsenFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHpxX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsenFfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsenFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsenFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2x6cV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNsenFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNsenFfeF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjbHpxX3godWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNsenFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2x6cV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3Ffbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3EodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3Ffbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3EodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3Ffbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3EodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjcmVhdGVxX3MxNih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNyZWF0ZXFfczMyKHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3JlYXRlcV9zNjQodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNyZWF0ZXFfczgodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3JlYXRlcV91MTYodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3JlYXRlcV91MzIodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3JlYXRlcV91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjcmVhdGVxX3U4KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDE2cSkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmN0cDE2cSh1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDE2cV9tKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwMTZxX20odWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDMycSkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmN0cDMycSh1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDMycV9tKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwMzJxX20odWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDY0cSkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmN0cDY0cSh1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDY0cV9tKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwNjRxX20odWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDhxKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwOHEodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHA4cV9tKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwOHFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfbV93Yl91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfbV93Yl91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkZHVwcV9tX3diX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfbl91MTYodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfbl91MzIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkZHVwcV9uX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfd2JfdTE2KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX3diX3UzMih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3diX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfeF9uX3UxNih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX3hfdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfeF9uX3UzMih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX3hfdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkZHVwcV94X25fdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3hfdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfeF93Yl91MTYodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV94X3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX3hfd2JfdTMyKHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfeF91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3hfd2JfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3hfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZkdXBxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZkdXBxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZkdXBxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZkdXBxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmR1cHFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmR1cHFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR1cHFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZkdXBxX25fczE2KGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92ZHVwcV9uX3MzMihpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92ZHVwcV9uX3M4KGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHVwcV9uX3UxNih1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHVwcV9uX3UzMih1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkdXBxX25fdTgodWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmR1cHFfeF9uX3MxNihpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZkdXBxX3hfbl9zMzIoaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZkdXBxX3hfbl9zOChpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkdXBxX3hfbl91MTYodWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkdXBxX3hfbl91MzIodWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR1cHFfeF9uX3U4KHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR3ZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfbV93Yl91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfbV93Yl91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR3ZHVwcV9tX3diX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR3ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfbl91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfbl91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR3ZHVwcV9uX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfd2JfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX3diX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3diX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfeF9uX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX3hfdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfeF9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX3hfdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR3ZHVwcV94X25fdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3hfdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfeF93Yl91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV94X3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX3hfd2JfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfeF91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3hfd2JfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3hfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmVvcnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmVvcnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92ZW9ycV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92ZW9ycV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmVvcnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zlb3JxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zlb3JxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZW9ycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZW9ycV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmVvcnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZW9ycV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zlb3JxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zlb3JxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92ZW9ycShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92ZW9ycV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmVvcnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3M4KSkpCmludDh4MTZfdCBfX2FybV92ZW9ycV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zlb3JxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZW9ycV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmVvcnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmVvcnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zlb3JxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmVvcnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZW9ycSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmVvcnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zlb3JxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zlb3JxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92ZW9ycV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zlb3JxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmVvcnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zlb3JxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZW9ycV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZW9ycV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmVvcnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZW9ycV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zlb3JxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3MxNikpKQppbnQxNl90IF9fYXJtX3ZnZXRxX2xhbmVfczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3MxNikpKQppbnQxNl90IF9fYXJtX3ZnZXRxX2xhbmUoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczMyKSkpCmludDMyX3QgX19hcm1fdmdldHFfbGFuZV9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczMyKSkpCmludDMyX3QgX19hcm1fdmdldHFfbGFuZShpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zNjQpKSkKaW50NjRfdCBfX2FybV92Z2V0cV9sYW5lX3M2NChpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zNjQpKSkKaW50NjRfdCBfX2FybV92Z2V0cV9sYW5lKGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M4KSkpCmludDhfdCBfX2FybV92Z2V0cV9sYW5lX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M4KSkpCmludDhfdCBfX2FybV92Z2V0cV9sYW5lKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3UxNikpKQp1aW50MTZfdCBfX2FybV92Z2V0cV9sYW5lX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZnZXRxX2xhbmUodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3UzMikpKQp1aW50MzJfdCBfX2FybV92Z2V0cV9sYW5lX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZnZXRxX2xhbmUodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Z2V0cV9sYW5lX3U2NCh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZnZXRxX2xhbmUodWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3U4KSkpCnVpbnQ4X3QgX19hcm1fdmdldHFfbGFuZV91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTgpKSkKdWludDhfdCBfX2FybV92Z2V0cV9sYW5lKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHFfeF9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcV94X25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aGFkZHFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aGFkZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aGFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3QyNzAoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDI3MChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDI3MF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDI3MF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDI3MF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDkwX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90OTBfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3Q5MChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3Q5MChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3Q5MChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDkwX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDkwX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDkwX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDkwX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnFfeF9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicV94X25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aHN1YnFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV94KHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aHN1YnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aHN1YnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aWR1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX21fd2JfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX21fd2JfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aWR1cHFfbV93Yl91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aWR1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX25fdTE2KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV91MTYodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX25fdTMyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV91MzIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aWR1cHFfbl91OCh1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV91OCh1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX3diX3UxNih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfdTE2KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV93Yl91MzIodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3UzMih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV93Yl91OCh1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV91OCh1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX3hfbl91MTYodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV94X3UxNih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3hfbl91MzIodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV94X3UzMih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aWR1cHFfeF9uX3U4KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV94X3U4KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX3hfd2JfdTE2KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfeF91MTYodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV94X3diX3UzMih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3hfdTMyKHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV94X3diX3U4KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV94X3U4KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aXdkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aXdkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aXdkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV9uX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aXdkdXBxX25fdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV93Yl91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfd2JfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfd2JfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV94X25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfeF91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV94X25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfeF91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aXdkdXBxX3hfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfeF91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX3hfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfeF93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV94X3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfeF93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfeF91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkMXFfczE2KGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGQxcShjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkMXFfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGQxcShjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bGQxcV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZDFxKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGQxcV91MTYoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkMXEoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkMXFfdTMyKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZDFxKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkMXFfdTgoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZDFxKGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZDFxX3pfczE2KGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkMXFfeihjb25zdCBpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZDFxX3pfczMyKGNvbnN0IGludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkMXFfeihjb25zdCBpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmxkMXFfel9zOChjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGQxcV96KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkMXFfel91MTYoY29uc3QgdWludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZDFxX3ooY29uc3QgdWludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZDFxX3pfdTMyKGNvbnN0IHVpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGQxcV96KGNvbnN0IHVpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZDFxX3pfdTgoY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGQxcV96KGNvbnN0IHVpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMTYpKSkKaW50MTZ4OHgyX3QgX19hcm1fdmxkMnFfczE2KGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczE2KSkpCmludDE2eDh4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczMyKSkpCmludDMyeDR4Ml90IF9fYXJtX3ZsZDJxX3MzMihjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3MzMikpKQppbnQzMng0eDJfdCBfX2FybV92bGQycShjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3M4KSkpCmludDh4MTZ4Ml90IF9fYXJtX3ZsZDJxX3M4KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zOCkpKQppbnQ4eDE2eDJfdCBfX2FybV92bGQycShjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTE2KSkpCnVpbnQxNng4eDJfdCBfX2FybV92bGQycV91MTYoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTE2KSkpCnVpbnQxNng4eDJfdCBfX2FybV92bGQycShjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MzIpKSkKdWludDMyeDR4Ml90IF9fYXJtX3ZsZDJxX3UzMihjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MzIpKSkKdWludDMyeDR4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3U4KSkpCnVpbnQ4eDE2eDJfdCBfX2FybV92bGQycV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3U4KSkpCnVpbnQ4eDE2eDJfdCBfX2FybV92bGQycShjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MxNikpKQppbnQxNng4eDRfdCBfX2FybV92bGQ0cV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zMTYpKSkKaW50MTZ4OHg0X3QgX19hcm1fdmxkNHEoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zMzIpKSkKaW50MzJ4NHg0X3QgX19hcm1fdmxkNHFfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczMyKSkpCmludDMyeDR4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczgpKSkKaW50OHgxNng0X3QgX19hcm1fdmxkNHFfczgoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3M4KSkpCmludDh4MTZ4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91MTYpKSkKdWludDE2eDh4NF90IF9fYXJtX3ZsZDRxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91MTYpKSkKdWludDE2eDh4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UzMikpKQp1aW50MzJ4NHg0X3QgX19hcm1fdmxkNHFfdTMyKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UzMikpKQp1aW50MzJ4NHg0X3QgX19hcm1fdmxkNHEoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTgpKSkKdWludDh4MTZ4NF90IF9fYXJtX3ZsZDRxX3U4KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTgpKSkKdWludDh4MTZ4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMTYoY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfczMyKGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfczgoY29uc3QgaW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTE2KGNvbnN0IHVpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF91MzIoY29uc3QgdWludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTgoY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczE2KGNvbnN0IGludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MzMihjb25zdCBpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3M4KGNvbnN0IGludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UxNihjb25zdCB1aW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3U4KGNvbnN0IHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmJxX3MxNihjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmJxX3MzMihjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bGRyYnFfczgoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfdTE2KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV91MzIoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGRyYnFfdTgoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJicV96X3MxNihjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJicV96X3MzMihjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmxkcmJxX3pfczgoY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmJxX3pfdTE2KGNvbnN0IHVpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyYnFfel91MzIoY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkcmJxX3pfdTgoY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV9zNjQodWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2VfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9iYXNlX3U2NCh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl9zNjQodWludDY0eDJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2JfdTY0KHVpbnQ2NHgyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2Jfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3M2NCh1aW50NjR4Ml90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2Jfel91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2Jfel91NjQodWludDY0eDJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3pfczY0KSkpCmludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX2Jhc2Vfel9zNjQodWludDY0eDJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV96X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV96X3U2NCh1aW50NjR4Ml90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfczY0KSkpCmludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX29mZnNldF9zNjQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXRfdTY0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfczY0KSkpCmludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXRfel91NjQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zNjQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91NjQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zNjQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91NjQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMTYoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMzIoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTE2KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UzMihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMTYoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMzIoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTE2KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UzMihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTE2KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczE2KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmhxX3MxNihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9zMzIoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX3UzMihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV96X3MxNihjb25zdCBpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyaHFfel9zMzIoY29uc3QgaW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV96X3UxNihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV96X3UzMihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV9zMzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2VfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl9zMzIodWludDMyeDRfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfdTMyKHVpbnQzMng0X3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3MzMih1aW50MzJ4NF90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel91MzIodWludDMyeDRfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX2Jhc2Vfel9zMzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF9zMzIoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXRfdTMyKGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXRfel91MzIoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX3MzMihjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfdTMyKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX3pfczMyKGNvbnN0IGludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3Ffel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3Ffel91MzIoY29uc3QgdWludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4YXFfbV9zMTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhhcV9tKHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4YXFfbV9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhhcV9tKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhhcV9tX3M4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhhcV9tKHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heGFxX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4YXEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heGFxX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4YXEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4YXFfczgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4YXEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXhhdnFfcF9zMTYodWludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXhhdnFfcCh1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1heGF2cV9wX3MzMih1aW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1heGF2cV9wKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3M4KSkpCnVpbnQ4X3QgX19hcm1fdm1heGF2cV9wX3M4KHVpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczgpKSkKdWludDhfdCBfX2FybV92bWF4YXZxX3AodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXhhdnFfczE2KHVpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXhhdnEodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1heGF2cV9zMzIodWludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1heGF2cSh1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3M4KSkpCnVpbnQ4X3QgX19hcm1fdm1heGF2cV9zOCh1aW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczgpKSkKdWludDhfdCBfX2FybV92bWF4YXZxKHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtYXhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtYXhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1heHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1heHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtYXhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWF4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4cV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4cV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWF4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1heHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1heHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtYXhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1heHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWF4cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4cSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtYXhxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWF4cV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWF4cV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1heHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bWF4cV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtYXhxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4cV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4cV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczE2KSkpCmludDE2X3QgX19hcm1fdm1heHZxX3BfczE2KGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMTYpKSkKaW50MTZfdCBfX2FybV92bWF4dnFfcChpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1heHZxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWF4dnFfcChpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczgpKSkKaW50OF90IF9fYXJtX3ZtYXh2cV9wX3M4KGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3M4KSkpCmludDhfdCBfX2FybV92bWF4dnFfcChpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91MTYpKSkKdWludDE2X3QgX19hcm1fdm1heHZxX3BfdTE2KHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWF4dnFfcCh1aW50MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdm1heHZxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWF4dnFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91OCkpKQp1aW50OF90IF9fYXJtX3ZtYXh2cV9wX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTgpKSkKdWludDhfdCBfX2FybV92bWF4dnFfcCh1aW50OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zMTYpKSkKaW50MTZfdCBfX2FybV92bWF4dnFfczE2KGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtYXh2cShpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWF4dnFfczMyKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtYXh2cShpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zOCkpKQppbnQ4X3QgX19hcm1fdm1heHZxX3M4KGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczgpKSkKaW50OF90IF9fYXJtX3ZtYXh2cShpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWF4dnFfdTE2KHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXh2cSh1aW50MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWF4dnFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtYXh2cSh1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1heHZxX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91OCkpKQp1aW50OF90IF9fYXJtX3ZtYXh2cSh1aW50OF90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWluYXFfbV9zMTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5hcV9tKHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWluYXFfbV9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5hcV9tKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5hcV9tX3M4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5hcV9tKHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbmFxX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWluYXEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbmFxX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWluYXEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczgpKSkKdWludDh4MTZfdCBfX2FybV92bWluYXFfczgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczgpKSkKdWludDh4MTZfdCBfX2FybV92bWluYXEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW5hdnFfcF9zMTYodWludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW5hdnFfcCh1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1pbmF2cV9wX3MzMih1aW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1pbmF2cV9wKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3M4KSkpCnVpbnQ4X3QgX19hcm1fdm1pbmF2cV9wX3M4KHVpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczgpKSkKdWludDhfdCBfX2FybV92bWluYXZxX3AodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW5hdnFfczE2KHVpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW5hdnEodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1pbmF2cV9zMzIodWludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdm1pbmF2cSh1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3M4KSkpCnVpbnQ4X3QgX19hcm1fdm1pbmF2cV9zOCh1aW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczgpKSkKdWludDhfdCBfX2FybV92bWluYXZxKHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtaW5xX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtaW5xX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1pbnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1pbnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtaW5xX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWlucV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWlucV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5xX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWlucV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWlucV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1pbnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1pbnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtaW5xKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1pbnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWlucShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5xKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5xX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWlucSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5xX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtaW5xX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWlucV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWlucV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1pbnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bWlucV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtaW5xX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWlucV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5xX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWlucV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczE2KSkpCmludDE2X3QgX19hcm1fdm1pbnZxX3BfczE2KGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMTYpKSkKaW50MTZfdCBfX2FybV92bWludnFfcChpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1pbnZxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWludnFfcChpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczgpKSkKaW50OF90IF9fYXJtX3ZtaW52cV9wX3M4KGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3M4KSkpCmludDhfdCBfX2FybV92bWludnFfcChpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91MTYpKSkKdWludDE2X3QgX19hcm1fdm1pbnZxX3BfdTE2KHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWludnFfcCh1aW50MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdm1pbnZxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWludnFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91OCkpKQp1aW50OF90IF9fYXJtX3ZtaW52cV9wX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTgpKSkKdWludDhfdCBfX2FybV92bWludnFfcCh1aW50OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zMTYpKSkKaW50MTZfdCBfX2FybV92bWludnFfczE2KGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtaW52cShpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWludnFfczMyKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtaW52cShpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zOCkpKQppbnQ4X3QgX19hcm1fdm1pbnZxX3M4KGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczgpKSkKaW50OF90IF9fYXJtX3ZtaW52cShpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWludnFfdTE2KHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW52cSh1aW50MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWludnFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtaW52cSh1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1pbnZxX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91OCkpKQp1aW50OF90IF9fYXJtX3ZtaW52cSh1aW50OF90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxX3BfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcCh1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXEoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MTYpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MzIpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTgpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTgpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9wKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9wX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHEoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHFfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cV9wX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3AodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cV9wX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3AodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3BfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3AodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91MTYpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91MzIpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3BfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfcChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9wX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9wKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3BfdTE2KHVpbnQ2NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF91MTYpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9wKHVpbnQ2NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9wX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfcCh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MTYpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcV91MTYodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfdTE2KSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXEodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3UzMikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdmFxKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHFfcChpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmF4cV9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmF4cV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnFfcF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF91MTYpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZxX3AodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZxX3BfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9wKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTE2KSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3UzMikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnhxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnhxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1sYXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtbGFxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1sYXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhcShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtbGFxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFxX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhc3FfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1sYXNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWxhc3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhc3FfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFzcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1sYXNxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhc3FfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWxhc3FfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFzcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhc3Ffbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1sYXNxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWxhc3EoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhc3Ffbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXNxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFzcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1sYXNxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWxhc3Ffbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFzcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWxhc3Ffbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFzcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcV9wKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcV9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXEoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9wKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9wX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHEoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHFfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3BfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfcChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZhcV9wX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZhcV9wKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHFfcF9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cV9wKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXhxX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXhxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZ4cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicV9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicV9tKGludDE2eDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bGJxX21fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsYnFfbV91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsYnFfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bGJxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bGJxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsYnEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmxicSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bGJxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bGJxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsYnFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmxicV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmx0cV9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bHRxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxX21fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxX20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmx0cV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmx0cV9tX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmx0cV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmx0cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmx0cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bHRxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmx0cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmx0cV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bHRxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bmJxX21fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bmJxX21fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm5icV9tX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm5icV9tX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdm1vdm5icV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bmJxKGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3MzMikpKQppbnQxNng4X3QgX19hcm1fdm1vdm5icV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bmJxKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Ztb3ZuYnFfdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZuYnFfdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bnRxX21fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bnRxX21fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm50cV9tX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm50cV9tX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdm1vdm50cV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bnRxKGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3MzMikpKQppbnQxNng4X3QgX19hcm1fdm1vdm50cV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bnRxKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Ztb3ZudHFfdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZudHFfdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVsaHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bGhxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVsaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVsaHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVsaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGhxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGhxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVsaHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVsaHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bGhxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxocSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxocV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxocV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxocV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVsaHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVsaHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bGhxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF9tX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfbV9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X21fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF9tX3UzMih1aW50NjR4Ml90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnRfbSh1aW50NjR4Ml90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF9tX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnQoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnQodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnRfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50KHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnRfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfbV9wMTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX3BvbHlfbV9wMTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfbV9wMTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX3BvbHlfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9wb2x5X21fcDgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfbV9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfcG9seV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seV9wMTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX3BvbHlfcDgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9wb2x5KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV94X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seV94X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV94X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX3BvbHlfeF9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV94X3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9wb2x5X3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF9tX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfbV9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X21fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF9tX3UzMih1aW50NjR4Ml90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnRfbSh1aW50NjR4Ml90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF9tX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnQoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnQodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnRfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50KHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnRfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfbV9wMTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX3BvbHlfbV9wMTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfbV9wMTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX3BvbHlfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9wb2x5X21fcDgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfbV9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfcG9seV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seV9wMTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX3BvbHlfcDgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9wb2x5KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV94X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seV94X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV94X3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX3BvbHlfeF9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV94X3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9wb2x5X3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHFfeF9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHFfeChpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV94X25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVscV94X25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVscV94KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscV94KHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX3hfbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVscV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Ztdm5xX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm12bnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXZucV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Ztdm5xX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfbl9zMTYoaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX25fczMyKGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfbl91MTYodWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfbl91MzIodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm12bnFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXZucV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXZucShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXZucV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Ztdm5xKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xX3hfbl9zMTYoaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV94X25fczMyKGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xX3hfbl91MTYodWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztdm5xX3hfbl91MzIodWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm12bnFfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm12bnFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm12bnFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfeF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztdm5xX3godWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm12bnFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXZucV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZuZWdxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92bmVncV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bmVncV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm5lZ3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bmVncV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZuZWdxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92bmVncV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZuZWdxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92bmVncV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZuZWdxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZuZWdxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZuZWdxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZuZWdxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm5lZ3FfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZuZWdxX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm5lZ3FfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm5lZ3FfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm5lZ3FfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zvcm5xX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zvcm5xX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ybnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ybnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zvcm5xX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JucV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JucV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ybnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ybnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zvcm5xX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ybnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JucV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JucV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ybnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ybnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zvcm5xKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ybnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JucShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ybnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zvcm5xKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zvcm5xX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JucSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zvcm5xX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ybnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zvcm5xX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JucV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JucV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ybnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JucV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zvcm5xX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JucV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ybnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ybnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zvcm5xX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ybnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JucV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfbV9uKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycV9tX24odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fbih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ycnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZvcnJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JycV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JycV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZvcnJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ycnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ycnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZvcnJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ycnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JycV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZvcnJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ycnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ycnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JycSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZvcnJxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZvcnJxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ycnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JycV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JycV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZvcnJxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cG5vdCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdnBub3QobXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cHNlbHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zwc2VscShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cHNlbHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zwc2VscShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczY0KSkpCmludDY0eDJfdCBfX2FybV92cHNlbHFfczY0KGludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3Zwc2VscShpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zwc2VscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zwc2VscShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnBzZWxxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cHNlbHEodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnBzZWxxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cHNlbHEodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnBzZWxxX3U2NCh1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92cHNlbHEodWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cHNlbHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cHNlbHEodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWJzcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWJzcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhYnNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhYnNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWJzcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFic3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFic3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhYnNxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhYnNxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWJzcShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhYnNxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFic3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cWFkZHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFhZGRxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWRkcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhZGRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWRkcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cWFkZHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFhZGRxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWRkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFkaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhZGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhZGh4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRoeHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhZGh4cShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFocV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhc2hxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYXNocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFzaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhc2hxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhc2hxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYXNocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFzaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhc2hxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYXNocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFzaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFzaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhc2hxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxzZGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sc2RocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxzZGhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sc2RocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxzZGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxzZGhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sc2RoeHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGh4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sc2RoeHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxzZGh4cShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sc2RoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxzZGh4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG11bGhxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsaHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbXVsaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGxicV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbGJxX21fbl9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGxicV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbGJxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbGJxX21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnFfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbGJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGxicV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbGJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbGJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbGJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsdHFfbV9uX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGx0cV9tX25fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX25fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsdHFfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGx0cV9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGx0cV9tX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxX20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGx0cV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX25fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsdHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGx0cShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGx0cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGx0cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxbW92bmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxX21fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fczMyKSkpCmludDE2eDhfdCBfX2FybV92cW1vdm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnFfbV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92bmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm5icV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZuYnFfczMyKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm5icV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZuYnFfdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm50cV9tX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFtb3ZudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZudHFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbW92bnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm50cV9tX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3ZudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZudHFfbV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92bnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxbW92bnRxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfczMyKSkpCmludDE2eDhfdCBfX2FybV92cW1vdm50cV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZudHEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92bnRxX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdm50cV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZudHEodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX21fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bmJxX21fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVuYnFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX21fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bmJxX21fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVuYnFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92dW5icV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bmJxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92dW5icV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bmJxKHVpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX21fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bnRxX21fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVudHFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX21fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bnRxX21fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVudHFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92dW50cV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bnRxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92dW50cV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bnRxKHVpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cW5lZ3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cW5lZ3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxbmVncV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxbmVncV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cW5lZ3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFuZWdxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFuZWdxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbmVncShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxbmVncV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92cW5lZ3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxbmVncV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFuZWdxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWRocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWRocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhZGhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhZGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhZGh4cShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhZGh4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWRoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWhxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWhxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFzaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFzaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFzaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFzaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYXNocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYXNocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYXNocV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYXNocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYXNocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYXNocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhc2hxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhc2hxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbHNkaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxzZGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sc2RocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbHNkaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sc2RocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sc2RocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sc2RocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGh4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGh4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGh4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sc2RoeHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sc2RoeHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sc2RoeHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxzZGh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxzZGh4cShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sc2RoeHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbHNkaHhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtdWxocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtdWxocV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbXVsaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtdWxocShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbXVsaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbXVsaHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtdWxocShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJzaGxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscV9tX24oaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbV9uKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tX25fczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxX21fbihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscV9tX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscV9tX24odWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXJzaGxxX21fbl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXJzaGxxX21fbih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tX25fdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNobHFfbV9uKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJzaGxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNobHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaGxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXJzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFyc2hscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaGxxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNobHEoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJzaGxxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNobHEodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbl91MzIodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHEodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNobHEodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaGxxX3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFyc2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscV91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm5icV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJuYnFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJuYnFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXJzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXJzaHJuYnEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXJzaHJuYnFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXJzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hybmJxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hybmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hybmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm50cV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJudHFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXJzaHJudHFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXJzaHJudHEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXJzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXJzaHJudHEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hybnRxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hybnRxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hybnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hydW5icV9tX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocnVuYnFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJ1bmJxX21fbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9tX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hydW5icV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bmJxX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hydW5icSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVuYnFfbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJ1bmJxKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bnRxX21fbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hydW50cV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVudHFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJ1bnRxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocnVudHFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bnRxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hydW50cV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVudHEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbV9uKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX24oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fbihpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX21fbih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbV9uKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX24odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbV9yX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX3IoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfbV9yX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX3IoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX3JfczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX3IoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX21fcl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX3IodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX3JfdTMyKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbV9yKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX3JfdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fcih1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9uKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfbihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX24oaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9uKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX25fdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX24odWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfbih1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfcihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfcihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfcl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfcihpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfcih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfcl91MzIodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX3IodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfcl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9yKHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hsdXFfbV9uX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHVxX20odWludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGx1cV9tX25fczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hsdXFfbSh1aW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hsdXFfbV9uX3M4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGx1cV9tKHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHVxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGx1cShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hsdXFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHVxKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHVxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hsdXEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJuYnFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybmJxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJuYnFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybmJxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm5icV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm50cV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFzaHJudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXNocm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybnRxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJudHFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFzaHJudHEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybnRxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVuYnFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW5icV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9tX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bmJxX21fbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVuYnFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVuYnFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW5icSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bmJxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVuYnEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJ1bnRxX21fbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVudHFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hydW50cV9tX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bnRxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJ1bnRxX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVudHEodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hydW50cV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bnRxKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXN1YnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzdWJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzdWJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXN1YnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc3VicV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzdWJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc3VicV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXN1YnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzdWJxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc3VicShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzdWJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczMyKSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczY0KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zNjQpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTE2KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTE2KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3U2NCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3U2NCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTgpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3U4KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zNjQpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M2NCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zOCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zOCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91MTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91MTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UzMikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UzMikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTY0KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTY0KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91OCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTgpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3MxNikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczE2KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczMyKSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NChpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3M4KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3M4KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3UxNikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3UxNikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjQodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTMyKSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTMyKSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91NjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91NjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U4KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91OCkpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjQodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczgoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MzMikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MzMikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOChpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczY0KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczY0KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MTYpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTE2KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTMyKSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3UzMikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U2NCkpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91NjQpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczgodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91OCkpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U4KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTYoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zNjQpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zNjQpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M4KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U2NCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91NjQpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTYodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzIoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3M2NCkpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyX3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3M2NCkpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczgpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3M4KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzIoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzIodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTY0KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3U2NCkpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3U4KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTgpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zMTYpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zMTYpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zOCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczgpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UxNikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91MTYpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjQodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTgpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91OCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zMzIpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zNjQpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczgpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3UzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3U2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MTZxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjE2cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjE2cV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjE2cV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjE2cV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjMycV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2MzJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjMycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjMycV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjMycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXYzMnEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjMycShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjMycV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2MzJxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjMycV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjMycV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2MzJxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2NjRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cmV2NjRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjY0cV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2NjRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJldjY0cV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmV2NjRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjY0cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjY0cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cmV2NjRxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cmV2NjRxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjY0cV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXY2NHEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjY0cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJldjY0cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjY0cV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJldjY0cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2NjRxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2NjRxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2NjRxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjY0cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjY0cV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2NjRxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJldjY0cV94X3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmV2NjRxX3godWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cmhhZGRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJoYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJoYWRkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJoYWRkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmhhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJoYWRkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmhhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJoYWRkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmhhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJoYWRkcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmhhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJoYWRkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cmhhZGRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmhhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmhhZGRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJoYWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJoYWRkcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJoYWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJoYWRkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmhhZGRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92cmhhZGRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJoYWRkcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmhhZGRxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJoYWRkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmhhZGRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aGFxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhhcV9wX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdnJtbGFsZGF2aGFxX3AodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV91MzIpKSkKdWludDY0X3QgX19hcm1fdnJtbGFsZGF2aGFxX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXEodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhheHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXhxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhheHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXhxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXhxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXhxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9wX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZocV9wX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxX3AodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV91MzIpKSkKdWludDY0X3QgX19hcm1fdnJtbGFsZGF2aHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZocSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoeHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aHhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmh4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZoYXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGFxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhheHFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZocV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmh4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoeHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZoeHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoeHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmh4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJtdWxocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cm11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZybXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJtdWxocV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJtdWxocV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJtdWxocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJtdWxocShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cm11bGhxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZybXVsaHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cm11bGhxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZybXVsaHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZybXVsaHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZybXVsaHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJtdWxocV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cm11bGhxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJtdWxocV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92cm11bGhxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cm11bGhxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cm11bGhxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJtdWxocV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJtdWxocV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV9tX25fczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxX21fbihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX21fbihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX21fbihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfbV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxX21fbih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxX21fbl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hscV9tX24odWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaGxxX21fbl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfbV9uKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscShpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX25fczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hscSh1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfbl91MzIodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaGxxX25fdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHEodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hscV91MTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxX3hfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfeCh1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxX3hfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfeCh1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfeF91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfeCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybmJxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm5icV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cnNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJudHFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hybnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybnRxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cnNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hybnRxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm50cV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaHJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaHJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNocnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hycV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNocnEoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaHJxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hycShpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hycV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNocnFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNocnEodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNocnFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNocnEodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hycV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNocnEodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hycV94KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNocnFfeF9uX3MzMihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaHJxX3goaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNocnFfeChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycV94KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycV94X25fdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycV94KHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hycV94KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzYmNpcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY2lxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2JjaXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2JjaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzYmNpcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzYmNpcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNpcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzYmNxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2JjcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2V0cV9sYW5lX3MxNihpbnQxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzZXRxX2xhbmUoaW50MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2V0cV9sYW5lX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzZXRxX2xhbmUoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczY0KSkpCmludDY0eDJfdCBfX2FybV92c2V0cV9sYW5lX3M2NChpbnQ2NF90LCBpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZzZXRxX2xhbmUoaW50NjRfdCwgaW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzZXRxX2xhbmVfczgoaW50OF90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNldHFfbGFuZShpbnQ4X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzZXRxX2xhbmVfdTE2KHVpbnQxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNldHFfbGFuZSh1aW50MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzZXRxX2xhbmVfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNldHFfbGFuZSh1aW50MzJfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZzZXRxX2xhbmVfdTY0KHVpbnQ2NF90LCB1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnNldHFfbGFuZSh1aW50NjRfdCwgdWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNldHFfbGFuZV91OCh1aW50OF90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2V0cV9sYW5lKHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hsY3FfbV9zMTYoaW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hsY3FfbShpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxjcV9tX3MzMihpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxjcV9tKGludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hsY3FfbV9zOChpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobGNxX20oaW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGNxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hsY3FfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGNxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hsY3FfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hsY3FfbV91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hsY3FfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobGNxX3MxNihpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobGNxKGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hsY3FfczMyKGludDMyeDRfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hsY3EoaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobGNxX3M4KGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxjcShpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxjcV91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGNxKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxjcV91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGNxKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobGNxX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobGNxKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbGJxX21fbl9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbGJxX21fbl9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbGJxX20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbGJxX21fbl91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxX21fbl91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxX20odWludDE2eDhfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnEoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGxicV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsYnEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbGJxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsYnEodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbGJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbGJxX3goaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbGJxX3goaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGxicV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbGJxX3godWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGxicV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGxicV94KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfbV9uX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbV9uX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfbV9uX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGx0cV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbV9uX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbHRxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGx0cShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGx0cSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHEodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGx0cV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfeChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbHRxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbHRxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbHRxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9tX24oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbV9uKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX21fbihpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbV9uKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fbih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9tX24odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fcl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fcihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbV9yX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbV9yKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX21fcl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9tX3IoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9tX3JfdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fcih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9tX3JfdTMyKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fcih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX21fcl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX21fcih1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX24oaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX24oaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX24oaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX24odWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX25fdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9uKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbih1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9yX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9yKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX3IoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfcihpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfcl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9yKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfcl91MzIodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9yKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9yKHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfeF9uKGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfeF9uKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfeF9uKGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfeF9uKHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfeF9uX3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX3hfbih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV94X24odWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfeF91MTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfeCh1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV94X3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV94KHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfeF91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX3godWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnNocm5icV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92c2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJuYnFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnNocm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92c2hybmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJuYnFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92c2hybmJxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJuYnEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybmJxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92c2hybmJxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnNocm5icV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92c2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnNocm50cV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92c2hybnRxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybnRxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJudHEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybnRxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hycV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNocnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaHJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hycV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hycV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNocnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hycV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNocnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNocnFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hycShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaHJxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNocnEoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hycSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNocnFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaHJxKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocnEodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hycV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJxX3goaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNocnFfeF9uX3MzMihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hycV94KGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNocnFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNocnFfeChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNocnFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJxX3godWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hycV94X25fdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNocnFfeCh1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocnFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hycV94KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2xpcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNsaXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzbGlxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2xpcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2xpcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzbGlxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNsaXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzbGlxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2xpcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNsaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNsaXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2xpcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNsaXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzbGlxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2xpcV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNsaXEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNsaXFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2xpcShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzbGlxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2xpcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNsaXFfbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzbGlxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzbGlxX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNsaXEodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3JpcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNyaXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzcmlxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3JpcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3JpcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzcmlxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNyaXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzcmlxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3JpcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNyaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNyaXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3JpcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNyaXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzcmlxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3JpcV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNyaXEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNyaXFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3JpcShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzcmlxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3JpcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNyaXFfbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzcmlxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzcmlxX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNyaXEodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3BfczE2KGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczE2KSkpCnZvaWQgX19hcm1fdnN0MXFfcChpbnQxNl90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdDFxX3BfczMyKGludDMyX3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcChpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3M4KSkpCnZvaWQgX19hcm1fdnN0MXFfcF9zOChpbnQ4X3QgKiwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczgpKSkKdm9pZCBfX2FybV92c3QxcV9wKGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MTYpKSkKdm9pZCBfX2FybV92c3QxcV9wX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0MXFfcCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdDFxX3AodWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3U4KSkpCnZvaWQgX19hcm1fdnN0MXFfcF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91OCkpKQp2b2lkIF9fYXJtX3ZzdDFxX3AodWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3MxNihpbnQxNl90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczE2KSkpCnZvaWQgX19hcm1fdnN0MXEoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdDFxX3MzMihpbnQzMl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczMyKSkpCnZvaWQgX19hcm1fdnN0MXEoaW50MzJfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3M4KSkpCnZvaWQgX19hcm1fdnN0MXFfczgoaW50OF90ICosIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczgpKSkKdm9pZCBfX2FybV92c3QxcShpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MTYpKSkKdm9pZCBfX2FybV92c3QxcV91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTE2KSkpCnZvaWQgX19hcm1fdnN0MXEodWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTMyKSkpCnZvaWQgX19hcm1fdnN0MXFfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdDFxKHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3U4KSkpCnZvaWQgX19hcm1fdnN0MXFfdTgodWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91OCkpKQp2b2lkIF9fYXJtX3ZzdDFxKHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczE2KSkpCnZvaWQgX19hcm1fdnN0MnFfczE2KGludDE2X3QgKiwgaW50MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdDJxKGludDE2X3QgKiwgaW50MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdDJxX3MzMihpbnQzMl90ICosIGludDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zMzIpKSkKdm9pZCBfX2FybV92c3QycShpbnQzMl90ICosIGludDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zOCkpKQp2b2lkIF9fYXJtX3ZzdDJxX3M4KGludDhfdCAqLCBpbnQ4eDE2eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczgpKSkKdm9pZCBfX2FybV92c3QycShpbnQ4X3QgKiwgaW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdDJxX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdDJxKHVpbnQxNl90ICosIHVpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTMyKSkpCnZvaWQgX19hcm1fdnN0MnFfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTMyKSkpCnZvaWQgX19hcm1fdnN0MnEodWludDMyX3QgKiwgdWludDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91OCkpKQp2b2lkIF9fYXJtX3ZzdDJxX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZ4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91OCkpKQp2b2lkIF9fYXJtX3ZzdDJxKHVpbnQ4X3QgKiwgdWludDh4MTZ4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMTYpKSkKdm9pZCBfX2FybV92c3Q0cV9zMTYoaW50MTZfdCAqLCBpbnQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczE2KSkpCnZvaWQgX19hcm1fdnN0NHEoaW50MTZfdCAqLCBpbnQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczMyKSkpCnZvaWQgX19hcm1fdnN0NHFfczMyKGludDMyX3QgKiwgaW50MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdDRxKGludDMyX3QgKiwgaW50MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3M4KSkpCnZvaWQgX19hcm1fdnN0NHFfczgoaW50OF90ICosIGludDh4MTZ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zOCkpKQp2b2lkIF9fYXJtX3ZzdDRxKGludDhfdCAqLCBpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTE2KSkpCnZvaWQgX19hcm1fdnN0NHFfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTE2KSkpCnZvaWQgX19hcm1fdnN0NHEodWludDE2X3QgKiwgdWludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MzIpKSkKdm9pZCBfX2FybV92c3Q0cV91MzIodWludDMyX3QgKiwgdWludDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MzIpKSkKdm9pZCBfX2FybV92c3Q0cSh1aW50MzJfdCAqLCB1aW50MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3U4KSkpCnZvaWQgX19hcm1fdnN0NHFfdTgodWludDhfdCAqLCB1aW50OHgxNng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3U4KSkpCnZvaWQgX19hcm1fdnN0NHEodWludDhfdCAqLCB1aW50OHgxNng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9wX3MxNihpbnQ4X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9wKGludDhfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfczMyKGludDhfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3AoaW50OF90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9wX3M4KGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczgpKSkKdm9pZCBfX2FybV92c3RyYnFfcChpbnQ4X3QgKiwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9wX3UxNih1aW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3AodWludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9wX3UzMih1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3AodWludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfdTgodWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3AodWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zMTYpKSkKdm9pZCBfX2FybV92c3RyYnFfczE2KGludDhfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zMTYpKSkKdm9pZCBfX2FybV92c3RyYnEoaW50OF90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zMzIoaW50OF90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJicShpbnQ4X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczgpKSkKdm9pZCBfX2FybV92c3RyYnFfczgoaW50OF90ICosIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3M4KSkpCnZvaWQgX19hcm1fdnN0cmJxKGludDhfdCAqLCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MxNihpbnQ4X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wKGludDhfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKGludDhfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50OF90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3M4KGludDhfdCAqLCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczgpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcChpbnQ4X3QgKiwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UxNih1aW50OF90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDhfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UzMih1aW50OF90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDhfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTgodWludDhfdCAqLCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDhfdCAqLCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMTYpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczE2KGludDhfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMTYpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXQoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMzIoaW50OF90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldChpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczgpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczgoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3M4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KGludDhfdCAqLCB1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldCh1aW50OF90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldCh1aW50OF90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91OCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91OCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91MTYpKSkKdm9pZCBfX2FybV92c3RyYnFfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicSh1aW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91MzIpKSkKdm9pZCBfX2FybV92c3RyYnFfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicSh1aW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91OCkpKQp2b2lkIF9fYXJtX3ZzdHJicV91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91OCkpKQp2b2lkIF9fYXJtX3ZzdHJicSh1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfczY0KHVpbnQ2NHgyX3QsIGludCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3AodWludDY0eDJfdCwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF91NjQodWludDY0eDJfdCwgaW50LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3AodWludDY0eDJfdCwgaW50LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZV9zNjQodWludDY0eDJfdCwgaW50LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZSh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3U2NCh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZSh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfczY0KHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50NjR4Ml90ICosIGludCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfdTY0KHVpbnQ2NHgyX3QgKiwgaW50LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3AodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3M2NCh1aW50NjR4Ml90ICosIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2IodWludDY0eDJfdCAqLCBpbnQsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3U2NCh1aW50NjR4Ml90ICosIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3diKHVpbnQ2NHgyX3QgKiwgaW50LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfdTY0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3M2NChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX29mZnNldChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX29mZnNldF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX29mZnNldCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczY0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTY0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczY0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTY0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wX3MxNihpbnQxNl90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfcChpbnQxNl90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfcF9zMzIoaW50MTZfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3AoaW50MTZfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3AodWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfcF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfcCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfczE2KGludDE2X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxKGludDE2X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3MzMihpbnQxNl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocShpbnQxNl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wKGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MzMihpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMTYoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXQoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXQodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMihpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMTYoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV91MTYpKSkKdm9pZCBfX2FybV92c3RyaHEodWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocSh1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfcF9zMzIoaW50MzJfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3AoaW50MzJfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3BfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3AodWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3MzMihpbnQzMl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cShpbnQzMl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9zMzIodWludDMyeDRfdCwgaW50LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcCh1aW50MzJ4NF90LCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3UzMih1aW50MzJ4NF90LCBpbnQsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcCh1aW50MzJ4NF90LCBpbnQsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3MzMih1aW50MzJ4NF90LCBpbnQsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfdTMyKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9zMzIodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQzMng0X3QgKiwgaW50LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF91MzIodWludDMyeDRfdCAqLCBpbnQsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfczMyKHVpbnQzMng0X3QgKiwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yih1aW50MzJ4NF90ICosIGludCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfdTMyKHVpbnQzMng0X3QgKiwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2IodWludDMyeDRfdCAqLCBpbnQsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcChpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfczMyKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0KGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cSh1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnFfeF9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnFfeChpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV94X25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3VicV94X25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3VicV94KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicV94KHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX3hfbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3VicV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfczE2KSkpCmludDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfczMyKSkpCmludDMyeDRfdCBfX2FybV92dW5pbml0aWFsaXplZHEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfczY0KSkpCmludDY0eDJfdCBfX2FybV92dW5pbml0aWFsaXplZHEoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfczgpKSkKaW50OHgxNl90IF9fYXJtX3Z1bmluaXRpYWxpemVkcShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY191MTYpKSkKdWludDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxKHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY191OCkpKQp1aW50OHgxNl90IF9fYXJtX3Z1bmluaXRpYWxpemVkcSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHFfczE2KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3MzMigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV9zNjQoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV9zOCgpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHFfdTE2KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV91MzIoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3U2NCgpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV91OCgpOwoKI2lmIChfX0FSTV9GRUFUVVJFX01WRSAmIDIpCgp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CnR5cGVkZWYgZmxvYXQgZmxvYXQzMl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDgpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGZsb2F0MTZfdCBmbG9hdDE2eDhfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBmbG9hdDE2eDhfdCB2YWxbMl07IH0gZmxvYXQxNng4eDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBmbG9hdDE2eDhfdCB2YWxbNF07IH0gZmxvYXQxNng4eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg0KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBmbG9hdDMyX3QgZmxvYXQzMng0X3Q7CnR5cGVkZWYgc3RydWN0IHsgZmxvYXQzMng0X3QgdmFsWzJdOyB9IGZsb2F0MzJ4NHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgZmxvYXQzMng0X3QgdmFsWzRdOyB9IGZsb2F0MzJ4NHg0X3Q7CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJkcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFiZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFiZHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYmRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFiZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJkcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFiZHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJkcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFiZHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYmRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYmRxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJkcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFic3FfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFic3EoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJzcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJzcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFic3FfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYnNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJzcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJzcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJzcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX3hfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX3hfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFuZHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhbmRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhbmRxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YW5kcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhbmRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFuZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhbmRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFuZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhbmRxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YW5kcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YW5kcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFuZHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZiaWNxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YmljcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YmljcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJpY3EoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YmljcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZiaWNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YmljcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZiaWNxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YmljcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJpY3FfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJpY3FfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZiaWNxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZicnNycV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YnJzcnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJyc3JxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZicnNycV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJyc3JxX25fZjE2KGZsb2F0MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJyc3JxKGZsb2F0MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJyc3JxX25fZjMyKGZsb2F0MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJyc3JxKGZsb2F0MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YnJzcnFfeF9uX2YxNihmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YnJzcnFfeChmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YnJzcnFfeF9uX2YzMihmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YnJzcnFfeChmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90MTgwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90MTgwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3QxODAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90MTgwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90MTgwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDI3MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDkwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDkwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3Q5MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3Q5MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90OTBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QxODBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDE4MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MTgwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MTgwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QxODBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QxODBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDE4MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QyNzAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MjcwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MjcwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90OTAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90OTBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDkwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3Q5MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3Q5MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3Q5MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNyZWF0ZXFfZjE2KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjcmVhdGVxX2YzMih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRhcV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0YXFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRhcV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0YXFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0YXFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0YXFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dGFxX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dGFxX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRhcV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dGFxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dGFxX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dGFxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRhcV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3hfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dGFxX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dGFxX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dGFxX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfZjE2X2YzMikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0YnFfZjE2X2YzMihmbG9hdDE2eDhfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRicV9mMzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfbV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRicV9tX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9tX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dGJxX21fZjMyX2YxNihmbG9hdDMyeDRfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX3hfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0YnFfeF9mMzJfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRtcV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0bXFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRtcV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0bXFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bXFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bXFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG1xX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG1xX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRtcV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG1xX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG1xX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRtcV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3hfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG1xX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG1xX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG1xX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0bnFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dG5xX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0bnFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG5xX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG5xX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG5xX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRucV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRucV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0bnFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRucV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRucV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0bnFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRucV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRucV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRucV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHBxX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRwcV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHBxX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRwcV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRwcV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRwcV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cHFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cHFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHBxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cHFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cHFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3hfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHBxX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cHFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cHFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cHFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfZjE2X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX2YxNl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX2YzMl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX21fZjE2X3MxNihmbG9hdDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9tKGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX21fZjE2X3UxNihmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbShmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbV9mMzJfczMyKGZsb2F0MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX20oZmxvYXQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbV9mMzJfdTMyKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX21fbl9mMTZfczE2KGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9tX24oZmxvYXQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX21fbl9mMTZfdTE2KGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbV9uKGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbV9uX2YzMl9zMzIoZmxvYXQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX21fbihmbG9hdDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbV9uX2YzMl91MzIoZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tX24oZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHFfbV9uX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV9tX24oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV9tX25fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRxX21fbihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cV9tX25fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfbV9uKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cV9tX25fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dHFfbV9uKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRxX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRxX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRxX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9uX2YxNl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9uKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbl9mMTZfdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX24odWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbl9mMzJfczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX25fZjMyX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9uKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV9uX3MxNl9mMTYoZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV9uX3MzMl9mMzIoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfbl91MTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX25fdTMyX2YzMihmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94X2YxNl9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfeF9mMTZfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeF9mMzJfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX3hfZjMyX3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV94KHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfeF9uX2YxNl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfeF9uKGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX3hfbl9mMTZfdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94X24odWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX3hfbl9mMzJfczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX3hfbihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV94X25fZjMyX3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeF9uKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHFfeF9uX3MxNl9mMTYoZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHFfeF9uX3MzMl9mMzIoZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRxX3hfbl91MTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cV94X25fdTMyX2YzMihmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRxX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHRxX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0dHFfZjMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX21fZjE2X2YzMikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0dHFfbV9mMTZfZjMyKGZsb2F0MTZ4OF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfbV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnR0cV9tX2YzMl9mMTYoZmxvYXQzMng0X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV94X2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHRxX3hfZjMyX2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZkdXBxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZkdXBxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZkdXBxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZkdXBxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZHVwcV9uX2YxNihmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZkdXBxX25fZjMyKGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZHVwcV94X25fZjE2KGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZkdXBxX3hfbl9mMzIoZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZW9ycV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmVvcnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmVvcnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zlb3JxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmVvcnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZW9ycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmVvcnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92ZW9ycV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmVvcnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zlb3JxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zlb3JxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92ZW9ycV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFzcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFzcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFzcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFzcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hc3Ffbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hc3EoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hc3Ffbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hc3EoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1zcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbXNxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1zcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbXNxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbXNxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtc3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbXNxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtc3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92Z2V0cV9sYW5lX2YxNihmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdmdldHFfbGFuZShmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdmdldHFfbGFuZV9mMzIoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZnZXRxX2xhbmUoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZDFxX2YxNihjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZDFxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkMXFfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkMXEoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZDFxX3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZDFxX3ooY29uc3QgZmxvYXQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkMXFfel9mMzIoY29uc3QgZmxvYXQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkMXFfeihjb25zdCBmbG9hdDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMTYpKSkKZmxvYXQxNng4eDJfdCBfX2FybV92bGQycV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YxNikpKQpmbG9hdDE2eDh4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMzIpKSkKZmxvYXQzMng0eDJfdCBfX2FybV92bGQycV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YzMikpKQpmbG9hdDMyeDR4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMTYpKSkKZmxvYXQxNng4eDRfdCBfX2FybV92bGQ0cV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YxNikpKQpmbG9hdDE2eDh4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMzIpKSkKZmxvYXQzMng0eDRfdCBfX2FybV92bGQ0cV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YzMikpKQpmbG9hdDMyeDR4NF90IF9fYXJtX3ZsZDRxKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2VfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV9mMzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl9mMzIodWludDMyeDRfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel9mMzIodWludDMyeDRfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X2YzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF96KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMzIoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1heG5tYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubWFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubWFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1hcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tYXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm1hdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1heG5tYXZxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm1hdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm1hdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtYXhubWF2cV9wKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm1hdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubWF2cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1heG5tcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1xKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1heG5tcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1xX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tdnFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm12cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm12cShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm12cV9wX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm12cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtaW5ubWFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1hcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1hcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubWF2cV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tYXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtaW5ubWF2cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tYXZxKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tYXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWlubm1hdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tYXZxX3BfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm1hdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtaW5ubXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtaW5ubXFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubXFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tdnFfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubXZxX3AoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV94X25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV94X25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZuZWdxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZuZWdxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm5lZ3FfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm5lZ3EoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZuZWdxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bmVncV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm5lZ3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm5lZ3FfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm5lZ3FfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JucV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ybnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ybnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zvcm5xKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ybnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JucV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ybnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JucV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ybnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zvcm5xX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zvcm5xX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JucV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ycnFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZvcnJxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZvcnJxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JycShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZvcnJxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ycnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZvcnJxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ycnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZvcnJxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JycV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JycV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ycnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cHNlbHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zwc2VscShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cHNlbHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zwc2VscShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3MzMikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M2NCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zNjQpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zOCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M4KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTY0KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91NjQpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTgpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTgpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M2NCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zNjQpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zOCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M4KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTY0KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91NjQpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTgpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTgpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YzMikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9mMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9mMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjE2KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X2YxNikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMTYpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfZjMyKSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMzIpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YzMikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMzIpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjE2KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMTYpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMzIpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMTYpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMTYpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXYzMnFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2MzJxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXYzMnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjMycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXYzMnFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2MzJxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjY0cV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXY2NHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmV2NjRxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXY2NHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjY0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZXY2NHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJldjY0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXY2NHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2NjRxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmV2NjRxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJldjY0cV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZGFxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZGFxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kYXEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRhcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRhcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZGFxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZGFxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kYXFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRtcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRtcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG1xKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRtcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRtcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG1xX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbnFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbnFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRucShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG5xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG5xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbnFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbnFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRucV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHBxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHBxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcHEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRwcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRwcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHBxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHBxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcHFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5keHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5keHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmR4cShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHhxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHhxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5keHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5keHFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmR4cV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzZXRxX2xhbmVfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnNldHFfbGFuZShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzZXRxX2xhbmVfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnNldHFfbGFuZShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDFxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjMyKSkpCnZvaWQgX19hcm1fdnN0MXFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjMyKSkpCnZvaWQgX19hcm1fdnN0MXEoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3BfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3AoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcF9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcChmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjE2KSkpCnZvaWQgX19hcm1fdnN0MnFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMTYpKSkKdm9pZCBfX2FybV92c3QycShmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjMyKSkpCnZvaWQgX19hcm1fdnN0MnFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMzIpKSkKdm9pZCBfX2FybV92c3QycShmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjE2KSkpCnZvaWQgX19hcm1fdnN0NHFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMTYpKSkKdm9pZCBfX2FybV92c3Q0cShmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjMyKSkpCnZvaWQgX19hcm1fdnN0NHFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMzIpKSkKdm9pZCBfX2FybV92c3Q0cShmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3BfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfcChmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9mMTYoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcChmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cShmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9wX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3AoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9mMzIodWludDMyeDRfdCwgaW50LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfZjMyKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcCh1aW50MzJ4NF90LCBpbnQsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9mMzIodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2IodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX2YzMih1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9mMzIoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0KGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcChmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV94X25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV94X25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHFfZjE2KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92dW5pbml0aWFsaXplZHFfZjMyKCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92dW5pbml0aWFsaXplZHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxKGZsb2F0MzJ4NF90KTsKCiNlbmRpZiAvKiAoX19BUk1fRkVBVFVSRV9NVkUgJiAyKSAqLwoKI2lmICghZGVmaW5lZCBfX0FSTV9NVkVfUFJFU0VSVkVfVVNFUl9OQU1FU1BBQ0UpCgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX2FzcmwpKSkKaW50NjRfdCBhc3JsKGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX2xzbGwpKSkKdWludDY0X3QgbHNsbCh1aW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3Fyc2hyKSkpCmludDMyX3Qgc3Fyc2hyKGludDMyX3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3NxcnNocmwpKSkKaW50NjRfdCBzcXJzaHJsKGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3NxcnNocmxfc2F0NDgpKSkKaW50NjRfdCBzcXJzaHJsX3NhdDQ4KGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Nxc2hsKSkpCmludDMyX3Qgc3FzaGwoaW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXNobGwpKSkKaW50NjRfdCBzcXNobGwoaW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcnNocikpKQppbnQzMl90IHNyc2hyKGludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3JzaHJsKSkpCmludDY0X3Qgc3JzaHJsKGludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFyc2hsKSkpCnVpbnQzMl90IHVxcnNobCh1aW50MzJfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFyc2hsbCkpKQp1aW50NjRfdCB1cXJzaGxsKHVpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXJzaGxsX3NhdDQ4KSkpCnVpbnQ2NF90IHVxcnNobGxfc2F0NDgodWludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vxc2hsKSkpCnVpbnQzMl90IHVxc2hsKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vxc2hsbCkpKQp1aW50NjRfdCB1cXNobGwodWludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXJzaHIpKSkKdWludDMyX3QgdXJzaHIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXJzaHJsKSkpCnVpbnQ2NF90IHVyc2hybCh1aW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMTYpKSkKdWludDMyX3QgdmFiYXZxX3BfczE2KHVpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMTYpKSkKdWludDMyX3QgdmFiYXZxX3AodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MzMikpKQp1aW50MzJfdCB2YWJhdnFfcF9zMzIodWludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MzMikpKQp1aW50MzJfdCB2YWJhdnFfcCh1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczgpKSkKdWludDMyX3QgdmFiYXZxX3BfczgodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3M4KSkpCnVpbnQzMl90IHZhYmF2cV9wKHVpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MTYpKSkKdWludDMyX3QgdmFiYXZxX3BfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UxNikpKQp1aW50MzJfdCB2YWJhdnFfcCh1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MzIpKSkKdWludDMyX3QgdmFiYXZxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UzMikpKQp1aW50MzJfdCB2YWJhdnFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91OCkpKQp1aW50MzJfdCB2YWJhdnFfcF91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91OCkpKQp1aW50MzJfdCB2YWJhdnFfcCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczE2KSkpCnVpbnQzMl90IHZhYmF2cV9zMTYodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczE2KSkpCnVpbnQzMl90IHZhYmF2cSh1aW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMzIpKSkKdWludDMyX3QgdmFiYXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMzIpKSkKdWludDMyX3QgdmFiYXZxKHVpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3M4KSkpCnVpbnQzMl90IHZhYmF2cV9zOCh1aW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zOCkpKQp1aW50MzJfdCB2YWJhdnEodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTE2KSkpCnVpbnQzMl90IHZhYmF2cV91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MTYpKSkKdWludDMyX3QgdmFiYXZxKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTMyKSkpCnVpbnQzMl90IHZhYmF2cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MzIpKSkKdWludDMyX3QgdmFiYXZxKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTgpKSkKdWludDMyX3QgdmFiYXZxX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTgpKSkKdWludDMyX3QgdmFiYXZxKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MxNikpKQppbnQxNng4X3QgdmFiZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MxNikpKQppbnQxNng4X3QgdmFiZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczMyKSkpCmludDMyeDRfdCB2YWJkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczMyKSkpCmludDMyeDRfdCB2YWJkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zOCkpKQppbnQ4eDE2X3QgdmFiZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczgpKSkKaW50OHgxNl90IHZhYmRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZhYmRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MTYpKSkKdWludDE2eDhfdCB2YWJkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MzIpKSkKdWludDMyeDRfdCB2YWJkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFiZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTgpKSkKdWludDh4MTZfdCB2YWJkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91OCkpKQp1aW50OHgxNl90IHZhYmRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zMTYpKSkKaW50MTZ4OF90IHZhYmRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczE2KSkpCmludDE2eDhfdCB2YWJkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczMyKSkpCmludDMyeDRfdCB2YWJkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3MzMikpKQppbnQzMng0X3QgdmFiZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3M4KSkpCmludDh4MTZfdCB2YWJkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczgpKSkKaW50OHgxNl90IHZhYmRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91MTYpKSkKdWludDE2eDhfdCB2YWJkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTE2KSkpCnVpbnQxNng4X3QgdmFiZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTMyKSkpCnVpbnQzMng0X3QgdmFiZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3UzMikpKQp1aW50MzJ4NF90IHZhYmRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3U4KSkpCnVpbnQ4eDE2X3QgdmFiZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTgpKSkKdWludDh4MTZfdCB2YWJkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3MxNikpKQppbnQxNng4X3QgdmFiZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZhYmRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMzIpKSkKaW50MzJ4NF90IHZhYmRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczMyKSkpCmludDMyeDRfdCB2YWJkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczgpKSkKaW50OHgxNl90IHZhYmRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zOCkpKQppbnQ4eDE2X3QgdmFiZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3UxNikpKQp1aW50MTZ4OF90IHZhYmRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MTYpKSkKdWludDE2eDhfdCB2YWJkcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MzIpKSkKdWludDMyeDRfdCB2YWJkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmFiZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTgpKSkKdWludDh4MTZfdCB2YWJkcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91OCkpKQp1aW50OHgxNl90IHZhYmRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3MxNikpKQppbnQxNng4X3QgdmFic3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMTYpKSkKaW50MTZ4OF90IHZhYnNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMzIpKSkKaW50MzJ4NF90IHZhYnNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczMyKSkpCmludDMyeDRfdCB2YWJzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczgpKSkKaW50OHgxNl90IHZhYnNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zOCkpKQppbnQ4eDE2X3QgdmFic3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMTYpKSkKaW50MTZ4OF90IHZhYnNxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MxNikpKQppbnQxNng4X3QgdmFic3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMzIpKSkKaW50MzJ4NF90IHZhYnNxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MzMikpKQppbnQzMng0X3QgdmFic3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zOCkpKQppbnQ4eDE2X3QgdmFic3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zOCkpKQppbnQ4eDE2X3QgdmFic3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MxNikpKQppbnQxNng4X3QgdmFic3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczE2KSkpCmludDE2eDhfdCB2YWJzcV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MzMikpKQppbnQzMng0X3QgdmFic3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczMyKSkpCmludDMyeDRfdCB2YWJzcV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3M4KSkpCmludDh4MTZfdCB2YWJzcV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3M4KSkpCmludDh4MTZfdCB2YWJzcV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV9zMzIpKSkKaW50MzJ4NF90IHZhZGNpcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9tX3MzMikpKQppbnQzMng0X3QgdmFkY2lxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV91MzIpKSkKdWludDMyeDRfdCB2YWRjaXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV91MzIpKSkKdWludDMyeDRfdCB2YWRjaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9zMzIpKSkKaW50MzJ4NF90IHZhZGNpcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9zMzIpKSkKaW50MzJ4NF90IHZhZGNpcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3UzMikpKQp1aW50MzJ4NF90IHZhZGNpcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3UzMikpKQp1aW50MzJ4NF90IHZhZGNpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3MzMikpKQppbnQzMng0X3QgdmFkY3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3MzMikpKQppbnQzMng0X3QgdmFkY3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFkY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhZGNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9zMzIpKSkKaW50MzJ4NF90IHZhZGNxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfczMyKSkpCmludDMyeDRfdCB2YWRjcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfdTMyKSkpCnVpbnQzMng0X3QgdmFkY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX3UzMikpKQp1aW50MzJ4NF90IHZhZGNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfczMyKSkpCmludDY0X3QgdmFkZGx2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfczMyKSkpCmludDY0X3QgdmFkZGx2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF91MzIpKSkKdWludDY0X3QgdmFkZGx2YXFfcF91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF91MzIpKSkKdWludDY0X3QgdmFkZGx2YXFfcCh1aW50NjRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9zMzIpKSkKaW50NjRfdCB2YWRkbHZhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9zMzIpKSkKaW50NjRfdCB2YWRkbHZhcShpbnQ2NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3UzMikpKQp1aW50NjRfdCB2YWRkbHZhcV91MzIodWludDY0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3UzMikpKQp1aW50NjRfdCB2YWRkbHZhcSh1aW50NjRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9wX3MzMikpKQppbnQ2NF90IHZhZGRsdnFfcF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF9zMzIpKSkKaW50NjRfdCB2YWRkbHZxX3AoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF91MzIpKSkKdWludDY0X3QgdmFkZGx2cV9wX3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF91MzIpKSkKdWludDY0X3QgdmFkZGx2cV9wKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9zMzIpKSkKaW50NjRfdCB2YWRkbHZxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfczMyKSkpCmludDY0X3QgdmFkZGx2cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfdTMyKSkpCnVpbnQ2NF90IHZhZGRsdnFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfdTMyKSkpCnVpbnQ2NF90IHZhZGRsdnEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgdmFkZHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczE2KSkpCmludDE2eDhfdCB2YWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgdmFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczgpKSkKaW50OHgxNl90IHZhZGRxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IHZhZGRxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IHZhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MxNikpKQppbnQxNng4X3QgdmFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MxNikpKQppbnQxNng4X3QgdmFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczMyKSkpCmludDMyeDRfdCB2YWRkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczMyKSkpCmludDMyeDRfdCB2YWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczgpKSkKaW50OHgxNl90IHZhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MTYpKSkKdWludDE2eDhfdCB2YWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2YWRkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTgpKSkKdWludDh4MTZfdCB2YWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MxNikpKQppbnQxNng4X3QgdmFkZHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MxNikpKQppbnQxNng4X3QgdmFkZHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MzMikpKQppbnQzMng0X3QgdmFkZHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MzMikpKQppbnQzMng0X3QgdmFkZHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3M4KSkpCmludDh4MTZfdCB2YWRkcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3M4KSkpCmludDh4MTZfdCB2YWRkcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91OCkpKQp1aW50OHgxNl90IHZhZGRxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91OCkpKQp1aW50OHgxNl90IHZhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3MxNikpKQppbnQxNng4X3QgdmFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMTYpKSkKaW50MTZ4OF90IHZhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczMyKSkpCmludDMyeDRfdCB2YWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczgpKSkKaW50OHgxNl90IHZhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zOCkpKQppbnQ4eDE2X3QgdmFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MTYpKSkKdWludDE2eDhfdCB2YWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MzIpKSkKdWludDMyeDRfdCB2YWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTMyKSkpCnVpbnQzMng0X3QgdmFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTgpKSkKdWludDh4MTZfdCB2YWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91OCkpKQp1aW50OHgxNl90IHZhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZhZGRxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZhZGRxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmFkZHFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmFkZHFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTgpKSkKdWludDh4MTZfdCB2YWRkcV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTgpKSkKdWludDh4MTZfdCB2YWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZhZGRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczE2KSkpCmludDE2eDhfdCB2YWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczMyKSkpCmludDMyeDRfdCB2YWRkcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3MzMikpKQppbnQzMng0X3QgdmFkZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3M4KSkpCmludDh4MTZfdCB2YWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczgpKSkKaW50OHgxNl90IHZhZGRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91MTYpKSkKdWludDE2eDhfdCB2YWRkcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmFkZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTgpKSkKdWludDh4MTZfdCB2YWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3MxNikpKQppbnQzMl90IHZhZGR2YXFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMTYpKSkKaW50MzJfdCB2YWRkdmFxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMzIpKSkKaW50MzJfdCB2YWRkdmFxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczMyKSkpCmludDMyX3QgdmFkZHZhcV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczgpKSkKaW50MzJfdCB2YWRkdmFxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zOCkpKQppbnQzMl90IHZhZGR2YXFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3UxNikpKQp1aW50MzJfdCB2YWRkdmFxX3BfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MTYpKSkKdWludDMyX3QgdmFkZHZhcV9wKHVpbnQzMl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MzIpKSkKdWludDMyX3QgdmFkZHZhcV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTMyKSkpCnVpbnQzMl90IHZhZGR2YXFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTgpKSkKdWludDMyX3QgdmFkZHZhcV9wX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91OCkpKQp1aW50MzJfdCB2YWRkdmFxX3AodWludDMyX3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zMTYpKSkKaW50MzJfdCB2YWRkdmFxX3MxNihpbnQzMl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczE2KSkpCmludDMyX3QgdmFkZHZhcShpbnQzMl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczMyKSkpCmludDMyX3QgdmFkZHZhcV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3MzMikpKQppbnQzMl90IHZhZGR2YXEoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3M4KSkpCmludDMyX3QgdmFkZHZhcV9zOChpbnQzMl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczgpKSkKaW50MzJfdCB2YWRkdmFxKGludDMyX3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91MTYpKSkKdWludDMyX3QgdmFkZHZhcV91MTYodWludDMyX3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTE2KSkpCnVpbnQzMl90IHZhZGR2YXEodWludDMyX3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTMyKSkpCnVpbnQzMl90IHZhZGR2YXFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3UzMikpKQp1aW50MzJfdCB2YWRkdmFxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3U4KSkpCnVpbnQzMl90IHZhZGR2YXFfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTgpKSkKdWludDMyX3QgdmFkZHZhcSh1aW50MzJfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczE2KSkpCmludDMyX3QgdmFkZHZxX3BfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMTYpKSkKaW50MzJfdCB2YWRkdnFfcChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczMyKSkpCmludDMyX3QgdmFkZHZxX3BfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMzIpKSkKaW50MzJfdCB2YWRkdnFfcChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczgpKSkKaW50MzJfdCB2YWRkdnFfcF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczgpKSkKaW50MzJfdCB2YWRkdnFfcChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTE2KSkpCnVpbnQzMl90IHZhZGR2cV9wX3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UxNikpKQp1aW50MzJfdCB2YWRkdnFfcCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UzMikpKQp1aW50MzJfdCB2YWRkdnFfcF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91MzIpKSkKdWludDMyX3QgdmFkZHZxX3AodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91OCkpKQp1aW50MzJfdCB2YWRkdnFfcF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3U4KSkpCnVpbnQzMl90IHZhZGR2cV9wKHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MxNikpKQppbnQzMl90IHZhZGR2cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczE2KSkpCmludDMyX3QgdmFkZHZxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MzMikpKQppbnQzMl90IHZhZGR2cV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczMyKSkpCmludDMyX3QgdmFkZHZxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3M4KSkpCmludDMyX3QgdmFkZHZxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3M4KSkpCmludDMyX3QgdmFkZHZxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3UxNikpKQp1aW50MzJfdCB2YWRkdnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MTYpKSkKdWludDMyX3QgdmFkZHZxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MzIpKSkKdWludDMyX3QgdmFkZHZxX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTMyKSkpCnVpbnQzMl90IHZhZGR2cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTgpKSkKdWludDMyX3QgdmFkZHZxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91OCkpKQp1aW50MzJfdCB2YWRkdnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZhbmRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZhbmRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MzMikpKQppbnQzMng0X3QgdmFuZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MzMikpKQppbnQzMng0X3QgdmFuZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczgpKSkKaW50OHgxNl90IHZhbmRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3M4KSkpCmludDh4MTZfdCB2YW5kcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91MTYpKSkKdWludDE2eDhfdCB2YW5kcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTE2KSkpCnVpbnQxNng4X3QgdmFuZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFuZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhbmRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmFuZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTgpKSkKdWludDh4MTZfdCB2YW5kcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczE2KSkpCmludDE2eDhfdCB2YW5kcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MxNikpKQppbnQxNng4X3QgdmFuZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MzMikpKQppbnQzMng0X3QgdmFuZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zMzIpKSkKaW50MzJ4NF90IHZhbmRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zOCkpKQppbnQ4eDE2X3QgdmFuZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3M4KSkpCmludDh4MTZfdCB2YW5kcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTE2KSkpCnVpbnQxNng4X3QgdmFuZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UxNikpKQp1aW50MTZ4OF90IHZhbmRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UzMikpKQp1aW50MzJ4NF90IHZhbmRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91MzIpKSkKdWludDMyeDRfdCB2YW5kcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91OCkpKQp1aW50OHgxNl90IHZhbmRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3U4KSkpCnVpbnQ4eDE2X3QgdmFuZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZhbmRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczE2KSkpCmludDE2eDhfdCB2YW5kcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczMyKSkpCmludDMyeDRfdCB2YW5kcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3MzMikpKQppbnQzMng0X3QgdmFuZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3M4KSkpCmludDh4MTZfdCB2YW5kcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczgpKSkKaW50OHgxNl90IHZhbmRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91MTYpKSkKdWludDE2eDhfdCB2YW5kcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmFuZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmFuZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3UzMikpKQp1aW50MzJ4NF90IHZhbmRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3U4KSkpCnVpbnQ4eDE2X3QgdmFuZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTgpKSkKdWludDh4MTZfdCB2YW5kcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MxNikpKQppbnQxNng4X3QgdmJpY3FfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MxNikpKQppbnQxNng4X3QgdmJpY3FfbV9uKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczMyKSkpCmludDMyeDRfdCB2YmljcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczMyKSkpCmludDMyeDRfdCB2YmljcV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MTYpKSkKdWludDE2eDhfdCB2YmljcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MTYpKSkKdWludDE2eDhfdCB2YmljcV9tX24odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxX21fbih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MxNikpKQppbnQxNng4X3QgdmJpY3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MxNikpKQppbnQxNng4X3QgdmJpY3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczMyKSkpCmludDMyeDRfdCB2YmljcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczMyKSkpCmludDMyeDRfdCB2YmljcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zOCkpKQppbnQ4eDE2X3QgdmJpY3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczgpKSkKaW50OHgxNl90IHZiaWNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MTYpKSkKdWludDE2eDhfdCB2YmljcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MzIpKSkKdWludDMyeDRfdCB2YmljcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTMyKSkpCnVpbnQzMng0X3QgdmJpY3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTgpKSkKdWludDh4MTZfdCB2YmljcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91OCkpKQp1aW50OHgxNl90IHZiaWNxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MxNikpKQppbnQxNng4X3QgdmJpY3Ffbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MxNikpKQppbnQxNng4X3QgdmJpY3EoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MzMikpKQppbnQzMng0X3QgdmJpY3Ffbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MzMikpKQppbnQzMng0X3QgdmJpY3EoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zMTYpKSkKaW50MTZ4OF90IHZiaWNxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczE2KSkpCmludDE2eDhfdCB2YmljcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczMyKSkpCmludDMyeDRfdCB2YmljcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3MzMikpKQppbnQzMng0X3QgdmJpY3EoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3M4KSkpCmludDh4MTZfdCB2YmljcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczgpKSkKaW50OHgxNl90IHZiaWNxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91MTYpKSkKdWludDE2eDhfdCB2YmljcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTE2KSkpCnVpbnQxNng4X3QgdmJpY3EodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTMyKSkpCnVpbnQzMng0X3QgdmJpY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3U4KSkpCnVpbnQ4eDE2X3QgdmJpY3FfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTgpKSkKdWludDh4MTZfdCB2YmljcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3MxNikpKQppbnQxNng4X3QgdmJpY3FfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMTYpKSkKaW50MTZ4OF90IHZiaWNxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczMyKSkpCmludDMyeDRfdCB2YmljcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczgpKSkKaW50OHgxNl90IHZiaWNxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zOCkpKQppbnQ4eDE2X3QgdmJpY3FfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MTYpKSkKdWludDE2eDhfdCB2YmljcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MzIpKSkKdWludDMyeDRfdCB2YmljcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmJpY3FfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTgpKSkKdWludDh4MTZfdCB2YmljcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91OCkpKQp1aW50OHgxNl90IHZiaWNxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MxNikpKQppbnQxNng4X3QgdmJyc3JxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZicnNycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczMyKSkpCmludDMyeDRfdCB2YnJzcnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MzMikpKQppbnQzMng0X3QgdmJyc3JxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmJyc3JxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3M4KSkpCmludDh4MTZfdCB2YnJzcnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZicnNycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91MTYpKSkKdWludDE2eDhfdCB2YnJzcnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmJyc3JxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZicnNycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91OCkpKQp1aW50OHgxNl90IHZicnNycV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmJyc3JxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMTYpKSkKaW50MTZ4OF90IHZicnNycV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3MxNikpKQppbnQxNng4X3QgdmJyc3JxKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczMyKSkpCmludDMyeDRfdCB2YnJzcnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMzIpKSkKaW50MzJ4NF90IHZicnNycShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3M4KSkpCmludDh4MTZfdCB2YnJzcnFfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3M4KSkpCmludDh4MTZfdCB2YnJzcnEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MTYpKSkKdWludDE2eDhfdCB2YnJzcnFfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTE2KSkpCnVpbnQxNng4X3QgdmJyc3JxKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3UzMikpKQp1aW50MzJ4NF90IHZicnNycV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MzIpKSkKdWludDMyeDRfdCB2YnJzcnEodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTgpKSkKdWludDh4MTZfdCB2YnJzcnFfbl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91OCkpKQp1aW50OHgxNl90IHZicnNycSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MxNikpKQppbnQxNng4X3QgdmJyc3JxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczE2KSkpCmludDE2eDhfdCB2YnJzcnFfeChpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZicnNycV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MzMikpKQppbnQzMng0X3QgdmJyc3JxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczgpKSkKaW50OHgxNl90IHZicnNycV94X25fczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczgpKSkKaW50OHgxNl90IHZicnNycV94KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZicnNycV94X25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2YnJzcnFfeCh1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmJyc3JxX3hfbl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZicnNycV94KHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91OCkpKQp1aW50OHgxNl90IHZicnNycV94X25fdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmJyc3JxX3godWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90MjcwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDI3MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDI3MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDI3MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90MjcwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDI3MF9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90MjcwX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDI3MF9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90MjcwX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDI3MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90MjcwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDI3MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90MjcwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90MjcwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90MjcwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDI3MCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDI3MCh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDI3MF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDI3MCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90MjcwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90MjcwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3QyNzBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3QyNzBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDI3MF94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90MjcwX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDI3MF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90MjcwX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3Q5MF9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDkwX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3Q5MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTBfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTBfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MF9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MF9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90OTBfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90OTBfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90OTAoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3Q5MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3Q5MChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90OTBfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDkwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDkwX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDkwKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90OTBfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90OTAodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3Q5MCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3Q5MF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3Q5MF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3Q5MF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90OTBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTBfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTBfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90OTBfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3MxNikpKQppbnQxNng4X3QgdmNsc3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMTYpKSkKaW50MTZ4OF90IHZjbHNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMzIpKSkKaW50MzJ4NF90IHZjbHNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczMyKSkpCmludDMyeDRfdCB2Y2xzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczgpKSkKaW50OHgxNl90IHZjbHNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zOCkpKQppbnQ4eDE2X3QgdmNsc3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMTYpKSkKaW50MTZ4OF90IHZjbHNxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MxNikpKQppbnQxNng4X3QgdmNsc3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMzIpKSkKaW50MzJ4NF90IHZjbHNxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MzMikpKQppbnQzMng0X3QgdmNsc3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zOCkpKQppbnQ4eDE2X3QgdmNsc3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zOCkpKQppbnQ4eDE2X3QgdmNsc3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MxNikpKQppbnQxNng4X3QgdmNsc3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczE2KSkpCmludDE2eDhfdCB2Y2xzcV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MzMikpKQppbnQzMng0X3QgdmNsc3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczMyKSkpCmludDMyeDRfdCB2Y2xzcV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3M4KSkpCmludDh4MTZfdCB2Y2xzcV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3M4KSkpCmludDh4MTZfdCB2Y2xzcV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3MxNikpKQppbnQxNng4X3QgdmNsenFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMTYpKSkKaW50MTZ4OF90IHZjbHpxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMzIpKSkKaW50MzJ4NF90IHZjbHpxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczMyKSkpCmludDMyeDRfdCB2Y2x6cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczgpKSkKaW50OHgxNl90IHZjbHpxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zOCkpKQppbnQ4eDE2X3QgdmNsenFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3UxNikpKQp1aW50MTZ4OF90IHZjbHpxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MTYpKSkKdWludDE2eDhfdCB2Y2x6cV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MzIpKSkKdWludDMyeDRfdCB2Y2x6cV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTMyKSkpCnVpbnQzMng0X3QgdmNsenFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTgpKSkKdWludDh4MTZfdCB2Y2x6cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91OCkpKQp1aW50OHgxNl90IHZjbHpxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMTYpKSkKaW50MTZ4OF90IHZjbHpxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MxNikpKQppbnQxNng4X3QgdmNsenEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMzIpKSkKaW50MzJ4NF90IHZjbHpxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MzMikpKQppbnQzMng0X3QgdmNsenEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zOCkpKQppbnQ4eDE2X3QgdmNsenFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zOCkpKQppbnQ4eDE2X3QgdmNsenEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91MTYpKSkKdWludDE2eDhfdCB2Y2x6cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTE2KSkpCnVpbnQxNng4X3QgdmNsenEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTMyKSkpCnVpbnQzMng0X3QgdmNsenFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3UzMikpKQp1aW50MzJ4NF90IHZjbHpxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3U4KSkpCnVpbnQ4eDE2X3QgdmNsenFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTgpKSkKdWludDh4MTZfdCB2Y2x6cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MxNikpKQppbnQxNng4X3QgdmNsenFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczE2KSkpCmludDE2eDhfdCB2Y2x6cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MzMikpKQppbnQzMng0X3QgdmNsenFfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczMyKSkpCmludDMyeDRfdCB2Y2x6cV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3M4KSkpCmludDh4MTZfdCB2Y2x6cV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3M4KSkpCmludDh4MTZfdCB2Y2x6cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3UxNikpKQp1aW50MTZ4OF90IHZjbHpxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MTYpKSkKdWludDE2eDhfdCB2Y2x6cV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MzIpKSkKdWludDMyeDRfdCB2Y2x6cV94X3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmNsenFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTgpKSkKdWludDh4MTZfdCB2Y2x6cV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91OCkpKQp1aW50OHgxNl90IHZjbHpxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3EodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3MxNikpKQppbnQxNng4X3QgdmNyZWF0ZXFfczE2KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfczMyKSkpCmludDMyeDRfdCB2Y3JlYXRlcV9zMzIodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9zNjQpKSkKaW50NjR4Ml90IHZjcmVhdGVxX3M2NCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3M4KSkpCmludDh4MTZfdCB2Y3JlYXRlcV9zOCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3UxNikpKQp1aW50MTZ4OF90IHZjcmVhdGVxX3UxNih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3UzMikpKQp1aW50MzJ4NF90IHZjcmVhdGVxX3UzMih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3U2NCkpKQp1aW50NjR4Ml90IHZjcmVhdGVxX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3U4KSkpCnVpbnQ4eDE2X3QgdmNyZWF0ZXFfdTgodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMTZxKSkpCm12ZV9wcmVkMTZfdCB2Y3RwMTZxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMTZxX20pKSkKbXZlX3ByZWQxNl90IHZjdHAxNnFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMzJxKSkpCm12ZV9wcmVkMTZfdCB2Y3RwMzJxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMzJxX20pKSkKbXZlX3ByZWQxNl90IHZjdHAzMnFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwNjRxKSkpCm12ZV9wcmVkMTZfdCB2Y3RwNjRxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwNjRxX20pKSkKbXZlX3ByZWQxNl90IHZjdHA2NHFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwOHEpKSkKbXZlX3ByZWQxNl90IHZjdHA4cSh1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDhxX20pKSkKbXZlX3ByZWQxNl90IHZjdHA4cV9tKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmRkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmRkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmRkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV9uX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfdTE2KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV9uX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfdTMyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmRkdXBxX25fdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV93Yl91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX3UxNih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfd2JfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV91MzIodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfd2JfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV94X25fdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfeF91MTYodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV94X25fdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfeF91MzIodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmRkdXBxX3hfbl91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfeF91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX3hfdTE2KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfeF93Yl91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV94X3UzMih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfeF93Yl91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfeF91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MxNikpKQppbnQxNng4X3QgdmR1cHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MxNikpKQppbnQxNng4X3QgdmR1cHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MzMikpKQppbnQzMng0X3QgdmR1cHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MzMikpKQppbnQzMng0X3QgdmR1cHFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3M4KSkpCmludDh4MTZfdCB2ZHVwcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3M4KSkpCmludDh4MTZfdCB2ZHVwcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2ZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2ZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZkdXBxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3MxNikpKQppbnQxNng4X3QgdmR1cHFfbl9zMTYoaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9zMzIpKSkKaW50MzJ4NF90IHZkdXBxX25fczMyKGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fczgpKSkKaW50OHgxNl90IHZkdXBxX25fczgoaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZkdXBxX25fdTE2KHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZkdXBxX25fdTMyKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR1cHFfbl91OCh1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fczE2KSkpCmludDE2eDhfdCB2ZHVwcV94X25fczE2KGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3MzMikpKQppbnQzMng0X3QgdmR1cHFfeF9uX3MzMihpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmR1cHFfeF9uX3M4KGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmR1cHFfeF9uX3UxNih1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmR1cHFfeF9uX3UzMih1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2ZHVwcV94X25fdTgodWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCB2ZHdkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCB2ZHdkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCB2ZHdkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV9uX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2ZHdkdXBxX25fdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV93Yl91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfd2JfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfd2JfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV94X25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfeF91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV94X25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfeF91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2ZHdkdXBxX3hfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfeF91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX3hfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfeF93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV94X3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfeF93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfeF91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczE2KSkpCmludDE2eDhfdCB2ZW9ycV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczE2KSkpCmludDE2eDhfdCB2ZW9ycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMzIpKSkKaW50MzJ4NF90IHZlb3JxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMzIpKSkKaW50MzJ4NF90IHZlb3JxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3M4KSkpCmludDh4MTZfdCB2ZW9ycV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zOCkpKQppbnQ4eDE2X3QgdmVvcnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTE2KSkpCnVpbnQxNng4X3QgdmVvcnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UxNikpKQp1aW50MTZ4OF90IHZlb3JxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UzMikpKQp1aW50MzJ4NF90IHZlb3JxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91MzIpKSkKdWludDMyeDRfdCB2ZW9ycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91OCkpKQp1aW50OHgxNl90IHZlb3JxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmVvcnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3MxNikpKQppbnQxNng4X3QgdmVvcnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMTYpKSkKaW50MTZ4OF90IHZlb3JxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMzIpKSkKaW50MzJ4NF90IHZlb3JxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczMyKSkpCmludDMyeDRfdCB2ZW9ycShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczgpKSkKaW50OHgxNl90IHZlb3JxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zOCkpKQppbnQ4eDE2X3QgdmVvcnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3UxNikpKQp1aW50MTZ4OF90IHZlb3JxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MTYpKSkKdWludDE2eDhfdCB2ZW9ycSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MzIpKSkKdWludDMyeDRfdCB2ZW9ycV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTMyKSkpCnVpbnQzMng0X3QgdmVvcnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTgpKSkKdWludDh4MTZfdCB2ZW9ycV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91OCkpKQp1aW50OHgxNl90IHZlb3JxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczE2KSkpCmludDE2eDhfdCB2ZW9ycV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MxNikpKQppbnQxNng4X3QgdmVvcnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MzMikpKQppbnQzMng0X3QgdmVvcnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zMzIpKSkKaW50MzJ4NF90IHZlb3JxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zOCkpKQppbnQ4eDE2X3QgdmVvcnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3M4KSkpCmludDh4MTZfdCB2ZW9ycV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmVvcnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UxNikpKQp1aW50MTZ4OF90IHZlb3JxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UzMikpKQp1aW50MzJ4NF90IHZlb3JxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91MzIpKSkKdWludDMyeDRfdCB2ZW9ycV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91OCkpKQp1aW50OHgxNl90IHZlb3JxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3U4KSkpCnVpbnQ4eDE2X3QgdmVvcnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczE2KSkpCmludDE2X3QgdmdldHFfbGFuZV9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczE2KSkpCmludDE2X3QgdmdldHFfbGFuZShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMzIpKSkKaW50MzJfdCB2Z2V0cV9sYW5lX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMzIpKSkKaW50MzJfdCB2Z2V0cV9sYW5lKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M2NCkpKQppbnQ2NF90IHZnZXRxX2xhbmVfczY0KGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M2NCkpKQppbnQ2NF90IHZnZXRxX2xhbmUoaW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczgpKSkKaW50OF90IHZnZXRxX2xhbmVfczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczgpKSkKaW50OF90IHZnZXRxX2xhbmUoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTE2KSkpCnVpbnQxNl90IHZnZXRxX2xhbmVfdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MTYpKSkKdWludDE2X3QgdmdldHFfbGFuZSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTMyKSkpCnVpbnQzMl90IHZnZXRxX2xhbmVfdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MzIpKSkKdWludDMyX3QgdmdldHFfbGFuZSh1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NF90IHZnZXRxX2xhbmVfdTY0KHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91NjQpKSkKdWludDY0X3QgdmdldHFfbGFuZSh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTgpKSkKdWludDhfdCB2Z2V0cV9sYW5lX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91OCkpKQp1aW50OF90IHZnZXRxX2xhbmUodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCB2aGFkZHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgdmhhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczgpKSkKaW50OHgxNl90IHZoYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczE2KSkpCmludDE2eDhfdCB2aGFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgdmhhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczMyKSkpCmludDMyeDRfdCB2aGFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3M4KSkpCmludDh4MTZfdCB2aGFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3M4KSkpCmludDh4MTZfdCB2aGFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZoYWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczE2KSkpCmludDE2eDhfdCB2aGFkZHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MzMikpKQppbnQzMng0X3QgdmhhZGRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczgpKSkKaW50OHgxNl90IHZoYWRkcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MzIpKSkKdWludDMyeDRfdCB2aGFkZHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTgpKSkKdWludDh4MTZfdCB2aGFkZHEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MxNikpKQppbnQxNng4X3QgdmhhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczMyKSkpCmludDMyeDRfdCB2aGFkZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczMyKSkpCmludDMyeDRfdCB2aGFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczgpKSkKaW50OHgxNl90IHZoYWRkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91OCkpKQp1aW50OHgxNl90IHZoYWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTgpKSkKdWludDh4MTZfdCB2aGFkZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczMyKSkpCmludDMyeDRfdCB2aGFkZHFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3M4KSkpCmludDh4MTZfdCB2aGFkZHFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczgpKSkKaW50OHgxNl90IHZoYWRkcV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZoYWRkcV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91OCkpKQp1aW50OHgxNl90IHZoYWRkcV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MzMikpKQppbnQzMng0X3QgdmhhZGRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MzMikpKQppbnQzMng0X3QgdmhhZGRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczgpKSkKaW50OHgxNl90IHZoYWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3M4KSkpCmludDh4MTZfdCB2aGFkZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IHZoYWRkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IHZoYWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3QyNzBfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3QyNzBfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDI3MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDI3MF9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3QyNzBfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90MjcwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90MjcwX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDI3MChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDI3MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3QyNzAoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDI3MF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90MjcwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3QyNzBfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90MjcwX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90MjcwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDI3MF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90MjcwX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3QyNzBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDkwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3Q5MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3Q5MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90OTBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3Q5MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDkwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3Q5MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDkwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3Q5MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDkwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDkwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDkwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDkwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90OTBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDkwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90OTBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90OTBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90OTBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZoc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczMyKSkpCmludDMyeDRfdCB2aHN1YnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgdmhzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczgpKSkKaW50OHgxNl90IHZoc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczE2KSkpCmludDE2eDhfdCB2aHN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MzMikpKQppbnQzMng0X3QgdmhzdWJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczMyKSkpCmludDMyeDRfdCB2aHN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3M4KSkpCmludDh4MTZfdCB2aHN1YnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3M4KSkpCmludDh4MTZfdCB2aHN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91OCkpKQp1aW50OHgxNl90IHZoc3VicV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczE2KSkpCmludDE2eDhfdCB2aHN1YnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MzMikpKQppbnQzMng0X3QgdmhzdWJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczgpKSkKaW50OHgxNl90IHZoc3VicV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MzIpKSkKdWludDMyeDRfdCB2aHN1YnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTgpKSkKdWludDh4MTZfdCB2aHN1YnEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MxNikpKQppbnQxNng4X3QgdmhzdWJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczMyKSkpCmludDMyeDRfdCB2aHN1YnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczMyKSkpCmludDMyeDRfdCB2aHN1YnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczgpKSkKaW50OHgxNl90IHZoc3VicShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91OCkpKQp1aW50OHgxNl90IHZoc3VicV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTgpKSkKdWludDh4MTZfdCB2aHN1YnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZoc3VicV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczMyKSkpCmludDMyeDRfdCB2aHN1YnFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3M4KSkpCmludDh4MTZfdCB2aHN1YnFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczgpKSkKaW50OHgxNl90IHZoc3VicV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZoc3VicV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91OCkpKQp1aW50OHgxNl90IHZoc3VicV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IHZoc3VicV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IHZoc3VicV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MzMikpKQppbnQzMng0X3QgdmhzdWJxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MzMikpKQppbnQzMng0X3QgdmhzdWJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczgpKSkKaW50OHgxNl90IHZoc3VicV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3M4KSkpCmludDh4MTZfdCB2aHN1YnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UzMikpKQp1aW50MzJ4NF90IHZoc3VicV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UzMikpKQp1aW50MzJ4NF90IHZoc3VicV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZpZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfbV93Yl91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfbV93Yl91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZpZHVwcV9tX3diX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZpZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfbl91MTYodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfbl91MzIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91OCkpKQp1aW50OHgxNl90IHZpZHVwcV9uX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfd2JfdTE2KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX3diX3UzMih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3diX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfeF9uX3UxNih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX3hfdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfeF9uX3UzMih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX3hfdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZpZHVwcV94X25fdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3hfdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfeF93Yl91MTYodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV94X3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX3hfd2JfdTMyKHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfeF91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3hfd2JfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3hfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZpd2R1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX21fd2JfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX21fd2JfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZpd2R1cHFfbV93Yl91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZpd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IHZpd2R1cHFfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX3hfbl91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV94X3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3hfbl91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV94X3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZpd2R1cHFfeF9uX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV94X3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX3hfd2JfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfeF91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV94X3diX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3hfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV94X3diX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV94X3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczE2KSkpCmludDE2eDhfdCB2bGQxcV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMTYpKSkKaW50MTZ4OF90IHZsZDFxKGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczMyKSkpCmludDMyeDRfdCB2bGQxcV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMzIpKSkKaW50MzJ4NF90IHZsZDFxKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczgpKSkKaW50OHgxNl90IHZsZDFxX3M4KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zOCkpKQppbnQ4eDE2X3QgdmxkMXEoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3UxNikpKQp1aW50MTZ4OF90IHZsZDFxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MTYpKSkKdWludDE2eDhfdCB2bGQxcShjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MzIpKSkKdWludDMyeDRfdCB2bGQxcV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTMyKSkpCnVpbnQzMng0X3QgdmxkMXEoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTgpKSkKdWludDh4MTZfdCB2bGQxcV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3U4KSkpCnVpbnQ4eDE2X3QgdmxkMXEoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MxNikpKQppbnQxNng4X3QgdmxkMXFfel9zMTYoY29uc3QgaW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczE2KSkpCmludDE2eDhfdCB2bGQxcV96KGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MzMikpKQppbnQzMng0X3QgdmxkMXFfel9zMzIoY29uc3QgaW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczMyKSkpCmludDMyeDRfdCB2bGQxcV96KGNvbnN0IGludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3M4KSkpCmludDh4MTZfdCB2bGQxcV96X3M4KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczgpKSkKaW50OHgxNl90IHZsZDFxX3ooY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91MTYpKSkKdWludDE2eDhfdCB2bGQxcV96X3UxNihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkMXFfeihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkMXFfel91MzIoY29uc3QgdWludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3UzMikpKQp1aW50MzJ4NF90IHZsZDFxX3ooY29uc3QgdWludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3U4KSkpCnVpbnQ4eDE2X3QgdmxkMXFfel91OChjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91OCkpKQp1aW50OHgxNl90IHZsZDFxX3ooY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3MxNikpKQppbnQxNng4eDJfdCB2bGQycV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMTYpKSkKaW50MTZ4OHgyX3QgdmxkMnEoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMzIpKSkKaW50MzJ4NHgyX3QgdmxkMnFfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczMyKSkpCmludDMyeDR4Ml90IHZsZDJxKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczgpKSkKaW50OHgxNngyX3QgdmxkMnFfczgoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3M4KSkpCmludDh4MTZ4Ml90IHZsZDJxKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MTYpKSkKdWludDE2eDh4Ml90IHZsZDJxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MTYpKSkKdWludDE2eDh4Ml90IHZsZDJxKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UzMikpKQp1aW50MzJ4NHgyX3QgdmxkMnFfdTMyKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UzMikpKQp1aW50MzJ4NHgyX3QgdmxkMnEoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTgpKSkKdWludDh4MTZ4Ml90IHZsZDJxX3U4KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTgpKSkKdWludDh4MTZ4Ml90IHZsZDJxKGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczE2KSkpCmludDE2eDh4NF90IHZsZDRxX3MxNihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MxNikpKQppbnQxNng4eDRfdCB2bGQ0cShjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MzMikpKQppbnQzMng0eDRfdCB2bGQ0cV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zMzIpKSkKaW50MzJ4NHg0X3QgdmxkNHEoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zOCkpKQppbnQ4eDE2eDRfdCB2bGQ0cV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczgpKSkKaW50OHgxNng0X3QgdmxkNHEoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UxNikpKQp1aW50MTZ4OHg0X3QgdmxkNHFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UxNikpKQp1aW50MTZ4OHg0X3QgdmxkNHEoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTMyKSkpCnVpbnQzMng0eDRfdCB2bGQ0cV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTMyKSkpCnVpbnQzMng0eDRfdCB2bGQ0cShjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91OCkpKQp1aW50OHgxNng0X3QgdmxkNHFfdTgoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91OCkpKQp1aW50OHgxNng0X3QgdmxkNHEoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3MxNihjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczE2KSkpCmludDE2eDhfdCB2bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF9zMzIoY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3M4KSkpCmludDh4MTZfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF9zOChjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczgpKSkKaW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF91MTYoY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMihjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTgpKSkKdWludDh4MTZfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF91OChjb25zdCB1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3U4KSkpCnVpbnQ4eDE2X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMTYoY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczMyKGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczgpKSkKaW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczgoY29uc3QgaW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zOCkpKQppbnQ4eDE2X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTE2KGNvbnN0IHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MzIoY29uc3QgdWludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91OCkpKQp1aW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTgoY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTgpKSkKdWludDh4MTZfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczE2KSkpCmludDE2eDhfdCB2bGRyYnFfczE2KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczMyKSkpCmludDMyeDRfdCB2bGRyYnFfczMyKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczgpKSkKaW50OHgxNl90IHZsZHJicV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV91MTYoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX3UzMihjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV91OCkpKQp1aW50OHgxNl90IHZsZHJicV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3MxNikpKQppbnQxNng4X3QgdmxkcmJxX3pfczE2KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3MzMikpKQppbnQzMng0X3QgdmxkcmJxX3pfczMyKGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3M4KSkpCmludDh4MTZfdCB2bGRyYnFfel9zOChjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel91MTYpKSkKdWludDE2eDhfdCB2bGRyYnFfel91MTYoY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJicV96X3UzMihjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfdTgpKSkKdWludDh4MTZfdCB2bGRyYnFfel91OChjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3M2NCh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX2Jhc2VfdTY0KHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3diX3M2NCh1aW50NjR4Ml90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfYmFzZV93Yl91NjQodWludDY0eDJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3diX3pfczY0KHVpbnQ2NHgyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3U2NCh1aW50NjR4Ml90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfel9zNjQpKSkKaW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfYmFzZV96X3M2NCh1aW50NjR4Ml90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3pfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3pfdTY0KHVpbnQ2NHgyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF9zNjQpKSkKaW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfb2Zmc2V0X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldF91NjQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel9zNjQpKSkKaW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfczY0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldF96X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF96X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF96X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczE2KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UxNihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfczE2KSkpCmludDE2eDhfdCB2bGRyaHFfczE2KGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3MzMikpKQppbnQzMng0X3QgdmxkcmhxX3MzMihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfdTMyKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX3pfczE2KGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJocV96X3MzMihjb25zdCBpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX3pfdTE2KGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX3pfdTMyKGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3MzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2VfdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3diX3MzMih1aW50MzJ4NF90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV93Yl91MzIodWludDMyeDRfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfczMyKHVpbnQzMng0X3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3UzMih1aW50MzJ4NF90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV96X3MzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3pfdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF91MzIoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfczMyKGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF96X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3pfczMyKSkpCmludDMyeDRfdCB2bGRyd3Ffel9zMzIoY29uc3QgaW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV96X3UzMihjb25zdCB1aW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MxNikpKQp1aW50MTZ4OF90IHZtYXhhcV9tX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczE2KSkpCnVpbnQxNng4X3Qgdm1heGFxX20odWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MzMikpKQp1aW50MzJ4NF90IHZtYXhhcV9tX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczMyKSkpCnVpbnQzMng0X3Qgdm1heGFxX20odWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3M4KSkpCnVpbnQ4eDE2X3Qgdm1heGFxX21fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3M4KSkpCnVpbnQ4eDE2X3Qgdm1heGFxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMTYpKSkKdWludDE2eDhfdCB2bWF4YXFfczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MxNikpKQp1aW50MTZ4OF90IHZtYXhhcSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMzIpKSkKdWludDMyeDRfdCB2bWF4YXFfczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MzMikpKQp1aW50MzJ4NF90IHZtYXhhcSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zOCkpKQp1aW50OHgxNl90IHZtYXhhcV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zOCkpKQp1aW50OHgxNl90IHZtYXhhcSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMTYpKSkKdWludDE2X3Qgdm1heGF2cV9wX3MxNih1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMTYpKSkKdWludDE2X3Qgdm1heGF2cV9wKHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MzMikpKQp1aW50MzJfdCB2bWF4YXZxX3BfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MzMikpKQp1aW50MzJfdCB2bWF4YXZxX3AodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczgpKSkKdWludDhfdCB2bWF4YXZxX3BfczgodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zOCkpKQp1aW50OF90IHZtYXhhdnFfcCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMTYpKSkKdWludDE2X3Qgdm1heGF2cV9zMTYodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMTYpKSkKdWludDE2X3Qgdm1heGF2cSh1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MzMikpKQp1aW50MzJfdCB2bWF4YXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MzMikpKQp1aW50MzJfdCB2bWF4YXZxKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczgpKSkKdWludDhfdCB2bWF4YXZxX3M4KHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zOCkpKQp1aW50OF90IHZtYXhhdnEodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MxNikpKQppbnQxNng4X3Qgdm1heHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MxNikpKQppbnQxNng4X3Qgdm1heHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczMyKSkpCmludDMyeDRfdCB2bWF4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczMyKSkpCmludDMyeDRfdCB2bWF4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zOCkpKQppbnQ4eDE2X3Qgdm1heHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczgpKSkKaW50OHgxNl90IHZtYXhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3UxNikpKQp1aW50MTZ4OF90IHZtYXhxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MTYpKSkKdWludDE2eDhfdCB2bWF4cV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MzIpKSkKdWludDMyeDRfdCB2bWF4cV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm1heHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTgpKSkKdWludDh4MTZfdCB2bWF4cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91OCkpKQp1aW50OHgxNl90IHZtYXhxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zMTYpKSkKaW50MTZ4OF90IHZtYXhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczE2KSkpCmludDE2eDhfdCB2bWF4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczMyKSkpCmludDMyeDRfdCB2bWF4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3MzMikpKQppbnQzMng0X3Qgdm1heHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3M4KSkpCmludDh4MTZfdCB2bWF4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczgpKSkKaW50OHgxNl90IHZtYXhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91MTYpKSkKdWludDE2eDhfdCB2bWF4cV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTE2KSkpCnVpbnQxNng4X3Qgdm1heHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTMyKSkpCnVpbnQzMng0X3Qgdm1heHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3UzMikpKQp1aW50MzJ4NF90IHZtYXhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3U4KSkpCnVpbnQ4eDE2X3Qgdm1heHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTgpKSkKdWludDh4MTZfdCB2bWF4cSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3MxNikpKQppbnQxNng4X3Qgdm1heHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMTYpKSkKaW50MTZ4OF90IHZtYXhxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMzIpKSkKaW50MzJ4NF90IHZtYXhxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczMyKSkpCmludDMyeDRfdCB2bWF4cV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczgpKSkKaW50OHgxNl90IHZtYXhxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zOCkpKQppbnQ4eDE2X3Qgdm1heHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3UxNikpKQp1aW50MTZ4OF90IHZtYXhxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MTYpKSkKdWludDE2eDhfdCB2bWF4cV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MzIpKSkKdWludDMyeDRfdCB2bWF4cV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm1heHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTgpKSkKdWludDh4MTZfdCB2bWF4cV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91OCkpKQp1aW50OHgxNl90IHZtYXhxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMTYpKSkKaW50MTZfdCB2bWF4dnFfcF9zMTYoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MxNikpKQppbnQxNl90IHZtYXh2cV9wKGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMzIpKSkKaW50MzJfdCB2bWF4dnFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MzMikpKQppbnQzMl90IHZtYXh2cV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zOCkpKQppbnQ4X3Qgdm1heHZxX3BfczgoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczgpKSkKaW50OF90IHZtYXh2cV9wKGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UxNikpKQp1aW50MTZfdCB2bWF4dnFfcF91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTE2KSkpCnVpbnQxNl90IHZtYXh2cV9wKHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UzMikpKQp1aW50MzJfdCB2bWF4dnFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTMyKSkpCnVpbnQzMl90IHZtYXh2cV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3U4KSkpCnVpbnQ4X3Qgdm1heHZxX3BfdTgodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91OCkpKQp1aW50OF90IHZtYXh2cV9wKHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MxNikpKQppbnQxNl90IHZtYXh2cV9zMTYoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczE2KSkpCmludDE2X3Qgdm1heHZxKGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MzMikpKQppbnQzMl90IHZtYXh2cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczMyKSkpCmludDMyX3Qgdm1heHZxKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3M4KSkpCmludDhfdCB2bWF4dnFfczgoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zOCkpKQppbnQ4X3Qgdm1heHZxKGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTE2KSkpCnVpbnQxNl90IHZtYXh2cV91MTYodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MTYpKSkKdWludDE2X3Qgdm1heHZxKHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTMyKSkpCnVpbnQzMl90IHZtYXh2cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MzIpKSkKdWludDMyX3Qgdm1heHZxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTgpKSkKdWludDhfdCB2bWF4dnFfdTgodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3U4KSkpCnVpbnQ4X3Qgdm1heHZxKHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MxNikpKQp1aW50MTZ4OF90IHZtaW5hcV9tX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczE2KSkpCnVpbnQxNng4X3Qgdm1pbmFxX20odWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MzMikpKQp1aW50MzJ4NF90IHZtaW5hcV9tX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczMyKSkpCnVpbnQzMng0X3Qgdm1pbmFxX20odWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3M4KSkpCnVpbnQ4eDE2X3Qgdm1pbmFxX21fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3M4KSkpCnVpbnQ4eDE2X3Qgdm1pbmFxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMTYpKSkKdWludDE2eDhfdCB2bWluYXFfczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MxNikpKQp1aW50MTZ4OF90IHZtaW5hcSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMzIpKSkKdWludDMyeDRfdCB2bWluYXFfczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MzMikpKQp1aW50MzJ4NF90IHZtaW5hcSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zOCkpKQp1aW50OHgxNl90IHZtaW5hcV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zOCkpKQp1aW50OHgxNl90IHZtaW5hcSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMTYpKSkKdWludDE2X3Qgdm1pbmF2cV9wX3MxNih1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMTYpKSkKdWludDE2X3Qgdm1pbmF2cV9wKHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MzMikpKQp1aW50MzJfdCB2bWluYXZxX3BfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MzMikpKQp1aW50MzJfdCB2bWluYXZxX3AodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczgpKSkKdWludDhfdCB2bWluYXZxX3BfczgodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zOCkpKQp1aW50OF90IHZtaW5hdnFfcCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMTYpKSkKdWludDE2X3Qgdm1pbmF2cV9zMTYodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMTYpKSkKdWludDE2X3Qgdm1pbmF2cSh1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MzMikpKQp1aW50MzJfdCB2bWluYXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MzMikpKQp1aW50MzJfdCB2bWluYXZxKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczgpKSkKdWludDhfdCB2bWluYXZxX3M4KHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zOCkpKQp1aW50OF90IHZtaW5hdnEodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MxNikpKQppbnQxNng4X3Qgdm1pbnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MxNikpKQppbnQxNng4X3Qgdm1pbnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczMyKSkpCmludDMyeDRfdCB2bWlucV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczMyKSkpCmludDMyeDRfdCB2bWlucV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm1pbnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczgpKSkKaW50OHgxNl90IHZtaW5xX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3UxNikpKQp1aW50MTZ4OF90IHZtaW5xX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MTYpKSkKdWludDE2eDhfdCB2bWlucV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MzIpKSkKdWludDMyeDRfdCB2bWlucV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTMyKSkpCnVpbnQzMng0X3Qgdm1pbnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTgpKSkKdWludDh4MTZfdCB2bWlucV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91OCkpKQp1aW50OHgxNl90IHZtaW5xX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zMTYpKSkKaW50MTZ4OF90IHZtaW5xX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczE2KSkpCmludDE2eDhfdCB2bWlucShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczMyKSkpCmludDMyeDRfdCB2bWlucV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3MzMikpKQppbnQzMng0X3Qgdm1pbnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3M4KSkpCmludDh4MTZfdCB2bWlucV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczgpKSkKaW50OHgxNl90IHZtaW5xKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91MTYpKSkKdWludDE2eDhfdCB2bWlucV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTE2KSkpCnVpbnQxNng4X3Qgdm1pbnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTMyKSkpCnVpbnQzMng0X3Qgdm1pbnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3UzMikpKQp1aW50MzJ4NF90IHZtaW5xKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3U4KSkpCnVpbnQ4eDE2X3Qgdm1pbnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTgpKSkKdWludDh4MTZfdCB2bWlucSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3MxNikpKQppbnQxNng4X3Qgdm1pbnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMTYpKSkKaW50MTZ4OF90IHZtaW5xX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMzIpKSkKaW50MzJ4NF90IHZtaW5xX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczMyKSkpCmludDMyeDRfdCB2bWlucV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczgpKSkKaW50OHgxNl90IHZtaW5xX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zOCkpKQppbnQ4eDE2X3Qgdm1pbnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3UxNikpKQp1aW50MTZ4OF90IHZtaW5xX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MTYpKSkKdWludDE2eDhfdCB2bWlucV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MzIpKSkKdWludDMyeDRfdCB2bWlucV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm1pbnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTgpKSkKdWludDh4MTZfdCB2bWlucV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91OCkpKQp1aW50OHgxNl90IHZtaW5xX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMTYpKSkKaW50MTZfdCB2bWludnFfcF9zMTYoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MxNikpKQppbnQxNl90IHZtaW52cV9wKGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMzIpKSkKaW50MzJfdCB2bWludnFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MzMikpKQppbnQzMl90IHZtaW52cV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zOCkpKQppbnQ4X3Qgdm1pbnZxX3BfczgoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczgpKSkKaW50OF90IHZtaW52cV9wKGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UxNikpKQp1aW50MTZfdCB2bWludnFfcF91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTE2KSkpCnVpbnQxNl90IHZtaW52cV9wKHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UzMikpKQp1aW50MzJfdCB2bWludnFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTMyKSkpCnVpbnQzMl90IHZtaW52cV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3U4KSkpCnVpbnQ4X3Qgdm1pbnZxX3BfdTgodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91OCkpKQp1aW50OF90IHZtaW52cV9wKHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MxNikpKQppbnQxNl90IHZtaW52cV9zMTYoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczE2KSkpCmludDE2X3Qgdm1pbnZxKGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MzMikpKQppbnQzMl90IHZtaW52cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczMyKSkpCmludDMyX3Qgdm1pbnZxKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3M4KSkpCmludDhfdCB2bWludnFfczgoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zOCkpKQppbnQ4X3Qgdm1pbnZxKGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTE2KSkpCnVpbnQxNl90IHZtaW52cV91MTYodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MTYpKSkKdWludDE2X3Qgdm1pbnZxKHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTMyKSkpCnVpbnQzMl90IHZtaW52cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MzIpKSkKdWludDMyX3Qgdm1pbnZxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTgpKSkKdWludDhfdCB2bWludnFfdTgodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3U4KSkpCnVpbnQ4X3Qgdm1pbnZxKHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZhcV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2YXFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczMyKSkpCmludDMyX3Qgdm1sYWRhdmFxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2YXFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZhcV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UxNikpKQp1aW50MzJfdCB2bWxhZGF2YXFfcF91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UzMikpKQp1aW50MzJfdCB2bWxhZGF2YXFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczE2KSkpCmludDMyX3Qgdm1sYWRhdmFxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczMyKSkpCmludDMyX3Qgdm1sYWRhdmFxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3MzMikpKQppbnQzMl90IHZtbGFkYXZhcShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3M4KSkpCmludDMyX3Qgdm1sYWRhdmFxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczgpKSkKaW50MzJfdCB2bWxhZGF2YXEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MTYpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UxNikpKQp1aW50MzJfdCB2bWxhZGF2YXEodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MzIpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UzMikpKQp1aW50MzJfdCB2bWxhZGF2YXEodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91OCkpKQp1aW50MzJfdCB2bWxhZGF2YXFfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91OCkpKQp1aW50MzJfdCB2bWxhZGF2YXEodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MzMikpKQppbnQzMl90IHZtbGFkYXZheHFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MzMikpKQppbnQzMl90IHZtbGFkYXZheHFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3M4KSkpCmludDMyX3Qgdm1sYWRhdmF4cV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczE2KSkpCmludDMyX3Qgdm1sYWRhdmF4cV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczE2KSkpCmludDMyX3Qgdm1sYWRhdmF4cShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMzIpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMzIpKSkKaW50MzJfdCB2bWxhZGF2YXhxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3M4KSkpCmludDMyX3Qgdm1sYWRhdmF4cV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zOCkpKQppbnQzMl90IHZtbGFkYXZheHEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczE2KSkpCmludDMyX3Qgdm1sYWRhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczMyKSkpCmludDMyX3Qgdm1sYWRhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZxX3BfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MTYpKSkKdWludDMyX3Qgdm1sYWRhdnFfcCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZxX3BfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MzIpKSkKdWludDMyX3Qgdm1sYWRhdnFfcCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTgpKSkKdWludDMyX3Qgdm1sYWRhdnFfcF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTgpKSkKdWludDMyX3Qgdm1sYWRhdnFfcCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MxNikpKQppbnQzMl90IHZtbGFkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczE2KSkpCmludDMyX3Qgdm1sYWRhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MzMikpKQppbnQzMl90IHZtbGFkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczMyKSkpCmludDMyX3Qgdm1sYWRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3M4KSkpCmludDMyX3Qgdm1sYWRhdnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3M4KSkpCmludDMyX3Qgdm1sYWRhdnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UxNikpKQp1aW50MzJfdCB2bWxhZGF2cV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UzMikpKQp1aW50MzJfdCB2bWxhZGF2cV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczMyKSkpCmludDMyX3Qgdm1sYWRhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2eHFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZ4cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczE2KSkpCmludDMyX3Qgdm1sYWRhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczMyKSkpCmludDMyX3Qgdm1sYWRhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3MzMikpKQppbnQzMl90IHZtbGFkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3M4KSkpCmludDMyX3Qgdm1sYWRhdnhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczgpKSkKaW50MzJfdCB2bWxhZGF2eHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmFxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmFxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2YXFfcF91MTYodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UxNikpKQp1aW50NjRfdCB2bWxhbGRhdmFxX3AodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdmFxX3BfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF91MzIpKSkKdWludDY0X3Qgdm1sYWxkYXZhcV9wKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZhcV9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZhcShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdmFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdmFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3UxNikpKQp1aW50NjRfdCB2bWxhbGRhdmFxX3UxNih1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MTYpKSkKdWludDY0X3Qgdm1sYWxkYXZhcSh1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MzIpKSkKdWludDY0X3Qgdm1sYWxkYXZhcV91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfdTMyKSkpCnVpbnQ2NF90IHZtbGFsZGF2YXEodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZheHFfcF9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmF4cV9wKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdmF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2YXhxX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZheHEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXhxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdnFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2cV9wX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UxNikpKQp1aW50NjRfdCB2bWxhbGRhdnFfcCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdnFfcF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF91MzIpKSkKdWludDY0X3Qgdm1sYWxkYXZxX3AodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV91MTYpKSkKdWludDY0X3Qgdm1sYWxkYXZxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2cSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTMyKSkpCnVpbnQ2NF90IHZtbGFsZGF2cV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2eHFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZ4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZ4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZ4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZ4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczE2KSkpCmludDE2eDhfdCB2bWxhcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczMyKSkpCmludDMyeDRfdCB2bWxhcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zOCkpKQppbnQ4eDE2X3Qgdm1sYXFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3M4KSkpCmludDh4MTZfdCB2bWxhcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczE2KSkpCmludDE2eDhfdCB2bWxhcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczMyKSkpCmludDMyeDRfdCB2bWxhcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zOCkpKQppbnQ4eDE2X3Qgdm1sYXFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3M4KSkpCmludDh4MTZfdCB2bWxhcShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXEodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFzcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczE2KSkpCmludDE2eDhfdCB2bWxhc3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXNxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtbGFzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczgpKSkKaW50OHgxNl90IHZtbGFzcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3M4KSkpCmludDh4MTZfdCB2bWxhc3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXNxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91MTYpKSkKdWludDE2eDhfdCB2bWxhc3FfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFzcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91OCkpKQp1aW50OHgxNl90IHZtbGFzcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXNxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFzcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczE2KSkpCmludDE2eDhfdCB2bWxhc3EoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXNxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMzIpKSkKaW50MzJ4NF90IHZtbGFzcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczgpKSkKaW50OHgxNl90IHZtbGFzcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3M4KSkpCmludDh4MTZfdCB2bWxhc3EoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXNxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91MTYpKSkKdWludDE2eDhfdCB2bWxhc3EodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3UzMikpKQp1aW50MzJ4NF90IHZtbGFzcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91OCkpKQp1aW50OHgxNl90IHZtbGFzcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXNxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZhcV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2YXFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczMyKSkpCmludDMyX3Qgdm1sc2RhdmFxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2YXFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZhcV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczE2KSkpCmludDMyX3Qgdm1sc2RhdmFxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczMyKSkpCmludDMyX3Qgdm1sc2RhdmFxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3MzMikpKQppbnQzMl90IHZtbHNkYXZhcShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3M4KSkpCmludDMyX3Qgdm1sc2RhdmFxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczgpKSkKaW50MzJfdCB2bWxzZGF2YXEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MzMikpKQppbnQzMl90IHZtbHNkYXZheHFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MzMikpKQppbnQzMl90IHZtbHNkYXZheHFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3M4KSkpCmludDMyX3Qgdm1sc2RhdmF4cV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczE2KSkpCmludDMyX3Qgdm1sc2RhdmF4cV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczE2KSkpCmludDMyX3Qgdm1sc2RhdmF4cShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMzIpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMzIpKSkKaW50MzJfdCB2bWxzZGF2YXhxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3M4KSkpCmludDMyX3Qgdm1sc2RhdmF4cV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zOCkpKQppbnQzMl90IHZtbHNkYXZheHEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczE2KSkpCmludDMyX3Qgdm1sc2RhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczMyKSkpCmludDMyX3Qgdm1sc2RhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MxNikpKQppbnQzMl90IHZtbHNkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczE2KSkpCmludDMyX3Qgdm1sc2RhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MzMikpKQppbnQzMl90IHZtbHNkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczMyKSkpCmludDMyX3Qgdm1sc2RhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3M4KSkpCmludDMyX3Qgdm1sc2RhdnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3M4KSkpCmludDMyX3Qgdm1sc2RhdnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczMyKSkpCmludDMyX3Qgdm1sc2RhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2eHFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZ4cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczE2KSkpCmludDMyX3Qgdm1sc2RhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczMyKSkpCmludDMyX3Qgdm1sc2RhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3MzMikpKQppbnQzMl90IHZtbHNkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3M4KSkpCmludDMyX3Qgdm1sc2RhdnhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczgpKSkKaW50MzJfdCB2bWxzZGF2eHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdmFxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdmFxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdmF4cV9wX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXhxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdmF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2YXhxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZheHFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdmF4cShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdmF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3BfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfcF9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdnFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdnhxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdnhxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2eHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2eHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZ4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3MxNikpKQppbnQzMng0X3Qgdm1vdmxicV9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fczE2KSkpCmludDMyeDRfdCB2bW92bGJxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3M4KSkpCmludDE2eDhfdCB2bW92bGJxX21fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3M4KSkpCmludDE2eDhfdCB2bW92bGJxX20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsYnFfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmxicV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3U4KSkpCnVpbnQxNng4X3Qgdm1vdmxicV9tX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3U4KSkpCnVpbnQxNng4X3Qgdm1vdmxicV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsYnFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsYnEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3M4KSkpCmludDE2eDhfdCB2bW92bGJxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zOCkpKQppbnQxNng4X3Qgdm1vdmxicShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmxicV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV91MTYpKSkKdWludDMyeDRfdCB2bW92bGJxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTgpKSkKdWludDE2eDhfdCB2bW92bGJxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTgpKSkKdWludDE2eDhfdCB2bW92bGJxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsYnFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsYnFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3M4KSkpCmludDE2eDhfdCB2bW92bGJxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zOCkpKQppbnQxNng4X3Qgdm1vdmxicV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmxicV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF91MTYpKSkKdWludDMyeDRfdCB2bW92bGJxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTgpKSkKdWludDE2eDhfdCB2bW92bGJxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTgpKSkKdWludDE2eDhfdCB2bW92bGJxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczE2KSkpCmludDMyeDRfdCB2bW92bHRxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczgpKSkKaW50MTZ4OF90IHZtb3ZsdHFfbV9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczgpKSkKaW50MTZ4OF90IHZtb3ZsdHFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmx0cV9tX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV91MTYpKSkKdWludDMyeDRfdCB2bW92bHRxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTgpKSkKdWludDE2eDhfdCB2bW92bHRxX21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTgpKSkKdWludDE2eDhfdCB2bW92bHRxX20odWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3MxNikpKQppbnQzMng0X3Qgdm1vdmx0cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3MxNikpKQppbnQzMng0X3Qgdm1vdmx0cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfczgpKSkKaW50MTZ4OF90IHZtb3ZsdHFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3M4KSkpCmludDE2eDhfdCB2bW92bHRxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91MTYpKSkKdWludDMyeDRfdCB2bW92bHRxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsdHEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3MxNikpKQppbnQzMng0X3Qgdm1vdmx0cV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3MxNikpKQppbnQzMng0X3Qgdm1vdmx0cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfczgpKSkKaW50MTZ4OF90IHZtb3ZsdHFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3M4KSkpCmludDE2eDhfdCB2bW92bHRxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91MTYpKSkKdWludDMyeDRfdCB2bW92bHRxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsdHFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMTYpKSkKaW50OHgxNl90IHZtb3ZuYnFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZuYnFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MzMikpKQppbnQxNng4X3Qgdm1vdm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCB2bW92bmJxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UxNikpKQp1aW50OHgxNl90IHZtb3ZuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MzIpKSkKdWludDE2eDhfdCB2bW92bmJxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczE2KSkpCmludDh4MTZfdCB2bW92bmJxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMTYpKSkKaW50OHgxNl90IHZtb3ZuYnEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczMyKSkpCmludDE2eDhfdCB2bW92bmJxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTE2KSkpCnVpbnQ4eDE2X3Qgdm1vdm5icV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MTYpKSkKdWludDh4MTZfdCB2bW92bmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3Qgdm1vdm5icV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MzIpKSkKdWludDE2eDhfdCB2bW92bmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IHZtb3ZudHFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZudHFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MzMikpKQppbnQxNng4X3Qgdm1vdm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCB2bW92bnRxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IHZtb3ZudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCB2bW92bnRxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczE2KSkpCmludDh4MTZfdCB2bW92bnRxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMTYpKSkKaW50OHgxNl90IHZtb3ZudHEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczMyKSkpCmludDE2eDhfdCB2bW92bnRxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZudHEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3Qgdm1vdm50cV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MTYpKSkKdWludDh4MTZfdCB2bW92bnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTMyKSkpCnVpbnQxNng4X3Qgdm1vdm50cV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MzIpKSkKdWludDE2eDhfdCB2bW92bnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MxNikpKQppbnQxNng4X3Qgdm11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczE2KSkpCmludDE2eDhfdCB2bXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MzMikpKQppbnQzMng0X3Qgdm11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczMyKSkpCmludDMyeDRfdCB2bXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2bXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2bXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IHZtdWxocV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IHZtdWxocV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91OCkpKQp1aW50OHgxNl90IHZtdWxocV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTgpKSkKdWludDh4MTZfdCB2bXVsaHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MzMikpKQppbnQzMng0X3Qgdm11bGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MzMikpKQppbnQzMng0X3Qgdm11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczgpKSkKaW50OHgxNl90IHZtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3M4KSkpCmludDh4MTZfdCB2bXVsaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MTYpKSkKdWludDE2eDhfdCB2bXVsaHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MTYpKSkKdWludDE2eDhfdCB2bXVsaHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UzMikpKQp1aW50MzJ4NF90IHZtdWxocV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UzMikpKQp1aW50MzJ4NF90IHZtdWxocSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTgpKSkKdWludDh4MTZfdCB2bXVsaHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bGhxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MxNikpKQppbnQxNng4X3Qgdm11bGhxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MxNikpKQppbnQxNng4X3Qgdm11bGhxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczMyKSkpCmludDMyeDRfdCB2bXVsaHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczMyKSkpCmludDMyeDRfdCB2bXVsaHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zOCkpKQppbnQ4eDE2X3Qgdm11bGhxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczgpKSkKaW50OHgxNl90IHZtdWxocV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IHZtdWxocV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IHZtdWxocV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91OCkpKQp1aW50OHgxNl90IHZtdWxocV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCB2bXVsaHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczE2KSkpCmludDMyeDRfdCB2bXVsbGJxX2ludF9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczE2KSkpCmludDMyeDRfdCB2bXVsbGJxX2ludF9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IHZtdWxsYnFfaW50X21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IHZtdWxsYnFfaW50X20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3M4KSkpCmludDE2eDhfdCB2bXVsbGJxX2ludF9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zOCkpKQppbnQxNng4X3Qgdm11bGxicV9pbnRfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9pbnRfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfaW50X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IHZtdWxsYnFfaW50X21fdTMyKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCB2bXVsbGJxX2ludF9tKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfaW50X21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3U4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9pbnRfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3MxNikpKQppbnQzMng0X3Qgdm11bGxicV9pbnRfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMTYpKSkKaW50MzJ4NF90IHZtdWxsYnFfaW50KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsYnFfaW50X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczMyKSkpCmludDY0eDJfdCB2bXVsbGJxX2ludChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczgpKSkKaW50MTZ4OF90IHZtdWxsYnFfaW50X3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zOCkpKQppbnQxNng4X3Qgdm11bGxicV9pbnQoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfaW50X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX2ludCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MzIpKSkKdWludDY0eDJfdCB2bXVsbGJxX2ludF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGxicV9pbnQodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTgpKSkKdWludDE2eDhfdCB2bXVsbGJxX2ludF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91OCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfaW50KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczE2KSkpCmludDMyeDRfdCB2bXVsbGJxX2ludF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MxNikpKQppbnQzMng0X3Qgdm11bGxicV9pbnRfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MzMikpKQppbnQ2NHgyX3Qgdm11bGxicV9pbnRfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsYnFfaW50X3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zOCkpKQppbnQxNng4X3Qgdm11bGxicV9pbnRfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3M4KSkpCmludDE2eDhfdCB2bXVsbGJxX2ludF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9pbnRfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfaW50X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsYnFfaW50X3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCB2bXVsbGJxX2ludF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfaW50X3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3U4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9pbnRfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfcG9seV9tX3AxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfcG9seV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCB2bXVsbGJxX3BvbHlfbV9wOCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9wb2x5X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfcG9seV9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDgpKSkKdWludDE2eDhfdCB2bXVsbGJxX3BvbHkodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5X3hfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfcG9seV94X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCB2bXVsbGJxX3BvbHlfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczE2KSkpCmludDMyeDRfdCB2bXVsbHRxX2ludF9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczE2KSkpCmludDMyeDRfdCB2bXVsbHRxX2ludF9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IHZtdWxsdHFfaW50X21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IHZtdWxsdHFfaW50X20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3M4KSkpCmludDE2eDhfdCB2bXVsbHRxX2ludF9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zOCkpKQppbnQxNng4X3Qgdm11bGx0cV9pbnRfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9pbnRfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfaW50X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IHZtdWxsdHFfaW50X21fdTMyKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCB2bXVsbHRxX2ludF9tKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfaW50X21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3U4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9pbnRfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3MxNikpKQppbnQzMng0X3Qgdm11bGx0cV9pbnRfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMTYpKSkKaW50MzJ4NF90IHZtdWxsdHFfaW50KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsdHFfaW50X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczMyKSkpCmludDY0eDJfdCB2bXVsbHRxX2ludChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczgpKSkKaW50MTZ4OF90IHZtdWxsdHFfaW50X3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zOCkpKQppbnQxNng4X3Qgdm11bGx0cV9pbnQoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfaW50X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX2ludCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MzIpKSkKdWludDY0eDJfdCB2bXVsbHRxX2ludF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGx0cV9pbnQodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTgpKSkKdWludDE2eDhfdCB2bXVsbHRxX2ludF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91OCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfaW50KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczE2KSkpCmludDMyeDRfdCB2bXVsbHRxX2ludF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MxNikpKQppbnQzMng0X3Qgdm11bGx0cV9pbnRfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MzMikpKQppbnQ2NHgyX3Qgdm11bGx0cV9pbnRfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsdHFfaW50X3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zOCkpKQppbnQxNng4X3Qgdm11bGx0cV9pbnRfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3M4KSkpCmludDE2eDhfdCB2bXVsbHRxX2ludF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9pbnRfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfaW50X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsdHFfaW50X3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCB2bXVsbHRxX2ludF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfaW50X3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3U4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9pbnRfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfcG9seV9tX3AxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfcG9seV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCB2bXVsbHRxX3BvbHlfbV9wOCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9wb2x5X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfcG9seV9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDgpKSkKdWludDE2eDhfdCB2bXVsbHRxX3BvbHkodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5X3hfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfcG9seV94X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCB2bXVsbHRxX3BvbHlfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3MxNikpKQppbnQxNng4X3Qgdm11bHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczMyKSkpCmludDMyeDRfdCB2bXVscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3M4KSkpCmludDh4MTZfdCB2bXVscV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczgpKSkKaW50OHgxNl90IHZtdWxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTgpKSkKdWludDh4MTZfdCB2bXVscV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTgpKSkKdWludDh4MTZfdCB2bXVscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MzMikpKQppbnQzMng0X3Qgdm11bHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MzMikpKQppbnQzMng0X3Qgdm11bHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczgpKSkKaW50OHgxNl90IHZtdWxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3M4KSkpCmludDh4MTZfdCB2bXVscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91MTYpKSkKdWludDE2eDhfdCB2bXVscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3UzMikpKQp1aW50MzJ4NF90IHZtdWxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTgpKSkKdWludDh4MTZfdCB2bXVscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMTYpKSkKaW50MTZ4OF90IHZtdWxxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zOCkpKQppbnQ4eDE2X3Qgdm11bHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTgpKSkKdWludDh4MTZfdCB2bXVscV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTgpKSkKdWludDh4MTZfdCB2bXVscSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczE2KSkpCmludDE2eDhfdCB2bXVscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczMyKSkpCmludDMyeDRfdCB2bXVscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3MzMikpKQppbnQzMng0X3Qgdm11bHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3M4KSkpCmludDh4MTZfdCB2bXVscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczgpKSkKaW50OHgxNl90IHZtdWxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91MTYpKSkKdWludDE2eDhfdCB2bXVscV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTE2KSkpCnVpbnQxNng4X3Qgdm11bHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3UzMikpKQp1aW50MzJ4NF90IHZtdWxxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTgpKSkKdWludDh4MTZfdCB2bXVscSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczE2KSkpCmludDE2eDhfdCB2bXVscV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczE2KSkpCmludDE2eDhfdCB2bXVscV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczMyKSkpCmludDMyeDRfdCB2bXVscV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczMyKSkpCmludDMyeDRfdCB2bXVscV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczgpKSkKaW50OHgxNl90IHZtdWxxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczgpKSkKaW50OHgxNl90IHZtdWxxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZtdWxxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZtdWxxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZtdWxxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZtdWxxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczE2KSkpCmludDE2eDhfdCB2bXVscV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MxNikpKQppbnQxNng4X3Qgdm11bHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MzMikpKQppbnQzMng0X3Qgdm11bHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3M4KSkpCmludDh4MTZfdCB2bXVscV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UxNikpKQp1aW50MTZ4OF90IHZtdWxxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UzMikpKQp1aW50MzJ4NF90IHZtdWxxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91MzIpKSkKdWludDMyeDRfdCB2bXVscV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91OCkpKQp1aW50OHgxNl90IHZtdWxxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MTYpKSkKdWludDE2eDhfdCB2bXZucV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MTYpKSkKdWludDE2eDhfdCB2bXZucV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MzIpKSkKdWludDMyeDRfdCB2bXZucV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MzIpKSkKdWludDMyeDRfdCB2bXZucV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczE2KSkpCmludDE2eDhfdCB2bXZucV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MxNikpKQppbnQxNng4X3Qgdm12bnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MzMikpKQppbnQzMng0X3Qgdm12bnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm12bnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3M4KSkpCmludDh4MTZfdCB2bXZucV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTE2KSkpCnVpbnQxNng4X3Qgdm12bnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91MzIpKSkKdWludDMyeDRfdCB2bXZucV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91OCkpKQp1aW50OHgxNl90IHZtdm5xX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm12bnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX25fczE2KSkpCmludDE2eDhfdCB2bXZucV9uX3MxNihpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9uX3MzMikpKQppbnQzMng0X3Qgdm12bnFfbl9zMzIoaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl91MTYpKSkKdWludDE2eDhfdCB2bXZucV9uX3UxNih1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl91MzIpKSkKdWludDMyeDRfdCB2bXZucV9uX3UzMih1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczE2KSkpCmludDE2eDhfdCB2bXZucV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMTYpKSkKaW50MTZ4OF90IHZtdm5xKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczMyKSkpCmludDMyeDRfdCB2bXZucV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMzIpKSkKaW50MzJ4NF90IHZtdm5xKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczgpKSkKaW50OHgxNl90IHZtdm5xX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczgpKSkKaW50OHgxNl90IHZtdm5xKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTE2KSkpCnVpbnQxNng4X3Qgdm12bnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UxNikpKQp1aW50MTZ4OF90IHZtdm5xKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91MzIpKSkKdWludDMyeDRfdCB2bXZucSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91OCkpKQp1aW50OHgxNl90IHZtdm5xX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3U4KSkpCnVpbnQ4eDE2X3Qgdm12bnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9uX3MxNikpKQppbnQxNng4X3Qgdm12bnFfeF9uX3MxNihpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX3hfbl9zMzIoaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fdTE2KSkpCnVpbnQxNng4X3Qgdm12bnFfeF9uX3UxNih1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fdTMyKSkpCnVpbnQzMng0X3Qgdm12bnFfeF9uX3UzMih1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MxNikpKQppbnQxNng4X3Qgdm12bnFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczE2KSkpCmludDE2eDhfdCB2bXZucV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MzMikpKQppbnQzMng0X3Qgdm12bnFfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczMyKSkpCmludDMyeDRfdCB2bXZucV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3M4KSkpCmludDh4MTZfdCB2bXZucV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3M4KSkpCmludDh4MTZfdCB2bXZucV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MTYpKSkKdWludDE2eDhfdCB2bXZucV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MzIpKSkKdWludDMyeDRfdCB2bXZucV94X3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm12bnFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTgpKSkKdWludDh4MTZfdCB2bXZucV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91OCkpKQp1aW50OHgxNl90IHZtdm5xX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3MxNikpKQppbnQxNng4X3Qgdm5lZ3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IHZuZWdxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMzIpKSkKaW50MzJ4NF90IHZuZWdxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczMyKSkpCmludDMyeDRfdCB2bmVncV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczgpKSkKaW50OHgxNl90IHZuZWdxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zOCkpKQppbnQ4eDE2X3Qgdm5lZ3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMTYpKSkKaW50MTZ4OF90IHZuZWdxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MxNikpKQppbnQxNng4X3Qgdm5lZ3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMzIpKSkKaW50MzJ4NF90IHZuZWdxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MzMikpKQppbnQzMng0X3Qgdm5lZ3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zOCkpKQppbnQ4eDE2X3Qgdm5lZ3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zOCkpKQppbnQ4eDE2X3Qgdm5lZ3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MxNikpKQppbnQxNng4X3Qgdm5lZ3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczE2KSkpCmludDE2eDhfdCB2bmVncV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MzMikpKQppbnQzMng0X3Qgdm5lZ3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczMyKSkpCmludDMyeDRfdCB2bmVncV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3M4KSkpCmludDh4MTZfdCB2bmVncV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3M4KSkpCmludDh4MTZfdCB2bmVncV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MxNikpKQppbnQxNng4X3Qgdm9ybnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MxNikpKQppbnQxNng4X3Qgdm9ybnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczMyKSkpCmludDMyeDRfdCB2b3JucV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczMyKSkpCmludDMyeDRfdCB2b3JucV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm9ybnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczgpKSkKaW50OHgxNl90IHZvcm5xX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3UxNikpKQp1aW50MTZ4OF90IHZvcm5xX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MTYpKSkKdWludDE2eDhfdCB2b3JucV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MzIpKSkKdWludDMyeDRfdCB2b3JucV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTMyKSkpCnVpbnQzMng0X3Qgdm9ybnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTgpKSkKdWludDh4MTZfdCB2b3JucV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91OCkpKQp1aW50OHgxNl90IHZvcm5xX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zMTYpKSkKaW50MTZ4OF90IHZvcm5xX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczE2KSkpCmludDE2eDhfdCB2b3JucShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczMyKSkpCmludDMyeDRfdCB2b3JucV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3MzMikpKQppbnQzMng0X3Qgdm9ybnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3M4KSkpCmludDh4MTZfdCB2b3JucV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczgpKSkKaW50OHgxNl90IHZvcm5xKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91MTYpKSkKdWludDE2eDhfdCB2b3JucV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTE2KSkpCnVpbnQxNng4X3Qgdm9ybnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTMyKSkpCnVpbnQzMng0X3Qgdm9ybnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3UzMikpKQp1aW50MzJ4NF90IHZvcm5xKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3U4KSkpCnVpbnQ4eDE2X3Qgdm9ybnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTgpKSkKdWludDh4MTZfdCB2b3JucSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3MxNikpKQppbnQxNng4X3Qgdm9ybnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMTYpKSkKaW50MTZ4OF90IHZvcm5xX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMzIpKSkKaW50MzJ4NF90IHZvcm5xX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczMyKSkpCmludDMyeDRfdCB2b3JucV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczgpKSkKaW50OHgxNl90IHZvcm5xX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zOCkpKQppbnQ4eDE2X3Qgdm9ybnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3UxNikpKQp1aW50MTZ4OF90IHZvcm5xX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MTYpKSkKdWludDE2eDhfdCB2b3JucV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MzIpKSkKdWludDMyeDRfdCB2b3JucV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm9ybnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTgpKSkKdWludDh4MTZfdCB2b3JucV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91OCkpKQp1aW50OHgxNl90IHZvcm5xX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczE2KSkpCmludDE2eDhfdCB2b3JycV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczE2KSkpCmludDE2eDhfdCB2b3JycV9tX24oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX21fbihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZvcnJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZvcnJxX21fbih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnFfbV9uKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczE2KSkpCmludDE2eDhfdCB2b3JycV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczE2KSkpCmludDE2eDhfdCB2b3JycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3M4KSkpCmludDh4MTZfdCB2b3JycV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm9ycnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UxNikpKQp1aW50MTZ4OF90IHZvcnJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UzMikpKQp1aW50MzJ4NF90IHZvcnJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91MzIpKSkKdWludDMyeDRfdCB2b3JycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91OCkpKQp1aW50OHgxNl90IHZvcnJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm9ycnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczE2KSkpCmludDE2eDhfdCB2b3JycV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczE2KSkpCmludDE2eDhfdCB2b3JycShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczMyKSkpCmludDMyeDRfdCB2b3JycV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczMyKSkpCmludDMyeDRfdCB2b3JycShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3MxNikpKQppbnQxNng4X3Qgdm9ycnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMTYpKSkKaW50MTZ4OF90IHZvcnJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczMyKSkpCmludDMyeDRfdCB2b3JycShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczgpKSkKaW50OHgxNl90IHZvcnJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zOCkpKQppbnQ4eDE2X3Qgdm9ycnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3UxNikpKQp1aW50MTZ4OF90IHZvcnJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MTYpKSkKdWludDE2eDhfdCB2b3JycSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MzIpKSkKdWludDMyeDRfdCB2b3JycV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTgpKSkKdWludDh4MTZfdCB2b3JycV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91OCkpKQp1aW50OHgxNl90IHZvcnJxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczE2KSkpCmludDE2eDhfdCB2b3JycV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MxNikpKQppbnQxNng4X3Qgdm9ycnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MzMikpKQppbnQzMng0X3Qgdm9ycnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zOCkpKQppbnQ4eDE2X3Qgdm9ycnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3M4KSkpCmludDh4MTZfdCB2b3JycV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UxNikpKQp1aW50MTZ4OF90IHZvcnJxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UzMikpKQp1aW50MzJ4NF90IHZvcnJxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91MzIpKSkKdWludDMyeDRfdCB2b3JycV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91OCkpKQp1aW50OHgxNl90IHZvcnJxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm9ycnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwbm90KSkpCm12ZV9wcmVkMTZfdCB2cG5vdChtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMTYpKSkKaW50MTZ4OF90IHZwc2VscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MxNikpKQppbnQxNng4X3QgdnBzZWxxKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMzIpKSkKaW50MzJ4NF90IHZwc2VscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MzMikpKQppbnQzMng0X3QgdnBzZWxxKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zNjQpKSkKaW50NjR4Ml90IHZwc2VscV9zNjQoaW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3M2NCkpKQppbnQ2NHgyX3QgdnBzZWxxKGludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zOCkpKQppbnQ4eDE2X3QgdnBzZWxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zOCkpKQppbnQ4eDE2X3QgdnBzZWxxKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MTYpKSkKdWludDE2eDhfdCB2cHNlbHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UxNikpKQp1aW50MTZ4OF90IHZwc2VscSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MzIpKSkKdWludDMyeDRfdCB2cHNlbHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UzMikpKQp1aW50MzJ4NF90IHZwc2VscSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91NjQpKSkKdWludDY0eDJfdCB2cHNlbHFfdTY0KHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3U2NCkpKQp1aW50NjR4Ml90IHZwc2VscSh1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91OCkpKQp1aW50OHgxNl90IHZwc2VscV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91OCkpKQp1aW50OHgxNl90IHZwc2VscSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MxNikpKQppbnQxNng4X3QgdnFhYnNxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MxNikpKQppbnQxNng4X3QgdnFhYnNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczMyKSkpCmludDMyeDRfdCB2cWFic3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczMyKSkpCmludDMyeDRfdCB2cWFic3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zOCkpKQppbnQ4eDE2X3QgdnFhYnNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczgpKSkKaW50OHgxNl90IHZxYWJzcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zMTYpKSkKaW50MTZ4OF90IHZxYWJzcV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczE2KSkpCmludDE2eDhfdCB2cWFic3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczMyKSkpCmludDMyeDRfdCB2cWFic3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3MzMikpKQppbnQzMng0X3QgdnFhYnNxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3M4KSkpCmludDh4MTZfdCB2cWFic3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczgpKSkKaW50OHgxNl90IHZxYWJzcShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczE2KSkpCmludDE2eDhfdCB2cWFkZHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCB2cWFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWFkZHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxYWRkcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cWFkZHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCB2cWFkZHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IHZxYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczE2KSkpCmludDE2eDhfdCB2cWFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczMyKSkpCmludDMyeDRfdCB2cWFkZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczgpKSkKaW50OHgxNl90IHZxYWRkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczgpKSkKaW50OHgxNl90IHZxYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2cWFkZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2cWFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZxYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczE2KSkpCmludDE2eDhfdCB2cWFkZHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3MzMikpKQppbnQzMng0X3QgdnFhZGRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczMyKSkpCmludDMyeDRfdCB2cWFkZHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFhZGRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3M4KSkpCmludDh4MTZfdCB2cWFkZHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IHZxYWRkcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91MzIpKSkKdWludDMyeDRfdCB2cWFkZHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTgpKSkKdWludDh4MTZfdCB2cWFkZHFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91OCkpKQp1aW50OHgxNl90IHZxYWRkcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczE2KSkpCmludDE2eDhfdCB2cWFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczE2KSkpCmludDE2eDhfdCB2cWFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3M4KSkpCmludDh4MTZfdCB2cWFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zOCkpKQppbnQ4eDE2X3QgdnFhZGRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MzIpKSkKdWludDMyeDRfdCB2cWFkZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MzIpKSkKdWludDMyeDRfdCB2cWFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91OCkpKQp1aW50OHgxNl90IHZxYWRkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWRocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczE2KSkpCmludDE2eDhfdCB2cWRtbGFkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWRocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczMyKSkpCmludDMyeDRfdCB2cWRtbGFkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczgpKSkKaW50OHgxNl90IHZxZG1sYWRocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczgpKSkKaW50OHgxNl90IHZxZG1sYWRocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtbGFkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGh4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGh4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3M4KSkpCmludDh4MTZfdCB2cWRtbGFkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWRoeHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczMyKSkpCmludDMyeDRfdCB2cWRtbGFkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IHZxZG1sYWRoeHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczE2KSkpCmludDE2eDhfdCB2cWRtbGFocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFkbWxhaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCB2cWRtbGFocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWhxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgdnFkbWxhaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCB2cWRtbGFocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczgpKSkKaW50OHgxNl90IHZxZG1sYWhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczE2KSkpCmludDE2eDhfdCB2cWRtbGFzaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFkbWxhc2hxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYXNocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczMyKSkpCmludDMyeDRfdCB2cWRtbGFzaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFzaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhc2hxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYXNocV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCB2cWRtbGFzaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3MzMikpKQppbnQzMng0X3QgdnFkbWxhc2hxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYXNocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IHZxZG1sYXNocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFzaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtbHNkaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IHZxZG1sc2RocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IHZxZG1sc2RocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MxNikpKQppbnQxNng4X3QgdnFkbWxzZGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczE2KSkpCmludDE2eDhfdCB2cWRtbHNkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgdnFkbWxzZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3M4KSkpCmludDh4MTZfdCB2cWRtbHNkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3M4KSkpCmludDh4MTZfdCB2cWRtbHNkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxzZGh4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IHZxZG1sc2RoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxzZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RoeHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCB2cWRtbHNkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3MzMikpKQppbnQzMng0X3QgdnFkbWxzZGh4cShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCB2cWRtbHNkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczgpKSkKaW50OHgxNl90IHZxZG1sc2RoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFkbXVsaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IHZxZG11bGhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cWRtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczMyKSkpCmludDMyeDRfdCB2cWRtdWxocV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczMyKSkpCmludDMyeDRfdCB2cWRtdWxocShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczgpKSkKaW50OHgxNl90IHZxZG11bGhxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczgpKSkKaW50OHgxNl90IHZxZG11bGhxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczE2KSkpCmludDE2eDhfdCB2cWRtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczMyKSkpCmludDMyeDRfdCB2cWRtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3MzMikpKQppbnQzMng0X3QgdnFkbXVsaHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3M4KSkpCmludDh4MTZfdCB2cWRtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczgpKSkKaW50OHgxNl90IHZxZG11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbGJxX21fbl9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsYnFfbV9uX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbGJxX20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsYnFfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsYnFfbV9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsYnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbGJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsYnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczE2KSkpCmludDMyeDRfdCB2cWRtdWxsYnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczE2KSkpCmludDMyeDRfdCB2cWRtdWxsYnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGx0cV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX25fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbHRxX21fbl9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGx0cV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbHRxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbHRxX21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHFfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbHRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX25fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbl9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGx0cV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbHRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbHRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbHRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fczE2KSkpCmludDh4MTZfdCB2cW1vdm5icV9tX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3QgdnFtb3ZuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MzMikpKQppbnQxNng4X3QgdnFtb3ZuYnFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IHZxbW92bmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCB2cW1vdm5icV9tX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTE2KSkpCnVpbnQ4eDE2X3QgdnFtb3ZuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTMyKSkpCnVpbnQxNng4X3QgdnFtb3ZuYnFfbV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IHZxbW92bmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9zMTYpKSkKaW50OHgxNl90IHZxbW92bmJxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczE2KSkpCmludDh4MTZfdCB2cW1vdm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczMyKSkpCmludDE2eDhfdCB2cW1vdm5icV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3MzMikpKQppbnQxNng4X3QgdnFtb3ZuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3UxNikpKQp1aW50OHgxNl90IHZxbW92bmJxX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MTYpKSkKdWludDh4MTZfdCB2cW1vdm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm5icV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3QgdnFtb3ZuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IHZxbW92bnRxX21fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczE2KSkpCmludDh4MTZfdCB2cW1vdm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczMyKSkpCmludDE2eDhfdCB2cW1vdm50cV9tX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3MzMikpKQppbnQxNng4X3QgdnFtb3ZudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IHZxbW92bnRxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCB2cW1vdm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm50cV9tX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fdTMyKSkpCnVpbnQxNng4X3QgdnFtb3ZudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3MxNikpKQppbnQ4eDE2X3QgdnFtb3ZudHFfczE2KGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMTYpKSkKaW50OHgxNl90IHZxbW92bnRxKGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMzIpKSkKaW50MTZ4OF90IHZxbW92bnRxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfczMyKSkpCmludDE2eDhfdCB2cW1vdm50cShpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3QgdnFtb3ZudHFfdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UxNikpKQp1aW50OHgxNl90IHZxbW92bnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UzMikpKQp1aW50MTZ4OF90IHZxbW92bnRxX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVuYnFfbV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW5icV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVuYnFfbV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW5icV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczE2KSkpCnVpbnQ4eDE2X3QgdnFtb3Z1bmJxX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVuYnEodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczMyKSkpCnVpbnQxNng4X3QgdnFtb3Z1bmJxX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVuYnEodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVudHFfbV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW50cV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVudHFfbV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW50cV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczE2KSkpCnVpbnQ4eDE2X3QgdnFtb3Z1bnRxX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVudHEodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczMyKSkpCnVpbnQxNng4X3QgdnFtb3Z1bnRxX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVudHEodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IHZxbmVncV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IHZxbmVncV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MzMikpKQppbnQzMng0X3QgdnFuZWdxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MzMikpKQppbnQzMng0X3QgdnFuZWdxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczgpKSkKaW50OHgxNl90IHZxbmVncV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3M4KSkpCmludDh4MTZfdCB2cW5lZ3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczE2KSkpCmludDE2eDhfdCB2cW5lZ3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MxNikpKQppbnQxNng4X3QgdnFuZWdxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MzMikpKQppbnQzMng0X3QgdnFuZWdxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zMzIpKSkKaW50MzJ4NF90IHZxbmVncShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zOCkpKQppbnQ4eDE2X3QgdnFuZWdxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3M4KSkpCmludDh4MTZfdCB2cW5lZ3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhZGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWRocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFkaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczgpKSkKaW50OHgxNl90IHZxcmRtbGFkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRoeHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGh4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtbGFkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFkaHhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWRoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWRoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IHZxcmRtbGFkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWhxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYXNocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYXNocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYXNocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYXNocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhc2hxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhc2hxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhc2hxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhc2hxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhc2hxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhc2hxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFzaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFzaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sc2RocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbHNkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxzZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sc2RocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczE2KSkpCmludDE2eDhfdCB2cXJkbWxzZGhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczMyKSkpCmludDMyeDRfdCB2cXJkbWxzZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3M4KSkpCmludDh4MTZfdCB2cXJkbWxzZGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbWxzZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCB2cXJkbWxzZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCB2cXJkbWxzZGh4cShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbHNkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbHNkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCB2cXJkbWxzZGh4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sc2RoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG11bGhxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtdWxocV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG11bGhxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtdWxocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zOCkpKQppbnQ4eDE2X3QgdnFyZG11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxcnNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCB2cXJzaGxxX21fbihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyc2hscV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZxcnNobHFfbV9uKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxX21fbl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxX21fbih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxcnNobHFfbV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxcnNobHFfbV9uKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxX21fbl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFyc2hscV9tX24odWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczE2KSkpCmludDE2eDhfdCB2cXJzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MxNikpKQppbnQxNng4X3QgdnFyc2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MzMikpKQppbnQzMng0X3QgdnFyc2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcnNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyc2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFyc2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZxcnNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZxcnNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91MzIpKSkKdWludDMyeDRfdCB2cXJzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91OCkpKQp1aW50OHgxNl90IHZxcnNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFyc2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczE2KSkpCmludDE2eDhfdCB2cXJzaGxxX25fczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3MxNikpKQppbnQxNng4X3QgdnFyc2hscShpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcnNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczMyKSkpCmludDMyeDRfdCB2cXJzaGxxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxX25fczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczgpKSkKaW50OHgxNl90IHZxcnNobHEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFyc2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFyc2hscSh1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscSh1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxX25fdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFyc2hscSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MxNikpKQppbnQxNng4X3QgdnFyc2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczE2KSkpCmludDE2eDhfdCB2cXJzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MzMikpKQppbnQzMng0X3QgdnFyc2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczMyKSkpCmludDMyeDRfdCB2cXJzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3UxNikpKQp1aW50MTZ4OF90IHZxcnNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MzIpKSkKdWludDMyeDRfdCB2cXJzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91OCkpKQp1aW50OHgxNl90IHZxcnNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IHZxcnNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IHZxcnNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZxcnNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZxcnNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2cXJzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2cXJzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCB2cXJzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCB2cXJzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZxcnNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZxcnNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IHZxcnNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IHZxcnNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2cXJzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2cXJzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2cXJzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2cXJzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMTYpKSkKdWludDh4MTZfdCB2cXJzaHJ1bmJxX21fbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hydW5icV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxcnNocnVuYnFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCB2cXJzaHJ1bmJxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVuYnFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbl9zMTYpKSkKdWludDh4MTZfdCB2cXJzaHJ1bmJxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW5icV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IHZxcnNocnVuYnEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVudHFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCB2cXJzaHJ1bnRxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW50cV9tX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxcnNocnVudHFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hydW50cV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVudHEodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXJzaHJ1bnRxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW50cSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9tX24oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX21fbihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZxc2hscV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXNobHFfbV9uKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbV9uKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9tX24odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX21fbih1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9tX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX21fcihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9tX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX21fcihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX21fcl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX21fcihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX21fcih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX21fcl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9tX3IodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX21fcl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbV9yKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczE2KSkpCmludDE2eDhfdCB2cXNobHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczMyKSkpCmludDMyeDRfdCB2cXNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczgpKSkKaW50OHgxNl90IHZxc2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczgpKSkKaW50OHgxNl90IHZxc2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczE2KSkpCmludDE2eDhfdCB2cXNobHFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX24oaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9uKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3M4KSkpCmludDh4MTZfdCB2cXNobHFfbihpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX24odWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfbih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91OCkpKQp1aW50OHgxNl90IHZxc2hscV9uKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczE2KSkpCmludDE2eDhfdCB2cXNobHFfcl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9yKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczMyKSkpCmludDMyeDRfdCB2cXNobHFfcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9yKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczgpKSkKaW50OHgxNl90IHZxc2hscV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczgpKSkKaW50OHgxNl90IHZxc2hscV9yKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX3JfdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV9yKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfcih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91OCkpKQp1aW50OHgxNl90IHZxc2hscV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX3IodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MxNikpKQppbnQxNng4X3QgdnFzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczMyKSkpCmludDMyeDRfdCB2cXNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczMyKSkpCmludDMyeDRfdCB2cXNobHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczgpKSkKaW50OHgxNl90IHZxc2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV91MTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczE2KSkpCnVpbnQxNng4X3QgdnFzaGx1cV9tX25fczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3MxNikpKQp1aW50MTZ4OF90IHZxc2hsdXFfbSh1aW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zMzIpKSkKdWludDMyeDRfdCB2cXNobHVxX21fbl9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczMyKSkpCnVpbnQzMng0X3QgdnFzaGx1cV9tKHVpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3M4KSkpCnVpbnQ4eDE2X3QgdnFzaGx1cV9tX25fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczgpKSkKdWludDh4MTZfdCB2cXNobHVxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MxNikpKQp1aW50MTZ4OF90IHZxc2hsdXFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zMTYpKSkKdWludDE2eDhfdCB2cXNobHVxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczMyKSkpCnVpbnQzMng0X3QgdnFzaGx1cV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MzMikpKQp1aW50MzJ4NF90IHZxc2hsdXEoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zOCkpKQp1aW50OHgxNl90IHZxc2hsdXFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3M4KSkpCnVpbnQ4eDE2X3QgdnFzaGx1cShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJuYnFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2cXNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybmJxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybmJxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fczMyKSkpCmludDE2eDhfdCB2cXNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm5icV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCB2cXNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJudHFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZxc2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxc2hybnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybnRxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fczE2KSkpCmludDh4MTZfdCB2cXNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IHZxc2hybnRxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IHZxc2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm50cV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgdnFzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW5icV9tX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bmJxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVuYnFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW5icV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW5icV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bmJxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVuYnFfbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW5icSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCB2cXNocnVudHFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW50cV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgdnFzaHJ1bnRxX21fbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVudHFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMTYpKSkKdWludDh4MTZfdCB2cXNocnVudHFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW50cSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgdnFzaHJ1bnRxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVudHEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczE2KSkpCmludDE2eDhfdCB2cXN1YnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxc3VicV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczMyKSkpCmludDMyeDRfdCB2cXN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXN1YnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxc3VicV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cXN1YnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCB2cXN1YnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IHZxc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczE2KSkpCmludDE2eDhfdCB2cXN1YnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IHZxc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczMyKSkpCmludDMyeDRfdCB2cXN1YnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IHZxc3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczgpKSkKaW50OHgxNl90IHZxc3VicV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczgpKSkKaW50OHgxNl90IHZxc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MzIpKSkKdWludDMyeDRfdCB2cXN1YnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MzIpKSkKdWludDMyeDRfdCB2cXN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91OCkpKQp1aW50OHgxNl90IHZxc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczE2KSkpCmludDE2eDhfdCB2cXN1YnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IHZxc3VicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3MzMikpKQppbnQzMng0X3QgdnFzdWJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczMyKSkpCmludDMyeDRfdCB2cXN1YnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgdnFzdWJxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3M4KSkpCmludDh4MTZfdCB2cXN1YnEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IHZxc3VicV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91MzIpKSkKdWludDMyeDRfdCB2cXN1YnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTgpKSkKdWludDh4MTZfdCB2cXN1YnFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91OCkpKQp1aW50OHgxNl90IHZxc3VicSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczE2KSkpCmludDE2eDhfdCB2cXN1YnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczE2KSkpCmludDE2eDhfdCB2cXN1YnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMzIpKSkKaW50MzJ4NF90IHZxc3VicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMzIpKSkKaW50MzJ4NF90IHZxc3VicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3M4KSkpCmludDh4MTZfdCB2cXN1YnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zOCkpKQppbnQ4eDE2X3QgdnFzdWJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MzIpKSkKdWludDMyeDRfdCB2cXN1YnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MzIpKSkKdWludDMyeDRfdCB2cXN1YnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91OCkpKQp1aW50OHgxNl90IHZxc3VicSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zMzIpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3MzMikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zNjQpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3M2NCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zOCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zOCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MTYpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MTYpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UzMikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UzMikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTY0KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTY0KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91OCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTgpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3MxNikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M2NCkpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczY0KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M4KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M4KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UxNikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UxNikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzIodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTMyKSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTMyKSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91NjQpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91NjQpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U4KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91OCkpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzIodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczE2KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczMyKSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMzIpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczgpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczgpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTE2KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTE2KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MzIpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MzIpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U2NCkpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U2NCkpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTgpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U4KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MxNikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MxNikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczMyKSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczMyKSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zNjQpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zNjQpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3UxNikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MTYpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTMyKSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTY0KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U2NCkpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U4KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTgpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczE2KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczE2KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMzIpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMzIpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M2NCkpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M2NCkpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczgpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M4KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91MzIpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTMyKSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTY0KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U2NCkpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U4KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTgpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMTYpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMTYpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MzMikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MzMikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczY0KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczY0KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zOCkpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczgpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3UxNikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91MTYpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91NjQpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTY0KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTgpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91OCkpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MxNikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MxNikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczMyKSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczMyKSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zNjQpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zNjQpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3M4KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zOCkpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UxNikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UzMikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91MzIpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91OCkpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3U4KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zMTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczE2KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczMyKSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MzMikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M2NCkpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zNjQpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zOCkpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M4KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTE2KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTMyKSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MzIpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTY0KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91NjQpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjE2cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjE2cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV91OCkpKQp1aW50OHgxNl90IHZyZXYxNnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV91OCkpKQp1aW50OHgxNl90IHZyZXYxNnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfczgpKSkKaW50OHgxNl90IHZyZXYxNnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3M4KSkpCmludDh4MTZfdCB2cmV2MTZxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV91OCkpKQp1aW50OHgxNl90IHZyZXYxNnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV91OCkpKQp1aW50OHgxNl90IHZyZXYxNnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV94X3M4KSkpCmludDh4MTZfdCB2cmV2MTZxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfeF9zOCkpKQppbnQ4eDE2X3QgdnJldjE2cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfdTgpKSkKdWludDh4MTZfdCB2cmV2MTZxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfdTgpKSkKdWludDh4MTZfdCB2cmV2MTZxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczE2KSkpCmludDE2eDhfdCB2cmV2MzJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9zMTYpKSkKaW50MTZ4OF90IHZyZXYzMnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczgpKSkKaW50OHgxNl90IHZyZXYzMnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczgpKSkKaW50OHgxNl90IHZyZXYzMnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTE2KSkpCnVpbnQxNng4X3QgdnJldjMycV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV91MTYpKSkKdWludDE2eDhfdCB2cmV2MzJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTgpKSkKdWludDh4MTZfdCB2cmV2MzJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTgpKSkKdWludDh4MTZfdCB2cmV2MzJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3MxNikpKQppbnQxNng4X3QgdnJldjMycV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3MxNikpKQppbnQxNng4X3QgdnJldjMycShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfczgpKSkKaW50OHgxNl90IHZyZXYzMnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3M4KSkpCmludDh4MTZfdCB2cmV2MzJxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91MTYpKSkKdWludDE2eDhfdCB2cmV2MzJxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3UxNikpKQp1aW50MTZ4OF90IHZyZXYzMnEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91OCkpKQp1aW50OHgxNl90IHZyZXYzMnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91OCkpKQp1aW50OHgxNl90IHZyZXYzMnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3MxNikpKQppbnQxNng4X3QgdnJldjMycV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3MxNikpKQppbnQxNng4X3QgdnJldjMycV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfczgpKSkKaW50OHgxNl90IHZyZXYzMnFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3M4KSkpCmludDh4MTZfdCB2cmV2MzJxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91MTYpKSkKdWludDE2eDhfdCB2cmV2MzJxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3UxNikpKQp1aW50MTZ4OF90IHZyZXYzMnFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91OCkpKQp1aW50OHgxNl90IHZyZXYzMnFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91OCkpKQp1aW50OHgxNl90IHZyZXYzMnFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMTYpKSkKaW50MTZ4OF90IHZyZXY2NHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MxNikpKQppbnQxNng4X3QgdnJldjY0cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMzIpKSkKaW50MzJ4NF90IHZyZXY2NHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MzMikpKQppbnQzMng0X3QgdnJldjY0cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjY0cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjY0cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MTYpKSkKdWludDE2eDhfdCB2cmV2NjRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UxNikpKQp1aW50MTZ4OF90IHZyZXY2NHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MzIpKSkKdWludDMyeDRfdCB2cmV2NjRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UzMikpKQp1aW50MzJ4NF90IHZyZXY2NHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91OCkpKQp1aW50OHgxNl90IHZyZXY2NHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91OCkpKQp1aW50OHgxNl90IHZyZXY2NHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczE2KSkpCmludDE2eDhfdCB2cmV2NjRxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczE2KSkpCmludDE2eDhfdCB2cmV2NjRxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMzIpKSkKaW50MzJ4NF90IHZyZXY2NHFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMzIpKSkKaW50MzJ4NF90IHZyZXY2NHEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3M4KSkpCmludDh4MTZfdCB2cmV2NjRxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zOCkpKQppbnQ4eDE2X3QgdnJldjY0cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTE2KSkpCnVpbnQxNng4X3QgdnJldjY0cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MTYpKSkKdWludDE2eDhfdCB2cmV2NjRxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTMyKSkpCnVpbnQzMng0X3QgdnJldjY0cV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MzIpKSkKdWludDMyeDRfdCB2cmV2NjRxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTgpKSkKdWludDh4MTZfdCB2cmV2NjRxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTgpKSkKdWludDh4MTZfdCB2cmV2NjRxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMTYpKSkKaW50MTZ4OF90IHZyZXY2NHFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMTYpKSkKaW50MTZ4OF90IHZyZXY2NHFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MzMikpKQppbnQzMng0X3QgdnJldjY0cV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MzMikpKQppbnQzMng0X3QgdnJldjY0cV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczgpKSkKaW50OHgxNl90IHZyZXY2NHFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3M4KSkpCmludDh4MTZfdCB2cmV2NjRxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MTYpKSkKdWludDE2eDhfdCB2cmV2NjRxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UxNikpKQp1aW50MTZ4OF90IHZyZXY2NHFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MzIpKSkKdWludDMyeDRfdCB2cmV2NjRxX3hfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UzMikpKQp1aW50MzJ4NF90IHZyZXY2NHFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91OCkpKQp1aW50OHgxNl90IHZyZXY2NHFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91OCkpKQp1aW50OHgxNl90IHZyZXY2NHFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZyaGFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczE2KSkpCmludDE2eDhfdCB2cmhhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczMyKSkpCmludDMyeDRfdCB2cmhhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgdnJoYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3M4KSkpCmludDh4MTZfdCB2cmhhZGRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczgpKSkKaW50OHgxNl90IHZyaGFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MTYpKSkKdWludDE2eDhfdCB2cmhhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZyaGFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2cmhhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZyaGFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZyaGFkZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZyaGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczE2KSkpCmludDE2eDhfdCB2cmhhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMTYpKSkKaW50MTZ4OF90IHZyaGFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczMyKSkpCmludDMyeDRfdCB2cmhhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZyaGFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczgpKSkKaW50OHgxNl90IHZyaGFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczgpKSkKaW50OHgxNl90IHZyaGFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdnJoYWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MTYpKSkKdWludDE2eDhfdCB2cmhhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgdnJoYWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MzIpKSkKdWludDMyeDRfdCB2cmhhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTgpKSkKdWludDh4MTZfdCB2cmhhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTgpKSkKdWludDh4MTZfdCB2cmhhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZyaGFkZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MxNikpKQppbnQxNng4X3QgdnJoYWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IHZyaGFkZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MzMikpKQppbnQzMng0X3QgdnJoYWRkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJoYWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJoYWRkcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCB2cmhhZGRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UxNikpKQp1aW50MTZ4OF90IHZyaGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MzIpKSkKdWludDMyeDRfdCB2cmhhZGRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IHZyaGFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91OCkpKQp1aW50OHgxNl90IHZyaGFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91OCkpKQp1aW50OHgxNl90IHZyaGFkZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZoYXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF91MzIpKSkKdWludDY0X3QgdnJtbGFsZGF2aGFxX3BfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3UzMikpKQp1aW50NjRfdCB2cm1sYWxkYXZoYXFfcCh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3UzMikpKQp1aW50NjRfdCB2cm1sYWxkYXZoYXFfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhhcSh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhheHFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZocV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhxX3BfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF91MzIpKSkKdWludDY0X3QgdnJtbGFsZGF2aHFfcCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3UzMikpKQp1aW50NjRfdCB2cm1sYWxkYXZocV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmh4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZoeHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHhxX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmh4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGFxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmhhcV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXFfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGF4cV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZocV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9wX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHhxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aHhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmh4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoeHFfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aHhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cm11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MxNikpKQppbnQxNng4X3QgdnJtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MzMikpKQppbnQzMng0X3QgdnJtdWxocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZybXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cm11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTE2KSkpCnVpbnQxNng4X3QgdnJtdWxocV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MTYpKSkKdWludDE2eDhfdCB2cm11bGhxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3QgdnJtdWxocV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MzIpKSkKdWludDMyeDRfdCB2cm11bGhxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTgpKSkKdWludDh4MTZfdCB2cm11bGhxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTgpKSkKdWludDh4MTZfdCB2cm11bGhxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MxNikpKQppbnQxNng4X3QgdnJtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczE2KSkpCmludDE2eDhfdCB2cm11bGhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MzMikpKQppbnQzMng0X3QgdnJtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczMyKSkpCmludDMyeDRfdCB2cm11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3M4KSkpCmludDh4MTZfdCB2cm11bGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3M4KSkpCmludDh4MTZfdCB2cm11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UxNikpKQp1aW50MTZ4OF90IHZybXVsaHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTE2KSkpCnVpbnQxNng4X3QgdnJtdWxocSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UzMikpKQp1aW50MzJ4NF90IHZybXVsaHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTMyKSkpCnVpbnQzMng0X3QgdnJtdWxocSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgdnJtdWxocV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgdnJtdWxocSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczE2KSkpCmludDE2eDhfdCB2cm11bGhxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMTYpKSkKaW50MTZ4OF90IHZybXVsaHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczMyKSkpCmludDMyeDRfdCB2cm11bGhxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMzIpKSkKaW50MzJ4NF90IHZybXVsaHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczgpKSkKaW50OHgxNl90IHZybXVsaHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczgpKSkKaW50OHgxNl90IHZybXVsaHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnJtdWxocV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MTYpKSkKdWludDE2eDhfdCB2cm11bGhxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnJtdWxocV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MzIpKSkKdWludDMyeDRfdCB2cm11bGhxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCB2cm11bGhxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCB2cm11bGhxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnJzaGxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCB2cnNobHFfbV9uKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnJzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cnNobHFfbV9uKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cnNobHFfbV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cnNobHFfbV9uKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV9tX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cnNobHFfbV9uKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cnNobHFfbV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaGxxX21fbih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2cnNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZyc2hscV9tX24odWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MxNikpKQppbnQxNng4X3QgdnJzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IHZyc2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MzMikpKQppbnQzMng0X3QgdnJzaGxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2cnNobHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MzIpKSkKdWludDMyeDRfdCB2cnNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91OCkpKQp1aW50OHgxNl90IHZyc2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91OCkpKQp1aW50OHgxNl90IHZyc2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3MxNikpKQppbnQxNng4X3QgdnJzaGxxKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczMyKSkpCmludDMyeDRfdCB2cnNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hscShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3M4KSkpCmludDh4MTZfdCB2cnNobHFfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3M4KSkpCmludDh4MTZfdCB2cnNobHEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cnNobHFfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaGxxKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2cnNobHEodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2cnNobHFfbl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91OCkpKQp1aW50OHgxNl90IHZyc2hscSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczE2KSkpCmludDE2eDhfdCB2cnNobHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczE2KSkpCmludDE2eDhfdCB2cnNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMzIpKSkKaW50MzJ4NF90IHZyc2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMzIpKSkKaW50MzJ4NF90IHZyc2hscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3M4KSkpCmludDh4MTZfdCB2cnNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zOCkpKQppbnQ4eDE2X3QgdnJzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnJzaGxxX3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MTYpKSkKdWludDE2eDhfdCB2cnNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTMyKSkpCnVpbnQzMng0X3QgdnJzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MzIpKSkKdWludDMyeDRfdCB2cnNobHEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTgpKSkKdWludDh4MTZfdCB2cnNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTgpKSkKdWludDh4MTZfdCB2cnNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MzMikpKQppbnQzMng0X3QgdnJzaGxxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MzMikpKQppbnQzMng0X3QgdnJzaGxxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczgpKSkKaW50OHgxNl90IHZyc2hscV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3M4KSkpCmludDh4MTZfdCB2cnNobHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MTYpKSkKdWludDE2eDhfdCB2cnNobHFfeF91MTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV94KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MzIpKSkKdWludDMyeDRfdCB2cnNobHFfeF91MzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV94KHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91OCkpKQp1aW50OHgxNl90IHZyc2hscV94X3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91OCkpKQp1aW50OHgxNl90IHZyc2hscV94KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2cnNocm5icV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2cnNocm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJuYnFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczE2KSkpCmludDh4MTZfdCB2cnNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJuYnEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczMyKSkpCmludDE2eDhfdCB2cnNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybmJxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IHZyc2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2cnNocm50cV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnJzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnJzaHJudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCB2cnNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJudHFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZyc2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fczMyKSkpCmludDE2eDhfdCB2cnNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnJzaHJudHEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnJzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybnRxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2cnNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczE2KSkpCmludDE2eDhfdCB2cnNocnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczE2KSkpCmludDE2eDhfdCB2cnNocnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczMyKSkpCmludDMyeDRfdCB2cnNocnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczMyKSkpCmludDMyeDRfdCB2cnNocnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczgpKSkKaW50OHgxNl90IHZyc2hycV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3M4KSkpCmludDh4MTZfdCB2cnNocnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTgpKSkKdWludDh4MTZfdCB2cnNocnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaHJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MxNikpKQppbnQxNng4X3QgdnJzaHJxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hycShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczMyKSkpCmludDMyeDRfdCB2cnNocnFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MzMikpKQppbnQzMng0X3QgdnJzaHJxKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgdnJzaHJxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3M4KSkpCmludDh4MTZfdCB2cnNocnEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UxNikpKQp1aW50MTZ4OF90IHZyc2hycV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UxNikpKQp1aW50MTZ4OF90IHZyc2hycSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UzMikpKQp1aW50MzJ4NF90IHZyc2hycV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UzMikpKQp1aW50MzJ4NF90IHZyc2hycSh1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaHJxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91OCkpKQp1aW50OHgxNl90IHZyc2hycSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczE2KSkpCmludDE2eDhfdCB2cnNocnFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgdnJzaHJxX3goaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hycV94X25fczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczMyKSkpCmludDMyeDRfdCB2cnNocnFfeChpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCB2cnNocnFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczgpKSkKaW50OHgxNl90IHZyc2hycV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxX3godWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxX3hfbl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxX3godWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTgpKSkKdWludDh4MTZfdCB2cnNocnFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaHJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3MzMikpKQppbnQzMng0X3QgdnNiY2lxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX21fczMyKSkpCmludDMyeDRfdCB2c2JjaXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3UzMikpKQp1aW50MzJ4NF90IHZzYmNpcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3UzMikpKQp1aW50MzJ4NF90IHZzYmNpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3MzMikpKQppbnQzMng0X3QgdnNiY2lxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3MzMikpKQppbnQzMng0X3QgdnNiY2lxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfdTMyKSkpCnVpbnQzMng0X3QgdnNiY2lxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfdTMyKSkpCnVpbnQzMng0X3QgdnNiY2lxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fczMyKSkpCmludDMyeDRfdCB2c2JjcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fczMyKSkpCmludDMyeDRfdCB2c2JjcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfbV91MzIpKSkKdWludDMyeDRfdCB2c2JjcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNiY3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX3MzMikpKQppbnQzMng0X3QgdnNiY3FfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9zMzIpKSkKaW50MzJ4NF90IHZzYmNxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV91MzIpKSkKdWludDMyeDRfdCB2c2JjcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfdTMyKSkpCnVpbnQzMng0X3QgdnNiY3EodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMTYpKSkKaW50MTZ4OF90IHZzZXRxX2xhbmVfczE2KGludDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MxNikpKQppbnQxNng4X3QgdnNldHFfbGFuZShpbnQxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMzIpKSkKaW50MzJ4NF90IHZzZXRxX2xhbmVfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MzMikpKQppbnQzMng0X3QgdnNldHFfbGFuZShpbnQzMl90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zNjQpKSkKaW50NjR4Ml90IHZzZXRxX2xhbmVfczY0KGludDY0X3QsIGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M2NCkpKQppbnQ2NHgyX3QgdnNldHFfbGFuZShpbnQ2NF90LCBpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zOCkpKQppbnQ4eDE2X3QgdnNldHFfbGFuZV9zOChpbnQ4X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M4KSkpCmludDh4MTZfdCB2c2V0cV9sYW5lKGludDhfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTE2KSkpCnVpbnQxNng4X3QgdnNldHFfbGFuZV91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MTYpKSkKdWludDE2eDhfdCB2c2V0cV9sYW5lKHVpbnQxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTMyKSkpCnVpbnQzMng0X3QgdnNldHFfbGFuZV91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MzIpKSkKdWludDMyeDRfdCB2c2V0cV9sYW5lKHVpbnQzMl90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NHgyX3QgdnNldHFfbGFuZV91NjQodWludDY0X3QsIHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91NjQpKSkKdWludDY0eDJfdCB2c2V0cV9sYW5lKHVpbnQ2NF90LCB1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTgpKSkKdWludDh4MTZfdCB2c2V0cV9sYW5lX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91OCkpKQp1aW50OHgxNl90IHZzZXRxX2xhbmUodWludDhfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMTYpKSkKaW50MTZ4OF90IHZzaGxjcV9tX3MxNihpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMTYpKSkKaW50MTZ4OF90IHZzaGxjcV9tKGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MzMikpKQppbnQzMng0X3QgdnNobGNxX21fczMyKGludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MzMikpKQppbnQzMng0X3QgdnNobGNxX20oaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczgpKSkKaW50OHgxNl90IHZzaGxjcV9tX3M4KGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3M4KSkpCmludDh4MTZfdCB2c2hsY3FfbShpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MTYpKSkKdWludDE2eDhfdCB2c2hsY3FfbV91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UxNikpKQp1aW50MTZ4OF90IHZzaGxjcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MzIpKSkKdWludDMyeDRfdCB2c2hsY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UzMikpKQp1aW50MzJ4NF90IHZzaGxjcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91OCkpKQp1aW50OHgxNl90IHZzaGxjcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91OCkpKQp1aW50OHgxNl90IHZzaGxjcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczE2KSkpCmludDE2eDhfdCB2c2hsY3FfczE2KGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczE2KSkpCmludDE2eDhfdCB2c2hsY3EoaW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMzIpKSkKaW50MzJ4NF90IHZzaGxjcV9zMzIoaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMzIpKSkKaW50MzJ4NF90IHZzaGxjcShpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3M4KSkpCmludDh4MTZfdCB2c2hsY3FfczgoaW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zOCkpKQppbnQ4eDE2X3QgdnNobGNxKGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTE2KSkpCnVpbnQxNng4X3QgdnNobGNxX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MTYpKSkKdWludDE2eDhfdCB2c2hsY3EodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTMyKSkpCnVpbnQzMng0X3QgdnNobGNxX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MzIpKSkKdWludDMyeDRfdCB2c2hsY3EodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTgpKSkKdWludDh4MTZfdCB2c2hsY3FfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTgpKSkKdWludDh4MTZfdCB2c2hsY3EodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsYnFfbV9uX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczgpKSkKaW50MTZ4OF90IHZzaGxsYnFfbV9uX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczgpKSkKaW50MTZ4OF90IHZzaGxsYnFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsYnFfbV9uX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGxicV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnFfbV9uX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnFfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3M4KSkpCmludDE2eDhfdCB2c2hsbGJxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl9zOCkpKQppbnQxNng4X3QgdnNobGxicShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsYnFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGxicSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnEodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsYnFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsYnFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zOCkpKQppbnQxNng4X3QgdnNobGxicV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fczgpKSkKaW50MTZ4OF90IHZzaGxsYnFfeChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbGJxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsYnFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTgpKSkKdWludDE2eDhfdCB2c2hsbGJxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTgpKSkKdWludDE2eDhfdCB2c2hsbGJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3MxNikpKQppbnQzMng0X3QgdnNobGx0cV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zOCkpKQppbnQxNng4X3QgdnNobGx0cV9tX25fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zOCkpKQppbnQxNng4X3QgdnNobGx0cV9tKGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGx0cV9tX25fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbHRxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cV9tX25fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczgpKSkKaW50MTZ4OF90IHZzaGxsdHFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3M4KSkpCmludDE2eDhfdCB2c2hsbHRxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGx0cV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbHRxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3MxNikpKQppbnQzMng0X3QgdnNobGx0cV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3MxNikpKQppbnQzMng0X3QgdnNobGx0cV94KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3M4KSkpCmludDE2eDhfdCB2c2hsbHRxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl9zOCkpKQppbnQxNng4X3QgdnNobGx0cV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsdHFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGx0cV94KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsdHFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsdHFfeCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX21fbihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2c2hscV9tX24oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczgpKSkKaW50OHgxNl90IHZzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbV9uKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c2hscV9tX24odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c2hscV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbV9uKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2c2hscV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZzaGxxX21fbih1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgdnNobHFfbV9yX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgdnNobHFfbV9yKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczMyKSkpCmludDMyeDRfdCB2c2hscV9tX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczMyKSkpCmludDMyeDRfdCB2c2hscV9tX3IoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczgpKSkKaW50OHgxNl90IHZzaGxxX21fcihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX21fcl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfbV9yKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX21fcl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbV9yKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfbV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfbV9yKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MzMikpKQppbnQzMng0X3QgdnNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MzMikpKQppbnQzMng0X3QgdnNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczgpKSkKaW50OHgxNl90IHZzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3M4KSkpCmludDh4MTZfdCB2c2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2c2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2c2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTgpKSkKdWludDh4MTZfdCB2c2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MxNikpKQppbnQxNng4X3QgdnNobHFfbihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MzMikpKQppbnQzMng0X3QgdnNobHFfbihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbihpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2c2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfbih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX24odWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2c2hscV9uKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3IoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MzMikpKQppbnQzMng0X3QgdnNobHFfcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MzMikpKQppbnQzMng0X3QgdnNobHFfcihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczgpKSkKaW50OHgxNl90IHZzaGxxX3JfczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3M4KSkpCmludDh4MTZfdCB2c2hscV9yKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MTYpKSkKdWludDE2eDhfdCB2c2hscV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3IodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MzIpKSkKdWludDMyeDRfdCB2c2hscV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3IodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91OCkpKQp1aW50OHgxNl90IHZzaGxxX3JfdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91OCkpKQp1aW50OHgxNl90IHZzaGxxX3IodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczE2KSkpCmludDE2eDhfdCB2c2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MxNikpKQppbnQxNng4X3QgdnNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MzMikpKQppbnQzMng0X3QgdnNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zMzIpKSkKaW50MzJ4NF90IHZzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zOCkpKQppbnQ4eDE2X3QgdnNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3M4KSkpCmludDh4MTZfdCB2c2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MzIpKSkKdWludDMyeDRfdCB2c2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MzIpKSkKdWludDMyeDRfdCB2c2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91OCkpKQp1aW50OHgxNl90IHZzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MxNikpKQppbnQxNng4X3QgdnNobHFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczE2KSkpCmludDE2eDhfdCB2c2hscV94X24oaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MzMikpKQppbnQzMng0X3QgdnNobHFfeF9uX3MzMihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczMyKSkpCmludDMyeDRfdCB2c2hscV94X24oaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3M4KSkpCmludDh4MTZfdCB2c2hscV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3M4KSkpCmludDh4MTZfdCB2c2hscV94X24oaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2c2hscV94X24odWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2c2hscV94X25fdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfeF9uKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTgpKSkKdWludDh4MTZfdCB2c2hscV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91OCkpKQp1aW50OHgxNl90IHZzaGxxX3hfbih1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczE2KSkpCmludDE2eDhfdCB2c2hscV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczMyKSkpCmludDMyeDRfdCB2c2hscV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3MzMikpKQppbnQzMng0X3QgdnNobHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3M4KSkpCmludDh4MTZfdCB2c2hscV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczgpKSkKaW50OHgxNl90IHZzaGxxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MTYpKSkKdWludDE2eDhfdCB2c2hscV94X3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MTYpKSkKdWludDE2eDhfdCB2c2hscV94KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3hfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3godWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTgpKSkKdWludDh4MTZfdCB2c2hscV94X3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfeCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2c2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IHZzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgdnNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2c2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCB2c2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCB2c2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IHZzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fczMyKSkpCmludDE2eDhfdCB2c2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCB2c2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IHZzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2c2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCB2c2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fczE2KSkpCmludDh4MTZfdCB2c2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2c2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgdnNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzaHJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczE2KSkpCmludDE2eDhfdCB2c2hycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNocnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzaHJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczgpKSkKaW50OHgxNl90IHZzaHJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNocnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c2hycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnNocnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzaHJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c2hycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTgpKSkKdWludDh4MTZfdCB2c2hycV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91OCkpKQp1aW50OHgxNl90IHZzaHJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczE2KSkpCmludDE2eDhfdCB2c2hycV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IHZzaHJxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3MzMikpKQppbnQzMng0X3QgdnNocnFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczMyKSkpCmludDMyeDRfdCB2c2hycShpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgdnNocnFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgdnNocnEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNocnFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3UxNikpKQp1aW50MTZ4OF90IHZzaHJxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91MzIpKSkKdWludDMyeDRfdCB2c2hycV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnNocnEodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNocnFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTgpKSkKdWludDh4MTZfdCB2c2hycSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZzaHJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgdnNocnFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczMyKSkpCmludDMyeDRfdCB2c2hycV94X25fczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZzaHJxX3goaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCB2c2hycV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCB2c2hycV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2c2hycV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnNocnFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZzaHJxX3hfbl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2c2hycV94KHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTgpKSkKdWludDh4MTZfdCB2c2hycV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91OCkpKQp1aW50OHgxNl90IHZzaHJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzbGlxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczE2KSkpCmludDE2eDhfdCB2c2xpcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNsaXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzbGlxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczgpKSkKaW50OHgxNl90IHZzbGlxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNsaXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c2xpcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnNsaXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzbGlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c2xpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTgpKSkKdWludDh4MTZfdCB2c2xpcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91OCkpKQp1aW50OHgxNl90IHZzbGlxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczE2KSkpCmludDE2eDhfdCB2c2xpcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3MxNikpKQppbnQxNng4X3QgdnNsaXEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zMzIpKSkKaW50MzJ4NF90IHZzbGlxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczMyKSkpCmludDMyeDRfdCB2c2xpcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3M4KSkpCmludDh4MTZfdCB2c2xpcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczgpKSkKaW50OHgxNl90IHZzbGlxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNsaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3UxNikpKQp1aW50MTZ4OF90IHZzbGlxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91MzIpKSkKdWludDMyeDRfdCB2c2xpcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTMyKSkpCnVpbnQzMng0X3QgdnNsaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNsaXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTgpKSkKdWludDh4MTZfdCB2c2xpcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzcmlxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczE2KSkpCmludDE2eDhfdCB2c3JpcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNyaXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzcmlxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczgpKSkKaW50OHgxNl90IHZzcmlxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNyaXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c3JpcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnNyaXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzcmlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c3JpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTgpKSkKdWludDh4MTZfdCB2c3JpcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91OCkpKQp1aW50OHgxNl90IHZzcmlxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczE2KSkpCmludDE2eDhfdCB2c3JpcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3MxNikpKQppbnQxNng4X3QgdnNyaXEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zMzIpKSkKaW50MzJ4NF90IHZzcmlxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczMyKSkpCmludDMyeDRfdCB2c3JpcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3M4KSkpCmludDh4MTZfdCB2c3JpcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczgpKSkKaW50OHgxNl90IHZzcmlxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNyaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3UxNikpKQp1aW50MTZ4OF90IHZzcmlxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91MzIpKSkKdWludDMyeDRfdCB2c3JpcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTMyKSkpCnVpbnQzMng0X3QgdnNyaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNyaXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTgpKSkKdWludDh4MTZfdCB2c3JpcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczE2KSkpCnZvaWQgdnN0MXFfcF9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMTYpKSkKdm9pZCB2c3QxcV9wKGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczMyKSkpCnZvaWQgdnN0MXFfcF9zMzIoaW50MzJfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMzIpKSkKdm9pZCB2c3QxcV9wKGludDMyX3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczgpKSkKdm9pZCB2c3QxcV9wX3M4KGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zOCkpKQp2b2lkIHZzdDFxX3AoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3UxNikpKQp2b2lkIHZzdDFxX3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MTYpKSkKdm9pZCB2c3QxcV9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MzIpKSkKdm9pZCB2c3QxcV9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTMyKSkpCnZvaWQgdnN0MXFfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTgpKSkKdm9pZCB2c3QxcV9wX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3U4KSkpCnZvaWQgdnN0MXFfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczE2KSkpCnZvaWQgdnN0MXFfczE2KGludDE2X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMTYpKSkKdm9pZCB2c3QxcShpbnQxNl90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczMyKSkpCnZvaWQgdnN0MXFfczMyKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMzIpKSkKdm9pZCB2c3QxcShpbnQzMl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczgpKSkKdm9pZCB2c3QxcV9zOChpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zOCkpKQp2b2lkIHZzdDFxKGludDhfdCAqLCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3UxNikpKQp2b2lkIHZzdDFxX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MTYpKSkKdm9pZCB2c3QxcSh1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MzIpKSkKdm9pZCB2c3QxcV91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTMyKSkpCnZvaWQgdnN0MXEodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTgpKSkKdm9pZCB2c3QxcV91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3U4KSkpCnZvaWQgdnN0MXEodWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zMTYpKSkKdm9pZCB2c3QycV9zMTYoaW50MTZfdCAqLCBpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczE2KSkpCnZvaWQgdnN0MnEoaW50MTZfdCAqLCBpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczMyKSkpCnZvaWQgdnN0MnFfczMyKGludDMyX3QgKiwgaW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3MzMikpKQp2b2lkIHZzdDJxKGludDMyX3QgKiwgaW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3M4KSkpCnZvaWQgdnN0MnFfczgoaW50OF90ICosIGludDh4MTZ4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zOCkpKQp2b2lkIHZzdDJxKGludDhfdCAqLCBpbnQ4eDE2eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTE2KSkpCnZvaWQgdnN0MnFfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTE2KSkpCnZvaWQgdnN0MnEodWludDE2X3QgKiwgdWludDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MzIpKSkKdm9pZCB2c3QycV91MzIodWludDMyX3QgKiwgdWludDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MzIpKSkKdm9pZCB2c3QycSh1aW50MzJfdCAqLCB1aW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3U4KSkpCnZvaWQgdnN0MnFfdTgodWludDhfdCAqLCB1aW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3U4KSkpCnZvaWQgdnN0MnEodWludDhfdCAqLCB1aW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3MxNikpKQp2b2lkIHZzdDRxX3MxNihpbnQxNl90ICosIGludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMTYpKSkKdm9pZCB2c3Q0cShpbnQxNl90ICosIGludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMzIpKSkKdm9pZCB2c3Q0cV9zMzIoaW50MzJfdCAqLCBpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczMyKSkpCnZvaWQgdnN0NHEoaW50MzJfdCAqLCBpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczgpKSkKdm9pZCB2c3Q0cV9zOChpbnQ4X3QgKiwgaW50OHgxNng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3M4KSkpCnZvaWQgdnN0NHEoaW50OF90ICosIGludDh4MTZ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MTYpKSkKdm9pZCB2c3Q0cV91MTYodWludDE2X3QgKiwgdWludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MTYpKSkKdm9pZCB2c3Q0cSh1aW50MTZfdCAqLCB1aW50MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UzMikpKQp2b2lkIHZzdDRxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UzMikpKQp2b2lkIHZzdDRxKHVpbnQzMl90ICosIHVpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTgpKSkKdm9pZCB2c3Q0cV91OCh1aW50OF90ICosIHVpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTgpKSkKdm9pZCB2c3Q0cSh1aW50OF90ICosIHVpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczE2KSkpCnZvaWQgdnN0cmJxX3BfczE2KGludDhfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczE2KSkpCnZvaWQgdnN0cmJxX3AoaW50OF90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMzIpKSkKdm9pZCB2c3RyYnFfcF9zMzIoaW50OF90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMzIpKSkKdm9pZCB2c3RyYnFfcChpbnQ4X3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3M4KSkpCnZvaWQgdnN0cmJxX3BfczgoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zOCkpKQp2b2lkIHZzdHJicV9wKGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTE2KSkpCnZvaWQgdnN0cmJxX3BfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MTYpKSkKdm9pZCB2c3RyYnFfcCh1aW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTMyKSkpCnZvaWQgdnN0cmJxX3BfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MzIpKSkKdm9pZCB2c3RyYnFfcCh1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTgpKSkKdm9pZCB2c3RyYnFfcF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTgpKSkKdm9pZCB2c3RyYnFfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MxNikpKQp2b2lkIHZzdHJicV9zMTYoaW50OF90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MxNikpKQp2b2lkIHZzdHJicShpbnQ4X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczMyKSkpCnZvaWQgdnN0cmJxX3MzMihpbnQ4X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczMyKSkpCnZvaWQgdnN0cmJxKGludDhfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zOCkpKQp2b2lkIHZzdHJicV9zOChpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczgpKSkKdm9pZCB2c3RyYnEoaW50OF90ICosIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KGludDhfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIoaW50OF90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcChpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3M4KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczgoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zOCkpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wKGludDhfdCAqLCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MTYpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9zMTYoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldChpbnQ4X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MzMihpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KGludDhfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zOCkpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9zOChpbnQ4X3QgKiwgdWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXQoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UxNikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF91MTYodWludDhfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF91MzIodWludDhfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UxNikpKQp2b2lkIHZzdHJicV91MTYodWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTE2KSkpCnZvaWQgdnN0cmJxKHVpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UzMikpKQp2b2lkIHZzdHJicV91MzIodWludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTMyKSkpCnZvaWQgdnN0cmJxKHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3U4KSkpCnZvaWQgdnN0cmJxX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3U4KSkpCnZvaWQgdnN0cmJxKHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2VfcF9zNjQodWludDY0eDJfdCwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2VfcCh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3U2NCh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2VfcCh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlX3M2NCh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlKHVpbnQ2NHgyX3QsIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2VfdTY0KHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlKHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF9zNjQodWludDY0eDJfdCAqLCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF91NjQodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50NjR4Ml90ICosIGludCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfczY0KHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yih1aW50NjR4Ml90ICosIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfdTY0KHVpbnQ2NHgyX3QgKiwgaW50LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2IodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3M2NChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXRfcChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXRfcCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXRfczY0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3U2NCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfczE2KSkpCnZvaWQgdnN0cmhxX3BfczE2KGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MxNikpKQp2b2lkIHZzdHJocV9wKGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MzMikpKQp2b2lkIHZzdHJocV9wX3MzMihpbnQxNl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9zMzIpKSkKdm9pZCB2c3RyaHFfcChpbnQxNl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MTYpKSkKdm9pZCB2c3RyaHFfcF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MTYpKSkKdm9pZCB2c3RyaHFfcCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UzMikpKQp2b2lkIHZzdHJocV9wX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UzMikpKQp2b2lkIHZzdHJocV9wKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3MxNikpKQp2b2lkIHZzdHJocV9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMTYpKSkKdm9pZCB2c3RyaHEoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMzIpKSkKdm9pZCB2c3RyaHFfczMyKGludDE2X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfczMyKSkpCnZvaWQgdnN0cmhxKGludDE2X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMTYoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9wKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9zMzIoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXQoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXQodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczE2KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UxNikpKQp2b2lkIHZzdHJocV91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UxNikpKQp2b2lkIHZzdHJocSh1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTMyKSkpCnZvaWQgdnN0cmhxX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTMyKSkpCnZvaWQgdnN0cmhxKHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX3MzMikpKQp2b2lkIHZzdHJ3cV9wX3MzMihpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF9zMzIpKSkKdm9pZCB2c3Ryd3FfcChpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF91MzIpKSkKdm9pZCB2c3Ryd3FfcF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF91MzIpKSkKdm9pZCB2c3Ryd3FfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zMzIpKSkKdm9pZCB2c3Ryd3FfczMyKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfczMyKSkpCnZvaWQgdnN0cndxKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3MzMih1aW50MzJ4NF90LCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9wKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfdTMyKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9wKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2VfczMyKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2UodWludDMyeDRfdCwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV91MzIodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2UodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3MzMih1aW50MzJ4NF90ICosIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3AodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3UzMih1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQzMng0X3QgKiwgaW50LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9zMzIodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diKHVpbnQzMng0X3QgKiwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl91MzIodWludDMyeDRfdCAqLCBpbnQsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yih1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9wKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9wKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9zMzIoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXQoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXQodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfdTMyKSkpCnZvaWQgdnN0cndxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfdTMyKSkpCnZvaWQgdnN0cndxKHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgdnN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczMyKSkpCmludDMyeDRfdCB2c3VicV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCB2c3VicV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczgpKSkKaW50OHgxNl90IHZzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTgpKSkKdWludDh4MTZfdCB2c3VicV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTgpKSkKdWludDh4MTZfdCB2c3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MzMikpKQppbnQzMng0X3QgdnN1YnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MzMikpKQppbnQzMng0X3QgdnN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczgpKSkKaW50OHgxNl90IHZzdWJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3M4KSkpCmludDh4MTZfdCB2c3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91MTYpKSkKdWludDE2eDhfdCB2c3VicV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3UzMikpKQp1aW50MzJ4NF90IHZzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTgpKSkKdWludDh4MTZfdCB2c3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IHZzdWJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgdnN1YnEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTgpKSkKdWludDh4MTZfdCB2c3VicV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTgpKSkKdWludDh4MTZfdCB2c3VicSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczE2KSkpCmludDE2eDhfdCB2c3VicShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczMyKSkpCmludDMyeDRfdCB2c3VicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3MzMikpKQppbnQzMng0X3QgdnN1YnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3M4KSkpCmludDh4MTZfdCB2c3VicV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczgpKSkKaW50OHgxNl90IHZzdWJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91MTYpKSkKdWludDE2eDhfdCB2c3VicV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTE2KSkpCnVpbnQxNng4X3QgdnN1YnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3UzMikpKQp1aW50MzJ4NF90IHZzdWJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTgpKSkKdWludDh4MTZfdCB2c3VicSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczE2KSkpCmludDE2eDhfdCB2c3VicV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczE2KSkpCmludDE2eDhfdCB2c3VicV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczMyKSkpCmludDMyeDRfdCB2c3VicV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczMyKSkpCmludDMyeDRfdCB2c3VicV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczgpKSkKaW50OHgxNl90IHZzdWJxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczgpKSkKaW50OHgxNl90IHZzdWJxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZzdWJxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZzdWJxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZzdWJxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZzdWJxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczE2KSkpCmludDE2eDhfdCB2c3VicV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MxNikpKQppbnQxNng4X3QgdnN1YnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MzMikpKQppbnQzMng0X3QgdnN1YnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3M4KSkpCmludDh4MTZfdCB2c3VicV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UxNikpKQp1aW50MTZ4OF90IHZzdWJxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UzMikpKQp1aW50MzJ4NF90IHZzdWJxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91MzIpKSkKdWludDMyeDRfdCB2c3VicV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91OCkpKQp1aW50OHgxNl90IHZzdWJxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zMTYpKSkKaW50MTZ4OF90IHZ1bmluaXRpYWxpemVkcShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zMzIpKSkKaW50MzJ4NF90IHZ1bmluaXRpYWxpemVkcShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zNjQpKSkKaW50NjR4Ml90IHZ1bmluaXRpYWxpemVkcShpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zOCkpKQppbnQ4eDE2X3QgdnVuaW5pdGlhbGl6ZWRxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3UxNikpKQp1aW50MTZ4OF90IHZ1bmluaXRpYWxpemVkcSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfdTMyKSkpCnVpbnQzMng0X3QgdnVuaW5pdGlhbGl6ZWRxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY191NjQpKSkKdWludDY0eDJfdCB2dW5pbml0aWFsaXplZHEodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3U4KSkpCnVpbnQ4eDE2X3QgdnVuaW5pdGlhbGl6ZWRxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zMTYpKSkKaW50MTZ4OF90IHZ1bmluaXRpYWxpemVkcV9zMTYoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfczMyKSkpCmludDMyeDRfdCB2dW5pbml0aWFsaXplZHFfczMyKCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3M2NCkpKQppbnQ2NHgyX3QgdnVuaW5pdGlhbGl6ZWRxX3M2NCgpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zOCkpKQppbnQ4eDE2X3QgdnVuaW5pdGlhbGl6ZWRxX3M4KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3UxNikpKQp1aW50MTZ4OF90IHZ1bmluaXRpYWxpemVkcV91MTYoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfdTMyKSkpCnVpbnQzMng0X3QgdnVuaW5pdGlhbGl6ZWRxX3UzMigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV91NjQpKSkKdWludDY0eDJfdCB2dW5pbml0aWFsaXplZHFfdTY0KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3U4KSkpCnVpbnQ4eDE2X3QgdnVuaW5pdGlhbGl6ZWRxX3U4KCk7CgojZW5kaWYgLyogKCFkZWZpbmVkIF9fQVJNX01WRV9QUkVTRVJWRV9VU0VSX05BTUVTUEFDRSkgKi8KCiNpZiAoX19BUk1fRkVBVFVSRV9NVkUgJiAyKSAmJiAoIWRlZmluZWQgX19BUk1fTVZFX1BSRVNFUlZFX1VTRVJfTkFNRVNQQUNFKQoKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFiZHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZhYmRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZhYmRxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJkcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhYmRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmFiZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZhYmRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmFiZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZhYmRxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YWJkcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWJkcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmFiZHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZhYnNxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZhYnNxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFic3FfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFic3EoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhYnNxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YWJzcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmFic3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmFic3FfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmFic3FfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV94X25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV94X25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZhbmRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX2YxNikpKQpmbG9hdDE2eDhfdCB2YW5kcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX2YzMikpKQpmbG9hdDMyeDRfdCB2YW5kcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFuZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YW5kcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhbmRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YW5kcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZhbmRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YW5kcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmFuZHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmFuZHFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZhbmRxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YxNikpKQpmbG9hdDE2eDhfdCB2YmljcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9mMTYpKSkKZmxvYXQxNng4X3QgdmJpY3EoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9mMzIpKSkKZmxvYXQzMng0X3QgdmJpY3FfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfZjMyKSkpCmZsb2F0MzJ4NF90IHZiaWNxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmJpY3FfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YmljcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmJpY3FfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YmljcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmJpY3FfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZiaWNxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZiaWNxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YmljcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YnJzcnFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgdmJyc3JxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZicnNycV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YnJzcnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZicnNycV9uX2YxNihmbG9hdDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZicnNycShmbG9hdDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZicnNycV9uX2YzMihmbG9hdDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZicnNycShmbG9hdDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmJyc3JxX3hfbl9mMTYoZmxvYXQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmJyc3JxX3goZmxvYXQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmJyc3JxX3hfbl9mMzIoZmxvYXQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmJyc3JxX3goZmxvYXQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDI3MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3QyNzBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3QyNzBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDI3MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDkwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDkwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90OTBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90OTAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDkwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3Q5MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90OTBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MF94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDE4MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDE4MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDE4MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDE4MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDkwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3Q5MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90OTAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3Q5MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90OTBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90OTBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDkwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MTgwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QxODAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDE4MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDE4MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MTgwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MTgwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QxODBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDI3MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MjcwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QyNzBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QyNzBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDI3MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDI3MF94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MjcwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDkwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDkwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90OTBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90OTAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDkwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3Q5MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90OTBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90OTBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90OTBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MF94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZjcmVhdGVxX2YxNih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX2YzMikpKQpmbG9hdDMyeDRfdCB2Y3JlYXRlcV9mMzIodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0YXFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dGFxX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0YXFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dGFxX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dGFxX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dGFxX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRhcV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRhcV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0YXFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRhcV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRhcV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRhcV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0YXFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRhcV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRhcV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRhcV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgdmN2dGJxX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2Y3Z0YnFfZjMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX21fZjE2X2YzMikpKQpmbG9hdDE2eDhfdCB2Y3Z0YnFfbV9mMTZfZjMyKGZsb2F0MTZ4OF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfbV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZjdnRicV9tX2YzMl9mMTYoZmxvYXQzMng0X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV94X2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgdmN2dGJxX3hfZjMyX2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bXFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dG1xX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0bXFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dG1xX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG1xX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG1xX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRtcV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRtcV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bXFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRtcV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRtcV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRtcV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bXFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRtcV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRtcV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRtcV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dG5xX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRucV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dG5xX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRucV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRucV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRucV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0bnFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0bnFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dG5xX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0bnFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0bnFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0bnFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dG5xX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0bnFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0bnFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0bnFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRwcV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cHFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRwcV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cHFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cHFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cHFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHBxX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHBxX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRwcV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHBxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHBxX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHBxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRwcV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3hfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHBxX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHBxX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHBxX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX2YxNl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9mMTZfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfZjMyX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tX2YxNl9zMTYoZmxvYXQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbShmbG9hdDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tX2YxNl91MTYoZmxvYXQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX20oZmxvYXQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX21fZjMyX3MzMihmbG9hdDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9tKGZsb2F0MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX21fZjMyX3UzMihmbG9hdDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbShmbG9hdDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tX25fZjE2X3MxNihmbG9hdDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbV9uKGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tX25fZjE2X3UxNihmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX21fbihmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX21fbl9mMzJfczMyKGZsb2F0MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9tX24oZmxvYXQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX21fbl9mMzJfdTMyKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbV9uKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRxX21fbl9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfbV9uKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfbV9uX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cV9tX24oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHFfbV9uX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX21fbih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHFfbV9uX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRxX21fbih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRxX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbl9mMTZfczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX25fZjE2X3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9uKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX25fZjMyX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX24oaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9uX2YzMl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfbl9zMTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfbl9zMzJfZjMyKGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX25fdTE2X2YxNihmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV9uX3UzMl9mMzIoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeF9mMTZfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX3hfZjE2X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3hfZjMyX3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV94X2YzMl91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX3hfbl9mMTZfczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX3hfbihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV94X25fZjE2X3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeF9uKHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV94X25fZjMyX3MzMihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV94X24oaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfeF9uX2YzMl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3hfbih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRxX3hfbl9zMTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRxX3hfbl9zMzJfZjMyKGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cV94X25fdTE2X2YxNihmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHFfeF9uX3UzMl9mMzIoZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRxX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRxX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IHZjdnR0cV9mMTZfZjMyKGZsb2F0MTZ4OF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgdmN2dHRxX2YzMl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV9tX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgdmN2dHRxX21fZjE2X2YzMihmbG9hdDE2eDhfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX21fZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2Y3Z0dHFfbV9mMzJfZjE2KGZsb2F0MzJ4NF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfeF9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZjdnR0cV94X2YzMl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2ZHVwcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2ZHVwcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2ZHVwcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2ZHVwcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmR1cHFfbl9mMTYoZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2ZHVwcV9uX2YzMihmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmR1cHFfeF9uX2YxNihmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2ZHVwcV94X25fZjMyKGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMTYpKSkKZmxvYXQxNng4X3QgdmVvcnFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZlb3JxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZlb3JxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX2YzMikpKQpmbG9hdDMyeDRfdCB2ZW9ycShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZlb3JxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmVvcnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZlb3JxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmVvcnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZlb3JxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X2YxNikpKQpmbG9hdDE2eDhfdCB2ZW9ycV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X2YzMikpKQpmbG9hdDMyeDRfdCB2ZW9ycV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmVvcnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3FfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hc3FfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3FfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hc3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3FfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hc3FfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3FfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hc3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3Ffbl9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXNxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3Ffbl9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXNxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3Ffbl9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXNxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hc3Ffbl9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXNxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9mMTYpKSkKZmxvYXQxNng4X3QgdmZtc3FfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1zcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9mMzIpKSkKZmxvYXQzMng0X3QgdmZtc3FfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1zcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1zcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbXNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1zcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbXNxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YxNikpKQpmbG9hdDE2X3QgdmdldHFfbGFuZV9mMTYoZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9mMTYpKSkKZmxvYXQxNl90IHZnZXRxX2xhbmUoZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9mMzIpKSkKZmxvYXQzMl90IHZnZXRxX2xhbmVfZjMyKGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfZjMyKSkpCmZsb2F0MzJfdCB2Z2V0cV9sYW5lKGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX2YxNikpKQpmbG9hdDE2eDhfdCB2bGQxcV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX2YxNikpKQpmbG9hdDE2eDhfdCB2bGQxcShjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZDFxX2YzMihjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZDFxKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X2YxNikpKQpmbG9hdDE2eDhfdCB2bGQxcV96X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X2YxNikpKQpmbG9hdDE2eDhfdCB2bGQxcV96KGNvbnN0IGZsb2F0MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZDFxX3pfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZDFxX3ooY29uc3QgZmxvYXQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfZjE2KSkpCmZsb2F0MTZ4OHgyX3QgdmxkMnFfZjE2KGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMTYpKSkKZmxvYXQxNng4eDJfdCB2bGQycShjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfZjMyKSkpCmZsb2F0MzJ4NHgyX3QgdmxkMnFfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMzIpKSkKZmxvYXQzMng0eDJfdCB2bGQycShjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfZjE2KSkpCmZsb2F0MTZ4OHg0X3QgdmxkNHFfZjE2KGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMTYpKSkKZmxvYXQxNng4eDRfdCB2bGQ0cShjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfZjMyKSkpCmZsb2F0MzJ4NHg0X3QgdmxkNHFfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMzIpKSkKZmxvYXQzMng0eDRfdCB2bGQ0cShjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfZjE2KGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2YzMihjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2VfZjMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfZjMyKHVpbnQzMng0X3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfZjMyKHVpbnQzMng0X3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfel9mMzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF9mMzIoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldChjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfel9mMzIoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3Ffel9mMzIoY29uc3QgZmxvYXQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtYXhubWFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1hcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1hcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9mMTYpKSkKZmxvYXQxNl90IHZtYXhubWF2cV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tYXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9mMzIpKSkKZmxvYXQzMl90IHZtYXhubWF2cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tYXZxKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9wX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tYXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCB2bWF4bm1hdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tYXZxX3BfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm1hdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtYXhubXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZtYXhubXFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubXFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9mMTYpKSkKZmxvYXQxNl90IHZtYXhubXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9mMTYpKSkKZmxvYXQxNl90IHZtYXhubXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tdnFfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtYXhubXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtYXhubXZxX3AoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YxNikpKQpmbG9hdDE2eDhfdCB2bWlubm1hcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tYXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tYXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubWFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubWFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubWFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1hcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm1hdnFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubWF2cShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfZjMyKSkpCmZsb2F0MzJfdCB2bWlubm1hdnFfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubWF2cShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubWF2cV9wX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YxNikpKQpmbG9hdDE2X3Qgdm1pbm5tYXZxX3AoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfcF9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubWF2cV9wX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tYXZxX3AoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX2YxNikpKQpmbG9hdDE2eDhfdCB2bWlubm1xX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1xX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2bWlubm1xX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1xX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubXFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm12cV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm12cShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubXZxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubXZxKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX3BfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm12cV9wX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX3BfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm12cV9wKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubXZxX3BfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubXZxX3AoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfeF9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfeF9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX2YxNikpKQpmbG9hdDE2eDhfdCB2bmVncV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX2YxNikpKQpmbG9hdDE2eDhfdCB2bmVncShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjMyKSkpCmZsb2F0MzJ4NF90IHZuZWdxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjMyKSkpCmZsb2F0MzJ4NF90IHZuZWdxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bmVncV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm5lZ3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3FfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZuZWdxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZuZWdxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZuZWdxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3FfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3FfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ybnFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcm5xKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZvcm5xX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX2YzMikpKQpmbG9hdDMyeDRfdCB2b3JucShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZvcm5xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ybnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZvcm5xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ybnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcm5xX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X2YxNikpKQpmbG9hdDE2eDhfdCB2b3JucV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X2YzMikpKQpmbG9hdDMyeDRfdCB2b3JucV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ybnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcnJxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX2YxNikpKQpmbG9hdDE2eDhfdCB2b3JycShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX2YzMikpKQpmbG9hdDMyeDRfdCB2b3JycV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ycnEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2b3JycV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZvcnJxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2b3JycV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZvcnJxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YxNikpKQpmbG9hdDE2eDhfdCB2b3JycV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ycnFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ycnFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZvcnJxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9mMTYpKSkKZmxvYXQxNng4X3QgdnBzZWxxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YxNikpKQpmbG9hdDE2eDhfdCB2cHNlbHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9mMzIpKSkKZmxvYXQzMng0X3QgdnBzZWxxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YzMikpKQpmbG9hdDMyeDRfdCB2cHNlbHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X2YzMikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X2YzMikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3MzMikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zMzIpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zNjQpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczY0KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczgpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zOCkpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3UzMikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTMyKSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3U2NCkpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTY0KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3U4KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3U4KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3MxNikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zNjQpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczY0KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczgpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zOCkpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3UxNikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3U2NCkpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTY0KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3U4KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3U4KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YxNikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9mMzIpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfZjMyKSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX2YxNikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzIoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX2YzMikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfZjE2KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfZjMyKSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X2YzMikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfZjE2KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMTYpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfZjMyKSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X2YzMikpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjMyKSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX2YxNikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjE2KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X2YxNikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X2YzMikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjMyKSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjE2KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjE2KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMzIpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMzIpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2MzJxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjMycShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2MzJxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXYzMnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2MzJxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjMycV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXY2NHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2NjRxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX2YzMikpKQpmbG9hdDMyeDRfdCB2cmV2NjRxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9mMzIpKSkKZmxvYXQzMng0X3QgdnJldjY0cShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2NjRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXY2NHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cmV2NjRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZyZXY2NHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2NjRxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjY0cV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJldjY0cV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZyZXY2NHFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRhcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRhcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZGFxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRhcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRhcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZGFxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbXFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbXFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRtcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG1xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG1xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbXFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbXFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRtcV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG5xX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG5xX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbnEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRucV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRucV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG5xX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG5xX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbnFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRwcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRwcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHBxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRwcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRwcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHBxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHhxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHhxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5keHEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmR4cV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmR4cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHhxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHhxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5keHFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX2YxNikpKQpmbG9hdDE2eDhfdCB2c2V0cV9sYW5lX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZ4OF90IHZzZXRxX2xhbmUoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX2YzMikpKQpmbG9hdDMyeDRfdCB2c2V0cV9sYW5lX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjMyKSkpCmZsb2F0MzJ4NF90IHZzZXRxX2xhbmUoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9mMTYpKSkKdm9pZCB2c3QxcV9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9mMTYpKSkKdm9pZCB2c3QxcShmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YzMikpKQp2b2lkIHZzdDFxX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YzMikpKQp2b2lkIHZzdDFxKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9mMTYpKSkKdm9pZCB2c3QxcV9wX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9mMTYpKSkKdm9pZCB2c3QxcV9wKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YzMikpKQp2b2lkIHZzdDFxX3BfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YzMikpKQp2b2lkIHZzdDFxX3AoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX2YxNikpKQp2b2lkIHZzdDJxX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjE2KSkpCnZvaWQgdnN0MnEoZmxvYXQxNl90ICosIGZsb2F0MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX2YzMikpKQp2b2lkIHZzdDJxX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjMyKSkpCnZvaWQgdnN0MnEoZmxvYXQzMl90ICosIGZsb2F0MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX2YxNikpKQp2b2lkIHZzdDRxX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjE2KSkpCnZvaWQgdnN0NHEoZmxvYXQxNl90ICosIGZsb2F0MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX2YzMikpKQp2b2lkIHZzdDRxX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjMyKSkpCnZvaWQgdnN0NHEoZmxvYXQzMl90ICosIGZsb2F0MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9mMTYpKSkKdm9pZCB2c3RyaHFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX2YxNikpKQp2b2lkIHZzdHJocShmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX2YxNikpKQp2b2lkIHZzdHJocV9wX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfZjE2KSkpCnZvaWQgdnN0cmhxX3AoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9mMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldChmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9wX2YxNihmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfZjE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNihmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YxNihmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfZjMyKSkpCnZvaWQgdnN0cndxX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9mMzIpKSkKdm9pZCB2c3Ryd3EoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF9mMzIpKSkKdm9pZCB2c3Ryd3FfcF9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX2YzMikpKQp2b2lkIHZzdHJ3cV9wKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2VfZjMyKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZSh1aW50MzJ4NF90LCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9wX2YzMih1aW50MzJ4NF90LCBpbnQsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3AodWludDMyeDRfdCwgaW50LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfZjMyKHVpbnQzMng0X3QgKiwgaW50LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diKHVpbnQzMng0X3QgKiwgaW50LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9mMzIodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3AodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldChmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX2YzMihmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3AoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMihmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YzMihmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfeF9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfeF9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9mMTYpKSkKZmxvYXQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxX2YxNigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9mMzIpKSkKZmxvYXQzMng0X3QgdnVuaW5pdGlhbGl6ZWRxX2YzMigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19mMTYpKSkKZmxvYXQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfZjMyKSkpCmZsb2F0MzJ4NF90IHZ1bmluaXRpYWxpemVkcShmbG9hdDMyeDRfdCk7CgojZW5kaWYgLyogKF9fQVJNX0ZFQVRVUkVfTVZFICYgMikgJiYgKCFkZWZpbmVkIF9fQVJNX01WRV9QUkVTRVJWRV9VU0VSX05BTUVTUEFDRSkgKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8qIGV4dGVybiAiQyIgKi8KI2VuZGlmCgojZW5kaWYgLyogX19BUk1fTVZFX0ggKi8KAGF2eDUxMmNkaW50cmluLmgALyo9PT0tLS0tIGF2eDUxMnZsYml0YWxnaW50cmluLmggLSBCSVRBTEcgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZsYml0YWxnaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZMQklUQUxHSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMQklUQUxHSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJiaXRhbGciKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmwsYXZ4NTEyYml0YWxnIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BvcGNudF9lcGkxNihfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBvcGNudHdfMjU2KChfX3YxNmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wb3BjbnRfZXBpMTYoX19tMjU2aSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9wb3BjbnRfZXBpMTYoX19CKSwKICAgICAgICAgICAgICAoX192MTZoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3BvcGNudF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19wb3BjbnRfZXBpMTYoKF9fbTI1NmkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgX19VLAogICAgICAgICAgICAgIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wb3BjbnRfZXBpMTYoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Zwb3BjbnR3XzEyOCgoX192OGhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wb3BjbnRfZXBpMTYoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9wb3BjbnRfZXBpMTYoX19CKSwKICAgICAgICAgICAgICAoX192OGhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcG9wY250X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfcG9wY250X2VwaTE2KChfX20xMjhpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSwKICAgICAgICAgICAgICBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcG9wY250X2VwaTgoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Zwb3BjbnRiXzI1NigoX192MzJxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcG9wY250X2VwaTgoX19tMjU2aSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9tbTI1Nl9wb3BjbnRfZXBpOChfX0IpLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcG9wY250X2VwaTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfcG9wY250X2VwaTgoKF9fbTI1NmkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgX19VLAogICAgICAgICAgICAgIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wb3BjbnRfZXBpOChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBvcGNudGJfMTI4KChfX3YxNnFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wb3BjbnRfZXBpOChfX20xMjhpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3BvcGNudF9lcGk4KF9fQiksCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wb3BjbnRfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19wb3BjbnRfZXBpOCgoX19tMTI4aSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpIF9fYnVpbHRpbl9pYTMyX3Zwc2h1ZmJpdHFtYjI1Nl9tYXNrKChfX3YzMnFpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9fQiwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzaygoX19tbWFzazMyKSAtMSwKICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX3Zwc2h1ZmJpdHFtYjEyOF9tYXNrKChfX3YxNnFpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fQiwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzaygoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgX19CKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgAvKj09PS0tLS0gYXZ4NTEydnBvcGNudGRxaW50cmluLmggLSBBVlg1MTJWUE9QQ05URFEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIk5ldmVyIHVzZSA8YXZ4NTEydnBvcGNudGRxdmxpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVlBPUENOVERRVkxJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVlBPUENOVERRVkxJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydnBvcGNudGRxLGF2eDUxMnZsIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydnBvcGNudGRxLGF2eDUxMnZsIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3BvcGNudF9lcGk2NChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG9wY250cV8xMjgoKF9fdjJkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wb3BjbnRfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3YyZGkpX21tX3BvcGNudF9lcGk2NChfX0EpLCAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wb3BjbnRfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiBfbW1fbWFza19wb3BjbnRfZXBpNjQoKF9fbTEyOGkpX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcG9wY250X2VwaTMyKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwb3BjbnRkXzEyOCgoX192NHNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BvcGNudF9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjRzaSlfbW1fcG9wY250X2VwaTMyKF9fQSksIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BvcGNudF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIF9tbV9tYXNrX3BvcGNudF9lcGkzMigoX19tMTI4aSlfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wb3BjbnRfZXBpNjQoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBvcGNudHFfMjU2KChfX3Y0ZGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcG9wY250X2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KAogICAgICAoX19tbWFzazgpX19VLCAoX192NGRpKV9tbTI1Nl9wb3BjbnRfZXBpNjQoX19BKSwgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcG9wY250X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gX21tMjU2X21hc2tfcG9wY250X2VwaTY0KChfX20yNTZpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BvcGNudF9lcGkzMihfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cG9wY250ZF8yNTYoKF9fdjhzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wb3BjbnRfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4c2kpX21tMjU2X3BvcGNudF9lcGkzMihfX0EpLCAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wb3BjbnRfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiBfbW0yNTZfbWFza19wb3BjbnRfZXBpMzIoKF9fbTI1NmkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZgoAZjE2Y2ludHJpbi5oAC8qPT09LS0tLSBmbG9hdC5oIC0gQ2hhcmFjdGVyaXN0aWNzIG9mIGZsb2F0aW5nIHBvaW50IHR5cGVzIC0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19GTE9BVF9ICiNkZWZpbmUgX19DTEFOR19GTE9BVF9ICgovKiBJZiB3ZSdyZSBvbiBNaW5HVywgZmFsbCBiYWNrIHRvIHRoZSBzeXN0ZW0ncyBmbG9hdC5oLCB3aGljaCBtaWdodCBoYXZlCiAqIGFkZGl0aW9uYWwgZGVmaW5pdGlvbnMgcHJvdmlkZWQgZm9yIFdpbmRvd3MuCiAqIEZvciBtb3JlIGRldGFpbHMgc2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS95MHlidzlmeS5hc3B4CiAqCiAqIEFsc28gZmFsbCBiYWNrIG9uIERhcndpbiB0byBhbGxvdyBhZGRpdGlvbmFsIGRlZmluaXRpb25zIGFuZAogKiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlcy4KICovCiNpZiAoZGVmaW5lZChfX0FQUExFX18pIHx8IChkZWZpbmVkKF9fTUlOR1czMl9fKSB8fCBkZWZpbmVkKF9NU0NfVkVSKSkpICYmIFwKICAgIF9fU1REQ19IT1NURURfXyAmJiBfX2hhc19pbmNsdWRlX25leHQoPGZsb2F0Lmg+KQoKLyogUHJpb3IgdG8gQXBwbGUncyAxMC43IFNESywgZmxvYXQuaCBTREsgaGVhZGVyIHVzZWQgdG8gYXBwbHkgYW4gZXh0cmEgbGV2ZWwKICogb2YgI2luY2x1ZGVfbmV4dDxmbG9hdC5oPiB0byBrZWVwIE1ldHJvd2Vya3MgY29tcGlsZXJzIGhhcHB5LiBBdm9pZCB0aGlzCiAqIGV4dHJhIGluZGlyZWN0aW9uLgogKi8KI2lmZGVmIF9fQVBQTEVfXwojZGVmaW5lIF9GTE9BVF9IXwojZW5kaWYKCiMgIGluY2x1ZGVfbmV4dCA8ZmxvYXQuaD4KCi8qIFVuZGVmaW5lIGFueXRoaW5nIHRoYXQgd2UnbGwgYmUgcmVkZWZpbmluZyBiZWxvdy4gKi8KIyAgdW5kZWYgRkxUX0VWQUxfTUVUSE9ECiMgIHVuZGVmIEZMVF9ST1VORFMKIyAgdW5kZWYgRkxUX1JBRElYCiMgIHVuZGVmIEZMVF9NQU5UX0RJRwojICB1bmRlZiBEQkxfTUFOVF9ESUcKIyAgdW5kZWYgTERCTF9NQU5UX0RJRwojICBpZiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwgfHwgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSB8fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCiMgICAgdW5kZWYgREVDSU1BTF9ESUcKIyAgZW5kaWYKIyAgdW5kZWYgRkxUX0RJRwojICB1bmRlZiBEQkxfRElHCiMgIHVuZGVmIExEQkxfRElHCiMgIHVuZGVmIEZMVF9NSU5fRVhQCiMgIHVuZGVmIERCTF9NSU5fRVhQCiMgIHVuZGVmIExEQkxfTUlOX0VYUAojICB1bmRlZiBGTFRfTUlOXzEwX0VYUAojICB1bmRlZiBEQkxfTUlOXzEwX0VYUAojICB1bmRlZiBMREJMX01JTl8xMF9FWFAKIyAgdW5kZWYgRkxUX01BWF9FWFAKIyAgdW5kZWYgREJMX01BWF9FWFAKIyAgdW5kZWYgTERCTF9NQVhfRVhQCiMgIHVuZGVmIEZMVF9NQVhfMTBfRVhQCiMgIHVuZGVmIERCTF9NQVhfMTBfRVhQCiMgIHVuZGVmIExEQkxfTUFYXzEwX0VYUAojICB1bmRlZiBGTFRfTUFYCiMgIHVuZGVmIERCTF9NQVgKIyAgdW5kZWYgTERCTF9NQVgKIyAgdW5kZWYgRkxUX0VQU0lMT04KIyAgdW5kZWYgREJMX0VQU0lMT04KIyAgdW5kZWYgTERCTF9FUFNJTE9OCiMgIHVuZGVmIEZMVF9NSU4KIyAgdW5kZWYgREJMX01JTgojICB1bmRlZiBMREJMX01JTgojICBpZiBfX1NURENfVkVSU0lPTl9fID49IDIwMTExMkwgfHwgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSB8fCBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCiMgICAgdW5kZWYgRkxUX1RSVUVfTUlOCiMgICAgdW5kZWYgREJMX1RSVUVfTUlOCiMgICAgdW5kZWYgTERCTF9UUlVFX01JTgojICAgIHVuZGVmIEZMVF9ERUNJTUFMX0RJRwojICAgIHVuZGVmIERCTF9ERUNJTUFMX0RJRwojICAgIHVuZGVmIExEQkxfREVDSU1BTF9ESUcKIyAgICB1bmRlZiBGTFRfSEFTX1NVQk5PUk0KIyAgICB1bmRlZiBEQkxfSEFTX1NVQk5PUk0KIyAgICB1bmRlZiBMREJMX0hBU19TVUJOT1JNCiMgIGVuZGlmCiNlbmRpZgoKLyogQ2hhcmFjdGVyaXN0aWNzIG9mIGZsb2F0aW5nIHBvaW50IHR5cGVzLCBDOTkgNS4yLjQuMi4yICovCgojZGVmaW5lIEZMVF9FVkFMX01FVEhPRCBfX0ZMVF9FVkFMX01FVEhPRF9fCiNkZWZpbmUgRkxUX1JPVU5EUyAoX19idWlsdGluX2ZsdF9yb3VuZHMoKSkKI2RlZmluZSBGTFRfUkFESVggX19GTFRfUkFESVhfXwoKI2RlZmluZSBGTFRfTUFOVF9ESUcgX19GTFRfTUFOVF9ESUdfXwojZGVmaW5lIERCTF9NQU5UX0RJRyBfX0RCTF9NQU5UX0RJR19fCiNkZWZpbmUgTERCTF9NQU5UX0RJRyBfX0xEQkxfTUFOVF9ESUdfXwoKI2lmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKIyAgZGVmaW5lIERFQ0lNQUxfRElHIF9fREVDSU1BTF9ESUdfXwojZW5kaWYKCiNkZWZpbmUgRkxUX0RJRyBfX0ZMVF9ESUdfXwojZGVmaW5lIERCTF9ESUcgX19EQkxfRElHX18KI2RlZmluZSBMREJMX0RJRyBfX0xEQkxfRElHX18KCiNkZWZpbmUgRkxUX01JTl9FWFAgX19GTFRfTUlOX0VYUF9fCiNkZWZpbmUgREJMX01JTl9FWFAgX19EQkxfTUlOX0VYUF9fCiNkZWZpbmUgTERCTF9NSU5fRVhQIF9fTERCTF9NSU5fRVhQX18KCiNkZWZpbmUgRkxUX01JTl8xMF9FWFAgX19GTFRfTUlOXzEwX0VYUF9fCiNkZWZpbmUgREJMX01JTl8xMF9FWFAgX19EQkxfTUlOXzEwX0VYUF9fCiNkZWZpbmUgTERCTF9NSU5fMTBfRVhQIF9fTERCTF9NSU5fMTBfRVhQX18KCiNkZWZpbmUgRkxUX01BWF9FWFAgX19GTFRfTUFYX0VYUF9fCiNkZWZpbmUgREJMX01BWF9FWFAgX19EQkxfTUFYX0VYUF9fCiNkZWZpbmUgTERCTF9NQVhfRVhQIF9fTERCTF9NQVhfRVhQX18KCiNkZWZpbmUgRkxUX01BWF8xMF9FWFAgX19GTFRfTUFYXzEwX0VYUF9fCiNkZWZpbmUgREJMX01BWF8xMF9FWFAgX19EQkxfTUFYXzEwX0VYUF9fCiNkZWZpbmUgTERCTF9NQVhfMTBfRVhQIF9fTERCTF9NQVhfMTBfRVhQX18KCiNkZWZpbmUgRkxUX01BWCBfX0ZMVF9NQVhfXwojZGVmaW5lIERCTF9NQVggX19EQkxfTUFYX18KI2RlZmluZSBMREJMX01BWCBfX0xEQkxfTUFYX18KCiNkZWZpbmUgRkxUX0VQU0lMT04gX19GTFRfRVBTSUxPTl9fCiNkZWZpbmUgREJMX0VQU0lMT04gX19EQkxfRVBTSUxPTl9fCiNkZWZpbmUgTERCTF9FUFNJTE9OIF9fTERCTF9FUFNJTE9OX18KCiNkZWZpbmUgRkxUX01JTiBfX0ZMVF9NSU5fXwojZGVmaW5lIERCTF9NSU4gX19EQkxfTUlOX18KI2RlZmluZSBMREJMX01JTiBfX0xEQkxfTUlOX18KCiNpZiBfX1NURENfVkVSU0lPTl9fID49IDIwMTExMkwgfHwgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSB8fCBfX2NwbHVzcGx1cyA+PSAyMDE3MDNMCiMgIGRlZmluZSBGTFRfVFJVRV9NSU4gX19GTFRfREVOT1JNX01JTl9fCiMgIGRlZmluZSBEQkxfVFJVRV9NSU4gX19EQkxfREVOT1JNX01JTl9fCiMgIGRlZmluZSBMREJMX1RSVUVfTUlOIF9fTERCTF9ERU5PUk1fTUlOX18KIyAgZGVmaW5lIEZMVF9ERUNJTUFMX0RJRyBfX0ZMVF9ERUNJTUFMX0RJR19fCiMgIGRlZmluZSBEQkxfREVDSU1BTF9ESUcgX19EQkxfREVDSU1BTF9ESUdfXwojICBkZWZpbmUgTERCTF9ERUNJTUFMX0RJRyBfX0xEQkxfREVDSU1BTF9ESUdfXwojICBkZWZpbmUgRkxUX0hBU19TVUJOT1JNIF9fRkxUX0hBU19ERU5PUk1fXwojICBkZWZpbmUgREJMX0hBU19TVUJOT1JNIF9fREJMX0hBU19ERU5PUk1fXwojICBkZWZpbmUgTERCTF9IQVNfU1VCTk9STSBfX0xEQkxfSEFTX0RFTk9STV9fCiNlbmRpZgoKI2lmZGVmIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXwojICBkZWZpbmUgRkxUMTZfTUFOVF9ESUcgICAgX19GTFQxNl9NQU5UX0RJR19fCiMgIGRlZmluZSBGTFQxNl9ERUNJTUFMX0RJRyBfX0ZMVDE2X0RFQ0lNQUxfRElHX18KIyAgZGVmaW5lIEZMVDE2X0RJRyAgICAgICAgIF9fRkxUMTZfRElHX18KIyAgZGVmaW5lIEZMVDE2X01JTl9FWFAgICAgIF9fRkxUMTZfTUlOX0VYUF9fCiMgIGRlZmluZSBGTFQxNl9NSU5fMTBfRVhQICBfX0ZMVDE2X01JTl8xMF9FWFBfXwojICBkZWZpbmUgRkxUMTZfTUFYX0VYUCAgICAgX19GTFQxNl9NQVhfRVhQX18KIyAgZGVmaW5lIEZMVDE2X01BWF8xMF9FWFAgIF9fRkxUMTZfTUFYXzEwX0VYUF9fCiMgIGRlZmluZSBGTFQxNl9NQVggICAgICAgICBfX0ZMVDE2X01BWF9fCiMgIGRlZmluZSBGTFQxNl9FUFNJTE9OICAgICBfX0ZMVDE2X0VQU0lMT05fXwojICBkZWZpbmUgRkxUMTZfTUlOICAgICAgICAgX19GTFQxNl9NSU5fXwojICBkZWZpbmUgRkxUMTZfVFJVRV9NSU4gICAgX19GTFQxNl9UUlVFX01JTl9fCiNlbmRpZiAvKiBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gKi8KCiNlbmRpZiAvKiBfX0NMQU5HX0ZMT0FUX0ggKi8KAC8qPT09LS0tLSBmbWE0aW50cmluLmggLSBGTUE0IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8Zm1hNGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19GTUE0SU5UUklOX0gKI2RlZmluZSBfX0ZNQTRJTlRSSU5fSAoKI2luY2x1ZGUgPHBtbWludHJpbi5oPgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZtYTQiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZm1hNCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hY2NfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFjY19wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYWNjX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hY2Nfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZCgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkcHMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAtKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAtKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1Yl9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1hY2NfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzKC0oX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX25tYWNjX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoLShfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9ubWFjY19zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MoLShfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1hY2Nfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX25tc3ViX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygtKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAtKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1zdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9ubXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MoLShfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX25tc3ViX3NkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QoLShfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFkZHN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYWRkc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21zdWJhZGRfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21zdWJhZGRfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIC0oX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hY2NfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2KChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFjY19wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NigoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIC0oX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tc3ViX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYoKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAtKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9ubWFjY19wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoLShfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbm1hY2NfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigtKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAoX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X25tc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NigtKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigtKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAtKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYWRkc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczI1NigoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIChfX3Y4c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hZGRzdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIChfX3Y0ZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXN1YmFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXN1YmFkZF9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgLShfX3Y0ZGYpX19DKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19GTUE0SU5UUklOX0ggKi8KAC8qPT09LS0tLSBwbW1pbnRyaW4uaCAtIFNTRTMgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19QTU1JTlRSSU5fSAojZGVmaW5lIF9fUE1NSU5UUklOX0gKCiNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlMyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCi8vLyBMb2FkcyBkYXRhIGZyb20gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0byBlbGVtZW50cyBpbiBhIDEyOC1iaXQKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBJZiB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YSBpcyBub3QgMTYtYnl0ZSBhbGlnbmVkLCB0aGUgaW5zdHJ1Y3Rpb24gbWF5Ci8vLyAgICByZWFkIHR3byBhZGphY2VudCBhbGlnbmVkIGJsb2NrcyBvZiBtZW1vcnkgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3RlZAovLy8gICAgZGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTEREUVUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgaW50ZWdlciB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xkZHF1X3NpMTI4KF9fbTEyOGkgY29uc3QgKl9fcCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9sZGRxdSgoY2hhciBjb25zdCAqKV9fcCk7Cn0KCi8vLyBBZGRzIHRoZSBldmVuLWluZGV4ZWQgdmFsdWVzIGFuZCBzdWJ0cmFjdHMgdGhlIG9kZC1pbmRleGVkIHZhbHVlcyBvZgovLy8gICAgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUREU1VCUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxlZnQgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBhbHRlcm5hdGluZyBzdW1zIGFuZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc3ViX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkc3VicHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3bwovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIQUREUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfaGFkZHBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgc3VidHJhY3RzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3bwovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIU1VCUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIKLy8vICAgIGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyCi8vLyAgICBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faHN1Yl9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2hzdWJwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gTW92ZXMgYW5kIGR1cGxpY2F0ZXMgb2RkLWluZGV4ZWQgdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0gdG8gZmxvYXQgdmFsdWVzIHN0b3JlZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0hEVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gYW5kIFs5NTo2NF0gb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBhbmQgWzMxOjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIGFuZCBkdXBsaWNhdGVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vdmVoZHVwX3BzKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19hLCAxLCAxLCAzLCAzKTsKfQoKLy8vIER1cGxpY2F0ZXMgZXZlbi1pbmRleGVkIHZhbHVlcyBmcm9tIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIHRvIGZsb2F0IHZhbHVlcyBzdG9yZWQgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0xEVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIFxuCi8vLyAgICBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIGFuZCBbOTU6NjRdIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBhbmQgWzMxOjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIGFuZCBkdXBsaWNhdGVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vdmVsZHVwX3BzKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19hLCAwLCAwLCAyLCAyKTsKfQoKLy8vIEFkZHMgdGhlIGV2ZW4taW5kZXhlZCB2YWx1ZXMgYW5kIHN1YnRyYWN0cyB0aGUgb2RkLWluZGV4ZWQgdmFsdWVzIG9mCi8vLyAgICB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUREU1VCUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBsZWZ0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBhbHRlcm5hdGluZyBzdW1zCi8vLyAgICBhbmQgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHN1Yl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkc3VicGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSEFERFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bSBvZiB0aGUgdmFsdWVzIGlzIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bSBvZiB0aGUgdmFsdWVzIGlzIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfaGFkZHBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgc3VidHJhY3RzIHRoZSBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSFNVQlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2Ugb2YgdGhlIHZhbHVlcyBpcyBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlIG9mIHRoZSB2YWx1ZXMgaXMgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faHN1Yl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfaHN1YnBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBNb3ZlcyBhbmQgZHVwbGljYXRlcyBvbmUgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSB0byBkb3VibGUtcHJlY2lzaW9uCi8vLyAgICB2YWx1ZXMgc3RvcmVkIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fbG9hZGR1cF9wZChkb3VibGUgY29uc3QgKmRwKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRERVUCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkcAovLy8gICAgQSBwb2ludGVyIHRvIGEgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSB0byBiZSBtb3ZlZCBhbmQgZHVwbGljYXRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIGFuZAovLy8gICAgZHVwbGljYXRlZCB2YWx1ZXMuCiNkZWZpbmUgICAgICAgIF9tbV9sb2FkZHVwX3BkKGRwKSAgICAgICAgX21tX2xvYWQxX3BkKGRwKQoKLy8vIE1vdmVzIGFuZCBkdXBsaWNhdGVzIHRoZSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBzdG9yZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMKLy8vICAgIFsxMjc6NjRdIGFuZCBbNjM6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kCi8vLyAgICBkdXBsaWNhdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vdmVkdXBfcGQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19hLCAwLCAwKTsKfQoKLy8vIEVzdGFibGlzaGVzIGEgbGluZWFyIGFkZHJlc3MgbWVtb3J5IHJhbmdlIHRvIGJlIG1vbml0b3JlZCBhbmQgcHV0cwovLy8gICAgdGhlIHByb2Nlc3NvciBpbiB0aGUgbW9uaXRvciBldmVudCBwZW5kaW5nIHN0YXRlLiBEYXRhIHN0b3JlZCBpbiB0aGUKLy8vICAgIG1vbml0b3JlZCBhZGRyZXNzIHJhbmdlIGNhdXNlcyB0aGUgcHJvY2Vzc29yIHRvIGV4aXQgdGhlIHBlbmRpbmcgc3RhdGUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9OSVRPUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIFRoZSBtZW1vcnkgcmFuZ2UgdG8gYmUgbW9uaXRvcmVkLiBUaGUgc2l6ZSBvZiB0aGUgcmFuZ2UgaXMgZGV0ZXJtaW5lZCBieQovLy8gICAgQ1BVSUQgZnVuY3Rpb24gMDAwMF8wMDA1aC4KLy8vIFxwYXJhbSBfX2V4dGVuc2lvbnMKLy8vICAgIE9wdGlvbmFsIGV4dGVuc2lvbnMgZm9yIHRoZSBtb25pdG9yaW5nIHN0YXRlLgovLy8gXHBhcmFtIF9faGludHMKLy8vICAgIE9wdGlvbmFsIGhpbnRzIGZvciB0aGUgbW9uaXRvcmluZyBzdGF0ZS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vbml0b3Iodm9pZCBjb25zdCAqX19wLCB1bnNpZ25lZCBfX2V4dGVuc2lvbnMsIHVuc2lnbmVkIF9faGludHMpCnsKICBfX2J1aWx0aW5faWEzMl9tb25pdG9yKF9fcCwgX19leHRlbnNpb25zLCBfX2hpbnRzKTsKfQoKLy8vIFVzZWQgd2l0aCB0aGUgTU9OSVRPUiBpbnN0cnVjdGlvbiB0byB3YWl0IHdoaWxlIHRoZSBwcm9jZXNzb3IgaXMgaW4KLy8vICAgIHRoZSBtb25pdG9yIGV2ZW50IHBlbmRpbmcgc3RhdGUuIERhdGEgc3RvcmVkIGluIHRoZSBtb25pdG9yZWQgYWRkcmVzcwovLy8gICAgcmFuZ2UgY2F1c2VzIHRoZSBwcm9jZXNzb3IgdG8gZXhpdCB0aGUgcGVuZGluZyBzdGF0ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNV0FJVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2V4dGVuc2lvbnMKLy8vICAgIE9wdGlvbmFsIGV4dGVuc2lvbnMgZm9yIHRoZSBtb25pdG9yaW5nIHN0YXRlLCB3aGljaCBtYXkgdmFyeSBieQovLy8gICAgcHJvY2Vzc29yLgovLy8gXHBhcmFtIF9faGludHMKLy8vICAgIE9wdGlvbmFsIGhpbnRzIGZvciB0aGUgbW9uaXRvcmluZyBzdGF0ZSwgd2hpY2ggbWF5IHZhcnkgYnkgcHJvY2Vzc29yLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXdhaXQodW5zaWduZWQgX19leHRlbnNpb25zLCB1bnNpZ25lZCBfX2hpbnRzKQp7CiAgX19idWlsdGluX2lhMzJfbXdhaXQoX19leHRlbnNpb25zLCBfX2hpbnRzKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fUE1NSU5UUklOX0ggKi8KAC8qPT09LS0tLSBzdGRhbGlnbi5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBhbGlnbm1lbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fU1REQUxJR05fSAojZGVmaW5lIF9fU1REQUxJR05fSAoKI2lmbmRlZiBfX2NwbHVzcGx1cwojZGVmaW5lIGFsaWduYXMgX0FsaWduYXMKI2RlZmluZSBhbGlnbm9mIF9BbGlnbm9mCiNlbmRpZgoKI2RlZmluZSBfX2FsaWduYXNfaXNfZGVmaW5lZCAxCiNkZWZpbmUgX19hbGlnbm9mX2lzX2RlZmluZWQgMQoKI2VuZGlmIC8qIF9fU1REQUxJR05fSCAqLwoAdHN4bGR0cmtpbnRyaW4uaAB4ODZncHJpbnRyaW4uaABJbnZhbGlkIHZhbHVlLgBNaXNzaW5nIGEgbmFtZSBmb3Igb2JqZWN0IG1lbWJlci4AZXh0ZXJuYWwva3l0aGUva3l0aGUvY3h4L2NvbW1vbi9wYXRoX3V0aWxzLmNjAFJld3JpdGUgc2NoZW1hIHJlcXVlc3RzICVkIG1hdGNoZXMsIGJ1dCB0aGUgcmVnZXhwIG9ubHkgaGFzICVkIHBhcmVudGhlc2l6ZWQgc3ViZXhwcmVzc2lvbnMuAEJhZCBjYWxsIHRvIFBhcnNlU3RhdGU6OlBhcnNlUGVybEZsYWdzAFxXAFs6Y250cmw6XQBleHRlcm5hbC9yZWdleC1yZTIvcmUyL2NvbXBpbGUuY2MAVW5leHBlY3RlZCBvcGNvZGU6IABpbnZhbGlkIGNoYXJhY3RlciBjbGFzcyByYW5nZQAgW3RydW5jYXRlZF0AQnVnaW5lc2UAQ29tbW9uAE1haGFqYW5pAE1ha2FzYXIAT2xkX1NvdXRoX0FyYWJpYW4AU2F1cmFzaHRyYQBTbwBUaWZpbmFnaABzaWdhY3Rpb24oKSBmYWlsZWQAcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHJlZ2lvbikgJSBhcmVuYS0+cGFnZXNpemUgPT0gMABlAERhAGNoYXI4X3QAbmEAcm0AKz0Ab1IAPj49AGlzdHJlYW0AREVBRExJTkVfRVhDRUVERUQASU5GAHRoaXMtPkF3YWl0Q29tbW9uKGNvbmQsIEtlcm5lbFRpbWVvdXQ6Ok5ldmVyKCkpAHJlcyB8fCB0Lmhhc190aW1lb3V0KCkAUmVhZGVyTG9jayBibG9ja2luZyAAQ2hlY2sgKHYgJiAoa011V3JpdGVyIHwga011UmVhZGVyKSkgIT0gKGtNdVdyaXRlciB8IGtNdVJlYWRlcikgZmFpbGVkOiAlczogTXV0ZXggY29ycnVwdDogYm90aCByZWFkZXIgYW5kIHdyaXRlciBsb2NrIGhlbGQ6ICVwAHB0aHJlYWRfZ2V0c2NoZWRwYXJhbSBmYWlsZWQ6ICVkAC0wMAAvZGF0YS9taXNjL3pvbmVpbmZvL2N1cnJlbnQvdHpkYXRhAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vZXhwb25lbnRpYXRpb24uYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL3NoaWZ0LmMAUC0yNTYAJXMgZmFpbGVkLgpFeHBlY3RlZDogAGxpYigldSkAbWVtb3J5IGJ1ZmZlciByb3V0aW5lcwBIS0RGIGZ1bmN0aW9ucwBreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQuRW52Lm5hbWUAa3l0aGUucHJvdG8uQ29udGV4dERlcGVuZGVudFZlcnNpb24uQ29sdW1uLmxpbmtlZF9jb250ZXh0AGFzc2VtYmxlci13aXRoLWNwcAAtLWFuYWx5emUAS1lUSEVfRVhDTFVERV9BVVRPQ09ORklHVVJBVElPTl9GSUxFUwBoZWFkZXJfc2VhcmNoX2luZm8AQ2hlY2sgZmFpbGVkOiAAKTogAF9fd21taW50cmluX2Flcy5oAGF2eDUxMnZwb3BjbnRkcWludHJpbi5oAGNsZGVtb3RlaW50cmluLmgALyo9PT0tLS0tIGZtYWludHJpbi5oIC0gRk1BIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxmbWFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRk1BSU5UUklOX0gKI2RlZmluZSBfX0ZNQUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZm1hIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZtYSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbWFkZF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkMygoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1zdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViX3NkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm5tYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygtKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbm1hZGRfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubWFkZF9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAtKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubWFkZF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkMygoX192MmRmKV9fQSwgLShfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkcHMoLShfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkKC0oX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIC0oX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAtKF9fdjRzZilfX0IsIC0oX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbm1zdWJfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDMoKF9fdjJkZilfX0EsIC0oX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1hZGRzdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1hZGRzdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1zdWJhZGRfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViYWRkX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZF9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbXN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2ZubWFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoLShfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm5tYWRkX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYoLShfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbm1zdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2KC0oX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIC0oX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigtKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAtKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZHN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZHN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbXN1YmFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm1zdWJhZGRfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmIC8qIF9fRk1BSU5UUklOX0ggKi8KAC8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0IQovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKCgojaWZuZGVmIF9fSEVYQUdPTl9QUk9UT1NfSF8KI2RlZmluZSBfX0hFWEFHT05fUFJPVE9TX0hfIDEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hYnMoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hYnNfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hYnNfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hYnMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YWJzKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Fic19QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hYnNfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hYnNwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWJzKFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fic19SX3NhdChXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hYnNfUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWJzc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUlIgX19idWlsdGluX0hFWEFHT05fQTJfYWRkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIuaCxSczMyLmgpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSaF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmhSaF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9oMTZfaGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIubCk6PDwxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SaFJsX3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SaFJsX3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSdDMyLmwsUnMzMi5oKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JsUmhfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmhfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX2FkZGhfaDE2X2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSbF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSbF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9oMTZfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIuaCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSaF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JoUmhfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfaGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIubCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSbF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JoUmxfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfaGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIuaCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmhfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfbGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIubCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSbF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmxfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaChXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FkZGhfbDE2X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JsUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2wxNl9sbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSdDMyLmwsUnMzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaF9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSaF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9sMTZfc2F0X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SbFJsX3NhdChXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2wxNl9zYXRfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnMzMiwjczE2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczE2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyX0FEREkKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hZGRfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FkZF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYWRkX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYWRkX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRwc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWRkc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FkZF9SUChXb3JkMzIgUnMsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FkZF9SUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRzcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kX1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRfUkkgX19idWlsdGluX0hFWEFHT05fQTJfYW5kaXIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YW5kKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FuZF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYW5kX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FuZHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2xoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsaF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hc2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YXNyaChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcmhfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JoX1IgX19idWlsdGluX0hFWEFHT05fQTJfYXNyaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5oLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JoUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JoUmggX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9oaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5oLFJzMzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JoUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JoUmwgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5sLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JsUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JsUmggX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9saAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5sLFJzMzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JsUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JsUmwgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9sbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb21iaW5lKCNzOCwjUzgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9JSShXb3JkMzIgSXM4LCBXb3JkMzIgSVM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29tYmluZV9JSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl9jb21iaW5laWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29tYmluZShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbWJpbmVfUlIgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tYXgoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21heF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21heF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9tYXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bWF4KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21heF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWF4X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX21heHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tYXh1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbWF4dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21heHVfUlIgX19idWlsdGluX0hFWEFHT05fQTJfbWF4dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tYXh1KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tYXh1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tYXh1X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX21heHVwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWluKFJ0MzIsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9taW5fUlIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9taW5fUlIgX19idWlsdGluX0hFWEFHT05fQTJfbWluCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1pbihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9taW5fUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21pbl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9taW5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWludShSdDMyLFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21pbnVfUlIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9taW51X1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX21pbnUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bWludShSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbWludV9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWludV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9taW51cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW5lZyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25lZ19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX25lZ19SIF9fYnVpbHRpbl9IRVhBR09OX0EyX25lZwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1uZWcoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbmVnX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX25lZ19QIF9fYnVpbHRpbl9IRVhBR09OX0EyX25lZ3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1uZWcoUnMzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbmVnX1Jfc2F0KFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX25lZ19SX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9uZWdzYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1ub3QoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9ub3RfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3RfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bm90KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX25vdF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9ub3RfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9ub3RwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfUlIgX19idWlsdGluX0hFWEFHT05fQTJfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1vcihSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3JfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXMxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX29yX1JJIF9fYnVpbHRpbl9IRVhBR09OX0EyX29yaXIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9b3IoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfb3JfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX29yX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX29ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXJvdW5kKFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9yb3VuZF9QX3NhdChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm91bmRfUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfcm91bmRzYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXQoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc2F0X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdF9QIF9fYnVpbHRpbl9IRVhBR09OX0EyX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNhdGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zYXRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2F0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3NhdGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc2F0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zYXRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2F0dWIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zYXR1Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdHViX1IgX19idWlsdGluX0hFWEFHT05fQTJfc2F0dWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXR1aChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NhdHVoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2F0dWhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zYXR1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JSKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmgsUnMzMi5oKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmhfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JoUmhfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfaDE2X2hoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmwpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfUmhSbF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmhSbF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfaGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zdWIoUnQzMi5sLFJzMzIuaCk6PDwxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SbFJoX3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJoX3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJoX2gxNl9saAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmxfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmxfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfaDE2X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmgpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmhfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SaFJoX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2hoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmwpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmxfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SaFJsX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmgpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmhfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJoX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmwpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmxfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJsX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJoX2wxNl9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SbFJsKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmwgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9sMTZfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zdWIoUnQzMi5sLFJzMzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmhfc2F0KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfbDE2X3NhdF9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfUmxSbF9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmxSbF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9sMTZfc2F0X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXN1YihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9zdWJfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3N1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKCNzMTAsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfSVIoV29yZDMyIElzMTAsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9JUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YnNhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YWRkaF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZhZGRoX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YWRkaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRoKFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmFkZGhfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFkZGhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YWRkaHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12YWRkdWgoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YWRkdWhfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFkZHVoX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdmFkZHVocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhdmdoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YXZnaF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZhdmdoX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YXZnaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhdmdoKFJzMzIsUnQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmF2Z2hfUlJfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmF2Z2hfUlJfcm5kIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YXZnaHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12bmF2Z2goUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZuYXZnaF9SUihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZuYXZnaF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdm5hdmdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnN1YmgoUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzdWJoX1JSKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnN1YmhfUlIgX19idWlsdGluX0hFWEFHT05fQTJfc3ZzdWJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnN1YmgoUnQzMixSczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c3ViaF9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c3ViaF9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfc3ZzdWJocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzdWJ1aChSdDMyLFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzdWJ1aF9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c3VidWhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2c3VidWhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3dpeihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N3aXpfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zd2l6X1IgX19idWlsdGluX0hFWEFHT05fQTJfc3dpegoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN4dGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zeHRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3h0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N4dGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zeHRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3h0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N4dGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zeHRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXN4dHcoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9zeHR3X1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfc3h0d19SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N4dHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1SczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXF1YWxzX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXF1YWxzX1IgX19idWlsdGluX0hFWEFHT05fQTJfdGZyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIuaD0jdTE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JoX2VxdWFsc19JKFdvcmQzMiBSeCwgV29yZDMyIEl1MTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUmhfZXF1YWxzX0kgX19idWlsdGluX0hFWEFHT05fQTJfdGZyaWgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi5sPSN1MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUmxfZXF1YWxzX0koV29yZDMyIFJ4LCBXb3JkMzIgSXUxNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SbF9lcXVhbHNfSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl90ZnJpbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1Sc3MzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2VxdWFsc19QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9lcXVhbHNfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl90ZnJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPSNzOAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2VxdWFsc19JKFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2VxdWFsc19JIF9fYnVpbHRpbl9IRVhBR09OX0EyX3RmcnBpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9I3MxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2VxdWFsc19JKFdvcmQzMiBJczE2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXF1YWxzX0kgX19idWlsdGluX0hFWEFHT05fQTJfdGZyc2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFic2goUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2hfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFic2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWJzaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzaChSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2hfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNoX1Bfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhYnNoc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnN3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhYnN3X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnN3X1AgX19idWlsdGluX0hFWEFHT05fQTJfdmFic3cKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFic3coUnNzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhYnN3X1Bfc2F0KFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWJzd19QX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWJzd3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkYihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWRkYl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhZGRiX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhZGRiX21hcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWRkaF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZGhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFkZGgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhZGRoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZGhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhZGRocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHViX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkdWJfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZHViCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR1YihSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHViX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZHViX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdWJzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR1aChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHVoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZHVoX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdWhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhZGR3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkdyhSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHdfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkd19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZHdzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmdoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhdmdoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZnaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZnaChSc3MzMixSdHQzMik6Y3JuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhdmdoX1BQX2NybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhdmdoX1BQX2NybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z2hjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZnaChSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z2hfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnaF9QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z2hyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd1YihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXZndWJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmF2Z3ViKFJzczMyLFJ0dDMyKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXZndWJfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZndWJfUFBfcm5kIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zhdmd1YnIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmF2Z3VoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd1aF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmF2Z3VoX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zhdmd1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndWgoUnNzMzIsUnR0MzIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd1aF9QUF9ybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd1aF9QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3VocgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3V3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZndXdfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3V3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd1dyhSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3V3X1BQX3JuZChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmF2Z3V3X1BQX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndXdyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndyhSc3MzMixSdHQzMik6Y3JuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd3X1BQX2NybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd3X1BQX2NybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3djcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndyhSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3dfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnd19QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3dyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wYi5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGJfZXFfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBiX2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXBiZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0dShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGJfZ3R1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wYl9ndHVfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcGJndHUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBoLmVxKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZXFfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcGhlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGguZ3QoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBoX2d0X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21waF9ndF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92Y21waGd0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21waC5ndHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBoX2d0dV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZ3R1X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXBoZ3R1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wdy5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZXFfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXB3ZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXB3Lmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wd19ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcHdfZ3RfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcHdndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcHcuZ3R1KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wd19ndHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2d0dV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92Y21wd2d0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y29uaihSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNvbmpfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zjb25qX1Bfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zjb25qCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtYXhiKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtYXhiX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWF4Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWF4YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWF4aChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWF4aF9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1heGhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1heGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1heHViKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtYXh1Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1heHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtYXh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWF4dWgoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1heHVoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWF4dWhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1heHVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtYXh1dyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWF4dXdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtYXh1d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWF4dXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1heHcoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1heHdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtYXh3X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtYXh3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtaW5iKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtaW5iX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWluYl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWluYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWluaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWluaF9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1pbmhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1pbmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1pbnViKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtaW51Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1pbnViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtaW51YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWludWgoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1pbnVoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWludWhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1pbnVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtaW51dyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWludXdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtaW51d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWludXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1pbncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1pbndfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtaW53X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtaW53CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZnaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bmF2Z2hfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZuYXZnaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm5hdmdoKFJ0dDMyLFJzczMyKTpjcm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnaF9QUF9jcm5kX3NhdChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm5hdmdoX1BQX2NybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZuYXZnaGNyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZnaChSdHQzMixSc3MzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnaF9QUF9ybmRfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bmF2Z2hfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z2hyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZndyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bmF2Z3dfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZuYXZnd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z3cKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm5hdmd3KFJ0dDMyLFJzczMyKTpjcm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnd19QUF9jcm5kX3NhdChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm5hdmd3X1BQX2NybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZuYXZnd2NyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZndyhSdHQzMixSc3MzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnd19QUF9ybmRfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bmF2Z3dfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z3dyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyYWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJhZGR1Yl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmFkZHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZyYWRkdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZyYWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJhZGR1YmFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmFkZHViYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZyYWRkdWJfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyc2FkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJzYWR1Yl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cnNhZHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zyc2FkdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZyc2FkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJzYWR1YmFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cnNhZHViYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zyc2FkdWJfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJiKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzdWJiX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnN1YmJfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdnN1YmJfbWFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJoKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzdWJoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3ViaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3ViaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3ViaChSdHQzMixSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN1YmhfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3ViaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfdnN1YmhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJ1YihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWJfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3VidWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YnViKFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWJfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3VidWJfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ1YnMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YnVoKFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWhfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3VidWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ1aHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN1YndfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ3X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJ3KFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3Vid19QUF9zYXQoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ3X1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3Vid3MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3hvcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9eG9yKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3hvcl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfeG9yX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3hvcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj16eHRiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfenh0Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3p4dGJfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl96eHRiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9enh0aChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3p4dGhfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl96eHRoX1IgX19idWlsdGluX0hFWEFHT05fQTJfenh0aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSdDMyLH5SczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9SblIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRfUm5SIF9fYnVpbHRpbl9IRVhBR09OX0E0X2FuZG4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YW5kKFJ0dDMyLH5Sc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hbmRfUG5QKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hbmRfUG5QIF9fYnVpbHRpbl9IRVhBR09OX0E0X2FuZG5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWJpdHNwbGl0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9iaXRzcGxpdF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2JpdHNwbGl0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2JpdHNwbGl0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWJpdHNwbGl0KFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2JpdHNwbGl0X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2JpdHNwbGl0X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2JpdHNwbGl0aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Ym91bmRzY2hlY2soUnMzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYm91bmRzY2hlY2tfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ib3VuZHNjaGVja19SUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9ib3VuZHNjaGVjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5lcShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBiX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5lcShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wYl9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBiX2VxX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGIuZ3QoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBiX2d0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBiZ3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGIuZ3QoUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3RfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBiZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBiLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3R1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndHVfUlIgX19idWlsdGluX0hFWEFHT05fQTRfY21wYmd0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5ndHUoUnMzMiwjdTcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3R1X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGJfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJndHVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGhfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQTRfY21waGVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBoX2VxX1JJKFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGhfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQTRfY21waGVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21waC5ndChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGhfZ3RfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGhndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21waC5ndChSczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGhndGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGguZ3R1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndHVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0dV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBoZ3R1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmd0dShSczMyLCN1NykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndHVfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21waF9ndHVfUkkgX19idWlsdGluX0hFWEFHT05fQTRfY21waGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29tYmluZSgjczgsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb21iaW5lX0lSKFdvcmQzMiBJczgsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbWJpbmVfSVIgX19idWlsdGluX0hFWEFHT05fQTRfY29tYmluZWlyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbWJpbmUoUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb21iaW5lX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NvbWJpbmVyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNyb3VuZChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jcm91bmRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY3JvdW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2Nyb3VuZF9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNyb3VuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3JvdW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY3JvdW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2Nyb3VuZF9ycgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1vZHdyYXAoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21vZHdyYXBfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tb2R3cmFwX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X21vZHdyYXB1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9b3IoUnQzMix+UnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9vcl9SblIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcl9SblIgX19idWlsdGluX0hFWEFHT05fQTRfb3JuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW9yKFJ0dDMyLH5Sc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9vcl9QblAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX29yX1BuUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9vcm5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXBfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXBfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQTRfcmNtcGVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21wLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcF9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXBfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQTRfcmNtcGVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPSFjbXAuZXEoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vdF9jbXBfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3RfY21wX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3JjbXBuZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj0hY21wLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vdF9jbXBfZXFfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfbm90X2NtcF9lcV9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF9yY21wbmVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXJvdW5kKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvdW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3JvdW5kX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9cm91bmQoUnMzMiwjdTUpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JJX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9yb3VuZF9SSV9zYXQgX19idWlsdGluX0hFWEFHT05fQTRfcm91bmRfcmlfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9cm91bmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm91bmRfUlIgX19idWlsdGluX0hFWEFHT05fQTRfcm91bmRfcnIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1yb3VuZChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvdW5kX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9yb3VuZF9ycl9zYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXRsYm1hdGNoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3RsYm1hdGNoX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3RsYm1hdGNoX1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3RsYm1hdGNoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbnk4KHZjbXBiLmVxKFJzczMyLFJ0dDMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW55OF92Y21wYl9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW55OF92Y21wYl9lcV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21wYmVxX2FueQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGIuZXEoUnNzMzIsI3U4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9lcV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZXFfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3RfUFAgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGIuZ3QoUnNzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9ndF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3RfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJndGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0dShSc3MzMiwjdTcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBiX2d0dV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3R1X1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXBiZ3R1aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGguZXEoUnNzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9lcV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZXFfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGhlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBoLmd0KFJzczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGhfZ3RfUEkoV29yZDY0IFJzcywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBoX2d0X1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXBoZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21waC5ndHUoUnNzMzIsI3U3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9ndHVfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBoX2d0dV9QSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21waGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXB3LmVxKFJzczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZXFfUEkoV29yZDY0IFJzcywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2VxX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXB3ZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wdy5ndChSc3MzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXB3X2d0X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wd19ndF9QSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21wd2d0aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcHcuZ3R1KFJzczMyLCN1NykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZ3R1X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTcpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wd19ndHVfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcHdndHVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWF4aChSc3MzMixSdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybWF4aF9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1heGhfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtYXhoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWF4dWgoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1heHVoX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWF4dWhfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtYXh1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj12cm1heHV3KFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtYXh1d19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1heHV3X1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZybWF4dXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtYXh3KFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtYXh3X1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWF4d19QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1heHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtaW5oKFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtaW5oX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWluaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1pbmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtaW51aChSc3MzMixSdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybWludWhfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtaW51aF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1pbnVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWludXcoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1pbnV3X1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWludXdfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtaW51dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj12cm1pbncoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1pbndfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtaW53X1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZybWludwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRodWIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZhZGRodWJfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YWRkaHViX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BNV92YWRkaHVicwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YWxsOChQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FsbDhfcChCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYWxsOF9wIF9fYnVpbHRpbl9IRVhBR09OX0MyX2FsbDgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWFuZChQdDQsUHM0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9hbmRfcHAoQnl0ZSBQdCwgQnl0ZSBQcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2FuZF9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWFuZChQdDQsIVBzNCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW5kX3BucChCeXRlIFB0LCBCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW5kX3BucCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbnk4KFBzNCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW55OF9wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbnk4X3AgX19idWlsdGluX0hFWEFHT05fQzJfYW55OAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Yml0c2NscihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNjbHJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9iaXRzY2xyX1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2JpdHNjbHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWJpdHNjbHIoUnMzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNjbHJfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYml0c2Nscl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DMl9iaXRzY2xyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Yml0c3NldChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNzZXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9iaXRzc2V0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2JpdHNzZXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5lcShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9lcV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9jbXBlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmVxKFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2VxX1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQzJfY21wZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAuZXEoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGVxcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmdlKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBfZ2VfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2dlX1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGdlaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmdldShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2dldV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ2V1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGdldWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5ndChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9ndF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9jbXBndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0KFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2d0X1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3RfUkkgX19idWlsdGluX0hFWEFHT05fQzJfY21wZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAuZ3QoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2d0X1BQIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndHVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3R1X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0dShSczMyLCN1OSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2d0dV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTkpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5ndHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9ndHVfUFAgX19idWlsdGluX0hFWEFHT05fQzJfY21wZ3R1cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmx0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2x0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2x0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGx0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAubHR1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2x0dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9sdHVfUlIgX19idWlsdGluX0hFWEFHT05fQzJfY21wbHR1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1hc2soUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21hc2tfcChCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWFza19wIF9fYnVpbHRpbl9IRVhBR09OX0MyX21hc2sKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tdXgoUHU0LFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tdXhfcFJSKEJ5dGUgUHUsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXV4X3BSUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9tdXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tdXgoUHU0LCNzOCwjUzgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXV4X3BJSShCeXRlIFB1LCBXb3JkMzIgSXM4LCBXb3JkMzIgSVM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXV4X3BJSSBfX2J1aWx0aW5fSEVYQUdPTl9DMl9tdXhpaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW11eChQdTQsUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXV4X3BSSShCeXRlIFB1LCBXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tdXhfcFJJIF9fYnVpbHRpbl9IRVhBR09OX0MyX211eGlyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXV4KFB1NCwjczgsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tdXhfcElSKEJ5dGUgUHUsIFdvcmQzMiBJczgsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX211eF9wSVIgX19idWlsdGluX0hFWEFHT05fQzJfbXV4cmkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PW5vdChQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PW9yKFB0NCxQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX3BwKEJ5dGUgUHQsIEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9b3IoUHQ0LCFQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX3BucChCeXRlIFB0LCBCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfb3JfcG5wIF9fYnVpbHRpbl9IRVhBR09OX0MyX29ybgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9UHM0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2VxdWFsc19wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZXF1YWxzX3AgX19idWlsdGluX0hFWEFHT05fQzJfcHhmZXJfbWFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9UHM0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXF1YWxzX3AoQnl0ZSBQcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2VxdWFsc19wIF9fYnVpbHRpbl9IRVhBR09OX0MyX3RmcnByCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1SczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2VxdWFsc19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2VxdWFsc19SIF9fYnVpbHRpbl9IRVhBR09OX0MyX3RmcnJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dml0cGFjayhQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZpdHBhY2tfcHAoQnl0ZSBQcywgQnl0ZSBQdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZpdHBhY2tfcHAgX19idWlsdGluX0hFWEFHT05fQzJfdml0cGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXV4KFB1NCxSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXV4X3BQUChCeXRlIFB1LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm11eF9wUFAgX19idWlsdGluX0hFWEFHT05fQzJfdm11eAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9eG9yKFBzNCxQdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3hvcl9wcChCeXRlIFBzLCBCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfeG9yX3BwIF9fYnVpbHRpbl9IRVhBR09OX0MyX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YW5kKFBzNCxhbmQoUHQ0LFB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9hbmRfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfYW5kX3BwcCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9hbmRfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbmQoUHM0LGFuZChQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9hbmRfcHBucChCeXRlIFBzLCBCeXRlIFB0LCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW5kX2FuZF9wcG5wIF9fYnVpbHRpbl9IRVhBR09OX0M0X2FuZF9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbmQoUHM0LG9yKFB0NCxQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9hbmRfb3JfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfb3JfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X2FuZF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YW5kKFBzNCxvcihQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9vcl9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfb3JfcHBucCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9hbmRfb3JuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9ndF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZ3RfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbHRlCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0KFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9ndF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9ndF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DNF9jbXBsdGVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9jbXBfZ3R1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9ndHVfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbHRldQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWNtcC5ndHUoUnMzMiwjdTkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9jbXBfZ3R1X1JJKFdvcmQzMiBScywgV29yZDMyIEl1OSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0M0X2NtcGx0ZXVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbmVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmVxKFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9lcV9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DNF9jbXBuZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1mYXN0Y29ybmVyOShQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9mYXN0Y29ybmVyOV9wcChCeXRlIFBzLCBCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZmFzdGNvcm5lcjlfcHAgX19idWlsdGluX0hFWEFHT05fQzRfZmFzdGNvcm5lcjkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PSFmYXN0Y29ybmVyOShQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9ub3RfZmFzdGNvcm5lcjlfcHAoQnl0ZSBQcywgQnl0ZSBQdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9mYXN0Y29ybmVyOV9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9mYXN0Y29ybmVyOV9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PSFiaXRzY2xyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2JpdHNjbHJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfYml0c2Nscl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DNF9uYml0c2NscgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWJpdHNjbHIoUnMzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9iaXRzY2xyX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9iaXRzY2xyX1JJIF9fYnVpbHRpbl9IRVhBR09OX0M0X25iaXRzY2xyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWJpdHNzZXQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9ub3RfYml0c3NldF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9iaXRzc2V0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0M0X25iaXRzc2V0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsYW5kKFB0NCxQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9vcl9hbmRfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9hbmRfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9b3IoUHM0LGFuZChQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX2FuZF9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9hbmRfcHBucCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9vcl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsb3IoUHQ0LFB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX29yX3BwcChCeXRlIFBzLCBCeXRlIFB0LCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfb3Jfb3JfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsb3IoUHQ0LCFQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9vcl9vcl9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9vcl9wcG5wIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX29ybgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X2QyZGYoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfZDJkZl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2QyZGZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2QyZGYKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X2Qyc2YoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX2NvbnZlcnRfZDJzZl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X2Qyc2ZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2Qyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9kZjJkKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfZGYyZF9QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29udmVydF9kZjJkX1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfZGYyZChSc3MzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfZGYyZF9QX2Nob3AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMmRfUF9jaG9wIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfZGYyZF9jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJzZihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1JfY29udmVydF9kZjJzZl9QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJzZl9QIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfZGYyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9kZjJ1ZChSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb252ZXJ0X2RmMnVkX1AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMnVkX1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ1ZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X2RmMnVkKFJzczMyKTpjaG9wCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29udmVydF9kZjJ1ZF9QX2Nob3AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMnVkX1BfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2RmMnVkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X2RmMnV3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYydXdfUChGbG9hdDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfZGYydXdfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2RmMnV3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ1dyhSc3MzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYydXdfUF9jaG9wKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJ1d19QX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ1d19jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYyd19QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJ3X1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ3KFJzczMyKTpjaG9wCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY29udmVydF9kZjJ3X1BfY2hvcChGbG9hdDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfZGYyd19QX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ3X2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9zZjJkKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29udmVydF9zZjJkX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZF9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfc2YyZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X3NmMmQoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfc2YyZF9SX2Nob3AoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZF9SX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9zZjJkZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9jb252ZXJ0X3NmMmRmX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZGZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMmRmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfc2YydWQoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb252ZXJ0X3NmMnVkX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YydWRfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnVkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfc2YydWQoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfc2YydWRfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X3NmMnVkX1JfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnVkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3NmMnV3KFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY29udmVydF9zZjJ1d19SKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMnV3X1IgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJ1dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbnZlcnRfc2YydXcoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfc2YydXdfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMnV3X1JfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnV3X2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3NmMncoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb252ZXJ0X3NmMndfUihGbG9hdDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9zZjJ3X1IgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9zZjJ3KFJzMzIpOmNob3AKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb252ZXJ0X3NmMndfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMndfUl9jaG9wIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfc2Yyd19jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfdWQyZGYoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfdWQyZGZfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29udmVydF91ZDJkZl9QIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdWQyZGYKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3VkMnNmKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3VkMnNmX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfdWQyc2ZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3VkMnNmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfdXcyZGYoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfY29udmVydF91dzJkZl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfdXcyZGZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3V3MmRmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF91dzJzZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3V3MnNmX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF91dzJzZl9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdXcyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF93MmRmKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfdzJkZl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfdzJkZl9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdzJkZgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbnZlcnRfdzJzZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3cyc2ZfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3cyc2ZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3cyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWRmY2xhc3MoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9kZmNsYXNzX1BJKEZsb2F0NjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbGFzc19QSSBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmNsYXNzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1kZmNtcC5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfZGZjbXBfZXFfUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbXBfZXFfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZjbXBlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9ZGZjbXAuZ2UoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2RmY21wX2dlX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2RmY21wX2dlX1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmY21wZ2UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWRmY21wLmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9kZmNtcF9ndF9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9kZmNtcF9ndF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmNtcGd0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1kZmNtcC51byhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfZGZjbXBfdW9fUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbXBfdW9fUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZjbXB1bwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1ha2UoI3UxMCk6bmVnCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbWFrZV9JX25lZyhXb3JkMzIgSXUxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbWFrZV9JX25lZyBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmltbV9uCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmbWFrZSgjdTEwKTpwb3MKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfZGZtYWtlX0lfcG9zKFdvcmQzMiBJdTEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtYWtlX0lfcG9zIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmaW1tX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZmFkZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmYWRkX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmYWRkX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmYWRkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1zZmNsYXNzKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9zZmNsYXNzX1JJKEZsb2F0MzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9zZmNsYXNzX1JJIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY2xhc3MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZXFfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmdlKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZ2VfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2dlX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZ2UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmd0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZ3RfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2d0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZ3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLnVvKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfdW9fUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX3VvX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wdW8KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZmZpeHVwZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmZml4dXBkX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmZml4dXBkX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZml4dXBkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZmaXh1cG4oUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZmZpeHVwbl9SUihGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZmZpeHVwbl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZpeHVwbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmZml4dXByKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmZml4dXByX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmZml4dXByX1IgX19idWlsdGluX0hFWEFHT05fRjJfc2ZmaXh1cHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9c2ZtcHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUihGbG9hdDMyIFJ4LCBGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1weWFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZtYQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zZm1weShSczMyLFJ0MzIpOmxpYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUl9saWIoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHlhY2NfUlJfbGliIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZm1hX2xpYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zZm1weShSczMyLFJ0MzIsUHU0KTpzY2FsZQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUnBfc2NhbGUoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCwgQnl0ZSBQdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHlhY2NfUlJwX3NjYWxlIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZm1hX3NjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPXNmbXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtcHluYWNfUlIoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHluYWNfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZmbXMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09c2ZtcHkoUnMzMixSdDMyKTpsaWIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtcHluYWNfUlJfbGliKEZsb2F0MzIgUngsIEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbXB5bmFjX1JSX2xpYiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZtc19saWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZm1ha2UoI3UxMCk6bmVnCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmbWFrZV9JX25lZyhXb3JkMzIgSXUxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbWFrZV9JX25lZyBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmltbV9uCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZtYWtlKCN1MTApOnBvcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1ha2VfSV9wb3MoV29yZDMyIEl1MTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1ha2VfSV9wb3MgX19idWlsdGluX0hFWEFHT05fRjJfc2ZpbW1fcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmbWF4KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtYXhfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtYXhfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZtYXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZm1pbihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmbWluX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbWluX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmbWluCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZtcHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weV9SUihGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1weV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZm1weQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmc3ViKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZzdWJfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZzdWJfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZzdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tZW1iKFJ4MzIrKyNzNDowOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW1iX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzAsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW1iX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJiX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbWIoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtYl9NX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtYl9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJiX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tZW1kKFJ4MzIrKyNzNDozOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tZW1kX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzMsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tZW1kX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJkX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tZW1kKFJ4MzIrK0k6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21lbWRfTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21lbWRfTV9jaXJjIF9fYnVpbHRpbl9IRVhBR09OX0wyX2xvYWRyZF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tZW1oKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW1oX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzEsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW1oX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJoX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbWgoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtaF9NX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtaF9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJoX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXcoUngzMisrI3M0OjI6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXdfSU1fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMiwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21lbXdfSU1fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcmlfcGNpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdyhSeDMyKytJOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW13X01fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW13X01fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcmlfcGNyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdWIoUngzMisrI3M0OjA6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXViX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzAsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW11Yl9JTV9jaXJjIF9fYnVpbHRpbl9IRVhBR09OX0wyX2xvYWRydWJfcGNpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdWIoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtdWJfTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21lbXViX01fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcnViX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXVoKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW11aF9JTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIElzNF8xLCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtdWhfSU1fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcnVoX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXVoKFJ4MzIrK0k6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXVoX01fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW11aF9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJ1aF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YWRkKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2FjY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YWRkKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX2FjY2lpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWlhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlpYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNpX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5cihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNyX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWFjY19SUl9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlhY2NfUlJfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5YWNjX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbWFjc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weShSczMyLFJ0MzIqKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5YWNjX1JSX2Nvbmpfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5YWNjX1JSX2Nvbmpfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNzY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWFjY19SUl9jb25qX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weWFjY19SUl9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbWFjc2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weWkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlpX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5aV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5cihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlyX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weShSczMyLFJ0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlfUlJfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5cnNfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5KFJzMzIsUnQzMik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX3MxX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlfUlJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5cnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5KFJzMzIsUnQzMiopOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX2Nvbmpfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weV9SUl9jb25qX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY21weXJzY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHkoUnMzMixSdDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX2NvbmpfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weV9SUl9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY21weXJzY19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHkoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHkoUnMzMixSdDMyKik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9jb25qX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weV9SUl9jb25qX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5c2NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9jb25qX3MxX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weV9SUl9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5c2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWNtcHkoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5bmFjX1JSX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weW5hY19SUl9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY25hY3NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWNtcHkoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weW5hY19SUl9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHluYWNfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NuYWNzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHluYWNfUlJfY29ual9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHluYWNfUlJfY29ual9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY25hY3NjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5bmFjX1JSX2NvbmpfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5bmFjX1JSX2NvbmpfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NuYWNzY19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX2FjY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX25hY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUl9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SUl9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfZHBtcHlzc19ybmRfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfYWNjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfbmFjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMixSdDMyLmgpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSaF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJoX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfaG1tcHloX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUmhfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9obW1weWhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMixSdDMyLmwpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSbF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJsX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfaG1tcHlsX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUmxfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJsX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9obW1weWxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5aWFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX21hY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5aShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX21hY3NpbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHlpKFJzMzIsI3U4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWlhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWlhY2NfUkkgX19idWlsdGluX0hFWEFHT05fTTJfbWFjc2lwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjaHNfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d29oYWNjX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdvaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZWhhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjbHNfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoYWNjX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdlaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoYWNjX1BQX3JuZF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWhzX3JzMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdvdWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvdWhhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aGFjY19QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tYWN1aHNfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvdWhhY2NfUFBfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b3VoYWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWhzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoYWNjX1BQX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Voc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2V1aGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Vsc19yczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3MxX3JuZF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdldWhhY2NfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWxzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Vsc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2V1aGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdldWhhY2NfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tYWN1bHNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hfUFBfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d29oX1BQX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWhfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b2goUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaF9QUF9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5aF9yczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHloX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2VoX1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaF9QUF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHlsX3JzMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWxfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHlsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2VoX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5bF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d291aChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWhfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWhfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d291aF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1aF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d291aChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aF9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weXVoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1bF9yczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdldWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1bF9yczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdldWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weXVsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZXVoX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2NfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2NfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmhfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SaFJoX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SaFJsX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbF9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2Nfc2F0X2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmxSaF9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2Nfc2F0X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmhfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmxfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJsX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmxSbF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmhfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SaFJoX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SaFJsX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbF9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfc2F0X2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmxSaF9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfc2F0X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmhfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmxfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJsX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmxSbF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIuaCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5oKTo8PDE6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfczFfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9zMV9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfcm5kX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbF9zMV9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3MxX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfcm5kX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmgpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmhfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9ybmRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9ybmRfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIubCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5sKTo8PDE6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfczFfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9zMV9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmhfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmhfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5sKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJsX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmhfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmxfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9ybmRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJoX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9ybmRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSaF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmxfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIsUnQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwX3MxX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JoUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JoUmhfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5YWNjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9hY2NfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUmhSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5YWNjX1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9hY2NfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weWFjY19SbFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2FjY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weWFjY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlhY2NfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2FjY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JsUmwoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JsUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJoKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSaF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5X1JoUmxfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5X1JsUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JoUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JoUmhfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5bmFjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9uYWNfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUmhSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5bmFjX1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9uYWNfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weW5hY19SbFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHluYWNfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX25hY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weW5hY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHluYWNfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX25hY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JsUmwoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JsUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSaF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJoX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJsX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmxfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5oKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSaF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJoX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJsX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmxfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5aV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5aShSczMyLCNtOSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpX1JJKFdvcmQzMiBScywgV29yZDMyIEltOSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXNtaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlzdV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5c3VfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbXB5c3VfdXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmhSaChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfaGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JoUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weXUoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dWFjY19SaFJsX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2FjY19obF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHl1KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dWFjY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2FjY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmxSaF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmxSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfbGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JoUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SaFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SaFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXUoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21weXVfUmhSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21weXVfUmxSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JsUmhfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JsUmwoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SbFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SaFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmhSaF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1bmFjX1JoUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dW5hY19SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbmFjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1bmFjX1JsUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dW5hY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbmFjX2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SbFJsKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmxSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X3VwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SaFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmhSaF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JoUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9hY2NfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JsUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9hY2NfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SbFJsKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmxSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmhSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmhSaF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbXB5dV9SaFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbXB5dV9SaFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5dShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JsUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JsUmhfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmxSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmxSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SaFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmhSaF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JoUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVuYWNfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9uYWNfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JsUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVuYWNfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9uYWNfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SbFJsKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmxSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXVpKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1aV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hZGQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZG5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRuYWNfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbmFjY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09YWRkKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZG5hY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX25hY2NpaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zdWIoUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1YmFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTJfc3ViYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnNkaWZmaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWJzZGlmZmhfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFic2RpZmZoX1BQIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZhYnNkaWZmaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzZGlmZncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZ3X1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNkaWZmd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92YWJzZGlmZncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZjbXB5aShSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNtcHlpYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y21weWlhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZjbWFjX3MwX3NhdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12Y21weXIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5cmFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlyYWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21hY19zMF9zYXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weWkoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5aV9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlpX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21weV9zMF9zYXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weXIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5cl9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlyX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21weV9zMF9zYXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weWkoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92Y21weWlfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbXB5aV9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdmNtcHlfczFfc2F0X2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNtcHlyKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNtcHlyX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y21weXJfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZjbXB5X3MxX3NhdF9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12ZG1weShSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlhY2NfUFBfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5YWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1hY3NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZkbXB5KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlhY2NfUFBfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5YWNjX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1hY3NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12ZG1weShSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZkbXB5X1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmRtcHlfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1weXJzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dmRtcHkoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmRtcHlfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92ZG1weV9QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZkbXB5cnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmRtcHkoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZkbXB5X1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92ZG1weV9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdmRtcHlzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZkbXB5KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5X1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1weXNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHloKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aGFjY19SUihXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTJfdm1hYzIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhhY2NfUFAoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWVoYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyZXMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWVoYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5ZWhhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyZXNfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHllaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWVoYWNjX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bWFjMmVzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5aChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloYWNjX1JSX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weWgoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhhY2NfUlJfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5aGFjY19SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1hYzJzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5aHN1KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhzdWFjY19SUl9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloc3VhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc3VfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhzdWFjY19SUl9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloc3VhY2NfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc3VfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weWVoKFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHllaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJlc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5ZWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHllaF9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJlc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtcHkyc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZtcHloKFJzMzIsUnQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZtcHloX1JSX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZtcHloX1JSX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJzX3MwcGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aChSczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aF9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12bXB5aChSczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfdm1weWhfUlJfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfdm1weWhfUlJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnNfczFwYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHloc3UoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aHN1X1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhzdV9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJzdV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aHN1KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloc3VfUlJfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5aHN1X1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnN1X3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJhZGRoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZyYWRkaF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cmFkZGhfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJhZGRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJhZGR1aChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92cmFkZHVoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZyYWRkdWhfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJhZGR1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5aShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlpYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weWlhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbWFjaV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5aShSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5aWFjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weWlhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtYWNpX3MwYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5cihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbWFjcl9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5cihSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5cmFjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtYWNyX3MwYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNtcHlpKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY21weWlfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5aV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtcHlpX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyY21weWkoUnNzMzIsUnR0MzIqKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY21weWlfUFBfY29uaihXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmNtcHlpX1BQX2NvbmogX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5aV9zMGMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJjbXB5cihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5cl9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNtcHlyKFJzczMyLFJ0dDMyKikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyX1BQX2NvbmooV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5cl9QUF9jb25qIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZyY21weXJfczBjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cmNtcHlzKFJzczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlzYWNjX1BSX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5c2FjY19QUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5c19hY2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJjbXB5cyhSc3MzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5c19QUl9zMV9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXNfUFJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZyY21weXNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12cmNtcHlzKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnJjbXB5c19QUl9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cmNtcHlzX1BSX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5c19zMXJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weWgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHloYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5aGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cm1hY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cm1weWgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHloX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5aF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cm1weV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcnhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfeG9yeGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl94b3JfeGFjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hbmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZGFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRhbmRfUlIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hbmQoUnMzMix+UnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hbmRhbmRfUm5SKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZGFuZF9SblIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX2FuZG4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yYW5kX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX29yYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X2FuZF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcmFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl94b3JhbmRfUlIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpd2goUnNzMzIsUnQzMik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdoX1BSX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weWl3aF9QUl9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX000X2NtcHlpX3doCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3aChSc3MzMixSdDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdoX1BSX2NvbmpfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5aXdoX1BSX2NvbmpfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9jbXB5aV93aGMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cndoKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3aF9QUl9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlyd2hfUFJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9jbXB5cl93aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlyd2goUnNzMzIsUnQzMiopOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3aF9QUl9jb25qX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3aF9QUl9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTRfY21weXJfd2hjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUlJfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTRfbWFjX3VwX3MxX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZCgjdTYsbXB5aShSczMyLCNVNikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX21weWlfSVJJKFdvcmQzMiBJdTYsIFdvcmQzMiBScywgV29yZDMyIElVNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9tcHlpX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9NNF9tcHlyaV9hZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ1MzIsbXB5aShSczMyLCN1NikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX21weWlfUlJJKFdvcmQzMiBSdSwgV29yZDMyIFJzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUlJJIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJpX2FkZHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnUzMixtcHlpKCN1NjoyLFJzMzIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9tcHlpX1JJUihXb3JkMzIgUnUsIFdvcmQzMiBJdTZfMiwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUklSIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJpX2FkZHJfdTIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoI3U2LG1weWkoUnMzMixSdDMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfbXB5aV9JUlIoV29yZDMyIEl1NiwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfbXB5aV9JUlIgX19idWlsdGluX0hFWEFHT05fTTRfbXB5cnJfYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeTMyPWFkZChSdTMyLG1weWkoUnkzMixSczMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfbXB5aV9SUlIoV29yZDMyIFJ1LCBXb3JkMzIgUnksIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUlJSIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJyX2FkZHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SUl9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9uYWNfdXBfczFfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5kb3JfUlIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFuZChSczMyLH5SdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZG9yX1JuUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRvcl9SblIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfYW5kbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1vcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3Jvcl9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X29yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PXhvcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfeG9yb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfeG9yb3JfUlIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfeG9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXBtcHl3KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9wbXB5d19SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfcG1weXdfUlIgX19idWlsdGluX0hFWEFHT05fTTRfcG1weXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePXBtcHl3KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9wbXB5d3hhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3BtcHl3eGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF9wbXB5d19hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnBtcHloKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cG1weWhfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZwbXB5aF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cG1weWgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePXZwbXB5aChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnBtcHloeGFjY19SUihXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnBtcHloeGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cG1weWhfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weXdlaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weXdlaGFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1weXdlaGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cm1weWVoX2FjY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoYWNjX1BQX3MxKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoYWNjX1BQX3MxIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfYWNjX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZybXB5d2VoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoX1BQIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoX1BQX3MxKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoX1BQX3MxIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZybXB5d29oKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d29oYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d29oYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5b2hfYWNjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weXdvaChSc3MzMixSdHQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hhY2NfUFBfczEoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hhY2NfUFBfczEgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9hY2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHl3b2goUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hfUFAgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cm1weXdvaChSc3MzMixSdHQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hfUFBfczEoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hfUFBfczEgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1hbmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZHhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5keGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF94b3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJePWFuZChSczMyLH5SdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZHhhY2NfUm5SKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZHhhY2NfUm5SIF9fYnVpbHRpbl9IRVhBR09OX000X3hvcl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJePW9yKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9vcnhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3J4YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X3hvcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49eG9yKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3hvcnhhY2NfUFAoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3hvcnhhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTRfeG9yX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZkbXB5YnN1KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92ZG1weWJzdWFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHlic3VhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX001X3ZkbWFjYnN1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZkbXB5YnN1KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92ZG1weWJzdV9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHlic3VfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX001X3ZkbXB5YnN1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5YnN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnN1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnN1YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX001X3ZtYWNic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHlidShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWJ1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnVhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTVfdm1hY2J1dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5YnN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnN1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnN1X1JSIF9fYnVpbHRpbl9IRVhBR09OX001X3ZtcHlic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weWJ1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHlidV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNV92bXB5YnV1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weWJzdShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJzdWFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1weWJzdWFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNV92cm1hY2JzdQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJtcHlidShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJ1YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5YnVhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtYWNidXUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHlic3UoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHlic3VfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHlic3VfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtcHlic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHlidShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJ1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5YnVfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtcHlidXUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGRhc2woUnQzMixSczMyLCN1MykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRhc2xfUlJJKFdvcmQzMiBSdCwgV29yZDMyIFJzLCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYXNsX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hZGRhc2xfcnJyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNsX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsbmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzbG9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNseGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNseGFjY19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9wX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWFzbChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9YXNsKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbGFuZF9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGFuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFzbChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbG9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2woUnMzMiwjdTUpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbF9SSV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsX1JJX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNseGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbHhhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcl94YWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc2xoKFJzczMyLCN1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNsaF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzbGhfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzbHcoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhc2x3X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNsd19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc2woUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc2xfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNsX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbGFjY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbGFuZF9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhbmRfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbG5hY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xuYWNfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbG9yX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzbG9yX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbHhhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNseGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl9wX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YXNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl9yX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbGFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPWFzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsbmFjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xuYWNfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3Jfcl9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMnw9YXNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xvcl9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsb3JfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3Jfcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzbChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbF9SUl9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3Jfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc2xoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzbGhfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzbGhfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzbHcoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNsd19QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNsd19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc3IoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Fzcl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNybmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Fzcm9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YXNyKFJzczMyLCN1Nik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyX1BJX3JuZChXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyX1BJX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9wX3JuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc3JybmQoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzcnJuZF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JybmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9ybmRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YXNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcmFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcmFjY19SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9yX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyYW5kX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyYW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPWFzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JuYWNfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JuYWNfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcl9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMnw9YXNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcm9yX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyb3JfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzcihSczMyLCN1NSk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyX1JJX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JfUklfcm5kIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3Jfcm5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YXNycm5kKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcnJuZF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcnJuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9yX3JuZF9nb29kc3ludGF4CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dmFzcncoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Zhc3J3X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YXNyd19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9zdndfdHJ1bgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXNyaChSc3MzMiwjdTQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzcmhfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3JoX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3ZoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc3J3KFJzczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNyd19QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzcndfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfdncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YXNyKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Fzcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyYWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyJj1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JhbmRfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyYW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JuYWNfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNybmFjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3Jvcl9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3Jvcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9wX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyXj1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3J4YWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzcnhhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3JfcF94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2Fzcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWFzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyYWNjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JhY2NfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3Jfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9YXNyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JhbmRfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcmFuZF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcm5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNybmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2Fzcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc3IoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhc3J3KFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmFzcndfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFzcndfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3Jfc3Z3X3RydW4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzcmgoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNyaF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNyaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl92aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXNydyhSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhc3J3X1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3J3X1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3Z3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YnJldihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2JyZXZfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9icmV2X1IgX19idWlsdGluX0hFWEFHT05fUzJfYnJldgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1icmV2KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2JyZXZfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYnJldl9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2JyZXZwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wwKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2wwX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2wwX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2wwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wwKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NsMF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbDBfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jbDBwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wxKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2wxX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2wxX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2wxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wxKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NsMV9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbDFfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jbDFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2xiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2xiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xiX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2xiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bm9ybWFtdChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vcm1hbXRfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3JtYW10X1IgX19idWlsdGluX0hFWEFHT05fUzJfY2xibm9ybQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNsYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xiX1AgX19idWlsdGluX0hFWEFHT05fUzJfY2xicAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNscmJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbHJiaXRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xyYml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2NscmJpdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2xyYml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbHJiaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbHJiaXRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfY2xyYml0X3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDAoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jdDBfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jdDBfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jdDAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDAoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3QwX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2N0MF9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2N0MHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDEoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jdDFfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jdDFfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jdDEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDEoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3QxX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2N0MV9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2N0MXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGVpbnRlcmxlYXZlKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2RlaW50ZXJsZWF2ZV9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9kZWludGVybGVhdmVfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9kZWludGVybGVhdmUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1leHRyYWN0dShSczMyLCN1NSwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXh0cmFjdHVfUklJKFdvcmQzMiBScywgV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2V4dHJhY3R1X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9leHRyYWN0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWV4dHJhY3R1KFJzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXh0cmFjdHVfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXh0cmFjdHVfUlAgX19idWlsdGluX0hFWEFHT05fUzJfZXh0cmFjdHVfcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdHUoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0dV9QSUkoV29yZDY0IFJzcywgV29yZDMyIEl1NiwgV29yZDMyIElVNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2V4dHJhY3R1X1BJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9leHRyYWN0dXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfZXh0cmFjdHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2V4dHJhY3R1X1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2V4dHJhY3R1cF9ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPWluc2VydChSczMyLCN1NSwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfaW5zZXJ0X1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2luc2VydF9SSUkgX19idWlsdGluX0hFWEFHT05fUzJfaW5zZXJ0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9aW5zZXJ0KFJzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfaW5zZXJ0X1JQKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfaW5zZXJ0X1JQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydF9ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj1pbnNlcnQoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9pbnNlcnRfUElJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYsIFdvcmQzMiBJVTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9pbnNlcnRfUElJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9aW5zZXJ0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2luc2VydF9QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfaW5zZXJ0X1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydHBfcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9aW50ZXJsZWF2ZShSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9pbnRlcmxlYXZlX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2ludGVybGVhdmVfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9pbnRlcmxlYXZlCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWxmcyhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sZnNfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xmc19QUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sZnNwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWxzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2xzbF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc2xfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsYWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMiY9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsYW5kX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbGFuZF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsbmFjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbG5hY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX25hYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMnw9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsb3JfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNsb3JfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNseGFjY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc2x4YWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzbF9yX3BfeG9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bHNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc2xfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1sc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbGFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNsYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzbF9yX3JfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzImPWxzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNsYW5kX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xhbmRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3Jfcl9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bHNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc2xuYWNfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzbG5hY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9yX25hYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1sc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbG9yX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xvcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZsc2xoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmxzbGhfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmxzbGhfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmxzbHcoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNsd19QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bHNsd19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1sc3IoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2xzcl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNybmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcm9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyeGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyeGFjY19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9wX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1sc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWxzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3JhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3JhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9bHNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcmFuZF9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcmFuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1sc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNybmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNybmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWxzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3Jvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcm9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMl49bHNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcnhhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3J4YWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3JfeGFjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bHNyaChSc3MzMiwjdTQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmxzcmhfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zsc3JoX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3ZoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZsc3J3KFJzczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNyd19QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmxzcndfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfdncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bHNyKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyYWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyJj1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JhbmRfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyYW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JuYWNfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNybmFjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3Jvcl9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3Jvcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9wX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyXj1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3J4YWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcnhhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX3JfcF94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1sc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWxzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyYWNjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3JhY2NfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX3Jfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9bHNyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3JhbmRfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcmFuZF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1sc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcm5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNybmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWxzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmxzcmgoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNyaF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bHNyaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl92aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bHNydyhSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zsc3J3X1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zsc3J3X1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3Z3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXBhY2tobChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfcGFja2hsX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfcGFja2hsX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX3BhY2tobAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXBhcml0eShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9wYXJpdHlfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Bhcml0eV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9wYXJpdHlwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2V0Yml0KFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NldGJpdF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZXRiaXRfUkkgX19idWlsdGluX0hFWEFHT05fUzJfc2V0Yml0X2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZXRiaXQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NldGJpdF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NldGJpdF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zZXRiaXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZmViKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmZWJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmZWJfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZlYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZmVoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmZWhfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmZWhfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZlaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZm9iKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmb2JfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmb2JfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZvYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZm9oKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmb2hfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmb2hfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZvaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1iKFJ4MzIrKyNzNDowOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtYl9JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWJfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyYl9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtYihSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtYl9NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWJfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJiX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1kKFJ4MzIrKyNzNDozOmNpcmMoTXUyKSk9UnR0MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X21lbWRfSU1QX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzMsIFdvcmQzMiBNdSwgV29yZDY0IFJ0dCwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbWVtZF9JTVBfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJkX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1kKFJ4MzIrK0k6Y2lyYyhNdTIpKT1SdHQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtZF9NUF9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkNjQgUnR0LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9tZW1kX01QX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyZF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtaChSeDMyKysjczQ6MTpjaXJjKE11MikpPVJ0MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9JTVJoX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzEsIFdvcmQzMiBNdSwgV29yZDMyIFJ0LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9tZW1oX0lNUmhfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJmX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1oKFJ4MzIrK0k6Y2lyYyhNdTIpKT1SdDMyLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X21lbWhfTVJoX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIFdvcmQzMiBSdCwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbWVtaF9NUmhfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJmX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1oKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMSwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWhfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyaF9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtaChSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWhfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJoX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW13KFJ4MzIrKyNzNDoyOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtd19JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMiwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbXdfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyaV9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtdyhSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtd19NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbXdfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJpX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRoYihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzYXRoYl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXRoYl9SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3N2c2F0aGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12c2F0aHViKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNhdGh1Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXRodWJfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdnNhdGh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4YihSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhiX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhiX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGJfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4ZChSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhkX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhkX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4aChSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhoX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhoX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGhfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4dyhSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHh3X1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHh3X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeHdfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXRvZ2dsZWJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl90b2dnbGViaXRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdG9nZ2xlYml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX3RvZ2dsZWJpdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dG9nZ2xlYml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl90b2dnbGViaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl90b2dnbGViaXRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfdG9nZ2xlYml0X3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXRzdGJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdHN0Yml0X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3RzdGJpdF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90c3RiaXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dHN0Yml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdHN0Yml0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdHN0Yml0X1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX3RzdGJpdF9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhbGlnbmIoUnR0MzIsUnNzMzIsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhbGlnbmJfUFBJKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWxpZ25iX1BQSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl92YWxpZ25pYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLFB1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWxpZ25iX1BQcChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzLCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFsaWduYl9QUHAgX19idWlsdGluX0hFWEFHT05fUzJfdmFsaWducmIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNuZWdoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNuZWdoX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbmVnaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92Y25lZ2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNyb3RhdGUoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92Y3JvdGF0ZV9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y3JvdGF0ZV9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92Y3JvdGF0ZQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbmVnaChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY25lZ2hhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbmVnaGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cmNuZWdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJuZHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZybmR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cm5kd2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cm5kcGFja3doCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJuZHdoKFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92cm5kd2hfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZybmR3aF9QX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cm5kcGFja3docwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRoYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c2F0aGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnNhdGhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGhiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzYXRoYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c2F0aGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNhdGhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGhiX25vcGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRodWIoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNhdGh1Yl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c2F0aHViX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c2F0aHViKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzYXRodWJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNhdGh1Yl9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX3ZzYXRodWJfbm9wYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnNhdHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzYXR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c2F0d2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnNhdHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzYXR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c2F0d2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d2hfbm9wYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnNhdHd1aChSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c2F0d3VoX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXR3dWhfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d3VoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzYXR3dWgoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNhdHd1aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c2F0d3VoX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdHd1aF9ub3BhY2sKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12c3BsYXRiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNwbGF0Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzcGxhdGJfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsYXRyYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3BsYXRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNwbGF0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzcGxhdGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsYXRyaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3BsaWNlYihSc3MzMixSdHQzMiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNwbGljZWJfUFBJKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3BsaWNlYl9QUEkgX19idWlsdGluX0hFWEFHT05fUzJfdnNwbGljZWliCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzcGxpY2ViKFJzczMyLFJ0dDMyLFB1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3BsaWNlYl9QUHAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCwgQnl0ZSBQdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzcGxpY2ViX1BQcCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsaWNlcmIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN4dGJoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN4dGJoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnN4dGJoX1IgX19idWlsdGluX0hFWEFHT05fUzJfdnN4dGJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzeHRodyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzeHRod19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzeHRod19SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3ZzeHRodwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZ0cnVuZWhiKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Z0cnVuZWhiX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Z0cnVuZWhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnRydW5laGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5ld2goUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5ld2hfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVuZXdoX1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX3Z0cnVuZXdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnRydW5vaGIoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnRydW5vaGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnRydW5vaGJfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92dHJ1bm9oYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12dHJ1bm93aChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92dHJ1bm93aF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnRydW5vd2hfUFAgX19idWlsdGluX0hFWEFHT05fUzJfdnRydW5vd2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnp4dGJoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdnp4dGJoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdnp4dGJoX1IgX19idWlsdGluX0hFWEFHT05fUzJfdnp4dGJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ6eHRodyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z6eHRod19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z6eHRod19SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3Z6eHRodwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSczMyLGFkZChSdTMyLCNzNikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2FkZF9SUkkoV29yZDMyIFJzLCBXb3JkMzIgUnUsIFdvcmQzMiBJczYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfYWRkX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9hZGRhZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YWRkKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9hc2xfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9hc2xfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FkZGlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YWRkKCN1OCxsc3IoUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9sc3JfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FkZGlfbHNyX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YW5kKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9hc2xfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZF9hc2xfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FuZGlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YW5kKCN1OCxsc3IoUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9sc3JfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZF9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FuZGlfbHNyX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKGNsYihSczMyKSwjczYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2NsYl9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfY2xiX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2NsYmFkZGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoY2xiKFJzczMyKSwjczYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2NsYl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX2NsYl9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9jbGJwYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW5vcm1hbXQoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfbm9ybWFtdF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3JtYW10X1AgX19idWlsdGluX0hFWEFHT05fUzRfY2xicG5vcm0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1leHRyYWN0KFJzMzIsI3U1LCNVNSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9leHRyYWN0X1JJSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9leHRyYWN0X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9leHRyYWN0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9ZXh0cmFjdChSczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2V4dHJhY3RfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXh0cmFjdF9SUCBfX2J1aWx0aW5fSEVYQUdPTl9TNF9leHRyYWN0X3JwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWV4dHJhY3QoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0X1BJSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2LCBXb3JkMzIgSVU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZXh0cmFjdF9QSUkgX19idWlsdGluX0hFWEFHT05fUzRfZXh0cmFjdHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9leHRyYWN0X1BQIF9fYnVpbHRpbl9IRVhBR09OX1M0X2V4dHJhY3RwX3JwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bHNsKCNzNixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbF9JUihXb3JkMzIgSXM2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xfSVIgX19idWlsdGluX0hFWEFHT05fUzRfbHNsaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IXRzdGJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X3RzdGJpdF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfdHN0Yml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X250c3RiaXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IXRzdGJpdChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF90c3RiaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfdHN0Yml0X1JSIF9fYnVpbHRpbl9IRVhBR09OX1M0X250c3RiaXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1hbmQoUnMzMiwjczEwKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZG9yX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXMxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZG9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yX2FuZGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMj1vcihSdTMyLGFuZChSeDMyLCNzMTApKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX2FuZF9SUkkoV29yZDMyIFJ1LCBXb3JkMzIgUngsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfYW5kX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9vcl9hbmRpeAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1vcihSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3Jvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcm9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yX29yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPW9yKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX2FzbF9JUkkoV29yZDMyIEl1OCwgV29yZDMyIFJ4LCBXb3JkMzIgSVU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfYXNsX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9vcmlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9b3IoI3U4LGxzcihSeDMyLCNVNSkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3JfbHNyX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcl9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yaV9sc3JfcmkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1wYXJpdHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Bhcml0eV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Bhcml0eV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TNF9wYXJpdHkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnMzMixzdWIoI3M2LFJ1MzIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9zdWJfUklSKFdvcmQzMiBScywgV29yZDMyIElzNiwgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX3N1Yl9SSVIgX19idWlsdGluX0hFWEFHT05fUzRfc3ViYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXN1YigjdTgsYXNsKFJ4MzIsI1U1KSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfYXNsX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfYXNsX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9zdWJpX2FzbF9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXN1YigjdTgsbHNyKFJ4MzIsI1U1KSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfbHNyX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfbHNyX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9zdWJpX2xzcl9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNyb3RhdGUoUnNzMzIsUnQzMiwjdTIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjcm90YXRlX1BSSShXb3JkNjQgUnNzLCBXb3JkMzIgUnQsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmNyb3RhdGVfUFJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X3ZyY3JvdGF0ZQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjcm90YXRlKFJzczMyLFJ0MzIsI3UyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY3JvdGF0ZWFjY19QUkkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjcm90YXRlYWNjX1BSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF92cmNyb3RhdGVfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4YWRkc3ViaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnhhZGRzdWJoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhhZGRzdWJoX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eGFkZHN1YmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnhhZGRzdWJoKFJzczMyLFJ0dDMyKTpybmQ6Pj4xOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z4YWRkc3ViaF9QUF9ybmRfcnMxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhhZGRzdWJoX1BQX3JuZF9yczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1M0X3Z4YWRkc3ViaHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnhhZGRzdWJ3KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92eGFkZHN1YndfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92eGFkZHN1YndfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1M0X3Z4YWRkc3VidwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12eHN1YmFkZGgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z4c3ViYWRkaF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z4c3ViYWRkaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fUzRfdnhzdWJhZGRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4c3ViYWRkaChSc3MzMixSdHQzMik6cm5kOj4+MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92eHN1YmFkZGhfUFBfcm5kX3JzMV9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z4c3ViYWRkaF9QUF9ybmRfcnMxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eHN1YmFkZGhyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4c3ViYWRkdyhSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnhzdWJhZGR3X1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhzdWJhZGR3X1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eHN1YmFkZHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12YXNyaHViKFJzczMyLCN1NCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Zhc3JodWJfUElfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YXNyaHViX1BJX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fUzVfYXNyaHViX3JuZF9zYXRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhc3JodWIoUnNzMzIsI3U0KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YXNyaHViX1BJX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFzcmh1Yl9QSV9zYXQgX19idWlsdGluX0hFWEFHT05fUzVfYXNyaHViX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXBvcGNvdW50KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3BvcGNvdW50X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3BvcGNvdW50X1AgX19idWlsdGluX0hFWEFHT05fUzVfcG9wY291bnRwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc3JoKFJzczMyLCN1NCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzcmhfUElfcm5kKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3JoX1BJX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9TNV92YXNyaHJuZF9nb29kc3ludGF4CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjY2xlYW5hKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9kY2NsZWFuYV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2NsZWFuYV9BIF9fYnVpbHRpbl9IRVhBR09OX1kyX2RjY2xlYW5hCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjY2xlYW5pbnZhKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9kY2NsZWFuaW52YV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2NsZWFuaW52YV9BIF9fYnVpbHRpbl9IRVhBR09OX1kyX2RjY2xlYW5pbnZhCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjZmV0Y2goUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RjZmV0Y2hfQShBZGRyZXNzIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2ZldGNoX0EgX19idWlsdGluX0hFWEFHT05fWTJfZGNmZXRjaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBkY2ludmEoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RjaW52YV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2ludmFfQSBfX2J1aWx0aW5fSEVYQUdPTl9ZMl9kY2ludmEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZGN6ZXJvYShSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZGN6ZXJvYV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY3plcm9hX0EgX19idWlsdGluX0hFWEFHT05fWTJfZGN6ZXJvYQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBsMmZldGNoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2wyZmV0Y2hfQVIoQWRkcmVzcyBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbDJmZXRjaF9BUiBfX2J1aWx0aW5fSEVYQUdPTl9ZNF9sMmZldGNoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGwyZmV0Y2goUnMzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2wyZmV0Y2hfQVAoQWRkcmVzcyBScywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X2wyZmV0Y2hfQVAgX19idWlsdGluX0hFWEFHT05fWTVfbDJmZXRjaAoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfcm9sX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3AKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfcm9sYWNjX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3BfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMiY9cm9sKFJzczMyLCN1NikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9yb2xhbmRfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3JvbGFuZF9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9wX2FuZAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPXJvbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfcm9sbmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2xuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzZfcm9sX2lfcF9uYWMKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbG9yX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2xvcl9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9wX29yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49cm9sKFJzczMyLCN1NikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9yb2x4YWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2x4YWNjX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3BfeGFjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvbF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sYWNjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sYWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sYW5kX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sYW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfYW5kCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfbmFjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sb3JfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9yb2xvcl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9yX29yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9seGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvbHhhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzZfcm9sX2lfcl94YWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzZGlmZmIoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZiX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNkaWZmYl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNl92YWJzZGlmZmIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnNkaWZmdWIoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZ1Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWJzZGlmZnViX1BQIF9fYnVpbHRpbl9IRVhBR09OX002X3ZhYnNkaWZmdWIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzcGxhdGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3BsYXRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNwbGF0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX1M2X3ZzcGxhdHJicAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5laGIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5laGJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVuZWhiX1BQIF9fYnVpbHRpbl9IRVhBR09OX1M2X3Z0cnVuZWhiX3BwcAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5vaGIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5vaGJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVub2hiX1BQIF9fYnVpbHRpbl9IRVhBR09OX1M2X3Z0cnVub2hiX3BwcAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12bWVtKFJ0MzIpOm50CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZtZW1fUl9udChXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Zfdm1lbV9SX250IF9fYnVpbHRpbl9IRVhBR09OX1Y2X2xkbnRudDAKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hYW55OCh2Y21wYi5lcShSc3MzMixSdHQzMikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9hbnk4X3ZjbXBiX2VxX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfYW55OF92Y21wYl9lcV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BNl92Y21wYmVxX25vdGFueQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY2Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGZhZGQoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmYWRkX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZhZGRfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZhZGQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmc3ViKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZnN1Yl9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Rmc3ViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2Rmc3ViCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NiAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjYKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHlpKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpbmFjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWluYWNfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbW5hY2kKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWFzaygjdTUsI1U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21hc2tfSUkoV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21hc2tfSUkgX19idWlsdGluX0hFWEFHT05fUzJfbWFzawojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNsaXAoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2xpcF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbGlwX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E3X2NsaXAKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jcm91bmQoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Nyb3VuZF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY3JvdW5kX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E3X2Nyb3VuZGRfcmkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jcm91bmQoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jcm91bmRfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY3JvdW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX0E3X2Nyb3VuZGRfcnIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y2xpcChSc3MzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNsaXBfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbGlwX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E3X3ZjbGlwCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmbWF4KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1heF9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbWF4X1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmbWF4CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1pbihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfZGZtaW5fUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9kZm1pbl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1pbgojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGZtcHlmaXgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbXB5Zml4X1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlmaXhfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZtcHlmaXgKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1kZm1weWhoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1weWhoYWNjX1BQKEZsb2F0NjQgUnh4LCBGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbXB5aGhhY2NfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZtcHloaAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWRmbXB5bGgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbXB5bGhhY2NfUFAoRmxvYXQ2NCBSeHgsIEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlsaGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1weWxoCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1weWxsKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1weWxsX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlsbF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1weWxsCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHlpdyhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5aXdfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aXdfUFAgX19idWlsdGluX0hFWEFHT05fTTdfZGNtcHlpdwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5aXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWl3YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weWl3YWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5aXdfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weWl3KFJzczMyLFJ0dDMyKikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5aXdfUFBfY29uaihXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlpd19QUF9jb25qIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5aXdjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWNtcHlpdyhSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWl3YWNjX1BQX2NvbmooV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aXdhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weWl3Y19hY2MKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5cncoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJ3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weXJ3X1BQIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5cncKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weXJ3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlyd2FjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyd2FjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weXJ3X2FjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHlydyhSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJ3X1BQX2NvbmooV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5cndfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weXJ3YwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5cncoUnNzMzIsUnR0MzIqKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlyd2FjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weXJ3YWNjX1BQX2NvbmogX19idWlsdGluX0hFWEFHT05fTTdfZGNtcHlyd2NfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmRtcHl3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZkbXB5d19QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NN192ZG1weQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12ZG1weXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHl3YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHl3YWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX003X3ZkbXB5X2FjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weWl3X1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlpd19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpdwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3KFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcHlpd19QUF9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weWl3X1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd19ybmQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpdyhSc3MzMixSdHQzMiopOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdfUFBfY29ual9zMV9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5aXdfUFBfY29ual9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd2MKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpdyhSc3MzMixSdHQzMiopOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weWl3X1BQX2NvbmpfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlpd19QUF9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd2Nfcm5kCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cncoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5cndfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3X1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cncoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3X1BQX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5cndfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3X3JuZAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weXJ3KFJzczMyLFJ0dDMyKik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcHlyd19QUF9jb25qX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlyd19QUF9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3YwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weXJ3KFJzczMyLFJ0dDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5cndfUFBfY29ual9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3X1BQX2NvbmpfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3Y19ybmQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZG1saW5rKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RtbGlua19BQShBZGRyZXNzIFJzLCBBZGRyZXNzIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfZG1saW5rX0FBIF9fYnVpbHRpbl9IRVhBR09OX1k2X2RtbGluawojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXBhdXNlCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZG1wYXVzZSgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2RtcGF1c2UgX19idWlsdGluX0hFWEFHT05fWTZfZG1wYXVzZQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXBvbGwKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9kbXBvbGwoKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9kbXBvbGwgX19idWlsdGluX0hFWEFHT05fWTZfZG1wb2xsCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjgKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBkbXJlc3VtZShSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZG1yZXN1bWVfQShBZGRyZXNzIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfZG1yZXN1bWVfQSBfX2J1aWx0aW5fSEVYQUdPTl9ZNl9kbXJlc3VtZQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZG1zdGFydChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZG1zdGFydF9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kbXN0YXJ0X0EgX19idWlsdGluX0hFWEFHT05fWTZfZG1zdGFydAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXdhaXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9kbXdhaXQoKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9kbXdhaXQgX19idWlsdGluX0hFWEFHT05fWTZfZG13YWl0CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2luY2x1ZGUgPGhleGFnb25fY2lyY19icmV2X2ludHJpbnNpY3MuaD4KI2lmZGVmIF9fSFZYX18KI2luY2x1ZGUgPGh2eF9oZXhhZ29uX3Byb3Rvcy5oPgojZW5kaWYgLyogX19IVlhfXyAqLwojZW5kaWYKAC8qPT09LS0tLSB0bW1pbnRyaW4uaCAtIFNTU0UzIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19UTU1JTlRSSU5fSAojZGVmaW5lIF9fVE1NSU5UUklOX0gKCiNpbmNsdWRlIDxwbW1pbnRyaW4uaD4KCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc3NlMyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19NTVggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtbXgsc3NzZTMiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNjQpKSkKCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDgtYml0IHNpZ25lZAovLy8gICAgaW50ZWdlcnMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGFuZCBzdG9yZXMgdGhlIDgtYml0IHVuc2lnbmVkIGludGVnZXIKLy8vICAgIHJlc3VsdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEFCU0IgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs4IHggaThdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTgoX19tNjQgX19hKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhYnNiKChfX3Y4cWkpX19hKTsKfQoKLy8vIENvbXB1dGVzIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZSBwYWNrZWQgOC1iaXQgc2lnbmVkCi8vLyAgICBpbnRlZ2VycyBpbiB0aGUgc291cmNlIG9wZXJhbmQgYW5kIHN0b3JlcyB0aGUgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU0IgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpOChfX20xMjhpIF9fYSkKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhYnNiMTI4KChfX3YxNnFpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDE2LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAxNi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQQUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTE2KF9fbTY0IF9fYSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWJzdygoX192NGhpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDE2LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAxNi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU1cgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpMTYoX19tMTI4aSBfX2EpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWJzdzEyOCgoX192OGhpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDMyLWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQQUJTRCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTMyKF9fbTY0IF9fYSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWJzZCgoX192MnNpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDMyLWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU0QgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpMzIoX19tMTI4aSBfX2EpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWJzZDEyOCgoX192NHNpKV9fYSk7Cn0KCi8vLyBDb25jYXRlbmF0ZXMgdGhlIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmRzLCBhbmQKLy8vICAgIHJpZ2h0LXNoaWZ0cyB0aGUgcmVzdWx0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9hbGlnbnJfZXBpOChfX20xMjhpIGEsIF9fbTEyOGkgYiwgY29uc3QgaW50IG4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEFMSUdOUiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IG1hbnkgYnl0ZXMgdG8gcmlnaHQtc2hpZnQgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWUuCiNkZWZpbmUgX21tX2FsaWducl9lcGk4KGEsIGIsIG4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFsaWducjEyOCgoX192MTZxaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoYiksIChuKSkpCgovLy8gQ29uY2F0ZW5hdGVzIHRoZSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmRzLCBhbmQgcmlnaHQtc2hpZnRzCi8vLyAgICB0aGUgcmVzdWx0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTY0IF9tbV9hbGlnbnJfcGk4KF9fbTY0IGEsIF9fbTY0IGIsIGNvbnN0IGludCBuKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBBTElHTlIgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IG1hbnkgYnl0ZXMgdG8gcmlnaHQtc2hpZnQgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbmNhdGVuYXRlZCByaWdodC1zaGlmdGVkCi8vLyAgICB2YWx1ZS4KI2RlZmluZSBfbW1fYWxpZ25yX3BpOChhLCBiLCBuKSBcCiAgKChfX202NClfX2J1aWx0aW5faWEzMl9wYWxpZ25yKChfX3Y4cWkpKF9fbTY0KShhKSwgKF9fdjhxaSkoX19tNjQpKGIpLCAobikpKQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzggeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBIQUREVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9waGFkZHcxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBIQURERCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9waGFkZGQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICA2NC1iaXQgdmVjdG9ycyBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQSEFERFcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc3VtcyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1faGFkZF9waTE2KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BoYWRkdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMiBwYWNrZWQKLy8vICAgIDY0LWJpdCB2ZWN0b3JzIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBIQURERCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9oYWRkX3BpMzIoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhhZGRkKChfX3Yyc2kpX19hLCAoX192MnNpKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgYWRkcyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyIHBhY2tlZAovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs4IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSEFERFNXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHNhdHVyYXRlZAovLy8gICAgc3VtcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZHNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGhhZGRzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMiBwYWNrZWQKLy8vICAgIDY0LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBIQUREU1cgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc2F0dXJhdGVkCi8vLyAgICBzdW1zIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hhZGRzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhhZGRzdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgMTI4LWJpdCB2ZWN0b3JzIG9mIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3VidzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQkQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3ViZDEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgNjQtYml0IHZlY3RvcnMgb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEhTVUJXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzCi8vLyAgICBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9oc3ViX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhzdWJ3KChfX3Y0aGkpX19hLCAoX192NGhpKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgc3VidHJhY3RzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIKLy8vICAgIHBhY2tlZCA2NC1iaXQgdmVjdG9ycyBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQSFNVQkQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hzdWJfcGkzMihfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9waHN1YmQoKF9fdjJzaSlfX2EsIChfX3Yyc2kpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMgovLy8gICAgcGFja2VkIDEyOC1iaXQgdmVjdG9ycyBvZiBbOCB4IGkxNl0uIFBvc2l0aXZlIGRpZmZlcmVuY2VzIGdyZWF0ZXIgdGhhbgovLy8gICAgMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBOZWdhdGl2ZSBkaWZmZXJlbmNlcyBsZXNzIHRoYW4gMHg4MDAwIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQlNXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hzdWJzX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3Vic3cxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMgovLy8gICAgcGFja2VkIDY0LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgZGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIGRpZmZlcmVuY2VzIGxlc3MgdGhhbiAweDgwMDAgYXJlCi8vLyAgICBzYXR1cmF0ZWQgdG8gMHg4MDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEhTVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzYXR1cmF0ZWQKLy8vICAgIGRpZmZlcmVuY2VzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hzdWJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhzdWJzdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBjb3JyZXNwb25kaW5nIHBhaXJzIG9mIHBhY2tlZCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZCBhbmQgcGFja2VkIDgtYml0IHNpZ25lZAovLy8gICAgaW50ZWdlciB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQsIGFkZHMgcGFpcnMgb2YKLy8vICAgIGNvbnRpZ3VvdXMgcHJvZHVjdHMgd2l0aCBzaWduZWQgc2F0dXJhdGlvbiwgYW5kIHdyaXRlcyB0aGUgMTYtYml0IHN1bXMgdG8KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFs3OjBdIG9mIGJvdGggb3BlcmFuZHMgYXJlIG11bHRpcGxpZWQsIGJpdHMgWzE1OjhdIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzIGFyZSBtdWx0aXBsaWVkLCBhbmQgdGhlIHN1bSBvZiBib3RoIHJlc3VsdHMgaXMgd3JpdHRlbiB0bwovLy8gICAgYml0cyBbMTU6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBNQUREVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHM6IFxuCi8vLyAgICBcYSBSMCA6PSAoXGEgX19hMCAqIFxhIF9fYjApICsgKFxhIF9fYTEgKiBcYSBfX2IxKSBcbgovLy8gICAgXGEgUjEgOj0gKFxhIF9fYTIgKiBcYSBfX2IyKSArIChcYSBfX2EzICogXGEgX19iMykgXG4KLy8vICAgIFxhIFIyIDo9IChcYSBfX2E0ICogXGEgX19iNCkgKyAoXGEgX19hNSAqIFxhIF9fYjUpIFxuCi8vLyAgICBcYSBSMyA6PSAoXGEgX19hNiAqIFxhIF9fYjYpICsgKFxhIF9fYTcgKiBcYSBfX2I3KSBcbgovLy8gICAgXGEgUjQgOj0gKFxhIF9fYTggKiBcYSBfX2I4KSArIChcYSBfX2E5ICogXGEgX19iOSkgXG4KLy8vICAgIFxhIFI1IDo9IChcYSBfX2ExMCAqIFxhIF9fYjEwKSArIChcYSBfX2ExMSAqIFxhIF9fYjExKSBcbgovLy8gICAgXGEgUjYgOj0gKFxhIF9fYTEyICogXGEgX19iMTIpICsgKFxhIF9fYTEzICogXGEgX19iMTMpIFxuCi8vLyAgICBcYSBSNyA6PSAoXGEgX19hMTQgKiBcYSBfX2IxNCkgKyAoXGEgX19hMTUgKiBcYSBfX2IxNSkKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGR1YnNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1hZGR1YnN3MTI4KChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iKTsKfQoKLy8vIE11bHRpcGxpZXMgY29ycmVzcG9uZGluZyBwYWlycyBvZiBwYWNrZWQgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQgYW5kIHBhY2tlZCA4LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXIgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLCBhZGRzIHBhaXJzIG9mCi8vLyAgICBjb250aWd1b3VzIHByb2R1Y3RzIHdpdGggc2lnbmVkIHNhdHVyYXRpb24sIGFuZCB3cml0ZXMgdGhlIDE2LWJpdCBzdW1zIHRvCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyAgICBGb3IgZXhhbXBsZSwgYml0cyBbNzowXSBvZiBib3RoIG9wZXJhbmRzIGFyZSBtdWx0aXBsaWVkLCBiaXRzIFsxNTo4XSBvZgovLy8gICAgYm90aCBvcGVyYW5kcyBhcmUgbXVsdGlwbGllZCwgYW5kIHRoZSBzdW0gb2YgYm90aCByZXN1bHRzIGlzIHdyaXR0ZW4gdG8KLy8vICAgIGJpdHMgWzE1OjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBNQUREVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNlY29uZCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHM6IFxuCi8vLyAgICBcYSBSMCA6PSAoXGEgX19hMCAqIFxhIF9fYjApICsgKFxhIF9fYTEgKiBcYSBfX2IxKSBcbgovLy8gICAgXGEgUjEgOj0gKFxhIF9fYTIgKiBcYSBfX2IyKSArIChcYSBfX2EzICogXGEgX19iMykgXG4KLy8vICAgIFxhIFIyIDo9IChcYSBfX2E0ICogXGEgX19iNCkgKyAoXGEgX19hNSAqIFxhIF9fYjUpIFxuCi8vLyAgICBcYSBSMyA6PSAoXGEgX19hNiAqIFxhIF9fYjYpICsgKFxhIF9fYTcgKiBcYSBfX2I3KQpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tYWRkdWJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1hZGR1YnN3KChfX3Y4cWkpX19hLCAoX192OHFpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHBhY2tlZCAxNi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWVzLCB0cnVuY2F0ZXMgdGhlIDMyLWJpdAovLy8gICAgcHJvZHVjdHMgdG8gdGhlIDE4IG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBieSByaWdodC1zaGlmdGluZywgcm91bmRzIHRoZQovLy8gICAgdHJ1bmNhdGVkIHZhbHVlIGJ5IGFkZGluZyAxLCBhbmQgd3JpdGVzIGJpdHMgWzE2OjFdIHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQTVVMSFJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgYW5kIHNjYWxlZAovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhyc19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbXVsaHJzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBwYWNrZWQgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlcywgdHJ1bmNhdGVzIHRoZSAzMi1iaXQKLy8vICAgIHByb2R1Y3RzIHRvIHRoZSAxOCBtb3N0IHNpZ25pZmljYW50IGJpdHMgYnkgcmlnaHQtc2hpZnRpbmcsIHJvdW5kcyB0aGUKLy8vICAgIHRydW5jYXRlZCB2YWx1ZSBieSBhZGRpbmcgMSwgYW5kIHdyaXRlcyBiaXRzIFsxNjoxXSB0byB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQTVVMSFJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgYW5kIHNjYWxlZAovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbXVsaHJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG11bGhyc3coKF9fdjRoaSlfX2EsIChfX3Y0aGkpX19iKTsKfQoKLy8vIENvcGllcyB0aGUgOC1iaXQgaW50ZWdlcnMgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiBvciBjbGVhcnMgOC1iaXQgdmFsdWVzIGluIHRoZSBkZXN0aW5hdGlvbiwgYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBTSFVGQiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgYnl0ZXMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbjoKLy8vICAgIEJpdCA3OiBcbgovLy8gICAgMTogQ2xlYXIgdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZSBpbiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwOiBDb3B5IHRoZSBzZWxlY3RlZCBzb3VyY2UgYnl0ZSB0byB0aGUgY29ycmVzcG9uZGluZyBieXRlIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs2OjRdIFJlc2VydmVkLiAgXG4KLy8vICAgIEJpdHMgWzM6MF0gc2VsZWN0IHRoZSBzb3VyY2UgYnl0ZSB0byBiZSBjb3BpZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29waWVkIG9yIGNsZWFyZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2h1ZmZsZV9lcGk4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzaHVmYjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBDb3BpZXMgdGhlIDgtYml0IGludGVnZXJzIGZyb20gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiBvciBjbGVhcnMgOC1iaXQgdmFsdWVzIGluIHRoZSBkZXN0aW5hdGlvbiwgYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUFNIVUZCIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgYnl0ZXMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbjoKLy8vICAgIEJpdCA3OiBcbgovLy8gICAgMTogQ2xlYXIgdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZSBpbiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwOiBDb3B5IHRoZSBzZWxlY3RlZCBzb3VyY2UgYnl0ZSB0byB0aGUgY29ycmVzcG9uZGluZyBieXRlIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFszOjBdIHNlbGVjdCB0aGUgc291cmNlIGJ5dGUgdG8gYmUgY29waWVkLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29waWVkIG9yIGNsZWFyZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zaHVmZmxlX3BpOChfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2h1ZmIoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKLy8vIEZvciBlYWNoIDgtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGJ5dGUgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQU0lHTkIgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NpZ25fZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2lnbmIxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gRm9yIGVhY2ggMTYtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIHdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQU0lHTlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIHdvcmRzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NpZ25fZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNpZ253MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBGb3IgZWFjaCAzMi1iaXQgaW50ZWdlciBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQsIHBlcmZvcm0gb25lIG9mCi8vLyAgICB0aGUgZm9sbG93aW5nIGFjdGlvbnMgYXMgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQuCi8vLwovLy8gICAgSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgbmVnYXRpdmUsIGNhbGN1bGF0ZSB0aGUgdHdvJ3MKLy8vICAgIGNvbXBsZW1lbnQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgd29yZCBpbiB0aGUgZmlyc3Qgc291cmNlLCBhbmQgd3JpdGUgdGhhdAovLy8gICAgdmFsdWUgdG8gdGhlIGRlc3RpbmF0aW9uLiBJZiB0aGUgZG91Ymxld29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcwovLy8gICAgcG9zaXRpdmUsIGNvcHkgdGhlIGNvcnJlc3BvbmRpbmcgd29yZCBmcm9tIHRoZSBmaXJzdCBzb3VyY2UgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgemVybywgY2xlYXIgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHdvcmQgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBTSUdORCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgZG91Ymxld29yZHMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByZXN1bHRhbnQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2lnbl9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2lnbmQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iKTsKfQoKLy8vIEZvciBlYWNoIDgtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGJ5dGUgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBTSUdOQiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByZXN1bHRhbnQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zaWduX3BpOChfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2lnbmIoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKLy8vIEZvciBlYWNoIDE2LWJpdCBpbnRlZ2VyIGluIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZCwgcGVyZm9ybSBvbmUgb2YKLy8vICAgIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyBhcyBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBzb3VyY2Ugb3BlcmFuZC4KLy8vCi8vLyAgICBJZiB0aGUgd29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcyBuZWdhdGl2ZSwgY2FsY3VsYXRlIHRoZSB0d28ncwovLy8gICAgY29tcGxlbWVudCBvZiB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGluIHRoZSBmaXJzdCBzb3VyY2UsIGFuZCB3cml0ZSB0aGF0Ci8vLyAgICB2YWx1ZSB0byB0aGUgZGVzdGluYXRpb24uIElmIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHBvc2l0aXZlLAovLy8gICAgY29weSB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGZyb20gdGhlIGZpcnN0IHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24uIElmCi8vLyAgICB0aGUgd29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcyB6ZXJvLCBjbGVhciB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGluCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQU0lHTlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgY29udHJvbCB3b3JkcyBjb3JyZXNwb25kaW5nIHRvCi8vLyAgICBwb3NpdGlvbnMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fc2lnbl9waTE2KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzaWdudygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gRm9yIGVhY2ggMzItYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBkb3VibGV3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZXdvcmQgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kCi8vLyAgICB3cml0ZSB0aGF0IHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZAovLy8gICAgc291cmNlIGlzIHBvc2l0aXZlLCBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZXdvcmQgZnJvbSB0aGUgZmlyc3QKLy8vICAgIHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24uIElmIHRoZSBkb3VibGV3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzCi8vLyAgICB6ZXJvLCBjbGVhciB0aGUgY29ycmVzcG9uZGluZyBkb3VibGV3b3JkIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBTSUdORCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0d28gY29udHJvbCBkb3VibGV3b3JkcyBjb3JyZXNwb25kaW5nCi8vLyAgICB0byBwb3NpdGlvbnMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fc2lnbl9waTMyKF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzaWduZCgoX192MnNpKV9fYSwgKF9fdjJzaSlfX2IpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCgojZW5kaWYgLyogX19UTU1JTlRSSU5fSCAqLwoAcHBjX3dyYXBwZXJzL21taW50cmluLmgAc2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmgALy89PT0tLSBuZXRic2Rfc3lzY2FsbF9ob29rcy5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBwdWJsaWMgc2FuaXRpemVyIGludGVyZmFjZS4KLy8KLy8gU3lzdGVtIGNhbGwgaGFuZGxlcnMuCi8vCi8vIEludGVyZmFjZSBtZXRob2RzIGRlY2xhcmVkIGluIHRoaXMgaGVhZGVyIGltcGxlbWVudCBwcmUtIGFuZCBwb3N0LSBzeXNjYWxsCi8vIGFjdGlvbnMgZm9yIHRoZSBhY3RpdmUgc2FuaXRpemVyLgovLyBVc2FnZToKLy8gICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRmb28oLi4uYXJncy4uLik7Ci8vICAgbG9uZyBsb25nIHJlcyA9IHN5c2NhbGwoU1lTX2dldGZvbywgLi4uYXJncy4uLik7Ci8vICAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGZvbyhyZXMsIC4uLmFyZ3MuLi4pOwovLwovLyBETyBOT1QgRURJVCEgVEhJUyBGSUxFIEhBUyBCRUVOIEdFTkVSQVRFRCEKLy8KLy8gR2VuZXJhdGVkIHdpdGg6IGdlbmVyYXRlX25ldGJzZF9zeXNjYWxscy5hd2sKLy8gR2VuZXJhdGVkIGRhdGU6IDIwMjAtMDktMTAKLy8gR2VuZXJhdGVkIGZyb206IHN5c2NhbGxzLm1hc3Rlcix2IDEuMzA2IDIwMjAvMDgvMTQgMDA6NTM6MTYgcmlhc3RyYWRoIEV4cAovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9ORVRCU0RfU1lTQ0FMTF9IT09LU19ICiNkZWZpbmUgU0FOSVRJWkVSX05FVEJTRF9TWVNDQUxMX0hPT0tTX0gKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3lzY2FsbChjb2RlLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc1LCBhcmc2LCBhcmc3KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNjYWxsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvZGUpLCAobG9uZyBsb25nKShhcmcwKSwgKGxvbmcgbG9uZykoYXJnMSksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2NhbGwocmVzLCBjb2RlLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNCwgYXJnNSwgYXJnNiwgYXJnNykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzY2FsbCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoY29kZSksIChsb25nIGxvbmcpKGFyZzApLCAobG9uZyBsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXhpdChydmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leGl0KChsb25nIGxvbmcpKHJ2YWwpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leGl0KHJlcywgcnZhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4aXQocmVzLCAobG9uZyBsb25nKShydmFsKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mb3JrKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZm9yayhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mb3JrKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWFkKGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkKHJlcywgZmQsIGJ1ZiwgbmJ5dGUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWQocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3dyaXRlKGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGUoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93cml0ZShyZXMsIGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuKHBhdGgsIGZsYWdzLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW4oKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29wZW4ocmVzLCBwYXRoLCBmbGFncywgbW9kZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3BlbihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb3NlKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UoKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9zZShyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb3NlKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF93YWl0NChwaWQsIHN0YXR1cywgb3B0aW9ucywgcnVzYWdlKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3dhaXQ0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAobG9uZyBsb25nKShvcHRpb25zKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfd2FpdDQocmVzLCBwaWQsIHN0YXR1cywgb3B0aW9ucywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF93YWl0NCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHN0YXR1cyksIChsb25nIGxvbmcpKG9wdGlvbnMpLCAgICAgICAgXAogICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vY3JlYXQocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29jcmVhdCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29jcmVhdChyZXMsIHBhdGgsIG1vZGUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2NyZWF0KHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpbmsocGF0aCwgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluaygobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGluaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpbmsocmVzLCBwYXRoLCBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGluayhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaW5rKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmxpbmsocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGluaygobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW5saW5rKHJlcywgcGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmxpbmsocmVzLCAobG9uZyBsb25nKShwYXRoKSkKLyogc3lzY2FsbCAxMSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hkaXIocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaGRpcigobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hkaXIocmVzLCBwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGRpcihyZXMsIChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaGRpcihmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZGlyKChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNoZGlyKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hkaXIocmVzLCAobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX21rbm9kKHBhdGgsIG1vZGUsIGRldikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbWtub2QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX21rbm9kKHJlcywgcGF0aCwgbW9kZSwgZGV2KSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbWtub2QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGRldikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2htb2QocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG1vZCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NobW9kKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2htb2QocmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hvd24ocGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG93bihyZXMsIHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYnJlYWsobnNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9icmVhaygobG9uZyBsb25nKShuc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2JyZWFrKHJlcywgbnNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYnJlYWsocmVzLCAobG9uZyBsb25nKShuc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzIwX2dldGZzc3RhdChidWYsIGJ1ZnNpemUsIGZsYWdzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfZ2V0ZnNzdGF0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8yMF9nZXRmc3N0YXQocmVzLCBidWYsIGJ1ZnNpemUsIGZsYWdzKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzIwX2dldGZzc3RhdCggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoYnVmc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2xzZWVrKGZkLCBvZmZzZXQsIHdoZW5jZSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vbHNlZWsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShvZmZzZXQpLCAobG9uZyBsb25nKSh3aGVuY2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2xzZWVrKHJlcywgZmQsIG9mZnNldCwgd2hlbmNlKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vbHNlZWsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykob2Zmc2V0KSwgKGxvbmcgbG9uZykod2hlbmNlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDBfbW91bnQodHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80MF9tb3VudCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80MF9tb3VudChyZXMsIHR5cGUsIHBhdGgsIGZsYWdzLCBkYXRhKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQwX21vdW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VubW91bnQocGF0aCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5tb3VudCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bm1vdW50KHJlcywgcGF0aCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubW91bnQocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHVpZCh1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0dWlkKChsb25nIGxvbmcpKHVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHVpZChyZXMsIHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dWlkKHJlcywgKGxvbmcgbG9uZykodWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR1aWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHVpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRldWlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRldWlkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZXVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wdHJhY2UocmVxLCBwaWQsIGFkZHIsIGRhdGEpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B0cmFjZSgobG9uZyBsb25nKShyZXEpLCAobG9uZyBsb25nKShwaWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B0cmFjZShyZXMsIHJlcSwgcGlkLCBhZGRyLCBkYXRhKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHRyYWNlKHJlcywgKGxvbmcgbG9uZykocmVxKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGFkZHIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlY3Ztc2cocywgbXNnLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdm1zZygobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobXNnKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlY3Ztc2cocmVzLCBzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhyZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZG1zZyhzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbXNnKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1zZyhyZXMsIHMsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbXNnKHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1zZyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2ZnJvbShzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tbGVuYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Zmcm9tKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSwgIFwKICAgICAgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKGZyb21sZW5hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVjdmZyb20ocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxlbmFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2ZnJvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykoZnJvbWxlbmFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VwdChzLCBuYW1lLCBhbmFtZWxlbikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXB0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4pICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQocmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYW5hbWVsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBlZXJuYW1lKGZkZXMsIGFzYSwgYWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGVlcm5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBlZXJuYW1lKHJlcywgZmRlcywgYXNhLCBhbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGVlcm5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHNvY2tuYW1lKGZkZXMsIGFzYSwgYWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c29ja25hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHNvY2tuYW1lKHJlcywgZmRlcywgYXNhLCBhbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja25hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VzcyhwYXRoLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXNzKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2FjY2VzcyhyZXMsIHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXNzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaGZsYWdzKHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NoZmxhZ3MoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hmbGFncyhyZXMsIHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGZsYWdzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2hmbGFncyhmZCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaGZsYWdzKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2hmbGFncyhyZXMsIGZkLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGZsYWdzKHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW5jKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW5jKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3luYyhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW5jKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9raWxsKHBpZCwgc2lnbnVtKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2tpbGwoKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa2lsbChyZXMsIHBpZCwgc2lnbnVtKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKHJlcywgKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfc3RhdDQzKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19zdGF0NDMoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfc3RhdDQzKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19zdGF0NDMocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBwaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBwaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwcGlkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBwaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19sc3RhdDQzKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX2xzdGF0NDMoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfbHN0YXQ0MyhyZXMsIHBhdGgsIHViKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19sc3RhdDQzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9kdXAoZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cCgobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cChyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BpcGUoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BpcGUoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9waXBlKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGVnaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGVnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRlZ2lkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGVnaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2ZpbChzYW1wbGVzLCBzaXplLCBvZmZzZXQsIHNjYWxlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvZmlsKChsb25nIGxvbmcpKHNhbXBsZXMpLCAobG9uZyBsb25nKShzaXplKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCksIChsb25nIGxvbmcpKHNjYWxlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJvZmlsKHJlcywgc2FtcGxlcywgc2l6ZSwgb2Zmc2V0LCBzY2FsZSkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcm9maWwocmVzLCAobG9uZyBsb25nKShzYW1wbGVzKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2l6ZSksIChsb25nIGxvbmcpKG9mZnNldCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2NhbGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2t0cmFjZShmbmFtZSwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa3RyYWNlKChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykob3BzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZhY3MpLCAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9rdHJhY2UocmVzLCBmbmFtZSwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2t0cmFjZShyZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvcHMpLCAobG9uZyBsb25nKShmYWNzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xM19zaWdhY3Rpb24xMyhzaWdudW0sIG5zYSwgb3NhKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ2FjdGlvbjEzKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaWdudW0pLCAobG9uZyBsb25nKShuc2EpLCAobG9uZyBsb25nKShvc2EpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTNfc2lnYWN0aW9uMTMocmVzLCBzaWdudW0sIG5zYSwgb3NhKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdhY3Rpb24xMyggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zYSksIChsb25nIGxvbmcpKG9zYSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Z2lkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3Byb2NtYXNrMTMoaG93LCBtYXNrKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMygobG9uZyBsb25nKShob3cpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3Byb2NtYXNrMTMocmVzLCBob3csIG1hc2spICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMyhyZXMsIChsb25nIGxvbmcpKGhvdyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGxvZ2luKG5hbWVidWYsIG5hbWVsZW4pICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0bG9naW4oKGxvbmcgbG9uZykobmFtZWJ1ZiksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZ2V0bG9naW4ocmVzLCBuYW1lYnVmLCBuYW1lbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRsb2dpbihyZXMsIChsb25nIGxvbmcpKG5hbWVidWYpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NldGxvZ2luKG5hbWVidWYpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0bG9naW4oKGxvbmcgbG9uZykobmFtZWJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2V0bG9naW4ocmVzLCBuYW1lYnVmKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zZXRsb2dpbihyZXMsIChsb25nIGxvbmcpKG5hbWVidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY3QocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjdCgobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjdChyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2N0KHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3BlbmRpbmcxMygpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3BlbmRpbmcxMyhyZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTNfc2lnYWx0c3RhY2sxMyhuc3MsIG9zcykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xM19zaWdhbHRzdGFjazEzKChsb25nIGxvbmcpKG5zcyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9zcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xM19zaWdhbHRzdGFjazEzKHJlcywgbnNzLCBvc3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ2FsdHN0YWNrMTMocmVzLCAobG9uZyBsb25nKShuc3MpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3NzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb2N0bChmZCwgY29tLCBkYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvY3RsKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY29tKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb2N0bChyZXMsIGZkLCBjb20sIGRhdGEpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShjb20pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9vcmVib290KG9wdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX29yZWJvb3QoKGxvbmcgbG9uZykob3B0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX29yZWJvb3QocmVzLCBvcHQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChyZXMsIChsb25nIGxvbmcpKG9wdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmV2b2tlKHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZXZva2UoKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Jldm9rZShyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmV2b2tlKHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3ltbGluayhwYXRoLCBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW1saW5rKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaW5rKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3ltbGluayhyZXMsIHBhdGgsIGxpbmspICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW1saW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxpbmspKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWRsaW5rKHBhdGgsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmsoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkbGluayhyZXMsIHBhdGgsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leGVjdmUocGF0aCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4ZWN2ZSgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXJncCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShlbnZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXhlY3ZlKHJlcywgcGF0aCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leGVjdmUocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJncCksIChsb25nIGxvbmcpKGVudnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VtYXNrKG5ld21hc2spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW1hc2soKGxvbmcgbG9uZykobmV3bWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VtYXNrKHJlcywgbmV3bWFzaykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW1hc2socmVzLCAobG9uZyBsb25nKShuZXdtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaHJvb3QocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nocm9vdCgobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hyb290KHJlcywgcGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaHJvb3QocmVzLCAobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfZnN0YXQ0MyhmZCwgc2IpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19mc3RhdDQzKChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX2ZzdGF0NDMocmVzLCBmZCwgc2IpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfZnN0YXQ0MyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRrZXJuaW5mbyhvcCwgd2hlcmUsIHNpemUsIGFyZykgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldGtlcm5pbmZvKCAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG9wKSwgKGxvbmcgbG9uZykod2hlcmUpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0a2VybmluZm8ocmVzLCBvcCwgd2hlcmUsIHNpemUsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRrZXJuaW5mbyggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKSh3aGVyZSksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRwYWdlc2l6ZSgpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29nZXRwYWdlc2l6ZShyZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfbXN5bmMoYWRkciwgbGVuKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9tc3luYygobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfbXN5bmMocmVzLCBhZGRyLCBsZW4pICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9tc3luYyhyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Zmb3JrKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92Zm9yaygpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Zmb3JrKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdmZvcmsocmVzKQovKiBzeXNjYWxsIDY3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA2OCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDcwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb21tYXAoYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vbW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKHByb3QpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vbW1hcChyZXMsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZCwgcG9zKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29tbWFwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKHByb3QpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwb3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ZhZHZpc2UoYW5vbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmFkdmlzZSgobG9uZyBsb25nKShhbm9tKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdmFkdmlzZShyZXMsIGFub20pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92YWR2aXNlKHJlcywgKGxvbmcgbG9uZykoYW5vbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubWFwKGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5tYXAoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X211bm1hcChyZXMsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubWFwKHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXByb3RlY3QoYWRkciwgbGVuLCBwcm90KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcHJvdGVjdCgobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwcm90KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXByb3RlY3QocmVzLCBhZGRyLCBsZW4sIHByb3QpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcHJvdGVjdChyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShwcm90KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tYWR2aXNlKGFkZHIsIGxlbiwgYmVoYXYpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21hZHZpc2UoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYmVoYXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tYWR2aXNlKHJlcywgYWRkciwgbGVuLCBiZWhhdikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21hZHZpc2UocmVzLCAobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoYmVoYXYpKQovKiBzeXNjYWxsIDc2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3NyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWluY29yZShhZGRyLCBsZW4sIHZlYykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZlYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pbmNvcmUocmVzLCBhZGRyLCBsZW4sIHZlYykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluY29yZShyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKSh2ZWMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdyb3VwcyhnaWRzZXRzaXplLCBnaWRzZXQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z3JvdXBzKChsb25nIGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdyb3VwcyhyZXMsIGdpZHNldHNpemUsIGdpZHNldCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzKHJlcywgKGxvbmcgbG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z3JvdXBzKGdpZHNldHNpemUsIGdpZHNldCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRncm91cHMoKGxvbmcgbG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z3JvdXBzKHJlcywgZ2lkc2V0c2l6ZSwgZ2lkc2V0KSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMocmVzLCAobG9uZyBsb25nKShnaWRzZXRzaXplKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ3JwKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ3JwKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGdycChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ3JwKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRwZ2lkKHBpZCwgcGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHBnaWQoKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykocGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHBnaWQocmVzLCBwaWQsIHBnaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChyZXMsIChsb25nIGxvbmcpKHBpZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfc2V0aXRpbWVyKHdoaWNoLCBpdHYsIG9pdHYpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZXRpdGltZXIoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShpdHYpLCAobG9uZyBsb25nKShvaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3NldGl0aW1lcihyZXMsIHdoaWNoLCBpdHYsIG9pdHYpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfc2V0aXRpbWVyKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGl0diksIChsb25nIGxvbmcpKG9pdHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vd2FpdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX293YWl0KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX293YWl0KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3dhaXQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9vc3dhcG9uKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX29zd2Fwb24oKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xMl9vc3dhcG9uKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEyX29zd2Fwb24ocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfZ2V0aXRpbWVyKHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRpdGltZXIoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2dldGl0aW1lcihyZXMsIHdoaWNoLCBpdHYpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0aXRpbWVyKHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGl0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRob3N0bmFtZShob3N0bmFtZSwgbGVuKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldGhvc3RuYW1lKChsb25nIGxvbmcpKGhvc3RuYW1lKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0aG9zdG5hbWUocmVzLCBob3N0bmFtZSwgbGVuKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRob3N0bmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaG9zdG5hbWUpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2V0aG9zdG5hbWUoaG9zdG5hbWUsIGxlbikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zZXRob3N0bmFtZSgobG9uZyBsb25nKShob3N0bmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3NldGhvc3RuYW1lKHJlcywgaG9zdG5hbWUsIGxlbikgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2V0aG9zdG5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGhvc3RuYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2dldGR0YWJsZXNpemUoKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZShyZXMpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRkdGFibGVzaXplKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9kdXAyKGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDIoKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZHVwMihyZXMsIGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAyKHJlcywgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyYW5kb20oYnVmLCBidWZsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJhbmRvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoYnVmbGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyYW5kb20ocmVzLCBidWYsIGJ1ZmxlbiwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJhbmRvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZmxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY250bChmZCwgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjbnRsKHJlcywgZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNudGwocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNtZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfc2VsZWN0KG5kLCBpbiwgb3UsIGV4LCB0dikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZWxlY3QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfc2VsZWN0KHJlcywgbmQsIGluLCBvdSwgZXgsIHR2KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZWxlY3QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAobG9uZyBsb25nKShvdSksIChsb25nIGxvbmcpKGV4KSwgXAogICAgICAobG9uZyBsb25nKSh0dikpCi8qIHN5c2NhbGwgOTQgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzeW5jKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMoKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3luYyhyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzeW5jKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHByaW9yaXR5KHdoaWNoLCB3aG8sIHByaW8pICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cHJpb3JpdHkoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHdobyksIChsb25nIGxvbmcpKHByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRwcmlvcml0eShyZXMsIHdoaWNoLCB3aG8sIHByaW8pICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHByaW9yaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykod2hvKSwgKGxvbmcgbG9uZykocHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX3NvY2tldChkb21haW4sIHR5cGUsIHByb3RvY29sKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfc29ja2V0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRvbWFpbiksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShwcm90b2NvbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9zb2NrZXQocmVzLCBkb21haW4sIHR5cGUsIHByb3RvY29sKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX3NvY2tldCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb25uZWN0KHMsIG5hbWUsIG5hbWVsZW4pICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nvbm5lY3QoKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nvbm5lY3QocmVzLCBzLCBuYW1lLCBuYW1lbGVuKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29ubmVjdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2FjY2VwdChzLCBuYW1lLCBhbmFtZWxlbikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vYWNjZXB0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShhbmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4pICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29hY2NlcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShhbmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cHJpb3JpdHkod2hpY2gsIHdobykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcmlvcml0eSgobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHdobykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHByaW9yaXR5KHJlcywgd2hpY2gsIHdobykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHJpb3JpdHkocmVzLCAobG9uZyBsb25nKSh3aGljaCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykod2hvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NlbmQocywgYnVmLCBsZW4sIGZsYWdzKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2VuZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29zZW5kKHJlcywgcywgYnVmLCBsZW4sIGZsYWdzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdihzLCBidWYsIGxlbiwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3YocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShsZW4pLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3JldHVybjEzKHNpZ2NudHhwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncmV0dXJuMTMoKGxvbmcgbG9uZykoc2lnY250eHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTNfc2lncmV0dXJuMTMocmVzLCBzaWdjbnR4cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdyZXR1cm4xMyhyZXMsICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdjbnR4cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYmluZChzLCBuYW1lLCBuYW1lbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iaW5kKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWVsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9iaW5kKHJlcywgcywgbmFtZSwgbmFtZWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JpbmQocmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0c29ja29wdChzLCBsZXZlbCwgbmFtZSwgdmFsLCB2YWxzaXplKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzb2Nrb3B0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRzb2Nrb3B0KHJlcywgcywgbGV2ZWwsIG5hbWUsIHZhbCwgdmFsc2l6ZSkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNvY2tvcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksIChsb25nIGxvbmcpKG5hbWUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWwpLCAobG9uZyBsb25nKSh2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0ZW4ocywgYmFja2xvZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3RlbigobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYmFja2xvZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpc3RlbihyZXMsIHMsIGJhY2tsb2cpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdGVuKHJlcywgKGxvbmcgbG9uZykocyksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJhY2tsb2cpKQovKiBzeXNjYWxsIDEwNyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zaWd2ZWMoc2lnbnVtLCBuc3YsIG9zdikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3ZlYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zdiksIChsb25nIGxvbmcpKG9zdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lndmVjKHJlcywgc2lnbnVtLCBuc3YsIG9zdikgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWd2ZWMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnN2KSwgKGxvbmcgbG9uZykob3N2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NpZ2Jsb2NrKG1hc2spICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2lnYmxvY2soKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lnYmxvY2socmVzLCBtYXNrKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWdibG9jayhyZXMsIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2lnc2V0bWFzayhtYXNrKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zaWdzZXRtYXNrKChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3NpZ3NldG1hc2socmVzLCBtYXNrKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc2V0bWFzayhyZXMsIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xM19zaWdzdXNwZW5kMTMobWFzaykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ3N1c3BlbmQxMygobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3N1c3BlbmQxMyhyZXMsIG1hc2spICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKHJlcywgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zaWdzdGFjayhuc3MsIG9zcykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3N0YWNrKChsb25nIGxvbmcpKG5zcyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9zcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lnc3RhY2socmVzLCBuc3MsIG9zcykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWdzdGFjayhyZXMsIChsb25nIGxvbmcpKG5zcyksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdm1zZyhzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2bXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobXNnKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3Ztc2cocmVzLCBzLCBtc2csIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zZW5kbXNnKHMsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NlbmRtc2coICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2VuZG1zZyhyZXMsIHMsIG1zZywgZmxhZ3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zZW5kbXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1zZyksIChsb25nIGxvbmcpKGZsYWdzKSkKLyogc3lzY2FsbCAxMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkodHAsIHR6cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHRpbWVvZmRheSgobG9uZyBsb25nKSh0cCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfZ2V0dGltZW9mZGF5KHJlcywgdHAsIHR6cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkocmVzLCAobG9uZyBsb25nKSh0cCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfZ2V0cnVzYWdlKHdobywgcnVzYWdlKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRydXNhZ2UoKGxvbmcgbG9uZykod2hvKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2dldHJ1c2FnZShyZXMsIHdobywgcnVzYWdlKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0cnVzYWdlKHJlcywgKGxvbmcgbG9uZykod2hvKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJ1c2FnZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja29wdChzLCBsZXZlbCwgbmFtZSwgdmFsLCBhdmFsc2l6ZSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGF2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c29ja29wdChyZXMsIHMsIGxldmVsLCBuYW1lLCB2YWwsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFsc2l6ZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzb2Nrb3B0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobGV2ZWwpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodmFsKSwgKGxvbmcgbG9uZykoYXZhbHNpemUpKQovKiBzeXNjYWxsIDExOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZHYoZmQsIGlvdnAsIGlvdmNudCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkdigobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGlvdnApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShpb3ZjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkdihyZXMsIGZkLCBpb3ZwLCBpb3ZjbnQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWR2KHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd3JpdGV2KGZkLCBpb3ZwLCBpb3ZjbnQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZXYoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW92Y250KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd3JpdGV2KHJlcywgZmQsIGlvdnAsIGlvdmNudCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93cml0ZXYocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW92cCksIChsb25nIGxvbmcpKGlvdmNudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3NldHRpbWVvZmRheSh0diwgdHpwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfc2V0dGltZW9mZGF5KChsb25nIGxvbmcpKHR2KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR6cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9zZXR0aW1lb2ZkYXkocmVzLCB0diwgdHpwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3NldHRpbWVvZmRheShyZXMsIChsb25nIGxvbmcpKHR2KSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bihmZCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bihyZXMsIGZkLCB1aWQsIGdpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh1aWQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNobW9kKGZkLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2QoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNobW9kKHJlcywgZmQsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdmZyb20ocywgYnVmLCBsZW4sIGZsYWdzLCBmcm9tLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxlbmFkZHIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2ZnJvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAgXAogICAgICAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykoZnJvbWxlbmFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3Zmcm9tKHJlcywgcywgYnVmLCBsZW4sIGZsYWdzLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20sIGZyb21sZW5hZGRyKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdmZyb20oICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShsZW4pLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKGZyb20pLCAobG9uZyBsb25nKShmcm9tbGVuYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmV1aWQocnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZCgobG9uZyBsb25nKShydWlkKSwgKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJldWlkKHJlcywgcnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmV1aWQocmVzLCAobG9uZyBsb25nKShydWlkKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVnaWQocmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZWdpZCgobG9uZyBsb25nKShyZ2lkKSwgKGxvbmcgbG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlZ2lkKHJlcywgcmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQocmVzLCAobG9uZyBsb25nKShyZ2lkKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVuYW1lKGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWUoKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVuYW1lKHJlcywgZnJvbSwgdG8pICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW5hbWUocmVzLCAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vdHJ1bmNhdGUocGF0aCwgbGVuZ3RoKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX290cnVuY2F0ZSgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3RydW5jYXRlKHJlcywgcGF0aCwgbGVuZ3RoKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuZ3RoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2Z0cnVuY2F0ZShmZCwgbGVuZ3RoKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZnRydW5jYXRlKChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZnRydW5jYXRlKHJlcywgZmQsIGxlbmd0aCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29mdHJ1bmNhdGUocmVzLCAobG9uZyBsb25nKShmZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuZ3RoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mbG9jayhmZCwgaG93KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zsb2NrKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaG93KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmxvY2socmVzLCBmZCwgaG93KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbG9jayhyZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaG93KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2ZpZm8ocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZmlmbygobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZmlmbyhyZXMsIHBhdGgsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmR0byhzLCBidWYsIGxlbiwgZmxhZ3MsIHRvLCB0b2xlbikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZHRvKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRvKSwgKGxvbmcgbG9uZykodG9sZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kdG8ocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MsIHRvLCB0b2xlbikgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmR0byhyZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShmbGFncyksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0byksIChsb25nIGxvbmcpKHRvbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaHV0ZG93bihzLCBob3cpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NodXRkb3duKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShob3cpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaHV0ZG93bihyZXMsIHMsIGhvdykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NodXRkb3duKHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGhvdykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc29ja2V0cGFpcihkb21haW4sIHR5cGUsIHByb3RvY29sLCByc3YpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRwYWlyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRvbWFpbiksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShwcm90b2NvbCksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJzdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NvY2tldHBhaXIocmVzLCBkb21haW4sIHR5cGUsIHByb3RvY29sLCByc3YpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc29ja2V0cGFpciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJzdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWtkaXIocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta2RpcigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZGlyKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXIocmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcm1kaXIocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ybWRpcigobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfcm1kaXIocmVzLCBwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ybWRpcihyZXMsIChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF91dGltZXMocGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3V0aW1lcygobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3V0aW1lcyhyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfdXRpbWVzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQovKiBzeXNjYWxsIDEzOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2FkanRpbWUoZGVsdGEsIG9sZGRlbHRhKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfYWRqdGltZSgobG9uZyBsb25nKShkZWx0YSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvbGRkZWx0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9hZGp0aW1lKHJlcywgZGVsdGEsIG9sZGRlbHRhKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2FkanRpbWUocmVzLCAobG9uZyBsb25nKShkZWx0YSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2xkZGVsdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0cGVlcm5hbWUoZmRlcywgYXNhLCBhbGVuKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0cGVlcm5hbWUocmVzLCBmZGVzLCBhc2EsIGFsZW4pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0aG9zdGlkKCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2dldGhvc3RpZChyZXMpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0aG9zdGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NldGhvc3RpZChob3N0aWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2V0aG9zdGlkKChsb25nIGxvbmcpKGhvc3RpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2V0aG9zdGlkKHJlcywgaG9zdGlkKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zZXRob3N0aWQocmVzLCAobG9uZyBsb25nKShob3N0aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0cmxpbWl0KHdoaWNoLCBybHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29nZXRybGltaXQocmVzLCB3aGljaCwgcmxwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHJsaW1pdChyZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2V0cmxpbWl0KHdoaWNoLCBybHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zZXRybGltaXQoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29zZXRybGltaXQocmVzLCB3aGljaCwgcmxwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChyZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19va2lsbHBnKHBnaWQsIHNpZ251bSkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29raWxscGcoKGxvbmcgbG9uZykocGdpZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29raWxscGcocmVzLCBwZ2lkLCBzaWdudW0pICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2tpbGxwZyhyZXMsIChsb25nIGxvbmcpKHBnaWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdudW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHNpZCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c2lkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0c2lkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9xdW90YWN0bChwYXRoLCBjbWQsIHVpZCwgYXJnKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3F1b3RhY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3F1b3RhY3RsKHJlcywgcGF0aCwgY21kLCB1aWQsIGFyZykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfcXVvdGFjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3F1b3RhKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcXVvdGEoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3F1b3RhKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcXVvdGEocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0c29ja25hbWUoZmRlYywgYXNhLCBhbGVuKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRzb2NrbmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVjKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0c29ja25hbWUocmVzLCBmZGVjLCBhc2EsIGFsZW4pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRzb2NrbmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlYyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQovKiBzeXNjYWxsIDE1MSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTUyIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNTMgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE1NCBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmZzc3ZjKGZsYWcsIGFyZ3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZnNzdmMoKGxvbmcgbG9uZykoZmxhZyksIChsb25nIGxvbmcpKGFyZ3ApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZnNzdmMocmVzLCBmbGFnLCBhcmdwKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25mc3N2YyhyZXMsIChsb25nIGxvbmcpKGZsYWcpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhcmdwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2dldGRpcmVudHJpZXMoZmQsIGJ1ZiwgY291bnQsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShjb3VudCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYmFzZXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2dldGRpcmVudHJpZXMocmVzLCBmZCwgYnVmLCBjb3VudCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShiYXNlcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzIwX3N0YXRmcyhwYXRoLCBidWYpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfc3RhdGZzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8yMF9zdGF0ZnMocmVzLCBwYXRoLCBidWYpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzIwX3N0YXRmcyhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8yMF9mc3RhdGZzKGZkLCBidWYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzIwX2ZzdGF0ZnMoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzIwX2ZzdGF0ZnMocmVzLCBmZCwgYnVmKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQovKiBzeXNjYWxsIDE1OSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTYwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMzBfZ2V0ZmgoZm5hbWUsIGZocCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9nZXRmaCgobG9uZyBsb25nKShmbmFtZSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmaHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfZ2V0ZmgocmVzLCBmbmFtZSwgZmhwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRmaChyZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmaHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8wOV9vZ2V0ZG9tYWlubmFtZShkb21haW5uYW1lLCBsZW4pICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShkb21haW5uYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKHJlcywgZG9tYWlubmFtZSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb2dldGRvbWFpbm5hbWUoICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShkb21haW5uYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMDlfb3NldGRvbWFpbm5hbWUoZG9tYWlubmFtZSwgbGVuKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZG9tYWlubmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZShyZXMsIGRvbWFpbm5hbWUsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4pICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzA5X29zZXRkb21haW5uYW1lKCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWlubmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzA5X291bmFtZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMDlfb3VuYW1lKChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMDlfb3VuYW1lKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8wOV9vdW5hbWUocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeXNhcmNoKG9wLCBwYXJtcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2FyY2goKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKShwYXJtcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2FyY2gocmVzLCBvcCwgcGFybXMpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzYXJjaChyZXMsIChsb25nIGxvbmcpKG9wKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXJtcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mdXRleCh1YWRkciwgb3AsIHZhbCwgdGltZW91dCwgdWFkZHIyLCB2YWwyLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4KChsb25nIGxvbmcpKHVhZGRyKSwgKGxvbmcgbG9uZykob3ApLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbCksIChsb25nIGxvbmcpKHRpbWVvdXQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHVhZGRyMiksIChsb25nIGxvbmcpKHZhbDIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbDMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Z1dGV4KHJlcywgdWFkZHIsIG9wLCB2YWwsIHRpbWVvdXQsIHVhZGRyMiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDIsIHZhbDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZnV0ZXgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHVhZGRyKSwgKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKSh2YWwpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh0aW1lb3V0KSwgKGxvbmcgbG9uZykodWFkZHIyKSwgKGxvbmcgbG9uZykodmFsMiksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWwzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Z1dGV4X3NldF9yb2J1c3RfbGlzdChoZWFkLCBsZW4pICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KChsb25nIGxvbmcpKGhlYWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KHJlcywgaGVhZCwgbGVuKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRleF9zZXRfcm9idXN0X2xpc3QoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaGVhZCksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mdXRleF9nZXRfcm9idXN0X2xpc3QobHdwaWQsIGhlYWRwLCBsZW5wKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdCggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGx3cGlkKSwgKGxvbmcgbG9uZykoaGVhZHApLCAobG9uZyBsb25nKShsZW5wKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19mdXRleF9nZXRfcm9idXN0X2xpc3QocmVzLCBsd3BpZCwgaGVhZHAsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVucCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShsd3BpZCksIChsb25nIGxvbmcpKGhlYWRwKSwgKGxvbmcgbG9uZykobGVucCkpCiNpZiAhZGVmaW5lZChfTFA2NCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTBfb3NlbXN5cyh3aGljaCwgYTIsIGEzLCBhNCwgYTUpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMF9vc2Vtc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgKGxvbmcgbG9uZykoYTQpLCAgIFwKICAgICAgKGxvbmcgbG9uZykoYTUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTBfb3NlbXN5cyhyZXMsIHdoaWNoLCBhMiwgYTMsIGE0LCBhNSkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMF9vc2Vtc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykoYTIpLCAobG9uZyBsb25nKShhMyksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhNCksIChsb25nIGxvbmcpKGE1KSkKI2Vsc2UKLyogc3lzY2FsbCAxNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMF9vbXNnc3lzKHdoaWNoLCBhMiwgYTMsIGE0LCBhNSwgYTYpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29tc2dzeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAobG9uZyBsb25nKShhNCksICAgXAogICAgICAobG9uZyBsb25nKShhNSksIChsb25nIGxvbmcpKGE2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEwX29tc2dzeXMocmVzLCB3aGljaCwgYTIsIGEzLCBhNCwgYTUsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTBfb21zZ3N5cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYTQpLCAobG9uZyBsb25nKShhNSksIChsb25nIGxvbmcpKGE2KSkKI2Vsc2UKLyogc3lzY2FsbCAxNzAgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMF9vc2htc3lzKHdoaWNoLCBhMiwgYTMsIGE0KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29zaG1zeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAobG9uZyBsb25nKShhNCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xMF9vc2htc3lzKHJlcywgd2hpY2gsIGEyLCBhMywgYTQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEwX29zaG1zeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGE0KSkKI2Vsc2UKLyogc3lzY2FsbCAxNzEgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKLyogc3lzY2FsbCAxNzIgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkKGZkLCBidWYsIG5ieXRlLCBQQUQsIG9mZnNldCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpLCAobG9uZyBsb25nKShQQUQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2Zmc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJlYWQocmVzLCBmZCwgYnVmLCBuYnl0ZSwgUEFELCBvZmZzZXQpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZChyZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYnl0ZSksIChsb25nIGxvbmcpKFBBRCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmZzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3B3cml0ZShmZCwgYnVmLCBuYnl0ZSwgUEFELCBvZmZzZXQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRlKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZShyZXMsIGZkLCBidWYsIG5ieXRlLCBQQUQsIG9mZnNldCkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRlKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSwgKGxvbmcgbG9uZykoUEFEKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX250cF9nZXR0aW1lKG50dnApICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfbnRwX2dldHRpbWUoKGxvbmcgbG9uZykobnR2cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9udHBfZ2V0dGltZShyZXMsIG50dnApICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX250cF9nZXR0aW1lKHJlcywgKGxvbmcgbG9uZykobnR2cCkpCiNpZiBkZWZpbmVkKE5UUCkgfHwgIWRlZmluZWQoX0tFUk5FTF9PUFQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbnRwX2FkanRpbWUodHApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9udHBfYWRqdGltZSgobG9uZyBsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X250cF9hZGp0aW1lKHJlcywgdHApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbnRwX2FkanRpbWUocmVzLCAobG9uZyBsb25nKSh0cCkpCiNlbHNlCi8qIHN5c2NhbGwgMTc2IGhhcyBiZWVuIHNraXBwZWQgKi8KI2VuZGlmCi8qIHN5c2NhbGwgMTc3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNzggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE3OSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTgwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRnaWQoZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdpZCgobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRnaWQocmVzLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdpZChyZXMsIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZWdpZChlZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRlZ2lkKChsb25nIGxvbmcpKGVnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRlZ2lkKHJlcywgZWdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGVnaWQocmVzLCAobG9uZyBsb25nKShlZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRldWlkKGV1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGV1aWQoKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGV1aWQocmVzLCBldWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZXVpZChyZXMsIChsb25nIGxvbmcpKGV1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19ibWFwdihmc2lkcCwgYmxraW92LCBibGtjbnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX2JtYXB2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmc2lkcCksIChsb25nIGxvbmcpKGJsa2lvdiksIChsb25nIGxvbmcpKGJsa2NudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xmc19ibWFwdihyZXMsIGZzaWRwLCBibGtpb3YsIGJsa2NudCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX2JtYXB2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAobG9uZyBsb25nKShibGtpb3YpLCAobG9uZyBsb25nKShibGtjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19tYXJrdihmc2lkcCwgYmxraW92LCBibGtjbnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX21hcmt2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmc2lkcCksIChsb25nIGxvbmcpKGJsa2lvdiksIChsb25nIGxvbmcpKGJsa2NudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xmc19tYXJrdihyZXMsIGZzaWRwLCBibGtpb3YsIGJsa2NudCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX21hcmt2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAobG9uZyBsb25nKShibGtpb3YpLCAobG9uZyBsb25nKShibGtjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19zZWdjbGVhbihmc2lkcCwgc2VnbWVudCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX3NlZ2NsZWFuKChsb25nIGxvbmcpKGZzaWRwKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNlZ21lbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sZnNfc2VnY2xlYW4ocmVzLCBmc2lkcCwgc2VnbWVudCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xmc19zZWdjbGVhbihyZXMsIChsb25nIGxvbmcpKGZzaWRwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzZWdtZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfbGZzX3NlZ3dhaXQoZnNpZHAsIHR2KSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9sZnNfc2Vnd2FpdCgobG9uZyBsb25nKShmc2lkcCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9sZnNfc2Vnd2FpdChyZXMsIGZzaWRwLCB0dikgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2xmc19zZWd3YWl0KHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfc3RhdDEyKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9zdGF0MTIoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfc3RhdDEyKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9zdGF0MTIocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9mc3RhdDEyKGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2ZzdGF0MTIoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfZnN0YXQxMihyZXMsIGZkLCBzYikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9mc3RhdDEyKHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfbHN0YXQxMihwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9sc3RhdDEyKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX2xzdGF0MTIocmVzLCBwYXRoLCB1YikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfbHN0YXQxMihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGF0aGNvbmYocGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wYXRoY29uZigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BhdGhjb25mKHJlcywgcGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF0aGNvbmYocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnBhdGhjb25mKGZkLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mcGF0aGNvbmYoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnBhdGhjb25mKHJlcywgZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mcGF0aGNvbmYocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja29wdDIocywgbGV2ZWwsIG5hbWUsIHZhbCwgYXZhbHNpemUpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0MiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgIChsb25nIGxvbmcpKGF2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c29ja29wdDIocmVzLCBzLCBsZXZlbCwgbmFtZSwgdmFsLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhbHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzb2Nrb3B0MiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobGV2ZWwpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodmFsKSwgKGxvbmcgbG9uZykoYXZhbHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJsaW1pdCh3aGljaCwgcmxwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmxpbWl0KChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cmxpbWl0KHJlcywgd2hpY2gsIHJscCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRybGltaXQocmVzLCAobG9uZyBsb25nKSh3aGljaCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRybGltaXQod2hpY2gsIHJscCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdCgobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHJscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJsaW1pdChyZXMsIHdoaWNoLCBybHApICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmxpbWl0KHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEyX2dldGRpcmVudHJpZXMoZmQsIGJ1ZiwgY291bnQsIGJhc2VwKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGJhc2VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX2dldGRpcmVudHJpZXMocmVzLCBmZCwgYnVmLCBjb3VudCwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGNvdW50KSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYmFzZXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21tYXAoYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsIFBBRCwgcG9zKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykocHJvdCksICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW1hcChyZXMsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCBQQUQsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbWFwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykocHJvdCksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zeXNjYWxsKGNvZGUsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzUsIGFyZzYsIGFyZzcpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N5c2NhbGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvZGUpLCAobG9uZyBsb25nKShhcmcwKSwgKGxvbmcgbG9uZykoYXJnMSksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3lzY2FsbChyZXMsIGNvZGUsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc0LCBhcmc1LCBhcmc2LCBhcmc3KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjYWxsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoY29kZSksIChsb25nIGxvbmcpKGFyZzApLCAobG9uZyBsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHNlZWsoZmQsIFBBRCwgb2Zmc2V0LCB3aGVuY2UpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc2VlaygobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmZzZXQpLCAobG9uZyBsb25nKSh3aGVuY2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2VlayhyZXMsIGZkLCBQQUQsIG9mZnNldCwgd2hlbmNlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZWVrKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHdoZW5jZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdHJ1bmNhdGUocGF0aCwgUEFELCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90cnVuY2F0ZSgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoUEFEKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90cnVuY2F0ZShyZXMsIHBhdGgsIFBBRCwgbGVuZ3RoKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RydW5jYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z0cnVuY2F0ZShmZCwgUEFELCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnRydW5jYXRlKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Z0cnVuY2F0ZShyZXMsIGZkLCBQQUQsIGxlbmd0aCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc3lzY3RsKG5hbWUsIG5hbWVsZW4sIG9sZHYsIG9sZGxlbnAsIG5ld3YsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zeXNjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykobmFtZWxlbiksIChsb25nIGxvbmcpKG9sZHYpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvbGRsZW5wKSwgKGxvbmcgbG9uZykobmV3diksIChsb25nIGxvbmcpKG5ld2xlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3lzY3RsKHJlcywgbmFtZSwgbmFtZWxlbiwgb2xkdiwgb2xkbGVucCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3YsIG5ld2xlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG5hbWVsZW4pLCAobG9uZyBsb25nKShvbGR2KSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG9sZGxlbnApLCAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykobmV3bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbG9jayhhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbG9jayhyZXMsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21sb2NrKHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9jayhhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tdW5sb2NrKHJlcywgYWRkciwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2socmVzLCAobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmRlbGV0ZShwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuZGVsZXRlKChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bmRlbGV0ZShyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VuZGVsZXRlKHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2Z1dGltZXMoZmQsIHRwdHIpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfZnV0aW1lcygobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Z1dGltZXMocmVzLCBmZCwgdHB0cikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZnV0aW1lcyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ2lkKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBnaWQoKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGdpZChyZXMsIHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ2lkKHJlcywgKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWJvb3Qob3B0LCBib290c3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYm9vdCgobG9uZyBsb25nKShvcHQpLCAobG9uZyBsb25nKShib290c3RyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVib290KHJlcywgb3B0LCBib290c3RyKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWJvb3QocmVzLCAobG9uZyBsb25nKShvcHQpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYm9vdHN0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9sbChmZHMsIG5mZHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb2xsKChsb25nIGxvbmcpKGZkcyksIChsb25nIGxvbmcpKG5mZHMpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb2xsKHJlcywgZmRzLCBuZmRzLCB0aW1lb3V0KSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BvbGwocmVzLCAobG9uZyBsb25nKShmZHMpLCAobG9uZyBsb25nKShuZmRzKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWZzc3lzKGlkLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZnNzeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoYTEpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGE0KSwgKGxvbmcgbG9uZykoYTUpLCAobG9uZyBsb25nKShhNikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Fmc3N5cyhyZXMsIGlkLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWZzc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaWQpLCAobG9uZyBsb25nKShhMSksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCBcCiAgICAgIChsb25nIGxvbmcpKGE0KSwgKGxvbmcgbG9uZykoYTUpLCAobG9uZyBsb25nKShhNikpCi8qIHN5c2NhbGwgMjExIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxMyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE0IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxNiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzE0X19fc2VtY3RsKHNlbWlkLCBzZW1udW0sIGNtZCwgYXJnKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTRfX19zZW1jdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNF9fX3NlbWN0bChyZXMsIHNlbWlkLCBzZW1udW0sIGNtZCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE0X19fc2VtY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2VtaWQpLCAobG9uZyBsb25nKShzZW1udW0pLCAobG9uZyBsb25nKShjbWQpLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VtZ2V0KGtleSwgbnNlbXMsIHNlbWZsZykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1nZXQoKGxvbmcgbG9uZykoa2V5KSwgKGxvbmcgbG9uZykobnNlbXMpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2VtZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtZ2V0KHJlcywga2V5LCBuc2Vtcywgc2VtZmxnKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1nZXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShuc2VtcyksIChsb25nIGxvbmcpKHNlbWZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2Vtb3Aoc2VtaWQsIHNvcHMsIG5zb3BzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1vcCgobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNvcHMpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuc29wcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbW9wKHJlcywgc2VtaWQsIHNvcHMsIG5zb3BzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2Vtb3AocmVzLCAobG9uZyBsb25nKShzZW1pZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc29wcyksIChsb25nIGxvbmcpKG5zb3BzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW1jb25maWcoZmxhZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWNvbmZpZygobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtY29uZmlnKHJlcywgZmxhZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1jb25maWcocmVzLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTRfbXNnY3RsKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9tc2djdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNxaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTRfbXNnY3RsKHJlcywgbXNxaWQsIGNtZCwgYnVmKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9tc2djdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2dnZXQoa2V5LCBtc2dmbGcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ2dldCgobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dnZXQocmVzLCBrZXksIG1zZ2ZsZykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ2dldChyZXMsIChsb25nIGxvbmcpKGtleSksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21zZ3NuZChtc3FpZCwgbXNncCwgbXNnc3osIG1zZ2ZsZykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnc25kKChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykobXNncCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1zZ3N6KSwgKGxvbmcgbG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXNnc25kKHJlcywgbXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2dmbGcpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQocmVzLCAobG9uZyBsb25nKShtc3FpZCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobXNncCksIChsb25nIGxvbmcpKG1zZ3N6KSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2dyY3YobXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2d0eXAsIG1zZ2ZsZykgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3JjdigobG9uZyBsb25nKShtc3FpZCksIChsb25nIGxvbmcpKG1zZ3ApLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dzeiksIChsb25nIGxvbmcpKG1zZ3R5cCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dyY3YocmVzLCBtc3FpZCwgbXNncCwgbXNnc3osIG1zZ3R5cCwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnZmxnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ3JjdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykobXNncCksIChsb25nIGxvbmcpKG1zZ3N6KSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2d0eXApLCAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWF0KHNobWlkLCBzaG1hZGRyLCBzaG1mbGcpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htYXQoKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShzaG1hZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htYXQocmVzLCBzaG1pZCwgc2htYWRkciwgc2htZmxnKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKHNobWFkZHIpLCAobG9uZyBsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xNF9zaG1jdGwoc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE0X3NobWN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNF9zaG1jdGwocmVzLCBzaG1pZCwgY21kLCBidWYpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE0X3NobWN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWR0KHNobWFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htZHQoKGxvbmcgbG9uZykoc2htYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NobWR0KHJlcywgc2htYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZHQocmVzLCAobG9uZyBsb25nKShzaG1hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1nZXQoa2V5LCBzaXplLCBzaG1mbGcpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWdldCgobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShzaXplKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaG1nZXQocmVzLCBrZXksIHNpemUsIHNobWZsZykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWdldChyZXMsIChsb25nIGxvbmcpKGtleSksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfZ2V0dGltZShjbG9ja19pZCwgdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXR0aW1lKChsb25nIGxvbmcpKGNsb2NrX2lkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Nsb2NrX2dldHRpbWUocmVzLCBjbG9ja19pZCwgdHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfY2xvY2tfZ2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfc2V0dGltZShjbG9ja19pZCwgdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19zZXR0aW1lKChsb25nIGxvbmcpKGNsb2NrX2lkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Nsb2NrX3NldHRpbWUocmVzLCBjbG9ja19pZCwgdHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfY2xvY2tfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfZ2V0cmVzKGNsb2NrX2lkLCB0cCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfY2xvY2tfZ2V0cmVzKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyX2NyZWF0ZShjbG9ja19pZCwgZXZwLCB0aW1lcmlkKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfY3JlYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKGV2cCksIChsb25nIGxvbmcpKHRpbWVyaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcl9jcmVhdGUocmVzLCBjbG9ja19pZCwgZXZwLCB0aW1lcmlkKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2NyZWF0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZXZwKSwgKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfZGVsZXRlKHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9kZWxldGUoKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2RlbGV0ZShyZXMsIHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZGVsZXRlKHJlcywgKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUodGltZXJpZCwgZmxhZ3MsIHZhbHVlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZhbHVlKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfdGltZXJfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHRpbWVyaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF90aW1lcl9zZXR0aW1lKHJlcywgdGltZXJpZCwgZmxhZ3MsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBvdmFsdWUpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUodGltZXJpZCwgdmFsdWUpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfdGltZXJfZ2V0dGltZSgobG9uZyBsb25nKSh0aW1lcmlkKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF90aW1lcl9nZXR0aW1lKHJlcywgdGltZXJpZCwgdmFsdWUpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksIChsb25nIGxvbmcpKHZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcl9nZXRvdmVycnVuKHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4oKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2dldG92ZXJydW4ocmVzLCB0aW1lcmlkKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0b3ZlcnJ1bihyZXMsIChsb25nIGxvbmcpKHRpbWVyaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9uYW5vc2xlZXAocnF0cCwgcm10cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX25hbm9zbGVlcCgobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX25hbm9zbGVlcChyZXMsIHJxdHAsIHJtdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbmFub3NsZWVwKHJlcywgKGxvbmcgbG9uZykocnF0cCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZkYXRhc3luYyhmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmRhdGFzeW5jKChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmRhdGFzeW5jKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZGF0YXN5bmMocmVzLCAobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWxvY2thbGwoZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tbG9ja2FsbCgobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21sb2NrYWxsKHJlcywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWxvY2thbGwocmVzLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9ja2FsbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrYWxsKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXVubG9ja2FsbChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19zaWd0aW1lZHdhaXQoc2V0LCBpbmZvLCB0aW1lb3V0KSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2V0KSwgKGxvbmcgbG9uZykoaW5mbyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19zaWd0aW1lZHdhaXQocmVzLCBzZXQsIGluZm8sICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdCggICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNldCksIChsb25nIGxvbmcpKGluZm8pLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdxdWV1ZWluZm8ocGlkLCBpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ3F1ZXVlaW5mbygobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lncXVldWVpbmZvKHJlcywgcGlkLCBpbmZvKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdxdWV1ZWluZm8ocmVzLCAobG9uZyBsb25nKShwaWQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW9kY3RsKGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb2RjdGwoKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW9kY3RsKHJlcywgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tb2RjdGwocmVzLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX2luaXQodmFsdWUsIGlkcCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1faW5pdCgobG9uZyBsb25nKSh2YWx1ZSksIChsb25nIGxvbmcpKGlkcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX2luaXQocmVzLCB2YWx1ZSwgaWRwKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1faW5pdChyZXMsIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShpZHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX29wZW4obmFtZSwgb2ZsYWcsIG1vZGUsIHZhbHVlLCBpZHApICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fb3BlbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykob2ZsYWcpLCAobG9uZyBsb25nKShtb2RlKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWx1ZSksIChsb25nIGxvbmcpKGlkcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX29wZW4ocmVzLCBuYW1lLCBvZmxhZywgbW9kZSwgdmFsdWUsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fb3BlbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG9mbGFnKSwgKGxvbmcgbG9uZykobW9kZSksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHZhbHVlKSwgKGxvbmcgbG9uZykoaWRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV91bmxpbmsobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3VubGluaygobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fdW5saW5rKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV91bmxpbmsocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9jbG9zZShpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2Nsb3NlKChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fY2xvc2UocmVzLCBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9jbG9zZShyZXMsIChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9wb3N0KGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3Bvc3QoKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fa3NlbV9wb3N0KHJlcywgaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3Bvc3QocmVzLCAobG9uZyBsb25nKShpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2tzZW1fd2FpdChpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV93YWl0KChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fd2FpdChyZXMsIGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV93YWl0KHJlcywgKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX3RyeXdhaXQoaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdHJ5d2FpdCgobG9uZyBsb25nKShpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX3RyeXdhaXQocmVzLCBpZCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fdHJ5d2FpdChyZXMsIChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9nZXR2YWx1ZShpZCwgdmFsdWUpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2dldHZhbHVlKChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fZ2V0dmFsdWUocmVzLCBpZCwgdmFsdWUpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9nZXR2YWx1ZShyZXMsIChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2tzZW1fZGVzdHJveShpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9kZXN0cm95KChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fZGVzdHJveShyZXMsIGlkKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9kZXN0cm95KHJlcywgKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX3RpbWVkd2FpdChpZCwgYWJzdGltZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdGltZWR3YWl0KChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFic3RpbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fa3NlbV90aW1lZHdhaXQocmVzLCBpZCwgYWJzdGltZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3RpbWVkd2FpdChyZXMsIChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhYnN0aW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9vcGVuKG5hbWUsIG9mbGFnLCBtb2RlLCBhdHRyKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX29wZW4oKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG9mbGFnKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGF0dHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9vcGVuKHJlcywgbmFtZSwgb2ZsYWcsIG1vZGUsIGF0dHIpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4ocmVzLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2ZsYWcpLCAobG9uZyBsb25nKShtb2RlKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXR0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfY2xvc2UobXFkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9jbG9zZSgobG9uZyBsb25nKShtcWRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX2Nsb3NlKHJlcywgbXFkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfY2xvc2UocmVzLCAobG9uZyBsb25nKShtcWRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfdW5saW5rKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV91bmxpbmsoKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX3VubGluayhyZXMsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfdW5saW5rKHJlcywgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfZ2V0YXR0cihtcWRlcywgbXFzdGF0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9nZXRhdHRyKChsb25nIGxvbmcpKG1xZGVzKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1xc3RhdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX2dldGF0dHIocmVzLCBtcWRlcywgbXFzdGF0KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfZ2V0YXR0cihyZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtcXN0YXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX3NldGF0dHIobXFkZXMsIG1xc3RhdCwgb21xc3RhdCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfc2V0YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1xc3RhdCksIChsb25nIGxvbmcpKG9tcXN0YXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9zZXRhdHRyKHJlcywgbXFkZXMsIG1xc3RhdCwgb21xc3RhdCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NldGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXFzdGF0KSwgKGxvbmcgbG9uZykob21xc3RhdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfbm90aWZ5KG1xZGVzLCBub3RpZmljYXRpb24pICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9ub3RpZnkoKGxvbmcgbG9uZykobXFkZXMpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfbm90aWZ5KHJlcywgbXFkZXMsIG5vdGlmaWNhdGlvbikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9ub3RpZnkocmVzLCAobG9uZyBsb25nKShtcWRlcyksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9zZW5kKG1xZGVzLCBtc2dfcHRyLCBtc2dfbGVuLCBtc2dfcHJpbykgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXFkZXMpLCAobG9uZyBsb25nKShtc2dfcHRyKSwgKGxvbmcgbG9uZykobXNnX2xlbiksICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9zZW5kKHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ19wcmlvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfcmVjZWl2ZShtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9yZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfcmVjZWl2ZShyZXMsIG1xZGVzLCBtc2dfcHRyLCBtc2dfbGVuLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfcHJpbykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9yZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9tcV90aW1lZHNlbmQoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX21xX3RpbWVkc2VuZCggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX21xX3RpbWVkc2VuZCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRzZW5kKCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pLCAobG9uZyBsb25nKShhYnNfdGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX21xX3RpbWVkcmVjZWl2ZSggICAgICAgICAgICAgICAgICAgICBcCiAgICBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSwgKGxvbmcgbG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgXAogICAgcmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9tcV90aW1lZHJlY2VpdmUoICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKLyogc3lzY2FsbCAyNjcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDI2OCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjY5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X3JlbmFtZShmcm9tLCB0bykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfcmVuYW1lKChsb25nIGxvbmcpKGZyb20pLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19wb3NpeF9yZW5hbWUocmVzLCBmcm9tLCB0bykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Bvc2l4X3JlbmFtZShyZXMsIChsb25nIGxvbmcpKGZyb20pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3dhcGN0bChjbWQsIGFyZywgbWlzYykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zd2FwY3RsKChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGFyZyksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1pc2MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zd2FwY3RsKHJlcywgY21kLCBhcmcsIG1pc2MpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBjdGwocmVzLCAobG9uZyBsb25nKShjbWQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJnKSwgKGxvbmcgbG9uZykobWlzYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2dldGRlbnRzKGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZ2V0ZGVudHMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfZ2V0ZGVudHMocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21pbmhlcml0KGFkZHIsIGxlbiwgaW5oZXJpdCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWluaGVyaXQoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW5oZXJpdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pbmhlcml0KHJlcywgYWRkciwgbGVuLCBpbmhlcml0KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluaGVyaXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGluaGVyaXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xjaG1vZChwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNobW9kKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNobW9kKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2htb2QocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGNob3duKHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2hvd24oKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNob3duKHJlcywgcGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24ocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfbHV0aW1lcyhwYXRoLCB0cHRyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9sdXRpbWVzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfbHV0aW1lcyhyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9sdXRpbWVzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbXN5bmMxMyhhZGRyLCBsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tc3luYzEzKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tc3luYzEzKHJlcywgYWRkciwgbGVuLCBmbGFncykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zeW5jMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX3N0YXQxMyhwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fc3RhdDEzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX19fc3RhdDEzKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX2ZzdGF0MTMoZmQsIHNiKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fZnN0YXQxMygobG9uZyBsb25nKShmZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9fX2ZzdGF0MTMocmVzLCBmZCwgc2IpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX19fZnN0YXQxMyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX19fbHN0YXQxMyhwYXRoLCB1YikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX19fbHN0YXQxMyhyZXMsIHBhdGgsIHViKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ2FsdHN0YWNrMTQobnNzLCBvc3MpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnYWx0c3RhY2sxNCgobG9uZyBsb25nKShuc3MpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3NpZ2FsdHN0YWNrMTQocmVzLCBuc3MsIG9zcykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lnYWx0c3RhY2sxNChyZXMsIChsb25nIGxvbmcpKG5zcyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdmZvcmsxNCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX192Zm9yazE0KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX192Zm9yazE0KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Zmb3JrMTQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fcG9zaXhfY2hvd24ocGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wb3NpeF9jaG93biggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19wb3NpeF9jaG93bihyZXMsIHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Bvc2l4X2Nob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X2ZjaG93bihmZCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh1aWQpLCAobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3Bvc2l4X2ZjaG93bihyZXMsIGZkLCB1aWQsIGdpZCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfZmNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X2xjaG93bihwYXRoLCB1aWQsIGdpZCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfbGNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9zaXhfbGNob3duKHJlcywgcGF0aCwgdWlkLCBnaWQpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9sY2hvd24oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c2lkKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzaWQoKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c2lkKHJlcywgcGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzaWQocmVzLCAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fY2xvbmUoZmxhZ3MsIHN0YWNrKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9uZSgobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHN0YWNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19jbG9uZShyZXMsIGZsYWdzLCBzdGFjaykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Nsb25lKHJlcywgKGxvbmcgbG9uZykoZmxhZ3MpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHN0YWNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ma3RyYWNlKGZkLCBvcHMsIGZhY3MsIHBpZCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZrdHJhY2UoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShvcHMpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmFjcyksIChsb25nIGxvbmcpKHBpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZrdHJhY2UocmVzLCBmZCwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmt0cmFjZShyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvcHMpLCAobG9uZyBsb25nKShmYWNzKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkdihmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWR2KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaW92cCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCksIChsb25nIGxvbmcpKFBBRCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ByZWFkdihyZXMsIGZkLCBpb3ZwLCBpb3ZjbnQsIFBBRCwgb2Zmc2V0KSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWR2KHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdnApLCAobG9uZyBsb25nKShpb3ZjbnQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHdyaXRldihmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGV2KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaW92cCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCksIChsb25nIGxvbmcpKFBBRCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZXYocmVzLCBmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgKGxvbmcgbG9uZykoaW92Y250KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQoc2lnbnVtLCBuc2EsIG9zYSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTZfX19zaWdhY3Rpb24xNCggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zYSksIChsb25nIGxvbmcpKG9zYSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNl9fX3NpZ2FjdGlvbjE0KHJlcywgc2lnbnVtLCBuc2EsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zYSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnNhKSwgKGxvbmcgbG9uZykob3NhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ3BlbmRpbmcxNChzZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lncGVuZGluZzE0KChsb25nIGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2lncGVuZGluZzE0KHJlcywgc2V0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdwZW5kaW5nMTQocmVzLCAobG9uZyBsb25nKShzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc2lncHJvY21hc2sxNChob3csIHNldCwgb3NldCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdwcm9jbWFzazE0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShob3cpLCAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShvc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zaWdwcm9jbWFzazE0KHJlcywgaG93LCBzZXQsIG9zZXQpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ3Byb2NtYXNrMTQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShob3cpLCAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShvc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ3N1c3BlbmQxNChzZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnc3VzcGVuZDE0KChsb25nIGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2lnc3VzcGVuZDE0KHJlcywgc2V0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdzdXNwZW5kMTQocmVzLCAobG9uZyBsb25nKShzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KHNpZ2NudHhwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE2X19fc2lncmV0dXJuMTQoKGxvbmcgbG9uZykoc2lnY250eHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTZfX19zaWdyZXR1cm4xNChyZXMsIHNpZ2NudHhwKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KHJlcywgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpZ2NudHhwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGN3ZChidWZwLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0Y3dkKChsb25nIGxvbmcpKGJ1ZnApLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGN3ZChyZXMsIGJ1ZnAsIGxlbmd0aCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0Y3dkKHJlcywgKGxvbmcgbG9uZykoYnVmcCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNocm9vdChmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hyb290KChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNocm9vdChyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hyb290KHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9maG9wZW4oZmhwLCBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX2Zob3BlbigobG9uZyBsb25nKShmaHApLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9maG9wZW4ocmVzLCBmaHAsIGZsYWdzKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX2Zob3BlbihyZXMsIChsb25nIGxvbmcpKGZocCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2Zoc3RhdChmaHAsIHNiKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0KChsb25nIGxvbmcpKGZocCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX2Zoc3RhdChyZXMsIGZocCwgc2IpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0KHJlcywgKGxvbmcgbG9uZykoZmhwKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMjBfZmhzdGF0ZnMoZmhwLCBidWYpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcygobG9uZyBsb25nKShmaHApLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMjBfZmhzdGF0ZnMocmVzLCBmaHAsIGJ1ZikgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhyZXMsIChsb25nIGxvbmcpKGZocCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX19fc2VtY3RsMTMoc2VtaWQsIHNlbW51bSwgY21kLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fX19zZW1jdGwxMyggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNlbW51bSksIChsb25nIGxvbmcpKGNtZCksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19fX3NlbWN0bDEzKHJlcywgc2VtaWQsIHNlbW51bSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCwgYXJnKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX19fc2VtY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX21zZ2N0bDEzKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc3FpZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX21zZ2N0bDEzKHJlcywgbXNxaWQsIGNtZCwgYnVmKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobXNxaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX3NobWN0bDEzKHNobWlkLCBjbWQsIGJ1ZikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX3NobWN0bDEzKHJlcywgc2htaWQsIGNtZCwgYnVmKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xjaGZsYWdzKHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNoZmxhZ3MoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNoZmxhZ3MocmVzLCBwYXRoLCBmbGFncykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hmbGFncyhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaXNzZXR1Z2lkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pc3NldHVnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pc3NldHVnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lzc2V0dWdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXRyYWNlKGxhYmVsLCBhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dHJhY2UoKGxvbmcgbG9uZykobGFiZWwpLCAobG9uZyBsb25nKShhZGRyKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXRyYWNlKHJlcywgbGFiZWwsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dHJhY2UocmVzLCAobG9uZyBsb25nKShsYWJlbCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Y29udGV4dCh1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRjb250ZXh0KChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGNvbnRleHQocmVzLCB1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Y29udGV4dChyZXMsIChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Y29udGV4dCh1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRjb250ZXh0KChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGNvbnRleHQocmVzLCB1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Y29udGV4dChyZXMsIChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jcmVhdGUodWNwLCBmbGFncywgbmV3X2x3cCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2NyZWF0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVjcCksIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykobmV3X2x3cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfY3JlYXRlKHJlcywgdWNwLCBmbGFncywgbmV3X2x3cCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodWNwKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShuZXdfbHdwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2V4aXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZXhpdCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZXhpdChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9leGl0KHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3NlbGYoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2VsZigpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3Bfc2VsZihyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zZWxmKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3dhaXQod2FpdF9mb3IsIGRlcGFydGVkKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfd2FpdCgobG9uZyBsb25nKSh3YWl0X2ZvciksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXBhcnRlZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3Bfd2FpdChyZXMsIHdhaXRfZm9yLCBkZXBhcnRlZCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF93YWl0KHJlcywgKGxvbmcgbG9uZykod2FpdF9mb3IpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRlcGFydGVkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3N1c3BlbmQodGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc3VzcGVuZCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3N1c3BlbmQocmVzLCB0YXJnZXQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc3VzcGVuZChyZXMsIChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jb250aW51ZSh0YXJnZXQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2NvbnRpbnVlKChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfY29udGludWUocmVzLCB0YXJnZXQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jb250aW51ZShyZXMsIChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF93YWtldXAodGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3dha2V1cCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3dha2V1cChyZXMsIHRhcmdldCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FrZXVwKHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2dldHByaXZhdGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZ2V0cHJpdmF0ZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZ2V0cHJpdmF0ZShyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9nZXRwcml2YXRlKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3NldHByaXZhdGUocHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0cHJpdmF0ZSgobG9uZyBsb25nKShwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3NldHByaXZhdGUocmVzLCBwdHIpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc2V0cHJpdmF0ZShyZXMsIChsb25nIGxvbmcpKHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9raWxsKHRhcmdldCwgc2lnbm8pICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2tpbGwoKGxvbmcgbG9uZykodGFyZ2V0KSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2lnbm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX2tpbGwocmVzLCB0YXJnZXQsIHNpZ25vKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfa2lsbChyZXMsIChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdubykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9kZXRhY2godGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2RldGFjaCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX2RldGFjaChyZXMsIHRhcmdldCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZGV0YWNoKHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX2x3cF9wYXJrKHRzLCB1bnBhcmssIGhpbnQsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fbHdwX3BhcmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fbHdwX3BhcmsocmVzLCB0cywgdW5wYXJrLCBoaW50LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wYXJraGludCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19sd3BfdW5wYXJrKHRhcmdldCwgaGludCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmsoKGxvbmcgbG9uZykodGFyZ2V0KSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfdW5wYXJrKHJlcywgdGFyZ2V0LCBoaW50KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF91bnBhcmsocmVzLCAobG9uZyBsb25nKSh0YXJnZXQpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF91bnBhcmtfYWxsKHRhcmdldHMsIG50YXJnZXRzLCBoaW50KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3VucGFya19hbGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHRhcmdldHMpLCAobG9uZyBsb25nKShudGFyZ2V0cyksIChsb25nIGxvbmcpKGhpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3VucGFya19hbGwocmVzLCB0YXJnZXRzLCBudGFyZ2V0cywgaGludCkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfdW5wYXJrX2FsbCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHRhcmdldHMpLCAobG9uZyBsb25nKShudGFyZ2V0cyksIChsb25nIGxvbmcpKGhpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19sd3Bfc2V0bmFtZSh0YXJnZXQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9zZXRuYW1lKChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3NldG5hbWUocmVzLCB0YXJnZXQsIG5hbWUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc2V0bmFtZShyZXMsIChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2dldG5hbWUodGFyZ2V0LCBuYW1lLCBsZW4pICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZ2V0bmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodGFyZ2V0KSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZ2V0bmFtZShyZXMsIHRhcmdldCwgbmFtZSwgbGVuKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9nZXRuYW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jdGwoZmVhdHVyZXMsIGFkZHJlc3MpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2N0bCgobG9uZyBsb25nKShmZWF0dXJlcyksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyZXNzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2x3cF9jdGwocmVzLCBmZWF0dXJlcywgYWRkcmVzcykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2N0bChyZXMsIChsb25nIGxvbmcpKGZlYXR1cmVzKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyZXNzKSkKLyogc3lzY2FsbCAzMjYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMyNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzI4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF82MF9zYV9yZWdpc3RlcihuZXd2LCBvbGR2LCBmbGFncywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZm9fb2Zmc2V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykob2xkdiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzdGFja2luZm9fb2Zmc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKHJlcywgbmV3diwgb2xkdiwgZmxhZ3MsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNraW5mb19vZmZzZXQpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2FfcmVnaXN0ZXIoICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykob2xkdiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc3RhY2tpbmZvX29mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3N0YWNrcyhudW0sIHN0YWNrcykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc3RhY2tzKChsb25nIGxvbmcpKG51bSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHN0YWNrcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9zdGFja3MocmVzLCBudW0sIHN0YWNrcykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3N0YWNrcyhyZXMsIChsb25nIGxvbmcpKG51bSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzdGFja3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF82MF9zYV9lbmFibGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9lbmFibGUocmVzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZShyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KGNvbmN1cnJlbmN5KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc2V0Y29uY3VycmVuY3koICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvbmN1cnJlbmN5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KHJlcywgY29uY3VycmVuY3kpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2Ffc2V0Y29uY3VycmVuY3koICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjb25jdXJyZW5jeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3lpZWxkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfeWllbGQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNjBfc2FfeWllbGQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV95aWVsZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3ByZWVtcHQoc2FfaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfcHJlZW1wdCgobG9uZyBsb25nKShzYV9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9wcmVlbXB0KHJlcywgc2FfaWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3ByZWVtcHQocmVzLCAobG9uZyBsb25nKShzYV9pZCkpCi8qIHN5c2NhbGwgMzM2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMzcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMzOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzM5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ2FjdGlvbl9zaWd0cmFtcChzaWdudW0sIG5zYSwgb3NhLCB0cmFtcCwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnYWN0aW9uX3NpZ3RyYW1wKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnNhKSwgKGxvbmcgbG9uZykob3NhKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHJhbXApLCAobG9uZyBsb25nKSh2ZXJzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zaWdhY3Rpb25fc2lndHJhbXAocmVzLCBzaWdudW0sIG5zYSwgb3NhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbXAsIHZlcnMpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ2FjdGlvbl9zaWd0cmFtcCggICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzaWdudW0pLCAobG9uZyBsb25nKShuc2EpLCAobG9uZyBsb25nKShvc2EpLCAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHJhbXApLCAobG9uZyBsb25nKSh2ZXJzKSkKLyogc3lzY2FsbCAzNDEgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDM0MiBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmFzY3RsKGFkZHIsIGxlbiwgb3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yYXNjdGwoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3ApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yYXNjdGwocmVzLCBhZGRyLCBsZW4sIG9wKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jhc2N0bChyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShvcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa3F1ZXVlKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rcXVldWUoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9rcXVldWUocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2txdWV1ZShyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2tldmVudChmZCwgY2hhbmdlbGlzdCwgbmNoYW5nZXMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudGxpc3QsIG5ldmVudHMsIHRpbWVvdXQpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfa2V2ZW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY2hhbmdlbGlzdCksIChsb25nIGxvbmcpKG5jaGFuZ2VzKSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGV2ZW50bGlzdCksIChsb25nIGxvbmcpKG5ldmVudHMpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2tldmVudCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgZmQsIGNoYW5nZWxpc3QsIG5jaGFuZ2VzLCBldmVudGxpc3QsIG5ldmVudHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfa2V2ZW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNoYW5nZWxpc3QpLCAobG9uZyBsb25nKShuY2hhbmdlcyksICAgIFwKICAgICAgKGxvbmcgbG9uZykoZXZlbnRsaXN0KSwgKGxvbmcgbG9uZykobmV2ZW50cyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9zZXRwYXJhbShwaWQsIGxpZCwgcG9saWN5LCBwYXJhbXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX3NldHBhcmFtKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShwb2xpY3kpLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfc2V0cGFyYW0ocmVzLCBwaWQsIGxpZCwgcG9saWN5LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRwYXJhbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHBvbGljeSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9nZXRwYXJhbShwaWQsIGxpZCwgcG9saWN5LCBwYXJhbXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldHBhcmFtKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShwb2xpY3kpLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfZ2V0cGFyYW0ocmVzLCBwaWQsIGxpZCwgcG9saWN5LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRwYXJhbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHBvbGljeSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9zZXRhZmZpbml0eShwaWQsIGxpZCwgc2l6ZSwgY3B1c2V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX3NldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfc2V0YWZmaW5pdHkocmVzLCBwaWQsIGxpZCwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1c2V0KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9nZXRhZmZpbml0eShwaWQsIGxpZCwgc2l6ZSwgY3B1c2V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfZ2V0YWZmaW5pdHkocmVzLCBwaWQsIGxpZCwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1c2V0KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX3lpZWxkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfeWllbGQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF95aWVsZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3lpZWxkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fc2NoZWRfcHJvdGVjdChwcmlvcml0eSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9wcm90ZWN0KChsb25nIGxvbmcpKHByaW9yaXR5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX3NjaGVkX3Byb3RlY3QocmVzLCBwcmlvcml0eSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fc2NoZWRfcHJvdGVjdChyZXMsIChsb25nIGxvbmcpKHByaW9yaXR5KSkKLyogc3lzY2FsbCAzNTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDM1MyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN5bmNfcmFuZ2UoZmQsIGZsYWdzLCBzdGFydCwgbGVuZ3RoKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3luY19yYW5nZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShzdGFydCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzeW5jX3JhbmdlKHJlcywgZmQsIGZsYWdzLCBzdGFydCwgbGVuZ3RoKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN5bmNfcmFuZ2UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHN0YXJ0KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXVpZGdlbihzdG9yZSwgY291bnQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dWlkZ2VuKChsb25nIGxvbmcpKHN0b3JlKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dWlkZ2VuKHJlcywgc3RvcmUsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V1aWRnZW4ocmVzLCAobG9uZyBsb25nKShzdG9yZSksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF85MF9nZXR2ZnNzdGF0KGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2dldHZmc3N0YXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShidWZzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfOTBfZ2V0dmZzc3RhdChyZXMsIGJ1ZiwgYnVmc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9nZXR2ZnNzdGF0KCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX3N0YXR2ZnMxKHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfOTBfc3RhdHZmczEoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9zdGF0dmZzMShyZXMsIHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX3N0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZnN0YXR2ZnMxKGZkLCBidWYsIGZsYWdzKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9mc3RhdHZmczEoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9mc3RhdHZmczEocmVzLCBmZCwgYnVmLCBmbGFncykgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2Zoc3RhdHZmczEoZmhwLCBidWYsIGZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX2Zoc3RhdHZmczEocmVzLCBmaHAsIGJ1ZiwgZmxhZ3MpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cmN0bChwYXRoLCBjbWQsIGZpbGVuYW1lLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShmaWxlbmFtZSksICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJjdGwocmVzLCBwYXRoLCBjbWQsIGZpbGVuYW1lLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWVzcGFjZSwgYXR0cm5hbWUpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cmN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9zZXRfZmlsZShwYXRoLCBhdHRybmFtZXNwYWNlLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leHRhdHRyX3NldF9maWxlKHJlcywgcGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfc2V0X2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRybmFtZSksIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2ZpbGUocGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSwgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfZmlsZShyZXMsIHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2RlbGV0ZV9maWxlKHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfZGVsZXRlX2ZpbGUocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX3NldF9mZChmZCwgYXR0cm5hbWVzcGFjZSwgYXR0cm5hbWUsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBuYnl0ZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfc2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKG5ieXRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfc2V0X2ZkKHJlcywgZmQsIGF0dHJuYW1lc3BhY2UsICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2ZkKGZkLCBhdHRybmFtZXNwYWNlLCBhdHRybmFtZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIG5ieXRlcykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSksICAgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfZmQocmVzLCBmZCwgYXR0cm5hbWVzcGFjZSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSksIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKG5ieXRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9kZWxldGVfZmQoZmQsIGF0dHJuYW1lc3BhY2UsIGF0dHJuYW1lKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX2RlbGV0ZV9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9kZWxldGVfZmQocmVzLCBmZCwgYXR0cm5hbWVzcGFjZSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2RlbGV0ZV9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9zZXRfbGluayhwYXRoLCBhdHRybmFtZXNwYWNlLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leHRhdHRyX3NldF9saW5rKHJlcywgcGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfc2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRybmFtZSksIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2xpbmsocGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSwgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfbGluayhyZXMsIHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2RlbGV0ZV9saW5rKHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfZGVsZXRlX2xpbmsocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfZmQoZmQsIGF0dHJuYW1lc3BhY2UsIGRhdGEsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJ5dGVzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoZGF0YSksICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2ZkKHJlcywgZmQsIGF0dHJuYW1lc3BhY2UsIGRhdGEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ieXRlcykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfZmlsZShwYXRoLCBhdHRybmFtZXNwYWNlLCBkYXRhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2ZpbGUocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgbmJ5dGVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGRhdGEpLCAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfbGluayhwYXRoLCBhdHRybmFtZXNwYWNlLCBkYXRhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2xpbmsocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgbmJ5dGVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGRhdGEpLCAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfcHNlbGVjdChuZCwgaW4sIG91LCBleCwgdHMsIG1hc2spICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wc2VsZWN0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3BzZWxlY3QocmVzLCBuZCwgaW4sIG91LCBleCwgdHMsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfcHNlbGVjdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShuZCksIChsb25nIGxvbmcpKGluKSwgKGxvbmcgbG9uZykob3UpLCAobG9uZyBsb25nKShleCksIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfcG9sbHRzKGZkcywgbmZkcywgdHMsIG1hc2spICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wb2xsdHMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmRzKSwgKGxvbmcgbG9uZykobmZkcyksIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9wb2xsdHMocmVzLCBmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3BvbGx0cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRzKSwgKGxvbmcgbG9uZykobmZkcyksIChsb25nIGxvbmcpKHRzKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAobG9uZyBsb25nKShzaXplKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzZXR4YXR0cihwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzZXR4YXR0cihmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGdldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZ2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xnZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGdldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZnZXR4YXR0cihmZCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmdldHhhdHRyKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mZ2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0eGF0dHIocGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlzdHhhdHRyKHJlcywgcGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xsaXN0eGF0dHIocGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGxpc3R4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sbGlzdHhhdHRyKHJlcywgcGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsaXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmxpc3R4YXR0cihmZCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbGlzdHhhdHRyKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobGlzdCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mbGlzdHhhdHRyKHJlcywgZmQsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZsaXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbW92ZXhhdHRyKHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtb3ZleGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZW1vdmV4YXR0cihyZXMsIHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbW92ZXhhdHRyKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xyZW1vdmV4YXR0cihwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHJlbW92ZXhhdHRyKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9scmVtb3ZleGF0dHIocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mcmVtb3ZleGF0dHIoZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZyZW1vdmV4YXR0cigobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mcmVtb3ZleGF0dHIocmVzLCBmZCwgbmFtZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZyZW1vdmV4YXR0cihyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19zdGF0MzAocGF0aCwgdWIpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX3N0YXQzMChyZXMsIHBhdGgsIHViKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc3RhdDMwKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19mc3RhdDMwKGZkLCBzYikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19mc3RhdDMwKHJlcywgZmQsIHNiKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX2xzdGF0MzAocGF0aCwgdWIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbHN0YXQzMCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX2xzdGF0MzAocmVzLCBwYXRoLCB1YikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbHN0YXQzMChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19nZXRkZW50czMwKGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGRlbnRzMzAoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGRlbnRzMzAocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0ZGVudHMzMCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Bvc2l4X2ZhZHZpc2UoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9zaXhfZmFkdmlzZSgobG9uZyBsb25nKSgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb3NpeF9mYWR2aXNlKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X2ZhZHZpc2UocmVzLCAobG9uZyBsb25nKSgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGZocCwgc2IpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fZmhzdGF0MzAoKGxvbmcgbG9uZykoZmhwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfX19maHN0YXQzMChyZXMsIGZocCwgc2IpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKHJlcywgKGxvbmcgbG9uZykoZmhwKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19udHBfZ2V0dGltZTMwKG50dnApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX250cF9nZXR0aW1lMzAoKGxvbmcgbG9uZykobnR2cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX250cF9nZXR0aW1lMzAocmVzLCBudHZwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChyZXMsICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShudHZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NvY2tldDMwKGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc29ja2V0MzAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zb2NrZXQzMChyZXMsIGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NvY2tldDMwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShkb21haW4pLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykocHJvdG9jb2wpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0ZmgzMChmbmFtZSwgZmhwLCBmaF9zaXplKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRmaDMwKChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykoZmhwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZoX3NpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGZoMzAocmVzLCBmbmFtZSwgZmhwLCBmaF9zaXplKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0ZmgzMCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maG9wZW40MChmaHAsIGZoX3NpemUsIGZsYWdzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zob3BlbjQwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZmhvcGVuNDAocmVzLCBmaHAsIGZoX3NpemUsIGZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19maG9wZW40MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZmhzdGF0dmZzMShmaHAsIGZoX3NpemUsIGJ1ZiwgZmxhZ3MpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfOTBfZmhzdGF0dmZzMShyZXMsIGZocCwgZmhfc2l6ZSwgYnVmLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX19fZmhzdGF0NDAoZmhwLCBmaF9zaXplLCBzYikgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19maHN0YXQ0MCggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX2Zoc3RhdDQwKHJlcywgZmhwLCBmaF9zaXplLCBzYikgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fZmhzdGF0NDAoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9haW9fY2FuY2VsKGZpbGRlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19jYW5jZWwoKGxvbmcgbG9uZykoZmlsZGVzKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2NhbmNlbChyZXMsIGZpbGRlcywgYWlvY2JwKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fY2FuY2VsKHJlcywgKGxvbmcgbG9uZykoZmlsZGVzKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFpb2NicCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWlvX2Vycm9yKGFpb2NicCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fZXJyb3IoKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2Vycm9yKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZXJyb3IocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Fpb19mc3luYyhvcCwgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX2ZzeW5jKChsb25nIGxvbmcpKG9wKSwgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2ZzeW5jKHJlcywgb3AsIGFpb2NicCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZnN5bmMocmVzLCAobG9uZyBsb25nKShvcCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9haW9fcmVhZChhaW9jYnApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19yZWFkKChsb25nIGxvbmcpKGFpb2NicCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Fpb19yZWFkKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWlvX3JlYWQocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Fpb19yZXR1cm4oYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX3JldHVybigobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9haW9fcmV0dXJuKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Fpb19yZXR1cm4ocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9haW9fc3VzcGVuZChsaXN0LCBuZW50LCB0aW1lb3V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2Fpb19zdXNwZW5kKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykobmVudCksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfYWlvX3N1c3BlbmQocmVzLCBsaXN0LCBuZW50LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9haW9fc3VzcGVuZCggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGxpc3QpLCAobG9uZyBsb25nKShuZW50KSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWlvX3dyaXRlKGFpb2NicCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fd3JpdGUoKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX3dyaXRlKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fd3JpdGUocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpb19saXN0aW8obW9kZSwgbGlzdCwgbmVudCwgc2lnKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlvX2xpc3RpbygobG9uZyBsb25nKShtb2RlKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsaXN0KSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuZW50KSwgKGxvbmcgbG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlvX2xpc3RpbyhyZXMsIG1vZGUsIGxpc3QsIG5lbnQsIHNpZykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW9fbGlzdGlvKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKG5lbnQpLCAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2lnKSkKLyogc3lzY2FsbCA0MDcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDQwOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNDA5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21vdW50NTAodHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEsIGRhdGFfbGVuKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbW91bnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKGRhdGFfbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tb3VudDUwKHJlcywgdHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21vdW50NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKGRhdGFfbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcmVtYXAob2xkX2FkZHJlc3MsIG9sZF9zaXplLCBuZXdfYWRkcmVzcywgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3NpemUsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21yZW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykob2xkX2FkZHJlc3MpLCAobG9uZyBsb25nKShvbGRfc2l6ZSksICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmV3X2FkZHJlc3MpLCAobG9uZyBsb25nKShuZXdfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXJlbWFwKHJlcywgb2xkX2FkZHJlc3MsIG9sZF9zaXplLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19hZGRyZXNzLCBuZXdfc2l6ZSwgZmxhZ3MpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcmVtYXAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShvbGRfYWRkcmVzcyksIChsb25nIGxvbmcpKG9sZF9zaXplKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmV3X2FkZHJlc3MpLCAobG9uZyBsb25nKShuZXdfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wc2V0X2NyZWF0ZShwc2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfY3JlYXRlKChsb25nIGxvbmcpKHBzaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wc2V0X2NyZWF0ZShyZXMsIHBzaWQpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfY3JlYXRlKHJlcywgKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHNldF9kZXN0cm95KHBzaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wc2V0X2Rlc3Ryb3koKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BzZXRfZGVzdHJveShyZXMsIHBzaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHNldF9kZXN0cm95KHJlcywgKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHNldF9hc3NpZ24ocHNpZCwgY3B1aWQsIG9wc2lkKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wc2V0X2Fzc2lnbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShjcHVpZCksIChsb25nIGxvbmcpKG9wc2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHNldF9hc3NpZ24ocmVzLCBwc2lkLCBjcHVpZCwgb3BzaWQpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wc2V0X2Fzc2lnbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwc2lkKSwgKGxvbmcgbG9uZykoY3B1aWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX3BzZXRfYmluZChpZHR5cGUsIGZpcnN0X2lkLCBzZWNvbmRfaWQsIHBzaWQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHNpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fcHNldF9iaW5kKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGZpcnN0X2lkKSwgKGxvbmcgbG9uZykoc2Vjb25kX2lkKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19wc2V0X2JpbmQocmVzLCBpZHR5cGUsIGZpcnN0X2lkLCBzZWNvbmRfaWQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNpZCwgb3BzaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3BzZXRfYmluZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaWR0eXBlKSwgKGxvbmcgbG9uZykoZmlyc3RfaWQpLCAobG9uZyBsb25nKShzZWNvbmRfaWQpLCBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19wb3NpeF9mYWR2aXNlNTAoZmQsIFBBRCwgb2Zmc2V0LCBsZW4sICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2aWNlKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3Bvc2l4X2ZhZHZpc2U1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykob2Zmc2V0KSwgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGFkdmljZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9zaXhfZmFkdmlzZTUwKHJlcywgZmQsIFBBRCwgb2Zmc2V0LCBsZW4sICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmljZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9mYWR2aXNlNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShvZmZzZXQpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGFkdmljZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zZWxlY3Q1MChuZCwgaW4sIG91LCBleCwgdHYpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NlbGVjdDUwKChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zZWxlY3Q1MChyZXMsIG5kLCBpbiwgb3UsIGV4LCB0dikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NlbGVjdDUwKHJlcywgKGxvbmcgbG9uZykobmQpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGluKSwgKGxvbmcgbG9uZykob3UpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGV4KSwgKGxvbmcgbG9uZykodHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0dGltZW9mZGF5NTAodHAsIHR6cCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXR0aW1lb2ZkYXk1MCgobG9uZyBsb25nKSh0cCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldHRpbWVvZmRheTUwKHJlcywgdHAsIHR6cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0dGltZW9mZGF5NTAocmVzLCAobG9uZyBsb25nKSh0cCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NldHRpbWVvZmRheTUwKHR2LCB0enApICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0dGltZW9mZGF5NTAoKGxvbmcgbG9uZykodHYpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zZXR0aW1lb2ZkYXk1MChyZXMsIHR2LCB0enApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NldHRpbWVvZmRheTUwKHJlcywgKGxvbmcgbG9uZykodHYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR6cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX191dGltZXM1MChwYXRoLCB0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3V0aW1lczUwKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX191dGltZXM1MChyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3V0aW1lczUwKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWRqdGltZTUwKGRlbHRhLCBvbGRkZWx0YSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hZGp0aW1lNTAoKGxvbmcgbG9uZykoZGVsdGEpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2xkZGVsdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FkanRpbWU1MChyZXMsIGRlbHRhLCBvbGRkZWx0YSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWRqdGltZTUwKHJlcywgKGxvbmcgbG9uZykoZGVsdGEpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9sZGRlbHRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2xmc19zZWd3YWl0NTAoZnNpZHAsIHR2KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbGZzX3NlZ3dhaXQ1MCgobG9uZyBsb25nKShmc2lkcCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fbGZzX3NlZ3dhaXQ1MChyZXMsIGZzaWRwLCB0dikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19sZnNfc2Vnd2FpdDUwKHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Z1dGltZXM1MChmZCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0aW1lczUwKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnV0aW1lczUwKHJlcywgZmQsIHRwdHIpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRpbWVzNTAocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19sdXRpbWVzNTAocGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2x1dGltZXM1MCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fbHV0aW1lczUwKHJlcywgcGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19sdXRpbWVzNTAocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zZXRpdGltZXI1MCh3aGljaCwgaXR2LCBvaXR2KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NldGl0aW1lcjUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykoaXR2KSwgKGxvbmcgbG9uZykob2l0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2V0aXRpbWVyNTAocmVzLCB3aGljaCwgaXR2LCBvaXR2KSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zZXRpdGltZXI1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShpdHYpLCAobG9uZyBsb25nKShvaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGl0aW1lcjUwKHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0aXRpbWVyNTAoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19nZXRpdGltZXI1MChyZXMsIHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGl0aW1lcjUwKHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGl0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19jbG9ja19nZXR0aW1lNTAoY2xvY2tfaWQsIHRwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHRpbWU1MCgobG9uZyBsb25nKShjbG9ja19pZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fY2xvY2tfZ2V0dGltZTUwKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19jbG9ja19nZXR0aW1lNTAocmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fY2xvY2tfc2V0dGltZTUwKGNsb2NrX2lkLCB0cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9ja19zZXR0aW1lNTAoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Nsb2NrX3NldHRpbWU1MChyZXMsIGNsb2NrX2lkLCB0cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfc2V0dGltZTUwKHJlcywgKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Nsb2NrX2dldHJlczUwKGNsb2NrX2lkLCB0cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fY2xvY2tfZ2V0cmVzNTAoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Nsb2NrX2dldHJlczUwKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfZ2V0cmVzNTAocmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbmFub3NsZWVwNTAocnF0cCwgcm10cCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19uYW5vc2xlZXA1MCgobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19uYW5vc2xlZXA1MChyZXMsIHJxdHAsIHJtdHApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX25hbm9zbGVlcDUwKHJlcywgKGxvbmcgbG9uZykocnF0cCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fX19zaWd0aW1lZHdhaXQ1MChzZXQsIGluZm8sIHRpbWVvdXQpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShpbmZvKSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fX19zaWd0aW1lZHdhaXQ1MChyZXMsIHNldCwgaW5mbywgdGltZW91dCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2V0KSwgKGxvbmcgbG9uZykoaW5mbyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbXFfdGltZWRzZW5kNTAobXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tcV90aW1lZHNlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tcV90aW1lZHNlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21xX3RpbWVkc2VuZDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pLCAobG9uZyBsb25nKShhYnNfdGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19tcV90aW1lZHJlY2VpdmU1MChtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfcHJpbywgYWJzX3RpbWVvdXQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21xX3RpbWVkcmVjZWl2ZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSwgKGxvbmcgbG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX21xX3RpbWVkcmVjZWl2ZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXFfdGltZWRyZWNlaXZlNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNjBfX2x3cF9wYXJrKHRzLCB1bnBhcmssIGhpbnQsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9fbHdwX3BhcmsocmVzLCB0cywgdW5wYXJrLCBoaW50LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wYXJraGludCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX19sd3BfcGFyayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fa2V2ZW50NTAoZmQsIGNoYW5nZWxpc3QsIG5jaGFuZ2VzLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRsaXN0LCBuZXZlbnRzLCB0aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19rZXZlbnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNoYW5nZWxpc3QpLCAobG9uZyBsb25nKShuY2hhbmdlcyksICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShldmVudGxpc3QpLCAobG9uZyBsb25nKShuZXZlbnRzKSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fa2V2ZW50NTAocmVzLCBmZCwgY2hhbmdlbGlzdCwgbmNoYW5nZXMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRsaXN0LCBuZXZlbnRzLCB0aW1lb3V0KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19rZXZlbnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShjaGFuZ2VsaXN0KSwgKGxvbmcgbG9uZykobmNoYW5nZXMpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGV2ZW50bGlzdCksIChsb25nIGxvbmcpKG5ldmVudHMpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3BzZWxlY3Q1MChuZCwgaW4sIG91LCBleCwgdHMsIG1hc2spICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcHNlbGVjdDUwKChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcHNlbGVjdDUwKHJlcywgbmQsIGluLCBvdSwgZXgsIHRzLCBtYXNrKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wc2VsZWN0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCBcCiAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19wb2xsdHM1MChmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3BvbGx0czUwKChsb25nIGxvbmcpKGZkcyksIChsb25nIGxvbmcpKG5mZHMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9sbHRzNTAocmVzLCBmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb2xsdHM1MChyZXMsIChsb25nIGxvbmcpKGZkcyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuZmRzKSwgKGxvbmcgbG9uZykodHMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Fpb19zdXNwZW5kNTAobGlzdCwgbmVudCwgdGltZW91dCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWlvX3N1c3BlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKG5lbnQpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19haW9fc3VzcGVuZDUwKHJlcywgbGlzdCwgbmVudCwgdGltZW91dCkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Fpb19zdXNwZW5kNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykobmVudCksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc3RhdDUwKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zdGF0NTAoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zdGF0NTAocmVzLCBwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3N0YXQ1MChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mc3RhdDUwKGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2ZzdGF0NTAoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnN0YXQ1MChyZXMsIGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdDUwKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19sc3RhdDUwKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2xzdGF0NTAoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19sc3RhdDUwKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2xzdGF0NTAocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fX19zZW1jdGw1MChzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fX3NlbWN0bDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNlbW51bSksIChsb25nIGxvbmcpKGNtZCksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX19fc2VtY3RsNTAocmVzLCBzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX19zZW1jdGw1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc2htY3RsNTAoc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaG1jdGw1MCgobG9uZyBsb25nKShzaG1pZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3NobWN0bDUwKHJlcywgc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2htY3RsNTAocmVzLCAobG9uZyBsb25nKShzaG1pZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21zZ2N0bDUwKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbXNnY3RsNTAoKGxvbmcgbG9uZykobXNxaWQpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tc2djdGw1MChyZXMsIG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zZ2N0bDUwKHJlcywgKGxvbmcgbG9uZykobXNxaWQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19nZXRydXNhZ2U1MCh3aG8sIHJ1c2FnZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHJ1c2FnZTUwKChsb25nIGxvbmcpKHdobyksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJ1c2FnZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZ2V0cnVzYWdlNTAocmVzLCB3aG8sIHJ1c2FnZSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRydXNhZ2U1MChyZXMsIChsb25nIGxvbmcpKHdobyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdGltZXJfc2V0dGltZTUwKHRpbWVyaWQsIGZsYWdzLCB2YWx1ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92YWx1ZSkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9zZXR0aW1lNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh0aW1lcmlkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvdmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3RpbWVyX3NldHRpbWU1MChyZXMsIHRpbWVyaWQsIGZsYWdzLCB2YWx1ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmFsdWUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdGltZXJfc2V0dGltZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHRpbWVyaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgXAogICAgICAobG9uZyBsb25nKShvdmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdGltZXJfZ2V0dGltZTUwKHRpbWVyaWQsIHZhbHVlKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9nZXR0aW1lNTAoKGxvbmcgbG9uZykodGltZXJpZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3RpbWVyX2dldHRpbWU1MChyZXMsIHRpbWVyaWQsIHZhbHVlKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdGltZXJfZ2V0dGltZTUwKHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSkKI2lmIGRlZmluZWQoTlRQKSB8fCAhZGVmaW5lZChfS0VSTkVMX09QVCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX250cF9nZXR0aW1lNTAobnR2cCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbnRwX2dldHRpbWU1MCgobG9uZyBsb25nKShudHZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19udHBfZ2V0dGltZTUwKHJlcywgbnR2cCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX250cF9nZXR0aW1lNTAocmVzLCAobG9uZyBsb25nKShudHZwKSkKI2Vsc2UKLyogc3lzY2FsbCA0NDggaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3dhaXQ0NTAocGlkLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fd2FpdDQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc3RhdHVzKSwgKGxvbmcgbG9uZykob3B0aW9ucyksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX193YWl0NDUwKHJlcywgcGlkLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSkgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3dhaXQ0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAobG9uZyBsb25nKShvcHRpb25zKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21rbm9kNTAocGF0aCwgbW9kZSwgZGV2KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbWtub2Q1MCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX21rbm9kNTAocmVzLCBwYXRoLCBtb2RlLCBkZXYpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbWtub2Q1MChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Zoc3RhdDUwKGZocCwgZmhfc2l6ZSwgc2IpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZmhzdGF0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXQ1MChyZXMsIGZocCwgZmhfc2l6ZSwgc2IpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Zoc3RhdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShmaF9zaXplKSwgKGxvbmcgbG9uZykoc2IpKQovKiBzeXNjYWxsIDQ1MiBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGlwZTIoZmlsZGVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlMigobG9uZyBsb25nKShmaWxkZXMpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BpcGUyKHJlcywgZmlsZGVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGlwZTIocmVzLCAobG9uZyBsb25nKShmaWxkZXMpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2R1cDMoZnJvbSwgdG8sIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwMygobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG8pLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cDMocmVzLCBmcm9tLCB0bywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMyhyZXMsIChsb25nIGxvbmcpKGZyb20pLCAobG9uZyBsb25nKSh0byksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa3F1ZXVlMShmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rcXVldWUxKChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa3F1ZXVlMShyZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rcXVldWUxKHJlcywgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BhY2NlcHQocywgbmFtZSwgYW5hbWVsZW4sIG1hc2ssIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGFjY2VwdCgobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhbmFtZWxlbiksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4sIG1hc2ssIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BhY2NlcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykoYW5hbWVsZW4pLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtYXNrKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpbmthdChmZDEsIG5hbWUxLCBmZDIsIG5hbWUyLCBmbGFncykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlua2F0KChsb25nIGxvbmcpKGZkMSksIChsb25nIGxvbmcpKG5hbWUxKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZkMiksIChsb25nIGxvbmcpKG5hbWUyKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlua2F0KHJlcywgZmQxLCBuYW1lMSwgZmQyLCBuYW1lMiwgZmxhZ3MpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW5rYXQocmVzLCAobG9uZyBsb25nKShmZDEpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZTEpLCAobG9uZyBsb25nKShmZDIpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZTIpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVuYW1lYXQoZnJvbWZkLCBmcm9tLCB0b2ZkLCB0bykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWVhdCgobG9uZyBsb25nKShmcm9tZmQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG9mZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlbmFtZWF0KHJlcywgZnJvbWZkLCBmcm9tLCB0b2ZkLCB0bykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQocmVzLCAobG9uZyBsb25nKShmcm9tZmQpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvZmQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rZmlmb2F0KGZkLCBwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtmaWZvYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZmlmb2F0KHJlcywgZmQsIHBhdGgsIG1vZGUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rbm9kYXQoZmQsIHBhdGgsIG1vZGUsIFBBRCwgZGV2KSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtub2RhdCgobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta25vZGF0KHJlcywgZmQsIHBhdGgsIG1vZGUsIFBBRCwgZGV2KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rbm9kYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG1vZGUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2RpcmF0KGZkLCBwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZGlyYXQocmVzLCBmZCwgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmFjY2Vzc2F0KGZkLCBwYXRoLCBhbW9kZSwgZmxhZykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mYWNjZXNzYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYW1vZGUpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZhY2Nlc3NhdChyZXMsIGZkLCBwYXRoLCBhbW9kZSwgZmxhZykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFjY2Vzc2F0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYW1vZGUpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG1vZGF0KGZkLCBwYXRoLCBtb2RlLCBmbGFnKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2htb2RhdChyZXMsIGZkLCBwYXRoLCBtb2RlLCBmbGFnKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG1vZGF0KHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bmF0KGZkLCBwYXRoLCBvd25lciwgZ3JvdXAsIGZsYWcpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3duZXIpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ3JvdXApLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNob3duYXQocmVzLCBmZCwgcGF0aCwgb3duZXIsIGdyb3VwLCBmbGFnKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd25hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShvd25lciksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZ3JvdXApLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZXhlY3ZlKGZkLCBhcmdwLCBlbnZwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZleGVjdmUoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhcmdwKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZW52cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZleGVjdmUocmVzLCBmZCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmV4ZWN2ZShyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhcmdwKSwgKGxvbmcgbG9uZykoZW52cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXRhdChmZCwgcGF0aCwgYnVmLCBmbGFnKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGF0KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdGF0KHJlcywgZmQsIHBhdGgsIGJ1ZiwgZmxhZykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0YXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXRpbWVuc2F0KGZkLCBwYXRoLCB0cHRyLCBmbGFnKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZW5zYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0ciksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dGltZW5zYXQocmVzLCBmZCwgcGF0aCwgdHB0ciwgZmxhZykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lbnNhdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHRwdHIpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuYXQoZmQsIHBhdGgsIG9mbGFncywgbW9kZSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5hdCgobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmxhZ3MpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb3BlbmF0KHJlcywgZmQsIHBhdGgsIG9mbGFncywgbW9kZSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG9mbGFncyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZGxpbmthdChmZCwgcGF0aCwgYnVmLCBidWZzaXplKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGlua2F0KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZnNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkbGlua2F0KHJlcywgZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rYXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWZzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW1saW5rYXQocGF0aDEsIGZkLCBwYXRoMikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdCgobG9uZyBsb25nKShwYXRoMSksIChsb25nIGxvbmcpKGZkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXRoMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bWxpbmthdChyZXMsIHBhdGgxLCBmZCwgcGF0aDIpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGlua2F0KHJlcywgKGxvbmcgbG9uZykocGF0aDEpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aDIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VubGlua2F0KGZkLCBwYXRoLCBmbGFnKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5saW5rYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VubGlua2F0KHJlcywgZmQsIHBhdGgsIGZsYWcpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z1dGltZW5zKGZkLCB0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnV0aW1lbnMoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnV0aW1lbnMocmVzLCBmZCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdXRpbWVucyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3F1b3RhY3RsKHBhdGgsIGFyZ3MpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcXVvdGFjdGwoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGFyZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3F1b3RhY3RsKHJlcywgcGF0aCwgYXJncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcXVvdGFjdGwocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9zaXhfc3Bhd24ocGlkLCBwYXRoLCBmaWxlX2FjdGlvbnMsIGF0dHJwLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndiwgZW52cCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9zcGF3biggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmaWxlX2FjdGlvbnMpLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJwKSwgKGxvbmcgbG9uZykoYXJndiksIChsb25nIGxvbmcpKGVudnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb3NpeF9zcGF3bihyZXMsIHBpZCwgcGF0aCwgZmlsZV9hY3Rpb25zLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycCwgYXJndiwgZW52cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X3NwYXduKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmaWxlX2FjdGlvbnMpLCAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRycCksIChsb25nIGxvbmcpKGFyZ3YpLCAobG9uZyBsb25nKShlbnZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2bW1zZyhzLCBtbXNnLCB2bGVuLCBmbGFncywgdGltZW91dCkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtbXNnKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZsZW4pLCAobG9uZyBsb25nKShmbGFncyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWN2bW1zZyhyZXMsIHMsIG1tc2csIHZsZW4sIGZsYWdzLCB0aW1lb3V0KSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3ZtbXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtbXNnKSwgKGxvbmcgbG9uZykodmxlbiksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRtbXNnKHMsIG1tc2csIHZsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2coKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1tc2cpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1tc2cocmVzLCBzLCBtbXNnLCB2bGVuLCBmbGFncykgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbW1zZyhyZXMsIChsb25nIGxvbmcpKHMpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtbXNnKSwgKGxvbmcgbG9uZykodmxlbiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfbmFub3NsZWVwKGNsb2NrX2lkLCBmbGFncywgcnF0cCwgcm10cCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19uYW5vc2xlZXAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19uYW5vc2xlZXAocmVzLCBjbG9ja19pZCwgZmxhZ3MsIHJxdHAsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm10cCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX25hbm9zbGVlcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShycXRwKSwgICAgICAgXAogICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX19sd3BfcGFyazYwKGNsb2NrX2lkLCBmbGFncywgdHMsIHVucGFyaywgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQsIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fX2x3cF9wYXJrNjAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHRzKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJrKSwgKGxvbmcgbG9uZykoaGludCksIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX19sd3BfcGFyazYwKHJlcywgY2xvY2tfaWQsIGZsYWdzLCB0cywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFyaywgaGludCwgdW5wYXJraGludCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX2x3cF9wYXJrNjAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKSh0cyksICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9zaXhfZmFsbG9jYXRlKGZkLCBQQUQsIHBvcywgbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9mYWxsb2NhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcG9zaXhfZmFsbG9jYXRlKHJlcywgZmQsIFBBRCwgcG9zLCBsZW4pICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wb3NpeF9mYWxsb2NhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKHBvcyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZGlzY2FyZChmZCwgUEFELCBwb3MsIGxlbikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZkaXNjYXJkKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBvcyksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZkaXNjYXJkKHJlcywgZmQsIFBBRCwgcG9zLCBsZW4pICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmRpc2NhcmQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV93YWl0NihpZHR5cGUsIGlkLCBzdGF0dXMsIG9wdGlvbnMsIHdydSwgaW5mbykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXQ2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoaWR0eXBlKSwgKGxvbmcgbG9uZykoaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykob3B0aW9ucyksIChsb25nIGxvbmcpKHdydSksIChsb25nIGxvbmcpKGluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93YWl0NihyZXMsIGlkdHlwZSwgaWQsIHN0YXR1cywgb3B0aW9ucywgd3J1LCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXQ2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoc3RhdHVzKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvcHRpb25zKSwgKGxvbmcgbG9uZykod3J1KSwgKGxvbmcgbG9uZykoaW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfZ2V0Y3B1Y2xvY2tpZDIoaWR0eXBlLCBpZCwgY2xvY2tfaWQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19nZXRjcHVjbG9ja2lkMiggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoY2xvY2tfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19nZXRjcHVjbG9ja2lkMihyZXMsIGlkdHlwZSwgaWQsICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9ja19pZCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoY2xvY2tfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0dmZzc3RhdDkwKGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXR2ZnNzdGF0OTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShidWZzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldHZmc3N0YXQ5MChyZXMsIGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0dmZzc3RhdDkwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zdGF0dmZzMTkwKHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N0YXR2ZnMxOTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3RhdHZmczE5MChyZXMsIHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zdGF0dmZzMTkwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2ZzdGF0dmZzMTkwKGZkLCBidWYsIGZsYWdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnN0YXR2ZnMxOTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnN0YXR2ZnMxOTAocmVzLCBmZCwgYnVmLCBmbGFncykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maHN0YXR2ZnMxOTAoZmhwLCBmaF9zaXplLCBidWYsIGZsYWdzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zoc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXR2ZnMxOTAocmVzLCBmaHAsIGZoX3NpemUsIGJ1ZiwgZmxhZ3MpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Zoc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShmaF9zaXplKSwgKGxvbmcgbG9uZykoYnVmKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2dldF9saW5rKHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9nZXRfbGluayhyZXMsIHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfc2V0X2xpbmsocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX3NldF9saW5rKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9kZWxldGVfbGluayhwYXRoLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2RlbGV0ZV9saW5rKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfbGluayhyZXMsIHBhdGgsIHR5cGUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9saW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2FjbGNoZWNrX2xpbmsocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9hY2xjaGVja19saW5rKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2FjbGNoZWNrX2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfZ2V0X2ZpbGUocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9nZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX2dldF9maWxlKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZ2V0X2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9zZXRfZmlsZShwYXRoLCB0eXBlLCBhY2xwKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX3NldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19hY2xfc2V0X2ZpbGUocmVzLCBwYXRoLCB0eXBlLCBhY2xwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9zZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2dldF9mZChmaWxlZGVzLCB0eXBlLCBhY2xwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmaWxlZGVzKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9nZXRfZmQocmVzLCBmaWxlZGVzLCB0eXBlLCBhY2xwKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfc2V0X2ZkKGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX3NldF9mZChyZXMsIGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmlsZWRlcyksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9kZWxldGVfZmlsZShwYXRoLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2RlbGV0ZV9maWxlKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfZmlsZShyZXMsIHBhdGgsIHR5cGUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9maWxlKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2RlbGV0ZV9mZChmaWxlZGVzLCB0eXBlKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZGVsZXRlX2ZkKChsb25nIGxvbmcpKGZpbGVkZXMpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfZmQocmVzLCBmaWxlZGVzLCB0eXBlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9mZChyZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0eXBlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9hY2xjaGVja19maWxlKHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2FjbGNoZWNrX2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19hY2xfYWNsY2hlY2tfZmlsZShyZXMsIHBhdGgsIHR5cGUsIGFjbHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2FjbGNoZWNrX2ZkKGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmaWxlZGVzKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9hY2xjaGVja19mZChyZXMsIGZpbGVkZXMsIHR5cGUsIGFjbHApICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2FjbGNoZWNrX2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHBhdGhjb25mKHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9scGF0aGNvbmYoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9scGF0aGNvbmYocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xwYXRoY29uZihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKCi8qIENvbXBhdCB3aXRoIG9sZGVyIHJlbGVhc2VzICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dmZzc3RhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX2dldHZmc3N0YXQKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0dmZzc3RhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzkwX2dldHZmc3N0YXQKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3RhdHZmczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX3N0YXR2ZnMxCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N0YXR2ZnMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9zdGF0dmZzMQoKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mc3RhdHZmczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZnN0YXR2ZnMxCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzdGF0dmZzMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9mc3RhdHZmczEKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maHN0YXR2ZnMxNDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX2Zoc3RhdHZmczEKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXR2ZnMxNDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzkwX2Zoc3RhdHZmczEKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgovLyBQcml2YXRlIGRlY2xhcmF0aW9ucy4gRG8gbm90IGNhbGwgZGlyZWN0bHkgZnJvbSB1c2VyIGNvZGUuIFVzZSBtYWNyb3MgYWJvdmUuCgovLyBETyBOT1QgRURJVCEgVEhJUyBGSUxFIEhBUyBCRUVOIEdFTkVSQVRFRCEKCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNjYWxsKGxvbmcgbG9uZyBjb2RlLCBsb25nIGxvbmcgYXJnMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzEsIGxvbmcgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMywgbG9uZyBsb25nIGFyZzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmc1LCBsb25nIGxvbmcgYXJnNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5c2NhbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMCwgbG9uZyBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMiwgbG9uZyBsb25nIGFyZzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNCwgbG9uZyBsb25nIGFyZzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNiwgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXhpdChsb25nIGxvbmcgcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXhpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZvcmsobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBuYnl0ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3Blbihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3Blbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UobG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9zZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3dhaXQ0KGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfd2FpdDQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29jcmVhdChsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vY3JlYXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpbmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGluayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmsobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7Ci8qIHN5c2NhbGwgMTEgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hkaXIobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NoZGlyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaGRpcihsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGRpcihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX21rbm9kKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9ta25vZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2htb2QobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaG1vZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1aWQsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYnJlYWsobG9uZyBsb25nIG5zaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9icmVhayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbnNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzIwX2dldGZzc3RhdChsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZ2V0ZnNzdGF0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29sc2Vlayhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vbHNlZWsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGlkKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBpZChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80MF9tb3VudChsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80MF9tb3VudChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5tb3VudChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bm1vdW50KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHVpZChsb25nIGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR1aWQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZXVpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHRyYWNlKGxvbmcgbG9uZyByZXEsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wdHJhY2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCwgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Ztc2cobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2csIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbXNnKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRtc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdmZyb20obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnJvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdmZyb20obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhbmFtZWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXB0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGFuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBlZXJuYW1lKGxvbmcgbG9uZyBmZGVzLCBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBlZXJuYW1lKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tuYW1lKGxvbmcgbG9uZyBmZGVzLCBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tuYW1lKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2Vzcyhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2Nlc3MobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaGZsYWdzKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NoZmxhZ3MobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZmxhZ3MobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGZsYWdzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luYyh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW5jKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa2lsbChsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19zdGF0NDMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX3N0YXQ0Myhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHBpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcGlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX2xzdGF0NDMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19sc3RhdDQzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cChsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGlwZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9waXBlKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZWdpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvZmlsKGxvbmcgbG9uZyBzYW1wbGVzLCBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgc2NhbGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Byb2ZpbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUsIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzY2FsZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rdHJhY2UobG9uZyBsb25nIGZuYW1lLCBsb25nIGxvbmcgb3BzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmYWNzLCBsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rdHJhY2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzLCBsb25nIGxvbmcgZmFjcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnYWN0aW9uMTMobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc2EpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdhY3Rpb24xMyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRnaWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMyhsb25nIGxvbmcgaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdwcm9jbWFzazEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGhvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGxvZ2luKGxvbmcgbG9uZyBuYW1lYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRsb2dpbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmFtZWJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0bG9naW4obG9uZyBsb25nIG5hbWVidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2V0bG9naW4obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWVidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjdChsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdwZW5kaW5nMTMobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnYWx0c3RhY2sxMyhsb25nIGxvbmcgbnNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ2FsdHN0YWNrMTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9jdGwobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY29tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY29tLCBsb25nIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChsb25nIGxvbmcgb3B0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmV2b2tlKGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZXZva2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3ltbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpbmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bWxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGluayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4ZWN2ZShsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGFyZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVudnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4ZWN2ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZ3AsIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VtYXNrKGxvbmcgbG9uZyBuZXdtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bWFzayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmV3bWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaHJvb3QobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nocm9vdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfZnN0YXQ0Myhsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBzYik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX2ZzdGF0NDMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0a2VybmluZm8obG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hlcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGtlcm5pbmZvKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hlcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRwYWdlc2l6ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX21zeW5jKGxvbmcgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9tc3luYyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92Zm9yayh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92Zm9yayhsb25nIGxvbmcgcmVzKTsKLyogc3lzY2FsbCA2NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNjggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDY5IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb21tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29tbWFwKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBwcm90LAogICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwb3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmFkdmlzZShsb25nIGxvbmcgYW5vbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdmFkdmlzZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYW5vbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bm1hcChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcHJvdGVjdChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcHJvdGVjdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgcHJvdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tYWR2aXNlKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmVoYXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21hZHZpc2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgYmVoYXYpOwovKiBzeXNjYWxsIDc2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3NyBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmVjKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taW5jb3JlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIHZlYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRncm91cHMobG9uZyBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZHNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWRzZXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdyb3Vwcyhsb25nIGxvbmcgZ2lkc2V0c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWRzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdycCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ3JwKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cGdpZChsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgcGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3NldGl0aW1lcihsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpdHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfc2V0aXRpbWVyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX293YWl0KHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vd2FpdChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9vc3dhcG9uKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3N3YXBvbihsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRpdGltZXIobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0aXRpbWVyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0aG9zdG5hbWUobG9uZyBsb25nIGhvc3RuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGhvc3RuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2V0aG9zdG5hbWUobG9uZyBsb25nIGhvc3RuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGR0YWJsZXNpemUobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAyKGxvbmcgbG9uZyBmcm9tLCBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cDIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmFuZG9tKGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBidWZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyYW5kb20obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZmxlbiwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjbnRsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLCBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZWxlY3QobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZWxlY3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluLCBsb25nIGxvbmcgb3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0dik7Ci8qIHN5c2NhbGwgOTQgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMobG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3luYyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cHJpb3JpdHkobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHByaW9yaXR5KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hvLCBsb25nIGxvbmcgcHJpbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfc29ja2V0KGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHJvdG9jb2wpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9zb2NrZXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb25uZWN0KGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nvbm5lY3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29hY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2FjY2VwdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYW5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHJpb3JpdHkobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgd2hvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcmlvcml0eShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdobyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NlbmQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2VuZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcmVjdihsb25nIGxvbmcgcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29yZWN2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ3JldHVybjEzKGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ3JldHVybjEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iaW5kKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JpbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c29ja29wdChsb25nIGxvbmcgcywgbG9uZyBsb25nIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNvY2tvcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGV2ZWwsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbCwgbG9uZyBsb25nIHZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlzdGVuKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgYmFja2xvZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdGVuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmFja2xvZyk7Ci8qIHN5c2NhbGwgMTA3IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2lndmVjKGxvbmcgbG9uZyBzaWdudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnN2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zdik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWd2ZWMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zdik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ2Jsb2NrKGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NpZ2Jsb2NrKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3NldG1hc2sobG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc2V0bWFzayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3N0YWNrKGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc3RhY2sobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyhsb25nIGxvbmcgcywgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2VuZG1zZyhsb25nIGxvbmcgcywgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2VuZG1zZyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKLyogc3lzY2FsbCAxMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHRpbWVvZmRheShsb25nIGxvbmcgdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHJ1c2FnZShsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0cnVzYWdlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJ1c2FnZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tvcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGV2ZWwsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7Ci8qIHN5c2NhbGwgMTE5IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWR2KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGlvdnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92Y250KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdnAsIGxvbmcgbG9uZyBpb3ZjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGV2KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGlvdnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdmNudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd3JpdGV2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdnAsIGxvbmcgbG9uZyBpb3ZjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3NldHRpbWVvZmRheShsb25nIGxvbmcgdHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZXR0aW1lb2ZkYXkobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG1vZChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3JlY3Zmcm9tKAogICAgbG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIGZyb20sCiAgICBsb25nIGxvbmcgZnJvbWxlbmFkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdmZyb20oCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIGZsYWdzLAogICAgbG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZChsb25nIGxvbmcgcnVpZCwgbG9uZyBsb25nIGV1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBydWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlZ2lkKGxvbmcgbG9uZyByZ2lkLCBsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJnaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVuYW1lKGxvbmcgbG9uZyBmcm9tLCBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbmFtZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZnJvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2Z0cnVuY2F0ZShsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2Z0cnVuY2F0ZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zsb2NrKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGhvdyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmxvY2sobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtmaWZvKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kdG8obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0bywgbG9uZyBsb25nIHRvbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kdG8obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdG9sZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2h1dGRvd24obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NodXRkb3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0cGFpcihsb25nIGxvbmcgZG9tYWluLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3RvY29sLCBsb25nIGxvbmcgcnN2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXRwYWlyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyByc3YpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXIobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta2Rpcihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ybWRpcihsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcm1kaXIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3V0aW1lcyhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF91dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwovKiBzeXNjYWxsIDEzOSBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfYWRqdGltZShsb25nIGxvbmcgZGVsdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9hZGp0aW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRlbHRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRkZWx0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldHBlZXJuYW1lKGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RpZChsb25nIGxvbmcgaG9zdGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RpZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3N0aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19va2lsbHBnKGxvbmcgbG9uZyBwZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZ251bSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29raWxscGcobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGdpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHNpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzaWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfcXVvdGFjdGwobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9xdW90YWN0bCgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgY21kLCBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcXVvdGEodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29xdW90YShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0c29ja25hbWUobG9uZyBsb25nIGZkZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHNvY2tuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmRlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWxlbik7Ci8qIHN5c2NhbGwgMTUxIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE1MyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTU0IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25mc3N2Yyhsb25nIGxvbmcgZmxhZywgbG9uZyBsb25nIGFyZ3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25mc3N2Yyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZ3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRkaXJlbnRyaWVzKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmFzZXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJhc2VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9zdGF0ZnMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9zdGF0ZnMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKLyogc3lzY2FsbCAxNTkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE2MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZ2V0ZmgobG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRmaChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKGxvbmcgbG9uZyBkb21haW5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8wOV9vZ2V0ZG9tYWlubmFtZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW5uYW1lLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZShsb25nIGxvbmcgZG9tYWlubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb3NldGRvbWFpbm5hbWUoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZG9tYWlubmFtZSwgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMDlfb3VuYW1lKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb3VuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNhcmNoKGxvbmcgbG9uZyBvcCwgbG9uZyBsb25nIHBhcm1zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNhcmNoKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXJtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4KGxvbmcgbG9uZyB1YWRkciwgbG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsLCBsb25nIGxvbmcgdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVhZGRyMiwgbG9uZyBsb25nIHZhbDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWwzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcCwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0LCBsb25nIGxvbmcgdWFkZHIyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbDIsIGxvbmcgbG9uZyB2YWwzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KGxvbmcgbG9uZyBoZWFkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRleF9zZXRfcm9idXN0X2xpc3QobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfZ2V0X3JvYnVzdF9saXN0KGxvbmcgbG9uZyBsd3BpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoZWFkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5wKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsd3BpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGVhZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbnApOwojaWYgIWRlZmluZWQoX0xQNjQpCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTBfb3NlbXN5cyhsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTIsIGxvbmcgbG9uZyBhMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNCwgbG9uZyBsb25nIGE1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTBfb3NlbXN5cyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTIsIGxvbmcgbG9uZyBhMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE1KTsKI2Vsc2UKLyogc3lzY2FsbCAxNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29tc2dzeXMobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQsIGxvbmcgbG9uZyBhNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEwX29tc2dzeXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE0LCBsb25nIGxvbmcgYTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE2KTsKI2Vsc2UKLyogc3lzY2FsbCAxNzAgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29zaG1zeXMobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMF9vc2htc3lzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhMiwgbG9uZyBsb25nIGEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNCk7CiNlbHNlCi8qIHN5c2NhbGwgMTcxIGhhcyBiZWVuIHNraXBwZWQgKi8KI2VuZGlmCi8qIHN5c2NhbGwgMTcyIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3ByZWFkKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZSwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIG9mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGUobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZSwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX250cF9nZXR0aW1lKGxvbmcgbG9uZyBudHZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfbnRwX2dldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwojaWYgZGVmaW5lZChOVFApIHx8ICFkZWZpbmVkKF9LRVJORUxfT1BUKQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbnRwX2FkanRpbWUobG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9udHBfYWRqdGltZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdHApOwojZWxzZQovKiBzeXNjYWxsIDE3NiBoYXMgYmVlbiBza2lwcGVkICovCiNlbmRpZgovKiBzeXNjYWxsIDE3NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTc4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNzkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE4MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQobG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZWdpZChsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZWdpZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRldWlkKGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRldWlkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xmc19ibWFwdihsb25nIGxvbmcgZnNpZHAsIGxvbmcgbG9uZyBibGtpb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2NudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX2JtYXB2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2lvdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2NudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZnNfbWFya3YobG9uZyBsb25nIGZzaWRwLCBsb25nIGxvbmcgYmxraW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xmc19tYXJrdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtpb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX3NlZ2NsZWFuKGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VnbWVudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX3NlZ2NsZWFuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlZ21lbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2xmc19zZWd3YWl0KGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9sZnNfc2Vnd2FpdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfc3RhdDEyKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9zdGF0MTIobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9mc3RhdDEyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfZnN0YXQxMihsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2xzdGF0MTIobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9sc3RhdDEyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhdGhjb25mKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF0aGNvbmYobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnBhdGhjb25mKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZwYXRoY29uZihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tvcHQyKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja29wdDIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxldmVsLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRybGltaXQobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRybGltaXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdChsb25nIGxvbmcgd2hpY2gsIGxvbmcgbG9uZyBybHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJsaW1pdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2dldGRpcmVudHJpZXMobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBiYXNlcCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEyX2dldGRpcmVudHJpZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJhc2VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90LCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW1hcChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgcG9zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc3lzY2FsbChsb25nIGxvbmcgY29kZSwgbG9uZyBsb25nIGFyZzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzEsIGxvbmcgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmczLCBsb25nIGxvbmcgYXJnNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNSwgbG9uZyBsb25nIGFyZzYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc3lzY2FsbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzAsIGxvbmcgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMiwgbG9uZyBsb25nIGFyZzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmc0LCBsb25nIGxvbmcgYXJnNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzYsIGxvbmcgbG9uZyBhcmc3KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xzZWVrKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZWVrKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdHJ1bmNhdGUobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90cnVuY2F0ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Z0cnVuY2F0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N5c2N0bChsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkdiwgbG9uZyBsb25nIG9sZGxlbnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV3diwgbG9uZyBsb25nIG5ld2xlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4sIGxvbmcgbG9uZyBvbGR2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRsZW5wLCBsb25nIGxvbmcgbmV3diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV3bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9jayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bmxvY2sobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2sobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuZGVsZXRlKGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmRlbGV0ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfZnV0aW1lcyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Z1dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdpZChsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVib290KGxvbmcgbG9uZyBvcHQsIGxvbmcgbG9uZyBib290c3RyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWJvb3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJvb3RzdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9sbChsb25nIGxvbmcgZmRzLCBsb25nIGxvbmcgbmZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BvbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZmRzLCBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZnNzeXMobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgYTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE0LCBsb25nIGxvbmcgYTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hZnNzeXMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTEsIGxvbmcgbG9uZyBhMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEzLCBsb25nIGxvbmcgYTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNSwgbG9uZyBsb25nIGE2KTsKLyogc3lzY2FsbCAyMTEgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxMiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjEzIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTQgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxNSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE5IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9fX3NlbWN0bChsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlbW51bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9fX3NlbWN0bChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZW1udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtZ2V0KGxvbmcgbG9uZyBrZXksIGxvbmcgbG9uZyBuc2VtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1nZXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5zZW1zLCBsb25nIGxvbmcgc2VtZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbW9wKGxvbmcgbG9uZyBzZW1pZCwgbG9uZyBsb25nIHNvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNvcHMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbW9wKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzZW1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc29wcywgbG9uZyBsb25nIG5zb3BzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWNvbmZpZyhsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtY29uZmlnKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9tc2djdGwobG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTRfbXNnY3RsKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNxaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dnZXQobG9uZyBsb25nIGtleSwgbG9uZyBsb25nIG1zZ2ZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnZ2V0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnc25kKGxvbmcgbG9uZyBtc3FpZCwgbG9uZyBsb25nIG1zZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ3N6LCBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNncCwgbG9uZyBsb25nIG1zZ3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3Jjdihsb25nIGxvbmcgbXNxaWQsIGxvbmcgbG9uZyBtc2dwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dzeiwgbG9uZyBsb25nIG1zZ3R5cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dyY3YobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNncCwgbG9uZyBsb25nIG1zZ3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNndHlwLCBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWF0KGxvbmcgbG9uZyBzaG1pZCwgbG9uZyBsb25nIHNobWFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNobWFkZHIsIGxvbmcgbG9uZyBzaG1mbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE0X3NobWN0bChsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9zaG1jdGwobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaG1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWR0KGxvbmcgbG9uZyBzaG1hZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1kdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2htYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1nZXQobG9uZyBsb25nIGtleSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNobWZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZ2V0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLCBsb25nIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXR0aW1lKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Nsb2NrX2dldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19zZXR0aW1lKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Nsb2NrX3NldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9jcmVhdGUobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVyaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2NyZWF0ZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2RlbGV0ZShsb25nIGxvbmcgdGltZXJpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZGVsZXRlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF90aW1lcl9zZXR0aW1lKGxvbmcgbG9uZyB0aW1lcmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUobG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF90aW1lcl9nZXR0aW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyBsb25nIHRpbWVyaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9uYW5vc2xlZXAobG9uZyBsb25nIHJxdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbmFub3NsZWVwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZkYXRhc3luYyhsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZkYXRhc3luYyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWxvY2thbGwobG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9ja2FsbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXVubG9ja2FsbCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fc2lndGltZWR3YWl0KGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncXVldWVpbmZvKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdxdWV1ZWluZm8obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW9kY3RsKGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21vZGN0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2luaXQobG9uZyBsb25nIHZhbHVlLCBsb25nIGxvbmcgaWRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9pbml0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpZHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fb3Blbihsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG9mbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9vcGVuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mbGFnLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIGlkcCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV91bmxpbmsobG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3VubGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9jbG9zZShsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX2Nsb3NlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9wb3N0KGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fcG9zdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fd2FpdChsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3dhaXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3RyeXdhaXQobG9uZyBsb25nIGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV90cnl3YWl0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9nZXR2YWx1ZShsb25nIGxvbmcgaWQsIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fZ2V0dmFsdWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9kZXN0cm95KGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fZGVzdHJveShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdGltZWR3YWl0KGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWJzdGltZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fdGltZWR3YWl0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFic3RpbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfb3Blbihsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG9mbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGF0dHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2ZsYWcsIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfY2xvc2UobG9uZyBsb25nIG1xZGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9jbG9zZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfdW5saW5rKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV91bmxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfZ2V0YXR0cihsb25nIGxvbmcgbXFkZXMsIGxvbmcgbG9uZyBtcXN0YXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX2dldGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1xc3RhdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9zZXRhdHRyKGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1xc3RhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9tcXN0YXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NldGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1xc3RhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbXFzdGF0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX25vdGlmeShsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5vdGlmaWNhdGlvbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfbm90aWZ5KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5vdGlmaWNhdGlvbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9zZW5kKGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3ByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NlbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3JlY2VpdmUobG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHJpbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfcmVjZWl2ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9tcV90aW1lZHNlbmQobG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHJpbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRzZW5kKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwgbG9uZyBsb25nIG1zZ19sZW4sCiAgICBsb25nIGxvbmcgbXNnX3ByaW8sIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKAogICAgbG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwgbG9uZyBsb25nIG1zZ19sZW4sIGxvbmcgbG9uZyBtc2dfcHJpbywKICAgIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX21xX3RpbWVkcmVjZWl2ZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgbG9uZyBsb25nIG1zZ19wcmlvLCBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwovKiBzeXNjYWxsIDI2NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjY4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wb3NpeF9yZW5hbWUobG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9yZW5hbWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBjdGwobG9uZyBsb25nIGNtZCwgbG9uZyBsb25nIGFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1pc2MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcsIGxvbmcgbG9uZyBtaXNjKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5oZXJpdChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmhlcml0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taW5oZXJpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgaW5oZXJpdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2htb2QobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2htb2QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1aWQsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2x1dGltZXMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2x1dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21zeW5jMTMobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zeW5jMTMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19mc3RhdDEzKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19mc3RhdDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fbHN0YXQxMyhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NpZ2FsdHN0YWNrMTQobG9uZyBsb25nIG5zcywgbG9uZyBsb25nIG9zcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdhbHRzdGFjazE0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX192Zm9yazE0KHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdmZvcmsxNChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfY2hvd24obG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmNob3duKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfZmNob3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfbGNob3duKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9sY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVpZCwgbG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzaWQobG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9uZShsb25nIGxvbmcgZmxhZ3MsIGxvbmcgbG9uZyBzdGFjayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19jbG9uZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc3RhY2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmt0cmFjZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmYWNzLCBsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ma3RyYWNlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHMsIGxvbmcgbG9uZyBmYWNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZHYobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgaW92cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92Y250LCBsb25nIGxvbmcgUEFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpb3ZwLCBsb25nIGxvbmcgaW92Y250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgb2Zmc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZXYobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgaW92cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdmNudCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92cCwgbG9uZyBsb25nIGlvdmNudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTZfX19zaWdhY3Rpb24xNChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaWdudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5zYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lncGVuZGluZzE0KGxvbmcgbG9uZyBzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lncGVuZGluZzE0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdwcm9jbWFzazE0KGxvbmcgbG9uZyBob3csIGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lncHJvY21hc2sxNChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NpZ3N1c3BlbmQxNChsb25nIGxvbmcgc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ3N1c3BlbmQxNChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE2X19fc2lncmV0dXJuMTQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnY250eHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRjd2QobG9uZyBsb25nIGJ1ZnAsIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0Y3dkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBidWZwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNocm9vdChsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaHJvb3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9maG9wZW4obG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhvcGVuKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9maHN0YXQobG9uZyBsb25nIGZocCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX19fc2VtY3RsMTMobG9uZyBsb25nIHNlbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfX19fX3NlbWN0bDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMobG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX21zZ2N0bDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19zaG1jdGwxMyhsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaGZsYWdzKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaGZsYWdzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pc3NldHVnaWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaXNzZXR1Z2lkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRyYWNlKGxvbmcgbG9uZyBsYWJlbCwgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXRyYWNlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBsYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y29udGV4dChsb25nIGxvbmcgdWNwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRjb250ZXh0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Y29udGV4dChsb25nIGxvbmcgdWNwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRjb250ZXh0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9jcmVhdGUobG9uZyBsb25nIHVjcCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19sd3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfY3JlYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfbHdwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZXhpdCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2V4aXQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3NlbGYodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zZWxmKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF93YWl0KGxvbmcgbG9uZyB3YWl0X2ZvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGVwYXJ0ZWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2FpdF9mb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXBhcnRlZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3N1c3BlbmQobG9uZyBsb25nIHRhcmdldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zdXNwZW5kKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9jb250aW51ZShsb25nIGxvbmcgdGFyZ2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2NvbnRpbnVlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGFyZ2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfd2FrZXVwKGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FrZXVwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9nZXRwcml2YXRlKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZ2V0cHJpdmF0ZShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0cHJpdmF0ZShsb25nIGxvbmcgcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX3NldHByaXZhdGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2tpbGwobG9uZyBsb25nIHRhcmdldCwgbG9uZyBsb25nIHNpZ25vKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2tpbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZ25vKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZGV0YWNoKGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZGV0YWNoKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayhsb25nIGxvbmcgdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJraGludCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFyaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmsobG9uZyBsb25nIHRhcmdldCwgbG9uZyBsb25nIGhpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfdW5wYXJrKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGhpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmtfYWxsKGxvbmcgbG9uZyB0YXJnZXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBudGFyZ2V0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF91bnBhcmtfYWxsKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0YXJnZXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnRhcmdldHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0bmFtZShsb25nIGxvbmcgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX3NldG5hbWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9nZXRuYW1lKGxvbmcgbG9uZyB0YXJnZXQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZ2V0bmFtZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2N0bChsb25nIGxvbmcgZmVhdHVyZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWRkcmVzcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZlYXR1cmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhZGRyZXNzKTsKLyogc3lzY2FsbCAzMjYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMyNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzI4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMjkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKAogICAgbG9uZyBsb25nIG5ld3YsIGxvbmcgbG9uZyBvbGR2LCBsb25nIGxvbmcgZmxhZ3MsCiAgICBsb25nIGxvbmcgc3RhY2tpbmZvX29mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5ld3YsIGxvbmcgbG9uZyBvbGR2LCBsb25nIGxvbmcgZmxhZ3MsCiAgICBsb25nIGxvbmcgc3RhY2tpbmZvX29mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc3RhY2tzKGxvbmcgbG9uZyBudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGFja3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV9zdGFja3MobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc3RhY2tzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV9lbmFibGUodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV9zZXRjb25jdXJyZW5jeSgKICAgIGxvbmcgbG9uZyBjb25jdXJyZW5jeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNvbmN1cnJlbmN5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV95aWVsZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2FfeWllbGQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfcHJlZW1wdChsb25nIGxvbmcgc2FfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV9wcmVlbXB0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNhX2lkKTsKLyogc3lzY2FsbCAzMzYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMzNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzM4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMzkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdhY3Rpb25fc2lndHJhbXAobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRyYW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZlcnMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lnYWN0aW9uX3NpZ3RyYW1wKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHNpZ251bSwgbG9uZyBsb25nIG5zYSwgbG9uZyBsb25nIG9zYSwKICAgIGxvbmcgbG9uZyB0cmFtcCwgbG9uZyBsb25nIHZlcnMpOwovKiBzeXNjYWxsIDM0MSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzQyIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Jhc2N0bChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jhc2N0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIG9wKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2txdWV1ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rcXVldWUobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfa2V2ZW50KAogICAgbG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwgbG9uZyBsb25nIG5jaGFuZ2VzLCBsb25nIGxvbmcgZXZlbnRsaXN0LAogICAgbG9uZyBsb25nIG5ldmVudHMsIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfa2V2ZW50KAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwgbG9uZyBsb25nIG5jaGFuZ2VzLAogICAgbG9uZyBsb25nIGV2ZW50bGlzdCwgbG9uZyBsb25nIG5ldmVudHMsIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9zZXRwYXJhbShsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhcmFtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3NjaGVkX3NldHBhcmFtKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXJhbXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldHBhcmFtKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGFyYW1zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fc2NoZWRfZ2V0cGFyYW0obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhcmFtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fc2NoZWRfc2V0YWZmaW5pdHkobG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRhZmZpbml0eShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNwdXNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fc2NoZWRfZ2V0YWZmaW5pdHkobG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRhZmZpbml0eShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNwdXNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF95aWVsZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF95aWVsZChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9wcm90ZWN0KGxvbmcgbG9uZyBwcmlvcml0eSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3NjaGVkX3Byb3RlY3QobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHJpb3JpdHkpOwovKiBzeXNjYWxsIDM1MiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzUzIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzeW5jX3JhbmdlKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN5bmNfcmFuZ2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXVpZGdlbihsb25nIGxvbmcgc3RvcmUsIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXVpZGdlbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc3RvcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2dldHZmc3N0YXQobG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWZzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfOTBfZ2V0dmZzc3RhdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9zdGF0dmZzMShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX3N0YXR2ZnMxKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMShsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMShsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX2Zoc3RhdHZmczEobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJjdGwobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cmN0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfc2V0X2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX3NldF9maWxlKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLCBsb25nIGxvbmcgYXR0cm5hbWUsCiAgICBsb25nIGxvbmcgZGF0YSwgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX2dldF9maWxlKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9nZXRfZmlsZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgbG9uZyBsb25nIGRhdGEsIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9mZChsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfZmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZ2V0X2ZkKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9mZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9kZWxldGVfZmQobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZGVsZXRlX2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9saW5rKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfbGluaygKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgbG9uZyBsb25nIGRhdGEsIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfbGluayhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZ2V0X2xpbmsoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgIGxvbmcgbG9uZyBkYXRhLCBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9saXN0X2ZkKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9saXN0X2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9saXN0X2ZpbGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfcHNlbGVjdChsb25nIGxvbmcgbmQsIGxvbmcgbG9uZyBpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9wc2VsZWN0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG91LCBsb25nIGxvbmcgZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wb2xsdHMobG9uZyBsb25nIGZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5mZHMsIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9wb2xsdHMoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmRzLCBsb25nIGxvbmcgbmZkcywgbG9uZyBsb25nIHRzLCBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHNldHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzZXR4YXR0cihsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc2V0eGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGdldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sZ2V0eGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZnZXR4YXR0cihsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpc3R4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xsaXN0eGF0dHIobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGxpc3R4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaXN0LCBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbGlzdHhhdHRyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbGlzdHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaXN0LCBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW1vdmV4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbW92ZXhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xyZW1vdmV4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnJlbW92ZXhhdHRyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZyZW1vdmV4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMChsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzYik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19sc3RhdDMwKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2xzdGF0MzAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0ZGVudHMzMChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGRlbnRzMzAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9zaXhfZmFkdmlzZShsb25nIGxvbmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X2ZhZHZpc2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChsb25nIGxvbmcgbnR2cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zb2NrZXQzMChsb25nIGxvbmcgZG9tYWluLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3RvY29sKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NvY2tldDMwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGZoMzAobG9uZyBsb25nIGZuYW1lLCBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGZoMzAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLCBsb25nIGxvbmcgZmhfc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zob3BlbjQwKGxvbmcgbG9uZyBmaHAsIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhvcGVuNDAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19maHN0YXQ0MChsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZoX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2Zoc3RhdDQwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX2NhbmNlbChsb25nIGxvbmcgZmlsZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fY2FuY2VsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaWxkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19lcnJvcihsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZXJyb3IobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFpb2NicCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fZnN5bmMobG9uZyBsb25nIG9wLCBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZnN5bmMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19yZWFkKGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Fpb19yZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX3JldHVybihsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fcmV0dXJuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2Fpb19zdXNwZW5kKGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfYWlvX3N1c3BlbmQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fd3JpdGUobG9uZyBsb25nIGFpb2NicCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWlvX3dyaXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlvX2xpc3Rpbyhsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LCBsb25nIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW9fbGlzdGlvKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZyk7Ci8qIHN5c2NhbGwgNDA3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA0MDggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDQwOSBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21vdW50NTAobG9uZyBsb25nIHR5cGUsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGFfbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21vdW50NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YV9sZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXJlbWFwKGxvbmcgbG9uZyBvbGRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcmVtYXAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9sZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19zaXplLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHNldF9jcmVhdGUobG9uZyBsb25nIHBzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfY3JlYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfZGVzdHJveShsb25nIGxvbmcgcHNpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHNldF9kZXN0cm95KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfYXNzaWduKGxvbmcgbG9uZyBwc2lkLCBsb25nIGxvbmcgY3B1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfYXNzaWduKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3BzZXRfYmluZChsb25nIGxvbmcgaWR0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmlyc3RfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZWNvbmRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwc2lkLCBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19wc2V0X2JpbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaXJzdF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZWNvbmRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHNpZCwgbG9uZyBsb25nIG9wc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmFkdmlzZTUwKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkdmljZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9mYWR2aXNlNTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW4sCiAgICBsb25nIGxvbmcgYWR2aWNlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2VsZWN0NTAobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2VsZWN0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluLCBsb25nIGxvbmcgb3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHRpbWVvZmRheTUwKGxvbmcgbG9uZyB0cCwgbG9uZyBsb25nIHR6cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXR0aW1lb2ZkYXk1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHpwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0dGltZW9mZGF5NTAobG9uZyBsb25nIHR2LCBsb25nIGxvbmcgdHpwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NldHRpbWVvZmRheTUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX191dGltZXM1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdXRpbWVzNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FkanRpbWU1MChsb25nIGxvbmcgZGVsdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWRqdGltZTUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkZWx0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sZnNfc2Vnd2FpdDUwKGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbGZzX3NlZ3dhaXQ1MChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGltZXM1MChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGltZXM1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sdXRpbWVzNTAobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2x1dGltZXM1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NldGl0aW1lcjUwKGxvbmcgbG9uZyB3aGljaCwgbG9uZyBsb25nIGl0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2V0aXRpbWVyNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGl0diwgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRpdGltZXI1MChsb25nIGxvbmcgd2hpY2gsIGxvbmcgbG9uZyBpdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0aXRpbWVyNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGl0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHRpbWU1MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfZ2V0dGltZTUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX3NldHRpbWU1MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfc2V0dGltZTUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHJlczUwKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Nsb2NrX2dldHJlczUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19uYW5vc2xlZXA1MChsb25nIGxvbmcgcnF0cCwgbG9uZyBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbmFub3NsZWVwNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJxdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcm10cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX19fc2lndGltZWR3YWl0NTAobG9uZyBsb25nIHNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21xX3RpbWVkc2VuZDUwKGxvbmcgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3ByaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19tcV90aW1lZHNlbmQ1MCgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgbG9uZyBsb25nIG1zZ19wcmlvLCBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tcV90aW1lZHJlY2VpdmU1MChsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXFfdGltZWRyZWNlaXZlNTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMsIGxvbmcgbG9uZyBtc2dfcHRyLCBsb25nIGxvbmcgbXNnX2xlbiwKICAgIGxvbmcgbG9uZyBtc2dfcHJpbywgbG9uZyBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsobG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmtoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fa2V2ZW50NTAobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5jaGFuZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXZlbnRsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV2ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fa2V2ZW50NTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBjaGFuZ2VsaXN0LCBsb25nIGxvbmcgbmNoYW5nZXMsCiAgICBsb25nIGxvbmcgZXZlbnRsaXN0LCBsb25nIGxvbmcgbmV2ZW50cywgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wc2VsZWN0NTAobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3UsIGxvbmcgbG9uZyBleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cywgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcHNlbGVjdDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW4sIGxvbmcgbG9uZyBvdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3BvbGx0czUwKGxvbmcgbG9uZyBmZHMsIGxvbmcgbG9uZyBuZmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHMsIGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3BvbGx0czUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmZkcywgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19haW9fc3VzcGVuZDUwKGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Fpb19zdXNwZW5kNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N0YXQ1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3N0YXQ1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19mc3RhdDUwKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2ZzdGF0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sc3RhdDUwKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbHN0YXQ1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fX19zZW1jdGw1MChsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlbW51bSwgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX19fc2VtY3RsNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHNlbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2htY3RsNTAobG9uZyBsb25nIHNobWlkLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NobWN0bDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzaG1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tc2djdGw1MChsb25nIGxvbmcgbXNxaWQsIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXNnY3RsNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHJ1c2FnZTUwKGxvbmcgbG9uZyB3aG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0cnVzYWdlNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdobywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9zZXR0aW1lNTAobG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3ZhbHVlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3RpbWVyX3NldHRpbWU1MChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3RpbWVyX2dldHRpbWU1MChsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX190aW1lcl9nZXR0aW1lNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUpOwojaWYgZGVmaW5lZChOVFApIHx8ICFkZWZpbmVkKF9LRVJORUxfT1BUKQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19udHBfZ2V0dGltZTUwKGxvbmcgbG9uZyBudHZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX250cF9nZXR0aW1lNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwojZWxzZQovKiBzeXNjYWxsIDQ0OCBoYXMgYmVlbiBza2lwcGVkICovCiNlbmRpZgp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX193YWl0NDUwKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBzdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJ1c2FnZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX193YWl0NDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbWtub2Q1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRldik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19ta25vZDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGRldik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zoc3RhdDUwKGxvbmcgbG9uZyBmaHAsIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhzdGF0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplLCBsb25nIGxvbmcgc2IpOwovKiBzeXNjYWxsIDQ1MiBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlMihsb25nIGxvbmcgZmlsZGVzLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaWxkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDMobG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyB0bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa3F1ZXVlMShsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2txdWV1ZTEobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYW5hbWVsZW4sIGxvbmcgbG9uZyBtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BhY2NlcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGFuYW1lbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2ssIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saW5rYXQobG9uZyBsb25nIGZkMSwgbG9uZyBsb25nIG5hbWUxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZDIsIGxvbmcgbG9uZyBuYW1lMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZTEsIGxvbmcgbG9uZyBmZDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lMiwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbmFtZWF0KGxvbmcgbG9uZyBmcm9tZmQsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvZmQsIGxvbmcgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb21mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnJvbSwgbG9uZyBsb25nIHRvZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZmlmb2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta25vZGF0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLCBsb25nIGxvbmcgUEFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta25vZGF0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXJhdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmFjY2Vzc2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFtb2RlLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFjY2Vzc2F0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBhbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kYXQobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNobW9kYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hvd25hdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG93bmVyLCBsb25nIGxvbmcgZ3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgb3duZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdyb3VwLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZXhlY3ZlKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGFyZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZXhlY3ZlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmdwLCBsb25nIGxvbmcgZW52cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGF0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGF0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVuc2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZW5zYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHRwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5hdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmxhZ3MsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG9mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmthdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgYnVmc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWZzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdChsb25nIGxvbmcgcGF0aDEsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aDIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bWxpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGlua2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mdXRpbWVucyhsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdXRpbWVucyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19xdW90YWN0bChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcXVvdGFjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9zcGF3bihsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlX2FjdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cnAsIGxvbmcgbG9uZyBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVudnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X3NwYXduKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZpbGVfYWN0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cnAsIGxvbmcgbG9uZyBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbW1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2bGVuLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1tc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1tc2csIGxvbmcgbG9uZyB2bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2cobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBtbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZsZW4sIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZG1tc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1tc2csIGxvbmcgbG9uZyB2bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19uYW5vc2xlZXAobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcm10cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfbmFub3NsZWVwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fbHdwX3Bhcms2MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX2x3cF9wYXJrNjAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY2xvY2tfaWQsIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRzLAogICAgbG9uZyBsb25nIHVucGFyaywgbG9uZyBsb25nIGhpbnQsIGxvbmcgbG9uZyB1bnBhcmtoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Bvc2l4X2ZhbGxvY2F0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcywgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcG9zaXhfZmFsbG9jYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIHBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZGlzY2FyZChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcG9zLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZGlzY2FyZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIHBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXQ2KGxvbmcgbG9uZyBpZHR5cGUsIGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGF0dXMsIGxvbmcgbG9uZyBvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdydSwgbG9uZyBsb25nIGluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXQ2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlkLCBsb25nIGxvbmcgc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHRpb25zLCBsb25nIGxvbmcgd3J1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKGxvbmcgbG9uZyBpZHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlkdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0dmZzc3RhdDkwKGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXR2ZnNzdGF0OTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zdGF0dmZzMTkwKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zdGF0dmZzMTkwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19mc3RhdHZmczE5MChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdHZmczE5MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZmhzdGF0dmZzMTkwKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhzdGF0dmZzMTkwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZoX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2xpbmsobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9saW5rKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX3NldF9saW5rKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9zZXRfbGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9kZWxldGVfbGluayhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9kZWxldGVfbGluayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2FjbGNoZWNrX2xpbmsobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfYWNsY2hlY2tfbGluayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2dldF9maWxlKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9nZXRfZmlsZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfZmlsZShsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZpbGUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2ZkKGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLCBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZ2V0X2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfc2V0X2ZkKGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLCBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZGVsZXRlX2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZGVsZXRlX2ZpbGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9kZWxldGVfZmQobG9uZyBsb25nIGZpbGVkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9mZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmlsZWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmlsZShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19maWxlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmQobG9uZyBsb25nIGZpbGVkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19mZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xwYXRoY29uZihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xwYXRoY29uZihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCi8vIERPIE5PVCBFRElUISBUSElTIEZJTEUgSEFTIEJFRU4gR0VORVJBVEVEIQoKI2VuZGlmIC8vIFNBTklUSVpFUl9ORVRCU0RfU1lTQ0FMTF9IT09LU19ICgBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvY29tbW9uL2ZpbGVfdXRpbHMuY2MAQ2hlY2sgZmFpbGVkOiBoYW5kbGUgIT0gbnVsbHB0cgBreXRoZQAyACc6IABFcnJvciByZXZlcnNlIGNvbXBpbGluZyAnAEJhZCBoZXggZGlnaXQgAFs6YXNjaWk6XQAlZC4gJXMKAHx8AFN0YXRlU2F2ZXIgZmFpbGVkIHRvIHJlc3RvcmUgc3RhdGUuACBhcmcgAD9QPABCcmFobWkARG9ncmEASGFuAE0AUnVuaWMAY2xvY2tfZ2V0dGltZSgpIGZhaWxlZAAvcHJvYy9zZWxmL3Rhc2svJWQvbWFwcwBpbnRlcm5hbCBlcnJvcgA6OgB1bnNpZ25lZCBsb25nIGxvbmcAX19pbnQxMjgAcGwAPQBzegBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3RhdHVzL3N0YXR1cy5jYwBVbmtub3duIGVzY2FwZSBzZXF1ZW5jZTogXAAsIGxlbmd0aCA9IAAobmlsKQBuYW4AVHJ5TG9jayBzdWNjZWVkZWQgAC91c3Ivc2hhcmUvem9uZWluZm8Aa3l0aGUucHJvdG8uVk5hbWUubGFuZ3VhZ2UAa3l0aGUucHJvdG8uRW50cnkuZmFjdF9uYW1lAGt5dGhlLnByb3RvLlNjYW5SZXF1ZXN0LmVkZ2Vfa2luZABjKystY3BwLW91dHB1dABub19idWlsdGluAG5vX21hdGhfYnVpbHRpbgBPYmpDWFhTeXN0ZW0ALyo9PT0tLS0tLS0tIGF2eDUxMnZwaW50ZXJzZWN0aW50cmluLmggLSBWUDJJTlRFUlNFQ1QgaW50cmluc2ljcyAtLS0tLS0tLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydnAyaW50ZXJzZWN0Lmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfQVZYNTEyVlAySU5URVJTRUNUX0gKI2RlZmluZSBfQVZYNTEyVlAySU5URVJTRUNUX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJhdng1MTJ2cDJpbnRlcnNlY3QiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKLy8vIFN0b3JlLCBpbiBhbiBldmVuL29kZCBwYWlyIG9mIG1hc2sgcmVnaXN0ZXJzLCB0aGUgaW5kaWNhdG9ycyBvZiB0aGUKLy8vIGxvY2F0aW9ucyBvZiB2YWx1ZSBtYXRjaGVzIGJldHdlZW4gZHdvcmRzIGluIG9wZXJhbmRzIF9fYSBhbmQgX19iLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQMklOVEVSU0VDVEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGkzMl0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGkzMl0KLy8vIFxwYXJhbSBfX20wCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gMTYtYml0IG1hc2sKLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gMTYtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyXzJpbnRlcnNlY3RfZXBpMzIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iLCBfX21tYXNrMTYgKl9fbTAsIF9fbW1hc2sxNiAqX19tMSkgewogIF9fYnVpbHRpbl9pYTMyX3ZwMmludGVyc2VjdF9kXzUxMigoX192MTZzaSlfX2EsIChfX3YxNnNpKV9fYiwgX19tMCwgX19tMSk7Cn0KCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIHF1YWR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1RRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbOCB4IGk2NF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFs4IHggaTY0XQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyXzJpbnRlcnNlY3RfZXBpNjQoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfcV81MTIoKF9fdjhkaSlfX2EsIChfX3Y4ZGkpX19iLCBfX20wLCBfX20xKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgBibWkyaW50cmluLmgALyo9PT0tLS0tIGYxNmNpbnRyaW4uaCAtIEYxNkMgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGYxNmNpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRjE2Q0lOVFJJTl9ICiNkZWZpbmUgX19GMTZDSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZjE2YyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZjE2YyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCi8qIE5PVEU6IEludGVsIGRvY3VtZW50cyB0aGUgMTI4LWJpdCB2ZXJzaW9ucyBvZiB0aGVzZSBhcyBiZWluZyBpbiBlbW1pbnRyaW4uaCwKICogYnV0IHRoYXQncyBiZWNhdXNlIGljYyBjYW4gZW11bGF0ZSB0aGVzZSB3aXRob3V0IGYxNmMgdXNpbmcgYSBsaWJyYXJ5IGNhbGwuCiAqIFNpbmNlIHdlIGRvbid0IGRvIHRoYXQgbGV0J3MgbGVhdmUgdGhlc2UgaW4gZjE2Y2ludHJpbi5oLgogKi8KCi8vLyBDb252ZXJ0cyBhIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZSBpbnRvIGEgMzItYml0IGZsb2F0Ci8vLyAgICB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUEgyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZS4KLy8vIFxyZXR1cm5zIFRoZSBjb252ZXJ0ZWQgMzItYml0IGZsb2F0IHZhbHVlLgpzdGF0aWMgX19pbmxpbmUgZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9jdnRzaF9zcyh1bnNpZ25lZCBzaG9ydCBfX2EpCnsKICBfX3Y4aGkgX192ID0geyhzaG9ydClfX2EsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OwogIF9fdjRzZiBfX3IgPSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMoX192KTsKICByZXR1cm4gX19yWzBdOwp9CgovLy8gQ29udmVydHMgYSAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdCB2YWx1ZSB0byBhIDE2LWJpdAovLy8gICAgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyB1bnNpZ25lZCBzaG9ydCBfY3Z0c3Nfc2goZmxvYXQgYSwgY29uc3QgaW50IGltbSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMlBIIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMzItYml0IHNpbmdsZS1wcmVjaXNpb24gZmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkIHRvIGEgMTYtYml0Ci8vLyAgICBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZS4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250cm9sbGluZyByb3VuZGluZyB1c2luZyBiaXRzIFsyOjBdOiBcbgovLy8gICAgMDAwOiBOZWFyZXN0IFxuCi8vLyAgICAwMDE6IERvd24gXG4KLy8vICAgIDAxMDogVXAgXG4KLy8vICAgIDAxMTogVHJ1bmNhdGUgXG4KLy8vICAgIDFYWDogVXNlIE1YQ1NSLlJDIGZvciByb3VuZGluZwovLy8gXHJldHVybnMgVGhlIGNvbnZlcnRlZCAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWUuCiNkZWZpbmUgX2N2dHNzX3NoKGEsIGltbSkgXAogICgodW5zaWduZWQgc2hvcnQpKCgoX192OGhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaCgoX192NHNmKXthLCAwLCAwLCAwfSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSlbMF0pKQoKLy8vIENvbnZlcnRzIGEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIGludG8gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fY3Z0cHNfcGgoX19tMTI4IGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJQSCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgMzItYml0IGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250cm9sbGluZyByb3VuZGluZyB1c2luZyBiaXRzIFsyOjBdOiBcbgovLy8gICAgMDAwOiBOZWFyZXN0IFxuCi8vLyAgICAwMDE6IERvd24gXG4KLy8vICAgIDAxMDogVXAgXG4KLy8vICAgIDAxMTogVHJ1bmNhdGUgXG4KLy8vICAgIDFYWDogVXNlIE1YQ1NSLlJDIGZvciByb3VuZGluZwovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIGNvbnZlcnRlZCAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQKLy8vICAgIHZhbHVlcy4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIHVzZWQgdG8gc3RvcmUgdGhlIGNvbnZlcnRlZCAxNi1iaXQKLy8vICAgIGhhbGYtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KI2RlZmluZSBfbW1fY3Z0cHNfcGgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaCgoX192NHNmKShfX20xMjgpKGEpLCAoaW1tKSkpCgovLy8gQ29udmVydHMgYSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdAovLy8gICAgdmFsdWVzIGludG8gYSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBIMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuIFRoZSBsb3dlcgovLy8gICAgNjQgYml0cyBhcmUgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBjb252ZXJ0ZWQgZmxvYXQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cGhfcHMoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMoKF9fdjhoaSlfX2EpOwp9CgovLy8gQ29udmVydHMgYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIGNvbnRhaW5pbmcgMTYtYml0IGhhbGYtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tMjU2X2N2dHBzX3BoKF9fbTI1NiBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUFMyUEggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBjb250YWluaW5nIDMyLWJpdCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcyB0byBiZQovLy8gICAgY29udmVydGVkIHRvIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gaW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgY29udHJvbGxpbmcgcm91bmRpbmcgdXNpbmcgYml0cyBbMjowXTogXG4KLy8vICAgIDAwMDogTmVhcmVzdCBcbgovLy8gICAgMDAxOiBEb3duIFxuCi8vLyAgICAwMTA6IFVwIFxuCi8vLyAgICAwMTE6IFRydW5jYXRlIFxuCi8vLyAgICAxWFg6IFVzZSBNWENTUi5SQyBmb3Igcm91bmRpbmcKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIDE2LWJpdCBoYWxmLXByZWNpc2lvbgovLy8gICAgZmxvYXQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9jdnRwc19waChhLCBpbW0pIFwKICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGgyNTYoKF9fdjhzZikoX19tMjU2KShhKSwgKGltbSkpKQoKLy8vIENvbnZlcnRzIGEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQKLy8vICAgIHZhbHVlcyBpbnRvIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBIMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMgdG8gYmUKLy8vICAgIGNvbnZlcnRlZCB0byAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgMzItYml0Ci8vLyAgICBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX3BzKF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzMjU2KChfX3Y4aGkpX19hKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19GMTZDSU5UUklOX0ggKi8KAGhleGFnb25fY2lyY19icmV2X2ludHJpbnNpY3MuaAAvKj09PS0tLS0gbW1pbnRyaW4uaCAtIE1NWCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fTU1JTlRSSU5fSAojZGVmaW5lIF9fTU1JTlRSSU5fSAoKdHlwZWRlZiBsb25nIGxvbmcgX19tNjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwoKdHlwZWRlZiBsb25nIGxvbmcgX192MWRpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwp0eXBlZGVmIGludCBfX3Yyc2kgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CnR5cGVkZWYgc2hvcnQgX192NGhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwp0eXBlZGVmIGNoYXIgX192OHFpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1teCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKLy8vIENsZWFycyB0aGUgTU1YIHN0YXRlIGJ5IHNldHRpbmcgdGhlIHN0YXRlIG9mIHRoZSB4ODcgc3RhY2sgcmVnaXN0ZXJzCi8vLyAgICB0byBlbXB0eS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFTU1TIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1teCIpKSkKX21tX2VtcHR5KHZvaWQpCnsKICAgIF9fYnVpbHRpbl9pYTMyX2VtbXMoKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIHNldHRpbmcgdGhlIGxvd2VyIDMyIGJpdHMgdG8gdGhlCi8vLyAgICB2YWx1ZSBvZiB0aGUgMzItYml0IGludGVnZXIgcGFyYW1ldGVyIGFuZCBzZXR0aW5nIHRoZSB1cHBlciAzMiBiaXRzIHRvIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlCi8vLyAgICBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzMiBiaXRzIGFyZSBzZXQgdG8gMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTMyX3NpNjQoaW50IF9faSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92MnNpKF9faSwgMCk7Cn0KCi8vLyBSZXR1cm5zIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGFzIGEgMzItYml0Ci8vLyAgICBzaWduZWQgaW50ZWdlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSBjb250YWluaW5nIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTY0X3NpMzIoX19tNjQgX19tKQp7CiAgICByZXR1cm4gX19idWlsdGluX2lhMzJfdmVjX2V4dF92MnNpKChfX3Yyc2kpX19tLCAwKTsKfQoKLy8vIENhc3RzIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2FtZSBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlCi8vLyAgICBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2k2NF9tNjQobG9uZyBsb25nIF9faSkKewogICAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8vLyBDYXN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRtNjRfc2k2NChfX202NCBfX20pCnsKICAgIHJldHVybiAobG9uZyBsb25nKV9fbTsKfQoKLy8vIENvbnZlcnRzIDE2LWJpdCBzaWduZWQgaW50ZWdlcnMgZnJvbSBib3RoIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgcGFyYW1ldGVycyBvZiBbNCB4IGkxNl0gaW50byA4LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMsIGFuZCBjb25zdHJ1Y3RzCi8vLyAgICBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBhcyB0aGUgcmVzdWx0LiBQb3NpdGl2ZSB2YWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgdmFsdWVzIGxlc3MgdGhhbiAweDgwCi8vLyAgICBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFDS1NTV0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4KLy8vICAgIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4gMHg4MCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuIFRoZSBjb252ZXJ0ZWQKLy8vICAgIFs0IHggaThdIHZhbHVlcyBhcmUgd3JpdHRlbiB0byB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4gRWFjaCAxNi1iaXQgZWxlbWVudCBpcyB0cmVhdGVkIGFzIGEKLy8vICAgIDE2LWJpdCBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGFuIDgtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFBvc2l0aXZlIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RiBhcmUgc2F0dXJhdGVkIHRvIDB4N0YuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkCi8vLyAgICBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2tzX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWNrc3N3YigoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBDb252ZXJ0cyAzMi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIHBhcmFtZXRlcnMgb2YgWzIgeCBpMzJdIGludG8gMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlcywgYW5kIGNvbnN0cnVjdHMKLy8vICAgIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBhcyB0aGUgcmVzdWx0LiBQb3NpdGl2ZSB2YWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4KLy8vICAgIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQUNLU1NEVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcyBhCi8vLyAgICAzMi1iaXQgc2lnbmVkIGludGVnZXIgYW5kIGlzIGNvbnZlcnRlZCB0byBhIDE2LWJpdCBzaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBQb3NpdGl2ZSB2YWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRi4KLy8vICAgIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHg4MDAwLiBUaGUgY29udmVydGVkCi8vLyAgICBbMiB4IGkxNl0gdmFsdWVzIGFyZSB3cml0dGVuIHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBFYWNoIDMyLWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYSAxNi1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4gVGhlIGNvbnZlcnRlZAovLy8gICAgWzIgeCBpMTZdIHZhbHVlcyBhcmUgd3JpdHRlbiB0byB0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2tzX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWNrc3NkdygoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBDb252ZXJ0cyAxNi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIHBhcmFtZXRlcnMgb2YgWzQgeCBpMTZdIGludG8gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMsIGFuZAovLy8gICAgY29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBhcyB0aGUgcmVzdWx0LiBWYWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweEZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gVmFsdWVzIGxlc3MgdGhhbiAwIGFyZSBzYXR1cmF0ZWQKLy8vICAgIHRvIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFDS1VTV0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAwIGFyZSBzYXR1cmF0ZWQgdG8gMC4gVGhlIGNvbnZlcnRlZCBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAwIGFyZSBzYXR1cmF0ZWQgdG8gMC4gVGhlIGNvbnZlcnRlZCBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9wYWNrc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFja3Vzd2IoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gVW5wYWNrcyB0aGUgdXBwZXIgMzIgYml0cyBmcm9tIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mIFs4IHggaThdCi8vLyAgICBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gXG4KLy8vICAgIEJpdHMgWzM5OjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0Nzo0MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjM6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs1NTo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzk6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo1Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNTU6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyAgICBCaXRzIFszOTozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzQ3OjQwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU1OjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjU2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNraGlfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraGJ3KChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIHVwcGVyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMTZdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hXRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraHdkKChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIHVwcGVyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpMzJdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSB1cHBlciAzMiBiaXRzIGFyZSB3cml0dGVuIHRvCi8vLyAgICB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIHVwcGVyIDMyIGJpdHMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraGRxKChfX3Yyc2kpX19tMSwgKF9fdjJzaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIGxvd2VyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZiBbOCB4IGk4XQovLy8gICAgYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQVU5QQ0tMQlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyAgICBCaXRzIFs3OjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzE1OjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMjM6MTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMzE6MjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTU6OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsyMzoxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3B1bnBja2xidygoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3dlciAzMiBiaXRzIGZyb20gdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQVU5QQ0tMV0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gICAgQml0cyBbMTU6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFsxNTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wdW5wY2tsd2QoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93ZXIgMzIgYml0cyBmcm9tIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbMiB4IGkzMl0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFVOUENLTERRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGxvd2VyIDMyIGJpdHMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBUaGUgbG93ZXIgMzIgYml0cyBhcmUgd3JpdHRlbiB0bwovLy8gICAgdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wdW5wY2tsZHEoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDgtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZAovLy8gICAgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLiBUaGUgbG93ZXIgOCBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFEREIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGRiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9mIFs0IHggaTE2XSB0byB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQKLy8vICAgIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBRERXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZF9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFkZHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzIgeCBpMzJdIHRvIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZAovLy8gICAgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlCi8vLyAgICBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFEREQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBBZGRzIGVhY2ggOC1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mCi8vLyAgICB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4KLy8vICAgIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBOZWdhdGl2ZSBzdW1zIGxlc3MgdGhhbiAweDgwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQUREU0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQgc3VtcwovLy8gICAgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFkZHNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbNCB4IGkxNl0gdG8gdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YKLy8vICAgIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4KLy8vICAgIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4ODAwMC4gVGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc2F0dXJhdGVkIHN1bXMKLy8vICAgIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkc3coKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDgtYml0IHVuc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YKLy8vICAgIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLiBTdW1zIGdyZWF0ZXIgdGhhbiAweEZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4RkYuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgdW5zaWduZWQgc3VtcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc19wdTgoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkdXNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFs0IHggaTE2XSB0byB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50Ci8vLyAgICBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFN1bXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweEZGRkYgYXJlIHNhdHVyYXRlZCB0byAweEZGRkYuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBRERVU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQKLy8vICAgIHVuc2lnbmVkIHN1bXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfcHUxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGR1c3coKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gU3VidHJhY3RzIGVhY2ggOC1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUKLy8vICAgIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gVGhlIGxvd2VyIDggYml0cyBvZiB0aGUgcmVzdWx0cwovLy8gICAgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YmIoKF9fdjhxaSlfX20xLCAoX192OHFpKV9fbTIpOwp9CgovLy8gU3VidHJhY3RzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUKLy8vICAgIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzdWJ3KChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLy8vIFN1YnRyYWN0cyBlYWNoIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFsyIHggaTMyXSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlCi8vLyAgICBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1VCRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mCi8vLyAgICBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3ViZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCA4LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IHNpZ25lZCBpbnRlZ2VyCi8vLyAgICBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uIFBvc2l0aXZlIHJlc3VsdHMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgcmVzdWx0cyBsZXNzIHRoYW4gMHg4MAovLy8gICAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIFN1YnRyYWN0cyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gZnJvbSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFBvc2l0aXZlIHJlc3VsdHMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIHJlc3VsdHMgbGVzcyB0aGFuCi8vLyAgICAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJTVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzdWJzdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vICAgIElmIGFuIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudAovLy8gICAgb2YgdGhlIHNlY29uZCB2ZWN0b3IsIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIHRvIDAuIFRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNVQlVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcHU4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnVzYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gZnJvbSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQKLy8vICAgIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyAgICBJZiBhbiBlbGVtZW50IG9mIHRoZSBmaXJzdCB2ZWN0b3IgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQKLy8vICAgIG9mIHRoZSBzZWNvbmQgdmVjdG9yLCB0aGUgcmVzdWx0IGlzIHNhdHVyYXRlZCB0byAwLiBUaGUgcmVzdWx0cyBhcmUKLy8vICAgIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1VCVVNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc2F0dXJhdGVkCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3Vic19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnVzdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBNdWx0aXBsaWVzIGVhY2ggMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGJ5IHRoZSBjb3JyZXNwb25kaW5nIDE2LWJpdCBzaWduZWQgaW50ZWdlcgovLy8gICAgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gYW5kIGdldCBmb3VyCi8vLyAgICAzMi1iaXQgcHJvZHVjdHMuIEFkZHMgYWRqYWNlbnQgcGFpcnMgb2YgcHJvZHVjdHMgdG8gZ2V0IHR3byAzMi1iaXQgc3Vtcy4KLy8vICAgIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZXNlIHR3byBzdW1zIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFsxNTowXSBvZiBib3RoIHBhcmFtZXRlcnMgYXJlIG11bHRpcGxpZWQsIGJpdHMgWzMxOjE2XQovLy8gICAgb2YgYm90aCBwYXJhbWV0ZXJzIGFyZSBtdWx0aXBsaWVkLCBhbmQgdGhlIHN1bSBvZiBib3RoIHJlc3VsdHMgaXMgd3JpdHRlbgovLy8gICAgdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTUFERFdEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgc3VtcyBvZgovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGRfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BtYWRkd2QoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTXVsdGlwbGllcyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBieSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBQYWNrcyB0aGUgdXBwZXIKLy8vICAgIDE2IGJpdHMgb2YgdGhlIDMyLWJpdCBwcm9kdWN0cyBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTVVMSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSB1cHBlciAxNiBiaXRzCi8vLyAgICBvZiB0aGUgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhpX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsaHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTXVsdGlwbGllcyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBieSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBQYWNrcyB0aGUgbG93ZXIKLy8vICAgIDE2IGJpdHMgb2YgdGhlIDMyLWJpdCBwcm9kdWN0cyBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTVVMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBsb3dlciAxNiBiaXRzCi8vLyAgICBvZiB0aGUgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGxvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsbHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QKLy8vICAgIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLCBieSB0aGUgbnVtYmVyCi8vLyAgICBvZiBiaXRzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlci4gVGhlCi8vLyAgICBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZAovLy8gICAgdmFsdWVzLiBJZiBcYSBfX2NvdW50IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gMTYsIHRoZSByZXN1bHQgaXMgc2V0IHRvIGFsbAovLy8gICAgMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNsbHcoKF9fdjRoaSlfX20sIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vICAgIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuIElmIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byAxNiwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gYWxsCi8vLyAgICAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbGlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzbGx3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyBlYWNoIDMyLWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdAovLy8gICAgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIKLy8vICAgIG9mIGJpdHMgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBUaGUKLy8vICAgIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mCi8vLyAgICBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuIElmIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byAzMiwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gYWxsCi8vLyAgICAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xsZCgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyBlYWNoIDMyLWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8gICAgVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4gSWYgXGEgX19jb3VudCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIDMyLCB0aGUgcmVzdWx0IGlzIHNldCB0byBhbGwKLy8vICAgIDAuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2xsaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNsbGRpKChfX3Yyc2kpX19tLCBfX2NvdW50KTsKfQoKLy8vIExlZnQtc2hpZnRzIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIuIFRoZSBsb3dlciA2NCBiaXRzIG9mCi8vLyAgICByZXN1bHQgYXJlIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQgdmFsdWUuIElmCi8vLyAgICAgXGEgX19jb3VudCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIDY0LCB0aGUgcmVzdWx0IGlzIHNldCB0byAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9zaTY0KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xscSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyB0aGUgZmlyc3QgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLCBieSB0aGUKLy8vICAgIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSAzMi1iaXQKLy8vICAgIGludGVnZXIuIFRoZSBsb3dlciA2NCBiaXRzIG9mIHJlc3VsdCBhcmUgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRlcnByZXRlZCBhcyBhIHNpbmdsZSA2NC1iaXQgaW50ZWdlci4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlLiBJZgovLy8gICAgIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byA2NCwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX3NpNjQoX19tNjQgX19tLCBpbnQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xscWkoKF9fdjFkaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLAovLy8gICAgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLCBieSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBlYWNoCi8vLyAgICAxNi1iaXQgZWxlbWVudC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNyYXcoKF9fdjRoaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzQgeCBpMTZdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBlYWNoCi8vLyAgICAxNi1iaXQgZWxlbWVudC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NyYWlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzcmF3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIsCi8vLyAgICB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24gYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlIG9mIGVhY2gKLy8vICAgIDMyLWJpdCBlbGVtZW50LiBUaGUgMzItYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSQUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NyYV9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JhZCgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbMiB4IGkzMl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24gYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlIG9mIGVhY2gKLy8vICAgIDMyLWJpdCBlbGVtZW50LiBUaGUgMzItYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSQUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNyYWRpKChfX3Yyc2kpX19tLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIDE2LWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHBhcmFtZXRlciwKLy8vICAgIHdoaWNoIGlzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSwgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgNjQtYml0IGludGVnZXIuCi8vLwovLy8gICAgSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLiBUaGUgMTYtYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9waTE2KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JsdygoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGkxNl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3Bzcmx3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIsCi8vLyAgICB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4gVGhlIDMyLWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxfcGkzMihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNybGQoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMzItYml0IGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzIgeCBpMzJdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuIFRoZSAzMi1iaXQgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1JMRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxpX3BpMzIoX19tNjQgX19tLCBpbnQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JsZGkoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIuCi8vLwovLy8gICAgSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9zaTY0KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JscSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgdGhlIGZpcnN0IHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciwgYnkgdGhlCi8vLyAgICBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgMzItYml0Ci8vLyAgICBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1JMUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfc2k2NChfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzcmxxaSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBTkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9wYW5kKChfX3YxZGkpX19tMSwgKF9fdjFkaSlfX20yKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBOT1Qgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciwgYW5kIHRoZW4KLy8vICAgIHBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdGhlIGludGVybWVkaWF0ZSByZXN1bHQgYW5kIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQU5ETiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZAovLy8gICAgaW4gdGhlIGJpdHdpc2UgQU5ELgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZAovLy8gICAgcGFyYW1ldGVyIGFuZCB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZG5vdF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9wYW5kbigoX192MWRpKV9fbTEsIChfX3YxZGkpX19tMik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgT1Igb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBPUiBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX29yX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BvcigoX192MWRpKV9fbTEsIChfX3YxZGkpX19tMik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgZXhjbHVzaXZlIE9SIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBYT1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3hvcl9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9weG9yKChfX3YxZGkpX19tMSwgKF9fdjFkaSlfX20yKTsKfQoKLy8vIENvbXBhcmVzIHRoZSA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbOCB4IGk4XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEVRQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGVxYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQ01QRVFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGVxdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMzItYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFsyIHggaTMyXSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEVRRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BjbXBlcWQoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIDgtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs4IHggaThdIHRvIGRldGVybWluZSBpZiB0aGUgZWxlbWVudCBvZiB0aGUgZmlyc3QgdmVjdG9yIGlzIGdyZWF0ZXIgdGhhbgovLy8gICAgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEdUQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGd0YigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBncmVhdGVyIHRoYW4KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgdGhlIHNlY29uZCB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAweEZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEdUVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BjbXBndHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbMiB4IGkzMl0gdG8gZGV0ZXJtaW5lIGlmIHRoZSBlbGVtZW50IG9mIHRoZSBmaXJzdCB2ZWN0b3IgaXMgZ3JlYXRlciB0aGFuCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIHRoZSBzZWNvbmQgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQ01QR1REIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBndF9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGd0ZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFhPUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXR6ZXJvX3NpNjQodm9pZCkKewogICAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTY0KXsgMExMIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZAovLy8gICAgMzItYml0IGludGVnZXIgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faTEKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHBhcmFtIF9faTAKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9waTMyKGludCBfX2kxLCBpbnQgX19pMCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92MnNpKF9faTAsIF9faTEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQKLy8vICAgIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3MzCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MwCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9waTE2KHNob3J0IF9fczMsIHNob3J0IF9fczIsIHNob3J0IF9fczEsIHNob3J0IF9fczApCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfdmVjX2luaXRfdjRoaShfX3MwLCBfX3MxLCBfX3MyLCBfX3MzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi8vLyAgICA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAKLy8vICAgIEFuIDgtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcGk4KGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLCBjaGFyIF9fYjIsCiAgICAgICAgICAgIGNoYXIgX19iMSwgY2hhciBfX2IwKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3ZlY19pbml0X3Y4cWkoX19iMCwgX19iMSwgX19iMiwgX19iMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2I0LCBfX2I1LCBfX2I2LCBfX2I3KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLCB3aXRoIGVhY2ggb2YgdGhlCi8vLyAgICAzMi1iaXQgaW50ZWdlciB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZSBzcGVjaWZpZWQgMzItYml0IGludGVnZXIKLy8vICAgIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faQovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9waTMyKGludCBfX2kpCnsKICAgIHJldHVybiBfbW1fc2V0X3BpMzIoX19pLCBfX2kpOwp9CgovLy8gQ29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0sIHdpdGggZWFjaCBvZiB0aGUKLy8vICAgIDE2LWJpdCBpbnRlZ2VyIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdlcgovLy8gICAgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvciBlbGVtZW50IG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXQxX3BpMTYoc2hvcnQgX193KQp7CiAgICByZXR1cm4gX21tX3NldF9waTE2KF9fdywgX193LCBfX3csIF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLCB3aXRoIGVhY2ggb2YgdGhlCi8vLyAgICA4LWJpdCBpbnRlZ2VyIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gOC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXQxX3BpOChjaGFyIF9fYikKewogICAgcmV0dXJuIF9tbV9zZXRfcGk4KF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCAzMi1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0cl9waTMyKGludCBfX2kwLCBpbnQgX19pMSkKewogICAgcmV0dXJuIF9tbV9zZXRfcGkzMihfX2kxLCBfX2kwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3czCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX3BpMTYoc2hvcnQgX193MCwgc2hvcnQgX193MSwgc2hvcnQgX193Miwgc2hvcnQgX193MykKewogICAgcmV0dXJuIF9tbV9zZXRfcGkxNihfX3czLCBfX3cyLCBfX3cxLCBfX3cwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2IwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMQovLy8gICAgQW4gOC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX3BpOChjaGFyIF9fYjAsIGNoYXIgX19iMSwgY2hhciBfX2IyLCBjaGFyIF9fYjMsIGNoYXIgX19iNCwgY2hhciBfX2I1LAogICAgICAgICAgICAgY2hhciBfX2I2LCBjaGFyIF9fYjcpCnsKICAgIHJldHVybiBfbW1fc2V0X3BpOChfX2I3LCBfX2I2LCBfX2I1LCBfX2I0LCBfX2IzLCBfX2IyLCBfX2IxLCBfX2IwKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKLyogQWxpYXNlcyBmb3IgY29tcGF0aWJpbGl0eS4gKi8KI2RlZmluZSBfbV9lbXB0eSBfbW1fZW1wdHkKI2RlZmluZSBfbV9mcm9tX2ludCBfbW1fY3Z0c2kzMl9zaTY0CiNkZWZpbmUgX21fZnJvbV9pbnQ2NCBfbW1fY3Z0c2k2NF9tNjQKI2RlZmluZSBfbV90b19pbnQgX21tX2N2dHNpNjRfc2kzMgojZGVmaW5lIF9tX3RvX2ludDY0IF9tbV9jdnRtNjRfc2k2NAojZGVmaW5lIF9tX3BhY2tzc3diIF9tbV9wYWNrc19waTE2CiNkZWZpbmUgX21fcGFja3NzZHcgX21tX3BhY2tzX3BpMzIKI2RlZmluZSBfbV9wYWNrdXN3YiBfbW1fcGFja3NfcHUxNgojZGVmaW5lIF9tX3B1bnBja2hidyBfbW1fdW5wYWNraGlfcGk4CiNkZWZpbmUgX21fcHVucGNraHdkIF9tbV91bnBhY2toaV9waTE2CiNkZWZpbmUgX21fcHVucGNraGRxIF9tbV91bnBhY2toaV9waTMyCiNkZWZpbmUgX21fcHVucGNrbGJ3IF9tbV91bnBhY2tsb19waTgKI2RlZmluZSBfbV9wdW5wY2tsd2QgX21tX3VucGFja2xvX3BpMTYKI2RlZmluZSBfbV9wdW5wY2tsZHEgX21tX3VucGFja2xvX3BpMzIKI2RlZmluZSBfbV9wYWRkYiBfbW1fYWRkX3BpOAojZGVmaW5lIF9tX3BhZGR3IF9tbV9hZGRfcGkxNgojZGVmaW5lIF9tX3BhZGRkIF9tbV9hZGRfcGkzMgojZGVmaW5lIF9tX3BhZGRzYiBfbW1fYWRkc19waTgKI2RlZmluZSBfbV9wYWRkc3cgX21tX2FkZHNfcGkxNgojZGVmaW5lIF9tX3BhZGR1c2IgX21tX2FkZHNfcHU4CiNkZWZpbmUgX21fcGFkZHVzdyBfbW1fYWRkc19wdTE2CiNkZWZpbmUgX21fcHN1YmIgX21tX3N1Yl9waTgKI2RlZmluZSBfbV9wc3VidyBfbW1fc3ViX3BpMTYKI2RlZmluZSBfbV9wc3ViZCBfbW1fc3ViX3BpMzIKI2RlZmluZSBfbV9wc3Vic2IgX21tX3N1YnNfcGk4CiNkZWZpbmUgX21fcHN1YnN3IF9tbV9zdWJzX3BpMTYKI2RlZmluZSBfbV9wc3VidXNiIF9tbV9zdWJzX3B1OAojZGVmaW5lIF9tX3BzdWJ1c3cgX21tX3N1YnNfcHUxNgojZGVmaW5lIF9tX3BtYWRkd2QgX21tX21hZGRfcGkxNgojZGVmaW5lIF9tX3BtdWxodyBfbW1fbXVsaGlfcGkxNgojZGVmaW5lIF9tX3BtdWxsdyBfbW1fbXVsbG9fcGkxNgojZGVmaW5lIF9tX3BzbGx3IF9tbV9zbGxfcGkxNgojZGVmaW5lIF9tX3BzbGx3aSBfbW1fc2xsaV9waTE2CiNkZWZpbmUgX21fcHNsbGQgX21tX3NsbF9waTMyCiNkZWZpbmUgX21fcHNsbGRpIF9tbV9zbGxpX3BpMzIKI2RlZmluZSBfbV9wc2xscSBfbW1fc2xsX3NpNjQKI2RlZmluZSBfbV9wc2xscWkgX21tX3NsbGlfc2k2NAojZGVmaW5lIF9tX3BzcmF3IF9tbV9zcmFfcGkxNgojZGVmaW5lIF9tX3BzcmF3aSBfbW1fc3JhaV9waTE2CiNkZWZpbmUgX21fcHNyYWQgX21tX3NyYV9waTMyCiNkZWZpbmUgX21fcHNyYWRpIF9tbV9zcmFpX3BpMzIKI2RlZmluZSBfbV9wc3JsdyBfbW1fc3JsX3BpMTYKI2RlZmluZSBfbV9wc3Jsd2kgX21tX3NybGlfcGkxNgojZGVmaW5lIF9tX3BzcmxkIF9tbV9zcmxfcGkzMgojZGVmaW5lIF9tX3BzcmxkaSBfbW1fc3JsaV9waTMyCiNkZWZpbmUgX21fcHNybHEgX21tX3NybF9zaTY0CiNkZWZpbmUgX21fcHNybHFpIF9tbV9zcmxpX3NpNjQKI2RlZmluZSBfbV9wYW5kIF9tbV9hbmRfc2k2NAojZGVmaW5lIF9tX3BhbmRuIF9tbV9hbmRub3Rfc2k2NAojZGVmaW5lIF9tX3BvciBfbW1fb3Jfc2k2NAojZGVmaW5lIF9tX3B4b3IgX21tX3hvcl9zaTY0CiNkZWZpbmUgX21fcGNtcGVxYiBfbW1fY21wZXFfcGk4CiNkZWZpbmUgX21fcGNtcGVxdyBfbW1fY21wZXFfcGkxNgojZGVmaW5lIF9tX3BjbXBlcWQgX21tX2NtcGVxX3BpMzIKI2RlZmluZSBfbV9wY21wZ3RiIF9tbV9jbXBndF9waTgKI2RlZmluZSBfbV9wY21wZ3R3IF9tbV9jbXBndF9waTE2CiNkZWZpbmUgX21fcGNtcGd0ZCBfbW1fY21wZ3RfcGkzMgoKI2VuZGlmIC8qIF9fTU1JTlRSSU5fSCAqLwoKAC8qCiAqIGluY2x1ZGUvb21wLXRvb2xzLmgudmFyCiAqLwoKLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX19PTVBUX18KI2RlZmluZSBfX09NUFRfXwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIHN5c3RlbSBpbmNsdWRlIGZpbGVzCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKI2lmZGVmIERFUFJFQ0FUSU9OX1dBUk5JTkdTIAojIGlmZGVmIF9fY3BsdXNwbHVzCiMgZGVmaW5lIERFUFJFQ0FURURfNTEgW1tkZXByZWNhdGVkKCJhcyBvZiA1LjEiKV1dCiMgZWxzZQojIGRlZmluZSBERVBSRUNBVEVEXzUxIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoImFzIG9mIDUuMSIpKSkKI2VuZGlmCiNlbHNlCiNkZWZpbmUgREVQUkVDQVRFRF81MQojZW5kaWYKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBpdGVyYXRpb24gbWFjcm9zCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgRk9SRUFDSF9PTVBUX0lOUVVJUllfRk4obWFjcm8pICAgICAgXAogICAgbWFjcm8gKG9tcHRfZW51bWVyYXRlX3N0YXRlcykgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2VudW1lcmF0ZV9tdXRleF9pbXBscykgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc2V0X2NhbGxiYWNrKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2dldF9jYWxsYmFjaykgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3N0YXRlKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9nZXRfcGFyYWxsZWxfaW5mbykgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3Rhc2tfaW5mbykgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2dldF90YXNrX21lbW9yeSkgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9nZXRfdGhyZWFkX2RhdGEpICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3VuaXF1ZV9pZCkgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2ZpbmFsaXplX3Rvb2wpICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8ob21wdF9nZXRfbnVtX3Byb2NzKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X251bV9wbGFjZXMpICAgICAgICAgICAgICBcCiAgICBtYWNybyhvbXB0X2dldF9wbGFjZV9wcm9jX2lkcykgICAgICAgICAgXAogICAgbWFjcm8ob21wdF9nZXRfcGxhY2VfbnVtKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X3BhcnRpdGlvbl9wbGFjZV9udW1zKSAgICBcCiAgICBtYWNybyhvbXB0X2dldF9wcm9jX2lkKSAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X3RhcmdldF9pbmZvKSAgICAgICAgICAgICBcCiAgICBtYWNybyhvbXB0X2dldF9udW1fZGV2aWNlcykKCiNkZWZpbmUgRk9SRUFDSF9PTVBUX1NUQVRFKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIC8qIGZpcnN0IGF2YWlsYWJsZSBzdGF0ZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfdW5kZWZpbmVkLCAweDEwMikgICAgICAvKiB1bmRlZmluZWQgdGhyZWFkIHN0YXRlICovICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiB3b3JrIHN0YXRlcyAoMC4uMTUpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfc2VyaWFsLCAweDAwMCkgICAgLyogd29ya2luZyBvdXRzaWRlIHBhcmFsbGVsICovICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfcGFyYWxsZWwsIDB4MDAxKSAgLyogd29ya2luZyB3aXRoaW4gcGFyYWxsZWwgKi8gICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfcmVkdWN0aW9uLCAweDAwMikgLyogcGVyZm9ybWluZyBhIHJlZHVjdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogYmFycmllciB3YWl0IHN0YXRlcyAoMTYuLjMxKSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2JhcnJpZXIsIDB4MDEwKSAgIC8qIHdhaXRpbmcgYXQgYSBiYXJyaWVyICovICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfaW1wbGljaXRfcGFyYWxsZWwsIDB4MDExKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW1wbGljaXQgYmFycmllciBhdCB0aGUgZW5kIG9mIHBhcmFsbGVsIHJlZ2lvbiAqL1wKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsaWNpdF93b3Jrc2hhcmUsIDB4MDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbXBsaWNpdCBiYXJyaWVyIGF0IHRoZSBlbmQgb2Ygd29ya3NoYXJpbmcgKi8gICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2ltcGxpY2l0LCAweDAxMykgIC8qIGltcGxpY2l0IGJhcnJpZXIgKi8gICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2V4cGxpY2l0LCAweDAxNCkgIC8qIGV4cGxpY2l0IGJhcnJpZXIgKi8gICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiB0YXNrIHdhaXQgc3RhdGVzICgzMi4uNjMpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfdGFza3dhaXQsIDB4MDIwKSAgLyogd2FpdGluZyBhdCBhIHRhc2t3YWl0ICovICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfdGFza2dyb3VwLCAweDAyMSkgLyogd2FpdGluZyBhdCBhIHRhc2tncm91cCAqLyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogbXV0ZXggd2FpdCBzdGF0ZXMgKDY0Li4xMjcpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X211dGV4LCAweDA0MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2xvY2ssIDB4MDQxKSAgICAgIC8qIHdhaXRpbmcgZm9yIGxvY2sgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2NyaXRpY2FsLCAweDA0MikgIC8qIHdhaXRpbmcgZm9yIGNyaXRpY2FsICovICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2F0b21pYywgMHgwNDMpICAgIC8qIHdhaXRpbmcgZm9yIGF0b21pYyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X29yZGVyZWQsIDB4MDQ0KSAgIC8qIHdhaXRpbmcgZm9yIG9yZGVyZWQgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIC8qIHRhcmdldCB3YWl0IHN0YXRlcyAoMTI4Li4yNTUpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXQsIDB4MDgwKSAgICAgICAgLyogd2FpdGluZyBmb3IgdGFyZ2V0IHJlZ2lvbiAqLyAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfbWFwLCAweDA4MSkgICAgLyogd2FpdGluZyBmb3IgdGFyZ2V0IGRhdGEgbWFwcGluZyBvcGVyYXRpb24gKi8gXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfdXBkYXRlLCAweDA4MikgLyogd2FpdGluZyBmb3IgdGFyZ2V0IHVwZGF0ZSBvcGVyYXRpb24gKi8gICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiBtaXNjICgyNTYuLjUxMSkgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX2lkbGUsIDB4MTAwKSAgICAgICAgICAgLyogd2FpdGluZyBmb3Igd29yayAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX292ZXJoZWFkLCAweDEwMSkgICAgICAgLyogb3ZlcmhlYWQgZXhjbHVkaW5nIHdhaXQgc3RhdGVzICovICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgc3RhdGVzICg1MTIuLikgKi8KCgojZGVmaW5lIEZPUkVBQ0hfS01QX01VVEVYX0lNUEwobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX25vbmUsIDApICAgICAgICAgLyogdW5rbm93biBpbXBsZW1lbnRhdGlvbiAqLyAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3NwaW4sIDEpICAgICAgICAgLyogYmFzZWQgb24gc3BpbiAqLyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3F1ZXVpbmcsIDIpICAgICAgLyogYmFzZWQgb24gc29tZSBmYWlyIHBvbGljeSAqLyAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3NwZWN1bGF0aXZlLCAzKSAgLyogYmFzZWQgb24gSFctc3VwcG9ydGVkIHNwZWN1bGF0aW9uICovCgojZGVmaW5lIEZPUkVBQ0hfT01QVF9IT1NUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyotLS0gTWFuZGF0b3J5IEV2ZW50cyAtLS0qLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luLCAgICAgIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luX3QsICAgICAgIDEpIC8qIHRocmVhZCBiZWdpbiAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZCwgICAgICAgIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZF90LCAgICAgICAgIDIpIC8qIHRocmVhZCBlbmQgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfYmVnaW4sICAgIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfYmVnaW5fdCwgICAgIDMpIC8qIHBhcmFsbGVsIGJlZ2luICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kLCAgICAgIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kX3QsICAgICAgIDQpIC8qIHBhcmFsbGVsIGVuZCAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGUsICAgICAgIG9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGVfdCwgICAgICAgIDUpIC8qIHRhc2sgYmVnaW4gICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19zY2hlZHVsZSwgICAgIG9tcHRfY2FsbGJhY2tfdGFza19zY2hlZHVsZV90LCAgICAgIDYpIC8qIHRhc2sgc2NoZWR1bGUgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFzaywgICAgIG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFza190LCAgICAgIDcpIC8qIGltcGxpY2l0IHRhc2sgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfY29udHJvbF90b29sLCAgICAgIG9tcHRfY2FsbGJhY2tfY29udHJvbF90b29sX3QsICAgICAgMTEpIC8qIGNvbnRyb2wgdG9vbCAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogT3B0aW9uYWwgRXZlbnRzICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fd2FpdCwgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMTYpIC8qIHN5bmMgcmVnaW9uIHdhaXQgYmVnaW4gb3IgZW5kICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfcmVsZWFzZWQsICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMTcpIC8qIG11dGV4IHJlbGVhc2VkICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGVwZW5kZW5jZXMsICAgICAgIG9tcHRfY2FsbGJhY2tfZGVwZW5kZW5jZXNfdCwgICAgICAgMTgpIC8qIHJlcG9ydCB0YXNrIGRlcGVuZGVuY2VzICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlLCAgIG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlX3QsICAgMTkpIC8qIHJlcG9ydCB0YXNrIGRlcGVuZGVuY2UgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfd29yaywgICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfd29ya190LCAgICAgICAgICAgICAgMjApIC8qIHRhc2sgYXQgd29yayBiZWdpbiBvciBlbmQgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbWFza2VkLCAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfbWFza2VkX3QsICAgICAgICAgICAgMjEpIC8qIHRhc2sgYXQgbWFza2VkIGJlZ2luIG9yIGVuZCAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb24sICAgICAgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMjMpIC8qIHN5bmMgcmVnaW9uIGJlZ2luIG9yIGVuZCAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbG9ja19pbml0LCAgICAgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZV90LCAgICAgMjQpIC8qIGxvY2sgaW5pdCAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbG9ja19kZXN0cm95LCAgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMjUpIC8qIGxvY2sgZGVzdHJveSAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZSwgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZV90LCAgICAgMjYpIC8qIG11dGV4IGFjcXVpcmUgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZWQsICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMjcpIC8qIG11dGV4IGFjcXVpcmVkICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrLCAgICAgICAgIG9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrX3QsICAgICAgICAgMjgpIC8qIG5lc3QgbG9jayAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZmx1c2gsICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZmx1c2hfdCwgICAgICAgICAgICAgMjkpIC8qIGFmdGVyIGV4ZWN1dGluZyBmbHVzaCAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfY2FuY2VsLCAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfY2FuY2VsX3QsICAgICAgICAgICAgMzApIC8qIGNhbmNlbCBpbm5lcm1vc3QgYmluZGluZyByZWdpb24gKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcmVkdWN0aW9uLCAgICAgICAgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMzEpIC8qIHJlZHVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGlzcGF0Y2gsICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZGlzcGF0Y2hfdCwgICAgICAgICAgMzIpIC8qIGRpc3BhdGNoIG9mIHdvcmsgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZXJyb3IsICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZXJyb3JfdCwgICAgICAgICAgICAgMzcpIC8qIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCgojZGVmaW5lIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2luaXRpYWxpemUsIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2luaXRpYWxpemVfdCwgMTIpIC8qIGRldmljZSBpbml0aWFsaXplICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplLCAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplX3QsICAgMTMpIC8qIGRldmljZSBmaW5hbGl6ZSAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2xvYWQsICAgICAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2xvYWRfdCwgICAgICAgMTQpIC8qIGRldmljZSBsb2FkICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX3VubG9hZCwgICAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX3VubG9hZF90LCAgICAgMTUpIC8qIGRldmljZSB1bmxvYWQgICAgICAgICAgICAgICAgICAgKi8gXAoKCiNkZWZpbmUgRk9SRUFDSF9PTVBUX05PRU1JX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXQsICAgICAgICAgICAgb21wdF9jYWxsYmFja190YXJnZXRfdCwgICAgICAgICAgICAgOCkgLyogdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcCwgICAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF90LCAgICAgOSkgLyogdGFyZ2V0IGRhdGEgb3AgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0LCAgICAgb21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0X3QsICAgICAxMCkgLyogdGFyZ2V0ICBzdWJtaXQgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfbWFwLCAgICAgICAgb21wdF9jYWxsYmFja190YXJnZXRfbWFwX3QsICAgICAgICAyMikgLyogdGFyZ2V0IG1hcCAgICAgICAgICAgICAgICAgICAgICAqLyBcCgoKI2RlZmluZSBGT1JFQUNIX09NUFRfRU1JX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9lbWksICAgICAgICBvbXB0X2NhbGxiYWNrX3RhcmdldF9lbWlfdCwgICAgICAgIDMzKSAvKiB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX2VtaSxvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX2VtaV90LDM0KSAvKiB0YXJnZXQgZGF0YSBvcCAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pLCBvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pX3QsIDM1KSAvKiB0YXJnZXQgc3VibWl0ICAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9tYXBfZW1pLCAgICBvbXB0X2NhbGxiYWNrX3RhcmdldF9tYXBfZW1pX3QsICAgIDM2KSAvKiB0YXJnZXQgbWFwICAgICAgICAgICAgICAgICAgICAgICovIFwKCiNkZWZpbmUgRk9SRUFDSF9PTVBUXzUwX1RBUkdFVF9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBGT1JFQUNIX09NUFRfREVWSUNFX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBGT1JFQUNIX09NUFRfTk9FTUlfRVZFTlQobWFjcm8pIAoKI2RlZmluZSBGT1JFQUNIX09NUFRfNTFfVEFSR0VUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9FTUlfRVZFTlQobWFjcm8pIAoKI2RlZmluZSBGT1JFQUNIX09NUFRfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9IT1NUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9OT0VNSV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9FTUlfRVZFTlQobWFjcm8pCgojZGVmaW5lIEZPUkVBQ0hfT01QVF81MV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0hPU1RfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0RFVklDRV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0VNSV9FVkVOVChtYWNybykKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyB0eXBlcwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgp0eXBlZGVmIGVudW0ga21wX211dGV4X2ltcGxfdCB7CiNkZWZpbmUga21wX211dGV4X2ltcGxfbWFjcm8oaW1wbCwgY29kZSkgaW1wbCA9IGNvZGUsCiAgICBGT1JFQUNIX0tNUF9NVVRFWF9JTVBMKGttcF9tdXRleF9pbXBsX21hY3JvKQojdW5kZWYga21wX211dGV4X2ltcGxfbWFjcm8KfSBrbXBfbXV0ZXhfaW1wbF90OwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIGRlZmluaXRpb25zIGdlbmVyYXRlZCBmcm9tIHNwZWMKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKdHlwZWRlZiBlbnVtIG9tcHRfY2FsbGJhY2tzX3QgewogIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luICAgICAgICAgICAgID0gMSwKICBvbXB0X2NhbGxiYWNrX3RocmVhZF9lbmQgICAgICAgICAgICAgICA9IDIsCiAgb21wdF9jYWxsYmFja19wYXJhbGxlbF9iZWdpbiAgICAgICAgICAgPSAzLAogIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kICAgICAgICAgICAgID0gNCwKICBvbXB0X2NhbGxiYWNrX3Rhc2tfY3JlYXRlICAgICAgICAgICAgICA9IDUsCiAgb21wdF9jYWxsYmFja190YXNrX3NjaGVkdWxlICAgICAgICAgICAgPSA2LAogIG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFzayAgICAgICAgICAgID0gNywKICBvbXB0X2NhbGxiYWNrX3RhcmdldCAgICAgICAgICAgICAgICAgICA9IDgsCiAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcCAgICAgICAgICAgPSA5LAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X3N1Ym1pdCAgICAgICAgICAgID0gMTAsCiAgb21wdF9jYWxsYmFja19jb250cm9sX3Rvb2wgICAgICAgICAgICAgPSAxMSwKICBvbXB0X2NhbGxiYWNrX2RldmljZV9pbml0aWFsaXplICAgICAgICA9IDEyLAogIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplICAgICAgICAgID0gMTMsCiAgb21wdF9jYWxsYmFja19kZXZpY2VfbG9hZCAgICAgICAgICAgICAgPSAxNCwKICBvbXB0X2NhbGxiYWNrX2RldmljZV91bmxvYWQgICAgICAgICAgICA9IDE1LAogIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fd2FpdCAgICAgICAgID0gMTYsCiAgb21wdF9jYWxsYmFja19tdXRleF9yZWxlYXNlZCAgICAgICAgICAgPSAxNywKICBvbXB0X2NhbGxiYWNrX2RlcGVuZGVuY2VzICAgICAgICAgICAgICA9IDE4LAogIG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlICAgICAgICAgID0gMTksCiAgb21wdF9jYWxsYmFja193b3JrICAgICAgICAgICAgICAgICAgICAgPSAyMCwKICBvbXB0X2NhbGxiYWNrX21hc3RlciAgICAgREVQUkVDQVRFRF81MSA9IDIxLAogIG9tcHRfY2FsbGJhY2tfbWFza2VkICAgICAgICAgICAgICAgICAgID0gMjEsCiAgb21wdF9jYWxsYmFja190YXJnZXRfbWFwICAgICAgICAgICAgICAgPSAyMiwKICBvbXB0X2NhbGxiYWNrX3N5bmNfcmVnaW9uICAgICAgICAgICAgICA9IDIzLAogIG9tcHRfY2FsbGJhY2tfbG9ja19pbml0ICAgICAgICAgICAgICAgID0gMjQsCiAgb21wdF9jYWxsYmFja19sb2NrX2Rlc3Ryb3kgICAgICAgICAgICAgPSAyNSwKICBvbXB0X2NhbGxiYWNrX211dGV4X2FjcXVpcmUgICAgICAgICAgICA9IDI2LAogIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZWQgICAgICAgICAgID0gMjcsCiAgb21wdF9jYWxsYmFja19uZXN0X2xvY2sgICAgICAgICAgICAgICAgPSAyOCwKICBvbXB0X2NhbGxiYWNrX2ZsdXNoICAgICAgICAgICAgICAgICAgICA9IDI5LAogIG9tcHRfY2FsbGJhY2tfY2FuY2VsICAgICAgICAgICAgICAgICAgID0gMzAsCiAgb21wdF9jYWxsYmFja19yZWR1Y3Rpb24gICAgICAgICAgICAgICAgPSAzMSwKICBvbXB0X2NhbGxiYWNrX2Rpc3BhdGNoICAgICAgICAgICAgICAgICA9IDMyLAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X2VtaSAgICAgICAgICAgICAgID0gMzMsCiAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF9lbWkgICAgICAgPSAzNCwKICBvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pICAgICAgICA9IDM1LAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X21hcF9lbWkgICAgICAgICAgID0gMzYsCiAgb21wdF9jYWxsYmFja19lcnJvciAgICAgICAgICAgICAgICAgICAgPSAzNwp9IG9tcHRfY2FsbGJhY2tzX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9yZWNvcmRfdCB7CiAgb21wdF9yZWNvcmRfb21wdCAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3JlY29yZF9uYXRpdmUgICAgICAgICAgICAgPSAyLAogIG9tcHRfcmVjb3JkX2ludmFsaWQgICAgICAgICAgICA9IDMKfSBvbXB0X3JlY29yZF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfcmVjb3JkX25hdGl2ZV90IHsKICBvbXB0X3JlY29yZF9uYXRpdmVfaW5mbyAgPSAxLAogIG9tcHRfcmVjb3JkX25hdGl2ZV9ldmVudCA9IDIKfSBvbXB0X3JlY29yZF9uYXRpdmVfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3NldF9yZXN1bHRfdCB7CiAgb21wdF9zZXRfZXJyb3IgICAgICAgICAgICA9IDAsCiAgb21wdF9zZXRfbmV2ZXIgICAgICAgICAgICA9IDEsCiAgb21wdF9zZXRfaW1wb3NzaWJsZSAgICAgICA9IDIsCiAgb21wdF9zZXRfc29tZXRpbWVzICAgICAgICA9IDMsCiAgb21wdF9zZXRfc29tZXRpbWVzX3BhaXJlZCA9IDQsCiAgb21wdF9zZXRfYWx3YXlzICAgICAgICAgICA9IDUKfSBvbXB0X3NldF9yZXN1bHRfdDsKCnR5cGVkZWYgdWludDY0X3Qgb21wdF9pZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXB0X2RldmljZV90aW1lX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcHRfYnVmZmVyX2N1cnNvcl90OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGhyZWFkX3QgewogIG9tcHRfdGhyZWFkX2luaXRpYWwgICAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3RocmVhZF93b3JrZXIgICAgICAgICAgICAgICAgICA9IDIsCiAgb21wdF90aHJlYWRfb3RoZXIgICAgICAgICAgICAgICAgICAgPSAzLAogIG9tcHRfdGhyZWFkX3Vua25vd24gICAgICAgICAgICAgICAgID0gNAp9IG9tcHRfdGhyZWFkX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zY29wZV9lbmRwb2ludF90IHsKICBvbXB0X3Njb3BlX2JlZ2luICAgICAgICAgICAgICAgICAgICA9IDEsCiAgb21wdF9zY29wZV9lbmQgICAgICAgICAgICAgICAgICAgICAgPSAyLAogIG9tcHRfc2NvcGVfYmVnaW5lbmQgICAgICAgICAgICAgICAgID0gMwp9IG9tcHRfc2NvcGVfZW5kcG9pbnRfdDsKCnR5cGVkZWYgZW51bSBvbXB0X2Rpc3BhdGNoX3QgewogIG9tcHRfZGlzcGF0Y2hfaXRlcmF0aW9uICAgICAgICAgICAgID0gMSwKICBvbXB0X2Rpc3BhdGNoX3NlY3Rpb24gICAgICAgICAgICAgICA9IDIKfSBvbXB0X2Rpc3BhdGNoX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zeW5jX3JlZ2lvbl90IHsKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXIgICAgICAgICAgICAgICAgREVQUkVDQVRFRF81MSA9IDEsCiAgb21wdF9zeW5jX3JlZ2lvbl9iYXJyaWVyX2ltcGxpY2l0ICAgICAgIERFUFJFQ0FURURfNTEgPSAyLAogIG9tcHRfc3luY19yZWdpb25fYmFycmllcl9leHBsaWNpdCAgICAgICA9IDMsCiAgb21wdF9zeW5jX3JlZ2lvbl9iYXJyaWVyX2ltcGxlbWVudGF0aW9uID0gNCwKICBvbXB0X3N5bmNfcmVnaW9uX3Rhc2t3YWl0ICAgICAgICAgICAgICAgPSA1LAogIG9tcHRfc3luY19yZWdpb25fdGFza2dyb3VwICAgICAgICAgICAgICA9IDYsCiAgb21wdF9zeW5jX3JlZ2lvbl9yZWR1Y3Rpb24gICAgICAgICAgICAgID0gNywKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXJfaW1wbGljaXRfd29ya3NoYXJlID0gOCwKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXJfaW1wbGljaXRfcGFyYWxsZWwgPSA5LAogIG9tcHRfc3luY19yZWdpb25fYmFycmllcl90ZWFtcyA9IDEwCn0gb21wdF9zeW5jX3JlZ2lvbl90OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCB7CiAgb21wdF90YXJnZXRfZGF0YV9hbGxvYyAgICAgICAgICAgICAgICAgICAgICA9IDEsCiAgb21wdF90YXJnZXRfZGF0YV90cmFuc2Zlcl90b19kZXZpY2UgICAgICAgICA9IDIsCiAgb21wdF90YXJnZXRfZGF0YV90cmFuc2Zlcl9mcm9tX2RldmljZSAgICAgICA9IDMsCiAgb21wdF90YXJnZXRfZGF0YV9kZWxldGUgICAgICAgICAgICAgICAgICAgICA9IDQsCiAgb21wdF90YXJnZXRfZGF0YV9hc3NvY2lhdGUgICAgICAgICAgICAgICAgICA9IDUsCiAgb21wdF90YXJnZXRfZGF0YV9kaXNhc3NvY2lhdGUgICAgICAgICAgICAgICA9IDYsCiAgb21wdF90YXJnZXRfZGF0YV9hbGxvY19hc3luYyAgICAgICAgICAgICAgICA9IDE3LAogIG9tcHRfdGFyZ2V0X2RhdGFfdHJhbnNmZXJfdG9fZGV2aWNlX2FzeW5jICAgPSAxOCwKICBvbXB0X3RhcmdldF9kYXRhX3RyYW5zZmVyX2Zyb21fZGV2aWNlX2FzeW5jID0gMTksCiAgb21wdF90YXJnZXRfZGF0YV9kZWxldGVfYXN5bmMgICAgICAgICAgICAgICA9IDIwCn0gb21wdF90YXJnZXRfZGF0YV9vcF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfd29ya190IHsKICBvbXB0X3dvcmtfbG9vcCAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3dvcmtfc2VjdGlvbnMgICAgICAgICAgID0gMiwKICBvbXB0X3dvcmtfc2luZ2xlX2V4ZWN1dG9yICAgID0gMywKICBvbXB0X3dvcmtfc2luZ2xlX290aGVyICAgICAgID0gNCwKICBvbXB0X3dvcmtfd29ya3NoYXJlICAgICAgICAgID0gNSwKICBvbXB0X3dvcmtfZGlzdHJpYnV0ZSAgICAgICAgID0gNiwKICBvbXB0X3dvcmtfdGFza2xvb3AgICAgICAgICAgID0gNywKICBvbXB0X3dvcmtfc2NvcGUgICAgICAgICAgICAgID0gOAp9IG9tcHRfd29ya190OwoKdHlwZWRlZiBlbnVtIG9tcHRfbXV0ZXhfdCB7CiAgb21wdF9tdXRleF9sb2NrICAgICAgICAgICAgICAgICAgICAgPSAxLAogIG9tcHRfbXV0ZXhfdGVzdF9sb2NrICAgICAgICAgICAgICAgID0gMiwKICBvbXB0X211dGV4X25lc3RfbG9jayAgICAgICAgICAgICAgICA9IDMsCiAgb21wdF9tdXRleF90ZXN0X25lc3RfbG9jayAgICAgICAgICAgPSA0LAogIG9tcHRfbXV0ZXhfY3JpdGljYWwgICAgICAgICAgICAgICAgID0gNSwKICBvbXB0X211dGV4X2F0b21pYyAgICAgICAgICAgICAgICAgICA9IDYsCiAgb21wdF9tdXRleF9vcmRlcmVkICAgICAgICAgICAgICAgICAgPSA3Cn0gb21wdF9tdXRleF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfbmF0aXZlX21vbl9mbGFnX3QgewogIG9tcHRfbmF0aXZlX2RhdGFfbW90aW9uX2V4cGxpY2l0ICAgID0gMHgwMSwKICBvbXB0X25hdGl2ZV9kYXRhX21vdGlvbl9pbXBsaWNpdCAgICA9IDB4MDIsCiAgb21wdF9uYXRpdmVfa2VybmVsX2ludm9jYXRpb24gICAgICAgPSAweDA0LAogIG9tcHRfbmF0aXZlX2tlcm5lbF9leGVjdXRpb24gICAgICAgID0gMHgwOCwKICBvbXB0X25hdGl2ZV9kcml2ZXIgICAgICAgICAgICAgICAgICA9IDB4MTAsCiAgb21wdF9uYXRpdmVfcnVudGltZSAgICAgICAgICAgICAgICAgPSAweDIwLAogIG9tcHRfbmF0aXZlX292ZXJoZWFkICAgICAgICAgICAgICAgID0gMHg0MCwKICBvbXB0X25hdGl2ZV9pZGxlbmVzcyAgICAgICAgICAgICAgICA9IDB4ODAKfSBvbXB0X25hdGl2ZV9tb25fZmxhZ190OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFza19mbGFnX3QgewogIG9tcHRfdGFza19pbml0aWFsICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKICBvbXB0X3Rhc2tfaW1wbGljaXQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCiAgb21wdF90YXNrX2V4cGxpY2l0ICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAogIG9tcHRfdGFza190YXJnZXQgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwKICBvbXB0X3Rhc2tfdGFza3dhaXQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMTAsCiAgb21wdF90YXNrX3VuZGVmZXJyZWQgICAgICAgICAgICAgICAgPSAweDA4MDAwMDAwLAogIG9tcHRfdGFza191bnRpZWQgICAgICAgICAgICAgICAgICAgID0gMHgxMDAwMDAwMCwKICBvbXB0X3Rhc2tfZmluYWwgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMDAwMDAsCiAgb21wdF90YXNrX21lcmdlYWJsZSAgICAgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAogIG9tcHRfdGFza19tZXJnZWQgICAgICAgICAgICAgICAgICAgID0gMHg4MDAwMDAwMAp9IG9tcHRfdGFza19mbGFnX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF90YXNrX3N0YXR1c190IHsKICBvbXB0X3Rhc2tfY29tcGxldGUgICAgICA9IDEsCiAgb21wdF90YXNrX3lpZWxkICAgICAgICAgPSAyLAogIG9tcHRfdGFza19jYW5jZWwgICAgICAgID0gMywKICBvbXB0X3Rhc2tfZGV0YWNoICAgICAgICA9IDQsCiAgb21wdF90YXNrX2Vhcmx5X2Z1bGZpbGwgPSA1LAogIG9tcHRfdGFza19sYXRlX2Z1bGZpbGwgID0gNiwKICBvbXB0X3Rhc2tfc3dpdGNoICAgICAgICA9IDcsCiAgb21wdF90YXNrd2FpdF9jb21wbGV0ZSAgPSA4Cn0gb21wdF90YXNrX3N0YXR1c190OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFyZ2V0X3QgewogIG9tcHRfdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3RhcmdldF9lbnRlcl9kYXRhICAgICAgICAgICAgICA9IDIsCiAgb21wdF90YXJnZXRfZXhpdF9kYXRhICAgICAgICAgICAgICAgPSAzLAogIG9tcHRfdGFyZ2V0X3VwZGF0ZSAgICAgICAgICAgICAgICAgID0gNCwKICBvbXB0X3RhcmdldF9ub3dhaXQgICAgICAgICAgICAgICAgICA9IDksCiAgb21wdF90YXJnZXRfZW50ZXJfZGF0YV9ub3dhaXQgICAgICAgPSAxMCwKICBvbXB0X3RhcmdldF9leGl0X2RhdGFfbm93YWl0ICAgICAgICA9IDExLAogIG9tcHRfdGFyZ2V0X3VwZGF0ZV9ub3dhaXQgICAgICAgICAgID0gMTIKfSBvbXB0X3RhcmdldF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfcGFyYWxsZWxfZmxhZ190IHsKICBvbXB0X3BhcmFsbGVsX2ludm9rZXJfcHJvZ3JhbSA9IDB4MDAwMDAwMDEsCiAgb21wdF9wYXJhbGxlbF9pbnZva2VyX3J1bnRpbWUgPSAweDAwMDAwMDAyLAogIG9tcHRfcGFyYWxsZWxfbGVhZ3VlICAgICAgICAgID0gMHg0MDAwMDAwMCwKICBvbXB0X3BhcmFsbGVsX3RlYW0gICAgICAgICAgICA9IDB4ODAwMDAwMDAKfSBvbXB0X3BhcmFsbGVsX2ZsYWdfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3RhcmdldF9tYXBfZmxhZ190IHsKICBvbXB0X3RhcmdldF9tYXBfZmxhZ190byAgICAgICAgICAgICA9IDB4MDEsCiAgb21wdF90YXJnZXRfbWFwX2ZsYWdfZnJvbSAgICAgICAgICAgPSAweDAyLAogIG9tcHRfdGFyZ2V0X21hcF9mbGFnX2FsbG9jICAgICAgICAgID0gMHgwNCwKICBvbXB0X3RhcmdldF9tYXBfZmxhZ19yZWxlYXNlICAgICAgICA9IDB4MDgsCiAgb21wdF90YXJnZXRfbWFwX2ZsYWdfZGVsZXRlICAgICAgICAgPSAweDEwLAogIG9tcHRfdGFyZ2V0X21hcF9mbGFnX2ltcGxpY2l0ICAgICAgID0gMHgyMAp9IG9tcHRfdGFyZ2V0X21hcF9mbGFnX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9kZXBlbmRlbmNlX3R5cGVfdCB7CiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfaW4gICAgICAgICAgICAgID0gMSwKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV9vdXQgICAgICAgICAgICAgPSAyLAogIG9tcHRfZGVwZW5kZW5jZV90eXBlX2lub3V0ICAgICAgICAgICA9IDMsCiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfbXV0ZXhpbm91dHNldCAgID0gNCwKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV9zb3VyY2UgICAgICAgICAgPSA1LAogIG9tcHRfZGVwZW5kZW5jZV90eXBlX3NpbmsgICAgICAgICAgICA9IDYsCiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfaW5vdXRzZXQgICAgICAgID0gNwp9IG9tcHRfZGVwZW5kZW5jZV90eXBlX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zZXZlcml0eV90IHsKICBvbXB0X3dhcm5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAogIG9tcHRfZmF0YWwgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIKfSBvbXB0X3NldmVyaXR5X3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9jYW5jZWxfZmxhZ190IHsKICBvbXB0X2NhbmNlbF9wYXJhbGxlbCAgICAgICA9IDB4MDEsCiAgb21wdF9jYW5jZWxfc2VjdGlvbnMgICAgICAgPSAweDAyLAogIG9tcHRfY2FuY2VsX2xvb3AgICAgICAgICAgID0gMHgwNCwKICBvbXB0X2NhbmNlbF90YXNrZ3JvdXAgICAgICA9IDB4MDgsCiAgb21wdF9jYW5jZWxfYWN0aXZhdGVkICAgICAgPSAweDEwLAogIG9tcHRfY2FuY2VsX2RldGVjdGVkICAgICAgID0gMHgyMCwKICBvbXB0X2NhbmNlbF9kaXNjYXJkZWRfdGFzayA9IDB4NDAKfSBvbXB0X2NhbmNlbF9mbGFnX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcHRfaHdpZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXB0X3dhaXRfaWRfdDsKCnR5cGVkZWYgZW51bSBvbXB0X2ZyYW1lX2ZsYWdfdCB7CiAgb21wdF9mcmFtZV9ydW50aW1lICAgICAgICA9IDB4MDAsCiAgb21wdF9mcmFtZV9hcHBsaWNhdGlvbiAgICA9IDB4MDEsCiAgb21wdF9mcmFtZV9jZmEgICAgICAgICAgICA9IDB4MTAsCiAgb21wdF9mcmFtZV9mcmFtZXBvaW50ZXIgICA9IDB4MjAsCiAgb21wdF9mcmFtZV9zdGFja2FkZHJlc3MgICA9IDB4MzAKfSBvbXB0X2ZyYW1lX2ZsYWdfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3N0YXRlX3QgewogIG9tcHRfc3RhdGVfd29ya19zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMCwKICBvbXB0X3N0YXRlX3dvcmtfcGFyYWxsZWwgICAgICAgICAgICAgICAgICAgID0gMHgwMDEsCiAgb21wdF9zdGF0ZV93b3JrX3JlZHVjdGlvbiAgICAgICAgICAgICAgICAgICA9IDB4MDAyLAoKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllciAgICAgICAgICAgICAgICAgICAgIERFUFJFQ0FURURfNTEgPSAweDAxMCwKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsaWNpdF9wYXJhbGxlbCAgID0gMHgwMTEsCiAgb21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfaW1wbGljaXRfd29ya3NoYXJlICA9IDB4MDEyLAogIG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2ltcGxpY2l0ICAgICAgICAgICAgREVQUkVDQVRFRF81MSA9IDB4MDEzLAogIG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2V4cGxpY2l0ICAgICAgICAgICAgPSAweDAxNCwKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsZW1lbnRhdGlvbiAgICAgID0gMHgwMTUsCiAgb21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfdGVhbXMgICAgICAgICAgICAgICA9IDB4MDE2LAoKICBvbXB0X3N0YXRlX3dhaXRfdGFza3dhaXQgICAgICAgICAgICAgICAgICAgID0gMHgwMjAsCiAgb21wdF9zdGF0ZV93YWl0X3Rhc2tncm91cCAgICAgICAgICAgICAgICAgICA9IDB4MDIxLAoKICBvbXB0X3N0YXRlX3dhaXRfbXV0ZXggICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDAsCiAgb21wdF9zdGF0ZV93YWl0X2xvY2sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDQxLAogIG9tcHRfc3RhdGVfd2FpdF9jcml0aWNhbCAgICAgICAgICAgICAgICAgICAgPSAweDA0MiwKICBvbXB0X3N0YXRlX3dhaXRfYXRvbWljICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDMsCiAgb21wdF9zdGF0ZV93YWl0X29yZGVyZWQgICAgICAgICAgICAgICAgICAgICA9IDB4MDQ0LAoKICBvbXB0X3N0YXRlX3dhaXRfdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgID0gMHgwODAsCiAgb21wdF9zdGF0ZV93YWl0X3RhcmdldF9tYXAgICAgICAgICAgICAgICAgICA9IDB4MDgxLAogIG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfdXBkYXRlICAgICAgICAgICAgICAgPSAweDA4MiwKCiAgb21wdF9zdGF0ZV9pZGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwLAogIG9tcHRfc3RhdGVfb3ZlcmhlYWQgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMSwKICBvbXB0X3N0YXRlX3VuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMDIKfSBvbXB0X3N0YXRlX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90ICgqb21wdF9nZXRfdW5pcXVlX2lkX3QpICh2b2lkKTsKCnR5cGVkZWYgdWludDY0X3Qgb21wZF9zaXplX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcGRfd2FpdF9pZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX2FkZHJfdDsKdHlwZWRlZiBpbnQ2NF90ICBvbXBkX3dvcmRfdDsKdHlwZWRlZiB1aW50NjRfdCBvbXBkX3NlZ190OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX2RldmljZV90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX3RocmVhZF9pZF90OwoKdHlwZWRlZiBlbnVtIG9tcGRfc2NvcGVfdCB7CiAgb21wZF9zY29wZV9nbG9iYWwgPSAxLAogIG9tcGRfc2NvcGVfYWRkcmVzc19zcGFjZSA9IDIsCiAgb21wZF9zY29wZV90aHJlYWQgPSAzLAogIG9tcGRfc2NvcGVfcGFyYWxsZWwgPSA0LAogIG9tcGRfc2NvcGVfaW1wbGljaXRfdGFzayA9IDUsCiAgb21wZF9zY29wZV90YXNrID0gNgp9IG9tcGRfc2NvcGVfdDsKCnR5cGVkZWYgdWludDY0X3Qgb21wZF9pY3ZfaWRfdDsKCnR5cGVkZWYgZW51bSBvbXBkX3JjX3QgewogIG9tcGRfcmNfb2sgPSAwLAogIG9tcGRfcmNfdW5hdmFpbGFibGUgPSAxLAogIG9tcGRfcmNfc3RhbGVfaGFuZGxlID0gMiwKICBvbXBkX3JjX2JhZF9pbnB1dCA9IDMsCiAgb21wZF9yY19lcnJvciA9IDQsCiAgb21wZF9yY191bnN1cHBvcnRlZCA9IDUsCiAgb21wZF9yY19uZWVkc19zdGF0ZV90cmFja2luZyA9IDYsCiAgb21wZF9yY19pbmNvbXBhdGlibGUgPSA3LAogIG9tcGRfcmNfZGV2aWNlX3JlYWRfZXJyb3IgPSA4LAogIG9tcGRfcmNfZGV2aWNlX3dyaXRlX2Vycm9yID0gOSwKICBvbXBkX3JjX25vbWVtID0gMTAsCiAgb21wZF9yY19pbmNvbXBsZXRlID0gMTEsCiAgb21wZF9yY19jYWxsYmFja19lcnJvciA9IDEyCn0gb21wZF9yY190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9pbnRlcmZhY2VfZm5fdCkgKHZvaWQpOwoKdHlwZWRlZiBvbXB0X2ludGVyZmFjZV9mbl90ICgqb21wdF9mdW5jdGlvbl9sb29rdXBfdCkgKAogIGNvbnN0IGNoYXIgKmludGVyZmFjZV9mdW5jdGlvbl9uYW1lCik7Cgp0eXBlZGVmIHVuaW9uIG9tcHRfZGF0YV90IHsKICB1aW50NjRfdCB2YWx1ZTsKICB2b2lkICpwdHI7Cn0gb21wdF9kYXRhX3Q7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X2ZyYW1lX3QgewogIG9tcHRfZGF0YV90IGV4aXRfZnJhbWU7CiAgb21wdF9kYXRhX3QgZW50ZXJfZnJhbWU7CiAgaW50IGV4aXRfZnJhbWVfZmxhZ3M7CiAgaW50IGVudGVyX2ZyYW1lX2ZsYWdzOwp9IG9tcHRfZnJhbWVfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdCkgKHZvaWQpOwoKdHlwZWRlZiB2b2lkIG9tcHRfZGV2aWNlX3Q7Cgp0eXBlZGVmIHZvaWQgb21wdF9idWZmZXJfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfYnVmZmVyX3JlcXVlc3RfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIG9tcHRfYnVmZmVyX3QgKipidWZmZXIsCiAgc2l6ZV90ICpieXRlcwopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19idWZmZXJfY29tcGxldGVfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBzaXplX3QgYnl0ZXMsCiAgb21wdF9idWZmZXJfY3Vyc29yX3QgYmVnaW4sCiAgaW50IGJ1ZmZlcl9vd25lZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9maW5hbGl6ZV90KSAoCiAgb21wdF9kYXRhX3QgKnRvb2xfZGF0YQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2luaXRpYWxpemVfdCkgKAogIG9tcHRfZnVuY3Rpb25fbG9va3VwX3QgbG9va3VwLAogIGludCBpbml0aWFsX2RldmljZV9udW0sCiAgb21wdF9kYXRhX3QgKnRvb2xfZGF0YQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9zdGFydF90b29sX3Jlc3VsdF90IHsKICBvbXB0X2luaXRpYWxpemVfdCBpbml0aWFsaXplOwogIG9tcHRfZmluYWxpemVfdCBmaW5hbGl6ZTsKICBvbXB0X2RhdGFfdCB0b29sX2RhdGE7Cn0gb21wdF9zdGFydF90b29sX3Jlc3VsdF90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfYWJzdHJhY3RfdCB7CiAgb21wdF9yZWNvcmRfbmF0aXZlX3QgcmNsYXNzOwogIGNvbnN0IGNoYXIgKnR5cGU7CiAgb21wdF9kZXZpY2VfdGltZV90IHN0YXJ0X3RpbWU7CiAgb21wdF9kZXZpY2VfdGltZV90IGVuZF90aW1lOwogIG9tcHRfaHdpZF90IGh3aWQ7Cn0gb21wdF9yZWNvcmRfYWJzdHJhY3RfdDsKCnR5cGVkZWYgc3RydWN0IG9tcHRfZGVwZW5kZW5jZV90IHsKICBvbXB0X2RhdGFfdCB2YXJpYWJsZTsKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV90IGRlcGVuZGVuY2VfdHlwZTsKfSBvbXB0X2RlcGVuZGVuY2VfdDsKCnR5cGVkZWYgaW50ICgqb21wdF9lbnVtZXJhdGVfc3RhdGVzX3QpICgKICBpbnQgY3VycmVudF9zdGF0ZSwKICBpbnQgKm5leHRfc3RhdGUsCiAgY29uc3QgY2hhciAqKm5leHRfc3RhdGVfbmFtZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2VudW1lcmF0ZV9tdXRleF9pbXBsc190KSAoCiAgaW50IGN1cnJlbnRfaW1wbCwKICBpbnQgKm5leHRfaW1wbCwKICBjb25zdCBjaGFyICoqbmV4dF9pbXBsX25hbWUKKTsKCnR5cGVkZWYgb21wdF9zZXRfcmVzdWx0X3QgKCpvbXB0X3NldF9jYWxsYmFja190KSAoCiAgb21wdF9jYWxsYmFja3NfdCBldmVudCwKICBvbXB0X2NhbGxiYWNrX3QgY2FsbGJhY2sKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfY2FsbGJhY2tfdCkgKAogIG9tcHRfY2FsbGJhY2tzX3QgZXZlbnQsCiAgb21wdF9jYWxsYmFja190ICpjYWxsYmFjawopOwoKdHlwZWRlZiBvbXB0X2RhdGFfdCAqKCpvbXB0X2dldF90aHJlYWRfZGF0YV90KSAodm9pZCk7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X251bV9wcm9jc190KSAodm9pZCk7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X251bV9wbGFjZXNfdCkgKHZvaWQpOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF9wbGFjZV9wcm9jX2lkc190KSAoCiAgaW50IHBsYWNlX251bSwKICBpbnQgaWRzX3NpemUsCiAgaW50ICppZHMKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGxhY2VfbnVtX3QpICh2b2lkKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGFydGl0aW9uX3BsYWNlX251bXNfdCkgKAogIGludCBwbGFjZV9udW1zX3NpemUsCiAgaW50ICpwbGFjZV9udW1zCik7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X3Byb2NfaWRfdCkgKHZvaWQpOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF9zdGF0ZV90KSAoCiAgb21wdF93YWl0X2lkX3QgKndhaXRfaWQKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGFyYWxsZWxfaW5mb190KSAoCiAgaW50IGFuY2VzdG9yX2xldmVsLAogIG9tcHRfZGF0YV90ICoqcGFyYWxsZWxfZGF0YSwKICBpbnQgKnRlYW1fc2l6ZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF90YXNrX2luZm9fdCkgKAogIGludCBhbmNlc3Rvcl9sZXZlbCwKICBpbnQgKmZsYWdzLAogIG9tcHRfZGF0YV90ICoqdGFza19kYXRhLAogIG9tcHRfZnJhbWVfdCAqKnRhc2tfZnJhbWUsCiAgb21wdF9kYXRhX3QgKipwYXJhbGxlbF9kYXRhLAogIGludCAqdGhyZWFkX251bQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF90YXNrX21lbW9yeV90KSgKICB2b2lkICoqYWRkciwKICBzaXplX3QgKnNpemUsCiAgaW50IGJsb2NrCik7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X3RhcmdldF9pbmZvX3QpICgKICB1aW50NjRfdCAqZGV2aWNlX251bSwKICBvbXB0X2lkX3QgKnRhcmdldF9pZCwKICBvbXB0X2lkX3QgKmhvc3Rfb3BfaWQKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfbnVtX2RldmljZXNfdCkgKHZvaWQpOwoKdHlwZWRlZiB2b2lkICgqb21wdF9maW5hbGl6ZV90b29sX3QpICh2b2lkKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfZGV2aWNlX251bV9wcm9jc190KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlCik7Cgp0eXBlZGVmIG9tcHRfZGV2aWNlX3RpbWVfdCAoKm9tcHRfZ2V0X2RldmljZV90aW1lX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgZG91YmxlICgqb21wdF90cmFuc2xhdGVfdGltZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIG9tcHRfZGV2aWNlX3RpbWVfdCB0aW1lCik7Cgp0eXBlZGVmIG9tcHRfc2V0X3Jlc3VsdF90ICgqb21wdF9zZXRfdHJhY2Vfb21wdF90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIHVuc2lnbmVkIGludCBlbmFibGUsCiAgdW5zaWduZWQgaW50IGV0eXBlCik7Cgp0eXBlZGVmIG9tcHRfc2V0X3Jlc3VsdF90ICgqb21wdF9zZXRfdHJhY2VfbmF0aXZlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UsCiAgaW50IGVuYWJsZSwKICBpbnQgZmxhZ3MKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9zdGFydF90cmFjZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIG9tcHRfY2FsbGJhY2tfYnVmZmVyX3JlcXVlc3RfdCByZXF1ZXN0LAogIG9tcHRfY2FsbGJhY2tfYnVmZmVyX2NvbXBsZXRlX3QgY29tcGxldGUKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9wYXVzZV90cmFjZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIGludCBiZWdpbl9wYXVzZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2ZsdXNoX3RyYWNlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9zdG9wX3RyYWNlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9hZHZhbmNlX2J1ZmZlcl9jdXJzb3JfdCkgKAogIG9tcHRfZGV2aWNlX3QgKmRldmljZSwKICBvbXB0X2J1ZmZlcl90ICpidWZmZXIsCiAgc2l6ZV90IHNpemUsCiAgb21wdF9idWZmZXJfY3Vyc29yX3QgY3VycmVudCwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCAqbmV4dAopOwoKdHlwZWRlZiBvbXB0X3JlY29yZF90ICgqb21wdF9nZXRfcmVjb3JkX3R5cGVfdCkgKAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCBjdXJyZW50Cik7Cgp0eXBlZGVmIHZvaWQgKigqb21wdF9nZXRfcmVjb3JkX25hdGl2ZV90KSAoCiAgb21wdF9idWZmZXJfdCAqYnVmZmVyLAogIG9tcHRfYnVmZmVyX2N1cnNvcl90IGN1cnJlbnQsCiAgb21wdF9pZF90ICpob3N0X29wX2lkCik7Cgp0eXBlZGVmIG9tcHRfcmVjb3JkX2Fic3RyYWN0X3QgKgooKm9tcHRfZ2V0X3JlY29yZF9hYnN0cmFjdF90KSAoCiAgdm9pZCAqbmF0aXZlX3JlY29yZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190aHJlYWRfYmVnaW5fdCkgKAogIG9tcHRfdGhyZWFkX3QgdGhyZWFkX3R5cGUsCiAgb21wdF9kYXRhX3QgKnRocmVhZF9kYXRhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90aHJlYWRfYmVnaW5fdCB7CiAgb21wdF90aHJlYWRfdCB0aHJlYWRfdHlwZTsKfSBvbXB0X3JlY29yZF90aHJlYWRfYmVnaW5fdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZF90KSAoCiAgb21wdF9kYXRhX3QgKnRocmVhZF9kYXRhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3BhcmFsbGVsX2JlZ2luX3QpICgKICBvbXB0X2RhdGFfdCAqZW5jb3VudGVyaW5nX3Rhc2tfZGF0YSwKICBjb25zdCBvbXB0X2ZyYW1lX3QgKmVuY291bnRlcmluZ190YXNrX2ZyYW1lLAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfcGFyYWxsZWxpc20sCiAgaW50IGZsYWdzLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3BhcmFsbGVsX2JlZ2luX3QgewogIG9tcHRfaWRfdCBlbmNvdW50ZXJpbmdfdGFza19pZDsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgdW5zaWduZWQgaW50IHJlcXVlc3RlZF9wYXJhbGxlbGlzbTsKICBpbnQgZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9wYXJhbGxlbF9iZWdpbl90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19wYXJhbGxlbF9lbmRfdCkgKAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIG9tcHRfZGF0YV90ICplbmNvdW50ZXJpbmdfdGFza19kYXRhLAogIGludCBmbGFncywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9wYXJhbGxlbF9lbmRfdCB7CiAgb21wdF9pZF90IHBhcmFsbGVsX2lkOwogIG9tcHRfaWRfdCBlbmNvdW50ZXJpbmdfdGFza19pZDsKICBpbnQgZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9wYXJhbGxlbF9lbmRfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfd29ya190KSAoCiAgb21wdF93b3JrX3Qgd3N0eXBlLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIHVpbnQ2NF90IGNvdW50LAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3dvcmtfdCB7CiAgb21wdF93b3JrX3Qgd3N0eXBlOwogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludDsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgdWludDY0X3QgY291bnQ7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF93b3JrX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2Rpc3BhdGNoX3QpICgKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfZGlzcGF0Y2hfdCBraW5kLAogIG9tcHRfZGF0YV90IGluc3RhbmNlCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9kaXNwYXRjaF90IHsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9kaXNwYXRjaF90IGtpbmQ7CiAgb21wdF9kYXRhX3QgaW5zdGFuY2U7Cn0gb21wdF9yZWNvcmRfZGlzcGF0Y2hfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGVfdCkgKAogIG9tcHRfZGF0YV90ICplbmNvdW50ZXJpbmdfdGFza19kYXRhLAogIGNvbnN0IG9tcHRfZnJhbWVfdCAqZW5jb3VudGVyaW5nX3Rhc2tfZnJhbWUsCiAgb21wdF9kYXRhX3QgKm5ld190YXNrX2RhdGEsCiAgaW50IGZsYWdzLAogIGludCBoYXNfZGVwZW5kZW5jZXMsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFza19jcmVhdGVfdCB7CiAgb21wdF9pZF90IGVuY291bnRlcmluZ190YXNrX2lkOwogIG9tcHRfaWRfdCBuZXdfdGFza19pZDsKICBpbnQgZmxhZ3M7CiAgaW50IGhhc19kZXBlbmRlbmNlczsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3Rhc2tfY3JlYXRlX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RlcGVuZGVuY2VzX3QpICgKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIGNvbnN0IG9tcHRfZGVwZW5kZW5jZV90ICpkZXBzLAogIGludCBuZGVwcwopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfZGVwZW5kZW5jZXNfdCB7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9kZXBlbmRlbmNlX3QgZGVwOwogIGludCBuZGVwczsKfSBvbXB0X3JlY29yZF9kZXBlbmRlbmNlc190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXNrX2RlcGVuZGVuY2VfdCkgKAogIG9tcHRfZGF0YV90ICpzcmNfdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICpzaW5rX3Rhc2tfZGF0YQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFza19kZXBlbmRlbmNlX3QgewogIG9tcHRfaWRfdCBzcmNfdGFza19pZDsKICBvbXB0X2lkX3Qgc2lua190YXNrX2lkOwp9IG9tcHRfcmVjb3JkX3Rhc2tfZGVwZW5kZW5jZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXNrX3NjaGVkdWxlX3QpICgKICBvbXB0X2RhdGFfdCAqcHJpb3JfdGFza19kYXRhLAogIG9tcHRfdGFza19zdGF0dXNfdCBwcmlvcl90YXNrX3N0YXR1cywKICBvbXB0X2RhdGFfdCAqbmV4dF90YXNrX2RhdGEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3Rhc2tfc2NoZWR1bGVfdCB7CiAgb21wdF9pZF90IHByaW9yX3Rhc2tfaWQ7CiAgb21wdF90YXNrX3N0YXR1c190IHByaW9yX3Rhc2tfc3RhdHVzOwogIG9tcHRfaWRfdCBuZXh0X3Rhc2tfaWQ7Cn0gb21wdF9yZWNvcmRfdGFza19zY2hlZHVsZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19pbXBsaWNpdF90YXNrX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF9kYXRhX3QgKnBhcmFsbGVsX2RhdGEsCiAgb21wdF9kYXRhX3QgKnRhc2tfZGF0YSwKICB1bnNpZ25lZCBpbnQgYWN0dWFsX3BhcmFsbGVsaXNtLAogIHVuc2lnbmVkIGludCBpbmRleCwKICBpbnQgZmxhZ3MKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX2ltcGxpY2l0X3Rhc2tfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICB1bnNpZ25lZCBpbnQgYWN0dWFsX3BhcmFsbGVsaXNtOwogIHVuc2lnbmVkIGludCBpbmRleDsKICBpbnQgZmxhZ3M7Cn0gb21wdF9yZWNvcmRfaW1wbGljaXRfdGFza190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19tYXNrZWRfdCkgKAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgb21wdF9jYWxsYmFja19tYXNrZWRfdCBvbXB0X2NhbGxiYWNrX21hc3Rlcl90IERFUFJFQ0FURURfNTE7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9tYXNrZWRfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX21hc2tlZF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19zeW5jX3JlZ2lvbl90KSAoCiAgb21wdF9zeW5jX3JlZ2lvbl90IGtpbmQsCiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50LAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIG9tcHRfZGF0YV90ICp0YXNrX2RhdGEsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfc3luY19yZWdpb25fdCB7CiAgb21wdF9zeW5jX3JlZ2lvbl90IGtpbmQ7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3N5bmNfcmVnaW9uX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX211dGV4X2FjcXVpcmVfdCkgKAogIG9tcHRfbXV0ZXhfdCBraW5kLAogIHVuc2lnbmVkIGludCBoaW50LAogIHVuc2lnbmVkIGludCBpbXBsLAogIG9tcHRfd2FpdF9pZF90IHdhaXRfaWQsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfbXV0ZXhfYWNxdWlyZV90IHsKICBvbXB0X211dGV4X3Qga2luZDsKICB1bnNpZ25lZCBpbnQgaGludDsKICB1bnNpZ25lZCBpbnQgaW1wbDsKICBvbXB0X3dhaXRfaWRfdCB3YWl0X2lkOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfbXV0ZXhfYWNxdWlyZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19tdXRleF90KSAoCiAgb21wdF9tdXRleF90IGtpbmQsCiAgb21wdF93YWl0X2lkX3Qgd2FpdF9pZCwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9tdXRleF90IHsKICBvbXB0X211dGV4X3Qga2luZDsKICBvbXB0X3dhaXRfaWRfdCB3YWl0X2lkOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfbXV0ZXhfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF93YWl0X2lkX3Qgd2FpdF9pZCwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfd2FpdF9pZF90IHdhaXRfaWQ7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfZmx1c2hfdCkgKAogIG9tcHRfZGF0YV90ICp0aHJlYWRfZGF0YSwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9mbHVzaF90IHsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX2ZsdXNoX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2NhbmNlbF90KSAoCiAgb21wdF9kYXRhX3QgKnRhc2tfZGF0YSwKICBpbnQgZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfY2FuY2VsX3QgewogIG9tcHRfaWRfdCB0YXNrX2lkOwogIGludCBmbGFnczsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX2NhbmNlbF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19kZXZpY2VfaW5pdGlhbGl6ZV90KSAoCiAgaW50IGRldmljZV9udW0sCiAgY29uc3QgY2hhciAqdHlwZSwKICBvbXB0X2RldmljZV90ICpkZXZpY2UsCiAgb21wdF9mdW5jdGlvbl9sb29rdXBfdCBsb29rdXAsCiAgY29uc3QgY2hhciAqZG9jdW1lbnRhdGlvbgopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19kZXZpY2VfZmluYWxpemVfdCkgKAogIGludCBkZXZpY2VfbnVtCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RldmljZV9sb2FkX3QpICgKICBpbnQgZGV2aWNlX251bSwKICBjb25zdCBjaGFyICpmaWxlbmFtZSwKICBpbnQ2NF90IG9mZnNldF9pbl9maWxlLAogIHZvaWQgKnZtYV9pbl9maWxlLAogIHNpemVfdCBieXRlcywKICB2b2lkICpob3N0X2FkZHIsCiAgdm9pZCAqZGV2aWNlX2FkZHIsCiAgdWludDY0X3QgbW9kdWxlX2lkCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RldmljZV91bmxvYWRfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIHVpbnQ2NF90IG1vZHVsZV9pZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF9lbWlfdCkgKAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqdGFyZ2V0X3Rhc2tfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFyZ2V0X2RhdGEsCiAgb21wdF9pZF90ICpob3N0X29wX2lkLAogIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCBvcHR5cGUsCiAgdm9pZCAqc3JjX2FkZHIsCiAgaW50IHNyY19kZXZpY2VfbnVtLAogIHZvaWQgKmRlc3RfYWRkciwKICBpbnQgZGVzdF9kZXZpY2VfbnVtLAogIHNpemVfdCBieXRlcywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIG9tcHRfaWRfdCBob3N0X29wX2lkLAogIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCBvcHR5cGUsCiAgdm9pZCAqc3JjX2FkZHIsCiAgaW50IHNyY19kZXZpY2VfbnVtLAogIHZvaWQgKmRlc3RfYWRkciwKICBpbnQgZGVzdF9kZXZpY2VfbnVtLAogIHNpemVfdCBieXRlcywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90YXJnZXRfZGF0YV9vcF90IHsKICBvbXB0X2lkX3QgaG9zdF9vcF9pZDsKICBvbXB0X3RhcmdldF9kYXRhX29wX3Qgb3B0eXBlOwogIHZvaWQgKnNyY19hZGRyOwogIGludCBzcmNfZGV2aWNlX251bTsKICB2b2lkICpkZXN0X2FkZHI7CiAgaW50IGRlc3RfZGV2aWNlX251bTsKICBzaXplX3QgYnl0ZXM7CiAgb21wdF9kZXZpY2VfdGltZV90IGVuZF90aW1lOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfdGFyZ2V0X2RhdGFfb3BfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGFyZ2V0X2VtaV90KSAoCiAgb21wdF90YXJnZXRfdCBraW5kLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBpbnQgZGV2aWNlX251bSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICp0YXJnZXRfdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICp0YXJnZXRfZGF0YSwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF90KSAoCiAgb21wdF90YXJnZXRfdCBraW5kLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBpbnQgZGV2aWNlX251bSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfaWRfdCB0YXJnZXRfaWQsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFyZ2V0X3QgewogIG9tcHRfdGFyZ2V0X3Qga2luZDsKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQ7CiAgaW50IGRldmljZV9udW07CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9pZF90IHRhcmdldF9pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3RhcmdldF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfbWFwX2VtaV90KSAoCiAgb21wdF9kYXRhX3QgKnRhcmdldF9kYXRhLAogIHVuc2lnbmVkIGludCBuaXRlbXMsCiAgdm9pZCAqKmhvc3RfYWRkciwKICB2b2lkICoqZGV2aWNlX2FkZHIsCiAgc2l6ZV90ICpieXRlcywKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfbWFwX3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIHVuc2lnbmVkIGludCBuaXRlbXMsCiAgdm9pZCAqKmhvc3RfYWRkciwKICB2b2lkICoqZGV2aWNlX2FkZHIsCiAgc2l6ZV90ICpieXRlcywKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFyZ2V0X21hcF90IHsKICBvbXB0X2lkX3QgdGFyZ2V0X2lkOwogIHVuc2lnbmVkIGludCBuaXRlbXM7CiAgdm9pZCAqKmhvc3RfYWRkcjsKICB2b2lkICoqZGV2aWNlX2FkZHI7CiAgc2l6ZV90ICpieXRlczsKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF90YXJnZXRfbWFwX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF9kYXRhX3QgKnRhcmdldF9kYXRhLAogIG9tcHRfaWRfdCAqaG9zdF9vcF9pZCwKICB1bnNpZ25lZCBpbnQgcmVxdWVzdGVkX251bV90ZWFtcwopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0X3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIG9tcHRfaWRfdCBob3N0X29wX2lkLAogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfbnVtX3RlYW1zCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90YXJnZXRfa2VybmVsX3QgewogIG9tcHRfaWRfdCBob3N0X29wX2lkOwogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfbnVtX3RlYW1zOwogIHVuc2lnbmVkIGludCBncmFudGVkX251bV90ZWFtczsKICBvbXB0X2RldmljZV90aW1lX3QgZW5kX3RpbWU7Cn0gb21wdF9yZWNvcmRfdGFyZ2V0X2tlcm5lbF90OwoKdHlwZWRlZiBpbnQgKCpvbXB0X2NhbGxiYWNrX2NvbnRyb2xfdG9vbF90KSAoCiAgdWludDY0X3QgY29tbWFuZCwKICB1aW50NjRfdCBtb2RpZmllciwKICB2b2lkICphcmcsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfY29udHJvbF90b29sX3QgewogIHVpbnQ2NF90IGNvbW1hbmQ7CiAgdWludDY0X3QgbW9kaWZpZXI7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9jb250cm9sX3Rvb2xfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfZXJyb3JfdCkgKAogIG9tcHRfc2V2ZXJpdHlfdCBzZXZlcml0eSwKICBjb25zdCBjaGFyICptZXNzYWdlLCBzaXplX3QgbGVuZ3RoLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX2Vycm9yX3QgewogIG9tcHRfc2V2ZXJpdHlfdCBzZXZlcml0eTsKICBjb25zdCBjaGFyICptZXNzYWdlOwogIHNpemVfdCBsZW5ndGg7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9lcnJvcl90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9hZGRyZXNzX3QgewogIG9tcGRfc2VnX3Qgc2VnbWVudDsKICBvbXBkX2FkZHJfdCBhZGRyZXNzOwp9IG9tcGRfYWRkcmVzc190OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9mcmFtZV9pbmZvX3QgewogIG9tcGRfYWRkcmVzc190IGZyYW1lX2FkZHJlc3M7CiAgb21wZF93b3JkX3QgZnJhbWVfZmxhZzsKfSBvbXBkX2ZyYW1lX2luZm9fdDsKCnR5cGVkZWYgc3RydWN0IF9vbXBkX2FzcGFjZV9oYW5kbGUgb21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90Owp0eXBlZGVmIHN0cnVjdCBfb21wZF90aHJlYWRfaGFuZGxlIG9tcGRfdGhyZWFkX2hhbmRsZV90Owp0eXBlZGVmIHN0cnVjdCBfb21wZF9wYXJhbGxlbF9oYW5kbGUgb21wZF9wYXJhbGxlbF9oYW5kbGVfdDsKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfdGFza19oYW5kbGUgb21wZF90YXNrX2hhbmRsZV90OwoKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfYXNwYWNlX2NvbnQgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdDsKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfdGhyZWFkX2NvbnQgb21wZF90aHJlYWRfY29udGV4dF90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9kZXZpY2VfdHlwZV9zaXplc190IHsKICB1aW50OF90IHNpemVvZl9jaGFyOwogIHVpbnQ4X3Qgc2l6ZW9mX3Nob3J0OwogIHVpbnQ4X3Qgc2l6ZW9mX2ludDsKICB1aW50OF90IHNpemVvZl9sb25nOwogIHVpbnQ4X3Qgc2l6ZW9mX2xvbmdfbG9uZzsKICB1aW50OF90IHNpemVvZl9wb2ludGVyOwp9IG9tcGRfZGV2aWNlX3R5cGVfc2l6ZXNfdDsKCnZvaWQgb21wZF9kbGxfbG9jYXRpb25zX3ZhbGlkKHZvaWQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX21lbW9yeV9hbGxvY19mbl90KShvbXBkX3NpemVfdCBuYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKnB0cik7Cgp0eXBlZGVmIG9tcGRfcmNfdCAoKm9tcGRfY2FsbGJhY2tfbWVtb3J5X2ZyZWVfZm5fdCkodm9pZCAqcHRyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19nZXRfdGhyZWFkX2NvbnRleHRfZm9yX3RocmVhZF9pZF9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwgb21wZF90aHJlYWRfaWRfdCBraW5kLAogICAgb21wZF9zaXplX3Qgc2l6ZW9mX3RocmVhZF9pZCwgY29uc3Qgdm9pZCAqdGhyZWFkX2lkLAogICAgb21wZF90aHJlYWRfY29udGV4dF90ICoqdGhyZWFkX2NvbnRleHQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3NpemVvZl9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwKICAgIG9tcGRfZGV2aWNlX3R5cGVfc2l6ZXNfdCAqc2l6ZXMpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3N5bWJvbF9hZGRyX2ZuX3QpKAogICAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqYWRkcmVzc19zcGFjZV9jb250ZXh0LAogICAgb21wZF90aHJlYWRfY29udGV4dF90ICp0aHJlYWRfY29udGV4dCwgY29uc3QgY2hhciAqc3ltYm9sX25hbWUsCiAgICBvbXBkX2FkZHJlc3NfdCAqc3ltYm9sX2FkZHIsIGNvbnN0IGNoYXIgKmZpbGVfbmFtZSk7Cgp0eXBlZGVmIG9tcGRfcmNfdCAoKm9tcGRfY2FsbGJhY2tfbWVtb3J5X3JlYWRfZm5fdCkoCiAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICphZGRyZXNzX3NwYWNlX2NvbnRleHQsCiAgICBvbXBkX3RocmVhZF9jb250ZXh0X3QgKnRocmVhZF9jb250ZXh0LCBjb25zdCBvbXBkX2FkZHJlc3NfdCAqYWRkciwKICAgIG9tcGRfc2l6ZV90IG5ieXRlcywgdm9pZCAqYnVmZmVyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19tZW1vcnlfd3JpdGVfZm5fdCkoCiAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICphZGRyZXNzX3NwYWNlX2NvbnRleHQsCiAgICBvbXBkX3RocmVhZF9jb250ZXh0X3QgKnRocmVhZF9jb250ZXh0LCBjb25zdCBvbXBkX2FkZHJlc3NfdCAqYWRkciwKICAgIG9tcGRfc2l6ZV90IG5ieXRlcywgY29uc3Qgdm9pZCAqYnVmZmVyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19kZXZpY2VfaG9zdF9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwgY29uc3Qgdm9pZCAqaW5wdXQsCiAgICBvbXBkX3NpemVfdCB1bml0X3NpemUsIG9tcGRfc2l6ZV90IGNvdW50LCB2b2lkICpvdXRwdXQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3ByaW50X3N0cmluZ19mbl90KShjb25zdCBjaGFyICpzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNhdGVnb3J5KTsKCnR5cGVkZWYgc3RydWN0IG9tcGRfY2FsbGJhY2tzX3QgewogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X2FsbG9jX2ZuX3QgYWxsb2NfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X2ZyZWVfZm5fdCBmcmVlX21lbW9yeTsKICBvbXBkX2NhbGxiYWNrX3ByaW50X3N0cmluZ19mbl90IHByaW50X3N0cmluZzsKICBvbXBkX2NhbGxiYWNrX3NpemVvZl9mbl90IHNpemVvZl90eXBlOwogIG9tcGRfY2FsbGJhY2tfc3ltYm9sX2FkZHJfZm5fdCBzeW1ib2xfYWRkcl9sb29rdXA7CiAgb21wZF9jYWxsYmFja19tZW1vcnlfcmVhZF9mbl90IHJlYWRfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X3dyaXRlX2ZuX3Qgd3JpdGVfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X3JlYWRfZm5fdCByZWFkX3N0cmluZzsKICBvbXBkX2NhbGxiYWNrX2RldmljZV9ob3N0X2ZuX3QgZGV2aWNlX3RvX2hvc3Q7CiAgb21wZF9jYWxsYmFja19kZXZpY2VfaG9zdF9mbl90IGhvc3RfdG9fZGV2aWNlOwogIG9tcGRfY2FsbGJhY2tfZ2V0X3RocmVhZF9jb250ZXh0X2Zvcl90aHJlYWRfaWRfZm5fdAogICAgICBnZXRfdGhyZWFkX2NvbnRleHRfZm9yX3RocmVhZF9pZDsKfSBvbXBkX2NhbGxiYWNrc190OwoKdm9pZCBvbXBkX2JwX3BhcmFsbGVsX2JlZ2luKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3BhcmFsbGVsX2VuZCh2b2lkKTsKCnZvaWQgb21wZF9icF90YXNrX2JlZ2luKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3Rhc2tfZW5kKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3RocmVhZF9iZWdpbih2b2lkKTsKCnZvaWQgb21wZF9icF90aHJlYWRfZW5kKHZvaWQpOwoKdm9pZCBvbXBkX2JwX2RldmljZV9iZWdpbih2b2lkKTsKCnZvaWQgb21wZF9icF9kZXZpY2VfZW5kKHZvaWQpOwoKb21wZF9yY190IG9tcGRfaW5pdGlhbGl6ZShvbXBkX3dvcmRfdCBhcGlfdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvbXBkX2NhbGxiYWNrc190ICpjYWxsYmFja3MpOwoKb21wZF9yY190IG9tcGRfZ2V0X2FwaV92ZXJzaW9uKG9tcGRfd29yZF90ICp2ZXJzaW9uKTsKCm9tcGRfcmNfdCBvbXBkX2dldF92ZXJzaW9uX3N0cmluZyhjb25zdCBjaGFyICoqc3RyaW5nKTsKCm9tcGRfcmNfdCBvbXBkX2ZpbmFsaXplKHZvaWQpOwoKb21wZF9yY190IG9tcGRfcHJvY2Vzc19pbml0aWFsaXplKG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKipoYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZGV2aWNlX2luaXRpYWxpemUob21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICpwcm9jZXNzX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqZGV2aWNlX2NvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfZGV2aWNlX3Qga2luZCwgb21wZF9zaXplX3Qgc2l6ZW9mX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICppZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICoqZGV2aWNlX2hhbmRsZSk7CgpvbXBkX3JjX3Qgb21wZF9yZWxfYWRkcmVzc19zcGFjZV9oYW5kbGUob21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICpoYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZ2V0X29tcF92ZXJzaW9uKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpvbXBfdmVyc2lvbik7CgpvbXBkX3JjX3QKb21wZF9nZXRfb21wX3ZlcnNpb25fc3RyaW5nKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKipzdHJpbmcpOwoKb21wZF9yY190IG9tcGRfZ2V0X3RocmVhZF9pbl9wYXJhbGxlbChvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRocmVhZF9udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKip0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90aHJlYWRfaGFuZGxlKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3RocmVhZF9pZF90IGtpbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfc2l6ZV90IHNpemVvZl90aHJlYWRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnRocmVhZF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKip0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF90aHJlYWRfaGFuZGxlKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3RocmVhZF9oYW5kbGVfY29tcGFyZShvbXBkX3RocmVhZF9oYW5kbGVfdCAqdGhyZWFkX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGVfMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY21wX3ZhbHVlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90aHJlYWRfaWQob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaWRfdCBraW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfc2l6ZV90IHNpemVvZl90aHJlYWRfaWQsIHZvaWQgKnRocmVhZF9pZCk7CgpvbXBkX3JjX3QKb21wZF9nZXRfY3Vycl9wYXJhbGxlbF9oYW5kbGUob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKipwYXJhbGxlbF9oYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2VuY2xvc2luZ19wYXJhbGxlbF9oYW5kbGUoCiAgICBvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGUsCiAgICBvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICoqZW5jbG9zaW5nX3BhcmFsbGVsX2hhbmRsZSk7CgpvbXBkX3JjX3QKb21wZF9nZXRfdGFza19wYXJhbGxlbF9oYW5kbGUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9wYXJhbGxlbF9oYW5kbGVfdCAqKnRhc2tfcGFyYWxsZWxfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF9wYXJhbGxlbF9oYW5kbGUob21wZF9wYXJhbGxlbF9oYW5kbGVfdCAqcGFyYWxsZWxfaGFuZGxlKTsKCm9tcGRfcmNfdApvbXBkX3BhcmFsbGVsX2hhbmRsZV9jb21wYXJlKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZV8yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY21wX3ZhbHVlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF9jdXJyX3Rhc2tfaGFuZGxlKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3Rhc2tfaGFuZGxlX3QgKip0YXNrX2hhbmRsZSk7CgpvbXBkX3JjX3QKb21wZF9nZXRfZ2VuZXJhdGluZ190YXNrX2hhbmRsZShvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqKmdlbmVyYXRpbmdfdGFza19oYW5kbGUpOwoKb21wZF9yY190Cm9tcGRfZ2V0X3NjaGVkdWxpbmdfdGFza19oYW5kbGUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3Rhc2tfaGFuZGxlX3QgKipzY2hlZHVsaW5nX3Rhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90YXNrX2luX3BhcmFsbGVsKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRocmVhZF9udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqKnRhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF90YXNrX2hhbmRsZShvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3Rhc2tfaGFuZGxlX2NvbXBhcmUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqdGFza19oYW5kbGVfMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmNtcF92YWx1ZSk7CgpvbXBkX3JjX3Qgb21wZF9nZXRfdGFza19mdW5jdGlvbihvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2FkZHJlc3NfdCAqZW50cnlfcG9pbnQpOwoKb21wZF9yY190IG9tcGRfZ2V0X3Rhc2tfZnJhbWUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9mcmFtZV9pbmZvX3QgKmV4aXRfZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfZnJhbWVfaW5mb190ICplbnRlcl9mcmFtZSk7CgpvbXBkX3JjX3QKb21wZF9lbnVtZXJhdGVfc3RhdGVzKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZV9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICBvbXBkX3dvcmRfdCBjdXJyZW50X3N0YXRlLCBvbXBkX3dvcmRfdCAqbmV4dF9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKipuZXh0X3N0YXRlX25hbWUsIG9tcGRfd29yZF90ICptb3JlX2VudW1zKTsKCm9tcGRfcmNfdCBvbXBkX2dldF9zdGF0ZShvbXBkX3RocmVhZF9oYW5kbGVfdCAqdGhyZWFkX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpzdGF0ZSwgb21wZF93YWl0X2lkX3QgKndhaXRfaWQpOwoKb21wZF9yY190Cm9tcGRfZ2V0X2Rpc3BsYXlfY29udHJvbF92YXJzKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZV9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvbnN0ICoqY29udHJvbF92YXJzKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF9kaXNwbGF5X2NvbnRyb2xfdmFycyhjb25zdCBjaGFyICpjb25zdCAqKmNvbnRyb2xfdmFycyk7CgpvbXBkX3JjX3Qgb21wZF9lbnVtZXJhdGVfaWN2cyhvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKmhhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9pY3ZfaWRfdCBjdXJyZW50LCBvbXBkX2ljdl9pZF90ICpuZXh0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqbmV4dF9pY3ZfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9zY29wZV90ICpuZXh0X3Njb3BlLCBpbnQgKm1vcmUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2ljdl9mcm9tX3Njb3BlKHZvaWQgKmhhbmRsZSwgb21wZF9zY29wZV90IHNjb3BlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9pY3ZfaWRfdCBpY3ZfaWQsIG9tcGRfd29yZF90ICppY3ZfdmFsdWUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2ljdl9zdHJpbmdfZnJvbV9zY29wZSh2b2lkICpoYW5kbGUsIG9tcGRfc2NvcGVfdCBzY29wZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2ljdl9pZF90IGljdl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqaWN2X3N0cmluZyk7CgpvbXBkX3JjX3Qgb21wZF9nZXRfdG9vbF9kYXRhKHZvaWQgKmhhbmRsZSwgb21wZF9zY29wZV90IHNjb3BlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICp2YWx1ZSwgb21wZF9hZGRyZXNzX3QgKnB0cik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9vbXB0X3QgewogIG9tcHRfY2FsbGJhY2tzX3QgdHlwZTsKICBvbXB0X2RldmljZV90aW1lX3QgdGltZTsKICBvbXB0X2lkX3QgdGhyZWFkX2lkOwogIG9tcHRfaWRfdCB0YXJnZXRfaWQ7CiAgdW5pb24gewogICAgb21wdF9yZWNvcmRfdGhyZWFkX2JlZ2luX3QgdGhyZWFkX2JlZ2luOwogICAgb21wdF9yZWNvcmRfcGFyYWxsZWxfYmVnaW5fdCBwYXJhbGxlbF9iZWdpbjsKICAgIG9tcHRfcmVjb3JkX3BhcmFsbGVsX2VuZF90IHBhcmFsbGVsX2VuZDsKICAgIG9tcHRfcmVjb3JkX3dvcmtfdCB3b3JrOwogICAgb21wdF9yZWNvcmRfZGlzcGF0Y2hfdCBkaXNwYXRjaDsKICAgIG9tcHRfcmVjb3JkX3Rhc2tfY3JlYXRlX3QgdGFza19jcmVhdGU7CiAgICBvbXB0X3JlY29yZF9kZXBlbmRlbmNlc190IGRlcGVuZGVuY2VzOwogICAgb21wdF9yZWNvcmRfdGFza19kZXBlbmRlbmNlX3QgdGFza19kZXBlbmRlbmNlOwogICAgb21wdF9yZWNvcmRfdGFza19zY2hlZHVsZV90IHRhc2tfc2NoZWR1bGU7CiAgICBvbXB0X3JlY29yZF9pbXBsaWNpdF90YXNrX3QgaW1wbGljaXRfdGFzazsKICAgIG9tcHRfcmVjb3JkX21hc2tlZF90IG1hc2tlZDsKICAgIG9tcHRfcmVjb3JkX3N5bmNfcmVnaW9uX3Qgc3luY19yZWdpb247CiAgICBvbXB0X3JlY29yZF9tdXRleF9hY3F1aXJlX3QgbXV0ZXhfYWNxdWlyZTsKICAgIG9tcHRfcmVjb3JkX211dGV4X3QgbXV0ZXg7CiAgICBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdCBuZXN0X2xvY2s7CiAgICBvbXB0X3JlY29yZF9mbHVzaF90IGZsdXNoOwogICAgb21wdF9yZWNvcmRfY2FuY2VsX3QgY2FuY2VsOwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X3QgdGFyZ2V0OwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X2RhdGFfb3BfdCB0YXJnZXRfZGF0YV9vcDsKICAgIG9tcHRfcmVjb3JkX3RhcmdldF9tYXBfdCB0YXJnZXRfbWFwOwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X2tlcm5lbF90IHRhcmdldF9rZXJuZWw7CiAgICBvbXB0X3JlY29yZF9jb250cm9sX3Rvb2xfdCBjb250cm9sX3Rvb2w7CiAgfSByZWNvcmQ7Cn0gb21wdF9yZWNvcmRfb21wdF90OwoKdHlwZWRlZiBvbXB0X3JlY29yZF9vbXB0X3QgKigqb21wdF9nZXRfcmVjb3JkX29tcHRfdCkgKAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCBjdXJyZW50Cik7CgojZGVmaW5lIG9tcHRfaWRfbm9uZSAwCiNkZWZpbmUgb21wdF9kYXRhX25vbmUgezB9CiNkZWZpbmUgb21wdF90aW1lX25vbmUgMAojZGVmaW5lIG9tcHRfaHdpZF9ub25lIDAKI2RlZmluZSBvbXB0X2FkZHJfbm9uZSB+MAojZGVmaW5lIG9tcHRfbXV0ZXhfaW1wbF9ub25lIDAKI2RlZmluZSBvbXB0X3dhaXRfaWRfbm9uZSAwCgojZGVmaW5lIG9tcGRfc2VnbWVudF9ub25lIDAKCiNlbmRpZiAvKiBfX09NUFRfXyAqLwoALyo9PT0tLS0tIHN0ZGFyZy5oIC0gVmFyaWFibGUgYXJndW1lbnQgaGFuZGxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1NUREFSR19ICiNkZWZpbmUgX19TVERBUkdfSAoKI2lmbmRlZiBfVkFfTElTVAp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IHZhX2xpc3Q7CiNkZWZpbmUgX1ZBX0xJU1QKI2VuZGlmCiNkZWZpbmUgdmFfc3RhcnQoYXAsIHBhcmFtKSBfX2J1aWx0aW5fdmFfc3RhcnQoYXAsIHBhcmFtKQojZGVmaW5lIHZhX2VuZChhcCkgICAgICAgICAgX19idWlsdGluX3ZhX2VuZChhcCkKI2RlZmluZSB2YV9hcmcoYXAsIHR5cGUpICAgIF9fYnVpbHRpbl92YV9hcmcoYXAsIHR5cGUpCgovKiBHQ0MgYWx3YXlzIGRlZmluZXMgX192YV9jb3B5LCBidXQgZG9lcyBub3QgZGVmaW5lIHZhX2NvcHkgdW5sZXNzIGluIGM5OSBtb2RlCiAqIG9yIC1hbnNpIGlzIG5vdCBzcGVjaWZpZWQsIHNpbmNlIGl0IHdhcyBub3QgcGFydCBvZiBDOTAuCiAqLwojZGVmaW5lIF9fdmFfY29weShkLHMpIF9fYnVpbHRpbl92YV9jb3B5KGQscykKCiNpZiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwgfHwgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCiNkZWZpbmUgdmFfY29weShkZXN0LCBzcmMpICBfX2J1aWx0aW5fdmFfY29weShkZXN0LCBzcmMpCiNlbmRpZgoKI2lmbmRlZiBfX0dOVUNfVkFfTElTVAojZGVmaW5lIF9fR05VQ19WQV9MSVNUIDEKdHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKI2VuZGlmCgojZW5kaWYgLyogX19TVERBUkdfSCAqLwoAQ291bGRuJ3QgY2xvc2UgAE1pc3NpbmcgYSBjb21tYSBvciAnXScgYWZ0ZXIgYW4gYXJyYXkgZWxlbWVudC4AOiAAcm9vdC91bml0cy8AU2VhcmNoTkZBIGluY29uc2lzdGVuY3kAWzpebG93ZXI6XQBleHRlcm5hbC9yZWdleC1yZTIvcmUyL29uZXBhc3MuY2MAZXh0ZXJuYWwvcmVnZXgtcmUyL3JlMi9yZWdleHAuY2MAKwBeAEFybWVuaWFuAEJhbGluZXNlAEN5cHJpb3QAR3JlZWsASGFuZ3VsAEtoYXJvc2h0aGkAT2xkX1R1cmtpYwBTaWRkaGFtAFNpbmhhbGEAb3V0IG9mIG1lbW9yeQBib29sAG0AbgBvAERlAERoAGFkAGRlAHw9AG50AHBtAEFMUkVBRFlfRVhJU1RTAENoZWNrIG5vZGUtPmxlbmd0aCA9PSAobm9kZS0+Y29uY2F0KCktPmxlZnQtPmxlbmd0aCArIG5vZGUtPmNvbmNhdCgpLT5yaWdodC0+bGVuZ3RoKSBmYWlsZWQ6IABsZW5ndGggACBhbmQgZW50cnkgbGVuZ3RoIABOQU4Acy0+d2FpdHAgIT0gbnVsbHB0ciB8fCBzLT5zdXBwcmVzc19mYXRhbF9lcnJvcnMAcHcgbm90IHcncyBwcmVkZWNlc3NvcgB1bmV4cGVjdGVkIGVtcHR5IHdha2UgbGlzdABSZWFkZXJUcnlMb2NrIHN1Y2NlZWRlZCAATG9jayBibG9ja2luZyAAYmFkIHNraXAgaW4gRGVxdWV1ZUFsbFdha2VhYmxlAFRaaWYAM0RFUyBEZWNyeXB0aW9uIEtBVABDVFItRFJCRyBmYWlsZWQuCgBUTFMgS0RGIEtBVABlcnJvcjolMDh4OiVzOk9QRU5TU0xfaW50ZXJuYWw6JXMAa3l0aGUucHJvdG8uS3ppcEluZm8uYWJzb2x1dGVfcGF0aHMAa3l0aGUucHJvdG8uY29tbW9uLkRpYWdub3N0aWMubWVzc2FnZQBreXRoZS5wcm90by5jb21tb24uTWFya2VkU291cmNlLnBvc3RfY2hpbGRfdGV4dABreXRoZS5wcm90by5WTmFtZS5yb290AFteLV0uKlwuKEN8Y1wrXCt8Y2N8Y3B8Y3BwfGN4eHxDUFB8aWkpAEVycm9yIG1ha2luZyByZWxhdGl2ZSBwYXRoOiAAS1lUSEVfQ09SUFVTACwgaW5wdXRzLnNpemUoKT0ARXhwZWN0ZWQgdG8gc2VlIG9ubHkgb25lIFRVOyBpbnN0ZWFkIHNhdyAAUmVsYXRpdmUgcGF0aCB3YXMgAC8qPT09LS0tLSBjdWRhX2J1aWx0aW5fdmFycy5oIC0gQ1VEQSBidWlsdC1pbiB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ1VEQV9CVUlMVElOX1ZBUlNfSAojZGVmaW5lIF9fQ1VEQV9CVUlMVElOX1ZBUlNfSAoKLy8gRm9yd2FyZCBkZWNsYXJlcyBmcm9tIHZlY3Rvcl90eXBlcy5oLgpzdHJ1Y3QgdWludDM7CnN0cnVjdCBkaW0zOwoKLy8gVGhlIGZpbGUgaW1wbGVtZW50cyBidWlsdC1pbiBDVURBIHZhcmlhYmxlcyB1c2luZyBfX2RlY2xzcGVjKHByb3BlcnR5KS4KLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS95aGZrMHRoZC5hc3B4Ci8vIEFsbCByZWFkIGFjY2Vzc2VzIG9mIGJ1aWx0LWluIHZhcmlhYmxlIGZpZWxkcyBnZXQgY29udmVydGVkIGludG8gY2FsbHMgdG8gYQovLyBnZXR0ZXIgZnVuY3Rpb24gd2hpY2ggaW4gdHVybiBjYWxscyB0aGUgYXBwcm9wcmlhdGUgYnVpbHRpbiB0byBmZXRjaCB0aGUKLy8gdmFsdWUuCi8vCi8vIEV4YW1wbGU6Ci8vICAgIGludCB4ID0gdGhyZWFkSWR4Lng7Ci8vIElSIG91dHB1dDoKLy8gICUwID0gY2FsbCBpMzIgQGxsdm0ubnZ2bS5yZWFkLnB0eC5zcmVnLnRpZC54KCkgIzMKLy8gUFRYIG91dHB1dDoKLy8gIG1vdi51MzIgICAgICVyMiwgJXRpZC54OwoKI2RlZmluZSBfX0NVREFfREVWSUNFX0JVSUxUSU4oRklFTEQsIElOVFJJTlNJQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2RlY2xzcGVjKHByb3BlcnR5KGdldCA9IF9fZmV0Y2hfYnVpbHRpbl8jI0ZJRUxEKSkgdW5zaWduZWQgaW50IEZJRUxEOyAgICAgIFwKICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgdW5zaWduZWQgaW50IF9fZmV0Y2hfYnVpbHRpbl8jI0ZJRUxEKHZvaWQpIHsgICAgIFwKICAgIHJldHVybiBJTlRSSU5TSUM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgojaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAojZGVmaW5lIF9fREVMRVRFID1kZWxldGUKI2Vsc2UKI2RlZmluZSBfX0RFTEVURQojZW5kaWYKCi8vIE1ha2Ugc3VyZSBub2JvZHkgY2FuIGNyZWF0ZSBpbnN0YW5jZXMgb2YgdGhlIHNwZWNpYWwgdmFyaWFibGUgdHlwZXMuICBudmNjCi8vIGFsc28gZGlzYWxsb3dzIHRha2luZyBhZGRyZXNzIG9mIHNwZWNpYWwgdmFyaWFibGVzLCBzbyB3ZSBkaXNhYmxlIGFkZHJlc3Mtb2YKLy8gb3BlcmF0b3IgYXMgd2VsbC4KI2RlZmluZSBfX0NVREFfRElTQUxMT1dfQlVJTFRJTlZBUl9BQ0NFU1MoVHlwZU5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZSgpIF9fREVMRVRFOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZShjb25zdCBUeXBlTmFtZSAmKSBfX0RFTEVURTsgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSB2b2lkIG9wZXJhdG9yPShjb25zdCBUeXBlTmFtZSAmKSBjb25zdCBfX0RFTEVURTsgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZSAqb3BlcmF0b3ImKCkgY29uc3QgX19ERUxFVEUKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl90aHJlYWRJZHhfdCB7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHgsX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3goKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHksX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3koKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHosX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3ooKSk7CiAgLy8gdGhyZWFkSWR4IHNob3VsZCBiZSBjb252ZXJ0aWJsZSB0byB1aW50MyAoaW4gZmFjdCBpbiBudmNjLCBpdCAqaXMqIGEKICAvLyB1aW50MykuICBUaGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQgYWZ0ZXIgd2UgcHVsbCBpbiB2ZWN0b3JfdHlwZXMuaC4KICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBvcGVyYXRvciBkaW0zKCkgY29uc3Q7CiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgdWludDMoKSBjb25zdDsKCnByaXZhdGU6CiAgX19DVURBX0RJU0FMTE9XX0JVSUxUSU5WQVJfQUNDRVNTKF9fY3VkYV9idWlsdGluX3RocmVhZElkeF90KTsKfTsKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19jdGFpZF94KCkpOwogIF9fQ1VEQV9ERVZJQ0VfQlVJTFRJTih5LF9fbnZ2bV9yZWFkX3B0eF9zcmVnX2N0YWlkX3koKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHosX19udnZtX3JlYWRfcHR4X3NyZWdfY3RhaWRfeigpKTsKICAvLyBibG9ja0lkeCBzaG91bGQgYmUgY29udmVydGlibGUgdG8gdWludDMgKGluIGZhY3QgaW4gbnZjYywgaXQgKmlzKiBhCiAgLy8gdWludDMpLiAgVGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIGFmdGVyIHdlIHB1bGwgaW4gdmVjdG9yX3R5cGVzLmguCiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgZGltMygpIGNvbnN0OwogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIHVpbnQzKCkgY29uc3Q7Cgpwcml2YXRlOgogIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUyhfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90KTsKfTsKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl9ibG9ja0RpbV90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19udGlkX3goKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHksX19udnZtX3JlYWRfcHR4X3NyZWdfbnRpZF95KCkpOwogIF9fQ1VEQV9ERVZJQ0VfQlVJTFRJTih6LF9fbnZ2bV9yZWFkX3B0eF9zcmVnX250aWRfeigpKTsKICAvLyBibG9ja0RpbSBzaG91bGQgYmUgY29udmVydGlibGUgdG8gZGltMyAoaW4gZmFjdCBpbiBudmNjLCBpdCAqaXMqIGEKICAvLyBkaW0zKS4gIFRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCBhZnRlciB3ZSBwdWxsIGluIHZlY3Rvcl90eXBlcy5oLgogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIGRpbTMoKSBjb25zdDsKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBvcGVyYXRvciB1aW50MygpIGNvbnN0OwoKcHJpdmF0ZToKICBfX0NVREFfRElTQUxMT1dfQlVJTFRJTlZBUl9BQ0NFU1MoX19jdWRhX2J1aWx0aW5fYmxvY2tEaW1fdCk7Cn07CgpzdHJ1Y3QgX19jdWRhX2J1aWx0aW5fZ3JpZERpbV90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeCgpKTsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeSxfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeSgpKTsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeixfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeigpKTsKICAvLyBncmlkRGltIHNob3VsZCBiZSBjb252ZXJ0aWJsZSB0byBkaW0zIChpbiBmYWN0IGluIG52Y2MsIGl0ICppcyogYQogIC8vIGRpbTMpLiAgVGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIGFmdGVyIHdlIHB1bGwgaW4gdmVjdG9yX3R5cGVzLmguCiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgZGltMygpIGNvbnN0OwogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIHVpbnQzKCkgY29uc3Q7Cgpwcml2YXRlOgogIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUyhfX2N1ZGFfYnVpbHRpbl9ncmlkRGltX3QpOwp9OwoKI2RlZmluZSBfX0NVREFfQlVJTFRJTl9WQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBleHRlcm4gY29uc3QgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgX19hdHRyaWJ1dGVfXygod2VhaykpCl9fQ1VEQV9CVUlMVElOX1ZBUiBfX2N1ZGFfYnVpbHRpbl90aHJlYWRJZHhfdCB0aHJlYWRJZHg7Cl9fQ1VEQV9CVUlMVElOX1ZBUiBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90IGJsb2NrSWR4OwpfX0NVREFfQlVJTFRJTl9WQVIgX19jdWRhX2J1aWx0aW5fYmxvY2tEaW1fdCBibG9ja0RpbTsKX19DVURBX0JVSUxUSU5fVkFSIF9fY3VkYV9idWlsdGluX2dyaWREaW1fdCBncmlkRGltOwoKLy8gd2FycFNpemUgc2hvdWxkIHRyYW5zbGF0ZSB0byByZWFkIG9mICVXQVJQX1NaIGJ1dCB0aGVyZSdzIGN1cnJlbnRseSBubwovLyBidWlsdGluIHRvIGRvIHNvLiBBY2NvcmRpbmcgdG8gUFRYIHY0LjIgZG9jcyAndG8gZGF0ZSwgYWxsIHRhcmdldAovLyBhcmNoaXRlY3R1cmVzIGhhdmUgYSBXQVJQX1NaIHZhbHVlIG9mIDMyJy4KX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgY29uc3QgaW50IHdhcnBTaXplID0gMzI7CgojdW5kZWYgX19DVURBX0RFVklDRV9CVUlMVElOCiN1bmRlZiBfX0NVREFfQlVJTFRJTl9WQVIKI3VuZGVmIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUwojdW5kZWYgX19ERUxFVEUKCiNlbmRpZiAvKiBfX0NVREFfQlVJTFRJTl9WQVJTX0ggKi8KAC8qPT09LS0tLSBfX3N0ZGRlZl9tYXhfYWxpZ25fdC5oIC0gRGVmaW5pdGlvbiBvZiBtYXhfYWxpZ25fdCBmb3IgbW9kdWxlcyAtLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19NQVhfQUxJR05fVF9ERUZJTkVECiNkZWZpbmUgX19DTEFOR19NQVhfQUxJR05fVF9ERUZJTkVECgojaWYgZGVmaW5lZChfTVNDX1ZFUikKdHlwZWRlZiBkb3VibGUgbWF4X2FsaWduX3Q7CiNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQp0eXBlZGVmIGxvbmcgZG91YmxlIG1heF9hbGlnbl90OwojZWxzZQovLyBEZWZpbmUgJ21heF9hbGlnbl90JyB0byBtYXRjaCB0aGUgR0NDIGRlZmluaXRpb24uCnR5cGVkZWYgc3RydWN0IHsKICBsb25nIGxvbmcgX19jbGFuZ19tYXhfYWxpZ25fbm9uY2UxCiAgICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKF9fYWxpZ25vZl9fKGxvbmcgbG9uZykpKSk7CiAgbG9uZyBkb3VibGUgX19jbGFuZ19tYXhfYWxpZ25fbm9uY2UyCiAgICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKF9fYWxpZ25vZl9fKGxvbmcgZG91YmxlKSkpKTsKfSBtYXhfYWxpZ25fdDsKI2VuZGlmCgojZW5kaWYKAGFybTY0aW50ci5oAC8qPT09LS0tLSBhcm02NGludHIuaCAtIEFSTTY0IFdpbmRvd3MgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBPbmx5IGluY2x1ZGUgdGhpcyBpZiB3ZSdyZSBjb21waWxpbmcgZm9yIHRoZSB3aW5kb3dzIHBsYXRmb3JtLiAqLwojaWZuZGVmIF9NU0NfVkVSCiNpbmNsdWRlX25leHQgPGFybTY0aW50ci5oPgojZWxzZQoKI2lmbmRlZiBfX0FSTTY0SU5UUl9ICiNkZWZpbmUgX19BUk02NElOVFJfSAoKdHlwZWRlZiBlbnVtCnsKICBfQVJNNjRfQkFSUklFUl9TWSAgICA9IDB4RiwKICBfQVJNNjRfQkFSUklFUl9TVCAgICA9IDB4RSwKICBfQVJNNjRfQkFSUklFUl9MRCAgICA9IDB4RCwKICBfQVJNNjRfQkFSUklFUl9JU0ggICA9IDB4QiwKICBfQVJNNjRfQkFSUklFUl9JU0hTVCA9IDB4QSwKICBfQVJNNjRfQkFSUklFUl9JU0hMRCA9IDB4OSwKICBfQVJNNjRfQkFSUklFUl9OU0ggICA9IDB4NywKICBfQVJNNjRfQkFSUklFUl9OU0hTVCA9IDB4NiwKICBfQVJNNjRfQkFSUklFUl9OU0hMRCA9IDB4NSwKICBfQVJNNjRfQkFSUklFUl9PU0ggICA9IDB4MywKICBfQVJNNjRfQkFSUklFUl9PU0hTVCA9IDB4MiwKICBfQVJNNjRfQkFSUklFUl9PU0hMRCA9IDB4MQp9IF9BUk02NElOVFJfQkFSUklFUl9UWVBFOwoKI2VuZGlmIC8qIF9fQVJNNjRJTlRSX0ggKi8KI2VuZGlmIC8qIF9NU0NfVkVSICovCgAvKj09PS0tLS0gZnhzcmludHJpbi5oIC0gRlhTUiBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGZ4c3JpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRlhTUklOVFJJTl9ICiNkZWZpbmUgX19GWFNSSU5UUklOX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImZ4c3IiKSkpCgovLy8gU2F2ZXMgdGhlIFhNTSwgTU1YLCBNWENTUiBhbmQgeDg3IEZQVSByZWdpc3RlcnMgaW50byBhIDUxMi1ieXRlCi8vLyAgICBtZW1vcnkgcmVnaW9uIHBvaW50ZWQgdG8gYnkgdGhlIGlucHV0IHBhcmFtZXRlciBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRlhTQVZFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNTEyLWJ5dGUgbWVtb3J5IHJlZ2lvbi4gVGhlIGJlZ2lubmluZyBvZiB0aGlzIG1lbW9yeQovLy8gICAgcmVnaW9uIHNob3VsZCBiZSBhbGlnbmVkIG9uIGEgMTYtYnl0ZSBib3VuZGFyeS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX2Z4c2F2ZSh2b2lkICpfX3ApCnsKICBfX2J1aWx0aW5faWEzMl9meHNhdmUoX19wKTsKfQoKLy8vIFJlc3RvcmVzIHRoZSBYTU0sIE1NWCwgTVhDU1IgYW5kIHg4NyBGUFUgcmVnaXN0ZXJzIGZyb20gdGhlIDUxMi1ieXRlCi8vLyAgICBtZW1vcnkgcmVnaW9uIHBvaW50ZWQgdG8gYnkgdGhlIGlucHV0IHBhcmFtZXRlciBcYSBfX3AuIFRoZSBjb250ZW50cyBvZgovLy8gICAgdGhpcyBtZW1vcnkgcmVnaW9uIHNob3VsZCBoYXZlIGJlZW4gd3JpdHRlbiB0byBieSBhIHByZXZpb3VzIFxjIF9meHNhdmUKLy8vICAgIG9yIFxjIF9meHNhdmU2NCBpbnRyaW5zaWMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRlhSU1RPUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDUxMi1ieXRlIG1lbW9yeSByZWdpb24uIFRoZSBiZWdpbm5pbmcgb2YgdGhpcyBtZW1vcnkKLy8vICAgIHJlZ2lvbiBzaG91bGQgYmUgYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9meHJzdG9yKHZvaWQgKl9fcCkKewogIF9fYnVpbHRpbl9pYTMyX2Z4cnN0b3IoX19wKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFNhdmVzIHRoZSBYTU0sIE1NWCwgTVhDU1IgYW5kIHg4NyBGUFUgcmVnaXN0ZXJzIGludG8gYSA1MTItYnl0ZQovLy8gICAgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5IHRoZSBpbnB1dCBwYXJhbWV0ZXIgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZYU0FWRTY0IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNTEyLWJ5dGUgbWVtb3J5IHJlZ2lvbi4gVGhlIGJlZ2lubmluZyBvZiB0aGlzIG1lbW9yeQovLy8gICAgcmVnaW9uIHNob3VsZCBiZSBhbGlnbmVkIG9uIGEgMTYtYnl0ZSBib3VuZGFyeS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX2Z4c2F2ZTY0KHZvaWQgKl9fcCkKewogIF9fYnVpbHRpbl9pYTMyX2Z4c2F2ZTY0KF9fcCk7Cn0KCi8vLyBSZXN0b3JlcyB0aGUgWE1NLCBNTVgsIE1YQ1NSIGFuZCB4ODcgRlBVIHJlZ2lzdGVycyBmcm9tIHRoZSA1MTItYnl0ZQovLy8gICAgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5IHRoZSBpbnB1dCBwYXJhbWV0ZXIgXGEgX19wLiBUaGUgY29udGVudHMgb2YKLy8vICAgIHRoaXMgbWVtb3J5IHJlZ2lvbiBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gYnkgYSBwcmV2aW91cyBcYyBfZnhzYXZlCi8vLyAgICBvciBcYyBfZnhzYXZlNjQgaW50cmluc2ljLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZYUlNUT1I2NCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDUxMi1ieXRlIG1lbW9yeSByZWdpb24uIFRoZSBiZWdpbm5pbmcgb2YgdGhpcyBtZW1vcnkKLy8vICAgIHJlZ2lvbiBzaG91bGQgYmUgYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9meHJzdG9yNjQodm9pZCAqX19wKQp7CiAgX19idWlsdGluX2lhMzJfZnhyc3RvcjY0KF9fcCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSBpbnR0eXBlcy5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBpbnRlZ2VyIHByaW50ZiBtYWNyb3MgLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fQ0xBTkdfSU5UVFlQRVNfSAovLyBBSVggc3lzdGVtIGhlYWRlcnMgbmVlZCBpbnR0eXBlcy5oIHRvIGJlIHJlLWVudGVyYWJsZSB3aGlsZSBfU1REX1RZUEVTX1QKLy8gaXMgZGVmaW5lZCB1bnRpbCBhbiBpbmNsdXNpb24gb2YgaXQgd2l0aG91dCBfU1REX1RZUEVTX1Qgb2NjdXJzLCBpbiB3aGljaAovLyBjYXNlIHRoZSBoZWFkZXIgZ3VhcmQgbWFjcm8gaXMgZGVmaW5lZC4KI2lmICFkZWZpbmVkKF9BSVgpIHx8ICFkZWZpbmVkKF9TVERfVFlQRVNfVCkKI2RlZmluZSBfX0NMQU5HX0lOVFRZUEVTX0gKI2VuZGlmCgojaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxODAwCiNlcnJvciBNU1ZDIGRvZXMgbm90IGhhdmUgaW50dHlwZXMuaCBwcmlvciB0byBWaXN1YWwgU3R1ZGlvIDIwMTMKI2VuZGlmCgojaW5jbHVkZV9uZXh0IDxpbnR0eXBlcy5oPgoKI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSIDwgMTkwMAovKiBNU1ZDIGhlYWRlcnMgZGVmaW5lIGludDMyX3QgYXMgaW50LCBidXQgUFJJeDMyIGFzICJseCIgaW5zdGVhZCBvZiAieCIuCiAqIFRoaXMgdHJpZ2dlcnMgZm9ybWF0IHdhcm5pbmdzLCBzbyBmaXggaXQgdXAgaGVyZS4gKi8KI3VuZGVmIFBSSWQzMgojdW5kZWYgUFJJZExFQVNUMzIKI3VuZGVmIFBSSWRGQVNUMzIKI3VuZGVmIFBSSWkzMgojdW5kZWYgUFJJaUxFQVNUMzIKI3VuZGVmIFBSSWlGQVNUMzIKI3VuZGVmIFBSSW8zMgojdW5kZWYgUFJJb0xFQVNUMzIKI3VuZGVmIFBSSW9GQVNUMzIKI3VuZGVmIFBSSXUzMgojdW5kZWYgUFJJdUxFQVNUMzIKI3VuZGVmIFBSSXVGQVNUMzIKI3VuZGVmIFBSSXgzMgojdW5kZWYgUFJJeExFQVNUMzIKI3VuZGVmIFBSSXhGQVNUMzIKI3VuZGVmIFBSSVgzMgojdW5kZWYgUFJJWExFQVNUMzIKI3VuZGVmIFBSSVhGQVNUMzIKCiN1bmRlZiBTQ05kMzIKI3VuZGVmIFNDTmRMRUFTVDMyCiN1bmRlZiBTQ05kRkFTVDMyCiN1bmRlZiBTQ05pMzIKI3VuZGVmIFNDTmlMRUFTVDMyCiN1bmRlZiBTQ05pRkFTVDMyCiN1bmRlZiBTQ05vMzIKI3VuZGVmIFNDTm9MRUFTVDMyCiN1bmRlZiBTQ05vRkFTVDMyCiN1bmRlZiBTQ051MzIKI3VuZGVmIFNDTnVMRUFTVDMyCiN1bmRlZiBTQ051RkFTVDMyCiN1bmRlZiBTQ054MzIKI3VuZGVmIFNDTnhMRUFTVDMyCiN1bmRlZiBTQ054RkFTVDMyCgojZGVmaW5lIFBSSWQzMiAiZCIKI2RlZmluZSBQUklkTEVBU1QzMiAiZCIKI2RlZmluZSBQUklkRkFTVDMyICJkIgojZGVmaW5lIFBSSWkzMiAiaSIKI2RlZmluZSBQUklpTEVBU1QzMiAiaSIKI2RlZmluZSBQUklpRkFTVDMyICJpIgojZGVmaW5lIFBSSW8zMiAibyIKI2RlZmluZSBQUklvTEVBU1QzMiAibyIKI2RlZmluZSBQUklvRkFTVDMyICJvIgojZGVmaW5lIFBSSXUzMiAidSIKI2RlZmluZSBQUkl1TEVBU1QzMiAidSIKI2RlZmluZSBQUkl1RkFTVDMyICJ1IgojZGVmaW5lIFBSSXgzMiAieCIKI2RlZmluZSBQUkl4TEVBU1QzMiAieCIKI2RlZmluZSBQUkl4RkFTVDMyICJ4IgojZGVmaW5lIFBSSVgzMiAiWCIKI2RlZmluZSBQUklYTEVBU1QzMiAiWCIKI2RlZmluZSBQUklYRkFTVDMyICJYIgoKI2RlZmluZSBTQ05kMzIgImQiCiNkZWZpbmUgU0NOZExFQVNUMzIgImQiCiNkZWZpbmUgU0NOZEZBU1QzMiAiZCIKI2RlZmluZSBTQ05pMzIgImkiCiNkZWZpbmUgU0NOaUxFQVNUMzIgImkiCiNkZWZpbmUgU0NOaUZBU1QzMiAiaSIKI2RlZmluZSBTQ05vMzIgIm8iCiNkZWZpbmUgU0NOb0xFQVNUMzIgIm8iCiNkZWZpbmUgU0NOb0ZBU1QzMiAibyIKI2RlZmluZSBTQ051MzIgInUiCiNkZWZpbmUgU0NOdUxFQVNUMzIgInUiCiNkZWZpbmUgU0NOdUZBU1QzMiAidSIKI2RlZmluZSBTQ054MzIgIngiCiNkZWZpbmUgU0NOeExFQVNUMzIgIngiCiNkZWZpbmUgU0NOeEZBU1QzMiAieCIKI2VuZGlmCgojZW5kaWYgLyogX19DTEFOR19JTlRUWVBFU19IICovCgBzdGRkZWYuaAB2YXJhcmdzLmgAcHBjX3dyYXBwZXJzL3RtbWludHJpbi5oAC8vPT09LS0gdHNhbl9pbnRlcmZhY2VfYXRvbWljLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgVGhyZWFkU2FuaXRpemVyIChUU2FuKSwgYSByYWNlIGRldGVjdG9yLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlciBmb3IgVFNhbiBhdG9taWNzLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFRTQU5fSU5URVJGQUNFX0FUT01JQ19ICiNkZWZpbmUgVFNBTl9JTlRFUkZBQ0VfQVRPTUlDX0gKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgp0eXBlZGVmIGNoYXIgX190c2FuX2F0b21pYzg7CnR5cGVkZWYgc2hvcnQgX190c2FuX2F0b21pYzE2Owp0eXBlZGVmIGludCBfX3RzYW5fYXRvbWljMzI7CnR5cGVkZWYgbG9uZyBfX3RzYW5fYXRvbWljNjQ7CiNpZiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKSBcCiAgICB8fCAoX19jbGFuZ19tYWpvcl9fICogMTAwICsgX19jbGFuZ19taW5vcl9fID49IDMwMikKX19leHRlbnNpb25fXyB0eXBlZGVmIF9faW50MTI4IF9fdHNhbl9hdG9taWMxMjg7CiMgZGVmaW5lIF9fVFNBTl9IQVNfSU5UMTI4IDEKI2Vsc2UKIyBkZWZpbmUgX19UU0FOX0hBU19JTlQxMjggMAojZW5kaWYKCi8vIFBhcnQgb2YgQUJJLCBkbyBub3QgY2hhbmdlLgovLyBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvYmxvYi9tYWluL2xpYmN4eC9pbmNsdWRlL2F0b21pYwp0eXBlZGVmIGVudW0gewogIF9fdHNhbl9tZW1vcnlfb3JkZXJfcmVsYXhlZCwKICBfX3RzYW5fbWVtb3J5X29yZGVyX2NvbnN1bWUsCiAgX190c2FuX21lbW9yeV9vcmRlcl9hY3F1aXJlLAogIF9fdHNhbl9tZW1vcnlfb3JkZXJfcmVsZWFzZSwKICBfX3RzYW5fbWVtb3J5X29yZGVyX2FjcV9yZWwsCiAgX190c2FuX21lbW9yeV9vcmRlcl9zZXFfY3N0Cn0gX190c2FuX21lbW9yeV9vcmRlcjsKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2xvYWQoY29uc3Qgdm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9sb2FkKGNvbnN0IHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2xvYWQoY29uc3Qgdm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfbG9hZChjb25zdCB2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9sb2FkKGNvbnN0IHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgp2b2lkIF9fdHNhbl9hdG9taWM4X3N0b3JlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLCBfX3RzYW5fYXRvbWljOCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CnZvaWQgX190c2FuX2F0b21pYzE2X3N0b3JlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwgX190c2FuX2F0b21pYzE2IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKdm9pZCBfX3RzYW5fYXRvbWljMzJfc3RvcmUodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLCBfX3RzYW5fYXRvbWljMzIgdiwKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwp2b2lkIF9fdHNhbl9hdG9taWM2NF9zdG9yZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsIF9fdHNhbl9hdG9taWM2NCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOAp2b2lkIF9fdHNhbl9hdG9taWMxMjhfc3RvcmUodm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwgX190c2FuX2F0b21pYzEyOCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNlbmRpZgoKX190c2FuX2F0b21pYzggX190c2FuX2F0b21pYzhfZXhjaGFuZ2Uodm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9leGNoYW5nZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZXhjaGFuZ2Uodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyIHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2V4Y2hhbmdlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9leGNoYW5nZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzE2ICphLAogICAgX190c2FuX2F0b21pYzE2IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2ZldGNoX2FkZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwKICAgIF9fdHNhbl9hdG9taWMxMjggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNlbmRpZgoKX190c2FuX2F0b21pYzggX190c2FuX2F0b21pYzhfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMxNiBfX3RzYW5fYXRvbWljMTZfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzMyIF9fdHNhbl9hdG9taWMzMl9mZXRjaF9zdWIodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyIHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2ZldGNoX3N1Yih2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOApfX3RzYW5fYXRvbWljMTI4IF9fdHNhbl9hdG9taWMxMjhfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMzMiAqYSwKICAgIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzY0IF9fdHNhbl9hdG9taWM2NF9mZXRjaF9hbmQodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9vcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX29yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzMyIF9fdHNhbl9hdG9taWMzMl9mZXRjaF9vcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfb3Iodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX29yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMzMiAqYSwKICAgIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzY0IF9fdHNhbl9hdG9taWM2NF9mZXRjaF94b3Iodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9uYW5kKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMxNiBfX3RzYW5fYXRvbWljMTZfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOApfX3RzYW5fYXRvbWljMTI4IF9fdHNhbl9hdG9taWMxMjhfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgppbnQgX190c2FuX2F0b21pYzhfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggKmMsIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwppbnQgX190c2FuX2F0b21pYzE2X2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgKmMsIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMzMl9jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyICpjLCBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbywKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgZmFpbF9tbyk7CmludCBfX3RzYW5fYXRvbWljNjRfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCAqYywgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKaW50IF9fdHNhbl9hdG9taWMxMjhfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4ICpjLCBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCmludCBfX3RzYW5fYXRvbWljOF9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4ICpjLCBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMxNl9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgKmMsIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMzMl9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgKmMsIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWM2NF9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgKmMsIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4CmludCBfX3RzYW5fYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4ICpjLCBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsIF9fdHNhbl9hdG9taWM4IGMsIF9fdHNhbl9hdG9taWM4IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzE2ICphLCBfX3RzYW5fYXRvbWljMTYgYywgX190c2FuX2F0b21pYzE2IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLCBfX3RzYW5fYXRvbWljMzIgYywgX190c2FuX2F0b21pYzMyIHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLCBfX3RzYW5fYXRvbWljNjQgYywgX190c2FuX2F0b21pYzY0IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwgX190c2FuX2F0b21pYzEyOCBjLCBfX3RzYW5fYXRvbWljMTI4IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCnZvaWQgX190c2FuX2F0b21pY190aHJlYWRfZmVuY2UoX190c2FuX21lbW9yeV9vcmRlciBtbyk7CnZvaWQgX190c2FuX2F0b21pY19zaWduYWxfZmVuY2UoX190c2FuX21lbW9yeV9vcmRlciBtbyk7CgojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gVFNBTl9JTlRFUkZBQ0VfQVRPTUlDX0gKAFJvb3QgZWxlbWVudCBpbiBKU09OIHdhcyBub3QgYW4gYXJyYXkuAE1pc3NpbmcgYSBjbG9zaW5nIHF1b3RhdGlvbiBtYXJrIGluIHN0cmluZy4ASW52YWxpZCBlbmNvZGluZyBpbiBzdHJpbmcuAGNsZWFuLW9ubHkAV2FsayBOVUxMAFxkAFxEAFs6ZGlnaXQ6XQAoPyw/KQBCYWQgYXJnczogbnN1Ym1hdGNoPQBcdABCZW5nYWxpAE51c2h1AFRpcmh1dGEAU0lHSUxMAFNJR1RFUk0AJXM6IHRvbyBtYW55IGV4ZWN1dGFibGUgTE9BRCBzZWdtZW50cwBiYXNlICE9IGRlYnVnZ2luZ19pbnRlcm5hbDo6RWxmTWVtSW1hZ2U6OmtJbnZhbGlkQmFzZQBpIDwgcHJldi0+bGV2ZWxzAGEAZGVjaW1hbDY0AER1AG1sADw8PQBBbiBPSyBzdGF0dXMgaXMgbm90IGEgdmFsaWQgY29uc3RydWN0b3IgYXJndW1lbnQgdG8gU3RhdHVzT3I8VD4AaW52YWxpZCBzdXJyb2dhdGUgY2hhcmFjdGVyICgweEQ4MDAtREZGRik6IFwAXS5jaGlsZCA9PSBudWxscHRyADB4AHdhaXRwLT50aHJlYWQtPndhaXRwID09IG51bGxwdHIgfHwgd2FpdHAtPnRocmVhZC0+c3VwcHJlc3NfZmF0YWxfZXJyb3JzAE11dGV4OjpGZXIgd2hpbGUgd2FpdGluZyBvbiBDb25kaXRpb24AV2FpdABVbmxvY2sgAFdhaXQgdW5ibG9ja2VkIABleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL211bC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWNfbW9udGdvbWVyeS5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZmVsZW0uYwBOSVNUIFAtMzg0AGdldHJhbmRvbQBreXRoZS5wcm90by5BbmFseXNpc1JlcXVlc3QuYnVpbGRfaWQAa3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0Lm91dHB1dF9rZXkAa3l0aGUucHJvdG8uQnVpbGREZXRhaWxzLnJ1bGVfdHlwZQBreXRoZS5wcm90by5tZXRhZGF0YS5NYXBwaW5nUnVsZS5lZGdlAGt5dGhlL3Byb3RvL3N0b3JhZ2UucHJvdG8AICE9IABLWVRIRV9PVVRQVVRfRklMRQApIGR1ZSB0byBpdHMgaW5jbHVzaW9uIGluIGNvbXBpbGVyIGFyZ3VtZW50OiAAcHJhZ21hAGF2eDUxMnZibWlpbnRyaW4uaABjbHdiaW50cmluLmgAY3B1aWQuaAAvKiA9PT0tLS0tLS0tLSBpYTMyaW50cmluLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fWDg2SU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGlhMzJpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fSUEzMklOVFJJTl9ICiNkZWZpbmUgX19JQTMySU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfU1NFNDIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2U0LjIiKSkpCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0NBU1QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSBjb25zdGV4cHIKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSIF9fREVGQVVMVF9GTl9BVFRSUyBjb25zdGV4cHIKI2Vsc2UKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfQ0FTVCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUiBfX0RFRkFVTFRfRk5fQVRUUlMKI2VuZGlmCgovKiogRmluZCB0aGUgZmlyc3Qgc2V0IGJpdCBzdGFydGluZyBmcm9tIHRoZSBsc2IuIFJlc3VsdCBpcyB1bmRlZmluZWQgaWYKICogIGlucHV0IGlzIDAuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJTRiA8L2M+IGluc3RydWN0aW9uIG9yIHRoZQogKiAgPGM+IFRaQ05UIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDMyLWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGJpdCBudW1iZXIuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX2JzZmQoaW50IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fY3R6KF9fQSk7Cn0KCi8qKiBGaW5kIHRoZSBmaXJzdCBzZXQgYml0IHN0YXJ0aW5nIGZyb20gdGhlIG1zYi4gUmVzdWx0IGlzIHVuZGVmaW5lZCBpZgogKiAgaW5wdXQgaXMgMC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQlNSIDwvYz4gaW5zdHJ1Y3Rpb24gb3IgdGhlCiAqICA8Yz4gTFpDTlQgPC9jPiBpbnN0cnVjdGlvbiBhbmQgYW4gPGM+IFhPUiA8L2M+LgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQSAzMi1iaXQgaW50ZWdlciBvcGVyYW5kLgogKiAgXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBiaXQgbnVtYmVyLgogKi8Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19ic3JkKGludCBfX0EpIHsKICByZXR1cm4gMzEgLSBfX2J1aWx0aW5fY2x6KF9fQSk7Cn0KCi8qKiBTd2FwcyB0aGUgYnl0ZXMgaW4gdGhlIGlucHV0LiBDb252ZXJ0aW5nIGxpdHRsZSBlbmRpYW4gdG8gYmlnIGVuZGlhbiBvcgogKiAgdmljZSB2ZXJzYS4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQlNXQVAgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgMzItYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgc3dhcHBlZCBieXRlcy4KICovCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fYnN3YXBkKGludCBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwMzIoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX2Jzd2FwKGludCBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwMzIoX19BKTsKfQoKI2RlZmluZSBfYml0X3NjYW5fZm9yd2FyZChBKSBfX2JzZmQoKEEpKQojZGVmaW5lIF9iaXRfc2Nhbl9yZXZlcnNlKEEpIF9fYnNyZCgoQSkpCgojaWZkZWYgX194ODZfNjRfXwovKiogRmluZCB0aGUgZmlyc3Qgc2V0IGJpdCBzdGFydGluZyBmcm9tIHRoZSBsc2IuIFJlc3VsdCBpcyB1bmRlZmluZWQgaWYKICogIGlucHV0IGlzIDAuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJTRiA8L2M+IGluc3RydWN0aW9uIG9yIHRoZQogKiAgPGM+IFRaQ05UIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGJpdCBudW1iZXIuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX2JzZnEobG9uZyBsb25nIF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fY3R6bGwoX19BKTsKfQoKLyoqIEZpbmQgdGhlIGZpcnN0IHNldCBiaXQgc3RhcnRpbmcgZnJvbSB0aGUgbXNiLiBSZXN1bHQgaXMgdW5kZWZpbmVkIGlmCiAqICBpbnB1dCBpcyAwLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCU1IgPC9jPiBpbnN0cnVjdGlvbiBvciB0aGUKICogIDxjPiBMWkNOVCA8L2M+IGluc3RydWN0aW9uIGFuZCBhbiA8Yz4gWE9SIDwvYz4uCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGJpdCBudW1iZXIuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX2JzcnEobG9uZyBsb25nIF9fQSkgewogIHJldHVybiA2MyAtIF9fYnVpbHRpbl9jbHpsbChfX0EpOwp9CgovKiogU3dhcHMgdGhlIGJ5dGVzIGluIHRoZSBpbnB1dC4gQ29udmVydGluZyBsaXR0bGUgZW5kaWFuIHRvIGJpZyBlbmRpYW4gb3IKICogIHZpY2UgdmVyc2EuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJTV0FQIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHN3YXBwZWQgYnl0ZXMuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX2Jzd2FwcShsb25nIGxvbmcgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDY0KF9fQSk7Cn0KCiNkZWZpbmUgX2Jzd2FwNjQoQSkgX19ic3dhcHEoKEEpKQojZW5kaWYKCi8qKiBDb3VudHMgdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBoYXZpbmcgYSB2YWx1ZSBvZiAxLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQT1BDTlQgPC9jPiBpbnN0cnVjdGlvbiBvciBhCiAqICBhIHNlcXVlbmNlIG9mIGFyaXRobWV0aWMgYW5kIGxvZ2ljIG9wcyB0byBjYWxjdWxhdGUgaXQuCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBvcGVyYW5kLgogKiAgXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgYml0cyB3aXRoIHZhbHVlIDEgaW4gdGhlCiAqICAgICBzb3VyY2Ugb3BlcmFuZC4KICovCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcG9wY250ZCh1bnNpZ25lZCBpbnQgX19BKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudChfX0EpOwp9CgojZGVmaW5lIF9wb3BjbnQzMihBKSBfX3BvcGNudGQoKEEpKQoKI2lmZGVmIF9feDg2XzY0X18KLyoqIENvdW50cyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGhhdmluZyBhIHZhbHVlIG9mIDEuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBPUENOVCA8L2M+IGluc3RydWN0aW9uIG9yIGEKICogIGEgc2VxdWVuY2Ugb2YgYXJpdGhtZXRpYyBhbmQgbG9naWMgb3BzIHRvIGNhbGN1bGF0ZSBpdC4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBiaXRzIHdpdGggdmFsdWUgMSBpbiB0aGUKICogICAgIHNvdXJjZSBvcGVyYW5kLgogKi8Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19wb3BjbnRxKHVuc2lnbmVkIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwoX19BKTsKfQoKI2RlZmluZSBfcG9wY250NjQoQSkgX19wb3BjbnRxKChBKSkKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19yZWFkZWZsYWdzKHZvaWQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVhZGVmbGFnc191NjQoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX193cml0ZWVmbGFncyh1bnNpZ25lZCBsb25nIGxvbmcgX19mKQp7CiAgX19idWlsdGluX2lhMzJfd3JpdGVlZmxhZ3NfdTY0KF9fZik7Cn0KCiNlbHNlIC8qICFfX3g4Nl82NF9fICovCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19yZWFkZWZsYWdzKHZvaWQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVhZGVmbGFnc191MzIoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX193cml0ZWVmbGFncyh1bnNpZ25lZCBpbnQgX19mKQp7CiAgX19idWlsdGluX2lhMzJfd3JpdGVlZmxhZ3NfdTMyKF9fZik7Cn0KI2VuZGlmIC8qICFfX3g4Nl82NF9fICovCgovKiogQ2FzdCBhIDMyLWJpdCBmbG9hdCB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uIGluIHg4Nl82NCwKICogIGFuZCBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMIC8gTU9WTCA8L2M+IGluc3RydWN0aW9uIGluIGlhMzIuCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDMyLWJpdCBmbG9hdCB2YWx1ZS4KICogIFxyZXR1cm5zIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgogKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSU19DQVNUCl9jYXN0ZjMyX3UzMihmbG9hdCBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2JpdF9jYXN0KHVuc2lnbmVkIGludCwgX19BKTsKfQoKLyoqIENhc3QgYSA2NC1iaXQgZmxvYXQgdmFsdWUgdG8gYSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZQogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbiBpbiB4ODZfNjQsCiAqICBhbmQgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTCAvIE1PVkwgPC9jPiBpbnN0cnVjdGlvbiBpbiBpYTMyLgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQSA2NC1iaXQgZmxvYXQgdmFsdWUuCiAqICBccmV0dXJucyBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4KICovCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlNfQ0FTVApfY2FzdGY2NF91NjQoZG91YmxlIF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fYml0X2Nhc3QodW5zaWduZWQgbG9uZyBsb25nLCBfX0EpOwp9CgovKiogQ2FzdCBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRvIGEgMzItYml0IGZsb2F0IHZhbHVlCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZRIC8gTU9WUSA8L2M+IGluc3RydWN0aW9uIGluIHg4Nl82NCwKICogIGFuZCBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZMRFMgPC9jPiBpbnN0cnVjdGlvbiBpbiBpYTMyLgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZS4KICogIFxyZXR1cm5zIGEgMzItYml0IGZsb2F0IHZhbHVlIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4KICovCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSU19DQVNUCl9jYXN0dTMyX2YzMih1bnNpZ25lZCBpbnQgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9iaXRfY2FzdChmbG9hdCwgX19BKTsKfQoKLyoqIENhc3QgYSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZSB0byBhIDY0LWJpdCBmbG9hdCB2YWx1ZQogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbiBpbiB4ODZfNjQsCiAqICBhbmQgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBGTERMIDwvYz4gaW5zdHJ1Y3Rpb24gaW4gaWEzMi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWUuCiAqICBccmV0dXJucyBhIDY0LWJpdCBmbG9hdCB2YWx1ZSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTX0NBU1QKX2Nhc3R1NjRfZjY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2JpdF9jYXN0KGRvdWJsZSwgX19BKTsKfQoKLyoqIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKICogICAgIHVuc2lnbmVkIGNoYXIgb3BlcmFuZC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJCIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19DCiAqICAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKICogICAgIFxhICBfX0QuCiAqICBccGFyYW0gX19ECiAqICAgICBBbiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyIG9wZXJhbmQgdXNlZCB0byBjb21wdXRlIHRoZSBDUkMtMzJDIGNoZWNrc3VtLgogKiAgXHJldHVybnMgVGhlIHJlc3VsdCBvZiBhZGRpbmcgb3BlcmFuZCBcYSBfX0MgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YKICogICAgIG9wZXJhbmQgXGEgX19ELgogKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSU19TU0U0MgpfX2NyYzMyYih1bnNpZ25lZCBpbnQgX19DLCB1bnNpZ25lZCBjaGFyIF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMnFpKF9fQywgX19EKTsKfQoKLyoqIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKICogICAgIHVuc2lnbmVkIHNob3J0IG9wZXJhbmQuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENSQzMyVyA8L2M+IGluc3RydWN0aW9uLgogKgogKiAgXHBhcmFtIF9fQwogKiAgICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCiAqICAgICBcYSAgX19ELgogKiAgXHBhcmFtIF9fRAogKiAgICAgQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCiAqICBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgogKiAgICAgb3BlcmFuZCBcYSBfX0QuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX1NTRTQyCl9fY3JjMzJ3KHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIHNob3J0IF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMmhpKF9fQywgX19EKTsKfQoKLyoqIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKICogICAgIHNlY29uZCB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENSQzMyRCA8L2M+IGluc3RydWN0aW9uLgogKgogKiAgXHBhcmFtIF9fQwogKiAgICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCiAqICAgICBcYSAgX19ELgogKiAgXHBhcmFtIF9fRAogKiAgICAgQW4gdW5zaWduZWQgMzItYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCiAqICBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgogKiAgICAgb3BlcmFuZCBcYSBfX0QuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX1NTRTQyCl9fY3JjMzJkKHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIGludCBfX0QpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3JjMzJzaShfX0MsIF9fRCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8qKiBBZGRzIHRoZSB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YgdGhlCiAqICAgICB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBvcGVyYW5kLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDUkMzMlEgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0MKICogICAgIEFuIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byBhZGQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2Ygb3BlcmFuZAogKiAgICAgXGEgIF9fRC4KICogIFxwYXJhbSBfX0QKICogICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQgdXNlZCB0byBjb21wdXRlIHRoZSBDUkMtMzJDIGNoZWNrc3VtLgogKiAgXHJldHVybnMgVGhlIHJlc3VsdCBvZiBhZGRpbmcgb3BlcmFuZCBcYSBfX0MgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YKICogICAgIG9wZXJhbmQgXGEgX19ELgogKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSU19TU0U0MgpfX2NyYzMycSh1bnNpZ25lZCBsb25nIGxvbmcgX19DLCB1bnNpZ25lZCBsb25nIGxvbmcgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMyZGkoX19DLCBfX0QpOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fcmRwbWMoaW50IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHBtYyhfX0EpOwp9CgovKiBfX3JkdHNjcCAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fcmR0c2NwKHVuc2lnbmVkIGludCAqX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkdHNjcChfX0EpOwp9CgojZGVmaW5lIF9yZHRzYygpIF9fcmR0c2MoKQoKI2RlZmluZSBfcmRwbWMoQSkgX19yZHBtYyhBKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3diaW52ZCh2b2lkKSB7CiAgX19idWlsdGluX2lhMzJfd2JpbnZkKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvbGIodW5zaWduZWQgY2hhciBfX1gsIGludCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX3JvdGF0ZWxlZnQ4KF9fWCwgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9yYih1bnNpZ25lZCBjaGFyIF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlcmlnaHQ4KF9fWCwgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgc2hvcnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvbHcodW5zaWduZWQgc2hvcnQgX19YLCBpbnQgX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9yb3RhdGVsZWZ0MTYoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBzaG9ydCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9ydyh1bnNpZ25lZCBzaG9ydCBfX1gsIGludCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX3JvdGF0ZXJpZ2h0MTYoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvbGQodW5zaWduZWQgaW50IF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlbGVmdDMyKF9fWCwgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19yb3JkKHVuc2lnbmVkIGludCBfX1gsIGludCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX3JvdGF0ZXJpZ2h0MzIoX19YLCBfX0MpOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvbHEodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlbGVmdDY0KF9fWCwgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19yb3JxKHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gsIGludCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX3JvdGF0ZXJpZ2h0NjQoX19YLCBfX0MpOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojaWZuZGVmIF9NU0NfVkVSCi8qIFRoZXNlIGFyZSBhbHJlYWR5IHByb3ZpZGVkIGFzIGJ1aWx0aW5zIGZvciBNU1ZDLiAqLwovKiBTZWxlY3QgdGhlIGNvcnJlY3QgZnVuY3Rpb24gYmFzZWQgb24gdGhlIHNpemUgb2YgbG9uZy4gKi8KI2lmZGVmIF9fTFA2NF9fCiNkZWZpbmUgX2xyb3RsKGEsYikgX19yb2xxKChhKSwgKGIpKQojZGVmaW5lIF9scm90cihhLGIpIF9fcm9ycSgoYSksIChiKSkKI2Vsc2UKI2RlZmluZSBfbHJvdGwoYSxiKSBfX3JvbGQoKGEpLCAoYikpCiNkZWZpbmUgX2xyb3RyKGEsYikgX19yb3JkKChhKSwgKGIpKQojZW5kaWYKI2RlZmluZSBfcm90bChhLGIpIF9fcm9sZCgoYSksIChiKSkKI2RlZmluZSBfcm90cihhLGIpIF9fcm9yZCgoYSksIChiKSkKI2VuZGlmIC8vIF9NU0NfVkVSCgovKiBUaGVzZSBhcmUgbm90IGJ1aWx0aW5zIHNvIG5lZWQgdG8gYmUgcHJvdmlkZWQgaW4gYWxsIG1vZGVzLiAqLwojZGVmaW5lIF9yb3R3bChhLGIpIF9fcm9sdygoYSksIChiKSkKI2RlZmluZSBfcm90d3IoYSxiKSBfX3JvcncoKGEpLCAoYikpCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfQ0FTVAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX1NTRTQyCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCgojZW5kaWYgLyogX19JQTMySU5UUklOX0ggKi8KAGludHR5cGVzLmgAaW52cGNpZGludHJpbi5oAG1tM2Rub3cuaAAvKj09PS0tLS0gbXNhLmggLSBNSVBTIE1TQSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9NU0FfSAojZGVmaW5lIF9NU0FfSCAxCgojaWYgZGVmaW5lZChfX21pcHNfbXNhKQp0eXBlZGVmIHNpZ25lZCBjaGFyIHYxNmk4IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiBzaWduZWQgY2hhciB2MTZpOF9iIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdjE2dTggX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdjE2dThfYiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMSkpKTsKdHlwZWRlZiBzaG9ydCB2OGkxNiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgc2hvcnQgdjhpMTZfaCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMikpKTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB2OHUxNiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdjh1MTZfaCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMikpKTsKdHlwZWRlZiBpbnQgdjRpMzIgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIGludCB2NGkzMl93IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCg0KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCB2NHUzMiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IHY0dTMyX3cgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDQpKSk7CnR5cGVkZWYgbG9uZyBsb25nIHYyaTY0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiBsb25nIGxvbmcgdjJpNjRfZCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoOCkpKTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdjJ1NjQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB2MnU2NF9kIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCg4KSkpOwp0eXBlZGVmIGZsb2F0IHY0ZjMyIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiBmbG9hdCB2NGYzMl93IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCg0KSkpOwp0eXBlZGVmIGRvdWJsZSB2MmY2NCBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIGRvdWJsZSB2MmY2NF9kIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoOCkpKTsKCiNkZWZpbmUgX19tc2Ffc2xsX2IgX19idWlsdGluX21zYV9zbGxfYgojZGVmaW5lIF9fbXNhX3NsbF9oIF9fYnVpbHRpbl9tc2Ffc2xsX2gKI2RlZmluZSBfX21zYV9zbGxfdyBfX2J1aWx0aW5fbXNhX3NsbF93CiNkZWZpbmUgX19tc2Ffc2xsX2QgX19idWlsdGluX21zYV9zbGxfZAojZGVmaW5lIF9fbXNhX3NsbGlfYiBfX2J1aWx0aW5fbXNhX3NsbGlfYgojZGVmaW5lIF9fbXNhX3NsbGlfaCBfX2J1aWx0aW5fbXNhX3NsbGlfaAojZGVmaW5lIF9fbXNhX3NsbGlfdyBfX2J1aWx0aW5fbXNhX3NsbGlfdwojZGVmaW5lIF9fbXNhX3NsbGlfZCBfX2J1aWx0aW5fbXNhX3NsbGlfZAojZGVmaW5lIF9fbXNhX3NyYV9iIF9fYnVpbHRpbl9tc2Ffc3JhX2IKI2RlZmluZSBfX21zYV9zcmFfaCBfX2J1aWx0aW5fbXNhX3NyYV9oCiNkZWZpbmUgX19tc2Ffc3JhX3cgX19idWlsdGluX21zYV9zcmFfdwojZGVmaW5lIF9fbXNhX3NyYV9kIF9fYnVpbHRpbl9tc2Ffc3JhX2QKI2RlZmluZSBfX21zYV9zcmFpX2IgX19idWlsdGluX21zYV9zcmFpX2IKI2RlZmluZSBfX21zYV9zcmFpX2ggX19idWlsdGluX21zYV9zcmFpX2gKI2RlZmluZSBfX21zYV9zcmFpX3cgX19idWlsdGluX21zYV9zcmFpX3cKI2RlZmluZSBfX21zYV9zcmFpX2QgX19idWlsdGluX21zYV9zcmFpX2QKI2RlZmluZSBfX21zYV9zcmFyX2IgX19idWlsdGluX21zYV9zcmFyX2IKI2RlZmluZSBfX21zYV9zcmFyX2ggX19idWlsdGluX21zYV9zcmFyX2gKI2RlZmluZSBfX21zYV9zcmFyX3cgX19idWlsdGluX21zYV9zcmFyX3cKI2RlZmluZSBfX21zYV9zcmFyX2QgX19idWlsdGluX21zYV9zcmFyX2QKI2RlZmluZSBfX21zYV9zcmFyaV9iIF9fYnVpbHRpbl9tc2Ffc3JhcmlfYgojZGVmaW5lIF9fbXNhX3NyYXJpX2ggX19idWlsdGluX21zYV9zcmFyaV9oCiNkZWZpbmUgX19tc2Ffc3JhcmlfdyBfX2J1aWx0aW5fbXNhX3NyYXJpX3cKI2RlZmluZSBfX21zYV9zcmFyaV9kIF9fYnVpbHRpbl9tc2Ffc3JhcmlfZAojZGVmaW5lIF9fbXNhX3NybF9iIF9fYnVpbHRpbl9tc2Ffc3JsX2IKI2RlZmluZSBfX21zYV9zcmxfaCBfX2J1aWx0aW5fbXNhX3NybF9oCiNkZWZpbmUgX19tc2Ffc3JsX3cgX19idWlsdGluX21zYV9zcmxfdwojZGVmaW5lIF9fbXNhX3NybF9kIF9fYnVpbHRpbl9tc2Ffc3JsX2QKI2RlZmluZSBfX21zYV9zcmxpX2IgX19idWlsdGluX21zYV9zcmxpX2IKI2RlZmluZSBfX21zYV9zcmxpX2ggX19idWlsdGluX21zYV9zcmxpX2gKI2RlZmluZSBfX21zYV9zcmxpX3cgX19idWlsdGluX21zYV9zcmxpX3cKI2RlZmluZSBfX21zYV9zcmxpX2QgX19idWlsdGluX21zYV9zcmxpX2QKI2RlZmluZSBfX21zYV9zcmxyX2IgX19idWlsdGluX21zYV9zcmxyX2IKI2RlZmluZSBfX21zYV9zcmxyX2ggX19idWlsdGluX21zYV9zcmxyX2gKI2RlZmluZSBfX21zYV9zcmxyX3cgX19idWlsdGluX21zYV9zcmxyX3cKI2RlZmluZSBfX21zYV9zcmxyX2QgX19idWlsdGluX21zYV9zcmxyX2QKI2RlZmluZSBfX21zYV9zcmxyaV9iIF9fYnVpbHRpbl9tc2Ffc3JscmlfYgojZGVmaW5lIF9fbXNhX3NybHJpX2ggX19idWlsdGluX21zYV9zcmxyaV9oCiNkZWZpbmUgX19tc2Ffc3JscmlfdyBfX2J1aWx0aW5fbXNhX3NybHJpX3cKI2RlZmluZSBfX21zYV9zcmxyaV9kIF9fYnVpbHRpbl9tc2Ffc3JscmlfZAojZGVmaW5lIF9fbXNhX2JjbHJfYiBfX2J1aWx0aW5fbXNhX2JjbHJfYgojZGVmaW5lIF9fbXNhX2JjbHJfaCBfX2J1aWx0aW5fbXNhX2JjbHJfaAojZGVmaW5lIF9fbXNhX2JjbHJfdyBfX2J1aWx0aW5fbXNhX2JjbHJfdwojZGVmaW5lIF9fbXNhX2JjbHJfZCBfX2J1aWx0aW5fbXNhX2JjbHJfZAojZGVmaW5lIF9fbXNhX2JjbHJpX2IgX19idWlsdGluX21zYV9iY2xyaV9iCiNkZWZpbmUgX19tc2FfYmNscmlfaCBfX2J1aWx0aW5fbXNhX2JjbHJpX2gKI2RlZmluZSBfX21zYV9iY2xyaV93IF9fYnVpbHRpbl9tc2FfYmNscmlfdwojZGVmaW5lIF9fbXNhX2JjbHJpX2QgX19idWlsdGluX21zYV9iY2xyaV9kCiNkZWZpbmUgX19tc2FfYnNldF9iIF9fYnVpbHRpbl9tc2FfYnNldF9iCiNkZWZpbmUgX19tc2FfYnNldF9oIF9fYnVpbHRpbl9tc2FfYnNldF9oCiNkZWZpbmUgX19tc2FfYnNldF93IF9fYnVpbHRpbl9tc2FfYnNldF93CiNkZWZpbmUgX19tc2FfYnNldF9kIF9fYnVpbHRpbl9tc2FfYnNldF9kCiNkZWZpbmUgX19tc2FfYnNldGlfYiBfX2J1aWx0aW5fbXNhX2JzZXRpX2IKI2RlZmluZSBfX21zYV9ic2V0aV9oIF9fYnVpbHRpbl9tc2FfYnNldGlfaAojZGVmaW5lIF9fbXNhX2JzZXRpX3cgX19idWlsdGluX21zYV9ic2V0aV93CiNkZWZpbmUgX19tc2FfYnNldGlfZCBfX2J1aWx0aW5fbXNhX2JzZXRpX2QKI2RlZmluZSBfX21zYV9ibmVnX2IgX19idWlsdGluX21zYV9ibmVnX2IKI2RlZmluZSBfX21zYV9ibmVnX2ggX19idWlsdGluX21zYV9ibmVnX2gKI2RlZmluZSBfX21zYV9ibmVnX3cgX19idWlsdGluX21zYV9ibmVnX3cKI2RlZmluZSBfX21zYV9ibmVnX2QgX19idWlsdGluX21zYV9ibmVnX2QKI2RlZmluZSBfX21zYV9ibmVnaV9iIF9fYnVpbHRpbl9tc2FfYm5lZ2lfYgojZGVmaW5lIF9fbXNhX2JuZWdpX2ggX19idWlsdGluX21zYV9ibmVnaV9oCiNkZWZpbmUgX19tc2FfYm5lZ2lfdyBfX2J1aWx0aW5fbXNhX2JuZWdpX3cKI2RlZmluZSBfX21zYV9ibmVnaV9kIF9fYnVpbHRpbl9tc2FfYm5lZ2lfZAojZGVmaW5lIF9fbXNhX2JpbnNsX2IgX19idWlsdGluX21zYV9iaW5zbF9iCiNkZWZpbmUgX19tc2FfYmluc2xfaCBfX2J1aWx0aW5fbXNhX2JpbnNsX2gKI2RlZmluZSBfX21zYV9iaW5zbF93IF9fYnVpbHRpbl9tc2FfYmluc2xfdwojZGVmaW5lIF9fbXNhX2JpbnNsX2QgX19idWlsdGluX21zYV9iaW5zbF9kCiNkZWZpbmUgX19tc2FfYmluc2xpX2IgX19idWlsdGluX21zYV9iaW5zbGlfYgojZGVmaW5lIF9fbXNhX2JpbnNsaV9oIF9fYnVpbHRpbl9tc2FfYmluc2xpX2gKI2RlZmluZSBfX21zYV9iaW5zbGlfdyBfX2J1aWx0aW5fbXNhX2JpbnNsaV93CiNkZWZpbmUgX19tc2FfYmluc2xpX2QgX19idWlsdGluX21zYV9iaW5zbGlfZAojZGVmaW5lIF9fbXNhX2JpbnNyX2IgX19idWlsdGluX21zYV9iaW5zcl9iCiNkZWZpbmUgX19tc2FfYmluc3JfaCBfX2J1aWx0aW5fbXNhX2JpbnNyX2gKI2RlZmluZSBfX21zYV9iaW5zcl93IF9fYnVpbHRpbl9tc2FfYmluc3JfdwojZGVmaW5lIF9fbXNhX2JpbnNyX2QgX19idWlsdGluX21zYV9iaW5zcl9kCiNkZWZpbmUgX19tc2FfYmluc3JpX2IgX19idWlsdGluX21zYV9iaW5zcmlfYgojZGVmaW5lIF9fbXNhX2JpbnNyaV9oIF9fYnVpbHRpbl9tc2FfYmluc3JpX2gKI2RlZmluZSBfX21zYV9iaW5zcmlfdyBfX2J1aWx0aW5fbXNhX2JpbnNyaV93CiNkZWZpbmUgX19tc2FfYmluc3JpX2QgX19idWlsdGluX21zYV9iaW5zcmlfZAojZGVmaW5lIF9fbXNhX2FkZHZfYiBfX2J1aWx0aW5fbXNhX2FkZHZfYgojZGVmaW5lIF9fbXNhX2FkZHZfaCBfX2J1aWx0aW5fbXNhX2FkZHZfaAojZGVmaW5lIF9fbXNhX2FkZHZfdyBfX2J1aWx0aW5fbXNhX2FkZHZfdwojZGVmaW5lIF9fbXNhX2FkZHZfZCBfX2J1aWx0aW5fbXNhX2FkZHZfZAojZGVmaW5lIF9fbXNhX2FkZHZpX2IgX19idWlsdGluX21zYV9hZGR2aV9iCiNkZWZpbmUgX19tc2FfYWRkdmlfaCBfX2J1aWx0aW5fbXNhX2FkZHZpX2gKI2RlZmluZSBfX21zYV9hZGR2aV93IF9fYnVpbHRpbl9tc2FfYWRkdmlfdwojZGVmaW5lIF9fbXNhX2FkZHZpX2QgX19idWlsdGluX21zYV9hZGR2aV9kCiNkZWZpbmUgX19tc2Ffc3Vidl9iIF9fYnVpbHRpbl9tc2Ffc3Vidl9iCiNkZWZpbmUgX19tc2Ffc3Vidl9oIF9fYnVpbHRpbl9tc2Ffc3Vidl9oCiNkZWZpbmUgX19tc2Ffc3Vidl93IF9fYnVpbHRpbl9tc2Ffc3Vidl93CiNkZWZpbmUgX19tc2Ffc3Vidl9kIF9fYnVpbHRpbl9tc2Ffc3Vidl9kCiNkZWZpbmUgX19tc2Ffc3VidmlfYiBfX2J1aWx0aW5fbXNhX3N1YnZpX2IKI2RlZmluZSBfX21zYV9zdWJ2aV9oIF9fYnVpbHRpbl9tc2Ffc3VidmlfaAojZGVmaW5lIF9fbXNhX3N1YnZpX3cgX19idWlsdGluX21zYV9zdWJ2aV93CiNkZWZpbmUgX19tc2Ffc3VidmlfZCBfX2J1aWx0aW5fbXNhX3N1YnZpX2QKI2RlZmluZSBfX21zYV9tYXhfc19iIF9fYnVpbHRpbl9tc2FfbWF4X3NfYgojZGVmaW5lIF9fbXNhX21heF9zX2ggX19idWlsdGluX21zYV9tYXhfc19oCiNkZWZpbmUgX19tc2FfbWF4X3NfdyBfX2J1aWx0aW5fbXNhX21heF9zX3cKI2RlZmluZSBfX21zYV9tYXhfc19kIF9fYnVpbHRpbl9tc2FfbWF4X3NfZAojZGVmaW5lIF9fbXNhX21heGlfc19iIF9fYnVpbHRpbl9tc2FfbWF4aV9zX2IKI2RlZmluZSBfX21zYV9tYXhpX3NfaCBfX2J1aWx0aW5fbXNhX21heGlfc19oCiNkZWZpbmUgX19tc2FfbWF4aV9zX3cgX19idWlsdGluX21zYV9tYXhpX3NfdwojZGVmaW5lIF9fbXNhX21heGlfc19kIF9fYnVpbHRpbl9tc2FfbWF4aV9zX2QKI2RlZmluZSBfX21zYV9tYXhfdV9iIF9fYnVpbHRpbl9tc2FfbWF4X3VfYgojZGVmaW5lIF9fbXNhX21heF91X2ggX19idWlsdGluX21zYV9tYXhfdV9oCiNkZWZpbmUgX19tc2FfbWF4X3VfdyBfX2J1aWx0aW5fbXNhX21heF91X3cKI2RlZmluZSBfX21zYV9tYXhfdV9kIF9fYnVpbHRpbl9tc2FfbWF4X3VfZAojZGVmaW5lIF9fbXNhX21heGlfdV9iIF9fYnVpbHRpbl9tc2FfbWF4aV91X2IKI2RlZmluZSBfX21zYV9tYXhpX3VfaCBfX2J1aWx0aW5fbXNhX21heGlfdV9oCiNkZWZpbmUgX19tc2FfbWF4aV91X3cgX19idWlsdGluX21zYV9tYXhpX3VfdwojZGVmaW5lIF9fbXNhX21heGlfdV9kIF9fYnVpbHRpbl9tc2FfbWF4aV91X2QKI2RlZmluZSBfX21zYV9taW5fc19iIF9fYnVpbHRpbl9tc2FfbWluX3NfYgojZGVmaW5lIF9fbXNhX21pbl9zX2ggX19idWlsdGluX21zYV9taW5fc19oCiNkZWZpbmUgX19tc2FfbWluX3NfdyBfX2J1aWx0aW5fbXNhX21pbl9zX3cKI2RlZmluZSBfX21zYV9taW5fc19kIF9fYnVpbHRpbl9tc2FfbWluX3NfZAojZGVmaW5lIF9fbXNhX21pbmlfc19iIF9fYnVpbHRpbl9tc2FfbWluaV9zX2IKI2RlZmluZSBfX21zYV9taW5pX3NfaCBfX2J1aWx0aW5fbXNhX21pbmlfc19oCiNkZWZpbmUgX19tc2FfbWluaV9zX3cgX19idWlsdGluX21zYV9taW5pX3NfdwojZGVmaW5lIF9fbXNhX21pbmlfc19kIF9fYnVpbHRpbl9tc2FfbWluaV9zX2QKI2RlZmluZSBfX21zYV9taW5fdV9iIF9fYnVpbHRpbl9tc2FfbWluX3VfYgojZGVmaW5lIF9fbXNhX21pbl91X2ggX19idWlsdGluX21zYV9taW5fdV9oCiNkZWZpbmUgX19tc2FfbWluX3VfdyBfX2J1aWx0aW5fbXNhX21pbl91X3cKI2RlZmluZSBfX21zYV9taW5fdV9kIF9fYnVpbHRpbl9tc2FfbWluX3VfZAojZGVmaW5lIF9fbXNhX21pbmlfdV9iIF9fYnVpbHRpbl9tc2FfbWluaV91X2IKI2RlZmluZSBfX21zYV9taW5pX3VfaCBfX2J1aWx0aW5fbXNhX21pbmlfdV9oCiNkZWZpbmUgX19tc2FfbWluaV91X3cgX19idWlsdGluX21zYV9taW5pX3VfdwojZGVmaW5lIF9fbXNhX21pbmlfdV9kIF9fYnVpbHRpbl9tc2FfbWluaV91X2QKI2RlZmluZSBfX21zYV9tYXhfYV9iIF9fYnVpbHRpbl9tc2FfbWF4X2FfYgojZGVmaW5lIF9fbXNhX21heF9hX2ggX19idWlsdGluX21zYV9tYXhfYV9oCiNkZWZpbmUgX19tc2FfbWF4X2FfdyBfX2J1aWx0aW5fbXNhX21heF9hX3cKI2RlZmluZSBfX21zYV9tYXhfYV9kIF9fYnVpbHRpbl9tc2FfbWF4X2FfZAojZGVmaW5lIF9fbXNhX21pbl9hX2IgX19idWlsdGluX21zYV9taW5fYV9iCiNkZWZpbmUgX19tc2FfbWluX2FfaCBfX2J1aWx0aW5fbXNhX21pbl9hX2gKI2RlZmluZSBfX21zYV9taW5fYV93IF9fYnVpbHRpbl9tc2FfbWluX2FfdwojZGVmaW5lIF9fbXNhX21pbl9hX2QgX19idWlsdGluX21zYV9taW5fYV9kCiNkZWZpbmUgX19tc2FfY2VxX2IgX19idWlsdGluX21zYV9jZXFfYgojZGVmaW5lIF9fbXNhX2NlcV9oIF9fYnVpbHRpbl9tc2FfY2VxX2gKI2RlZmluZSBfX21zYV9jZXFfdyBfX2J1aWx0aW5fbXNhX2NlcV93CiNkZWZpbmUgX19tc2FfY2VxX2QgX19idWlsdGluX21zYV9jZXFfZAojZGVmaW5lIF9fbXNhX2NlcWlfYiBfX2J1aWx0aW5fbXNhX2NlcWlfYgojZGVmaW5lIF9fbXNhX2NlcWlfaCBfX2J1aWx0aW5fbXNhX2NlcWlfaAojZGVmaW5lIF9fbXNhX2NlcWlfdyBfX2J1aWx0aW5fbXNhX2NlcWlfdwojZGVmaW5lIF9fbXNhX2NlcWlfZCBfX2J1aWx0aW5fbXNhX2NlcWlfZAojZGVmaW5lIF9fbXNhX2NsdF9zX2IgX19idWlsdGluX21zYV9jbHRfc19iCiNkZWZpbmUgX19tc2FfY2x0X3NfaCBfX2J1aWx0aW5fbXNhX2NsdF9zX2gKI2RlZmluZSBfX21zYV9jbHRfc193IF9fYnVpbHRpbl9tc2FfY2x0X3NfdwojZGVmaW5lIF9fbXNhX2NsdF9zX2QgX19idWlsdGluX21zYV9jbHRfc19kCiNkZWZpbmUgX19tc2FfY2x0aV9zX2IgX19idWlsdGluX21zYV9jbHRpX3NfYgojZGVmaW5lIF9fbXNhX2NsdGlfc19oIF9fYnVpbHRpbl9tc2FfY2x0aV9zX2gKI2RlZmluZSBfX21zYV9jbHRpX3NfdyBfX2J1aWx0aW5fbXNhX2NsdGlfc193CiNkZWZpbmUgX19tc2FfY2x0aV9zX2QgX19idWlsdGluX21zYV9jbHRpX3NfZAojZGVmaW5lIF9fbXNhX2NsdF91X2IgX19idWlsdGluX21zYV9jbHRfdV9iCiNkZWZpbmUgX19tc2FfY2x0X3VfaCBfX2J1aWx0aW5fbXNhX2NsdF91X2gKI2RlZmluZSBfX21zYV9jbHRfdV93IF9fYnVpbHRpbl9tc2FfY2x0X3VfdwojZGVmaW5lIF9fbXNhX2NsdF91X2QgX19idWlsdGluX21zYV9jbHRfdV9kCiNkZWZpbmUgX19tc2FfY2x0aV91X2IgX19idWlsdGluX21zYV9jbHRpX3VfYgojZGVmaW5lIF9fbXNhX2NsdGlfdV9oIF9fYnVpbHRpbl9tc2FfY2x0aV91X2gKI2RlZmluZSBfX21zYV9jbHRpX3VfdyBfX2J1aWx0aW5fbXNhX2NsdGlfdV93CiNkZWZpbmUgX19tc2FfY2x0aV91X2QgX19idWlsdGluX21zYV9jbHRpX3VfZAojZGVmaW5lIF9fbXNhX2NsZV9zX2IgX19idWlsdGluX21zYV9jbGVfc19iCiNkZWZpbmUgX19tc2FfY2xlX3NfaCBfX2J1aWx0aW5fbXNhX2NsZV9zX2gKI2RlZmluZSBfX21zYV9jbGVfc193IF9fYnVpbHRpbl9tc2FfY2xlX3NfdwojZGVmaW5lIF9fbXNhX2NsZV9zX2QgX19idWlsdGluX21zYV9jbGVfc19kCiNkZWZpbmUgX19tc2FfY2xlaV9zX2IgX19idWlsdGluX21zYV9jbGVpX3NfYgojZGVmaW5lIF9fbXNhX2NsZWlfc19oIF9fYnVpbHRpbl9tc2FfY2xlaV9zX2gKI2RlZmluZSBfX21zYV9jbGVpX3NfdyBfX2J1aWx0aW5fbXNhX2NsZWlfc193CiNkZWZpbmUgX19tc2FfY2xlaV9zX2QgX19idWlsdGluX21zYV9jbGVpX3NfZAojZGVmaW5lIF9fbXNhX2NsZV91X2IgX19idWlsdGluX21zYV9jbGVfdV9iCiNkZWZpbmUgX19tc2FfY2xlX3VfaCBfX2J1aWx0aW5fbXNhX2NsZV91X2gKI2RlZmluZSBfX21zYV9jbGVfdV93IF9fYnVpbHRpbl9tc2FfY2xlX3VfdwojZGVmaW5lIF9fbXNhX2NsZV91X2QgX19idWlsdGluX21zYV9jbGVfdV9kCiNkZWZpbmUgX19tc2FfY2xlaV91X2IgX19idWlsdGluX21zYV9jbGVpX3VfYgojZGVmaW5lIF9fbXNhX2NsZWlfdV9oIF9fYnVpbHRpbl9tc2FfY2xlaV91X2gKI2RlZmluZSBfX21zYV9jbGVpX3VfdyBfX2J1aWx0aW5fbXNhX2NsZWlfdV93CiNkZWZpbmUgX19tc2FfY2xlaV91X2QgX19idWlsdGluX21zYV9jbGVpX3VfZAojZGVmaW5lIF9fbXNhX2xkX2IgX19idWlsdGluX21zYV9sZF9iCiNkZWZpbmUgX19tc2FfbGRfaCBfX2J1aWx0aW5fbXNhX2xkX2gKI2RlZmluZSBfX21zYV9sZF93IF9fYnVpbHRpbl9tc2FfbGRfdwojZGVmaW5lIF9fbXNhX2xkX2QgX19idWlsdGluX21zYV9sZF9kCiNkZWZpbmUgX19tc2FfbGRyX2QgX19idWlsdGluX21zYV9sZHJfZAojZGVmaW5lIF9fbXNhX2xkcl93IF9fYnVpbHRpbl9tc2FfbGRycV93CiNkZWZpbmUgX19tc2Ffc3RfYiBfX2J1aWx0aW5fbXNhX3N0X2IKI2RlZmluZSBfX21zYV9zdF9oIF9fYnVpbHRpbl9tc2Ffc3RfaAojZGVmaW5lIF9fbXNhX3N0X3cgX19idWlsdGluX21zYV9zdF93CiNkZWZpbmUgX19tc2Ffc3RfZCBfX2J1aWx0aW5fbXNhX3N0X2QKI2RlZmluZSBfX21zYV9zdHJfZCBfX2J1aWx0aW5fbXNhX3N0cl9kCiNkZWZpbmUgX19tc2Ffc3RyX3cgX19idWlsdGluX21zYV9zdHJxX3cKI2RlZmluZSBfX21zYV9zYXRfc19iIF9fYnVpbHRpbl9tc2Ffc2F0X3NfYgojZGVmaW5lIF9fbXNhX3NhdF9zX2ggX19idWlsdGluX21zYV9zYXRfc19oCiNkZWZpbmUgX19tc2Ffc2F0X3NfdyBfX2J1aWx0aW5fbXNhX3NhdF9zX3cKI2RlZmluZSBfX21zYV9zYXRfc19kIF9fYnVpbHRpbl9tc2Ffc2F0X3NfZAojZGVmaW5lIF9fbXNhX3NhdF91X2IgX19idWlsdGluX21zYV9zYXRfdV9iCiNkZWZpbmUgX19tc2Ffc2F0X3VfaCBfX2J1aWx0aW5fbXNhX3NhdF91X2gKI2RlZmluZSBfX21zYV9zYXRfdV93IF9fYnVpbHRpbl9tc2Ffc2F0X3VfdwojZGVmaW5lIF9fbXNhX3NhdF91X2QgX19idWlsdGluX21zYV9zYXRfdV9kCiNkZWZpbmUgX19tc2FfYWRkX2FfYiBfX2J1aWx0aW5fbXNhX2FkZF9hX2IKI2RlZmluZSBfX21zYV9hZGRfYV9oIF9fYnVpbHRpbl9tc2FfYWRkX2FfaAojZGVmaW5lIF9fbXNhX2FkZF9hX3cgX19idWlsdGluX21zYV9hZGRfYV93CiNkZWZpbmUgX19tc2FfYWRkX2FfZCBfX2J1aWx0aW5fbXNhX2FkZF9hX2QKI2RlZmluZSBfX21zYV9hZGRzX2FfYiBfX2J1aWx0aW5fbXNhX2FkZHNfYV9iCiNkZWZpbmUgX19tc2FfYWRkc19hX2ggX19idWlsdGluX21zYV9hZGRzX2FfaAojZGVmaW5lIF9fbXNhX2FkZHNfYV93IF9fYnVpbHRpbl9tc2FfYWRkc19hX3cKI2RlZmluZSBfX21zYV9hZGRzX2FfZCBfX2J1aWx0aW5fbXNhX2FkZHNfYV9kCiNkZWZpbmUgX19tc2FfYWRkc19zX2IgX19idWlsdGluX21zYV9hZGRzX3NfYgojZGVmaW5lIF9fbXNhX2FkZHNfc19oIF9fYnVpbHRpbl9tc2FfYWRkc19zX2gKI2RlZmluZSBfX21zYV9hZGRzX3NfdyBfX2J1aWx0aW5fbXNhX2FkZHNfc193CiNkZWZpbmUgX19tc2FfYWRkc19zX2QgX19idWlsdGluX21zYV9hZGRzX3NfZAojZGVmaW5lIF9fbXNhX2FkZHNfdV9iIF9fYnVpbHRpbl9tc2FfYWRkc191X2IKI2RlZmluZSBfX21zYV9hZGRzX3VfaCBfX2J1aWx0aW5fbXNhX2FkZHNfdV9oCiNkZWZpbmUgX19tc2FfYWRkc191X3cgX19idWlsdGluX21zYV9hZGRzX3VfdwojZGVmaW5lIF9fbXNhX2FkZHNfdV9kIF9fYnVpbHRpbl9tc2FfYWRkc191X2QKI2RlZmluZSBfX21zYV9hdmVfc19iIF9fYnVpbHRpbl9tc2FfYXZlX3NfYgojZGVmaW5lIF9fbXNhX2F2ZV9zX2ggX19idWlsdGluX21zYV9hdmVfc19oCiNkZWZpbmUgX19tc2FfYXZlX3NfdyBfX2J1aWx0aW5fbXNhX2F2ZV9zX3cKI2RlZmluZSBfX21zYV9hdmVfc19kIF9fYnVpbHRpbl9tc2FfYXZlX3NfZAojZGVmaW5lIF9fbXNhX2F2ZV91X2IgX19idWlsdGluX21zYV9hdmVfdV9iCiNkZWZpbmUgX19tc2FfYXZlX3VfaCBfX2J1aWx0aW5fbXNhX2F2ZV91X2gKI2RlZmluZSBfX21zYV9hdmVfdV93IF9fYnVpbHRpbl9tc2FfYXZlX3VfdwojZGVmaW5lIF9fbXNhX2F2ZV91X2QgX19idWlsdGluX21zYV9hdmVfdV9kCiNkZWZpbmUgX19tc2FfYXZlcl9zX2IgX19idWlsdGluX21zYV9hdmVyX3NfYgojZGVmaW5lIF9fbXNhX2F2ZXJfc19oIF9fYnVpbHRpbl9tc2FfYXZlcl9zX2gKI2RlZmluZSBfX21zYV9hdmVyX3NfdyBfX2J1aWx0aW5fbXNhX2F2ZXJfc193CiNkZWZpbmUgX19tc2FfYXZlcl9zX2QgX19idWlsdGluX21zYV9hdmVyX3NfZAojZGVmaW5lIF9fbXNhX2F2ZXJfdV9iIF9fYnVpbHRpbl9tc2FfYXZlcl91X2IKI2RlZmluZSBfX21zYV9hdmVyX3VfaCBfX2J1aWx0aW5fbXNhX2F2ZXJfdV9oCiNkZWZpbmUgX19tc2FfYXZlcl91X3cgX19idWlsdGluX21zYV9hdmVyX3VfdwojZGVmaW5lIF9fbXNhX2F2ZXJfdV9kIF9fYnVpbHRpbl9tc2FfYXZlcl91X2QKI2RlZmluZSBfX21zYV9zdWJzX3NfYiBfX2J1aWx0aW5fbXNhX3N1YnNfc19iCiNkZWZpbmUgX19tc2Ffc3Vic19zX2ggX19idWlsdGluX21zYV9zdWJzX3NfaAojZGVmaW5lIF9fbXNhX3N1YnNfc193IF9fYnVpbHRpbl9tc2Ffc3Vic19zX3cKI2RlZmluZSBfX21zYV9zdWJzX3NfZCBfX2J1aWx0aW5fbXNhX3N1YnNfc19kCiNkZWZpbmUgX19tc2Ffc3Vic191X2IgX19idWlsdGluX21zYV9zdWJzX3VfYgojZGVmaW5lIF9fbXNhX3N1YnNfdV9oIF9fYnVpbHRpbl9tc2Ffc3Vic191X2gKI2RlZmluZSBfX21zYV9zdWJzX3VfdyBfX2J1aWx0aW5fbXNhX3N1YnNfdV93CiNkZWZpbmUgX19tc2Ffc3Vic191X2QgX19idWlsdGluX21zYV9zdWJzX3VfZAojZGVmaW5lIF9fbXNhX3N1YnN1dV9zX2IgX19idWlsdGluX21zYV9zdWJzdXVfc19iCiNkZWZpbmUgX19tc2Ffc3Vic3V1X3NfaCBfX2J1aWx0aW5fbXNhX3N1YnN1dV9zX2gKI2RlZmluZSBfX21zYV9zdWJzdXVfc193IF9fYnVpbHRpbl9tc2Ffc3Vic3V1X3NfdwojZGVmaW5lIF9fbXNhX3N1YnN1dV9zX2QgX19idWlsdGluX21zYV9zdWJzdXVfc19kCiNkZWZpbmUgX19tc2Ffc3Vic3VzX3VfYiBfX2J1aWx0aW5fbXNhX3N1YnN1c191X2IKI2RlZmluZSBfX21zYV9zdWJzdXNfdV9oIF9fYnVpbHRpbl9tc2Ffc3Vic3VzX3VfaAojZGVmaW5lIF9fbXNhX3N1YnN1c191X3cgX19idWlsdGluX21zYV9zdWJzdXNfdV93CiNkZWZpbmUgX19tc2Ffc3Vic3VzX3VfZCBfX2J1aWx0aW5fbXNhX3N1YnN1c191X2QKI2RlZmluZSBfX21zYV9hc3ViX3NfYiBfX2J1aWx0aW5fbXNhX2FzdWJfc19iCiNkZWZpbmUgX19tc2FfYXN1Yl9zX2ggX19idWlsdGluX21zYV9hc3ViX3NfaAojZGVmaW5lIF9fbXNhX2FzdWJfc193IF9fYnVpbHRpbl9tc2FfYXN1Yl9zX3cKI2RlZmluZSBfX21zYV9hc3ViX3NfZCBfX2J1aWx0aW5fbXNhX2FzdWJfc19kCiNkZWZpbmUgX19tc2FfYXN1Yl91X2IgX19idWlsdGluX21zYV9hc3ViX3VfYgojZGVmaW5lIF9fbXNhX2FzdWJfdV9oIF9fYnVpbHRpbl9tc2FfYXN1Yl91X2gKI2RlZmluZSBfX21zYV9hc3ViX3VfdyBfX2J1aWx0aW5fbXNhX2FzdWJfdV93CiNkZWZpbmUgX19tc2FfYXN1Yl91X2QgX19idWlsdGluX21zYV9hc3ViX3VfZAojZGVmaW5lIF9fbXNhX211bHZfYiBfX2J1aWx0aW5fbXNhX211bHZfYgojZGVmaW5lIF9fbXNhX211bHZfaCBfX2J1aWx0aW5fbXNhX211bHZfaAojZGVmaW5lIF9fbXNhX211bHZfdyBfX2J1aWx0aW5fbXNhX211bHZfdwojZGVmaW5lIF9fbXNhX211bHZfZCBfX2J1aWx0aW5fbXNhX211bHZfZAojZGVmaW5lIF9fbXNhX21hZGR2X2IgX19idWlsdGluX21zYV9tYWRkdl9iCiNkZWZpbmUgX19tc2FfbWFkZHZfaCBfX2J1aWx0aW5fbXNhX21hZGR2X2gKI2RlZmluZSBfX21zYV9tYWRkdl93IF9fYnVpbHRpbl9tc2FfbWFkZHZfdwojZGVmaW5lIF9fbXNhX21hZGR2X2QgX19idWlsdGluX21zYV9tYWRkdl9kCiNkZWZpbmUgX19tc2FfbXN1YnZfYiBfX2J1aWx0aW5fbXNhX21zdWJ2X2IKI2RlZmluZSBfX21zYV9tc3Vidl9oIF9fYnVpbHRpbl9tc2FfbXN1YnZfaAojZGVmaW5lIF9fbXNhX21zdWJ2X3cgX19idWlsdGluX21zYV9tc3Vidl93CiNkZWZpbmUgX19tc2FfbXN1YnZfZCBfX2J1aWx0aW5fbXNhX21zdWJ2X2QKI2RlZmluZSBfX21zYV9kaXZfc19iIF9fYnVpbHRpbl9tc2FfZGl2X3NfYgojZGVmaW5lIF9fbXNhX2Rpdl9zX2ggX19idWlsdGluX21zYV9kaXZfc19oCiNkZWZpbmUgX19tc2FfZGl2X3NfdyBfX2J1aWx0aW5fbXNhX2Rpdl9zX3cKI2RlZmluZSBfX21zYV9kaXZfc19kIF9fYnVpbHRpbl9tc2FfZGl2X3NfZAojZGVmaW5lIF9fbXNhX2Rpdl91X2IgX19idWlsdGluX21zYV9kaXZfdV9iCiNkZWZpbmUgX19tc2FfZGl2X3VfaCBfX2J1aWx0aW5fbXNhX2Rpdl91X2gKI2RlZmluZSBfX21zYV9kaXZfdV93IF9fYnVpbHRpbl9tc2FfZGl2X3VfdwojZGVmaW5lIF9fbXNhX2Rpdl91X2QgX19idWlsdGluX21zYV9kaXZfdV9kCiNkZWZpbmUgX19tc2FfaGFkZF9zX2ggX19idWlsdGluX21zYV9oYWRkX3NfaAojZGVmaW5lIF9fbXNhX2hhZGRfc193IF9fYnVpbHRpbl9tc2FfaGFkZF9zX3cKI2RlZmluZSBfX21zYV9oYWRkX3NfZCBfX2J1aWx0aW5fbXNhX2hhZGRfc19kCiNkZWZpbmUgX19tc2FfaGFkZF91X2ggX19idWlsdGluX21zYV9oYWRkX3VfaAojZGVmaW5lIF9fbXNhX2hhZGRfdV93IF9fYnVpbHRpbl9tc2FfaGFkZF91X3cKI2RlZmluZSBfX21zYV9oYWRkX3VfZCBfX2J1aWx0aW5fbXNhX2hhZGRfdV9kCiNkZWZpbmUgX19tc2FfaHN1Yl9zX2ggX19idWlsdGluX21zYV9oc3ViX3NfaAojZGVmaW5lIF9fbXNhX2hzdWJfc193IF9fYnVpbHRpbl9tc2FfaHN1Yl9zX3cKI2RlZmluZSBfX21zYV9oc3ViX3NfZCBfX2J1aWx0aW5fbXNhX2hzdWJfc19kCiNkZWZpbmUgX19tc2FfaHN1Yl91X2ggX19idWlsdGluX21zYV9oc3ViX3VfaAojZGVmaW5lIF9fbXNhX2hzdWJfdV93IF9fYnVpbHRpbl9tc2FfaHN1Yl91X3cKI2RlZmluZSBfX21zYV9oc3ViX3VfZCBfX2J1aWx0aW5fbXNhX2hzdWJfdV9kCiNkZWZpbmUgX19tc2FfbW9kX3NfYiBfX2J1aWx0aW5fbXNhX21vZF9zX2IKI2RlZmluZSBfX21zYV9tb2Rfc19oIF9fYnVpbHRpbl9tc2FfbW9kX3NfaAojZGVmaW5lIF9fbXNhX21vZF9zX3cgX19idWlsdGluX21zYV9tb2Rfc193CiNkZWZpbmUgX19tc2FfbW9kX3NfZCBfX2J1aWx0aW5fbXNhX21vZF9zX2QKI2RlZmluZSBfX21zYV9tb2RfdV9iIF9fYnVpbHRpbl9tc2FfbW9kX3VfYgojZGVmaW5lIF9fbXNhX21vZF91X2ggX19idWlsdGluX21zYV9tb2RfdV9oCiNkZWZpbmUgX19tc2FfbW9kX3VfdyBfX2J1aWx0aW5fbXNhX21vZF91X3cKI2RlZmluZSBfX21zYV9tb2RfdV9kIF9fYnVpbHRpbl9tc2FfbW9kX3VfZAojZGVmaW5lIF9fbXNhX2RvdHBfc19oIF9fYnVpbHRpbl9tc2FfZG90cF9zX2gKI2RlZmluZSBfX21zYV9kb3RwX3NfdyBfX2J1aWx0aW5fbXNhX2RvdHBfc193CiNkZWZpbmUgX19tc2FfZG90cF9zX2QgX19idWlsdGluX21zYV9kb3RwX3NfZAojZGVmaW5lIF9fbXNhX2RvdHBfdV9oIF9fYnVpbHRpbl9tc2FfZG90cF91X2gKI2RlZmluZSBfX21zYV9kb3RwX3VfdyBfX2J1aWx0aW5fbXNhX2RvdHBfdV93CiNkZWZpbmUgX19tc2FfZG90cF91X2QgX19idWlsdGluX21zYV9kb3RwX3VfZAojZGVmaW5lIF9fbXNhX2RwYWRkX3NfaCBfX2J1aWx0aW5fbXNhX2RwYWRkX3NfaAojZGVmaW5lIF9fbXNhX2RwYWRkX3NfdyBfX2J1aWx0aW5fbXNhX2RwYWRkX3NfdwojZGVmaW5lIF9fbXNhX2RwYWRkX3NfZCBfX2J1aWx0aW5fbXNhX2RwYWRkX3NfZAojZGVmaW5lIF9fbXNhX2RwYWRkX3VfaCBfX2J1aWx0aW5fbXNhX2RwYWRkX3VfaAojZGVmaW5lIF9fbXNhX2RwYWRkX3VfdyBfX2J1aWx0aW5fbXNhX2RwYWRkX3VfdwojZGVmaW5lIF9fbXNhX2RwYWRkX3VfZCBfX2J1aWx0aW5fbXNhX2RwYWRkX3VfZAojZGVmaW5lIF9fbXNhX2Rwc3ViX3NfaCBfX2J1aWx0aW5fbXNhX2Rwc3ViX3NfaAojZGVmaW5lIF9fbXNhX2Rwc3ViX3NfdyBfX2J1aWx0aW5fbXNhX2Rwc3ViX3NfdwojZGVmaW5lIF9fbXNhX2Rwc3ViX3NfZCBfX2J1aWx0aW5fbXNhX2Rwc3ViX3NfZAojZGVmaW5lIF9fbXNhX2Rwc3ViX3VfaCBfX2J1aWx0aW5fbXNhX2Rwc3ViX3VfaAojZGVmaW5lIF9fbXNhX2Rwc3ViX3VfdyBfX2J1aWx0aW5fbXNhX2Rwc3ViX3VfdwojZGVmaW5lIF9fbXNhX2Rwc3ViX3VfZCBfX2J1aWx0aW5fbXNhX2Rwc3ViX3VfZAojZGVmaW5lIF9fbXNhX3NsZF9iIF9fYnVpbHRpbl9tc2Ffc2xkX2IKI2RlZmluZSBfX21zYV9zbGRfaCBfX2J1aWx0aW5fbXNhX3NsZF9oCiNkZWZpbmUgX19tc2Ffc2xkX3cgX19idWlsdGluX21zYV9zbGRfdwojZGVmaW5lIF9fbXNhX3NsZF9kIF9fYnVpbHRpbl9tc2Ffc2xkX2QKI2RlZmluZSBfX21zYV9zbGRpX2IgX19idWlsdGluX21zYV9zbGRpX2IKI2RlZmluZSBfX21zYV9zbGRpX2ggX19idWlsdGluX21zYV9zbGRpX2gKI2RlZmluZSBfX21zYV9zbGRpX3cgX19idWlsdGluX21zYV9zbGRpX3cKI2RlZmluZSBfX21zYV9zbGRpX2QgX19idWlsdGluX21zYV9zbGRpX2QKI2RlZmluZSBfX21zYV9zcGxhdF9iIF9fYnVpbHRpbl9tc2Ffc3BsYXRfYgojZGVmaW5lIF9fbXNhX3NwbGF0X2ggX19idWlsdGluX21zYV9zcGxhdF9oCiNkZWZpbmUgX19tc2Ffc3BsYXRfdyBfX2J1aWx0aW5fbXNhX3NwbGF0X3cKI2RlZmluZSBfX21zYV9zcGxhdF9kIF9fYnVpbHRpbl9tc2Ffc3BsYXRfZAojZGVmaW5lIF9fbXNhX3NwbGF0aV9iIF9fYnVpbHRpbl9tc2Ffc3BsYXRpX2IKI2RlZmluZSBfX21zYV9zcGxhdGlfaCBfX2J1aWx0aW5fbXNhX3NwbGF0aV9oCiNkZWZpbmUgX19tc2Ffc3BsYXRpX3cgX19idWlsdGluX21zYV9zcGxhdGlfdwojZGVmaW5lIF9fbXNhX3NwbGF0aV9kIF9fYnVpbHRpbl9tc2Ffc3BsYXRpX2QKI2RlZmluZSBfX21zYV9wY2tldl9iIF9fYnVpbHRpbl9tc2FfcGNrZXZfYgojZGVmaW5lIF9fbXNhX3Bja2V2X2ggX19idWlsdGluX21zYV9wY2tldl9oCiNkZWZpbmUgX19tc2FfcGNrZXZfdyBfX2J1aWx0aW5fbXNhX3Bja2V2X3cKI2RlZmluZSBfX21zYV9wY2tldl9kIF9fYnVpbHRpbl9tc2FfcGNrZXZfZAojZGVmaW5lIF9fbXNhX3Bja29kX2IgX19idWlsdGluX21zYV9wY2tvZF9iCiNkZWZpbmUgX19tc2FfcGNrb2RfaCBfX2J1aWx0aW5fbXNhX3Bja29kX2gKI2RlZmluZSBfX21zYV9wY2tvZF93IF9fYnVpbHRpbl9tc2FfcGNrb2RfdwojZGVmaW5lIF9fbXNhX3Bja29kX2QgX19idWlsdGluX21zYV9wY2tvZF9kCiNkZWZpbmUgX19tc2FfaWx2bF9iIF9fYnVpbHRpbl9tc2FfaWx2bF9iCiNkZWZpbmUgX19tc2FfaWx2bF9oIF9fYnVpbHRpbl9tc2FfaWx2bF9oCiNkZWZpbmUgX19tc2FfaWx2bF93IF9fYnVpbHRpbl9tc2FfaWx2bF93CiNkZWZpbmUgX19tc2FfaWx2bF9kIF9fYnVpbHRpbl9tc2FfaWx2bF9kCiNkZWZpbmUgX19tc2FfaWx2cl9iIF9fYnVpbHRpbl9tc2FfaWx2cl9iCiNkZWZpbmUgX19tc2FfaWx2cl9oIF9fYnVpbHRpbl9tc2FfaWx2cl9oCiNkZWZpbmUgX19tc2FfaWx2cl93IF9fYnVpbHRpbl9tc2FfaWx2cl93CiNkZWZpbmUgX19tc2FfaWx2cl9kIF9fYnVpbHRpbl9tc2FfaWx2cl9kCiNkZWZpbmUgX19tc2FfaWx2ZXZfYiBfX2J1aWx0aW5fbXNhX2lsdmV2X2IKI2RlZmluZSBfX21zYV9pbHZldl9oIF9fYnVpbHRpbl9tc2FfaWx2ZXZfaAojZGVmaW5lIF9fbXNhX2lsdmV2X3cgX19idWlsdGluX21zYV9pbHZldl93CiNkZWZpbmUgX19tc2FfaWx2ZXZfZCBfX2J1aWx0aW5fbXNhX2lsdmV2X2QKI2RlZmluZSBfX21zYV9pbHZvZF9iIF9fYnVpbHRpbl9tc2FfaWx2b2RfYgojZGVmaW5lIF9fbXNhX2lsdm9kX2ggX19idWlsdGluX21zYV9pbHZvZF9oCiNkZWZpbmUgX19tc2FfaWx2b2RfdyBfX2J1aWx0aW5fbXNhX2lsdm9kX3cKI2RlZmluZSBfX21zYV9pbHZvZF9kIF9fYnVpbHRpbl9tc2FfaWx2b2RfZAojZGVmaW5lIF9fbXNhX3ZzaGZfYiBfX2J1aWx0aW5fbXNhX3ZzaGZfYgojZGVmaW5lIF9fbXNhX3ZzaGZfaCBfX2J1aWx0aW5fbXNhX3ZzaGZfaAojZGVmaW5lIF9fbXNhX3ZzaGZfdyBfX2J1aWx0aW5fbXNhX3ZzaGZfdwojZGVmaW5lIF9fbXNhX3ZzaGZfZCBfX2J1aWx0aW5fbXNhX3ZzaGZfZAojZGVmaW5lIF9fbXNhX2FuZF92IF9fYnVpbHRpbl9tc2FfYW5kX3YKI2RlZmluZSBfX21zYV9hbmRpX2IgX19idWlsdGluX21zYV9hbmRpX2IKI2RlZmluZSBfX21zYV9vcl92IF9fYnVpbHRpbl9tc2Ffb3JfdgojZGVmaW5lIF9fbXNhX29yaV9iIF9fYnVpbHRpbl9tc2Ffb3JpX2IKI2RlZmluZSBfX21zYV9ub3JfdiBfX2J1aWx0aW5fbXNhX25vcl92CiNkZWZpbmUgX19tc2Ffbm9yaV9iIF9fYnVpbHRpbl9tc2Ffbm9yaV9iCiNkZWZpbmUgX19tc2FfeG9yX3YgX19idWlsdGluX21zYV94b3JfdgojZGVmaW5lIF9fbXNhX3hvcmlfYiBfX2J1aWx0aW5fbXNhX3hvcmlfYgojZGVmaW5lIF9fbXNhX2JtbnpfdiBfX2J1aWx0aW5fbXNhX2JtbnpfdgojZGVmaW5lIF9fbXNhX2JtbnppX2IgX19idWlsdGluX21zYV9ibW56aV9iCiNkZWZpbmUgX19tc2FfYm16X3YgX19idWlsdGluX21zYV9ibXpfdgojZGVmaW5lIF9fbXNhX2JtemlfYiBfX2J1aWx0aW5fbXNhX2JtemlfYgojZGVmaW5lIF9fbXNhX2JzZWxfdiBfX2J1aWx0aW5fbXNhX2JzZWxfdgojZGVmaW5lIF9fbXNhX2JzZWxpX2IgX19idWlsdGluX21zYV9ic2VsaV9iCiNkZWZpbmUgX19tc2Ffc2hmX2IgX19idWlsdGluX21zYV9zaGZfYgojZGVmaW5lIF9fbXNhX3NoZl9oIF9fYnVpbHRpbl9tc2Ffc2hmX2gKI2RlZmluZSBfX21zYV9zaGZfdyBfX2J1aWx0aW5fbXNhX3NoZl93CiNkZWZpbmUgX19tc2FfdGVzdF9ibnpfdiBfX2J1aWx0aW5fbXNhX2Juel92CiNkZWZpbmUgX19tc2FfdGVzdF9iel92IF9fYnVpbHRpbl9tc2FfYnpfdgojZGVmaW5lIF9fbXNhX2ZpbGxfYiBfX2J1aWx0aW5fbXNhX2ZpbGxfYgojZGVmaW5lIF9fbXNhX2ZpbGxfaCBfX2J1aWx0aW5fbXNhX2ZpbGxfaAojZGVmaW5lIF9fbXNhX2ZpbGxfdyBfX2J1aWx0aW5fbXNhX2ZpbGxfdwojZGVmaW5lIF9fbXNhX2ZpbGxfZCBfX2J1aWx0aW5fbXNhX2ZpbGxfZAojZGVmaW5lIF9fbXNhX3BjbnRfYiBfX2J1aWx0aW5fbXNhX3BjbnRfYgojZGVmaW5lIF9fbXNhX3BjbnRfaCBfX2J1aWx0aW5fbXNhX3BjbnRfaAojZGVmaW5lIF9fbXNhX3BjbnRfdyBfX2J1aWx0aW5fbXNhX3BjbnRfdwojZGVmaW5lIF9fbXNhX3BjbnRfZCBfX2J1aWx0aW5fbXNhX3BjbnRfZAojZGVmaW5lIF9fbXNhX25sb2NfYiBfX2J1aWx0aW5fbXNhX25sb2NfYgojZGVmaW5lIF9fbXNhX25sb2NfaCBfX2J1aWx0aW5fbXNhX25sb2NfaAojZGVmaW5lIF9fbXNhX25sb2NfdyBfX2J1aWx0aW5fbXNhX25sb2NfdwojZGVmaW5lIF9fbXNhX25sb2NfZCBfX2J1aWx0aW5fbXNhX25sb2NfZAojZGVmaW5lIF9fbXNhX25semNfYiBfX2J1aWx0aW5fbXNhX25semNfYgojZGVmaW5lIF9fbXNhX25semNfaCBfX2J1aWx0aW5fbXNhX25semNfaAojZGVmaW5lIF9fbXNhX25semNfdyBfX2J1aWx0aW5fbXNhX25semNfdwojZGVmaW5lIF9fbXNhX25semNfZCBfX2J1aWx0aW5fbXNhX25semNfZAojZGVmaW5lIF9fbXNhX2NvcHlfc19iIF9fYnVpbHRpbl9tc2FfY29weV9zX2IKI2RlZmluZSBfX21zYV9jb3B5X3NfaCBfX2J1aWx0aW5fbXNhX2NvcHlfc19oCiNkZWZpbmUgX19tc2FfY29weV9zX3cgX19idWlsdGluX21zYV9jb3B5X3NfdwojZGVmaW5lIF9fbXNhX2NvcHlfc19kIF9fYnVpbHRpbl9tc2FfY29weV9zX2QKI2RlZmluZSBfX21zYV9jb3B5X3VfYiBfX2J1aWx0aW5fbXNhX2NvcHlfdV9iCiNkZWZpbmUgX19tc2FfY29weV91X2ggX19idWlsdGluX21zYV9jb3B5X3VfaAojZGVmaW5lIF9fbXNhX2NvcHlfdV93IF9fYnVpbHRpbl9tc2FfY29weV91X3cKI2RlZmluZSBfX21zYV9jb3B5X3VfZCBfX2J1aWx0aW5fbXNhX2NvcHlfdV9kCiNkZWZpbmUgX19tc2FfaW5zZXJ0X2IgX19idWlsdGluX21zYV9pbnNlcnRfYgojZGVmaW5lIF9fbXNhX2luc2VydF9oIF9fYnVpbHRpbl9tc2FfaW5zZXJ0X2gKI2RlZmluZSBfX21zYV9pbnNlcnRfdyBfX2J1aWx0aW5fbXNhX2luc2VydF93CiNkZWZpbmUgX19tc2FfaW5zZXJ0X2QgX19idWlsdGluX21zYV9pbnNlcnRfZAojZGVmaW5lIF9fbXNhX2luc3ZlX2IgX19idWlsdGluX21zYV9pbnN2ZV9iCiNkZWZpbmUgX19tc2FfaW5zdmVfaCBfX2J1aWx0aW5fbXNhX2luc3ZlX2gKI2RlZmluZSBfX21zYV9pbnN2ZV93IF9fYnVpbHRpbl9tc2FfaW5zdmVfdwojZGVmaW5lIF9fbXNhX2luc3ZlX2QgX19idWlsdGluX21zYV9pbnN2ZV9kCiNkZWZpbmUgX19tc2FfdGVzdF9ibnpfYiBfX2J1aWx0aW5fbXNhX2Juel9iCiNkZWZpbmUgX19tc2FfdGVzdF9ibnpfaCBfX2J1aWx0aW5fbXNhX2Juel9oCiNkZWZpbmUgX19tc2FfdGVzdF9ibnpfdyBfX2J1aWx0aW5fbXNhX2Juel93CiNkZWZpbmUgX19tc2FfdGVzdF9ibnpfZCBfX2J1aWx0aW5fbXNhX2Juel9kCiNkZWZpbmUgX19tc2FfdGVzdF9iel9iIF9fYnVpbHRpbl9tc2FfYnpfYgojZGVmaW5lIF9fbXNhX3Rlc3RfYnpfaCBfX2J1aWx0aW5fbXNhX2J6X2gKI2RlZmluZSBfX21zYV90ZXN0X2J6X3cgX19idWlsdGluX21zYV9iel93CiNkZWZpbmUgX19tc2FfdGVzdF9iel9kIF9fYnVpbHRpbl9tc2FfYnpfZAojZGVmaW5lIF9fbXNhX2xkaV9iIF9fYnVpbHRpbl9tc2FfbGRpX2IKI2RlZmluZSBfX21zYV9sZGlfaCBfX2J1aWx0aW5fbXNhX2xkaV9oCiNkZWZpbmUgX19tc2FfbGRpX3cgX19idWlsdGluX21zYV9sZGlfdwojZGVmaW5lIF9fbXNhX2xkaV9kIF9fYnVpbHRpbl9tc2FfbGRpX2QKI2RlZmluZSBfX21zYV9mY2FmX3cgX19idWlsdGluX21zYV9mY2FmX3cKI2RlZmluZSBfX21zYV9mY2FmX2QgX19idWlsdGluX21zYV9mY2FmX2QKI2RlZmluZSBfX21zYV9mY29yX3cgX19idWlsdGluX21zYV9mY29yX3cKI2RlZmluZSBfX21zYV9mY29yX2QgX19idWlsdGluX21zYV9mY29yX2QKI2RlZmluZSBfX21zYV9mY3VuX3cgX19idWlsdGluX21zYV9mY3VuX3cKI2RlZmluZSBfX21zYV9mY3VuX2QgX19idWlsdGluX21zYV9mY3VuX2QKI2RlZmluZSBfX21zYV9mY3VuZV93IF9fYnVpbHRpbl9tc2FfZmN1bmVfdwojZGVmaW5lIF9fbXNhX2ZjdW5lX2QgX19idWlsdGluX21zYV9mY3VuZV9kCiNkZWZpbmUgX19tc2FfZmN1ZXFfdyBfX2J1aWx0aW5fbXNhX2ZjdWVxX3cKI2RlZmluZSBfX21zYV9mY3VlcV9kIF9fYnVpbHRpbl9tc2FfZmN1ZXFfZAojZGVmaW5lIF9fbXNhX2ZjZXFfdyBfX2J1aWx0aW5fbXNhX2ZjZXFfdwojZGVmaW5lIF9fbXNhX2ZjZXFfZCBfX2J1aWx0aW5fbXNhX2ZjZXFfZAojZGVmaW5lIF9fbXNhX2ZjbmVfdyBfX2J1aWx0aW5fbXNhX2ZjbmVfdwojZGVmaW5lIF9fbXNhX2ZjbmVfZCBfX2J1aWx0aW5fbXNhX2ZjbmVfZAojZGVmaW5lIF9fbXNhX2ZjbHRfdyBfX2J1aWx0aW5fbXNhX2ZjbHRfdwojZGVmaW5lIF9fbXNhX2ZjbHRfZCBfX2J1aWx0aW5fbXNhX2ZjbHRfZAojZGVmaW5lIF9fbXNhX2ZjdWx0X3cgX19idWlsdGluX21zYV9mY3VsdF93CiNkZWZpbmUgX19tc2FfZmN1bHRfZCBfX2J1aWx0aW5fbXNhX2ZjdWx0X2QKI2RlZmluZSBfX21zYV9mY2xlX3cgX19idWlsdGluX21zYV9mY2xlX3cKI2RlZmluZSBfX21zYV9mY2xlX2QgX19idWlsdGluX21zYV9mY2xlX2QKI2RlZmluZSBfX21zYV9mY3VsZV93IF9fYnVpbHRpbl9tc2FfZmN1bGVfdwojZGVmaW5lIF9fbXNhX2ZjdWxlX2QgX19idWlsdGluX21zYV9mY3VsZV9kCiNkZWZpbmUgX19tc2FfZnNhZl93IF9fYnVpbHRpbl9tc2FfZnNhZl93CiNkZWZpbmUgX19tc2FfZnNhZl9kIF9fYnVpbHRpbl9tc2FfZnNhZl9kCiNkZWZpbmUgX19tc2FfZnNvcl93IF9fYnVpbHRpbl9tc2FfZnNvcl93CiNkZWZpbmUgX19tc2FfZnNvcl9kIF9fYnVpbHRpbl9tc2FfZnNvcl9kCiNkZWZpbmUgX19tc2FfZnN1bl93IF9fYnVpbHRpbl9tc2FfZnN1bl93CiNkZWZpbmUgX19tc2FfZnN1bl9kIF9fYnVpbHRpbl9tc2FfZnN1bl9kCiNkZWZpbmUgX19tc2FfZnN1bmVfdyBfX2J1aWx0aW5fbXNhX2ZzdW5lX3cKI2RlZmluZSBfX21zYV9mc3VuZV9kIF9fYnVpbHRpbl9tc2FfZnN1bmVfZAojZGVmaW5lIF9fbXNhX2ZzdWVxX3cgX19idWlsdGluX21zYV9mc3VlcV93CiNkZWZpbmUgX19tc2FfZnN1ZXFfZCBfX2J1aWx0aW5fbXNhX2ZzdWVxX2QKI2RlZmluZSBfX21zYV9mc2VxX3cgX19idWlsdGluX21zYV9mc2VxX3cKI2RlZmluZSBfX21zYV9mc2VxX2QgX19idWlsdGluX21zYV9mc2VxX2QKI2RlZmluZSBfX21zYV9mc25lX3cgX19idWlsdGluX21zYV9mc25lX3cKI2RlZmluZSBfX21zYV9mc25lX2QgX19idWlsdGluX21zYV9mc25lX2QKI2RlZmluZSBfX21zYV9mc2x0X3cgX19idWlsdGluX21zYV9mc2x0X3cKI2RlZmluZSBfX21zYV9mc2x0X2QgX19idWlsdGluX21zYV9mc2x0X2QKI2RlZmluZSBfX21zYV9mc3VsdF93IF9fYnVpbHRpbl9tc2FfZnN1bHRfdwojZGVmaW5lIF9fbXNhX2ZzdWx0X2QgX19idWlsdGluX21zYV9mc3VsdF9kCiNkZWZpbmUgX19tc2FfZnNsZV93IF9fYnVpbHRpbl9tc2FfZnNsZV93CiNkZWZpbmUgX19tc2FfZnNsZV9kIF9fYnVpbHRpbl9tc2FfZnNsZV9kCiNkZWZpbmUgX19tc2FfZnN1bGVfdyBfX2J1aWx0aW5fbXNhX2ZzdWxlX3cKI2RlZmluZSBfX21zYV9mc3VsZV9kIF9fYnVpbHRpbl9tc2FfZnN1bGVfZAojZGVmaW5lIF9fbXNhX2ZhZGRfdyBfX2J1aWx0aW5fbXNhX2ZhZGRfdwojZGVmaW5lIF9fbXNhX2ZhZGRfZCBfX2J1aWx0aW5fbXNhX2ZhZGRfZAojZGVmaW5lIF9fbXNhX2ZzdWJfdyBfX2J1aWx0aW5fbXNhX2ZzdWJfdwojZGVmaW5lIF9fbXNhX2ZzdWJfZCBfX2J1aWx0aW5fbXNhX2ZzdWJfZAojZGVmaW5lIF9fbXNhX2ZtdWxfdyBfX2J1aWx0aW5fbXNhX2ZtdWxfdwojZGVmaW5lIF9fbXNhX2ZtdWxfZCBfX2J1aWx0aW5fbXNhX2ZtdWxfZAojZGVmaW5lIF9fbXNhX2ZkaXZfdyBfX2J1aWx0aW5fbXNhX2ZkaXZfdwojZGVmaW5lIF9fbXNhX2ZkaXZfZCBfX2J1aWx0aW5fbXNhX2ZkaXZfZAojZGVmaW5lIF9fbXNhX2ZtYWRkX3cgX19idWlsdGluX21zYV9mbWFkZF93CiNkZWZpbmUgX19tc2FfZm1hZGRfZCBfX2J1aWx0aW5fbXNhX2ZtYWRkX2QKI2RlZmluZSBfX21zYV9mbXN1Yl93IF9fYnVpbHRpbl9tc2FfZm1zdWJfdwojZGVmaW5lIF9fbXNhX2Ztc3ViX2QgX19idWlsdGluX21zYV9mbXN1Yl9kCiNkZWZpbmUgX19tc2FfZmV4cDJfdyBfX2J1aWx0aW5fbXNhX2ZleHAyX3cKI2RlZmluZSBfX21zYV9mZXhwMl9kIF9fYnVpbHRpbl9tc2FfZmV4cDJfZAojZGVmaW5lIF9fbXNhX2ZleGRvX2ggX19idWlsdGluX21zYV9mZXhkb19oCiNkZWZpbmUgX19tc2FfZmV4ZG9fdyBfX2J1aWx0aW5fbXNhX2ZleGRvX3cKI2RlZmluZSBfX21zYV9mdHFfaCBfX2J1aWx0aW5fbXNhX2Z0cV9oCiNkZWZpbmUgX19tc2FfZnRxX3cgX19idWlsdGluX21zYV9mdHFfdwojZGVmaW5lIF9fbXNhX2ZtaW5fdyBfX2J1aWx0aW5fbXNhX2ZtaW5fdwojZGVmaW5lIF9fbXNhX2ZtaW5fZCBfX2J1aWx0aW5fbXNhX2ZtaW5fZAojZGVmaW5lIF9fbXNhX2ZtaW5fYV93IF9fYnVpbHRpbl9tc2FfZm1pbl9hX3cKI2RlZmluZSBfX21zYV9mbWluX2FfZCBfX2J1aWx0aW5fbXNhX2ZtaW5fYV9kCiNkZWZpbmUgX19tc2FfZm1heF93IF9fYnVpbHRpbl9tc2FfZm1heF93CiNkZWZpbmUgX19tc2FfZm1heF9kIF9fYnVpbHRpbl9tc2FfZm1heF9kCiNkZWZpbmUgX19tc2FfZm1heF9hX3cgX19idWlsdGluX21zYV9mbWF4X2FfdwojZGVmaW5lIF9fbXNhX2ZtYXhfYV9kIF9fYnVpbHRpbl9tc2FfZm1heF9hX2QKI2RlZmluZSBfX21zYV9tdWxfcV9oIF9fYnVpbHRpbl9tc2FfbXVsX3FfaAojZGVmaW5lIF9fbXNhX211bF9xX3cgX19idWlsdGluX21zYV9tdWxfcV93CiNkZWZpbmUgX19tc2FfbXVscl9xX2ggX19idWlsdGluX21zYV9tdWxyX3FfaAojZGVmaW5lIF9fbXNhX211bHJfcV93IF9fYnVpbHRpbl9tc2FfbXVscl9xX3cKI2RlZmluZSBfX21zYV9tYWRkX3FfaCBfX2J1aWx0aW5fbXNhX21hZGRfcV9oCiNkZWZpbmUgX19tc2FfbWFkZF9xX3cgX19idWlsdGluX21zYV9tYWRkX3FfdwojZGVmaW5lIF9fbXNhX21hZGRyX3FfaCBfX2J1aWx0aW5fbXNhX21hZGRyX3FfaAojZGVmaW5lIF9fbXNhX21hZGRyX3FfdyBfX2J1aWx0aW5fbXNhX21hZGRyX3FfdwojZGVmaW5lIF9fbXNhX21zdWJfcV9oIF9fYnVpbHRpbl9tc2FfbXN1Yl9xX2gKI2RlZmluZSBfX21zYV9tc3ViX3FfdyBfX2J1aWx0aW5fbXNhX21zdWJfcV93CiNkZWZpbmUgX19tc2FfbXN1YnJfcV9oIF9fYnVpbHRpbl9tc2FfbXN1YnJfcV9oCiNkZWZpbmUgX19tc2FfbXN1YnJfcV93IF9fYnVpbHRpbl9tc2FfbXN1YnJfcV93CiNkZWZpbmUgX19tc2FfZmNsYXNzX3cgX19idWlsdGluX21zYV9mY2xhc3NfdwojZGVmaW5lIF9fbXNhX2ZjbGFzc19kIF9fYnVpbHRpbl9tc2FfZmNsYXNzX2QKI2RlZmluZSBfX21zYV9mc3FydF93IF9fYnVpbHRpbl9tc2FfZnNxcnRfdwojZGVmaW5lIF9fbXNhX2ZzcXJ0X2QgX19idWlsdGluX21zYV9mc3FydF9kCiNkZWZpbmUgX19tc2FfZnJjcF93IF9fYnVpbHRpbl9tc2FfZnJjcF93CiNkZWZpbmUgX19tc2FfZnJjcF9kIF9fYnVpbHRpbl9tc2FfZnJjcF9kCiNkZWZpbmUgX19tc2FfZnJpbnRfdyBfX2J1aWx0aW5fbXNhX2ZyaW50X3cKI2RlZmluZSBfX21zYV9mcmludF9kIF9fYnVpbHRpbl9tc2FfZnJpbnRfZAojZGVmaW5lIF9fbXNhX2Zyc3FydF93IF9fYnVpbHRpbl9tc2FfZnJzcXJ0X3cKI2RlZmluZSBfX21zYV9mcnNxcnRfZCBfX2J1aWx0aW5fbXNhX2Zyc3FydF9kCiNkZWZpbmUgX19tc2FfZmxvZzJfdyBfX2J1aWx0aW5fbXNhX2Zsb2cyX3cKI2RlZmluZSBfX21zYV9mbG9nMl9kIF9fYnVpbHRpbl9tc2FfZmxvZzJfZAojZGVmaW5lIF9fbXNhX2ZleHVwbF93IF9fYnVpbHRpbl9tc2FfZmV4dXBsX3cKI2RlZmluZSBfX21zYV9mZXh1cGxfZCBfX2J1aWx0aW5fbXNhX2ZleHVwbF9kCiNkZWZpbmUgX19tc2FfZmV4dXByX3cgX19idWlsdGluX21zYV9mZXh1cHJfdwojZGVmaW5lIF9fbXNhX2ZleHVwcl9kIF9fYnVpbHRpbl9tc2FfZmV4dXByX2QKI2RlZmluZSBfX21zYV9mZnFsX3cgX19idWlsdGluX21zYV9mZnFsX3cKI2RlZmluZSBfX21zYV9mZnFsX2QgX19idWlsdGluX21zYV9mZnFsX2QKI2RlZmluZSBfX21zYV9mZnFyX3cgX19idWlsdGluX21zYV9mZnFyX3cKI2RlZmluZSBfX21zYV9mZnFyX2QgX19idWlsdGluX21zYV9mZnFyX2QKI2RlZmluZSBfX21zYV9mdGludF9zX3cgX19idWlsdGluX21zYV9mdGludF9zX3cKI2RlZmluZSBfX21zYV9mdGludF9zX2QgX19idWlsdGluX21zYV9mdGludF9zX2QKI2RlZmluZSBfX21zYV9mdGludF91X3cgX19idWlsdGluX21zYV9mdGludF91X3cKI2RlZmluZSBfX21zYV9mdGludF91X2QgX19idWlsdGluX21zYV9mdGludF91X2QKI2RlZmluZSBfX21zYV9mdHJ1bmNfc193IF9fYnVpbHRpbl9tc2FfZnRydW5jX3NfdwojZGVmaW5lIF9fbXNhX2Z0cnVuY19zX2QgX19idWlsdGluX21zYV9mdHJ1bmNfc19kCiNkZWZpbmUgX19tc2FfZnRydW5jX3VfdyBfX2J1aWx0aW5fbXNhX2Z0cnVuY191X3cKI2RlZmluZSBfX21zYV9mdHJ1bmNfdV9kIF9fYnVpbHRpbl9tc2FfZnRydW5jX3VfZAojZGVmaW5lIF9fbXNhX2ZmaW50X3NfdyBfX2J1aWx0aW5fbXNhX2ZmaW50X3NfdwojZGVmaW5lIF9fbXNhX2ZmaW50X3NfZCBfX2J1aWx0aW5fbXNhX2ZmaW50X3NfZAojZGVmaW5lIF9fbXNhX2ZmaW50X3VfdyBfX2J1aWx0aW5fbXNhX2ZmaW50X3VfdwojZGVmaW5lIF9fbXNhX2ZmaW50X3VfZCBfX2J1aWx0aW5fbXNhX2ZmaW50X3VfZAojZGVmaW5lIF9fbXNhX2NmY21zYSBfX2J1aWx0aW5fbXNhX2NmY21zYQojZGVmaW5lIF9fbXNhX21vdmVfdiBfX2J1aWx0aW5fbXNhX21vdmVfdgojZGVmaW5lIF9fbXNhX2Nhc3RfdG9fdmVjdG9yX2Zsb2F0IF9fYnVpbHRpbl9tc2FfY2FzdF90b192ZWN0b3JfZmxvYXQKI2RlZmluZSBfX21zYV9jYXN0X3RvX3ZlY3Rvcl9kb3VibGUgX19idWlsdGluX21zYV9jYXN0X3RvX3ZlY3Rvcl9kb3VibGUKI2RlZmluZSBfX21zYV9jYXN0X3RvX3NjYWxhcl9mbG9hdCBfX2J1aWx0aW5fbXNhX2Nhc3RfdG9fc2NhbGFyX2Zsb2F0CiNkZWZpbmUgX19tc2FfY2FzdF90b19zY2FsYXJfZG91YmxlIF9fYnVpbHRpbl9tc2FfY2FzdF90b19zY2FsYXJfZG91YmxlCiNlbmRpZiAvKiBkZWZpbmVkKF9fbWlwc19tc2EpICovCiNlbmRpZiAvKiBfTVNBX0ggKi8KAG5tbWludHJpbi5oAHBvcGNudGludHJpbi5oAC8qPT09LS0tLSB4ODZpbnRyaW4uaCAtIFg4NiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZGVmaW5lIF9fWDg2SU5UUklOX0gKCiNpbmNsdWRlIDxpYTMyaW50cmluLmg+CgojaW5jbHVkZSA8aW1taW50cmluLmg+CgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfXzNkTk9XX18pCiNpbmNsdWRlIDxtbTNkbm93Lmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19QUkZDSFdfXykKI2luY2x1ZGUgPHByZmNod2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fU1NFNEFfXykKI2luY2x1ZGUgPGFtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fRk1BNF9fKQojaW5jbHVkZSA8Zm1hNGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fWE9QX18pCiNpbmNsdWRlIDx4b3BpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1RCTV9fKQojaW5jbHVkZSA8dGJtaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19MV1BfXykKI2luY2x1ZGUgPGx3cGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fTVdBSVRYX18pCiNpbmNsdWRlIDxtd2FpdHhpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0NMWkVST19fKQojaW5jbHVkZSA8Y2x6ZXJvaW50cmluLmg+CiNlbmRpZgoKCiNlbmRpZiAvKiBfX1g4NklOVFJJTl9IICovCgB4bW1pbnRyaW4uaAB4b3BpbnRyaW4uaAB4dGVzdGludHJpbi5oAC8vPT09LS0gbGludXhfc3lzY2FsbF9ob29rcy5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgcHVibGljIHNhbml0aXplciBpbnRlcmZhY2UuCi8vCi8vIFN5c3RlbSBjYWxsIGhhbmRsZXJzLgovLwovLyBJbnRlcmZhY2UgbWV0aG9kcyBkZWNsYXJlZCBpbiB0aGlzIGhlYWRlciBpbXBsZW1lbnQgcHJlLSBhbmQgcG9zdC0gc3lzY2FsbAovLyBhY3Rpb25zIGZvciB0aGUgYWN0aXZlIHNhbml0aXplci4KLy8gVXNhZ2U6Ci8vICAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Zm9vKC4uLmFyZ3MuLi4pOwovLyAgIGxvbmcgcmVzID0gc3lzY2FsbChfX05SX2dldGZvbywgLi4uYXJncy4uLik7Ci8vICAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGZvbyhyZXMsIC4uLmFyZ3MuLi4pOwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9MSU5VWF9TWVNDQUxMX0hPT0tTX0gKI2RlZmluZSBTQU5JVElaRVJfTElOVVhfU1lTQ0FMTF9IT09LU19ICgojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWUodGxvYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZSgobG9uZykodGxvYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWUocmVzLCB0bG9jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZShyZXMsIChsb25nKSh0bG9jKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zdGltZSh0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0aW1lKChsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3RpbWUocmVzLCB0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGltZShyZXMsIChsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR0aW1lb2ZkYXkodHYsIHR6KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHRpbWVvZmRheSgobG9uZykodHYpLCAobG9uZykodHopKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXR0aW1lb2ZkYXkocmVzLCB0diwgdHopICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHRpbWVvZmRheShyZXMsIChsb25nKSh0diksIChsb25nKSh0eikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0dGltZW9mZGF5KHR2LCB0eikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR0aW1lb2ZkYXkoKGxvbmcpKHR2KSwgKGxvbmcpKHR6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0dGltZW9mZGF5KHJlcywgdHYsIHR6KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR0aW1lb2ZkYXkocmVzLCAobG9uZykodHYpLCAobG9uZykodHopKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FkanRpbWV4KHR4Y19wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWRqdGltZXgoKGxvbmcpKHR4Y19wKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWRqdGltZXgocmVzLCB0eGNfcCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hZGp0aW1leChyZXMsIChsb25nKSh0eGNfcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXModGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcygobG9uZykodGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVzKHJlcywgdGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXMocmVzLCAobG9uZykodGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dGlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR0aWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXR0aWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHRpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmFub3NsZWVwKHJxdHAsIHJtdHApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uYW5vc2xlZXAoKGxvbmcpKHJxdHApLCAobG9uZykocm10cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X25hbm9zbGVlcChyZXMsIHJxdHAsIHJtdHApICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmFub3NsZWVwKHJlcywgKGxvbmcpKHJxdHApLCAobG9uZykocm10cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWxhcm0oc2Vjb25kcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hbGFybSgobG9uZykoc2Vjb25kcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2FsYXJtKHJlcywgc2Vjb25kcykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWxhcm0ocmVzLCAobG9uZykoc2Vjb25kcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cGlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cHBpZCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHBpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBwaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHBpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dWlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXR1aWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHVpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0ZXVpZCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZXVpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGV1aWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0ZXVpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Z2lkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0ZWdpZCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZWdpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGVnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0ZWdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cmVzdWlkKHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXN1aWQoKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyZXN1aWQocmVzLCBydWlkLCBldWlkLCBzdWlkKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc3VpZChyZXMsIChsb25nKShydWlkKSwgKGxvbmcpKGV1aWQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3VpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cmVzZ2lkKHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXNnaWQoKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyZXNnaWQocmVzLCByZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc2dpZChyZXMsIChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2dpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cGdpZChwaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ2lkKChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwZ2lkKHJlcywgcGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBnaWQocmVzLCAobG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ3JwKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ3JwKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGdycChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ3JwKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRzaWQocGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNpZCgobG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c2lkKHJlcywgcGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzaWQocmVzLCAobG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRncm91cHMoZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdyb3VwcygobG9uZykoZ2lkc2V0c2l6ZSksIChsb25nKShncm91cGxpc3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRncm91cHMocmVzLCBnaWRzZXRzaXplLCBncm91cGxpc3QpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdyb3VwcyhyZXMsIChsb25nKShnaWRzZXRzaXplKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXBsaXN0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZWdpZChyZ2lkLCBlZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlZ2lkKChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZWdpZChyZXMsIHJnaWQsIGVnaWQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlZ2lkKHJlcywgKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z2lkKGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQoKGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGdpZChyZXMsIGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkKHJlcywgKGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmV1aWQocnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZCgobG9uZykocnVpZCksIChsb25nKShldWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmV1aWQocmVzLCBydWlkLCBldWlkKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXVpZChyZXMsIChsb25nKShydWlkKSwgKGxvbmcpKGV1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHVpZCh1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0dWlkKChsb25nKSh1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR1aWQocmVzLCB1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHVpZChyZXMsIChsb25nKSh1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlc3VpZChydWlkLCBldWlkLCBzdWlkKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzdWlkKChsb25nKShydWlkKSwgKGxvbmcpKGV1aWQpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmVzdWlkKHJlcywgcnVpZCwgZXVpZCwgc3VpZCkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXN1aWQocmVzLCAobG9uZykocnVpZCksIChsb25nKShldWlkKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlc2dpZChyZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzZ2lkKChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmVzZ2lkKHJlcywgcmdpZCwgZWdpZCwgc2dpZCkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXNnaWQocmVzLCAobG9uZykocmdpZCksIChsb25nKShlZ2lkKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGZzdWlkKHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZnN1aWQoKGxvbmcpKHVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGZzdWlkKHJlcywgdWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZnN1aWQocmVzLCAobG9uZykodWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRmc2dpZChnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGZzZ2lkKChsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRmc2dpZChyZXMsIGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzZ2lkKHJlcywgKGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cGdpZChwaWQsIHBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRwZ2lkKChsb25nKShwaWQpLCAobG9uZykocGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHBnaWQocmVzLCBwaWQsIHBnaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChyZXMsIChsb25nKShwaWQpLCAobG9uZykocGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0c2lkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRzaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z3JvdXBzKGdpZHNldHNpemUsIGdyb3VwbGlzdCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRncm91cHMoKGxvbmcpKGdpZHNldHNpemUpLCAobG9uZykoZ3JvdXBsaXN0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z3JvdXBzKHJlcywgZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMocmVzLCAobG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWNjdChuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2N0KChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjdChyZXMsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2N0KHJlcywgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NhcGdldChoZWFkZXIsIGRhdGFwdHIpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2FwZ2V0KChsb25nKShoZWFkZXIpLCAobG9uZykoZGF0YXB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NhcGdldChyZXMsIGhlYWRlciwgZGF0YXB0cikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2FwZ2V0KHJlcywgKGxvbmcpKGhlYWRlciksIChsb25nKShkYXRhcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jYXBzZXQoaGVhZGVyLCBkYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NhcHNldCgobG9uZykoaGVhZGVyKSwgKGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jYXBzZXQocmVzLCBoZWFkZXIsIGRhdGEpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NhcHNldChyZXMsIChsb25nKShoZWFkZXIpLCAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGVyc29uYWxpdHkocGVyc29uYWxpdHkpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wZXJzb25hbGl0eSgobG9uZykocGVyc29uYWxpdHkpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wZXJzb25hbGl0eShyZXMsIHBlcnNvbmFsaXR5KSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BlcnNvbmFsaXR5KHJlcywgKGxvbmcpKHBlcnNvbmFsaXR5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdwZW5kaW5nKHNldCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ3BlbmRpbmcoKGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NpZ3BlbmRpbmcocmVzLCBzZXQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lncGVuZGluZyhyZXMsIChsb25nKShzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NpZ3Byb2NtYXNrKGhvdywgc2V0LCBvc2V0KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncHJvY21hc2soKGxvbmcpKGhvdyksIChsb25nKShzZXQpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9zZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWdwcm9jbWFzayhyZXMsIGhvdywgc2V0LCBvc2V0KSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ3Byb2NtYXNrKHJlcywgKGxvbmcpKGhvdyksIChsb25nKShzZXQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRpdGltZXIod2hpY2gsIHZhbHVlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGl0aW1lcigobG9uZykod2hpY2gpLCAobG9uZykodmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRpdGltZXIocmVzLCB3aGljaCwgdmFsdWUpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGl0aW1lcihyZXMsIChsb25nKSh3aGljaCksIChsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0aXRpbWVyKHdoaWNoLCB2YWx1ZSwgb3ZhbHVlKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRpdGltZXIoKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHZhbHVlKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGl0aW1lcihyZXMsIHdoaWNoLCB2YWx1ZSwgb3ZhbHVlKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0aXRpbWVyKHJlcywgKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHZhbHVlKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvdmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyX2NyZWF0ZSh3aGljaF9jbG9jaywgdGltZXJfZXZlbnRfc3BlYywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkX3RpbWVyX2lkKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfY3JlYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykod2hpY2hfY2xvY2spLCAobG9uZykodGltZXJfZXZlbnRfc3BlYyksIChsb25nKShjcmVhdGVkX3RpbWVyX2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJfY3JlYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgd2hpY2hfY2xvY2ssIHRpbWVyX2V2ZW50X3NwZWMsIGNyZWF0ZWRfdGltZXJfaWQpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9jcmVhdGUocmVzLCAobG9uZykod2hpY2hfY2xvY2spLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHRpbWVyX2V2ZW50X3NwZWMpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNyZWF0ZWRfdGltZXJfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyX2dldHRpbWUodGltZXJfaWQsIHNldHRpbmcpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfZ2V0dGltZSgobG9uZykodGltZXJfaWQpLCAobG9uZykoc2V0dGluZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2dldHRpbWUocmVzLCB0aW1lcl9pZCwgc2V0dGluZykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0dGltZShyZXMsIChsb25nKSh0aW1lcl9pZCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2V0dGluZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl9pZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9nZXRvdmVycnVuKChsb25nKSh0aW1lcl9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2dldG92ZXJydW4ocmVzLCB0aW1lcl9pZCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0b3ZlcnJ1bihyZXMsIChsb25nKSh0aW1lcl9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfc2V0dGltZSh0aW1lcl9pZCwgZmxhZ3MsIG5ld19zZXR0aW5nLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfc2V0dGluZykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9zZXR0aW1lKChsb25nKSh0aW1lcl9pZCksIChsb25nKShmbGFncyksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfc2V0dGluZyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvbGRfc2V0dGluZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX3NldHRpbWUocmVzLCB0aW1lcl9pZCwgZmxhZ3MsICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3NldHRpbmcsIG9sZF9zZXR0aW5nKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHRpbWVyX2lkKSwgKGxvbmcpKGZsYWdzKSwgKGxvbmcpKG5ld19zZXR0aW5nKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShvbGRfc2V0dGluZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfZGVsZXRlKHRpbWVyX2lkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9kZWxldGUoKGxvbmcpKHRpbWVyX2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJfZGVsZXRlKHJlcywgdGltZXJfaWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9kZWxldGUocmVzLCAobG9uZykodGltZXJfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb2NrX3NldHRpbWUod2hpY2hfY2xvY2ssIHRwKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfc2V0dGltZSgobG9uZykod2hpY2hfY2xvY2spLCAobG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19zZXR0aW1lKHJlcywgd2hpY2hfY2xvY2ssIHRwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX3NldHRpbWUocmVzLCAobG9uZykod2hpY2hfY2xvY2spLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jbG9ja19nZXR0aW1lKHdoaWNoX2Nsb2NrLCB0cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2dldHRpbWUoKGxvbmcpKHdoaWNoX2Nsb2NrKSwgKGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2xvY2tfZ2V0dGltZShyZXMsIHdoaWNoX2Nsb2NrLCB0cCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19nZXR0aW1lKHJlcywgKGxvbmcpKHdoaWNoX2Nsb2NrKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfYWRqdGltZSh3aGljaF9jbG9jaywgdHgpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19hZGp0aW1lKChsb25nKSh3aGljaF9jbG9jayksIChsb25nKSh0eCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nsb2NrX2FkanRpbWUocmVzLCB3aGljaF9jbG9jaywgdHgpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfYWRqdGltZShyZXMsIChsb25nKSh3aGljaF9jbG9jayksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodHgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb2NrX2dldHJlcyh3aGljaF9jbG9jaywgdHApICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfZ2V0cmVzKChsb25nKSh3aGljaF9jbG9jayksIChsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nsb2NrX2dldHJlcyhyZXMsIHdoaWNoX2Nsb2NrLCB0cCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfZ2V0cmVzKHJlcywgKGxvbmcpKHdoaWNoX2Nsb2NrKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfbmFub3NsZWVwKHdoaWNoX2Nsb2NrLCBmbGFncywgcnF0cCwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJtdHApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19uYW5vc2xlZXAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKSh3aGljaF9jbG9jayksIChsb25nKShmbGFncyksIChsb25nKShycXRwKSwgKGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19uYW5vc2xlZXAocmVzLCB3aGljaF9jbG9jaywgZmxhZ3MsICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnF0cCwgcm10cCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX25hbm9zbGVlcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKSh3aGljaF9jbG9jayksIChsb25nKShmbGFncyksIChsb25nKShycXRwKSwgKGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25pY2UoaW5jcmVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmljZSgobG9uZykoaW5jcmVtZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmljZShyZXMsIGluY3JlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uaWNlKHJlcywgKGxvbmcpKGluY3JlbWVudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfc2V0c2NoZWR1bGVyKHBpZCwgcG9saWN5LCBwYXJhbSkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9zZXRzY2hlZHVsZXIoKGxvbmcpKHBpZCksIChsb25nKShwb2xpY3kpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBhcmFtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfc2V0c2NoZWR1bGVyKHJlcywgcGlkLCBwb2xpY3ksIHBhcmFtKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9zZXRzY2hlZHVsZXIoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykocGlkKSwgKGxvbmcpKHBvbGljeSksIChsb25nKShwYXJhbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfc2V0cGFyYW0ocGlkLCBwYXJhbSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9zZXRwYXJhbSgobG9uZykocGlkKSwgKGxvbmcpKHBhcmFtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfc2V0cGFyYW0ocmVzLCBwaWQsIHBhcmFtKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9zZXRwYXJhbShyZXMsIChsb25nKShwaWQpLCAobG9uZykocGFyYW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX2dldHNjaGVkdWxlcihwaWQpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0c2NoZWR1bGVyKChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9nZXRzY2hlZHVsZXIocmVzLCBwaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX2dldHNjaGVkdWxlcihyZXMsIChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX2dldHBhcmFtKHBpZCwgcGFyYW0pICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0cGFyYW0oKGxvbmcpKHBpZCksIChsb25nKShwYXJhbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NjaGVkX2dldHBhcmFtKHJlcywgcGlkLCBwYXJhbSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0cGFyYW0ocmVzLCAobG9uZykocGlkKSwgKGxvbmcpKHBhcmFtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9zZXRhZmZpbml0eShwaWQsIGxlbiwgdXNlcl9tYXNrX3B0cikgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3NldGFmZmluaXR5KChsb25nKShwaWQpLCAobG9uZykobGVuKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1c2VyX21hc2tfcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfc2V0YWZmaW5pdHkocmVzLCBwaWQsIGxlbiwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9tYXNrX3B0cikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9zZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykocGlkKSwgKGxvbmcpKGxlbiksIChsb25nKSh1c2VyX21hc2tfcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9nZXRhZmZpbml0eShwaWQsIGxlbiwgdXNlcl9tYXNrX3B0cikgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldGFmZmluaXR5KChsb25nKShwaWQpLCAobG9uZykobGVuKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1c2VyX21hc2tfcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfZ2V0YWZmaW5pdHkocmVzLCBwaWQsIGxlbiwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9tYXNrX3B0cikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykocGlkKSwgKGxvbmcpKGxlbiksIChsb25nKSh1c2VyX21hc2tfcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF95aWVsZCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3lpZWxkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfeWllbGQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF95aWVsZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfZ2V0X3ByaW9yaXR5X21heChwb2xpY3kpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KChsb25nKShwb2xpY3kpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KHJlcywgcG9saWN5KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9tYXgocmVzLCAobG9uZykocG9saWN5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKHBvbGljeSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9taW4oKGxvbmcpKHBvbGljeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NjaGVkX2dldF9wcmlvcml0eV9taW4ocmVzLCBwb2xpY3kpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihyZXMsIChsb25nKShwb2xpY3kpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX3JyX2dldF9pbnRlcnZhbChwaWQsIGludGVydmFsKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfcnJfZ2V0X2ludGVydmFsKChsb25nKShwaWQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShpbnRlcnZhbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NjaGVkX3JyX2dldF9pbnRlcnZhbChyZXMsIHBpZCwgaW50ZXJ2YWwpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfcnJfZ2V0X2ludGVydmFsKHJlcywgKGxvbmcpKHBpZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShpbnRlcnZhbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cHJpb3JpdHkod2hpY2gsIHdobywgbmljZXZhbCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRwcmlvcml0eSgobG9uZykod2hpY2gpLCAobG9uZykod2hvKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmljZXZhbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHByaW9yaXR5KHJlcywgd2hpY2gsIHdobywgbmljZXZhbCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cHJpb3JpdHkocmVzLCAobG9uZykod2hpY2gpLCAobG9uZykod2hvKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5pY2V2YWwpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHByaW9yaXR5KHdoaWNoLCB3aG8pICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHJpb3JpdHkoKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHdobykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHByaW9yaXR5KHJlcywgd2hpY2gsIHdobykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHJpb3JpdHkocmVzLCAobG9uZykod2hpY2gpLCAobG9uZykod2hvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaHV0ZG93bihhcmcwLCBhcmcxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NodXRkb3duKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaHV0ZG93bihyZXMsIGFyZzAsIGFyZzEpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NodXRkb3duKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVib290KG1hZ2ljMSwgbWFnaWMyLCBjbWQsIGFyZykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWJvb3QoKGxvbmcpKG1hZ2ljMSksIChsb25nKShtYWdpYzIpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWJvb3QocmVzLCBtYWdpYzEsIG1hZ2ljMiwgY21kLCBhcmcpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYm9vdChyZXMsIChsb25nKShtYWdpYzEpLCAobG9uZykobWFnaWMyKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVzdGFydF9zeXNjYWxsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZXN0YXJ0X3N5c2NhbGwoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZXN0YXJ0X3N5c2NhbGwocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jlc3RhcnRfc3lzY2FsbChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa2V4ZWNfbG9hZChlbnRyeSwgbnJfc2VnbWVudHMsIHNlZ21lbnRzLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rZXhlY19sb2FkKChsb25nKShlbnRyeSksIChsb25nKShucl9zZWdtZW50cyksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZWdtZW50cyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2tleGVjX2xvYWQocmVzLCBlbnRyeSwgbnJfc2VnbWVudHMsIHNlZ21lbnRzLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2V4ZWNfbG9hZChyZXMsIChsb25nKShlbnRyeSksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnJfc2VnbWVudHMpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2VnbWVudHMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4aXQoZXJyb3JfY29kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXhpdCgobG9uZykoZXJyb3JfY29kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4aXQocmVzLCBlcnJvcl9jb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXhpdChyZXMsIChsb25nKShlcnJvcl9jb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leGl0X2dyb3VwKGVycm9yX2NvZGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4aXRfZ3JvdXAoKGxvbmcpKGVycm9yX2NvZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leGl0X2dyb3VwKHJlcywgZXJyb3JfY29kZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4aXRfZ3JvdXAocmVzLCAobG9uZykoZXJyb3JfY29kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd2FpdDQocGlkLCBzdGF0X2FkZHIsIG9wdGlvbnMsIHJ1KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0NCgobG9uZykocGlkKSwgKGxvbmcpKHN0YXRfYWRkciksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0aW9ucyksIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3dhaXQ0KHJlcywgcGlkLCBzdGF0X2FkZHIsIG9wdGlvbnMsIHJ1KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd2FpdDQocmVzLCAobG9uZykocGlkKSwgKGxvbmcpKHN0YXRfYWRkciksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdGlvbnMpLCAobG9uZykocnUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3dhaXRpZCh3aGljaCwgcGlkLCBpbmZvcCwgb3B0aW9ucywgcnUpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd2FpdGlkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykod2hpY2gpLCAobG9uZykocGlkKSwgKGxvbmcpKGluZm9wKSwgKGxvbmcpKG9wdGlvbnMpLCAobG9uZykocnUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93YWl0aWQocmVzLCB3aGljaCwgcGlkLCBpbmZvcCwgb3B0aW9ucywgcnUpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXRpZChyZXMsIChsb25nKSh3aGljaCksIChsb25nKShwaWQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoaW5mb3ApLCAobG9uZykob3B0aW9ucyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocnUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3dhaXRwaWQocGlkLCBzdGF0X2FkZHIsIG9wdGlvbnMpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd2FpdHBpZCgobG9uZykocGlkKSwgKGxvbmcpKHN0YXRfYWRkciksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0aW9ucykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3dhaXRwaWQocmVzLCBwaWQsIHN0YXRfYWRkciwgb3B0aW9ucykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd2FpdHBpZChyZXMsIChsb25nKShwaWQpLCAobG9uZykoc3RhdF9hZGRyKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0aW9ucykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0X3RpZF9hZGRyZXNzKHRpZHB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRfdGlkX2FkZHJlc3MoKGxvbmcpKHRpZHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldF90aWRfYWRkcmVzcyhyZXMsIHRpZHB0cikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0X3RpZF9hZGRyZXNzKHJlcywgKGxvbmcpKHRpZHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW5pdF9tb2R1bGUodW1vZCwgbGVuLCB1YXJncykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbml0X21vZHVsZSgobG9uZykodW1vZCksIChsb25nKShsZW4pLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodWFyZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbml0X21vZHVsZShyZXMsIHVtb2QsIGxlbiwgdWFyZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2luaXRfbW9kdWxlKHJlcywgKGxvbmcpKHVtb2QpLCAobG9uZykobGVuKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1YXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZGVsZXRlX21vZHVsZShuYW1lX3VzZXIsIGZsYWdzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kZWxldGVfbW9kdWxlKChsb25nKShuYW1lX3VzZXIpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9kZWxldGVfbW9kdWxlKHJlcywgbmFtZV91c2VyLCBmbGFncykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2RlbGV0ZV9tb2R1bGUocmVzLCAobG9uZykobmFtZV91c2VyKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ydF9zaWdwcm9jbWFzayhob3csIHNldCwgb3NldCwgc2lnc2V0c2l6ZSkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ3Byb2NtYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGhvdyksIChsb25nKShzZXQpLCAobG9uZykob3NldCksIChsb25nKShzaWdzZXRzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcnRfc2lncHJvY21hc2socmVzLCBob3csIHNldCwgb3NldCwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnc2V0c2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWdwcm9jbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoaG93KSwgKGxvbmcpKHNldCksIChsb25nKShvc2V0KSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3NpZ3BlbmRpbmcoc2V0LCBzaWdzZXRzaXplKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lncGVuZGluZygobG9uZykoc2V0KSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWdwZW5kaW5nKHJlcywgc2V0LCBzaWdzZXRzaXplKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3BlbmRpbmcocmVzLCAobG9uZykoc2V0KSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3NpZ3RpbWVkd2FpdCh1dGhlc2UsIHVpbmZvLCB1dHMsICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdzZXRzaXplKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lndGltZWR3YWl0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykodXRoZXNlKSwgKGxvbmcpKHVpbmZvKSwgKGxvbmcpKHV0cyksIChsb25nKShzaWdzZXRzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcnRfc2lndGltZWR3YWl0KHJlcywgdXRoZXNlLCB1aW5mbywgdXRzLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ3NldHNpemUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWd0aW1lZHdhaXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykodXRoZXNlKSwgKGxvbmcpKHVpbmZvKSwgKGxvbmcpKHV0cyksIChsb25nKShzaWdzZXRzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ydF90Z3NpZ3F1ZXVlaW5mbyh0Z2lkLCBwaWQsIHNpZywgdWluZm8pICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3Rnc2lncXVldWVpbmZvKChsb25nKSh0Z2lkKSwgKGxvbmcpKHBpZCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaWcpLCAobG9uZykodWluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF90Z3NpZ3F1ZXVlaW5mbyhyZXMsIHRnaWQsIHBpZCwgc2lnLCB1aW5mbykgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3Rnc2lncXVldWVpbmZvKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKSh0Z2lkKSwgKGxvbmcpKHBpZCksIChsb25nKShzaWcpLCAobG9uZykodWluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2tpbGwocGlkLCBzaWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa2lsbCgobG9uZykocGlkKSwgKGxvbmcpKHNpZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2tpbGwocmVzLCBwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2lsbChyZXMsIChsb25nKShwaWQpLCAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90Z2tpbGwodGdpZCwgcGlkLCBzaWcpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Rna2lsbCgobG9uZykodGdpZCksIChsb25nKShwaWQpLCAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGdraWxsKHJlcywgdGdpZCwgcGlkLCBzaWcpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90Z2tpbGwocmVzLCAobG9uZykodGdpZCksIChsb25nKShwaWQpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGtpbGwocGlkLCBzaWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90a2lsbCgobG9uZykocGlkKSwgKGxvbmcpKHNpZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RraWxsKHJlcywgcGlkLCBzaWcpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGtpbGwocmVzLCAobG9uZykocGlkKSwgKGxvbmcpKHNpZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lncXVldWVpbmZvKHBpZCwgc2lnLCB1aW5mbykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdxdWV1ZWluZm8oKGxvbmcpKHBpZCksIChsb25nKShzaWcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcnRfc2lncXVldWVpbmZvKHJlcywgcGlkLCBzaWcsIHVpbmZvKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWdxdWV1ZWluZm8ocmVzLCAobG9uZykocGlkKSwgKGxvbmcpKHNpZyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZ2V0bWFzaygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NnZXRtYXNrKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2dldG1hc2socmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZ2V0bWFzayhyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3NldG1hc2sobmV3bWFzaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zc2V0bWFzaygobG9uZykobmV3bWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NzZXRtYXNrKHJlcywgbmV3bWFzaykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3NldG1hc2socmVzLCAobG9uZykobmV3bWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnbmFsKHNpZywgaGFuZGxlcikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWduYWwoKGxvbmcpKHNpZyksIChsb25nKShoYW5kbGVyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lnbmFsKHJlcywgc2lnLCBoYW5kbGVyKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWduYWwocmVzLCAobG9uZykoc2lnKSwgKGxvbmcpKGhhbmRsZXIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BhdXNlKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wYXVzZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BhdXNlKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF1c2UocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5bmMoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bmMoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zeW5jKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bmMocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzeW5jKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMoKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnN5bmMocmVzLCBmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3luYyhyZXMsIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmRhdGFzeW5jKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZGF0YXN5bmMoKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmRhdGFzeW5jKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZGF0YXN5bmMocmVzLCAobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2JkZmx1c2goZnVuYywgZGF0YSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYmRmbHVzaCgobG9uZykoZnVuYyksIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYmRmbHVzaChyZXMsIGZ1bmMsIGRhdGEpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9iZGZsdXNoKHJlcywgKGxvbmcpKGZ1bmMpLCAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW91bnQoZGV2X25hbWUsIGRpcl9uYW1lLCB0eXBlLCBmbGFncywgZGF0YSkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb3VudCgobG9uZykoZGV2X25hbWUpLCAobG9uZykoZGlyX25hbWUpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodHlwZSksIChsb25nKShmbGFncyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21vdW50KHJlcywgZGV2X25hbWUsIGRpcl9uYW1lLCB0eXBlLCBmbGFncywgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW91bnQocmVzLCAobG9uZykoZGV2X25hbWUpLCAobG9uZykoZGlyX25hbWUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHR5cGUpLCAobG9uZykoZmxhZ3MpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Vtb3VudChuYW1lLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW1vdW50KChsb25nKShuYW1lKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW1vdW50KHJlcywgbmFtZSwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bW91bnQocmVzLCAobG9uZykobmFtZSksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkdW1vdW50KG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGR1bW91bnQoKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGR1bW91bnQocmVzLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZHVtb3VudChyZXMsIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90cnVuY2F0ZShwYXRoLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RydW5jYXRlKChsb25nKShwYXRoKSwgKGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RydW5jYXRlKHJlcywgcGF0aCwgbGVuZ3RoKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdHJ1bmNhdGUocmVzLCAobG9uZykocGF0aCksIChsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z0cnVuY2F0ZShmZCwgbGVuZ3RoKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnRydW5jYXRlKChsb25nKShmZCksIChsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mdHJ1bmNhdGUocmVzLCBmZCwgbGVuZ3RoKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Z0cnVuY2F0ZShyZXMsIChsb25nKShmZCksIChsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N0YXQoZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdCgobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N0YXQocmVzLCBmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdChyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zdGF0ZnMocGF0aCwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0YXRmcygobG9uZykocGF0aCksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zdGF0ZnMocmVzLCBwYXRoLCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0YXRmcyhyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3RhdGZzNjQocGF0aCwgc3osIGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0ZnM2NCgobG9uZykocGF0aCksIChsb25nKShzeiksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zdGF0ZnM2NChyZXMsIHBhdGgsIHN6LCBidWYpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0YXRmczY0KHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykoc3opLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzdGF0ZnMoZmQsIGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXRmcygobG9uZykoZmQpLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnN0YXRmcyhyZXMsIGZkLCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGZzKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXRmczY0KGZkLCBzeiwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGZzNjQoKGxvbmcpKGZkKSwgKGxvbmcpKHN6KSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzdGF0ZnM2NChyZXMsIGZkLCBzeiwgYnVmKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXRmczY0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHN6KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzdGF0KGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHN0YXQoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc3RhdChyZXMsIGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzdGF0KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzdGF0KGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXQoKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdChyZXMsIGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25ld3N0YXQoZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3c3RhdCgobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X25ld3N0YXQocmVzLCBmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3c3RhdChyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uZXdsc3RhdChmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2xzdGF0KChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmV3bHN0YXQocmVzLCBmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdsc3RhdChyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uZXdmc3RhdChmZCwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2ZzdGF0KChsb25nKShmZCksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmV3ZnN0YXQocmVzLCBmZCwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdmc3RhdChyZXMsIChsb25nKShmZCksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91c3RhdChkZXYsIHVidWYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VzdGF0KChsb25nKShkZXYpLCAobG9uZykodWJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VzdGF0KHJlcywgZGV2LCB1YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXN0YXQocmVzLCAobG9uZykoZGV2KSwgKGxvbmcpKHVidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N0YXQ2NChmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdDY0KChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3RhdDY0KHJlcywgZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0NjQocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXQ2NChmZCwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdDY0KChsb25nKShmZCksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnN0YXQ2NChyZXMsIGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdDY0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzdGF0NjQoZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHN0YXQ2NCgobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xzdGF0NjQocmVzLCBmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHN0YXQ2NChyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXR4YXR0cihwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzZXR4YXR0cihwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocGF0aCksIChsb25nKShuYW1lKSwgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZXR4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzZXR4YXR0cihmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoZmQpLCAobG9uZykobmFtZSksIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnNldHhhdHRyKHJlcywgZmQsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc2V0eGF0dHIocmVzLCAobG9uZykoZmQpLCAobG9uZykobmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR4YXR0cihwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHhhdHRyKChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGdldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZ2V0eGF0dHIoKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sZ2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xnZXR4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmdldHhhdHRyKGZkLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZ2V0eGF0dHIoKGxvbmcpKGZkKSwgKGxvbmcpKG5hbWUpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mZ2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0cihyZXMsIChsb25nKShmZCksIChsb25nKShuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGlzdHhhdHRyKHBhdGgsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saXN0eGF0dHIoKGxvbmcpKHBhdGgpLCAobG9uZykobGlzdCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9saXN0eGF0dHIocmVzLCBwYXRoLCBsaXN0LCBzaXplKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpc3R4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKGxpc3QpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGxpc3R4YXR0cihwYXRoLCBsaXN0LCBzaXplKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sbGlzdHhhdHRyKChsb25nKShwYXRoKSwgKGxvbmcpKGxpc3QpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGxpc3R4YXR0cihyZXMsIHBhdGgsIGxpc3QsIHNpemUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sbGlzdHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobGlzdCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mbGlzdHhhdHRyKGZkLCBsaXN0LCBzaXplKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZsaXN0eGF0dHIoKGxvbmcpKGZkKSwgKGxvbmcpKGxpc3QpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mbGlzdHhhdHRyKHJlcywgZmQsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZsaXN0eGF0dHIocmVzLCAobG9uZykoZmQpLCAobG9uZykobGlzdCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbW92ZXhhdHRyKHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtb3ZleGF0dHIoKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlbW92ZXhhdHRyKHJlcywgcGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVtb3ZleGF0dHIocmVzLCAobG9uZykocGF0aCksIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9scmVtb3ZleGF0dHIocGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xyZW1vdmV4YXR0cigobG9uZykocGF0aCksIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbHJlbW92ZXhhdHRyKHJlcywgcGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9scmVtb3ZleGF0dHIocmVzLCAobG9uZykocGF0aCksIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mcmVtb3ZleGF0dHIoZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZyZW1vdmV4YXR0cigobG9uZykoZmQpLCAobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZyZW1vdmV4YXR0cihyZXMsIGZkLCBuYW1lKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnJlbW92ZXhhdHRyKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2JyayhicmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYnJrKChsb25nKShicmspKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9icmsocmVzLCBicmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JyayhyZXMsIChsb25nKShicmspKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21wcm90ZWN0KHN0YXJ0LCBsZW4sIHByb3QpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXByb3RlY3QoKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHByb3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcHJvdGVjdChyZXMsIHN0YXJ0LCBsZW4sIHByb3QpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21wcm90ZWN0KHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwcm90KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcmVtYXAoYWRkciwgb2xkX2xlbiwgbmV3X2xlbiwgZmxhZ3MsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2FkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21yZW1hcCgobG9uZykoYWRkciksIChsb25nKShvbGRfbGVuKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X2xlbiksIChsb25nKShmbGFncyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X2FkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcmVtYXAocmVzLCBhZGRyLCBvbGRfbGVuLCBuZXdfbGVuLCBmbGFncywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2FkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21yZW1hcChyZXMsIChsb25nKShhZGRyKSwgKGxvbmcpKG9sZF9sZW4pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X2xlbiksIChsb25nKShmbGFncyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X2FkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbWFwX2ZpbGVfcGFnZXMoc3RhcnQsIHNpemUsIHByb3QsIHBnb2ZmLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtYXBfZmlsZV9wYWdlcyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoc3RhcnQpLCAobG9uZykoc2l6ZSksIChsb25nKShwcm90KSwgKGxvbmcpKHBnb2ZmKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVtYXBfZmlsZV9wYWdlcyhyZXMsIHN0YXJ0LCBzaXplLCBwcm90LCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ29mZiwgZmxhZ3MpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW1hcF9maWxlX3BhZ2VzKHJlcywgKGxvbmcpKHN0YXJ0KSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplKSwgKGxvbmcpKHByb3QpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwZ29mZiksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXN5bmMoc3RhcnQsIGxlbiwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc3luYygobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXN5bmMocmVzLCBzdGFydCwgbGVuLCBmbGFncykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc3luYyhyZXMsIChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX211bm1hcChhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXVubWFwKChsb25nKShhZGRyKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X211bm1hcChyZXMsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubWFwKHJlcywgKGxvbmcpKGFkZHIpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbG9jayhzdGFydCwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrKChsb25nKShzdGFydCksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbG9jayhyZXMsIHN0YXJ0LCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21sb2NrKHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9jayhzdGFydCwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrKChsb25nKShzdGFydCksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tdW5sb2NrKHJlcywgc3RhcnQsIGxlbikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2socmVzLCAobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbG9ja2FsbChmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrYWxsKChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21sb2NrYWxsKHJlcywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWxvY2thbGwocmVzLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX211bmxvY2thbGwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXVubG9ja2FsbCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X211bmxvY2thbGwocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubG9ja2FsbChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWFkdmlzZShzdGFydCwgbGVuLCBiZWhhdmlvcikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tYWR2aXNlKChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShiZWhhdmlvcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21hZHZpc2UocmVzLCBzdGFydCwgbGVuLCBiZWhhdmlvcikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWFkdmlzZShyZXMsIChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYmVoYXZpb3IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21pbmNvcmUoc3RhcnQsIGxlbiwgdmVjKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWluY29yZSgobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSwgKGxvbmcpKHZlYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pbmNvcmUocmVzLCBzdGFydCwgbGVuLCB2ZWMpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluY29yZShyZXMsIChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmVjKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9waXZvdF9yb290KG5ld19yb290LCBwdXRfb2xkKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Bpdm90X3Jvb3QoKGxvbmcpKG5ld19yb290KSwgKGxvbmcpKHB1dF9vbGQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9waXZvdF9yb290KHJlcywgbmV3X3Jvb3QsIHB1dF9vbGQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bpdm90X3Jvb3QocmVzLCAobG9uZykobmV3X3Jvb3QpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHB1dF9vbGQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nocm9vdChmaWxlbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hyb290KChsb25nKShmaWxlbmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nocm9vdChyZXMsIGZpbGVuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hyb290KHJlcywgKGxvbmcpKGZpbGVuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta25vZChmaWxlbmFtZSwgbW9kZSwgZGV2KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rbm9kKChsb25nKShmaWxlbmFtZSksIChsb25nKShtb2RlKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta25vZChyZXMsIGZpbGVuYW1lLCBtb2RlLCBkZXYpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rbm9kKHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKG1vZGUpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpbmsob2xkbmFtZSwgbmV3bmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluaygobG9uZykob2xkbmFtZSksIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGluayhyZXMsIG9sZG5hbWUsIG5ld25hbWUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW5rKHJlcywgKGxvbmcpKG9sZG5hbWUpLCAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3ltbGluayhvbGQsIG5ld18pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW1saW5rKChsb25nKShvbGQpLCAobG9uZykobmV3XykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bWxpbmsocmVzLCBvbGQsIG5ld18pICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGluayhyZXMsIChsb25nKShvbGQpLCAobG9uZykobmV3XykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdW5saW5rKHBhdGhuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmsoKGxvbmcpKHBhdGhuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW5saW5rKHJlcywgcGF0aG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmxpbmsocmVzLCAobG9uZykocGF0aG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbmFtZShvbGRuYW1lLCBuZXduYW1lKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVuYW1lKChsb25nKShvbGRuYW1lKSwgKGxvbmcpKG5ld25hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZW5hbWUocmVzLCBvbGRuYW1lLCBuZXduYW1lKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbmFtZShyZXMsIChsb25nKShvbGRuYW1lKSwgKGxvbmcpKG5ld25hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NobW9kKGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2htb2QoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG1vZChyZXMsIGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NobW9kKHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG1vZChmZCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kKChsb25nKShmZCksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNobW9kKHJlcywgZmQsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QocmVzLCAobG9uZykoZmQpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNudGwoZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY250bCgobG9uZykoZmQpLCAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjbnRsKHJlcywgZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNudGwocmVzLCAobG9uZykoZmQpLCAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNudGw2NChmZCwgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY250bDY0KChsb25nKShmZCksIChsb25nKShjbWQpLCAobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNudGw2NChyZXMsIGZkLCBjbWQsIGFyZykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY250bDY0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGNtZCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BpcGUoZmlsZGVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGlwZSgobG9uZykoZmlsZGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcGlwZShyZXMsIGZpbGRlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9waXBlKHJlcywgKGxvbmcpKGZpbGRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGlwZTIoZmlsZGVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlMigobG9uZykoZmlsZGVzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcGlwZTIocmVzLCBmaWxkZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9waXBlMihyZXMsIChsb25nKShmaWxkZXMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2R1cChmaWxkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwKChsb25nKShmaWxkZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9kdXAocmVzLCBmaWxkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cChyZXMsIChsb25nKShmaWxkZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2R1cDIob2xkZmQsIG5ld2ZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwMigobG9uZykob2xkZmQpLCAobG9uZykobmV3ZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9kdXAyKHJlcywgb2xkZmQsIG5ld2ZkKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cDIocmVzLCAobG9uZykob2xkZmQpLCAobG9uZykobmV3ZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2R1cDMob2xkZmQsIG5ld2ZkLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwMygobG9uZykob2xkZmQpLCAobG9uZykobmV3ZmQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9kdXAzKHJlcywgb2xkZmQsIG5ld2ZkLCBmbGFncykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cDMocmVzLCAobG9uZykob2xkZmQpLCAobG9uZykobmV3ZmQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb3Blcm0oZnJvbSwgbnVtLCBvbikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcGVybSgobG9uZykoZnJvbSksIChsb25nKShudW0pLCAobG9uZykob24pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb3Blcm0ocmVzLCBmcm9tLCBudW0sIG9uKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcGVybShyZXMsIChsb25nKShmcm9tKSwgKGxvbmcpKG51bSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob24pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvY3RsKGZkLCBjbWQsIGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9jdGwoKGxvbmcpKGZkKSwgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb2N0bChyZXMsIGZkLCBjbWQsIGFyZykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Zsb2NrKGZkLCBjbWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmxvY2soKGxvbmcpKGZkKSwgKGxvbmcpKGNtZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Zsb2NrKHJlcywgZmQsIGNtZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmxvY2socmVzLCAobG9uZykoZmQpLCAobG9uZykoY21kKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb19zZXR1cChucl9yZXFzLCBjdHgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvX3NldHVwKChsb25nKShucl9yZXFzKSwgKGxvbmcpKGN0eCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvX3NldHVwKHJlcywgbnJfcmVxcywgY3R4KSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fc2V0dXAocmVzLCAobG9uZykobnJfcmVxcyksIChsb25nKShjdHgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvX2Rlc3Ryb3koY3R4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fZGVzdHJveSgobG9uZykoY3R4KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW9fZGVzdHJveShyZXMsIGN0eCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19kZXN0cm95KHJlcywgKGxvbmcpKGN0eCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9fZ2V0ZXZlbnRzKGN0eF9pZCwgbWluX25yLCBuciwgZXZlbnRzLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19nZXRldmVudHMoKGxvbmcpKGN0eF9pZCksIChsb25nKShtaW5fbnIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5yKSwgKGxvbmcpKGV2ZW50cyksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb19nZXRldmVudHMocmVzLCBjdHhfaWQsIG1pbl9uciwgbnIsIGV2ZW50cywgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX2dldGV2ZW50cyhyZXMsIChsb25nKShjdHhfaWQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobWluX25yKSwgKGxvbmcpKG5yKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZXZlbnRzKSwgKGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvX3N1Ym1pdChjdHhfaWQsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fc3VibWl0KChsb25nKShjdHhfaWQpLCAobG9uZykoYXJnMSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW9fc3VibWl0KHJlcywgY3R4X2lkLCBhcmcxLCBhcmcyKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19zdWJtaXQocmVzLCAobG9uZykoY3R4X2lkKSwgKGxvbmcpKGFyZzEpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvX2NhbmNlbChjdHhfaWQsIGlvY2IsIHJlc3VsdCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fY2FuY2VsKChsb25nKShjdHhfaWQpLCAobG9uZykoaW9jYiksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShyZXN1bHQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb19jYW5jZWwocmVzLCBjdHhfaWQsIGlvY2IsIHJlc3VsdCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX2NhbmNlbChyZXMsIChsb25nKShjdHhfaWQpLCAobG9uZykoaW9jYiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocmVzdWx0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW5kZmlsZShvdXRfZmQsIGluX2ZkLCBvZmZzZXQsIGNvdW50KSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmRmaWxlKChsb25nKShvdXRfZmQpLCAobG9uZykoaW5fZmQpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXQpLCAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kZmlsZShyZXMsIG91dF9mZCwgaW5fZmQsIG9mZnNldCwgY291bnQpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRmaWxlKHJlcywgKGxvbmcpKG91dF9mZCksIChsb25nKShpbl9mZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXQpLCAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRmaWxlNjQob3V0X2ZkLCBpbl9mZCwgb2Zmc2V0LCBjb3VudCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZGZpbGU2NCgobG9uZykob3V0X2ZkKSwgKGxvbmcpKGluX2ZkKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob2Zmc2V0KSwgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZGZpbGU2NChyZXMsIG91dF9mZCwgaW5fZmQsIG9mZnNldCwgY291bnQpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kZmlsZTY0KHJlcywgKGxvbmcpKG91dF9mZCksIChsb25nKShpbl9mZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXQpLCAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWRsaW5rKHBhdGgsIGJ1ZiwgYnVmc2l6KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmsoKGxvbmcpKHBhdGgpLCAobG9uZykoYnVmKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZnNpeikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlYWRsaW5rKHJlcywgcGF0aCwgYnVmLCBidWZzaXopICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmsocmVzLCAobG9uZykocGF0aCksIChsb25nKShidWYpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZnNpeikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY3JlYXQocGF0aG5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jcmVhdCgobG9uZykocGF0aG5hbWUpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NyZWF0KHJlcywgcGF0aG5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY3JlYXQocmVzLCAobG9uZykocGF0aG5hbWUpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb3BlbihmaWxlbmFtZSwgZmxhZ3MsIG1vZGUpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vcGVuKChsb25nKShmaWxlbmFtZSksIChsb25nKShmbGFncyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb3BlbihyZXMsIGZpbGVuYW1lLCBmbGFncywgbW9kZSkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuKHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKGZsYWdzKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jbG9zZShmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb3NlKChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nsb3NlKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvc2UocmVzLCAobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VzcyhmaWxlbmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXNzKChsb25nKShmaWxlbmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjZXNzKHJlcywgZmlsZW5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2Nlc3MocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdmhhbmd1cCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmhhbmd1cCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ZoYW5ndXAocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdmhhbmd1cChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hvd24oZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bigobG9uZykoZmlsZW5hbWUpLCAobG9uZykodXNlciksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG93bihyZXMsIGZpbGVuYW1lLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duKHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHVzZXIpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGNob3duKGZpbGVuYW1lLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2hvd24oKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHVzZXIpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNob3duKHJlcywgZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24ocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykodXNlciksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2hvd24oZmQsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG93bigobG9uZykoZmQpLCAobG9uZykodXNlciksIChsb25nKShncm91cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bihyZXMsIGZkLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHVzZXIpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hvd24xNihmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bjE2KChsb25nKShmaWxlbmFtZSksIChsb25nKXVzZXIsICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKWdyb3VwKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG93bjE2KHJlcywgZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duMTYocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZyl1c2VyLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpZ3JvdXApCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGNob3duMTYoZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2hvd24xNigobG9uZykoZmlsZW5hbWUpLCAobG9uZyl1c2VyLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylncm91cCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNob3duMTYocmVzLCBmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24xNihyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKXVzZXIsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylncm91cCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2hvd24xNihmZCwgdXNlciwgZ3JvdXApICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG93bjE2KChsb25nKShmZCksIChsb25nKXVzZXIsIChsb25nKWdyb3VwKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2hvd24xNihyZXMsIGZkLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG93bjE2KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpdXNlciwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKWdyb3VwKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlZ2lkMTYocmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVnaWQxNigobG9uZylyZ2lkLCAobG9uZyllZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZWdpZDE2KHJlcywgcmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlZ2lkMTYocmVzLCAobG9uZylyZ2lkLCAobG9uZyllZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGdpZDE2KGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Z2lkMTYoKGxvbmcpZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRnaWQxNihyZXMsIGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdpZDE2KHJlcywgKGxvbmcpZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJldWlkMTYocnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmV1aWQxNigobG9uZylydWlkLCAobG9uZylldWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXVpZDE2KHJlcywgcnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkMTYocmVzLCAobG9uZylydWlkLCAobG9uZylldWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHVpZDE2KHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0dWlkMTYoKGxvbmcpdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR1aWQxNihyZXMsIHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHVpZDE2KHJlcywgKGxvbmcpdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlc3VpZDE2KHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzdWlkMTYoKGxvbmcpcnVpZCwgKGxvbmcpZXVpZCwgKGxvbmcpc3VpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmVzdWlkMTYocmVzLCBydWlkLCBldWlkLCBzdWlkKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXN1aWQxNihyZXMsIChsb25nKXJ1aWQsIChsb25nKWV1aWQsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylzdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJlc3VpZDE2KHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmVzdWlkMTYoKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyZXN1aWQxNihyZXMsIHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc3VpZDE2KHJlcywgKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZXNnaWQxNihyZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlc2dpZDE2KChsb25nKXJnaWQsIChsb25nKWVnaWQsIChsb25nKXNnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlc2dpZDE2KHJlcywgcmdpZCwgZWdpZCwgc2dpZCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVzZ2lkMTYocmVzLCAobG9uZylyZ2lkLCAobG9uZyllZ2lkLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpc2dpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyZXNnaWQxNihyZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc2dpZDE2KChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cmVzZ2lkMTYocmVzLCByZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyZXNnaWQxNihyZXMsIChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2dpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZnN1aWQxNih1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc3VpZDE2KChsb25nKXVpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZnN1aWQxNihyZXMsIHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc3VpZDE2KHJlcywgKGxvbmcpdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGZzZ2lkMTYoZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZnNnaWQxNigobG9uZylnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGZzZ2lkMTYocmVzLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZnNnaWQxNihyZXMsIChsb25nKWdpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRncm91cHMxNihnaWRzZXRzaXplLCBncm91cGxpc3QpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdyb3VwczE2KChsb25nKShnaWRzZXRzaXplKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cGxpc3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRncm91cHMxNihyZXMsIGdpZHNldHNpemUsIGdyb3VwbGlzdCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdyb3VwczE2KHJlcywgKGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cGxpc3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGdyb3VwczE2KGdpZHNldHNpemUsIGdyb3VwbGlzdCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Z3JvdXBzMTYoKGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGdyb3VwczE2KHJlcywgZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z3JvdXBzMTYocmVzLCAobG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dWlkMTYoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQxNigpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHVpZDE2KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkMTYocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGV1aWQxNigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZXVpZDE2KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZXVpZDE2KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkMTYocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdpZDE2KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z2lkMTYoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRnaWQxNihyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZDE2KHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRlZ2lkMTYoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGVnaWQxNigpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGVnaWQxNihyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0ZWdpZDE2KHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91dGltZShmaWxlbmFtZSwgdGltZXMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3V0aW1lKChsb25nKShmaWxlbmFtZSksIChsb25nKSh0aW1lcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3V0aW1lKHJlcywgZmlsZW5hbWUsIHRpbWVzKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXRpbWUocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykodGltZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3V0aW1lcyhmaWxlbmFtZSwgdXRpbWVzKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVzKChsb25nKShmaWxlbmFtZSksIChsb25nKSh1dGltZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dGltZXMocmVzLCBmaWxlbmFtZSwgdXRpbWVzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lcyhyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKSh1dGltZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzZWVrKGZkLCBvZmZzZXQsIG9yaWdpbikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNlZWsoKGxvbmcpKGZkKSwgKGxvbmcpKG9mZnNldCksIChsb25nKShvcmlnaW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2VlayhyZXMsIGZkLCBvZmZzZXQsIG9yaWdpbikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZWVrKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG9mZnNldCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcmlnaW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xsc2VlayhmZCwgb2Zmc2V0X2hpZ2gsIG9mZnNldF9sb3csIHJlc3VsdCwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGxzZWVrKChsb25nKShmZCksIChsb25nKShvZmZzZXRfaGlnaCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXRfbG93KSwgKGxvbmcpKHJlc3VsdCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcmlnaW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sbHNlZWsocmVzLCBmZCwgb2Zmc2V0X2hpZ2gsIG9mZnNldF9sb3csICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCBvcmlnaW4pICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsc2VlayhyZXMsIChsb25nKShmZCksIChsb25nKShvZmZzZXRfaGlnaCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob2Zmc2V0X2xvdyksIChsb25nKShyZXN1bHQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3JpZ2luKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWFkKGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWQoKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlYWQocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZChyZXMsIChsb25nKShmZCksIChsb25nKShidWYpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWR2KGZkLCB2ZWMsIHZsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZHYoKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksIChsb25nKSh2bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZHYocmVzLCBmZCwgdmVjLCB2bGVuKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkdihyZXMsIChsb25nKShmZCksIChsb25nKSh2ZWMpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd3JpdGUoZmQsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZSgobG9uZykoZmQpLCAobG9uZykoYnVmKSwgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd3JpdGUocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93cml0ZShyZXMsIChsb25nKShmZCksIChsb25nKShidWYpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3dyaXRldihmZCwgdmVjLCB2bGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGV2KChsb25nKShmZCksIChsb25nKSh2ZWMpLCAobG9uZykodmxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3dyaXRldihyZXMsIGZkLCB2ZWMsIHZsZW4pICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd3JpdGV2KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSkKCiNpZmRlZiBfTFA2NAojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkNjQoZmQsIGJ1ZiwgY291bnQsIHBvcykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWQ2NCgobG9uZykoZmQpLCAobG9uZykoYnVmKSwgKGxvbmcpKGNvdW50KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocG9zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJlYWQ2NChyZXMsIGZkLCBidWYsIGNvdW50LCBwb3MpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZDY0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjb3VudCksIChsb25nKShwb3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3B3cml0ZTY0KGZkLCBidWYsIGNvdW50LCBwb3MpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRlNjQoKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSwgKGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZTY0KHJlcywgZmQsIGJ1ZiwgY291bnQsIHBvcykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRlNjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoYnVmKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSwgKGxvbmcpKHBvcykpCiNlbHNlCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJlYWQ2NChmZCwgYnVmLCBjb3VudCwgcG9zMCwgcG9zMSkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZDY0KChsb25nKShmZCksIChsb25nKShidWYpLCAobG9uZykoY291bnQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3MwKSwgKGxvbmcpKHBvczEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcmVhZDY0KHJlcywgZmQsIGJ1ZiwgY291bnQsIHBvczAsIHBvczEpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkNjQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShmZCksIChsb25nKShidWYpLCAobG9uZykoY291bnQpLCAobG9uZykocG9zMCksIChsb25nKShwb3MxKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wd3JpdGU2NChmZCwgYnVmLCBjb3VudCwgcG9zMCwgcG9zMSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZTY0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksIChsb25nKShjb3VudCksIChsb25nKShwb3MwKSwgKGxvbmcpKHBvczEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wd3JpdGU2NChyZXMsIGZkLCBidWYsIGNvdW50LCBwb3MwLCBwb3MxKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3B3cml0ZTY0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShmZCksIChsb25nKShidWYpLCAobG9uZykoY291bnQpLCAobG9uZykocG9zMCksIChsb25nKShwb3MxKSkKI2VuZGlmCgojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkdihmZCwgdmVjLCB2bGVuLCBwb3NfbCwgcG9zX2gpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWR2KChsb25nKShmZCksIChsb25nKSh2ZWMpLCAobG9uZykodmxlbiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3NfbCksIChsb25nKShwb3NfaCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ByZWFkdihyZXMsIGZkLCB2ZWMsIHZsZW4sIHBvc19sLCBwb3NfaCkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWR2KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSwgKGxvbmcpKHBvc19sKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3NfaCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHdyaXRldihmZCwgdmVjLCB2bGVuLCBwb3NfbCwgcG9zX2gpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGV2KChsb25nKShmZCksIChsb25nKSh2ZWMpLCAobG9uZykodmxlbiksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3NfbCksIChsb25nKShwb3NfaCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZXYocmVzLCBmZCwgdmVjLCB2bGVuLCBwb3NfbCwgcG9zX2gpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldihyZXMsIChsb25nKShmZCksIChsb25nKSh2ZWMpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmxlbiksIChsb25nKShwb3NfbCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocG9zX2gpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGN3ZChidWYsIHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y3dkKChsb25nKShidWYpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGN3ZChyZXMsIGJ1Ziwgc2l6ZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Y3dkKHJlcywgKGxvbmcpKGJ1ZiksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2RpcihwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyKChsb25nKShwYXRobmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWtkaXIocmVzLCBwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta2RpcihyZXMsIChsb25nKShwYXRobmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaGRpcihmaWxlbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NoZGlyKChsb25nKShmaWxlbmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NoZGlyKHJlcywgZmlsZW5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hkaXIocmVzLCAobG9uZykoZmlsZW5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaGRpcihmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZGlyKChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaGRpcihyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNoZGlyKHJlcywgKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ybWRpcihwYXRobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JtZGlyKChsb25nKShwYXRobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JtZGlyKHJlcywgcGF0aG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcm1kaXIocmVzLCAobG9uZykocGF0aG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xvb2t1cF9kY29va2llKGNvb2tpZTY0LCBidWYsIGxlbikgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbG9va3VwX2Rjb29raWUoKGxvbmcpKGNvb2tpZTY0KSwgKGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xvb2t1cF9kY29va2llKHJlcywgY29va2llNjQsIGJ1ZiwgbGVuKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbG9va3VwX2Rjb29raWUocmVzLCAobG9uZykoY29va2llNjQpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZiksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3F1b3RhY3RsKGNtZCwgc3BlY2lhbCwgaWQsIGFkZHIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcXVvdGFjdGwoKGxvbmcpKGNtZCksIChsb25nKShzcGVjaWFsKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGlkKSwgKGxvbmcpKGFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9xdW90YWN0bChyZXMsIGNtZCwgc3BlY2lhbCwgaWQsIGFkZHIpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3F1b3RhY3RsKHJlcywgKGxvbmcpKGNtZCksIChsb25nKShzcGVjaWFsKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShpZCksIChsb25nKShhZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRkZW50cyhmZCwgZGlyZW50LCBjb3VudCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGRlbnRzKChsb25nKShmZCksIChsb25nKShkaXJlbnQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGRlbnRzKHJlcywgZmQsIGRpcmVudCwgY291bnQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0ZGVudHMocmVzLCAobG9uZykoZmQpLCAobG9uZykoZGlyZW50KSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRkZW50czY0KGZkLCBkaXJlbnQsIGNvdW50KSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGRlbnRzNjQoKGxvbmcpKGZkKSwgKGxvbmcpKGRpcmVudCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZGVudHM2NChyZXMsIGZkLCBkaXJlbnQsIGNvdW50KSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRkZW50czY0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGRpcmVudCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0c29ja29wdChmZCwgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzb2Nrb3B0KChsb25nKShmZCksIChsb25nKShsZXZlbCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRuYW1lKSwgKGxvbmcpKG9wdHZhbCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRzb2Nrb3B0KHJlcywgZmQsIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNvY2tvcHQocmVzLCAobG9uZykoZmQpLCAobG9uZykobGV2ZWwpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdG5hbWUpLCAobG9uZykob3B0dmFsKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja29wdChmZCwgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KChsb25nKShmZCksIChsb25nKShsZXZlbCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRuYW1lKSwgKGxvbmcpKG9wdHZhbCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRzb2Nrb3B0KHJlcywgZmQsIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tvcHQocmVzLCAobG9uZykoZmQpLCAobG9uZykobGV2ZWwpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdG5hbWUpLCAobG9uZykob3B0dmFsKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYmluZChhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iaW5kKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2JpbmQocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYmluZChyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29ubmVjdChhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb25uZWN0KChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nvbm5lY3QocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29ubmVjdChyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWNjZXB0KGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2NlcHQoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjZXB0KHJlcywgYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VwdDQoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXB0NCgobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjZXB0NChyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQ0KHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHNvY2tuYW1lKGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c29ja25hbWUoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRzb2NrbmFtZShyZXMsIGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tuYW1lKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZWVybmFtZShhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBlZXJuYW1lKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGVlcm5hbWUocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZWVybmFtZShyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZChhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAobG9uZykoYXJnMiksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmczKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZChyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmR0byhhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZHRvKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSwgKGxvbmcpKGFyZzUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kdG8ocmVzLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmR0byhyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNCksIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW5kbXNnKGZkLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmRtc2coKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbmRtc2cocmVzLCBmZCwgbXNnLCBmbGFncykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZG1zZyhyZXMsIChsb25nKShmZCksIChsb25nKShtc2cpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRtbXNnKGZkLCBtc2csIHZsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2coKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksIChsb25nKSh2bGVuKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1tc2cocmVzLCBmZCwgbXNnLCB2bGVuLCBmbGFncykgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbW1zZyhyZXMsIChsb25nKShmZCksIChsb25nKShtc2cpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmxlbiksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVjdihhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWN2KChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAobG9uZykoYXJnMiksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmczKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVjdihyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2KHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlY3Zmcm9tKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdmZyb20oKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMyksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzQpLCAobG9uZykoYXJnNSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlY3Zmcm9tKHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdmZyb20ocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzQpLCAobG9uZykoYXJnNSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVjdm1zZyhmZCwgbXNnLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWN2bXNnKChsb25nKShmZCksIChsb25nKShtc2cpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWN2bXNnKHJlcywgZmQsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3Ztc2cocmVzLCAobG9uZykoZmQpLCAobG9uZykobXNnKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2bW1zZyhmZCwgbXNnLCB2bGVuLCBmbGFncywgdGltZW91dCkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKChsb25nKShmZCksIChsb25nKShtc2cpLCAobG9uZykodmxlbiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVjdm1tc2cocmVzLCBmZCwgbXNnLCB2bGVuLCBmbGFncywgdGltZW91dCkgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2bW1zZyhyZXMsIChsb25nKShmZCksIChsb25nKShtc2cpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmxlbiksIChsb25nKShmbGFncyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc29ja2V0KGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXQoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc29ja2V0KHJlcywgYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXQocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NvY2tldHBhaXIoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0cGFpcigobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc29ja2V0cGFpcihyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXRwYWlyKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NvY2tldGNhbGwoY2FsbCwgYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0Y2FsbCgobG9uZykoY2FsbCksIChsb25nKShhcmdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc29ja2V0Y2FsbChyZXMsIGNhbGwsIGFyZ3MpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXRjYWxsKHJlcywgKGxvbmcpKGNhbGwpLCAobG9uZykoYXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGlzdGVuKGFyZzAsIGFyZzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saXN0ZW4oKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpc3RlbihyZXMsIGFyZzAsIGFyZzEpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdGVuKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9sbCh1ZmRzLCBuZmRzLCB0aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb2xsKChsb25nKSh1ZmRzKSwgKGxvbmcpKG5mZHMpLCAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BvbGwocmVzLCB1ZmRzLCBuZmRzLCB0aW1lb3V0KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcG9sbChyZXMsIChsb25nKSh1ZmRzKSwgKGxvbmcpKG5mZHMpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VsZWN0KG4sIGlucCwgb3V0cCwgZXhwLCB0dnApICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZWxlY3QoKGxvbmcpKG4pLCAobG9uZykoaW5wKSwgKGxvbmcpKG91dHApLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGV4cCksIChsb25nKSh0dnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZWxlY3QocmVzLCBuLCBpbnAsIG91dHAsIGV4cCwgdHZwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbGVjdChyZXMsIChsb25nKShuKSwgKGxvbmcpKGlucCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3V0cCksIChsb25nKShleHApLCAobG9uZykodHZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRfc2VsZWN0KGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZF9zZWxlY3QoKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZF9zZWxlY3QocmVzLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkX3NlbGVjdChyZXMsIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Vwb2xsX2NyZWF0ZShzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfY3JlYXRlKChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfY3JlYXRlKHJlcywgc2l6ZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jcmVhdGUocmVzLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXBvbGxfY3JlYXRlMShmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9jcmVhdGUxKChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Vwb2xsX2NyZWF0ZTEocmVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfY3JlYXRlMShyZXMsIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXBvbGxfY3RsKGVwZmQsIG9wLCBmZCwgZXZlbnQpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9jdGwoKGxvbmcpKGVwZmQpLCAobG9uZykob3ApLCAobG9uZykoZmQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGV2ZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfY3RsKHJlcywgZXBmZCwgb3AsIGZkLCBldmVudCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jdGwocmVzLCAobG9uZykoZXBmZCksIChsb25nKShvcCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZkKSwgKGxvbmcpKGV2ZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF93YWl0KGVwZmQsIGV2ZW50cywgbWF4ZXZlbnRzLCB0aW1lb3V0KSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX3dhaXQoKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfd2FpdChyZXMsIGVwZmQsIGV2ZW50cywgbWF4ZXZlbnRzLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF93YWl0KHJlcywgKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtYXhldmVudHMpLCAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXBvbGxfcHdhaXQoZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsIHRpbWVvdXQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbWFzaywgc2lnc2V0c2l6ZSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9wd2FpdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShlcGZkKSwgKGxvbmcpKGV2ZW50cyksIChsb25nKShtYXhldmVudHMpLCAobG9uZykodGltZW91dCksICAgICAgICBcCiAgICAgIChsb25nKShzaWdtYXNrKSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9lcG9sbF9wd2FpdChyZXMsIGVwZmQsIGV2ZW50cywgbWF4ZXZlbnRzLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LCBzaWdtYXNrLCBzaWdzZXRzaXplKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX3B3YWl0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShlcGZkKSwgKGxvbmcpKGV2ZW50cyksIChsb25nKShtYXhldmVudHMpLCAobG9uZykodGltZW91dCksICAgXAogICAgICAobG9uZykoc2lnbWFzayksIChsb25nKShzaWdzZXRzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF9wd2FpdDIoZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsIHRpbWVvdXQsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbWFzaywgc2lnc2V0c2l6ZSkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX3B3YWl0MiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSwgICAgICAgIFwKICAgICAgKGxvbmcpKHNpZ21hc2spLCAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Vwb2xsX3B3YWl0MihyZXMsIGVwZmQsIGV2ZW50cywgbWF4ZXZlbnRzLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LCBzaWdtYXNrLCBzaWdzZXRzaXplKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfcHdhaXQyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSwgICBcCiAgICAgIChsb25nKShzaWdtYXNrKSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGhvc3RuYW1lKG5hbWUsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0aG9zdG5hbWUoKGxvbmcpKG5hbWUpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0aG9zdG5hbWUocmVzLCBuYW1lLCBsZW4pICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRob3N0bmFtZShyZXMsIChsb25nKShuYW1lKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0aG9zdG5hbWUobmFtZSwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRob3N0bmFtZSgobG9uZykobmFtZSksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRob3N0bmFtZShyZXMsIG5hbWUsIGxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGhvc3RuYW1lKHJlcywgKGxvbmcpKG5hbWUpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRkb21haW5uYW1lKG5hbWUsIGxlbikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGRvbWFpbm5hbWUoKGxvbmcpKG5hbWUpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZG9tYWlubmFtZShyZXMsIG5hbWUsIGxlbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRkb21haW5uYW1lKHJlcywgKGxvbmcpKG5hbWUpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uZXd1bmFtZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld3VuYW1lKChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmV3dW5hbWUocmVzLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXd1bmFtZShyZXMsIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmFtZShhcmcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuYW1lKChsb25nKShhcmcwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW5hbWUocmVzLCBhcmcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmFtZShyZXMsIChsb25nKShhcmcwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGR1bmFtZShhcmcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZHVuYW1lKChsb25nKShhcmcwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkdW5hbWUocmVzLCBhcmcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGR1bmFtZShyZXMsIChsb25nKShhcmcwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRybGltaXQocmVzb3VyY2UsIHJsaW0pICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJsaW1pdCgobG9uZykocmVzb3VyY2UpLCAobG9uZykocmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJsaW1pdChyZXMsIHJlc291cmNlLCBybGltKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmxpbWl0KHJlcywgKGxvbmcpKHJlc291cmNlKSwgKGxvbmcpKHJsaW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZF9nZXRybGltaXQocmVzb3VyY2UsIHJsaW0pICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX2dldHJsaW1pdCgobG9uZykocmVzb3VyY2UpLCAobG9uZykocmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZF9nZXRybGltaXQocmVzLCByZXNvdXJjZSwgcmxpbSkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkX2dldHJsaW1pdChyZXMsIChsb25nKShyZXNvdXJjZSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmxpbWl0KHJlc291cmNlLCBybGltKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRybGltaXQoKGxvbmcpKHJlc291cmNlKSwgKGxvbmcpKHJsaW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRybGltaXQocmVzLCByZXNvdXJjZSwgcmxpbSkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJsaW1pdChyZXMsIChsb25nKShyZXNvdXJjZSksIChsb25nKShybGltKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wcmxpbWl0NjQocGlkLCByZXNvdXJjZSwgbmV3X3JsaW0sIG9sZF9ybGltKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BybGltaXQ2NCgobG9uZykocGlkKSwgKGxvbmcpKHJlc291cmNlKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X3JsaW0pLCAobG9uZykob2xkX3JsaW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcmxpbWl0NjQocmVzLCBwaWQsIHJlc291cmNlLCBuZXdfcmxpbSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX3JsaW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BybGltaXQ2NChyZXMsIChsb25nKShwaWQpLCAobG9uZykocmVzb3VyY2UpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3X3JsaW0pLCAobG9uZykob2xkX3JsaW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJ1c2FnZSh3aG8sIHJ1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cnVzYWdlKChsb25nKSh3aG8pLCAobG9uZykocnUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRydXNhZ2UocmVzLCB3aG8sIHJ1KSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJ1c2FnZShyZXMsIChsb25nKSh3aG8pLCAobG9uZykocnUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VtYXNrKG1hc2spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW1hc2soKGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bWFzayhyZXMsIG1hc2spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VtYXNrKHJlcywgKGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21zZ2dldChrZXksIG1zZ2ZsZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnZ2V0KChsb25nKShrZXkpLCAobG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXNnZ2V0KHJlcywga2V5LCBtc2dmbGcpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dnZXQocmVzLCAobG9uZykoa2V5KSwgKGxvbmcpKG1zZ2ZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXNnc25kKG1zcWlkLCBtc2dwLCBtc2dzeiwgbXNnZmxnKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dzbmQoKGxvbmcpKG1zcWlkKSwgKGxvbmcpKG1zZ3ApLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1zZ3N6KSwgKGxvbmcpKG1zZ2ZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21zZ3NuZChyZXMsIG1zcWlkLCBtc2dwLCBtc2dzeiwgbXNnZmxnKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnc25kKHJlcywgKGxvbmcpKG1zcWlkKSwgKGxvbmcpKG1zZ3ApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtc2dzeiksIChsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21zZ3Jjdihtc3FpZCwgbXNncCwgbXNnc3osIG1zZ3R5cCwgbXNnZmxnKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNncmN2KChsb25nKShtc3FpZCksIChsb25nKShtc2dwKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtc2dzeiksIChsb25nKShtc2d0eXApLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dyY3YocmVzLCBtc3FpZCwgbXNncCwgbXNnc3osIG1zZ3R5cCwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnZmxnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ3JjdihyZXMsIChsb25nKShtc3FpZCksIChsb25nKShtc2dwKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobXNnc3opLCAobG9uZykobXNndHlwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2djdGwobXNxaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ2N0bCgobG9uZykobXNxaWQpLCAobG9uZykoY21kKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21zZ2N0bChyZXMsIG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnY3RsKHJlcywgKGxvbmcpKG1zcWlkKSwgKGxvbmcpKGNtZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbWdldChrZXksIG5zZW1zLCBzZW1mbGcpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtZ2V0KChsb25nKShrZXkpLCAobG9uZykobnNlbXMpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZW1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW1nZXQocmVzLCBrZXksIG5zZW1zLCBzZW1mbGcpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbWdldChyZXMsIChsb25nKShrZXkpLCAobG9uZykobnNlbXMpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2VtZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW1vcChzZW1pZCwgc29wcywgbnNvcHMpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbW9wKChsb25nKShzZW1pZCksIChsb25nKShzb3BzKSwgKGxvbmcpKG5zb3BzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2Vtb3AocmVzLCBzZW1pZCwgc29wcywgbnNvcHMpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1vcChyZXMsIChsb25nKShzZW1pZCksIChsb25nKShzb3BzKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnNvcHMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbWN0bChzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtY3RsKChsb25nKShzZW1pZCksIChsb25nKShzZW1udW0pLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjbWQpLCAobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtY3RsKHJlcywgc2VtaWQsIHNlbW51bSwgY21kLCBhcmcpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1jdGwocmVzLCAobG9uZykoc2VtaWQpLCAobG9uZykoc2VtbnVtKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbXRpbWVkb3Aoc2VtaWQsIHNvcHMsIG5zb3BzLCB0aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtdGltZWRvcCgobG9uZykoc2VtaWQpLCAobG9uZykoc29wcyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnNvcHMpLCAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbXRpbWVkb3AocmVzLCBzZW1pZCwgc29wcywgbnNvcHMsIHRpbWVvdXQpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtdGltZWRvcChyZXMsIChsb25nKShzZW1pZCksIChsb25nKShzb3BzKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnNvcHMpLCAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2htYXQoc2htaWQsIHNobWFkZHIsIHNobWZsZykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1hdCgobG9uZykoc2htaWQpLCAobG9uZykoc2htYWRkciksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htYXQocmVzLCBzaG1pZCwgc2htYWRkciwgc2htZmxnKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdChyZXMsIChsb25nKShzaG1pZCksIChsb25nKShzaG1hZGRyKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1nZXQoa2V5LCBzaXplLCBmbGFnKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWdldCgobG9uZykoa2V5KSwgKGxvbmcpKHNpemUpLCAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NobWdldChyZXMsIGtleSwgc2l6ZSwgZmxhZykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZ2V0KHJlcywgKGxvbmcpKGtleSksIChsb25nKShzaXplKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1kdChzaG1hZGRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWR0KChsb25nKShzaG1hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htZHQocmVzLCBzaG1hZGRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1kdChyZXMsIChsb25nKShzaG1hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1jdGwoc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWN0bCgobG9uZykoc2htaWQpLCAobG9uZykoY21kKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NobWN0bChyZXMsIHNobWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htY3RsKHJlcywgKGxvbmcpKHNobWlkKSwgKGxvbmcpKGNtZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lwYyhjYWxsLCBmaXJzdCwgc2Vjb25kLCB0aGlyZCwgcHRyLCBmaWZ0aCkgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaXBjKChsb25nKShjYWxsKSwgKGxvbmcpKGZpcnN0KSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZWNvbmQpLCAobG9uZykodGhpcmQpLCAobG9uZykocHRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmaWZ0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lwYyhyZXMsIGNhbGwsIGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBwdHIsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWZ0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaXBjKHJlcywgKGxvbmcpKGNhbGwpLCAobG9uZykoZmlyc3QpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZWNvbmQpLCAobG9uZykodGhpcmQpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwdHIpLCAobG9uZykoZmlmdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX29wZW4obmFtZSwgb2ZsYWcsIG1vZGUsIGF0dHIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfb3BlbigobG9uZykobmFtZSksIChsb25nKShvZmxhZyksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShhdHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfb3BlbihyZXMsIG5hbWUsIG9mbGFnLCBtb2RlLCBhdHRyKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9vcGVuKHJlcywgKGxvbmcpKG5hbWUpLCAobG9uZykob2ZsYWcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSwgKGxvbmcpKGF0dHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX3VubGluayhuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfdW5saW5rKChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfdW5saW5rKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV91bmxpbmsocmVzLCAobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfdGltZWRzZW5kKG1xZGVzLCBtc2dfcHRyLCBtc2dfbGVuLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV90aW1lZHNlbmQoKGxvbmcpKG1xZGVzKSwgKGxvbmcpKG1zZ19wdHIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1zZ19sZW4pLCAobG9uZykobXNnX3ByaW8pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfdGltZWRzZW5kKHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV90aW1lZHNlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykobXFkZXMpLCAobG9uZykobXNnX3B0ciksIChsb25nKShtc2dfbGVuKSwgKGxvbmcpKG1zZ19wcmlvKSwgIFwKICAgICAgKGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV90aW1lZHJlY2VpdmUobXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3RpbWVkcmVjZWl2ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKG1xZGVzKSwgKGxvbmcpKG1zZ19wdHIpLCAobG9uZykobXNnX2xlbiksIChsb25nKShtc2dfcHJpbyksICAgICAgIFwKICAgICAgKGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfdGltZWRyZWNlaXZlKHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV90aW1lZHJlY2VpdmUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykobXFkZXMpLCAobG9uZykobXNnX3B0ciksIChsb25nKShtc2dfbGVuKSwgKGxvbmcpKG1zZ19wcmlvKSwgIFwKICAgICAgKGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9ub3RpZnkobXFkZXMsIG5vdGlmaWNhdGlvbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX25vdGlmeSgobG9uZykobXFkZXMpLCAobG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfbm90aWZ5KHJlcywgbXFkZXMsIG5vdGlmaWNhdGlvbikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9ub3RpZnkocmVzLCAobG9uZykobXFkZXMpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5vdGlmaWNhdGlvbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfZ2V0c2V0YXR0cihtcWRlcywgbXFzdGF0LCBvbXFzdGF0KSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9nZXRzZXRhdHRyKChsb25nKShtcWRlcyksIChsb25nKShtcXN0YXQpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvbXFzdGF0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfZ2V0c2V0YXR0cihyZXMsIG1xZGVzLCBtcXN0YXQsIG9tcXN0YXQpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9nZXRzZXRhdHRyKHJlcywgKGxvbmcpKG1xZGVzKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtcXN0YXQpLCAobG9uZykob21xc3RhdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGNpY29uZmlnX2lvYmFzZSh3aGljaCwgYnVzLCBkZXZmbikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wY2ljb25maWdfaW9iYXNlKChsb25nKSh3aGljaCksIChsb25nKShidXMpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShkZXZmbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BjaWNvbmZpZ19pb2Jhc2UocmVzLCB3aGljaCwgYnVzLCBkZXZmbikgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX2lvYmFzZShyZXMsIChsb25nKSh3aGljaCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYnVzKSwgKGxvbmcpKGRldmZuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wY2ljb25maWdfcmVhZChidXMsIGRmbiwgb2ZmLCBsZW4sIGJ1ZikgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BjaWNvbmZpZ19yZWFkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGJ1cyksIChsb25nKShkZm4pLCAobG9uZykob2ZmKSwgKGxvbmcpKGxlbiksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wY2ljb25maWdfcmVhZChyZXMsIGJ1cywgZGZuLCBvZmYsIGxlbiwgYnVmKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BjaWNvbmZpZ19yZWFkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShidXMpLCAobG9uZykoZGZuKSwgKGxvbmcpKG9mZiksIChsb25nKShsZW4pLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wY2ljb25maWdfd3JpdGUoYnVzLCBkZm4sIG9mZiwgbGVuLCBidWYpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BjaWNvbmZpZ193cml0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGJ1cyksIChsb25nKShkZm4pLCAobG9uZykob2ZmKSwgKGxvbmcpKGxlbiksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wY2ljb25maWdfd3JpdGUocmVzLCBidXMsIGRmbiwgb2ZmLCBsZW4sIGJ1ZikgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BjaWNvbmZpZ193cml0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShidXMpLCAobG9uZykoZGZuKSwgKGxvbmcpKG9mZiksIChsb25nKShsZW4pLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zd2Fwb24oc3BlY2lhbGZpbGUsIHN3YXBfZmxhZ3MpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBvbigobG9uZykoc3BlY2lhbGZpbGUpLCAobG9uZykoc3dhcF9mbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N3YXBvbihyZXMsIHNwZWNpYWxmaWxlLCBzd2FwX2ZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3dhcG9uKHJlcywgKGxvbmcpKHNwZWNpYWxmaWxlKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzd2FwX2ZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zd2Fwb2ZmKHNwZWNpYWxmaWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBvZmYoKGxvbmcpKHNwZWNpYWxmaWxlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3dhcG9mZihyZXMsIHNwZWNpYWxmaWxlKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zd2Fwb2ZmKHJlcywgKGxvbmcpKHNwZWNpYWxmaWxlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeXNjdGwoYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2N0bCgobG9uZykoYXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2N0bChyZXMsIGFyZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzY3RsKHJlcywgKGxvbmcpKGFyZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5c2luZm8oaW5mbykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3lzaW5mbygobG9uZykoaW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2luZm8ocmVzLCBpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzaW5mbyhyZXMsIChsb25nKShpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeXNmcyhvcHRpb24sIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2ZzKChsb25nKShvcHRpb24pLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3lzZnMocmVzLCBvcHRpb24sIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNmcyhyZXMsIChsb25nKShvcHRpb24pLCAobG9uZykoYXJnMSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3lzbG9nKHR5cGUsIGJ1ZiwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNsb2coKGxvbmcpKHR5cGUpLCAobG9uZykoYnVmKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2xvZyhyZXMsIHR5cGUsIGJ1ZiwgbGVuKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzbG9nKHJlcywgKGxvbmcpKHR5cGUpLCAobG9uZykoYnVmKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VzZWxpYihsaWJyYXJ5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXNlbGliKChsb25nKShsaWJyYXJ5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXNlbGliKHJlcywgbGlicmFyeSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91c2VsaWIocmVzLCAobG9uZykobGlicmFyeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmlfc3lzY2FsbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uaV9zeXNjYWxsKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfbmlfc3lzY2FsbChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uaV9zeXNjYWxsKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wdHJhY2UocmVxdWVzdCwgcGlkLCBhZGRyLCBkYXRhKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B0cmFjZSgobG9uZykocmVxdWVzdCksIChsb25nKShwaWQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYWRkciksIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHRyYWNlKHJlcywgcmVxdWVzdCwgcGlkLCBhZGRyLCBkYXRhKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wdHJhY2UocmVzLCAobG9uZykocmVxdWVzdCksIChsb25nKShwaWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFkZHIpLCAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWRkX2tleShfdHlwZSwgX2Rlc2NyaXB0aW9uLCBfcGF5bG9hZCwgcGxlbiwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0cmluZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZGRfa2V5KChsb25nKShfdHlwZSksIChsb25nKShfZGVzY3JpcHRpb24pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShfcGF5bG9hZCksIChsb25nKShwbGVuKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShkZXN0cmluZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWRkX2tleShyZXMsIF90eXBlLCBfZGVzY3JpcHRpb24sIF9wYXlsb2FkLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGVuLCBkZXN0cmluZ2lkKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hZGRfa2V5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoX3R5cGUpLCAobG9uZykoX2Rlc2NyaXB0aW9uKSwgKGxvbmcpKF9wYXlsb2FkKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHBsZW4pLCAobG9uZykoZGVzdHJpbmdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVxdWVzdF9rZXkoX3R5cGUsIF9kZXNjcmlwdGlvbiwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NhbGxvdXRfaW5mbywgZGVzdHJpbmdpZCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZXF1ZXN0X2tleSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShfdHlwZSksIChsb25nKShfZGVzY3JpcHRpb24pLCAobG9uZykoX2NhbGxvdXRfaW5mbyksICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShkZXN0cmluZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVxdWVzdF9rZXkocmVzLCBfdHlwZSwgX2Rlc2NyaXB0aW9uLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NhbGxvdXRfaW5mbywgZGVzdHJpbmdpZCkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZXF1ZXN0X2tleSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoX3R5cGUpLCAobG9uZykoX2Rlc2NyaXB0aW9uKSwgKGxvbmcpKF9jYWxsb3V0X2luZm8pLCAgICAgICAgIFwKICAgICAgKGxvbmcpKGRlc3RyaW5naWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2tleWN0bChjbWQsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa2V5Y3RsKChsb25nKShjbWQpLCAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSwgKGxvbmcpKGFyZzUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9rZXljdGwocmVzLCBjbWQsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2tleWN0bChyZXMsIChsb25nKShjbWQpLCAobG9uZykoYXJnMiksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMyksIChsb25nKShhcmc0KSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9wcmlvX3NldCh3aGljaCwgd2hvLCBpb3ByaW8pICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb3ByaW9fc2V0KChsb25nKSh3aGljaCksIChsb25nKSh3aG8pLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShpb3ByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb3ByaW9fc2V0KHJlcywgd2hpY2gsIHdobywgaW9wcmlvKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcHJpb19zZXQocmVzLCAobG9uZykod2hpY2gpLCAobG9uZykod2hvKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGlvcHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9wcmlvX2dldCh3aGljaCwgd2hvKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb3ByaW9fZ2V0KChsb25nKSh3aGljaCksIChsb25nKSh3aG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb3ByaW9fZ2V0KHJlcywgd2hpY2gsIHdobykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcHJpb19nZXQocmVzLCAobG9uZykod2hpY2gpLCAobG9uZykod2hvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRfbWVtcG9saWN5KG1vZGUsIG5tYXNrLCBtYXhub2RlKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF9tZW1wb2xpY3koKGxvbmcpKG1vZGUpLCAobG9uZykobm1hc2spLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1heG5vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRfbWVtcG9saWN5KHJlcywgbW9kZSwgbm1hc2ssIG1heG5vZGUpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldF9tZW1wb2xpY3kocmVzLCAobG9uZykobW9kZSksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5tYXNrKSwgKGxvbmcpKG1heG5vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21pZ3JhdGVfcGFnZXMocGlkLCBtYXhub2RlLCBmcm9tLCB0bykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWlncmF0ZV9wYWdlcygobG9uZykocGlkKSwgKGxvbmcpKG1heG5vZGUpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZnJvbSksIChsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pZ3JhdGVfcGFnZXMocmVzLCBwaWQsIG1heG5vZGUsIGZyb20sIHRvKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWlncmF0ZV9wYWdlcyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHBpZCksIChsb25nKShtYXhub2RlKSwgKGxvbmcpKGZyb20pLCAobG9uZykodG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21vdmVfcGFnZXMocGlkLCBucl9wYWdlcywgcGFnZXMsIG5vZGVzLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW92ZV9wYWdlcygobG9uZykocGlkKSwgKGxvbmcpKG5yX3BhZ2VzKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocGFnZXMpLCAobG9uZykobm9kZXMpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3RhdHVzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW92ZV9wYWdlcyhyZXMsIHBpZCwgbnJfcGFnZXMsIHBhZ2VzLCBub2RlcywgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tb3ZlX3BhZ2VzKHJlcywgKGxvbmcpKHBpZCksIChsb25nKShucl9wYWdlcyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwYWdlcyksIChsb25nKShub2RlcyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdGF0dXMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21iaW5kKHN0YXJ0LCBsZW4sIG1vZGUsIG5tYXNrLCBtYXhub2RlLCBmbGFncykgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWJpbmQoKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksIChsb25nKShtb2RlKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5tYXNrKSwgKGxvbmcpKG1heG5vZGUpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWJpbmQocmVzLCBzdGFydCwgbGVuLCBtb2RlLCBubWFzaywgbWF4bm9kZSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tYmluZChyZXMsIChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShubWFzayksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobWF4bm9kZSksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0X21lbXBvbGljeShwb2xpY3ksIG5tYXNrLCBtYXhub2RlLCBhZGRyLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRfbWVtcG9saWN5KChsb25nKShwb2xpY3kpLCAobG9uZykobm1hc2spLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtYXhub2RlKSwgKGxvbmcpKGFkZHIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldF9tZW1wb2xpY3kocmVzLCBwb2xpY3ksIG5tYXNrLCBtYXhub2RlLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkciwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0X21lbXBvbGljeShyZXMsIChsb25nKShwb2xpY3kpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobm1hc2spLCAobG9uZykobWF4bm9kZSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYWRkciksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW5vdGlmeV9pbml0KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X2luaXQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbm90aWZ5X2luaXQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lub3RpZnlfaW5pdChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW5vdGlmeV9pbml0MShmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X2luaXQxKChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lub3RpZnlfaW5pdDEocmVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5vdGlmeV9pbml0MShyZXMsIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW5vdGlmeV9hZGRfd2F0Y2goZmQsIHBhdGgsIG1hc2spICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X2FkZF93YXRjaCgobG9uZykoZmQpLCAobG9uZykocGF0aCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lub3RpZnlfYWRkX3dhdGNoKHJlcywgZmQsIHBhdGgsIG1hc2spICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5vdGlmeV9hZGRfd2F0Y2gocmVzLCAobG9uZykoZmQpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBhdGgpLCAobG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW5vdGlmeV9ybV93YXRjaChmZCwgd2QpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X3JtX3dhdGNoKChsb25nKShmZCksIChsb25nKSh3ZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lub3RpZnlfcm1fd2F0Y2gocmVzLCBmZCwgd2QpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5vdGlmeV9ybV93YXRjaChyZXMsIChsb25nKShmZCksIChsb25nKSh3ZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3B1X3J1bihmZCwgdW5wYywgdXN0YXR1cykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zcHVfcnVuKChsb25nKShmZCksIChsb25nKSh1bnBjKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1c3RhdHVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3B1X3J1bihyZXMsIGZkLCB1bnBjLCB1c3RhdHVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zcHVfcnVuKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHVucGMpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1c3RhdHVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zcHVfY3JlYXRlKG5hbWUsIGZsYWdzLCBtb2RlLCBmZCkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NwdV9jcmVhdGUoKGxvbmcpKG5hbWUpLCAobG9uZykoZmxhZ3MpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpLCAobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zcHVfY3JlYXRlKHJlcywgbmFtZSwgZmxhZ3MsIG1vZGUsIGZkKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NwdV9jcmVhdGUocmVzLCAobG9uZykobmFtZSksIChsb25nKShmbGFncyksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpLCAobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rbm9kYXQoZGZkLCBmaWxlbmFtZSwgbW9kZSwgZGV2KSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtub2RhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta25vZGF0KHJlcywgZGZkLCBmaWxlbmFtZSwgbW9kZSwgZGV2KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rbm9kYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpLCAobG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2RpcmF0KGRmZCwgcGF0aG5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyYXQoKGxvbmcpKGRmZCksIChsb25nKShwYXRobmFtZSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta2RpcmF0KHJlcywgZGZkLCBwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rZGlyYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKHBhdGhuYW1lKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VubGlua2F0KGRmZCwgcGF0aG5hbWUsIGZsYWcpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5saW5rYXQoKGxvbmcpKGRmZCksIChsb25nKShwYXRobmFtZSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bmxpbmthdChyZXMsIGRmZCwgcGF0aG5hbWUsIGZsYWcpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubGlua2F0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShwYXRobmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW1saW5rYXQob2xkbmFtZSwgbmV3ZGZkLCBuZXduYW1lKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdCgobG9uZykob2xkbmFtZSksIChsb25nKShuZXdkZmQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bWxpbmthdChyZXMsIG9sZG5hbWUsIG5ld2RmZCwgbmV3bmFtZSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGlua2F0KHJlcywgKGxvbmcpKG9sZG5hbWUpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdkZmQpLCAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGlua2F0KG9sZGRmZCwgb2xkbmFtZSwgbmV3ZGZkLCBuZXduYW1lLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saW5rYXQoKGxvbmcpKG9sZGRmZCksIChsb25nKShvbGRuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld2RmZCksIChsb25nKShuZXduYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlua2F0KHJlcywgb2xkZGZkLCBvbGRuYW1lLCBuZXdkZmQsIG5ld25hbWUsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW5rYXQocmVzLCAobG9uZykob2xkZGZkKSwgKGxvbmcpKG9sZG5hbWUpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld2RmZCksIChsb25nKShuZXduYW1lKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZW5hbWVhdChvbGRkZmQsIG9sZG5hbWUsIG5ld2RmZCwgbmV3bmFtZSkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbmFtZWF0KChsb25nKShvbGRkZmQpLCAobG9uZykob2xkbmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdkZmQpLCAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlbmFtZWF0KHJlcywgb2xkZGZkLCBvbGRuYW1lLCBuZXdkZmQsICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQocmVzLCAobG9uZykob2xkZGZkKSwgKGxvbmcpKG9sZG5hbWUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld2RmZCksIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mdXRpbWVzYXQoZGZkLCBmaWxlbmFtZSwgdXRpbWVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Z1dGltZXNhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodXRpbWVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnV0aW1lc2F0KHJlcywgZGZkLCBmaWxlbmFtZSwgdXRpbWVzKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdXRpbWVzYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHV0aW1lcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmFjY2Vzc2F0KGRmZCwgZmlsZW5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mYWNjZXNzYXQoKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mYWNjZXNzYXQocmVzLCBkZmQsIGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZhY2Nlc3NhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNobW9kYXQoZGZkLCBmaWxlbmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2RhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG1vZGF0KHJlcywgZGZkLCBmaWxlbmFtZSwgbW9kZSkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNobW9kYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bmF0KGRmZCwgZmlsZW5hbWUsIHVzZXIsIGdyb3VwLCBmbGFnKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duYXQoKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzZXIpLCAobG9uZykoZ3JvdXApLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2hvd25hdChyZXMsIGRmZCwgZmlsZW5hbWUsIHVzZXIsIGdyb3VwLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG93bmF0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1c2VyKSwgKGxvbmcpKGdyb3VwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuYXQoZGZkLCBmaWxlbmFtZSwgZmxhZ3MsIG1vZGUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5hdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29wZW5hdChyZXMsIGRmZCwgZmlsZW5hbWUsIGZsYWdzLCBtb2RlKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3BlbmF0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncyksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uZXdmc3RhdGF0KGRmZCwgZmlsZW5hbWUsIHN0YXRidWYsIGZsYWcpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2ZzdGF0YXQoKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN0YXRidWYpLCAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X25ld2ZzdGF0YXQocmVzLCBkZmQsIGZpbGVuYW1lLCBzdGF0YnVmLCBmbGFnKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3ZnN0YXRhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3RhdGJ1ZiksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mc3RhdGF0NjQoZGZkLCBmaWxlbmFtZSwgc3RhdGJ1ZiwgZmxhZykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0YXQ2NCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3RhdGJ1ZiksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnN0YXRhdDY0KHJlcywgZGZkLCBmaWxlbmFtZSwgc3RhdGJ1ZiwgZmxhZykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGF0NjQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN0YXRidWYpLCAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZGxpbmthdChkZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGlua2F0KChsb25nKShkZmQpLCAobG9uZykocGF0aCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpLCAobG9uZykoYnVmc2l6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZGxpbmthdChyZXMsIGRmZCwgcGF0aCwgYnVmLCBidWZzaXopICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkbGlua2F0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidWYpLCAobG9uZykoYnVmc2l6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91dGltZW5zYXQoZGZkLCBmaWxlbmFtZSwgdXRpbWVzLCBmbGFncykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3V0aW1lbnNhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodXRpbWVzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXRpbWVuc2F0KHJlcywgZGZkLCBmaWxlbmFtZSwgdXRpbWVzLCBmbGFncykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZW5zYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHV0aW1lcyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdW5zaGFyZSh1bnNoYXJlX2ZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bnNoYXJlKChsb25nKSh1bnNoYXJlX2ZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW5zaGFyZShyZXMsIHVuc2hhcmVfZmxhZ3MpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bnNoYXJlKHJlcywgKGxvbmcpKHVuc2hhcmVfZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NwbGljZShmZF9pbiwgb2ZmX2luLCBmZF9vdXQsIG9mZl9vdXQsIGxlbiwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3BsaWNlKChsb25nKShmZF9pbiksIChsb25nKShvZmZfaW4pLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmZF9vdXQpLCAobG9uZykob2ZmX291dCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShsZW4pLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zcGxpY2UocmVzLCBmZF9pbiwgb2ZmX2luLCBmZF9vdXQsIG9mZl9vdXQsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NwbGljZShyZXMsIChsb25nKShmZF9pbiksIChsb25nKShvZmZfaW4pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmRfb3V0KSwgKGxvbmcpKG9mZl9vdXQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobGVuKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92bXNwbGljZShmZCwgaW92LCBucl9zZWdzLCBmbGFncykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Ztc3BsaWNlKChsb25nKShmZCksIChsb25nKShpb3YpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShucl9zZWdzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfdm1zcGxpY2UocmVzLCBmZCwgaW92LCBucl9zZWdzLCBmbGFncykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92bXNwbGljZShyZXMsIChsb25nKShmZCksIChsb25nKShpb3YpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnJfc2VncyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGVlKGZkaW4sIGZkb3V0LCBsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90ZWUoKGxvbmcpKGZkaW4pLCAobG9uZykoZmRvdXQpLCAobG9uZykobGVuKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGVlKHJlcywgZmRpbiwgZmRvdXQsIGxlbiwgZmxhZ3MpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90ZWUocmVzLCAobG9uZykoZmRpbiksIChsb25nKShmZG91dCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGxlbiksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0X3JvYnVzdF9saXN0KHBpZCwgaGVhZF9wdHIsIGxlbl9wdHIpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRfcm9idXN0X2xpc3QoKGxvbmcpKHBpZCksIChsb25nKShoZWFkX3B0ciksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGxlbl9wdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRfcm9idXN0X2xpc3QocmVzLCBwaWQsIGhlYWRfcHRyLCBsZW5fcHRyKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldF9yb2J1c3RfbGlzdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShwaWQpLCAobG9uZykoaGVhZF9wdHIpLCAobG9uZykobGVuX3B0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0X3JvYnVzdF9saXN0KGhlYWQsIGxlbikgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRfcm9idXN0X2xpc3QoKGxvbmcpKGhlYWQpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0X3JvYnVzdF9saXN0KHJlcywgaGVhZCwgbGVuKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRfcm9idXN0X2xpc3QocmVzLCAobG9uZykoaGVhZCksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGNwdShjcHUsIG5vZGUsIGNhY2hlKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y3B1KChsb25nKShjcHUpLCAobG9uZykobm9kZSksIChsb25nKShjYWNoZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGNwdShyZXMsIGNwdSwgbm9kZSwgY2FjaGUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Y3B1KHJlcywgKGxvbmcpKGNwdSksIChsb25nKShub2RlKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjYWNoZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnbmFsZmQodWZkLCB1c2VyX21hc2ssIHNpemVtYXNrKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWduYWxmZCgobG9uZykodWZkKSwgKGxvbmcpKHVzZXJfbWFzayksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZW1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWduYWxmZChyZXMsIHVmZCwgdXNlcl9tYXNrLCBzaXplbWFzaykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ25hbGZkKHJlcywgKGxvbmcpKHVmZCksIChsb25nKSh1c2VyX21hc2spLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplbWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnbmFsZmQ0KHVmZCwgdXNlcl9tYXNrLCBzaXplbWFzaywgZmxhZ3MpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWduYWxmZDQoKGxvbmcpKHVmZCksIChsb25nKSh1c2VyX21hc2spLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemVtYXNrKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lnbmFsZmQ0KHJlcywgdWZkLCB1c2VyX21hc2ssIHNpemVtYXNrLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWduYWxmZDQocmVzLCAobG9uZykodWZkKSwgKGxvbmcpKHVzZXJfbWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemVtYXNrKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcmZkX2NyZWF0ZShjbG9ja2lkLCBmbGFncykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyZmRfY3JlYXRlKChsb25nKShjbG9ja2lkKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJmZF9jcmVhdGUocmVzLCBjbG9ja2lkLCBmbGFncykgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcmZkX2NyZWF0ZShyZXMsIChsb25nKShjbG9ja2lkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyZmRfc2V0dGltZSh1ZmQsIGZsYWdzLCB1dG1yLCBvdG1yKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJmZF9zZXR0aW1lKChsb25nKSh1ZmQpLCAobG9uZykoZmxhZ3MpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1dG1yKSwgKGxvbmcpKG90bXIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcmZkX3NldHRpbWUocmVzLCB1ZmQsIGZsYWdzLCB1dG1yLCBvdG1yKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyZmRfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKSh1ZmQpLCAobG9uZykoZmxhZ3MpLCAobG9uZykodXRtciksIChsb25nKShvdG1yKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcmZkX2dldHRpbWUodWZkLCBvdG1yKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyZmRfZ2V0dGltZSgobG9uZykodWZkKSwgKGxvbmcpKG90bXIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcmZkX2dldHRpbWUocmVzLCB1ZmQsIG90bXIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyZmRfZ2V0dGltZShyZXMsIChsb25nKSh1ZmQpLCAobG9uZykob3RtcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXZlbnRmZChjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ldmVudGZkKChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V2ZW50ZmQocmVzLCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXZlbnRmZChyZXMsIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXZlbnRmZDIoY291bnQsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ldmVudGZkMigobG9uZykoY291bnQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ldmVudGZkMihyZXMsIGNvdW50LCBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V2ZW50ZmQyKHJlcywgKGxvbmcpKGNvdW50KSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRfcmVhZGRpcihhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZF9yZWFkZGlyKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkX3JlYWRkaXIocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfcmVhZGRpcihyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHNlbGVjdDYoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wc2VsZWN0NigobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNCksIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHNlbGVjdDYocmVzLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wc2VsZWN0NihyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNCksIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wcG9sbChhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Bwb2xsKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAobG9uZykoYXJnMiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmczKSwgKGxvbmcpKGFyZzQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcG9sbChyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bwb2xsKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW5jZnMoZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bmNmcygobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zeW5jZnMocmVzLCBmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bmNmcyhyZXMsIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGVyZl9ldmVudF9vcGVuKGF0dHJfdXB0ciwgcGlkLCBjcHUsIGdyb3VwX2ZkLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wZXJmX2V2ZW50X29wZW4oKGxvbmcpKGF0dHJfdXB0ciksIChsb25nKShwaWQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNwdSksIChsb25nKShncm91cF9mZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcGVyZl9ldmVudF9vcGVuKHJlcywgYXR0cl91cHRyLCBwaWQsIGNwdSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX2ZkLCBmbGFncykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wZXJmX2V2ZW50X29wZW4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoYXR0cl91cHRyKSwgKGxvbmcpKHBpZCksIChsb25nKShjcHUpLCAobG9uZykoZ3JvdXBfZmQpLCAgICAgIFwKICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbWFwX3Bnb2ZmKGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCBwZ29mZikgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21tYXBfcGdvZmYoKGxvbmcpKGFkZHIpLCAobG9uZykobGVuKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHByb3QpLCAobG9uZykoZmxhZ3MpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZkKSwgKGxvbmcpKHBnb2ZmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW1hcF9wZ29mZihyZXMsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ29mZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbWFwX3Bnb2ZmKHJlcywgKGxvbmcpKGFkZHIpLCAobG9uZykobGVuKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwcm90KSwgKGxvbmcpKGZsYWdzKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmZCksIChsb25nKShwZ29mZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkX21tYXAoYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGRfbW1hcCgobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkX21tYXAocmVzLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfbW1hcChyZXMsIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25hbWVfdG9faGFuZGxlX2F0KGRmZCwgbmFtZSwgaGFuZGxlLCBtbnRfaWQsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmFtZV90b19oYW5kbGVfYXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoZGZkKSwgKGxvbmcpKG5hbWUpLCAobG9uZykoaGFuZGxlKSwgKGxvbmcpKG1udF9pZCksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmFtZV90b19oYW5kbGVfYXQocmVzLCBkZmQsIG5hbWUsIGhhbmRsZSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW50X2lkLCBmbGFnKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uYW1lX3RvX2hhbmRsZV9hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKG5hbWUpLCAobG9uZykoaGFuZGxlKSwgKGxvbmcpKG1udF9pZCksICAgICAgICAgIFwKICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29wZW5fYnlfaGFuZGxlX2F0KG1vdW50ZGlyZmQsIGhhbmRsZSwgZmxhZ3MpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3Blbl9ieV9oYW5kbGVfYXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykobW91bnRkaXJmZCksIChsb25nKShoYW5kbGUpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vcGVuX2J5X2hhbmRsZV9hdChyZXMsIG1vdW50ZGlyZmQsIGhhbmRsZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29wZW5fYnlfaGFuZGxlX2F0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShtb3VudGRpcmZkKSwgKGxvbmcpKGhhbmRsZSksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0bnMoZmQsIG5zdHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRucygobG9uZykoZmQpLCAobG9uZykobnN0eXBlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0bnMocmVzLCBmZCwgbnN0eXBlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRucyhyZXMsIChsb25nKShmZCksIChsb25nKShuc3R5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2Nlc3Nfdm1fcmVhZHYocGlkLCBsdmVjLCBsaW92Y250LCBydmVjLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlvdmNudCwgZmxhZ3MpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvY2Vzc192bV9yZWFkdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocGlkKSwgKGxvbmcpKGx2ZWMpLCAobG9uZykobGlvdmNudCksIChsb25nKShydmVjKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocmlvdmNudCksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Byb2Nlc3Nfdm1fcmVhZHYocmVzLCBwaWQsIGx2ZWMsIGxpb3ZjbnQsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZlYywgcmlvdmNudCwgZmxhZ3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJvY2Vzc192bV9yZWFkdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHBpZCksIChsb25nKShsdmVjKSwgKGxvbmcpKGxpb3ZjbnQpLCAobG9uZykocnZlYyksICAgICAgICAgICBcCiAgICAgIChsb25nKShyaW92Y250KSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wcm9jZXNzX3ZtX3dyaXRldihwaWQsIGx2ZWMsIGxpb3ZjbnQsIHJ2ZWMsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaW92Y250LCBmbGFncykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Byb2Nlc3Nfdm1fd3JpdGV2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHBpZCksIChsb25nKShsdmVjKSwgKGxvbmcpKGxpb3ZjbnQpLCAobG9uZykocnZlYyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHJpb3ZjbnQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcm9jZXNzX3ZtX3dyaXRldihyZXMsIHBpZCwgbHZlYywgbGlvdmNudCwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydmVjLCByaW92Y250LCBmbGFncykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Byb2Nlc3Nfdm1fd3JpdGV2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShwaWQpLCAobG9uZykobHZlYyksIChsb25nKShsaW92Y250KSwgKGxvbmcpKHJ2ZWMpLCAgICAgICAgICAgXAogICAgICAobG9uZykocmlvdmNudCksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZm9yaygpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZm9yaygpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZvcmsocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZm9yayhyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdmZvcmsoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Zmb3JrKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdmZvcmsocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92Zm9yayhyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnYWN0aW9uKHNpZ251bSwgYWN0LCBvbGRhY3QpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdhY3Rpb24oKGxvbmcpc2lnbnVtLCAobG9uZylhY3QsIChsb25nKW9sZGFjdCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lnYWN0aW9uKHJlcywgc2lnbnVtLCBhY3QsIG9sZGFjdCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdhY3Rpb24ocmVzLCAobG9uZylzaWdudW0sIChsb25nKWFjdCwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpb2xkYWN0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3NpZ2FjdGlvbihzaWdudW0sIGFjdCwgb2xkYWN0LCBzeikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lnYWN0aW9uKChsb25nKXNpZ251bSwgKGxvbmcpYWN0LCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKW9sZGFjdCwgKGxvbmcpc3opCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3J0X3NpZ2FjdGlvbihyZXMsIHNpZ251bSwgYWN0LCBvbGRhY3QsIHN6KSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfc2lnYWN0aW9uKHJlcywgKGxvbmcpc2lnbnVtLCAobG9uZylhY3QsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKW9sZGFjdCwgKGxvbmcpc3opCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnYWx0c3RhY2soc3MsIG9zcykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdhbHRzdGFjaygobG9uZylzcywgKGxvbmcpb3NzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWdhbHRzdGFjayhyZXMsIHNzLCBvc3MpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ2FsdHN0YWNrKHJlcywgKGxvbmcpc3MsIChsb25nKW9zcykKCi8vIEFuZCBub3cgYSBmZXcgc3lzY2FsbHMgd2UgZG9uJ3QgaGFuZGxlIHlldC4KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hZnNfc3lzY2FsbCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYXJjaF9wcmN0bCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYnJlYWsoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nob3duMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb25lKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jcmVhdGVfbW9kdWxlKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF9jdGxfb2xkKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF93YWl0X29sZCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXhlY3ZlKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mYWR2aXNlNjQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZhZHZpc2U2NF82NCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmFsbG9jYXRlKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mYW5vdGlmeV9pbml0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mYW5vdGlmeV9tYXJrKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2hvd24zMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnRpbWUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z0cnVuY2F0ZTY0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mdXRleCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0ZWdpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRldWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRncm91cHMzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0X2tlcm5lbF9zeW1zKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwbXNnKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyZXNnaWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cmVzdWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldF90aHJlYWRfYXJlYSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2d0dHkoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lkbGUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvcGwoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xjaG93bjMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbGxzZWVrKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9sb2NrKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tYWR2aXNlMSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW1hcCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW1hcDIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21vZGlmeV9sZHQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21weCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX25ld3NlbGVjdCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmZzc2VydmN0bCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkZnN0YXQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZGxzdGF0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRvbGR1bmFtZSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkc3RhdCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJjdGwoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2YoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2ZpbCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHV0cG1zZyguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcXVlcnlfbW9kdWxlKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWFkYWhlYWQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWRkaXIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3NpZ3JldHVybiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lnc3VzcGVuZCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VjdXJpdHkoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGZzZ2lkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGZzdWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGdpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRncm91cHMzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVnaWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVzZ2lkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlc3VpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZXVpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRfdGhyZWFkX2FyZWEoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHVpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdyZXR1cm4oLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NpZ3N1c3BlbmQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N0dHkoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5bmNfZmlsZV9yYW5nZSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX3N5c2N0bCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdHJ1bmNhdGU2NCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdHV4Y2FsbCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdWdldHJsaW1pdCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdWxpbWl0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bW91bnQyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92bTg2KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92bTg2b2xkKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92c2VydmVyKC4uLikKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Fmc19zeXNjYWxsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hcmNoX3ByY3RsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9icmVhayhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hvd24zMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2xvbmUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NyZWF0ZV9tb2R1bGUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Vwb2xsX2N0bF9vbGQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Vwb2xsX3dhaXRfb2xkKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leGVjdmUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZhZHZpc2U2NChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmFkdmlzZTY0XzY0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mYWxsb2NhdGUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Zhbm90aWZ5X2luaXQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Zhbm90aWZ5X21hcmsocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bjMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mdGltZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnRydW5jYXRlNjQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Z1dGV4KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRlZ2lkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGV1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0Z2lkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdyb3VwczMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRfa2VybmVsX3N5bXMocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBtc2cocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJlc2dpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyZXN1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0X3RocmVhZF9hcmVhKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXR1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ3R0eShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaWRsZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW9wbChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNob3duMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sbHNlZWsocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xvY2socmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21hZHZpc2UxKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbWFwMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW1hcChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW9kaWZ5X2xkdChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXB4KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbmV3c2VsZWN0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZnNzZXJ2Y3RsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGRmc3RhdChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkbHN0YXQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZG9sZHVuYW1lKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGRzdGF0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcmN0bChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJvZmlsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcm9mKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wdXRwbXNnKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9xdWVyeV9tb2R1bGUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlYWRhaGVhZChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZGRpcihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcnRfc2lncmV0dXJuKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWdzdXNwZW5kKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZWN1cml0eShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZnNnaWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZnN1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z2lkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGdyb3VwczMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZWdpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXNnaWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmVzdWlkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJldWlkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldF90aHJlYWRfYXJlYShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0dWlkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NpZ3JldHVybihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lnc3VzcGVuZChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3R0eShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3luY19maWxlX3JhbmdlKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc3lzY3RsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90cnVuY2F0ZTY0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90dXhjYWxsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91Z2V0cmxpbWl0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bGltaXQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Vtb3VudDIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ZtODZvbGQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ZtODYocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ZzZXJ2ZXIocmVzLCAuLi4pCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8gUHJpdmF0ZSBkZWNsYXJhdGlvbnMuIERvIG5vdCBjYWxsIGRpcmVjdGx5IGZyb20gdXNlciBjb2RlLiBVc2UgbWFjcm9zIGFib3ZlLgp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZShsb25nIHRsb2MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWUobG9uZyByZXMsIGxvbmcgdGxvYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGltZShsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0aW1lKGxvbmcgcmVzLCBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0dGltZW9mZGF5KGxvbmcgdHYsIGxvbmcgdHopOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHRpbWVvZmRheShsb25nIHJlcywgbG9uZyB0diwgbG9uZyB0eik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR0aW1lb2ZkYXkobG9uZyB0diwgbG9uZyB0eik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dGltZW9mZGF5KGxvbmcgcmVzLCBsb25nIHR2LCBsb25nIHR6KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FkanRpbWV4KGxvbmcgdHhjX3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FkanRpbWV4KGxvbmcgcmVzLCBsb25nIHR4Y19wKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVzKGxvbmcgdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXMobG9uZyByZXMsIGxvbmcgdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR0aWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR0aWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmFub3NsZWVwKGxvbmcgcnF0cCwgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uYW5vc2xlZXAobG9uZyByZXMsIGxvbmcgcnF0cCwgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FsYXJtKGxvbmcgc2Vjb25kcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWxhcm0obG9uZyByZXMsIGxvbmcgc2Vjb25kcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwaWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwaWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHBpZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBwaWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0dWlkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGV1aWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdpZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRlZ2lkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0ZWdpZChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXN1aWQobG9uZyBydWlkLCBsb25nIGV1aWQsIGxvbmcgc3VpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmVzdWlkKGxvbmcgcmVzLCBsb25nIHJ1aWQsIGxvbmcgZXVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc2dpZChsb25nIHJnaWQsIGxvbmcgZWdpZCwgbG9uZyBzZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyZXNnaWQobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdpZChsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGdpZChsb25nIHJlcywgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdycCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBncnAobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c2lkKGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzaWQobG9uZyByZXMsIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdyb3Vwcyhsb25nIGdpZHNldHNpemUsIGxvbmcgZ3JvdXBsaXN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRncm91cHMobG9uZyByZXMsIGxvbmcgZ2lkc2V0c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVnaWQobG9uZyByZ2lkLCBsb25nIGVnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlZ2lkKGxvbmcgcmVzLCBsb25nIHJnaWQsIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQobG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdpZChsb25nIHJlcywgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmV1aWQobG9uZyBydWlkLCBsb25nIGV1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkKGxvbmcgcmVzLCBsb25nIHJ1aWQsIGxvbmcgZXVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR1aWQobG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHVpZChsb25nIHJlcywgbG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzdWlkKGxvbmcgcnVpZCwgbG9uZyBldWlkLCBsb25nIHN1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlc3VpZChsb25nIHJlcywgbG9uZyBydWlkLCBsb25nIGV1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3VpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXNnaWQobG9uZyByZ2lkLCBsb25nIGVnaWQsIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVzZ2lkKGxvbmcgcmVzLCBsb25nIHJnaWQsIGxvbmcgZWdpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGZzdWlkKGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc3VpZChsb25nIHJlcywgbG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZnNnaWQobG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzZ2lkKGxvbmcgcmVzLCBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRwZ2lkKGxvbmcgcGlkLCBsb25nIHBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHBnaWQobG9uZyByZXMsIGxvbmcgcGlkLCBsb25nIHBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c2lkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0c2lkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdyb3Vwcyhsb25nIGdpZHNldHNpemUsIGxvbmcgZ3JvdXBsaXN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMobG9uZyByZXMsIGxvbmcgZ2lkc2V0c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjdChsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY3QobG9uZyByZXMsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jYXBnZXQobG9uZyBoZWFkZXIsIGxvbmcgZGF0YXB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2FwZ2V0KGxvbmcgcmVzLCBsb25nIGhlYWRlciwgbG9uZyBkYXRhcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NhcHNldChsb25nIGhlYWRlciwgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jYXBzZXQobG9uZyByZXMsIGxvbmcgaGVhZGVyLCBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGVyc29uYWxpdHkobG9uZyBwZXJzb25hbGl0eSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGVyc29uYWxpdHkobG9uZyByZXMsIGxvbmcgcGVyc29uYWxpdHkpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncGVuZGluZyhsb25nIHNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lncGVuZGluZyhsb25nIHJlcywgbG9uZyBzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncHJvY21hc2sobG9uZyBob3csIGxvbmcgc2V0LCBsb25nIG9zZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ3Byb2NtYXNrKGxvbmcgcmVzLCBsb25nIGhvdywgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGl0aW1lcihsb25nIHdoaWNoLCBsb25nIHZhbHVlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRpdGltZXIobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0aXRpbWVyKGxvbmcgd2hpY2gsIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGl0aW1lcihsb25nIHJlcywgbG9uZyB3aGljaCwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfY3JlYXRlKGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aW1lcl9ldmVudF9zcGVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY3JlYXRlZF90aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfY3JlYXRlKGxvbmcgcmVzLCBsb25nIHdoaWNoX2Nsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVyX2V2ZW50X3NwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY3JlYXRlZF90aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9nZXR0aW1lKGxvbmcgdGltZXJfaWQsIGxvbmcgc2V0dGluZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0dGltZShsb25nIHJlcywgbG9uZyB0aW1lcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2V0dGluZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9nZXRvdmVycnVuKGxvbmcgdGltZXJfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyByZXMsIGxvbmcgdGltZXJfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfc2V0dGltZShsb25nIHRpbWVyX2lkLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld19zZXR0aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9sZF9zZXR0aW5nKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9zZXR0aW1lKGxvbmcgcmVzLCBsb25nIHRpbWVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBuZXdfc2V0dGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2xkX3NldHRpbmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfZGVsZXRlKGxvbmcgdGltZXJfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2RlbGV0ZShsb25nIHJlcywgbG9uZyB0aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19zZXR0aW1lKGxvbmcgd2hpY2hfY2xvY2ssIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX3NldHRpbWUobG9uZyByZXMsIGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2dldHRpbWUobG9uZyB3aGljaF9jbG9jaywgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfZ2V0dGltZShsb25nIHJlcywgbG9uZyB3aGljaF9jbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfYWRqdGltZShsb25nIHdoaWNoX2Nsb2NrLCBsb25nIHR4KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19hZGp0aW1lKGxvbmcgcmVzLCBsb25nIHdoaWNoX2Nsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0eCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19nZXRyZXMobG9uZyB3aGljaF9jbG9jaywgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfZ2V0cmVzKGxvbmcgcmVzLCBsb25nIHdoaWNoX2Nsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX25hbm9zbGVlcChsb25nIHdoaWNoX2Nsb2NrLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcnF0cCwgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19uYW5vc2xlZXAobG9uZyByZXMsIGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MsIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25pY2UobG9uZyBpbmNyZW1lbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25pY2UobG9uZyByZXMsIGxvbmcgaW5jcmVtZW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3NldHNjaGVkdWxlcihsb25nIHBpZCwgbG9uZyBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYXJhbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfc2V0c2NoZWR1bGVyKGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb2xpY3ksIGxvbmcgcGFyYW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfc2V0cGFyYW0obG9uZyBwaWQsIGxvbmcgcGFyYW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3NldHBhcmFtKGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhcmFtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldHNjaGVkdWxlcihsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0c2NoZWR1bGVyKGxvbmcgcmVzLCBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9nZXRwYXJhbShsb25nIHBpZCwgbG9uZyBwYXJhbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0cGFyYW0obG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGFyYW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfc2V0YWZmaW5pdHkobG9uZyBwaWQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c2VyX21hc2tfcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9zZXRhZmZpbml0eShsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c2VyX21hc2tfcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldGFmZmluaXR5KGxvbmcgcGlkLCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXNlcl9tYXNrX3B0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0YWZmaW5pdHkobG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXNlcl9tYXNrX3B0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF95aWVsZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3lpZWxkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9tYXgobG9uZyBwb2xpY3kpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9tYXgobG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvbGljeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKGxvbmcgcG9saWN5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb2xpY3kpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfcnJfZ2V0X2ludGVydmFsKGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW50ZXJ2YWwpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3JyX2dldF9pbnRlcnZhbChsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW50ZXJ2YWwpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cHJpb3JpdHkobG9uZyB3aGljaCwgbG9uZyB3aG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5pY2V2YWwpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHByaW9yaXR5KGxvbmcgcmVzLCBsb25nIHdoaWNoLCBsb25nIHdobywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5pY2V2YWwpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHJpb3JpdHkobG9uZyB3aGljaCwgbG9uZyB3aG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHByaW9yaXR5KGxvbmcgcmVzLCBsb25nIHdoaWNoLCBsb25nIHdobyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaHV0ZG93bihsb25nIGFyZzAsIGxvbmcgYXJnMSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2h1dGRvd24obG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYm9vdChsb25nIG1hZ2ljMSwgbG9uZyBtYWdpYzIsIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWJvb3QobG9uZyByZXMsIGxvbmcgbWFnaWMxLCBsb25nIG1hZ2ljMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Jlc3RhcnRfc3lzY2FsbCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jlc3RhcnRfc3lzY2FsbChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rZXhlY19sb2FkKGxvbmcgZW50cnksIGxvbmcgbnJfc2VnbWVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2VnbWVudHMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2tleGVjX2xvYWQobG9uZyByZXMsIGxvbmcgZW50cnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5yX3NlZ21lbnRzLCBsb25nIHNlZ21lbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leGl0KGxvbmcgZXJyb3JfY29kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXhpdChsb25nIHJlcywgbG9uZyBlcnJvcl9jb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4aXRfZ3JvdXAobG9uZyBlcnJvcl9jb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leGl0X2dyb3VwKGxvbmcgcmVzLCBsb25nIGVycm9yX2NvZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd2FpdDQobG9uZyBwaWQsIGxvbmcgc3RhdF9hZGRyLCBsb25nIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJ1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93YWl0NChsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgc3RhdF9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0aW9ucywgbG9uZyBydSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0aWQobG9uZyB3aGljaCwgbG9uZyBwaWQsIGxvbmcgaW5mb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRpb25zLCBsb25nIHJ1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93YWl0aWQobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGluZm9wLCBsb25nIG9wdGlvbnMsIGxvbmcgcnUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd2FpdHBpZChsb25nIHBpZCwgbG9uZyBzdGF0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0aW9ucyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd2FpdHBpZChsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgc3RhdF9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRpb25zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF90aWRfYWRkcmVzcyhsb25nIHRpZHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0X3RpZF9hZGRyZXNzKGxvbmcgcmVzLCBsb25nIHRpZHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbml0X21vZHVsZShsb25nIHVtb2QsIGxvbmcgbGVuLCBsb25nIHVhcmdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbml0X21vZHVsZShsb25nIHJlcywgbG9uZyB1bW9kLCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVhcmdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2RlbGV0ZV9tb2R1bGUobG9uZyBuYW1lX3VzZXIsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2RlbGV0ZV9tb2R1bGUobG9uZyByZXMsIGxvbmcgbmFtZV91c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdwcm9jbWFzayhsb25nIGhvdywgbG9uZyBzZXQsIGxvbmcgb3NldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnc2V0c2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfc2lncHJvY21hc2sobG9uZyByZXMsIGxvbmcgaG93LCBsb25nIHNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9zZXQsIGxvbmcgc2lnc2V0c2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdwZW5kaW5nKGxvbmcgc2V0LCBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3BlbmRpbmcobG9uZyByZXMsIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ3RpbWVkd2FpdChsb25nIHV0aGVzZSwgbG9uZyB1aW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHV0cywgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWd0aW1lZHdhaXQobG9uZyByZXMsIGxvbmcgdXRoZXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVpbmZvLCBsb25nIHV0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3Rnc2lncXVldWVpbmZvKGxvbmcgdGdpZCwgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZywgbG9uZyB1aW5mbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfdGdzaWdxdWV1ZWluZm8obG9uZyByZXMsIGxvbmcgdGdpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBpZCwgbG9uZyBzaWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1aW5mbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9raWxsKGxvbmcgcGlkLCBsb25nIHNpZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2lsbChsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Rna2lsbChsb25nIHRnaWQsIGxvbmcgcGlkLCBsb25nIHNpZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGdraWxsKGxvbmcgcmVzLCBsb25nIHRnaWQsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90a2lsbChsb25nIHBpZCwgbG9uZyBzaWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RraWxsKGxvbmcgcmVzLCBsb25nIHBpZCwgbG9uZyBzaWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lncXVldWVpbmZvKGxvbmcgcGlkLCBsb25nIHNpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWdxdWV1ZWluZm8obG9uZyByZXMsIGxvbmcgcGlkLCBsb25nIHNpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1aW5mbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZ2V0bWFzaygpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NnZXRtYXNrKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NzZXRtYXNrKGxvbmcgbmV3bWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3NldG1hc2sobG9uZyByZXMsIGxvbmcgbmV3bWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWduYWwobG9uZyBzaWcsIGxvbmcgaGFuZGxlcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnbmFsKGxvbmcgcmVzLCBsb25nIHNpZywgbG9uZyBoYW5kbGVyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhdXNlKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF1c2UobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luYygpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bmMobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMobG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN5bmMobG9uZyByZXMsIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmRhdGFzeW5jKGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZkYXRhc3luYyhsb25nIHJlcywgbG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iZGZsdXNoKGxvbmcgZnVuYywgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9iZGZsdXNoKGxvbmcgcmVzLCBsb25nIGZ1bmMsIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb3VudChsb25nIGRldl9uYW1lLCBsb25nIGRpcl9uYW1lLCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21vdW50KGxvbmcgcmVzLCBsb25nIGRldl9uYW1lLCBsb25nIGRpcl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdHlwZSwgbG9uZyBmbGFncywgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Vtb3VudChsb25nIG5hbWUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Vtb3VudChsb25nIHJlcywgbG9uZyBuYW1lLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZHVtb3VudChsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZHVtb3VudChsb25nIHJlcywgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RydW5jYXRlKGxvbmcgcGF0aCwgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RydW5jYXRlKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Z0cnVuY2F0ZShsb25nIGZkLCBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0KGxvbmcgZmlsZW5hbWUsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0YXRmcyhsb25nIHBhdGgsIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0ZnMobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdGZzNjQobG9uZyBwYXRoLCBsb25nIHN6LCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdGZzNjQobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBzeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGZzKGxvbmcgZmQsIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGZzKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGZzNjQobG9uZyBmZCwgbG9uZyBzeiwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0ZnM2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBzeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHN0YXQobG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sc3RhdChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0KGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZXdzdGF0KGxvbmcgZmlsZW5hbWUsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3c3RhdChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZXdsc3RhdChsb25nIGZpbGVuYW1lLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld2xzdGF0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZXdmc3RhdChsb25nIGZkLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld2ZzdGF0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXN0YXQobG9uZyBkZXYsIGxvbmcgdWJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXN0YXQobG9uZyByZXMsIGxvbmcgZGV2LCBsb25nIHVidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdDY0KGxvbmcgZmlsZW5hbWUsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdDY0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXQ2NChsb25nIGZkLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0NjQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc3RhdDY0KGxvbmcgZmlsZW5hbWUsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHN0YXQ2NChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR4YXR0cihsb25nIHBhdGgsIGxvbmcgbmFtZSwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUsIGxvbmcgc2l6ZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc2V0eGF0dHIobG9uZyBwYXRoLCBsb25nIG5hbWUsIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sc2V0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbHVlLCBsb25nIHNpemUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnNldHhhdHRyKGxvbmcgZmQsIGxvbmcgbmFtZSwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzZXR4YXR0cihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbHVlLCBsb25nIHNpemUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0eGF0dHIobG9uZyBwYXRoLCBsb25nIG5hbWUsIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHhhdHRyKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbHVlLCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGdldHhhdHRyKGxvbmcgcGF0aCwgbG9uZyBuYW1lLCBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGdldHhhdHRyKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZSwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZnZXR4YXR0cihsb25nIGZkLCBsb25nIG5hbWUsIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZ2V0eGF0dHIobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZSwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cihsb25nIHBhdGgsIGxvbmcgbGlzdCwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saXN0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGxpc3R4YXR0cihsb25nIHBhdGgsIGxvbmcgbGlzdCwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sbGlzdHhhdHRyKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbGlzdHhhdHRyKGxvbmcgZmQsIGxvbmcgbGlzdCwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbGlzdHhhdHRyKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtb3ZleGF0dHIobG9uZyBwYXRoLCBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbW92ZXhhdHRyKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9scmVtb3ZleGF0dHIobG9uZyBwYXRoLCBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnJlbW92ZXhhdHRyKGxvbmcgZmQsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnJlbW92ZXhhdHRyKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYnJrKGxvbmcgYnJrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9icmsobG9uZyByZXMsIGxvbmcgYnJrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21wcm90ZWN0KGxvbmcgc3RhcnQsIGxvbmcgbGVuLCBsb25nIHByb3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21wcm90ZWN0KGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHByb3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXJlbWFwKGxvbmcgYWRkciwgbG9uZyBvbGRfbGVuLCBsb25nIG5ld19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBuZXdfYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXJlbWFwKGxvbmcgcmVzLCBsb25nIGFkZHIsIGxvbmcgb2xkX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBuZXdfbGVuLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld19hZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbWFwX2ZpbGVfcGFnZXMobG9uZyBzdGFydCwgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHByb3QsIGxvbmcgcGdvZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbWFwX2ZpbGVfcGFnZXMobG9uZyByZXMsIGxvbmcgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUsIGxvbmcgcHJvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGdvZmYsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXN5bmMobG9uZyBzdGFydCwgbG9uZyBsZW4sIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zeW5jKGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bm1hcChsb25nIGFkZHIsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5tYXAobG9uZyByZXMsIGxvbmcgYWRkciwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWxvY2sobG9uZyBzdGFydCwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21sb2NrKGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrKGxvbmcgc3RhcnQsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrKGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tbG9ja2FsbChsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9ja2FsbChsb25nIHJlcywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrYWxsKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubG9ja2FsbChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tYWR2aXNlKGxvbmcgc3RhcnQsIGxvbmcgbGVuLCBsb25nIGJlaGF2aW9yKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tYWR2aXNlKGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYmVoYXZpb3IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWluY29yZShsb25nIHN0YXJ0LCBsb25nIGxlbiwgbG9uZyB2ZWMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21pbmNvcmUobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2ZWMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGl2b3Rfcm9vdChsb25nIG5ld19yb290LCBsb25nIHB1dF9vbGQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bpdm90X3Jvb3QobG9uZyByZXMsIGxvbmcgbmV3X3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHB1dF9vbGQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hyb290KGxvbmcgZmlsZW5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nocm9vdChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta25vZChsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUsIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta25vZChsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpbmsobG9uZyBvbGRuYW1lLCBsb25nIG5ld25hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmsobG9uZyByZXMsIGxvbmcgb2xkbmFtZSwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmsobG9uZyBvbGQsIGxvbmcgbmV3Xyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGluayhsb25nIHJlcywgbG9uZyBvbGQsIGxvbmcgbmV3Xyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmsobG9uZyBwYXRobmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rKGxvbmcgcmVzLCBsb25nIHBhdGhuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbmFtZShsb25nIG9sZG5hbWUsIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lKGxvbmcgcmVzLCBsb25nIG9sZG5hbWUsIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG1vZChsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NobW9kKGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kKGxvbmcgZmQsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNobW9kKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNudGwobG9uZyBmZCwgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY250bChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsNjQobG9uZyBmZCwgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY250bDY0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BpcGUobG9uZyBmaWxkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUobG9uZyByZXMsIGxvbmcgZmlsZGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BpcGUyKGxvbmcgZmlsZGVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9waXBlMihsb25nIHJlcywgbG9uZyBmaWxkZXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwKGxvbmcgZmlsZGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAobG9uZyByZXMsIGxvbmcgZmlsZGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDIobG9uZyBvbGRmZCwgbG9uZyBuZXdmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMihsb25nIHJlcywgbG9uZyBvbGRmZCwgbG9uZyBuZXdmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAzKGxvbmcgb2xkZmQsIGxvbmcgbmV3ZmQsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cDMobG9uZyByZXMsIGxvbmcgb2xkZmQsIGxvbmcgbmV3ZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcGVybShsb25nIGZyb20sIGxvbmcgbnVtLCBsb25nIG9uKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb3Blcm0obG9uZyByZXMsIGxvbmcgZnJvbSwgbG9uZyBudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb24pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9jdGwobG9uZyBmZCwgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb2N0bChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zsb2NrKGxvbmcgZmQsIGxvbmcgY21kKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbG9jayhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBjbWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fc2V0dXAobG9uZyBucl9yZXFzLCBsb25nIGN0eCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fc2V0dXAobG9uZyByZXMsIGxvbmcgbnJfcmVxcywgbG9uZyBjdHgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fZGVzdHJveShsb25nIGN0eCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fZGVzdHJveShsb25nIHJlcywgbG9uZyBjdHgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fZ2V0ZXZlbnRzKGxvbmcgY3R4X2lkLCBsb25nIG1pbl9uciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5yLCBsb25nIGV2ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX2dldGV2ZW50cyhsb25nIHJlcywgbG9uZyBjdHhfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWluX25yLCBsb25nIG5yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV2ZW50cywgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvX3N1Ym1pdChsb25nIGN0eF9pZCwgbG9uZyBhcmcxLCBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX3N1Ym1pdChsb25nIHJlcywgbG9uZyBjdHhfaWQsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvX2NhbmNlbChsb25nIGN0eF9pZCwgbG9uZyBpb2NiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcmVzdWx0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19jYW5jZWwobG9uZyByZXMsIGxvbmcgY3R4X2lkLCBsb25nIGlvY2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcmVzdWx0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmRmaWxlKGxvbmcgb3V0X2ZkLCBsb25nIGluX2ZkLCBsb25nIG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRmaWxlKGxvbmcgcmVzLCBsb25nIG91dF9mZCwgbG9uZyBpbl9mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldCwgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kZmlsZTY0KGxvbmcgb3V0X2ZkLCBsb25nIGluX2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldCwgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZGZpbGU2NChsb25nIHJlcywgbG9uZyBvdXRfZmQsIGxvbmcgaW5fZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldCwgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGluayhsb25nIHBhdGgsIGxvbmcgYnVmLCBsb25nIGJ1ZnNpeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmsobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWZzaXopOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY3JlYXQobG9uZyBwYXRobmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jcmVhdChsb25nIHJlcywgbG9uZyBwYXRobmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW4obG9uZyBmaWxlbmFtZSwgbG9uZyBmbGFncywgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuKGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb3NlKGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb3NlKGxvbmcgcmVzLCBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2Vzcyhsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY2Vzcyhsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3ZoYW5ndXAoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92aGFuZ3VwKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nob3duKGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hvd24obG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bihsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaG93bihsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG93bihsb25nIGZkLCBsb25nIHVzZXIsIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG93bihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nob3duMTYobG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLCBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaG93bjE2KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bjE2KGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaG93bjE2KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hvd24xNihsb25nIGZkLCBsb25nIHVzZXIsIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG93bjE2KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZWdpZDE2KGxvbmcgcmdpZCwgbG9uZyBlZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZWdpZDE2KGxvbmcgcmVzLCBsb25nIHJnaWQsIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQxNihsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkMTYobG9uZyByZXMsIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJldWlkMTYobG9uZyBydWlkLCBsb25nIGV1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkMTYobG9uZyByZXMsIGxvbmcgcnVpZCwgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHVpZDE2KGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR1aWQxNihsb25nIHJlcywgbG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzdWlkMTYobG9uZyBydWlkLCBsb25nIGV1aWQsIGxvbmcgc3VpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVzdWlkMTYobG9uZyByZXMsIGxvbmcgcnVpZCwgbG9uZyBldWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3VpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXN1aWQxNihsb25nIHJ1aWQsIGxvbmcgZXVpZCwgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyZXN1aWQxNihsb25nIHJlcywgbG9uZyBydWlkLCBsb25nIGV1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlc2dpZDE2KGxvbmcgcmdpZCwgbG9uZyBlZ2lkLCBsb25nIHNnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlc2dpZDE2KGxvbmcgcmVzLCBsb25nIHJnaWQsIGxvbmcgZWdpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmVzZ2lkMTYobG9uZyByZ2lkLCBsb25nIGVnaWQsIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmVzZ2lkMTYobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc3VpZDE2KGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc3VpZDE2KGxvbmcgcmVzLCBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc2dpZDE2KGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc2dpZDE2KGxvbmcgcmVzLCBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRncm91cHMxNihsb25nIGdpZHNldHNpemUsIGxvbmcgZ3JvdXBsaXN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRncm91cHMxNihsb25nIHJlcywgbG9uZyBnaWRzZXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXBsaXN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdyb3VwczE2KGxvbmcgZ2lkc2V0c2l6ZSwgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdyb3VwczE2KGxvbmcgcmVzLCBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0dWlkMTYoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR1aWQxNihsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRldWlkMTYoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkMTYobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z2lkMTYoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRnaWQxNihsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRlZ2lkMTYoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkMTYobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWUobG9uZyBmaWxlbmFtZSwgbG9uZyB0aW1lcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXRpbWUobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgdGltZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVzKGxvbmcgZmlsZW5hbWUsIGxvbmcgdXRpbWVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZXMobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgdXRpbWVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xzZWVrKGxvbmcgZmQsIGxvbmcgb2Zmc2V0LCBsb25nIG9yaWdpbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHNlZWsobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3JpZ2luKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xsc2Vlayhsb25nIGZkLCBsb25nIG9mZnNldF9oaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2Zmc2V0X2xvdywgbG9uZyByZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcmlnaW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsc2Vlayhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBvZmZzZXRfaGlnaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvZmZzZXRfbG93LCBsb25nIHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcmlnaW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZChsb25nIGZkLCBsb25nIGJ1ZiwgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWR2KGxvbmcgZmQsIGxvbmcgdmVjLCBsb25nIHZsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWR2KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGUobG9uZyBmZCwgbG9uZyBidWYsIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dyaXRldihsb25nIGZkLCBsb25nIHZlYywgbG9uZyB2bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93cml0ZXYobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4pOwoKI2lmZGVmIF9MUDY0CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZDY0KGxvbmcgZmQsIGxvbmcgYnVmLCBsb25nIGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWQ2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50LCBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGU2NChsb25nIGZkLCBsb25nIGJ1ZiwgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcG9zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGU2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCwgbG9uZyBwb3MpOwojZWxzZQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWQ2NChsb25nIGZkLCBsb25nIGJ1ZiwgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb3MwLCBsb25nIHBvczEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkNjQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCwgbG9uZyBwb3MwLCBsb25nIHBvczEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRlNjQobG9uZyBmZCwgbG9uZyBidWYsIGxvbmcgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvczAsIGxvbmcgcG9zMSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRlNjQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQsIGxvbmcgcG9zMCwgbG9uZyBwb3MxKTsKI2VuZGlmCgp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWR2KGxvbmcgZmQsIGxvbmcgdmVjLCBsb25nIHZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb3NfbCwgbG9uZyBwb3NfaCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWR2KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2bGVuLCBsb25nIHBvc19sLCBsb25nIHBvc19oKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZXYobG9uZyBmZCwgbG9uZyB2ZWMsIGxvbmcgdmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb3NfbCwgbG9uZyBwb3NfaCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyB2ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4sIGxvbmcgcG9zX2wsIGxvbmcgcG9zX2gpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y3dkKGxvbmcgYnVmLCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGN3ZChsb25nIHJlcywgbG9uZyBidWYsIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta2Rpcihsb25nIHBhdGhuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rZGlyKGxvbmcgcmVzLCBsb25nIHBhdGhuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hkaXIobG9uZyBmaWxlbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hkaXIobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZGlyKGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGRpcihsb25nIHJlcywgbG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ybWRpcihsb25nIHBhdGhuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ybWRpcihsb25nIHJlcywgbG9uZyBwYXRobmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sb29rdXBfZGNvb2tpZShsb25nIGNvb2tpZTY0LCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sb29rdXBfZGNvb2tpZShsb25nIHJlcywgbG9uZyBjb29raWU2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1ZiwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcXVvdGFjdGwobG9uZyBjbWQsIGxvbmcgc3BlY2lhbCwgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcXVvdGFjdGwobG9uZyByZXMsIGxvbmcgY21kLCBsb25nIHNwZWNpYWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBpZCwgbG9uZyBhZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGRlbnRzKGxvbmcgZmQsIGxvbmcgZGlyZW50LCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRkZW50cyhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBkaXJlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRkZW50czY0KGxvbmcgZmQsIGxvbmcgZGlyZW50LCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRkZW50czY0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGRpcmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c29ja29wdChsb25nIGZkLCBsb25nIGxldmVsLCBsb25nIG9wdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0dmFsLCBsb25nIG9wdGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0c29ja29wdChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0bmFtZSwgbG9uZyBvcHR2YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9wdGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KGxvbmcgZmQsIGxvbmcgbGV2ZWwsIGxvbmcgb3B0bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHR2YWwsIGxvbmcgb3B0bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzb2Nrb3B0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRuYW1lLCBsb25nIG9wdHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2JpbmQobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYmluZChsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29ubmVjdChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb25uZWN0KGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2NlcHQobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXB0KGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2VwdDQobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQ0KGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMiwgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tuYW1lKGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tuYW1lKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGVlcm5hbWUobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGVlcm5hbWUobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kKGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZChsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kdG8obG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMsIGxvbmcgYXJnNCwgbG9uZyBhcmc1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kdG8obG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMywgbG9uZyBhcmc0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1zZyhsb25nIGZkLCBsb25nIG1zZywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZG1zZyhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmRtbXNnKGxvbmcgZmQsIGxvbmcgbXNnLCBsb25nIHZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbW1zZyhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2bGVuLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3YobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2KGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMiwgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Zmcm9tKGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMsIGxvbmcgYXJnNCwgbG9uZyBhcmc1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2ZnJvbShsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMsIGxvbmcgYXJnNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdm1zZyhsb25nIGZkLCBsb25nIG1zZywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKGxvbmcgZmQsIGxvbmcgbXNnLCBsb25nIHZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3ZtbXNnKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4sIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NvY2tldChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXQobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0cGFpcihsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NvY2tldHBhaXIobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0Y2FsbChsb25nIGNhbGwsIGxvbmcgYXJncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc29ja2V0Y2FsbChsb25nIHJlcywgbG9uZyBjYWxsLCBsb25nIGFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlzdGVuKGxvbmcgYXJnMCwgbG9uZyBhcmcxKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saXN0ZW4obG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BvbGwobG9uZyB1ZmRzLCBsb25nIG5mZHMsIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcG9sbChsb25nIHJlcywgbG9uZyB1ZmRzLCBsb25nIG5mZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VsZWN0KGxvbmcgbiwgbG9uZyBpbnAsIGxvbmcgb3V0cCwgbG9uZyBleHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0dnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbGVjdChsb25nIHJlcywgbG9uZyBuLCBsb25nIGlucCwgbG9uZyBvdXRwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV4cCwgbG9uZyB0dnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX3NlbGVjdChsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkX3NlbGVjdChsb25nIHJlcywgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfY3JlYXRlKGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfY3JlYXRlKGxvbmcgcmVzLCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfY3JlYXRlMShsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jcmVhdGUxKGxvbmcgcmVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX2N0bChsb25nIGVwZmQsIGxvbmcgb3AsIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBldmVudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfY3RsKGxvbmcgcmVzLCBsb25nIGVwZmQsIGxvbmcgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmQsIGxvbmcgZXZlbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfd2FpdChsb25nIGVwZmQsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heGV2ZW50cywgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF93YWl0KGxvbmcgcmVzLCBsb25nIGVwZmQsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXhldmVudHMsIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9wd2FpdChsb25nIGVwZmQsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXhldmVudHMsIGxvbmcgdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnbWFzaywgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9wd2FpdChsb25nIHJlcywgbG9uZyBlcGZkLCBsb25nIGV2ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heGV2ZW50cywgbG9uZyB0aW1lb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnbWFzaywgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX3B3YWl0Mihsb25nIGVwZmQsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4ZXZlbnRzLCBsb25nIHRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdtYXNrLCBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX3B3YWl0Mihsb25nIHJlcywgbG9uZyBlcGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV2ZW50cywgbG9uZyBtYXhldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGltZW91dCwgbG9uZyBzaWdtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0aG9zdG5hbWUobG9uZyBuYW1lLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0aG9zdG5hbWUobG9uZyByZXMsIGxvbmcgbmFtZSwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0aG9zdG5hbWUobG9uZyBuYW1lLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0aG9zdG5hbWUobG9uZyByZXMsIGxvbmcgbmFtZSwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZG9tYWlubmFtZShsb25nIG5hbWUsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRkb21haW5uYW1lKGxvbmcgcmVzLCBsb25nIG5hbWUsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld3VuYW1lKGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3dW5hbWUobG9uZyByZXMsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmFtZShsb25nIGFyZzApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VuYW1lKGxvbmcgcmVzLCBsb25nIGFyZzApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkdW5hbWUobG9uZyBhcmcwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGR1bmFtZShsb25nIHJlcywgbG9uZyBhcmcwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJsaW1pdChsb25nIHJlc291cmNlLCBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJsaW1pdChsb25nIHJlcywgbG9uZyByZXNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZF9nZXRybGltaXQobG9uZyByZXNvdXJjZSwgbG9uZyBybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfZ2V0cmxpbWl0KGxvbmcgcmVzLCBsb25nIHJlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdChsb25nIHJlc291cmNlLCBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJsaW1pdChsb25nIHJlcywgbG9uZyByZXNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BybGltaXQ2NChsb25nIHBpZCwgbG9uZyByZXNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld19ybGltLCBsb25nIG9sZF9ybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmxpbWl0NjQobG9uZyByZXMsIGxvbmcgcGlkLCBsb25nIHJlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld19ybGltLCBsb25nIG9sZF9ybGltKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJ1c2FnZShsb25nIHdobywgbG9uZyBydSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cnVzYWdlKGxvbmcgcmVzLCBsb25nIHdobywgbG9uZyBydSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bWFzayhsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VtYXNrKGxvbmcgcmVzLCBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnZ2V0KGxvbmcga2V5LCBsb25nIG1zZ2ZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnZ2V0KGxvbmcgcmVzLCBsb25nIGtleSwgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnc25kKGxvbmcgbXNxaWQsIGxvbmcgbXNncCwgbG9uZyBtc2dzeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ2ZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnc25kKGxvbmcgcmVzLCBsb25nIG1zcWlkLCBsb25nIG1zZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnc3osIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3Jjdihsb25nIG1zcWlkLCBsb25nIG1zZ3AsIGxvbmcgbXNnc3osCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2d0eXAsIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dyY3YobG9uZyByZXMsIGxvbmcgbXNxaWQsIGxvbmcgbXNncCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dzeiwgbG9uZyBtc2d0eXAsIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ2N0bChsb25nIG1zcWlkLCBsb25nIGNtZCwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ2N0bChsb25nIHJlcywgbG9uZyBtc3FpZCwgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWdldChsb25nIGtleSwgbG9uZyBuc2VtcywgbG9uZyBzZW1mbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbWdldChsb25nIHJlcywgbG9uZyBrZXksIGxvbmcgbnNlbXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2VtZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbW9wKGxvbmcgc2VtaWQsIGxvbmcgc29wcywgbG9uZyBuc29wcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2Vtb3AobG9uZyByZXMsIGxvbmcgc2VtaWQsIGxvbmcgc29wcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5zb3BzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWN0bChsb25nIHNlbWlkLCBsb25nIHNlbW51bSwgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbWN0bChsb25nIHJlcywgbG9uZyBzZW1pZCwgbG9uZyBzZW1udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY21kLCBsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW10aW1lZG9wKGxvbmcgc2VtaWQsIGxvbmcgc29wcywgbG9uZyBuc29wcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW10aW1lZG9wKGxvbmcgcmVzLCBsb25nIHNlbWlkLCBsb25nIHNvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5zb3BzLCBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htYXQobG9uZyBzaG1pZCwgbG9uZyBzaG1hZGRyLCBsb25nIHNobWZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htYXQobG9uZyByZXMsIGxvbmcgc2htaWQsIGxvbmcgc2htYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNobWZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1nZXQobG9uZyBrZXksIGxvbmcgc2l6ZSwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1nZXQobG9uZyByZXMsIGxvbmcga2V5LCBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1kdChsb25nIHNobWFkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWR0KGxvbmcgcmVzLCBsb25nIHNobWFkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htY3RsKGxvbmcgc2htaWQsIGxvbmcgY21kLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htY3RsKGxvbmcgcmVzLCBsb25nIHNobWlkLCBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaXBjKGxvbmcgY2FsbCwgbG9uZyBmaXJzdCwgbG9uZyBzZWNvbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aGlyZCwgbG9uZyBwdHIsIGxvbmcgZmlmdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lwYyhsb25nIHJlcywgbG9uZyBjYWxsLCBsb25nIGZpcnN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNlY29uZCwgbG9uZyB0aGlyZCwgbG9uZyBwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmlmdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfb3Blbihsb25nIG5hbWUsIGxvbmcgb2ZsYWcsIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhdHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9vcGVuKGxvbmcgcmVzLCBsb25nIG5hbWUsIGxvbmcgb2ZsYWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUsIGxvbmcgYXR0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV91bmxpbmsobG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV91bmxpbmsobG9uZyByZXMsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV90aW1lZHNlbmQobG9uZyBtcWRlcywgbG9uZyBtc2dfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnX2xlbiwgbG9uZyBtc2dfcHJpbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV90aW1lZHNlbmQobG9uZyByZXMsIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnX3B0ciwgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ19wcmlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3RpbWVkcmVjZWl2ZShsb25nIG1xZGVzLCBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dfbGVuLCBsb25nIG1zZ19wcmlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3RpbWVkcmVjZWl2ZShsb25nIHJlcywgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dfcHRyLCBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnX3ByaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfbm90aWZ5KGxvbmcgbXFkZXMsIGxvbmcgbm90aWZpY2F0aW9uKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9ub3RpZnkobG9uZyByZXMsIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbm90aWZpY2F0aW9uKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX2dldHNldGF0dHIobG9uZyBtcWRlcywgbG9uZyBtcXN0YXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb21xc3RhdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfZ2V0c2V0YXR0cihsb25nIHJlcywgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXFzdGF0LCBsb25nIG9tcXN0YXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGNpY29uZmlnX2lvYmFzZShsb25nIHdoaWNoLCBsb25nIGJ1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXZmbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX2lvYmFzZShsb25nIHJlcywgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVzLCBsb25nIGRldmZuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BjaWNvbmZpZ19yZWFkKGxvbmcgYnVzLCBsb25nIGRmbiwgbG9uZyBvZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbiwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BjaWNvbmZpZ19yZWFkKGxvbmcgcmVzLCBsb25nIGJ1cywgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvZmYsIGxvbmcgbGVuLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wY2ljb25maWdfd3JpdGUobG9uZyBidXMsIGxvbmcgZGZuLCBsb25nIG9mZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbiwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BjaWNvbmZpZ193cml0ZShsb25nIHJlcywgbG9uZyBidXMsIGxvbmcgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZiwgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBvbihsb25nIHNwZWNpYWxmaWxlLCBsb25nIHN3YXBfZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBvbihsb25nIHJlcywgbG9uZyBzcGVjaWFsZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzd2FwX2ZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBvZmYobG9uZyBzcGVjaWFsZmlsZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3dhcG9mZihsb25nIHJlcywgbG9uZyBzcGVjaWFsZmlsZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNjdGwobG9uZyBhcmdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNjdGwobG9uZyByZXMsIGxvbmcgYXJncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNpbmZvKGxvbmcgaW5mbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzaW5mbyhsb25nIHJlcywgbG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2ZzKGxvbmcgb3B0aW9uLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzZnMobG9uZyByZXMsIGxvbmcgb3B0aW9uLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2xvZyhsb25nIHR5cGUsIGxvbmcgYnVmLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzbG9nKGxvbmcgcmVzLCBsb25nIHR5cGUsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91c2VsaWIobG9uZyBsaWJyYXJ5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91c2VsaWIobG9uZyByZXMsIGxvbmcgbGlicmFyeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uaV9zeXNjYWxsKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmlfc3lzY2FsbChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wdHJhY2UobG9uZyByZXF1ZXN0LCBsb25nIHBpZCwgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHRyYWNlKGxvbmcgcmVzLCBsb25nIHJlcXVlc3QsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFkZHIsIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZGRfa2V5KGxvbmcgX3R5cGUsIGxvbmcgX2Rlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9wYXlsb2FkLCBsb25nIHBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzdHJpbmdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWRkX2tleShsb25nIHJlcywgbG9uZyBfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX2Rlc2NyaXB0aW9uLCBsb25nIF9wYXlsb2FkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwbGVuLCBsb25nIGRlc3RyaW5naWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVxdWVzdF9rZXkobG9uZyBfdHlwZSwgbG9uZyBfZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9jYWxsb3V0X2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc3RyaW5naWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlcXVlc3Rfa2V5KGxvbmcgcmVzLCBsb25nIF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX2Rlc2NyaXB0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX2NhbGxvdXRfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc3RyaW5naWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa2V5Y3RsKGxvbmcgY21kLCBsb25nIGFyZzIsIGxvbmcgYXJnMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzQsIGxvbmcgYXJnNSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2V5Y3RsKGxvbmcgcmVzLCBsb25nIGNtZCwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMsIGxvbmcgYXJnNCwgbG9uZyBhcmc1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcHJpb19zZXQobG9uZyB3aGljaCwgbG9uZyB3aG8sIGxvbmcgaW9wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb3ByaW9fc2V0KGxvbmcgcmVzLCBsb25nIHdoaWNoLCBsb25nIHdobywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW9wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcHJpb19nZXQobG9uZyB3aGljaCwgbG9uZyB3aG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcHJpb19nZXQobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgd2hvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF9tZW1wb2xpY3kobG9uZyBtb2RlLCBsb25nIG5tYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heG5vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldF9tZW1wb2xpY3kobG9uZyByZXMsIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbm1hc2ssIGxvbmcgbWF4bm9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taWdyYXRlX3BhZ2VzKGxvbmcgcGlkLCBsb25nIG1heG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZnJvbSwgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWlncmF0ZV9wYWdlcyhsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heG5vZGUsIGxvbmcgZnJvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW92ZV9wYWdlcyhsb25nIHBpZCwgbG9uZyBucl9wYWdlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYWdlcywgbG9uZyBub2RlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0dXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21vdmVfcGFnZXMobG9uZyByZXMsIGxvbmcgcGlkLCBsb25nIG5yX3BhZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYWdlcywgbG9uZyBub2RlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdHVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21iaW5kKGxvbmcgc3RhcnQsIGxvbmcgbGVuLCBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5tYXNrLCBsb25nIG1heG5vZGUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21iaW5kKGxvbmcgcmVzLCBsb25nIHN0YXJ0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUsIGxvbmcgbm1hc2ssIGxvbmcgbWF4bm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldF9tZW1wb2xpY3kobG9uZyBwb2xpY3ksIGxvbmcgbm1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4bm9kZSwgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRfbWVtcG9saWN5KGxvbmcgcmVzLCBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbm1hc2ssIGxvbmcgbWF4bm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWRkciwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X2luaXQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X2luaXQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW5vdGlmeV9pbml0MShsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X2luaXQxKGxvbmcgcmVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfYWRkX3dhdGNoKGxvbmcgZmQsIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5vdGlmeV9hZGRfd2F0Y2gobG9uZyByZXMsIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYXRoLCBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW5vdGlmeV9ybV93YXRjaChsb25nIGZkLCBsb25nIHdkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X3JtX3dhdGNoKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHdkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NwdV9ydW4obG9uZyBmZCwgbG9uZyB1bnBjLCBsb25nIHVzdGF0dXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NwdV9ydW4obG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgdW5wYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXN0YXR1cyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zcHVfY3JlYXRlKGxvbmcgbmFtZSwgbG9uZyBmbGFncywgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zcHVfY3JlYXRlKGxvbmcgcmVzLCBsb25nIG5hbWUsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUsIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtub2RhdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRldik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtub2RhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUsIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyYXQobG9uZyBkZmQsIGxvbmcgcGF0aG5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgcGF0aG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5saW5rYXQobG9uZyBkZmQsIGxvbmcgcGF0aG5hbWUsIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIHBhdGhuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW1saW5rYXQobG9uZyBvbGRuYW1lLCBsb25nIG5ld2RmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld25hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bWxpbmthdChsb25nIHJlcywgbG9uZyBvbGRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld2RmZCwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpbmthdChsb25nIG9sZGRmZCwgbG9uZyBvbGRuYW1lLCBsb25nIG5ld2RmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld25hbWUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmthdChsb25nIHJlcywgbG9uZyBvbGRkZmQsIGxvbmcgb2xkbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBuZXdkZmQsIGxvbmcgbmV3bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWVhdChsb25nIG9sZGRmZCwgbG9uZyBvbGRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBuZXdkZmQsIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQobG9uZyByZXMsIGxvbmcgb2xkZGZkLCBsb25nIG9sZG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBuZXdkZmQsIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mdXRpbWVzYXQobG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1dGltZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Z1dGltZXNhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXRpbWVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZhY2Nlc3NhdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mYWNjZXNzYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kYXQobG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNobW9kYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hvd25hdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cCwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd25hdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c2VyLCBsb25nIGdyb3VwLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3BlbmF0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3BlbmF0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2ZzdGF0YXQobG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1ZiwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdmc3RhdGF0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1ZiwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0YXQ2NChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN0YXRidWYsIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXRhdDY0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmthdChsb25nIGRmZCwgbG9uZyBwYXRoLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWZzaXopOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1ZiwgbG9uZyBidWZzaXopOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVuc2F0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXRpbWVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZW5zYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHV0aW1lcywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bnNoYXJlKGxvbmcgdW5zaGFyZV9mbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5zaGFyZShsb25nIHJlcywgbG9uZyB1bnNoYXJlX2ZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NwbGljZShsb25nIGZkX2luLCBsb25nIG9mZl9pbiwgbG9uZyBmZF9vdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvZmZfb3V0LCBsb25nIGxlbiwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3BsaWNlKGxvbmcgcmVzLCBsb25nIGZkX2luLCBsb25nIG9mZl9pbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmZF9vdXQsIGxvbmcgb2ZmX291dCwgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdm1zcGxpY2UobG9uZyBmZCwgbG9uZyBpb3YsIGxvbmcgbnJfc2VncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Ztc3BsaWNlKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGlvdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5yX3NlZ3MsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGVlKGxvbmcgZmRpbiwgbG9uZyBmZG91dCwgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGVlKGxvbmcgcmVzLCBsb25nIGZkaW4sIGxvbmcgZmRvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldF9yb2J1c3RfbGlzdChsb25nIHBpZCwgbG9uZyBoZWFkX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbl9wdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldF9yb2J1c3RfbGlzdChsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaGVhZF9wdHIsIGxvbmcgbGVuX3B0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRfcm9idXN0X2xpc3QobG9uZyBoZWFkLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0X3JvYnVzdF9saXN0KGxvbmcgcmVzLCBsb25nIGhlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGNwdShsb25nIGNwdSwgbG9uZyBub2RlLCBsb25nIGNhY2hlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRjcHUobG9uZyByZXMsIGxvbmcgY3B1LCBsb25nIG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY2FjaGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lnbmFsZmQobG9uZyB1ZmQsIGxvbmcgdXNlcl9tYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnbmFsZmQobG9uZyByZXMsIGxvbmcgdWZkLCBsb25nIHVzZXJfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemVtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ25hbGZkNChsb25nIHVmZCwgbG9uZyB1c2VyX21hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplbWFzaywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnbmFsZmQ0KGxvbmcgcmVzLCBsb25nIHVmZCwgbG9uZyB1c2VyX21hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZW1hc2ssIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJmZF9jcmVhdGUobG9uZyBjbG9ja2lkLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcmZkX2NyZWF0ZShsb25nIHJlcywgbG9uZyBjbG9ja2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJmZF9zZXR0aW1lKGxvbmcgdWZkLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXRtciwgbG9uZyBvdG1yKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcmZkX3NldHRpbWUobG9uZyByZXMsIGxvbmcgdWZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIHV0bXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3Rtcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcmZkX2dldHRpbWUobG9uZyB1ZmQsIGxvbmcgb3Rtcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJmZF9nZXR0aW1lKGxvbmcgcmVzLCBsb25nIHVmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvdG1yKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V2ZW50ZmQobG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXZlbnRmZChsb25nIHJlcywgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ldmVudGZkMihsb25nIGNvdW50LCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ldmVudGZkMihsb25nIHJlcywgbG9uZyBjb3VudCwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGRfcmVhZGRpcihsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfcmVhZGRpcihsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZWxlY3Q2KGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMsIGxvbmcgYXJnNCwgbG9uZyBhcmc1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wc2VsZWN0Nihsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMsIGxvbmcgYXJnNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHBvbGwobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMywgbG9uZyBhcmc0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcG9sbChsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMsIGxvbmcgYXJnNCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mYW5vdGlmeV9pbml0KGxvbmcgZmxhZ3MsIGxvbmcgZXZlbnRfZl9mbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFub3RpZnlfaW5pdChsb25nIHJlcywgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXZlbnRfZl9mbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mYW5vdGlmeV9tYXJrKGxvbmcgZmFub3RpZnlfZmQsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWFzaywgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYXRobmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFub3RpZnlfbWFyayhsb25nIHJlcywgbG9uZyBmYW5vdGlmeV9mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MsIGxvbmcgbWFzaywgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGF0aG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luY2ZzKGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bmNmcyhsb25nIHJlcywgbG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wZXJmX2V2ZW50X29wZW4obG9uZyBhdHRyX3VwdHIsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY3B1LCBsb25nIGdyb3VwX2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BlcmZfZXZlbnRfb3Blbihsb25nIHJlcywgbG9uZyBhdHRyX3VwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGlkLCBsb25nIGNwdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cF9mZCwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tbWFwX3Bnb2ZmKGxvbmcgYWRkciwgbG9uZyBsZW4sIGxvbmcgcHJvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBmZCwgbG9uZyBwZ29mZik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW1hcF9wZ29mZihsb25nIHJlcywgbG9uZyBhZGRyLCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcHJvdCwgbG9uZyBmbGFncywgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGdvZmYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX21tYXAobG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZF9tbWFwKGxvbmcgcmVzLCBsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uYW1lX3RvX2hhbmRsZV9hdChsb25nIGRmZCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBoYW5kbGUsIGxvbmcgbW50X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uYW1lX3RvX2hhbmRsZV9hdChsb25nIHJlcywgbG9uZyBkZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBuYW1lLCBsb25nIGhhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1udF9pZCwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5fYnlfaGFuZGxlX2F0KGxvbmcgbW91bnRkaXJmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaGFuZGxlLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuX2J5X2hhbmRsZV9hdChsb25nIHJlcywgbG9uZyBtb3VudGRpcmZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaGFuZGxlLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldG5zKGxvbmcgZmQsIGxvbmcgbnN0eXBlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRucyhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBuc3R5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvY2Vzc192bV9yZWFkdihsb25nIHBpZCwgbG9uZyBsdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxpb3ZjbnQsIGxvbmcgcnZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyByaW92Y250LCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcm9jZXNzX3ZtX3JlYWR2KGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbHZlYywgbG9uZyBsaW92Y250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBydmVjLCBsb25nIHJpb3ZjbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Byb2Nlc3Nfdm1fd3JpdGV2KGxvbmcgcGlkLCBsb25nIGx2ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxpb3ZjbnQsIGxvbmcgcnZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcmlvdmNudCwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJvY2Vzc192bV93cml0ZXYobG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbHZlYywgbG9uZyBsaW92Y250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcnZlYywgbG9uZyByaW92Y250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZm9yaygpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZvcmsobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmZvcmsoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92Zm9yayhsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdhY3Rpb24obG9uZyBzaWdudW0sIGxvbmcgYWN0LCBsb25nIG9sZGFjdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnYWN0aW9uKGxvbmcgcmVzLCBsb25nIHNpZ251bSwgbG9uZyBhY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2xkYWN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ2FjdGlvbihsb25nIHNpZ251bSwgbG9uZyBhY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvbGRhY3QsIGxvbmcgc3opOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ2FjdGlvbihsb25nIHJlcywgbG9uZyBzaWdudW0sIGxvbmcgYWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9sZGFjdCwgbG9uZyBzeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdhbHRzdGFjayhsb25nIHNzLCBsb25nIG9zcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnYWx0c3RhY2sobG9uZyByZXMsIGxvbmcgc3MsIGxvbmcgb3NzKTsKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAvLyBTQU5JVElaRVJfTElOVVhfU1lTQ0FMTF9IT09LU19ICgAvLz09PS0tIG1zYW5faW50ZXJmYWNlLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIE1lbW9yeVNhbml0aXplci4KLy8KLy8gUHVibGljIGludGVyZmFjZSBoZWFkZXIuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgTVNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIE1TQU5fSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgogIC8qIFNldCByYXcgb3JpZ2luIGZvciB0aGUgbWVtb3J5IHJhbmdlLiAqLwogIHZvaWQgX19tc2FuX3NldF9vcmlnaW4oY29uc3Qgdm9sYXRpbGUgdm9pZCAqYSwgc2l6ZV90IHNpemUsIHVpbnQzMl90IG9yaWdpbik7CgogIC8qIEdldCByYXcgb3JpZ2luIGZvciBhbiBhZGRyZXNzLiAqLwogIHVpbnQzMl90IF9fbXNhbl9nZXRfb3JpZ2luKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmEpOwoKICAvKiBUZXN0IHRoYXQgdGhpc19pZCBpcyBhIGRlc2NlbmRhbnQgb2YgcHJldl9pZCAob3IgdGhleSBhcmUgc2ltcGx5IGVxdWFsKS4KICAgKiAiZGVzY2VuZGFudCIgaGVyZSBtZWFucyB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBzYW1lIGNoYWluLCBjcmVhdGVkIHdpdGgKICAgKiBfX21zYW5fY2hhaW5fb3JpZ2luLiAqLwogIGludCBfX21zYW5fb3JpZ2luX2lzX2Rlc2NlbmRhbnRfb3Jfc2FtZSh1aW50MzJfdCB0aGlzX2lkLCB1aW50MzJfdCBwcmV2X2lkKTsKCiAgLyogUmV0dXJucyBub24temVybyBpZiB0cmFja2luZyBvcmlnaW5zLiAqLwogIGludCBfX21zYW5fZ2V0X3RyYWNrX29yaWdpbnModm9pZCk7CgogIC8qIFJldHVybnMgdGhlIG9yaWdpbiBpZCBvZiB0aGUgbGF0ZXN0IFVNUiBpbiB0aGUgY2FsbGluZyB0aHJlYWQuICovCiAgdWludDMyX3QgX19tc2FuX2dldF91bXJfb3JpZ2luKHZvaWQpOwoKICAvKiBNYWtlIG1lbW9yeSByZWdpb24gZnVsbHkgaW5pdGlhbGl6ZWQgKHdpdGhvdXQgY2hhbmdpbmcgaXRzIGNvbnRlbnRzKS4gKi8KICB2b2lkIF9fbXNhbl91bnBvaXNvbihjb25zdCB2b2xhdGlsZSB2b2lkICphLCBzaXplX3Qgc2l6ZSk7CgogIC8qIE1ha2UgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nIGZ1bGx5IGluaXRpYWxpemVkICh3aXRob3V0IGNoYW5naW5nIGl0cwogICAgIGNvbnRlbnRzKS4gKi8KICB2b2lkIF9fbXNhbl91bnBvaXNvbl9zdHJpbmcoY29uc3Qgdm9sYXRpbGUgY2hhciAqYSk7CgogIC8qIE1ha2UgZmlyc3QgbiBwYXJhbWV0ZXJzIG9mIHRoZSBuZXh0IGZ1bmN0aW9uIGNhbGwgZnVsbHkgaW5pdGlhbGl6ZWQuICovCiAgdm9pZCBfX21zYW5fdW5wb2lzb25fcGFyYW0oc2l6ZV90IG4pOwoKICAvKiBNYWtlIG1lbW9yeSByZWdpb24gZnVsbHkgdW5pbml0aWFsaXplZCAod2l0aG91dCBjaGFuZ2luZyBpdHMgY29udGVudHMpLgogICAgIFRoaXMgaXMgYSBsZWdhY3kgaW50ZXJmYWNlIHRoYXQgZG9lcyBub3QgdXBkYXRlIG9yaWdpbiBpbmZvcm1hdGlvbi4gVXNlCiAgICAgX19tc2FuX2FsbG9jYXRlZF9tZW1vcnkoKSBpbnN0ZWFkLiAqLwogIHZvaWQgX19tc2FuX3BvaXNvbihjb25zdCB2b2xhdGlsZSB2b2lkICphLCBzaXplX3Qgc2l6ZSk7CgogIC8qIE1ha2UgbWVtb3J5IHJlZ2lvbiBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCAod2l0aG91dCBjaGFuZ2luZyBpdHMgY29udGVudHMpLgogICAqLwogIHZvaWQgX19tc2FuX3BhcnRpYWxfcG9pc29uKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmRhdGEsIHZvaWQgKnNoYWRvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CgogIC8qIFJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgKGF0IGxlYXN0IHBhcnRpYWxseSkgcG9pc29uZWQgYnl0ZSBpbiB0aGUKICAgICBtZW1vcnkgcmFuZ2UsIG9yIC0xIGlmIHRoZSB3aG9sZSByYW5nZSBpcyBnb29kLiAqLwogIGludHB0cl90IF9fbXNhbl90ZXN0X3NoYWRvdyhjb25zdCB2b2xhdGlsZSB2b2lkICp4LCBzaXplX3Qgc2l6ZSk7CgogIC8qIENoZWNrcyB0aGF0IG1lbW9yeSByYW5nZSBpcyBmdWxseSBpbml0aWFsaXplZCwgYW5kIHJlcG9ydHMgYW4gZXJyb3IgaWYgaXQKICAgKiBpcyBub3QuICovCiAgdm9pZCBfX21zYW5fY2hlY2tfbWVtX2lzX2luaXRpYWxpemVkKGNvbnN0IHZvbGF0aWxlIHZvaWQgKngsIHNpemVfdCBzaXplKTsKCiAgLyogRm9yIHRlc3Rpbmc6CiAgICAgX19tc2FuX3NldF9leHBlY3RfdW1yKDEpOwogICAgIC4uLiBzb21lIGJ1Z2d5IGNvZGUgLi4uCiAgICAgX19tc2FuX3NldF9leHBlY3RfdW1yKDApOwogICAgIFRoZSBsYXN0IGxpbmUgd2lsbCB2ZXJpZnkgdGhhdCBhIFVNUiBoYXBwZW5lZC4gKi8KICB2b2lkIF9fbXNhbl9zZXRfZXhwZWN0X3VtcihpbnQgZXhwZWN0X3Vtcik7CgogIC8qIENoYW5nZSB0aGUgdmFsdWUgb2Yga2VlcF9nb2luZyBmbGFnLiBOb24temVybyB2YWx1ZSBtZWFucyBkb24ndCB0ZXJtaW5hdGUKICAgICBwcm9ncmFtIGV4ZWN1dGlvbiB3aGVuIGFuIGVycm9yIGlzIGRldGVjdGVkLiBUaGlzIHdpbGwgbm90IGFmZmVjdCBlcnJvciBpbgogICAgIG1vZHVsZXMgdGhhdCB3ZXJlIGNvbXBpbGVkIHdpdGhvdXQgdGhlIGNvcnJlc3BvbmRpbmcgY29tcGlsZXIgZmxhZy4gKi8KICB2b2lkIF9fbXNhbl9zZXRfa2VlcF9nb2luZyhpbnQga2VlcF9nb2luZyk7CgogIC8qIFByaW50IHNoYWRvdyBhbmQgb3JpZ2luIGZvciB0aGUgbWVtb3J5IHJhbmdlIHRvIHN0ZGVyciBpbiBhIGh1bWFuLXJlYWRhYmxlCiAgICAgZm9ybWF0LiAqLwogIHZvaWQgX19tc2FuX3ByaW50X3NoYWRvdyhjb25zdCB2b2xhdGlsZSB2b2lkICp4LCBzaXplX3Qgc2l6ZSk7CgogIC8qIFByaW50IHNoYWRvdyBmb3IgdGhlIG1lbW9yeSByYW5nZSB0byBzdGRlcnIgaW4gYSBtaW5pbWFsaXN0aWMKICAgICBodW1hbi1yZWFkYWJsZSBmb3JtYXQuICovCiAgdm9pZCBfX21zYW5fZHVtcF9zaGFkb3coY29uc3Qgdm9sYXRpbGUgdm9pZCAqeCwgc2l6ZV90IHNpemUpOwoKICAvKiBSZXR1cm5zIHRydWUgaWYgcnVubmluZyB1bmRlciBhIGR5bmFtaWMgdG9vbCAoRHluYW1vUmlvLWJhc2VkKS4gKi8KICBpbnQgIF9fbXNhbl9oYXNfZHluYW1pY19jb21wb25lbnQodm9pZCk7CgogIC8qIFRlbGwgTVNhbiBhYm91dCBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IChleC46IGN1c3RvbSBhbGxvY2F0b3IpLgogICAgIE1lbW9yeSB3aWxsIGJlIG1hcmtlZCB1bmluaXRpYWxpemVkLCB3aXRoIG9yaWdpbiBhdCB0aGUgY2FsbCBzaXRlLiAqLwogIHZvaWQgX19tc2FuX2FsbG9jYXRlZF9tZW1vcnkoY29uc3Qgdm9sYXRpbGUgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUpOwoKICAvKiBUZWxsIE1TYW4gYWJvdXQgbmV3bHkgZGVzdHJveWVkIG1lbW9yeS4gTWFyayBtZW1vcnkgYXMgdW5pbml0aWFsaXplZC4gKi8KICB2b2lkIF9fc2FuaXRpemVyX2R0b3JfY2FsbGJhY2soY29uc3Qgdm9sYXRpbGUgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUpOwoKICAvKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBvcHRpb25hbGx5IHByb3ZpZGVkIGJ5IHVzZXIgYW5kIHNob3VsZCByZXR1cm4KICAgICBhIHN0cmluZyBjb250YWluaW5nIE1zYW4gcnVudGltZSBvcHRpb25zLiBTZWUgbXNhbl9mbGFncy5oIGZvciBkZXRhaWxzLiAqLwogIGNvbnN0IGNoYXIqIF9fbXNhbl9kZWZhdWx0X29wdGlvbnModm9pZCk7CgogIC8qIERlcHJlY2F0ZWQuIENhbGwgX19zYW5pdGl6ZXJfc2V0X2RlYXRoX2NhbGxiYWNrIGluc3RlYWQuICovCiAgdm9pZCBfX21zYW5fc2V0X2RlYXRoX2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykodm9pZCkpOwoKICAvKiBVcGRhdGUgc2hhZG93IGZvciB0aGUgYXBwbGljYXRpb24gY29weSBvZiBzaXplIGJ5dGVzIGZyb20gc3JjIHRvIGRzdC4KICAgICBTcmMgYW5kIGRzdCBhcmUgYXBwbGljYXRpb24gYWRkcmVzc2VzLiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNvcHkgdGhlCiAgICAgYWN0dWFsIGFwcGxpY2F0aW9uIG1lbW9yeSwgaXQgb25seSB1cGRhdGVzIHNoYWRvdyBhbmQgb3JpZ2luIGZvciBzdWNoCiAgICAgY29weS4gU291cmNlIGFuZCBkZXN0aW5hdGlvbiByZWdpb25zIGNhbiBvdmVybGFwLiAqLwogIHZvaWQgX19tc2FuX2NvcHlfc2hhZG93KGNvbnN0IHZvbGF0aWxlIHZvaWQgKmRzdCwgY29uc3Qgdm9sYXRpbGUgdm9pZCAqc3JjLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKCiAgLyogRGlzYWJsZXMgdW5pbml0aWFsaXplZCBtZW1vcnkgY2hlY2tzIGluIGludGVyY2VwdG9ycy4gKi8KICB2b2lkIF9fbXNhbl9zY29wZWRfZGlzYWJsZV9pbnRlcmNlcHRvcl9jaGVja3Modm9pZCk7CgogIC8qIFJlLWVuYWJsZXMgdW5pbml0aWFsaXplZCBtZW1vcnkgY2hlY2tzIGluIGludGVyY2VwdG9ycyBhZnRlciBhIHByZXZpb3VzCiAgICAgY2FsbCB0byBfX21zYW5fc2NvcGVkX2Rpc2FibGVfaW50ZXJjZXB0b3JfY2hlY2tzLiAqLwogIHZvaWQgX19tc2FuX3Njb3BlZF9lbmFibGVfaW50ZXJjZXB0b3JfY2hlY2tzKHZvaWQpOwoKICB2b2lkIF9fbXNhbl9zdGFydF9zd2l0Y2hfZmliZXIoY29uc3Qgdm9pZCAqYm90dG9tLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCBfX21zYW5fZmluaXNoX3N3aXRjaF9maWJlcihjb25zdCB2b2lkICoqYm90dG9tX29sZCwgc2l6ZV90ICpzaXplX29sZCk7CgojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZgoALy89PT0tLSB0c2FuX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBUaHJlYWRTYW5pdGl6ZXIgKFRTYW4pLCBhIHJhY2UgZGV0ZWN0b3IuCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyIGZvciBUU2FuLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9UU0FOX0lOVEVSRkFDRV9ICiNkZWZpbmUgU0FOSVRJWkVSX1RTQU5fSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8gX190c2FuX3JlbGVhc2UgZXN0YWJsaXNoZXMgYSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbiB3aXRoIGEgcHJlY2VkaW5nCi8vIF9fdHNhbl9hY3F1aXJlIG9uIHRoZSBzYW1lIGFkZHJlc3MuCnZvaWQgX190c2FuX2FjcXVpcmUodm9pZCAqYWRkcik7CnZvaWQgX190c2FuX3JlbGVhc2Uodm9pZCAqYWRkcik7CgovLyBBbm5vdGF0aW9ucyBmb3IgY3VzdG9tIG11dGV4ZXMuCi8vIFRoZSBhbm5vdGF0aW9ucyBhbGxvdyB0byBnZXQgYmV0dGVyIHJlcG9ydHMgKHdpdGggc2V0cyBvZiBsb2NrZWQgbXV0ZXhlcyksCi8vIGRldGVjdCBtb3JlIHR5cGVzIG9mIGJ1Z3MgKGUuZy4gbXV0ZXggbWlzdXNlcywgcmFjZXMgYmV0d2VlbiBsb2NrL3VubG9jayBhbmQKLy8gZGVzdHJ1Y3Rpb24gYW5kIHBvdGVudGlhbCBkZWFkbG9ja3MpIGFuZCBpbXByb3ZlIHByZWNpc2lvbiBhbmQgcGVyZm9ybWFuY2UKLy8gKGJ5IGlnbm9yaW5nIGluZGl2aWR1YWwgYXRvbWljIG9wZXJhdGlvbnMgaW4gbXV0ZXggY29kZSkuIEhvd2V2ZXIsIHRoZQovLyBkb3duc2lkZSBpcyB0aGF0IGFubm90YXRlZCBtdXRleCBjb2RlIGl0c2VsZiBpcyBub3QgY2hlY2tlZCBmb3IgY29ycmVjdG5lc3MuCgovLyBNdXRleCBjcmVhdGlvbiBmbGFncyBhcmUgcGFzc2VkIHRvIF9fdHNhbl9tdXRleF9jcmVhdGUgYW5ub3RhdGlvbi4KLy8gSWYgbXV0ZXggaGFzIG5vIGNvbnN0cnVjdG9yIGFuZCBfX3RzYW5fbXV0ZXhfY3JlYXRlIGlzIG5vdCBjYWxsZWQsCi8vIHRoZSBmbGFncyBtYXkgYmUgcGFzc2VkIHRvIF9fdHNhbl9tdXRleF9wcmVfbG9jay9fX3RzYW5fbXV0ZXhfcG9zdF9sb2NrCi8vIGFubm90YXRpb25zLgoKLy8gTXV0ZXggaGFzIHN0YXRpYyBzdG9yYWdlIGR1cmF0aW9uIGFuZCBuby1vcCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3Rvci4KLy8gVGhpcyBlZmZlY3RpdmVseSBtYWtlcyB0c2FuIGlnbm9yZSBkZXN0cm95IGFubm90YXRpb24uCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfbGlua2VyX2luaXQgICAgICA9IDEgPDwgMDsKLy8gTXV0ZXggaXMgd3JpdGUgcmVlbnRyYW50LgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3dyaXRlX3JlZW50cmFudCAgPSAxIDw8IDE7Ci8vIE11dGV4IGlzIHJlYWQgcmVlbnRyYW50LgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3JlYWRfcmVlbnRyYW50ICAgPSAxIDw8IDI7Ci8vIE11dGV4IGRvZXMgbm90IGhhdmUgc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24sIGFuZCBtdXN0IG5vdCBiZSB1c2VkIGFmdGVyCi8vIGl0cyBkZXN0cnVjdG9yIHJ1bnMuICBUaGUgb3Bwb3NpdGUgb2YgX190c2FuX211dGV4X2xpbmtlcl9pbml0LgovLyBJZiB0aGlzIGZsYWcgaXMgcGFzc2VkIHRvIF9fdHNhbl9tdXRleF9kZXN0cm95LCB0aGVuIHRoZSBkZXN0cnVjdGlvbgovLyBpcyBpZ25vcmVkIHVubGVzcyB0aGlzIGZsYWcgd2FzIHByZXZpb3VzbHkgc2V0IG9uIHRoZSBtdXRleC4Kc3RhdGljIGNvbnN0IHVuc2lnbmVkIF9fdHNhbl9tdXRleF9ub3Rfc3RhdGljICAgICAgID0gMSA8PCA4OwoKLy8gTXV0ZXggb3BlcmF0aW9uIGZsYWdzOgoKLy8gRGVub3RlcyByZWFkIGxvY2sgb3BlcmF0aW9uLgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3JlYWRfbG9jayAgICAgICAgPSAxIDw8IDM7Ci8vIERlbm90ZXMgdHJ5IGxvY2sgb3BlcmF0aW9uLgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3RyeV9sb2NrICAgICAgICAgPSAxIDw8IDQ7Ci8vIERlbm90ZXMgdGhhdCBhIHRyeSBsb2NrIG9wZXJhdGlvbiBoYXMgZmFpbGVkIHRvIGFjcXVpcmUgdGhlIG11dGV4LgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3RyeV9sb2NrX2ZhaWxlZCAgPSAxIDw8IDU7Ci8vIERlbm90ZXMgdGhhdCB0aGUgbG9jayBvcGVyYXRpb24gYWNxdWlyZXMgbXVsdGlwbGUgcmVjdXJzaW9uIGxldmVscy4KLy8gTnVtYmVyIG9mIGxldmVscyBpcyBwYXNzZWQgaW4gcmVjdXJzaW9uIHBhcmFtZXRlci4KLy8gVGhpcyBpcyB1c2VmdWwgZm9yIGFubm90YXRpb24gb2YgZS5nLiBKYXZhIGJ1aWx0aW4gbW9uaXRvcnMsCi8vIGZvciB3aGljaCB3YWl0IG9wZXJhdGlvbiByZWxlYXNlcyBhbGwgcmVjdXJzaXZlIGFjcXVpc2l0aW9ucyBvZiB0aGUgbXV0ZXguCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfcmVjdXJzaXZlX2xvY2sgICA9IDEgPDwgNjsKLy8gRGVub3RlcyB0aGF0IHRoZSB1bmxvY2sgb3BlcmF0aW9uIHJlbGVhc2VzIGFsbCByZWN1cnNpb24gbGV2ZWxzLgovLyBOdW1iZXIgb2YgcmVsZWFzZWQgbGV2ZWxzIGlzIHJldHVybmVkIGFuZCBsYXRlciBtdXN0IGJlIHBhc3NlZCB0bwovLyB0aGUgY29ycmVzcG9uZGluZyBfX3RzYW5fbXV0ZXhfcG9zdF9sb2NrIGFubm90YXRpb24uCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfcmVjdXJzaXZlX3VubG9jayA9IDEgPDwgNzsKCi8vIENvbnZlbmllbnQgY29tcG9zZWQgY29uc3RhbnRzLgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3RyeV9yZWFkX2xvY2sgPQogICAgX190c2FuX211dGV4X3JlYWRfbG9jayB8IF9fdHNhbl9tdXRleF90cnlfbG9jazsKc3RhdGljIGNvbnN0IHVuc2lnbmVkIF9fdHNhbl9tdXRleF90cnlfcmVhZF9sb2NrX2ZhaWxlZCA9CiAgICBfX3RzYW5fbXV0ZXhfdHJ5X3JlYWRfbG9jayB8IF9fdHNhbl9tdXRleF90cnlfbG9ja19mYWlsZWQ7CgovLyBBbm5vdGF0ZSBjcmVhdGlvbiBvZiBhIG11dGV4LgovLyBTdXBwb3J0ZWQgZmxhZ3M6IG11dGV4IGNyZWF0aW9uIGZsYWdzLgp2b2lkIF9fdHNhbl9tdXRleF9jcmVhdGUodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwoKLy8gQW5ub3RhdGUgZGVzdHJ1Y3Rpb24gb2YgYSBtdXRleC4KLy8gU3VwcG9ydGVkIGZsYWdzOgovLyAgIC0gX190c2FuX211dGV4X2xpbmtlcl9pbml0Ci8vICAgLSBfX3RzYW5fbXV0ZXhfbm90X3N0YXRpYwp2b2lkIF9fdHNhbl9tdXRleF9kZXN0cm95KHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKCi8vIEFubm90YXRlIHN0YXJ0IG9mIGxvY2sgb3BlcmF0aW9uLgovLyBTdXBwb3J0ZWQgZmxhZ3M6Ci8vICAgLSBfX3RzYW5fbXV0ZXhfcmVhZF9sb2NrCi8vICAgLSBfX3RzYW5fbXV0ZXhfdHJ5X2xvY2sKLy8gICAtIGFsbCBtdXRleCBjcmVhdGlvbiBmbGFncwp2b2lkIF9fdHNhbl9tdXRleF9wcmVfbG9jayh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CgovLyBBbm5vdGF0ZSBlbmQgb2YgbG9jayBvcGVyYXRpb24uCi8vIFN1cHBvcnRlZCBmbGFnczoKLy8gICAtIF9fdHNhbl9tdXRleF9yZWFkX2xvY2sgKG11c3QgbWF0Y2ggX190c2FuX211dGV4X3ByZV9sb2NrKQovLyAgIC0gX190c2FuX211dGV4X3RyeV9sb2NrIChtdXN0IG1hdGNoIF9fdHNhbl9tdXRleF9wcmVfbG9jaykKLy8gICAtIF9fdHNhbl9tdXRleF90cnlfbG9ja19mYWlsZWQKLy8gICAtIF9fdHNhbl9tdXRleF9yZWN1cnNpdmVfbG9jawovLyAgIC0gYWxsIG11dGV4IGNyZWF0aW9uIGZsYWdzCnZvaWQgX190c2FuX211dGV4X3Bvc3RfbG9jayh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncywgaW50IHJlY3Vyc2lvbik7CgovLyBBbm5vdGF0ZSBzdGFydCBvZiB1bmxvY2sgb3BlcmF0aW9uLgovLyBTdXBwb3J0ZWQgZmxhZ3M6Ci8vICAgLSBfX3RzYW5fbXV0ZXhfcmVhZF9sb2NrCi8vICAgLSBfX3RzYW5fbXV0ZXhfcmVjdXJzaXZlX3VubG9jawppbnQgX190c2FuX211dGV4X3ByZV91bmxvY2sodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwoKLy8gQW5ub3RhdGUgZW5kIG9mIHVubG9jayBvcGVyYXRpb24uCi8vIFN1cHBvcnRlZCBmbGFnczoKLy8gICAtIF9fdHNhbl9tdXRleF9yZWFkX2xvY2sgKG11c3QgbWF0Y2ggX190c2FuX211dGV4X3ByZV91bmxvY2spCnZvaWQgX190c2FuX211dGV4X3Bvc3RfdW5sb2NrKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKCi8vIEFubm90YXRlIHN0YXJ0L2VuZCBvZiBub3RpZnkvc2lnbmFsL2Jyb2FkY2FzdCBvcGVyYXRpb24uCi8vIFN1cHBvcnRlZCBmbGFnczogbm9uZS4Kdm9pZCBfX3RzYW5fbXV0ZXhfcHJlX3NpZ25hbCh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CnZvaWQgX190c2FuX211dGV4X3Bvc3Rfc2lnbmFsKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKCi8vIEFubm90YXRlIHN0YXJ0L2VuZCBvZiBhIHJlZ2lvbiBvZiBjb2RlIHdoZXJlIGxvY2svdW5sb2NrL3NpZ25hbCBvcGVyYXRpb24KLy8gZGl2ZXJ0cyB0byBkbyBzb21ldGhpbmcgZWxzZSB1bnJlbGF0ZWQgdG8gdGhlIG11dGV4LiBUaGlzIGNhbiBiZSB1c2VkIHRvCi8vIGFubm90YXRlLCBmb3IgZXhhbXBsZSwgY2FsbHMgaW50byBjb29wZXJhdGl2ZSBzY2hlZHVsZXIgb3IgY29udGVudGlvbgovLyBwcm9maWxpbmcgY29kZS4KLy8gVGhlc2UgYW5ub3RhdGlvbnMgbXVzdCBiZSBjYWxsZWQgb25seSBmcm9tIHdpdGhpbgovLyBfX3RzYW5fbXV0ZXhfcHJlL3Bvc3RfbG9jaywgX190c2FuX211dGV4X3ByZS9wb3N0X3VubG9jaywKLy8gX190c2FuX211dGV4X3ByZS9wb3N0X3NpZ25hbCByZWdpb25zLgovLyBTdXBwb3J0ZWQgZmxhZ3M6IG5vbmUuCnZvaWQgX190c2FuX211dGV4X3ByZV9kaXZlcnQodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwp2b2lkIF9fdHNhbl9tdXRleF9wb3N0X2RpdmVydCh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CgovLyBFeHRlcm5hbCByYWNlIGRldGVjdGlvbiBBUEkuCi8vIENhbiBiZSB1c2VkIGJ5IG5vbi1pbnN0cnVtZW50ZWQgbGlicmFyaWVzIHRvIGRldGVjdCB3aGVuIHRoZWlyIG9iamVjdHMgYXJlCi8vIGJlaW5nIHVzZWQgaW4gYW4gdW5zYWZlIG1hbm5lci4KLy8gICAtIF9fdHNhbl9leHRlcm5hbF9yZWFkL19fdHNhbl9leHRlcm5hbF93cml0ZSBhbm5vdGF0ZXMgdGhlIGxvZ2ljYWwgcmVhZHMKLy8gICAgICAgYW5kIHdyaXRlcyBvZiB0aGUgb2JqZWN0IGF0IHRoZSBzcGVjaWZpZWQgYWRkcmVzcy4gJ2NhbGxlcl9wYycgc2hvdWxkCi8vICAgICAgIGJlIHRoZSBQQyBvZiB0aGUgbGlicmFyeSB1c2VyLCB3aGljaCB0aGUgbGlicmFyeSBjYW4gb2J0YWluIHdpdGggZS5nLgovLyAgICAgICBgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApYC4KLy8gICAtIF9fdHNhbl9leHRlcm5hbF9yZWdpc3Rlcl90YWcgcmVnaXN0ZXJzIGEgJ3RhZycgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsCi8vICAgICAgIHdoaWNoIGlzIGxhdGVyIHVzZWQgaW4gcmVhZC93cml0ZSBhbm5vdGF0aW9ucyB0byBkZW5vdGUgdGhlIG9iamVjdCB0eXBlCi8vICAgLSBfX3RzYW5fZXh0ZXJuYWxfYXNzaWduX3RhZyBjYW4gb3B0aW9uYWxseSBtYXJrIGEgaGVhcCBvYmplY3Qgd2l0aCBhIHRhZwp2b2lkICpfX3RzYW5fZXh0ZXJuYWxfcmVnaXN0ZXJfdGFnKGNvbnN0IGNoYXIgKm9iamVjdF90eXBlKTsKdm9pZCBfX3RzYW5fZXh0ZXJuYWxfcmVnaXN0ZXJfaGVhZGVyKHZvaWQgKnRhZywgY29uc3QgY2hhciAqaGVhZGVyKTsKdm9pZCBfX3RzYW5fZXh0ZXJuYWxfYXNzaWduX3RhZyh2b2lkICphZGRyLCB2b2lkICp0YWcpOwp2b2lkIF9fdHNhbl9leHRlcm5hbF9yZWFkKHZvaWQgKmFkZHIsIHZvaWQgKmNhbGxlcl9wYywgdm9pZCAqdGFnKTsKdm9pZCBfX3RzYW5fZXh0ZXJuYWxfd3JpdGUodm9pZCAqYWRkciwgdm9pZCAqY2FsbGVyX3BjLCB2b2lkICp0YWcpOwoKLy8gRmliZXIgc3dpdGNoaW5nIEFQSS4KLy8gICAtIFRTQU4gY29udGV4dCBmb3IgZmliZXIgY2FuIGJlIGNyZWF0ZWQgYnkgX190c2FuX2NyZWF0ZV9maWJlcgovLyAgICAgYW5kIGZyZWVkIGJ5IF9fdHNhbl9kZXN0cm95X2ZpYmVyLgovLyAgIC0gVFNBTiBjb250ZXh0IG9mIGN1cnJlbnQgZmliZXIgb3IgdGhyZWFkIGNhbiBiZSBvYnRhaW5lZAovLyAgICAgYnkgY2FsbGluZyBfX3RzYW5fZ2V0X2N1cnJlbnRfZmliZXIuCi8vICAgLSBfX3RzYW5fc3dpdGNoX3RvX2ZpYmVyIHNob3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHN3aXRjaAovLyAgICAgdG8gZmliZXIsIHN1Y2ggYXMgY2FsbCBvZiBzd2FwY29udGV4dC4KLy8gICAtIEZpYmVyIG5hbWUgY2FuIGJlIHNldCBieSBfX3RzYW5fc2V0X2ZpYmVyX25hbWUuCnZvaWQgKl9fdHNhbl9nZXRfY3VycmVudF9maWJlcih2b2lkKTsKdm9pZCAqX190c2FuX2NyZWF0ZV9maWJlcih1bnNpZ25lZCBmbGFncyk7CnZvaWQgX190c2FuX2Rlc3Ryb3lfZmliZXIodm9pZCAqZmliZXIpOwp2b2lkIF9fdHNhbl9zd2l0Y2hfdG9fZmliZXIodm9pZCAqZmliZXIsIHVuc2lnbmVkIGZsYWdzKTsKdm9pZCBfX3RzYW5fc2V0X2ZpYmVyX25hbWUodm9pZCAqZmliZXIsIGNvbnN0IGNoYXIgKm5hbWUpOwoKLy8gRmxhZ3MgZm9yIF9fdHNhbl9zd2l0Y2hfdG9fZmliZXI6Ci8vIERvIG5vdCBlc3RhYmxpc2ggYSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbiBiZXR3ZWVuIGZpYmVycwpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX3N3aXRjaF90b19maWJlcl9ub19zeW5jID0gMSA8PCAwOwoKLy8gVXNlci1wcm92aWRlZCBjYWxsYmFjayBpbnZva2VkIG9uIFRTYW4gaW5pdGlhbGl6YXRpb24uCnZvaWQgX190c2FuX29uX2luaXRpYWxpemUoKTsKCi8vIFVzZXItcHJvdmlkZWQgY2FsbGJhY2sgaW52b2tlZCBvbiBUU2FuIHNodXRkb3duLgovLyBgZmFpbGVkYCAtIE5vbnplcm8gaWYgVFNhbiBkaWQgZGV0ZWN0IGlzc3VlcywgemVybyBvdGhlcndpc2UuCi8vIFJldHVybiBgMGAgaWYgVFNhbiBzaG91bGQgZXhpdCBhcyBpZiBubyBpc3N1ZXMgd2VyZSBkZXRlY3RlZC4gIFJldHVybiBub256ZXJvCi8vIGlmIFRTYW4gc2hvdWxkIGV4aXQgYXMgaWYgaXNzdWVzIHdlcmUgZGV0ZWN0ZWQuCmludCBfX3RzYW5fb25fZmluYWxpemUoaW50IGZhaWxlZCk7CgojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gU0FOSVRJWkVSX1RTQU5fSU5URVJGQUNFX0gKACBpcyBub3QgYSBzdHJpbmcuAHByb3RvAFJld3JpdGUgc2NoZW1hIGVycm9yOiAnXCcgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGRpZ2l0IG9yICdcJy4ALi4uAFs6Z3JhcGg6XQBCb3BvbW9mbwBHdW5qYWxhX0dvbmRpAFRha3JpACVzQCAlKnAgICU5ZAoAd3JvbmcgbnVtYmVyIG9mIGVudHJpZXMAcHJldiA8IG5leHQAcmVpbnRlcnByZXRfY2FzdDxjaGFyICo+KHByZXYpICsgcHJldi0+aGVhZGVyLnNpemUgPCByZWludGVycHJldF9jYXN0PGNoYXIgKj4obmV4dCkARGYALT4Ac3IAaW9zdHJlYW0AaGVhZCAAd2FpdGluZyB3aGVuIHNob3VsZG4ndCBiZQAvc3lzdGVtL3Vzci9zaGFyZS96b25laW5mby90emRhdGEAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9lY19rZXkuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3NjYWxhci5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcnNhL3BhZGRpbmcuYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JzYS9yc2EuYwBGSVBTIHNlbGYgdGVzdABGRkMgREgAT1BFTlNTTF9pYTMyY2FwAGt5dGhlLnByb3RvLkVudHJ5LmVkZ2Vfa2luZABjAHN0YXRfcGF0aAAxAEluZGV4SGVhZGVyTWFwACNpZgAjZWxpZgBhcm1fY21zZS5oAGFybV9zdmUuaABhdng1MTJid2ludHJpbi5oAGF2eDUxMnZsaW50cmluLmgAYXZ4NTEydmx2cDJpbnRlcnNlY3RpbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLS0tLS0tLSBlbnFjbWRpbnRyaW4uaCAtIGVucWNtZCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGVucWNtZGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19FTlFDTURJTlRSSU5fSAojZGVmaW5lIF9fRU5RQ01ESU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSAqLwojZGVmaW5lIF9ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImVucWNtZCIpKSkKCi8vLyBSZWFkcyA2NC1ieXRlIGNvbW1hbmQgcG9pbnRlZCBieSBcYSBfX3NyYywgZm9ybWF0cyA2NC1ieXRlIGVucXVldWUgc3RvcmUKLy8vICAgIGRhdGEsIGFuZCBwZXJmb3JtcyA2NC1ieXRlIGVucXVldWUgc3RvcmUgdG8gbWVtb3J5IHBvaW50ZWQgYnkgXGEgX19kc3QuCi8vLyAgICBUaGlzIGludHJpbnNpY3MgbWF5IG9ubHkgYmUgdXNlZCBpbiBVc2VyIG1vZGUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljcyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEVOUUNNRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RzdAovLy8gICAgUG9pbnRlciB0byB0aGUgZGVzdGluYXRpb24gb2YgdGhlIGVucXVldWUgc3RvcmUuCi8vLyBccGFyYW0gX19zcmMKLy8vICAgIFBvaW50ZXIgdG8gNjQtYnl0ZSBjb21tYW5kIGRhdGEuCi8vLyBccmV0dXJucyBJZiB0aGUgY29tbWFuZCBkYXRhIGlzIHN1Y2Nlc3NmdWxseSB3cml0dGVuIHRvIFxhIF9fZHN0IHRoZW4gMCBpcwovLy8gICAgcmV0dXJuZWQuIE90aGVyd2lzZSAxIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX0RFRkFVTFRfRk5fQVRUUlMKX2VucWNtZCAodm9pZCAqX19kc3QsIGNvbnN0IHZvaWQgKl9fc3JjKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2VucWNtZChfX2RzdCwgX19zcmMpOwp9CgovLy8gUmVhZHMgNjQtYnl0ZSBjb21tYW5kIHBvaW50ZWQgYnkgXGEgX19zcmMsIGZvcm1hdHMgNjQtYnl0ZSBlbnF1ZXVlIHN0b3JlCi8vLyAgICBkYXRhLCBhbmQgcGVyZm9ybXMgNjQtYnl0ZSBlbnF1ZXVlIHN0b3JlIHRvIG1lbW9yeSBwb2ludGVkIGJ5IFxhIF9fZHN0Ci8vLyAgICBUaGlzIGludHJpbnNpYyBtYXkgb25seSBiZSB1c2VkIGluIFByaXZpbGVnZWQgbW9kZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWNzIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRU5RQ01EUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RzdAovLy8gICAgUG9pbnRlciB0byB0aGUgZGVzdGluYXRpb24gb2YgdGhlIGVucXVldWUgc3RvcmUuCi8vLyBccGFyYW0gX19zcmMKLy8vICAgIFBvaW50ZXIgdG8gNjQtYnl0ZSBjb21tYW5kIGRhdGEuCi8vLyBccmV0dXJucyBJZiB0aGUgY29tbWFuZCBkYXRhIGlzIHN1Y2Nlc3NmdWxseSB3cml0dGVuIHRvIFxhIF9fZHN0IHRoZW4gMCBpcwovLy8gICAgcmV0dXJuZWQuIE90aGVyd2lzZSAxIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX0RFRkFVTFRfRk5fQVRUUlMKX2VucWNtZHMgKHZvaWQgKl9fZHN0LCBjb25zdCB2b2lkICpfX3NyYykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9lbnFjbWRzKF9fZHN0LCBfX3NyYyk7Cn0KCiN1bmRlZiBfREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fRU5RQ01ESU5UUklOX0ggKi8KAGludHJpbi5oAHN0ZGFsaWduLmgAc2FuaXRpemVyL2h3YXNhbl9pbnRlcmZhY2UuaAByb290AHRleHQgc2l6ZTogAFs6XmFscGhhOl0AWzpeYXNjaWk6XQBbOl5ncmFwaDpdAFs6cHJpbnQ6XQBbOnNwYWNlOl0Abm9wIC0+ICVkAHVuZXhwZWN0ZWQgZXJyb3IAKD9IYXZlTWF0Y2g6JWQpAFtdXi1cAEJhbXVtAENhcmlhbgBNZWRlZmFpZHJpbgBNZXJvaXRpY19DdXJzaXZlAE9zbWFueWEAUHNhbHRlcl9QYWhsYXZpAFNrAFNJR1NFR1YATElOVVhfMi42AG5leHQtPmhlYWRlci5tYWdpYyA9PSBNYWdpYyhrTWFnaWNVbmFsbG9jYXRlZCwgJm5leHQtPmhlYWRlcikAZmxvYXQxNgBtSQA8PABTcwBJbnZhbGlkIGxlbmd0aCAAMDEyMzQ1Njc4OUFCQ0RFRgBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3luY2hyb25pemF0aW9uL211dGV4LmNjAGVucXVldWVfYWZ0ZXItPnNraXAgPT0gbnVsbHB0ciB8fCBNdUVxdWl2YWxlbnRXYWl0ZXIoZW5xdWV1ZV9hZnRlciwgcykATE9DQUxUSU1FAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYWRkLmMAcmVhc29uKCV1KQAlbHU6JXM6JXM6JWQ6JXMKAGt5dGhlLnByb3RvLkNvbXBpbGF0aW9uVW5pdC5hcmd1bWVudAAKAGt5dGhlLnByb3RvLmNvbW1vbi5GYWN0Lm5hbWUALS1uby13YXJuaW5ncwBLWVRIRV9ST09UX0RJUkVDVE9SWQBGYWlsZWQgdG8gb3BlbiBLemlwV3JpdGVyOiAAcmVxdWlyZWRfaW5wdXQAICgxPQBJbnZhcmlhbnQgYnJva2VuOiBvbmx5IG5vZGVzIHRoYXQgc3VwcG9ydCBtZW1vaXphdGlvbiBtYXkgYmUgdXNlZCBpbiB0aGUgcGFyZW50IG1hcC4AZ2ZuaWludHJpbi5oAC8qID09PS0tLS0tLS0tIHZhZGVmcy5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogT25seSBpbmNsdWRlIHRoaXMgaWYgd2UgYXJlIGFpbWluZyBmb3IgTVNWQyBjb21wYXRpYmlsaXR5LiAqLwojaWZuZGVmIF9NU0NfVkVSCiNpbmNsdWRlX25leHQgPHZhZGVmcy5oPgojZWxzZQoKI2lmbmRlZiBfX2NsYW5nX3ZhZGVmc19oCiNkZWZpbmUgX19jbGFuZ192YWRlZnNfaAoKI2luY2x1ZGVfbmV4dCA8dmFkZWZzLmg+CgovKiBPdmVycmlkZSBtYWNyb3MgZnJvbSB2YWRlZnMuaCB3aXRoIGRlZmluaXRpb25zIHRoYXQgd29yayB3aXRoIENsYW5nLiAqLwojaWZkZWYgX2NydF92YV9zdGFydAojdW5kZWYgX2NydF92YV9zdGFydAojZGVmaW5lIF9jcnRfdmFfc3RhcnQoYXAsIHBhcmFtKSBfX2J1aWx0aW5fdmFfc3RhcnQoYXAsIHBhcmFtKQojZW5kaWYKI2lmZGVmIF9jcnRfdmFfZW5kCiN1bmRlZiBfY3J0X3ZhX2VuZAojZGVmaW5lIF9jcnRfdmFfZW5kKGFwKSAgICAgICAgICBfX2J1aWx0aW5fdmFfZW5kKGFwKQojZW5kaWYKI2lmZGVmIF9jcnRfdmFfYXJnCiN1bmRlZiBfY3J0X3ZhX2FyZwojZGVmaW5lIF9jcnRfdmFfYXJnKGFwLCB0eXBlKSAgICBfX2J1aWx0aW5fdmFfYXJnKGFwLCB0eXBlKQojZW5kaWYKCi8qIFZTIDIwMTUgc3dpdGNoZWQgdG8gZG91YmxlIHVuZGVyc2NvcmUgbmFtZXMsIHdoaWNoIGlzIGFuIGltcHJvdmVtZW50LCBidXQgbm93CiAqIHdlIGhhdmUgdG8gaW50ZXJjZXB0IHRob3NlIG5hbWVzIHRvby4KICovCiNpZmRlZiBfX2NydF92YV9zdGFydAojdW5kZWYgX19jcnRfdmFfc3RhcnQKI2RlZmluZSBfX2NydF92YV9zdGFydChhcCwgcGFyYW0pIF9fYnVpbHRpbl92YV9zdGFydChhcCwgcGFyYW0pCiNlbmRpZgojaWZkZWYgX19jcnRfdmFfZW5kCiN1bmRlZiBfX2NydF92YV9lbmQKI2RlZmluZSBfX2NydF92YV9lbmQoYXApICAgICAgICAgIF9fYnVpbHRpbl92YV9lbmQoYXApCiNlbmRpZgojaWZkZWYgX19jcnRfdmFfYXJnCiN1bmRlZiBfX2NydF92YV9hcmcKI2RlZmluZSBfX2NydF92YV9hcmcoYXAsIHR5cGUpICAgIF9fYnVpbHRpbl92YV9hcmcoYXAsIHR5cGUpCiNlbmRpZgoKI2VuZGlmCiNlbmRpZgoALyo9PT0tLS0tIHdtbWludHJpbi5oIC0gQUVTIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fV01NSU5UUklOX0gKI2RlZmluZSBfX1dNTUlOVFJJTl9ICgojaW5jbHVkZSA8ZW1taW50cmluLmg+CgojaW5jbHVkZSA8X193bW1pbnRyaW5fYWVzLmg+CgojaW5jbHVkZSA8X193bW1pbnRyaW5fcGNsbXVsLmg+CgojZW5kaWYgLyogX19XTU1JTlRSSU5fSCAqLwoAeHNhdmVzaW50cmluLmgAYml0cy9zdGRhdG9taWMuaABwcGNfd3JhcHBlcnMvcG1taW50cmluLmgALy89PT0tLSBzYW5pdGl6ZXIvbHNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBMZWFrU2FuaXRpemVyLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlci4KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KI2lmbmRlZiBTQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9MU0FOX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKICAvLyBBbGxvY2F0aW9ucyBtYWRlIGJldHdlZW4gY2FsbHMgdG8gX19sc2FuX2Rpc2FibGUoKSBhbmQgX19sc2FuX2VuYWJsZSgpIHdpbGwKICAvLyBiZSB0cmVhdGVkIGFzIG5vbi1sZWFrcy4gRGlzYWJsZS9lbmFibGUgcGFpcnMgbWF5IGJlIG5lc3RlZC4KICB2b2lkIF9fbHNhbl9kaXNhYmxlKHZvaWQpOwogIHZvaWQgX19sc2FuX2VuYWJsZSh2b2lkKTsKCiAgLy8gVGhlIGhlYXAgb2JqZWN0IGludG8gd2hpY2ggcCBwb2ludHMgd2lsbCBiZSB0cmVhdGVkIGFzIGEgbm9uLWxlYWsuCiAgdm9pZCBfX2xzYW5faWdub3JlX29iamVjdChjb25zdCB2b2lkICpwKTsKCiAgLy8gTWVtb3J5IHJlZ2lvbnMgcmVnaXN0ZXJlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHdpbGwgYmUgdHJlYXRlZCBhcyBzb3VyY2VzCiAgLy8gb2YgbGl2ZSBwb2ludGVycyBkdXJpbmcgbGVhayBjaGVja2luZy4gVXNlZnVsIGlmIHlvdSBzdG9yZSBwb2ludGVycyBpbgogIC8vIG1hcHBlZCBtZW1vcnkuCiAgLy8gUG9pbnRzIG9mIG5vdGU6CiAgLy8gLSBfX2xzYW5fdW5yZWdpc3Rlcl9yb290X3JlZ2lvbigpIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIHNhbWUgcG9pbnRlciBhbmQKICAvLyBzaXplIHRoYXQgaGF2ZSBlYXJsaWVyIGJlZW4gcGFzc2VkIHRvIF9fbHNhbl9yZWdpc3Rlcl9yb290X3JlZ2lvbigpCiAgLy8gLSBMU2FuIHdpbGwgc2tpcCBhbnkgaW5hY2Nlc3NpYmxlIG1lbW9yeSB3aGVuIHNjYW5uaW5nIGEgcm9vdCByZWdpb24uIEUuZy4sCiAgLy8gaWYgeW91IG1hcCBtZW1vcnkgd2l0aGluIGEgbGFyZ2VyIHJlZ2lvbiB0aGF0IHlvdSBoYXZlIG1wcm90ZWN0J2VkLCB5b3UgY2FuCiAgLy8gcmVnaXN0ZXIgdGhlIGVudGlyZSBsYXJnZSByZWdpb24uCiAgLy8gLSB0aGUgaW1wbGVtZW50YXRpb24gaXMgbm90IG9wdGltaXplZCBmb3IgcGVyZm9ybWFuY2UuIFRoaXMgaW50ZXJmYWNlIGlzCiAgLy8gaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgYSBzbWFsbCBudW1iZXIgb2YgcmVsYXRpdmVseSBzdGF0aWMgcmVnaW9ucy4KICB2b2lkIF9fbHNhbl9yZWdpc3Rlcl9yb290X3JlZ2lvbihjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCBfX2xzYW5fdW5yZWdpc3Rlcl9yb290X3JlZ2lvbihjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CgogIC8vIENoZWNrIGZvciBsZWFrcyBub3cuIFRoaXMgZnVuY3Rpb24gYmVoYXZlcyBpZGVudGljYWxseSB0byB0aGUgZGVmYXVsdAogIC8vIGVuZC1vZi1wcm9jZXNzIGxlYWsgY2hlY2suIEluIHBhcnRpY3VsYXIsIGl0IHdpbGwgdGVybWluYXRlIHRoZSBwcm9jZXNzIGlmCiAgLy8gbGVha3MgYXJlIGZvdW5kIGFuZCB0aGUgZXhpdGNvZGUgcnVudGltZSBmbGFnIGlzIG5vbi16ZXJvLgogIC8vIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0IGFuZCBlbmQtb2YtcHJvY2VzcwogIC8vIGxlYWsgY2hlY2sgd2lsbCBub3QgcnVuLiBFZmZlY3RpdmVseSwgZW5kLW9mLXByb2Nlc3MgbGVhayBjaGVjayBpcyBtb3ZlZCB0bwogIC8vIHRoZSB0aW1lIG9mIGZpcnN0IGludm9jYXRpb24gb2YgdGhpcyBmdW5jdGlvbi4KICAvLyBCeSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gZWFybHkgZHVyaW5nIHByb2Nlc3Mgc2h1dGRvd24sIHlvdSBjYW4gaW5zdHJ1Y3QKICAvLyBMU2FuIHRvIGlnbm9yZSBzaHV0ZG93bi1vbmx5IGxlYWtzIHdoaWNoIGhhcHBlbiBsYXRlciBvbi4KICB2b2lkIF9fbHNhbl9kb19sZWFrX2NoZWNrKHZvaWQpOwoKICAvLyBDaGVjayBmb3IgbGVha3Mgbm93LiBSZXR1cm5zIHplcm8gaWYgbm8gbGVha3MgaGF2ZSBiZWVuIGZvdW5kIG9yIGlmIGxlYWsKICAvLyBkZXRlY3Rpb24gaXMgZGlzYWJsZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KICAvLyBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgcmVwZWF0ZWRseSwgZS5nLiB0byBwZXJpb2RpY2FsbHkgY2hlY2sgYQogIC8vIGxvbmctcnVubmluZyBwcm9jZXNzLiBJdCBwcmludHMgYSBsZWFrIHJlcG9ydCBpZiBhcHByb3ByaWF0ZSwgYnV0IGRvZXMgbm90CiAgLy8gdGVybWluYXRlIHRoZSBwcm9jZXNzLiBJdCBkb2VzIG5vdCBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mCiAgLy8gX19sc2FuX2RvX2xlYWtfY2hlY2soKSBvciB0aGUgZW5kLW9mLXByb2Nlc3MgbGVhayBjaGVjaywgYW5kIGlzIG5vdAogIC8vIGFmZmVjdGVkIGJ5IHRoZW0uCiAgaW50IF9fbHNhbl9kb19yZWNvdmVyYWJsZV9sZWFrX2NoZWNrKHZvaWQpOwoKICAvLyBUaGUgdXNlciBtYXkgb3B0aW9uYWxseSBwcm92aWRlIHRoaXMgZnVuY3Rpb24gdG8gZGlzYWxsb3cgbGVhayBjaGVja2luZwogIC8vIGZvciB0aGUgcHJvZ3JhbSBpdCBpcyBsaW5rZWQgaW50byAoaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBub24temVybykuIFRoaXMKICAvLyBmdW5jdGlvbiBtdXN0IGJlIGRlZmluZWQgYXMgcmV0dXJuaW5nIGEgY29uc3RhbnQgdmFsdWU7IGFueSBiZWhhdmlvciBiZXlvbmQKICAvLyB0aGF0IGlzIHVuc3VwcG9ydGVkLgogIC8vIFRvIGF2b2lkIGRlYWQgc3RyaXBwaW5nLCB5b3UgbWF5IG5lZWQgdG8gZGVmaW5lIHRoaXMgZnVuY3Rpb24gd2l0aAogIC8vIF9fYXR0cmlidXRlX18oKHVzZWQpKQogIGludCBfX2xzYW5faXNfdHVybmVkX29mZih2b2lkKTsKCiAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUgb3B0aW9uYWxseSBwcm92aWRlZCBieSB1c2VyIGFuZCBzaG91bGQgcmV0dXJuCiAgLy8gYSBzdHJpbmcgY29udGFpbmluZyBMU2FuIHJ1bnRpbWUgb3B0aW9ucy4gU2VlIGxzYW5fZmxhZ3MuaW5jIGZvciBkZXRhaWxzLgogIGNvbnN0IGNoYXIgKl9fbHNhbl9kZWZhdWx0X29wdGlvbnModm9pZCk7CgogIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgdGhlIHVzZXIgYW5kIHNob3VsZCByZXR1cm4KICAvLyBhIHN0cmluZyBjb250YWluaW5nIExTYW4gc3VwcHJlc3Npb25zLgogIGNvbnN0IGNoYXIgKl9fbHNhbl9kZWZhdWx0X3N1cHByZXNzaW9ucyh2b2lkKTsKI2lmZGVmIF9fY3BsdXNwbHVzCn0gIC8vIGV4dGVybiAiQyIKCm5hbWVzcGFjZSBfX2xzYW4gewpjbGFzcyBTY29wZWREaXNhYmxlciB7CiBwdWJsaWM6CiAgU2NvcGVkRGlzYWJsZXIoKSB7IF9fbHNhbl9kaXNhYmxlKCk7IH0KICB+U2NvcGVkRGlzYWJsZXIoKSB7IF9fbHNhbl9lbmFibGUoKTsgfQp9Owp9ICAvLyBuYW1lc3BhY2UgX19sc2FuCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSAoAZnNlZWsoaGFuZGxlLCAwLCAyKQAsIDA9ACAoZnNlZWsoaGFuZGxlLCAwLCAwKT0AIT0ATWlzc2luZyBhIGNvbG9uIGFmdGVyIGEgbmFtZSBvZiBvYmplY3QgbWVtYmVyLgBVbmtub3duIG5hbWVkIGNhcHR1cmU6IAAnLCB1c2luZyBKU09OAFx4MDAAWzpeeGRpZ2l0Ol0AIGluIHN0ZXAAR290aGljAEthbm5hZGEATWFuZGFpYwBTaWduV3JpdGluZwBUZWx1Z3UAWmFuYWJhemFyX1NxdWFyZQAlc0AgJSpwICAlOWQgICVzCgAocmVhZF9mZCA+PiAyNCkgPT0gMCAmJiAod3JpdGVfZmQgPj4gMjQpID09IDAAc2l6ZSAlIGFyZW5hLT5wYWdlc2l6ZSA9PSAwAHB0aHJlYWRfc2lnbWFzayBmYWlsZWQ6ICVkAGYtPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBiAGRlbGV0ZVtdAHBzAHJTAENoZWNrIG5vZGUtPmNvbmNhdCgpLT5sZWZ0ICE9IG51bGxwdHIgZmFpbGVkOiAARmFpbGVkIHRvIGxvY2F0ZSBzdW0gbm9kZQAgZXhjZWVkcyAweGZmACwgY2hpbGQgACwgY2xlbiA9IABlbnRyeVsAVW5sb2NrU2xvdyBpcyBjb25mdXNlZAB3LT53YWl0cC0+Y3Zfd29yZCA9PSBudWxscHRyAE11dGV4IEVucXVldWUgZmFpbHVyZQBsaWJjOgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RoL2RoLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhX2ltcGwuYwBBRVMtQ0JDIERlY3J5cHRpb24gS0FUAGt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnB1c0luZm8uTGFuZ3VhZ2VTb3VyY2VzRW50cnkua2V5AE1hcEtleTo6dHlwZSBNYXBLZXkgaXMgbm90IGluaXRpYWxpemVkLiAAa3l0aGUucHJvdG8uQnVpbGREZXRhaWxzLmJ1aWxkX2NvbmZpZwBreXRoZS5wcm90by5jb21tb24uQ29ycHVzUGF0aC5wYXRoAGt5dGhlLnByb3RvLmNvbW1vbi5MaW5rLmRlZmluaXRpb24Ab3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9jeHgucGIuY2MALS1hbmFseXplfC1DQz98LUV8LUwuKnwtTU0/RHwtTVtNR1BdP3wtU3wtV1thbF0sLip8LWN8LWYobm8tKT9kYXRhLXNlY3Rpb25zfC1mKG5vLSk/ZnVuY3Rpb24tc2VjdGlvbnN8LWYobm8tKT9vbWl0LWZyYW1lLXBvaW50ZXJ8LWYobm8tKT9wcm9maWxlLWFyY3N8LWYobm8tKT9zdGFjay1wcm90ZWN0b3IoLWFsbCk/fC1mKG5vLSk/c3RyaWN0LWFsaWFzaW5nfC1mKG5vLSk/dGVzdC1jb3ZlcmFnZXwtZihuby0pP3Vucm9sbC1sb29wc3wtZnN5bnRheC1vbmx5fC1nLit8LW5vc3RhcnRmaWxlc3wtc3wtc2hhcmVkAFdyb3RlIEZpbGVEYXRhIHdpdGggbWlzbWF0Y2hlZCBkaWdlc3RzOiAAT2JqQwBhdng1MTJlcmludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJ2bHZibWkyaW50cmluLmggLSBWQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmx2Ym1pMmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTFZCTUkySU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMVkJNSTJJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZibWkyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZibWkyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NfZXBpMTYoX19tMTI4aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGkxMjhfbWFzayAoKF9fdjhoaSkgX19ELAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY29tcHJlc3NfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTEyOF9tYXNrICgoX192OGhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTEyOF9tYXNrICgoX192MTZxaSkgX19ELAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9lcGkxNih2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGkxMjhfbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y4aGkpIF9fRCwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9lcGk4KHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlcWkxMjhfbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MTZxaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGkxNihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGkxMjhfbWFzayAoKF9fdjhoaSkgX19ELAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpMTI4X21hc2sgKChfX3Y4aGkpIF9fRCwKICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRsb2FkdV9lcGkxNihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopX19QLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpMTYoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopX19QLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kbG9hZHVfZXBpOChfX20xMjhpIF9fUywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkcWkxMjhfbWFzayAoKGNvbnN0IF9fdjE2cWkgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpOChfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTEyOF9tYXNrICgoY29uc3QgX192MTZxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc19lcGkxNihfX20yNTZpIF9fUywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGkyNTZfbWFzayAoKF9fdjE2aGkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTI1Nl9tYXNrICgoX192MTZoaSkgX19ELAogICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzX2VwaTgoX19tMjU2aSBfX1MsIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3FpMjU2X21hc2sgKChfX3YzMnFpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29tcHJlc3NfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTE2KHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGkyNTZfbWFzayAoKF9fdjE2aGkgKikgX19QLCAoX192MTZoaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTgodm9pZCAqX19QLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fRCkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVxaTI1Nl9tYXNrICgoX192MzJxaSAqKSBfX1AsIChfX3YzMnFpKSBfX0QsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTE2KF9fbTI1NmkgX19TLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGkyNTZfbWFzayAoKF9fdjE2aGkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpMjU2X21hc2sgKChfX3YxNmhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTgoX19tMjU2aSBfX1MsIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZF9lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2V4cGFuZGxvYWR1X2VwaTE2KF9fbTI1NmkgX19TLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTI1Nl9tYXNrICgoY29uc3QgX192MTZoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGkxNihfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTI1Nl9tYXNrICgoY29uc3QgX192MTZoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRsb2FkdV9lcGk4KF9fbTI1NmkgX19TLCBfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTI1Nl9tYXNrICgoY29uc3QgX192MzJxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGk4KF9fbW1hc2szMiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHFpMjU2X21hc2sgKChjb25zdCBfX3YzMnFpICopX19QLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCiNkZWZpbmUgX21tMjU2X3NobGRpX2VwaTY0KEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaGxkcTI1NigoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NobGRpX2VwaTY0KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NobGRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9zaGxkaV9lcGk2NChBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHExMjgoKF9fdjJkaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW1fbWFza19zaGxkaV9lcGk2NChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoUykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2hsZGlfZXBpNjQoVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NobGRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9zaGxkaV9lcGkzMihBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZGQyNTYoKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaGxkaV9lcGkzMihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaGxkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hsZGlfZXBpMzIoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobGRkMTI4KChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hsZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NobGRpX2VwaTMyKFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaGxkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfc2hsZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNobGR3MjU2KChfX3YxNmhpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaGxkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zaGxkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2hsZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9zaGxkaV9lcGkxNihBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHcxMjgoKF9fdjhoaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW1fbWFza19zaGxkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoUykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2hsZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NobGRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9zaHJkaV9lcGk2NChBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZHEyNTYoKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHJkaV9lcGk2NChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaHJkaV9lcGk2NChVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hyZGlfZXBpNjQoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmRxMTI4KChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hyZGlfZXBpNjQoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NocmRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfc2hyZGlfZXBpMzIoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNocmRkMjU2KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2hyZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2hyZGlfZXBpMzIoVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX3NocmRpX2VwaTMyKEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkZDEyOCgoX192NHNpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbV9tYXNrX3NocmRpX2VwaTMyKFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHJkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hyZGlfZXBpMzIoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X3NocmRpX2VwaTE2KEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaHJkdzI1NigoX192MTZoaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2hyZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NocmRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NocmRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hyZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmR3MTI4KChfX3Y4aGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hyZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NocmRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NocmRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHJkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NobGR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaGxkdnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NobGR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hsZHZfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2hsZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobGR2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2hsZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zaGxkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NobGR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaGxkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zaGxkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NobGR2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2hsZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NobGR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGxkdmQxMjgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NobGR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hsZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hsZHZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2hsZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNobGR2dzI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2hsZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NobGR2X2VwaTE2KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zaGxkdl9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zaGxkdl9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZ3MTI4KChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zaGxkdl9lcGkxNihfX20xMjhpIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NobGR2X2VwaTE2KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NobGR2X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NocmR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaHJkdnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NocmR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hyZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hyZHZfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2hyZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmR2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2hyZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zaHJkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NocmR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaHJkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZHZkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zaHJkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NocmR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NocmR2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2hyZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NocmR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkdmQxMjgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NocmR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hyZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hyZHZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHJkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2hyZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNocmR2dzI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2hyZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NocmR2X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkdncxMjgoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NocmR2X2VwaTE2KF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHJkdl9lcGkxNihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGF2eHZubmlpbnRyaW4uaABjZXRpbnRyaW4uaAAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgIChjKSAyMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaWZuZGVmIEhFWEFHT05fVFlQRVNfSAojZGVmaW5lIEhFWEFHT05fVFlQRVNfSAoKI2luY2x1ZGUgPGhleGFnb25fcHJvdG9zLmg+CgovKiBIZXhhZ29uIG5hbWVzICovCiNkZWZpbmUgSEVYQUdPTl9WZWN0IEhFWEFHT05fVmVjdDY0CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9EIEhFWEFHT05fVjY0X0dFVF9ECiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VRCBIRVhBR09OX1Y2NF9HRVRfVUQKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1cwIEhFWEFHT05fVjY0X0dFVF9XMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVzEgSEVYQUdPTl9WNjRfR0VUX1cxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VVzAgSEVYQUdPTl9WNjRfR0VUX1VXMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVVcxIEhFWEFHT05fVjY0X0dFVF9VVzEKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0gwIEhFWEFHT05fVjY0X0dFVF9IMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfSDEgSEVYQUdPTl9WNjRfR0VUX0gxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9IMiBIRVhBR09OX1Y2NF9HRVRfSDIKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0gzIEhFWEFHT05fVjY0X0dFVF9IMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUgwIEhFWEFHT05fVjY0X0dFVF9VSDAKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VIMSBIRVhBR09OX1Y2NF9HRVRfVUgxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VSDIgSEVYQUdPTl9WNjRfR0VUX1VIMgojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUgzIEhFWEFHT05fVjY0X0dFVF9VSDMKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0IwIEhFWEFHT05fVjY0X0dFVF9CMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjEgSEVYQUdPTl9WNjRfR0VUX0IxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9CMiBIRVhBR09OX1Y2NF9HRVRfQjIKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0IzIEhFWEFHT05fVjY0X0dFVF9CMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjQgSEVYQUdPTl9WNjRfR0VUX0I0CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9CNSBIRVhBR09OX1Y2NF9HRVRfQjUKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0I2IEhFWEFHT05fVjY0X0dFVF9CNgojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjcgSEVYQUdPTl9WNjRfR0VUX0I3CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjAgSEVYQUdPTl9WNjRfR0VUX1VCMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUIxIEhFWEFHT05fVjY0X0dFVF9VQjEKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VCMiBIRVhBR09OX1Y2NF9HRVRfVUIyCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjMgSEVYQUdPTl9WNjRfR0VUX1VCMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUI0IEhFWEFHT05fVjY0X0dFVF9VQjQKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VCNSBIRVhBR09OX1Y2NF9HRVRfVUI1CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjYgSEVYQUdPTl9WNjRfR0VUX1VCNgojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUI3IEhFWEFHT05fVjY0X0dFVF9VQjcKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0QgSEVYQUdPTl9WNjRfUFVUX0QKI2RlZmluZSBIRVhBR09OX1ZfUFVUX1cwIEhFWEFHT05fVjY0X1BVVF9XMAojZGVmaW5lIEhFWEFHT05fVl9QVVRfVzEgSEVYQUdPTl9WNjRfUFVUX1cxCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9IMCBIRVhBR09OX1Y2NF9QVVRfSDAKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0gxIEhFWEFHT05fVjY0X1BVVF9IMQojZGVmaW5lIEhFWEFHT05fVl9QVVRfSDIgSEVYQUdPTl9WNjRfUFVUX0gyCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9IMyBIRVhBR09OX1Y2NF9QVVRfSDMKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0IwIEhFWEFHT05fVjY0X1BVVF9CMAojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjEgSEVYQUdPTl9WNjRfUFVUX0IxCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9CMiBIRVhBR09OX1Y2NF9QVVRfQjIKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0IzIEhFWEFHT05fVjY0X1BVVF9CMwojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjQgSEVYQUdPTl9WNjRfUFVUX0I0CiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9CNSBIRVhBR09OX1Y2NF9QVVRfQjUKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0I2IEhFWEFHT05fVjY0X1BVVF9CNgojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjcgSEVYQUdPTl9WNjRfUFVUX0I3CiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9EIEhFWEFHT05fVjY0X0NSRUFURV9ECiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9XIEhFWEFHT05fVjY0X0NSRUFURV9XCiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9IIEhFWEFHT05fVjY0X0NSRUFURV9ICiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9CIEhFWEFHT05fVjY0X0NSRUFURV9CCgojaWZkZWYgX19jcGx1c3BsdXMKI2RlZmluZSBIRVhBR09OX1ZlY3RDIEhFWEFHT05fVmVjdDY0QwojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8qIDY0IEJpdCBWZWN0b3JzICovCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX21heV9hbGlhc19fKSkgSEVYQUdPTl9WZWN0NjQ7CgovKiBFeHRyYWN0IGRvdWJsZXdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9EKHYpICh2KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VRCh2KSAoKHVuc2lnbmVkIGxvbmcgbG9uZykodikpCgovKiBFeHRyYWN0IHdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9XMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1cxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24ud1sxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVVcwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IHV3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51d1swXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VVzEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgdXdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnV3WzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0gwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9IMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0gzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VIMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIHNob3J0IHVoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUgzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51aFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogRXh0cmFjdCBieXRlIG1hY3JvcyAqLwoKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0IyKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjModikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CNCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0I1KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYls1XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjYodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CNyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbN107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUI0KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VQjUodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnViWzVdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCNih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbNl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUI3KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51Yls3XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogTk9URTogQWxsIHNldCBtYWNyb3MgcmV0dXJuIGEgSEVYQUdPTl9WZWN0NjQgdHlwZSAqLwoKLyogU2V0IGRvdWJsZXdvcmQgbWFjcm8gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0QodiwgbmV3KSAobmV3KQoKLyogU2V0IHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX1cwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24ud1swXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfVzEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi53WzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9XMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZjAwMDAwMDAwTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIGludCkobmV3KSkpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9XMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHgwMDAwMDAwMGZmZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKG5ldykpIDw8IDMyTEwpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogU2V0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfSDAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9IMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmhbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfSDModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmZmYwMDAwTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDAwMGZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkgPDwgMTZMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMDAwZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkgPDwgMzJMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwMDBmZmZmZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkobmV3KSkgPDwgNDhMTCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBTZXQgYnl0ZSBtYWNyb3MgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbNF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I1KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYls1XSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjYodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbN10gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZmZmMDBMTCkgfCAoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmZmYwMGZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgOExMKSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmZmZjAwZmZmZkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDE2TEwpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZjAwZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgMjRMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I0KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZjAwZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAzMkxMKSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjUodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwZmZmZmZmZmZmZkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDQwTEwpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZjAwZmZmZmZmZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgNDhMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I3KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwZmZmZmZmZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkobmV3KSkgPDwgNTZMTCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBIRVhBR09OX1ZlY3Q2NCB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIGRvdWJsZXdvcmQgKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfQ1JFQVRFX0QoZCkgKGQpCgovKiBDcmVhdGUgZnJvbSB3b3JkcyAqLwoKI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9XKHcxLCB3MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMF0gPSAodzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMV0gPSAodzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfQ1JFQVRFX1codzEsIHcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKEhFWEFHT05fVmVjdDY0KSh3MSkpIDw8IDMyTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHcwKSAmIDB4ZmZmZmZmZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCi8qIENyZWF0ZSBmcm9tIGhhbGYgd29yZHMgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzBdID0gKGgwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzFdID0gKGgxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzJdID0gKGgyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzNdID0gKGgzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9IKGgzLCBoMiwgaDEsIGgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChIRVhBR09OX1ZlY3Q2NCkoaDMpKSA8PCA0OExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoaDIpICYgMHhmZmZmKSkgPDwgMzJMTCkgfCAgICAgICAgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGgxKSAmIDB4ZmZmZikpIDw8IDE2TEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKGgwKSAmIDB4ZmZmZikpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdID0gKGIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzFdID0gKGIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzJdID0gKGIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdID0gKGIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzRdID0gKGI0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzVdID0gKGI1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdID0gKGI2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzddID0gKGI3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9CKGI3LCBiNiwgYjUsIGI0LCBiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChIRVhBR09OX1ZlY3Q2NCkoYjcpKSA8PCA1NkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjYpICYgMHhmZikpIDw8IDQ4TEwpIHwgICAgICAgICAgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGI1KSAmIDB4ZmYpKSA8PCA0MExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjQpICYgMHhmZikpIDw8IDMyTEwpIHwgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGIzKSAmIDB4ZmYpKSA8PCAyNExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjIpICYgMHhmZikpIDw8IDE2TEwpIHwgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGIxKSAmIDB4ZmYpKSA8PCA4TEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKGIwKSAmIDB4ZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgSEVYQUdPTl9WZWN0NjRDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIEhFWEFHT05fVmVjdDY0Qyhsb25nIGxvbmcgZCA9IDApIDogZGF0YShkKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoaW50IHcxLCBpbnQgdzApIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfVyh3MSwgdzApKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoc2hvcnQgaDMsIHNob3J0IGgyLCBzaG9ydCBoMSwgc2hvcnQgaDApCiAgICAgIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkpIHt9OwogIEhFWEFHT05fVmVjdDY0QyhzaWduZWQgY2hhciBiNywgc2lnbmVkIGNoYXIgYjYsIHNpZ25lZCBjaGFyIGI1LCBzaWduZWQgY2hhciBiNCwKICAgICAgICAgICAgc2lnbmVkIGNoYXIgYjMsIHNpZ25lZCBjaGFyIGIyLCBzaWduZWQgY2hhciBiMSwgc2lnbmVkIGNoYXIgYjApCiAgICAgIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoY29uc3QgSEVYQUdPTl9WZWN0NjRDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgSEVYQUdPTl9WZWN0NjRDICZvcGVyYXRvcj0oY29uc3QgSEVYQUdPTl9WZWN0NjRDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGxvbmcgbG9uZygpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3QgZG91Ymxld29yZCBtZXRob2RzCiAgbG9uZyBsb25nIEQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9EKGRhdGEpOwogIH07CiAgdW5zaWduZWQgbG9uZyBsb25nIFVEKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUQoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCB3b3JkIG1ldGhvZHMKICBpbnQgVzAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9XMChkYXRhKTsKICB9OwogIGludCBXMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1cxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXMCh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VXMChkYXRhKTsKICB9OwogIHVuc2lnbmVkIGludCBVVzEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VVzEoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0gxKGRhdGEpOwogIH07CiAgc2hvcnQgSDIodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9IMihkYXRhKTsKICB9OwogIHNob3J0IEgzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfSDMoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDAoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDIodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDIoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDModm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDMoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBieXRlIG1ldGhvZHMKICBzaWduZWQgY2hhciBCMCh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0IwKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CMShkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIyKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfQjIoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMyh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0IzKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CNChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEI1KHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfQjUoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCNih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0I2KGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CNyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUIzKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjQoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCNSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VCNShkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUI2KHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUI2KGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjcoZGF0YSk7CiAgfTsKCiAgLy8gTk9URTogQWxsIHNldCBtZXRob2RzIHJldHVybiBhIEhFWEFHT05fVmVjdDY0QyB0eXBlCgogIC8vIFNldCBkb3VibGV3b3JkIG1ldGhvZAogIEhFWEFHT05fVmVjdDY0QyBEKGxvbmcgbG9uZyBkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9EKGRhdGEsIGQpKTsKICB9OwoKICAvLyBTZXQgd29yZCBtZXRob2RzCiAgSEVYQUdPTl9WZWN0NjRDIFcwKGludCB3KSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9XMChkYXRhLCB3KSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgVzEoaW50IHcpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX1cxKGRhdGEsIHcpKTsKICB9OwoKICAvLyBTZXQgaGFsZiB3b3JkIG1ldGhvZHMKICBIRVhBR09OX1ZlY3Q2NEMgSDAoc2hvcnQgaCkgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfSDAoZGF0YSwgaCkpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEgxKHNob3J0IGgpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0gxKGRhdGEsIGgpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBIMihzaG9ydCBoKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9IMihkYXRhLCBoKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgSDMoc2hvcnQgaCkgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfSDMoZGF0YSwgaCkpOwogIH07CgogIC8vIFNldCBieXRlIG1ldGhvZHMKICBIRVhBR09OX1ZlY3Q2NEMgQjAoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjAoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEIxKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0IxKGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBCMihzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9CMihkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgQjMoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjMoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEI0KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0I0KGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBCNShzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9CNShkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgQjYoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjYoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEI3KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0I3KGRhdGEsIGIpKTsKICB9OwoKcHJpdmF0ZToKICBsb25nIGxvbmcgZGF0YTsKfTsKCiNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwoKLyogMzIgQml0IFZlY3RvcnMgKi8KCnR5cGVkZWYgaW50IEhFWEFHT05fVmVjdDMyOwoKLyogRXh0cmFjdCB3b3JkIG1hY3JvcyAqLwoKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVyh2KSAodikKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVVcodikgKCh1bnNpZ25lZCBpbnQpKHYpKQoKLyogRXh0cmFjdCBoYWxmIHdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9IMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmhbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX0gxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGJ5dGUgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9CMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX0IxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uYlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5iWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9CMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8qIE5PVEU6IEFsbCBzZXQgbWFjcm9zIHJldHVybiBhIEhFWEFHT05fVmVjdDMyIHR5cGUgKi8KCi8qIFNldCB3b3JkIG1hY3JvICovCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9XKHYsIG5ldykgKG5ldykKCi8qIFNldCBoYWxmIHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5oWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmMDAwMCkgfCAoKEhFWEFHT05fVmVjdDMyKSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfSDEodiwgbmV3KSAoKCh2KSAmIDB4MDAwMGZmZmYpIHwgKCgoSEVYQUdPTl9WZWN0MzIpKG5ldykpIDw8IDE2KSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCi8qIFNldCBieXRlIG1hY3JvcyAqLwoKI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uYlsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfQjIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5iWzJdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM10gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZjAwKSB8ICgoSEVYQUdPTl9WZWN0MzIpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkpCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMGZmKSB8ICgoKEhFWEFHT05fVmVjdDMyKSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDgpKQojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZjAwZmZmZikgfCAoKChIRVhBR09OX1ZlY3QzMikoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAxNikpCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IzKHYsIG5ldykgKCgodikgJiAweDAwZmZmZmZmKSB8ICgoKEhFWEFHT05fVmVjdDMyKShuZXcpKSA8PCAyNCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBIRVhBR09OX1ZlY3QzMiB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIHdvcmQgKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX1codykgKHcpCgovKiBDcmVhdGUgZnJvbSBoYWxmIHdvcmRzICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX0goaDEsIGgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFswXSA9IChoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChoMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX2hleGFnb25fXyAqLwoKI2RlZmluZSBIRVhBR09OX1YzMl9DUkVBVEVfSChoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoSEVYQUdPTl9WZWN0MzIpKGgxKSkgPDwgMTYpIHwgKChIRVhBR09OX1ZlY3QzMikoKGgwKSAmIDB4ZmZmZikpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjMyX0NSRUFURV9CKGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF0gPSAoYjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMV0gPSAoYjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMl0gPSAoYjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM10gPSAoYjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKEhFWEFHT05fVmVjdDMyKShiMykpIDw8IDI0KSB8ICgoKEhFWEFHT05fVmVjdDMyKSgoYjIpICYgMHhmZikpIDw8IDE2KSB8ICAgICAgICAgICAgICBcCiAgICgoKEhFWEFHT05fVmVjdDMyKSgoYjEpICYgMHhmZikpIDw8IDgpIHwgKChIRVhBR09OX1ZlY3QzMikoKGIwKSAmIDB4ZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgSEVYQUdPTl9WZWN0MzJDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIEhFWEFHT05fVmVjdDMyQyhpbnQgdyA9IDApIDogZGF0YSh3KSB7fTsKICBIRVhBR09OX1ZlY3QzMkMoc2hvcnQgaDEsIHNob3J0IGgwKSA6IGRhdGEoSEVYQUdPTl9WMzJfQ1JFQVRFX0goaDEsIGgwKSkge307CiAgSEVYQUdPTl9WZWN0MzJDKHNpZ25lZCBjaGFyIGIzLCBzaWduZWQgY2hhciBiMiwgc2lnbmVkIGNoYXIgYjEsIHNpZ25lZCBjaGFyIGIwKQogICAgICA6IGRhdGEoSEVYQUdPTl9WMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApKSB7fTsKICBIRVhBR09OX1ZlY3QzMkMoY29uc3QgSEVYQUdPTl9WZWN0MzJDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgSEVYQUdPTl9WZWN0MzJDICZvcGVyYXRvcj0oY29uc3QgSEVYQUdPTl9WZWN0MzJDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGludCgpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3Qgd29yZCBtZXRob2RzCiAgaW50IFcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9XKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVVcoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX0gxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUgwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgxKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUgxKGRhdGEpOwogIH07CgogIC8vIEV4dHJhY3QgYnl0ZSBtZXRob2RzCiAgc2lnbmVkIGNoYXIgQjAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9CMChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIxKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfQjEoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX0IyKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjModm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9CMyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUIzKGRhdGEpOwogIH07CgogIC8vIE5PVEU6IEFsbCBzZXQgbWV0aG9kcyByZXR1cm4gYSBIRVhBR09OX1ZlY3QzMkMgdHlwZQoKICAvLyBTZXQgd29yZCBtZXRob2QKICBIRVhBR09OX1ZlY3QzMkMgVyhpbnQgdykgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDMyQyhIRVhBR09OX1YzMl9QVVRfVyhkYXRhLCB3KSk7CiAgfTsKCiAgLy8gU2V0IGhhbGYgd29yZCBtZXRob2RzCiAgSEVYQUdPTl9WZWN0MzJDIEgwKHNob3J0IGgpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3QzMkMoSEVYQUdPTl9WMzJfUFVUX0gwKGRhdGEsIGgpKTsKICB9OwogIEhFWEFHT05fVmVjdDMyQyBIMShzaG9ydCBoKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9IMShkYXRhLCBoKSk7CiAgfTsKCiAgLy8gU2V0IGJ5dGUgbWV0aG9kcwogIEhFWEFHT05fVmVjdDMyQyBCMChzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9CMChkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3QzMkMgQjEoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDMyQyhIRVhBR09OX1YzMl9QVVRfQjEoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0MzJDIEIyKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3QzMkMoSEVYQUdPTl9WMzJfUFVUX0IyKGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDMyQyBCMyhzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9CMyhkYXRhLCBiKSk7CiAgfTsKCnByaXZhdGU6CiAgaW50IGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8vIFY2NSBTaWx2ZXIgdHlwZXMKI2lmIF9fUTZTX0FSQ0hfXyA+PSA2NQogIC8vIFNpbHZlciB2ZWN0b3IgdHlwZXMgYXJlIDEyOCBieXRlcywgYW5kIHBhaXJzIGFyZSAyNTYuIFRoZSB2ZWN0b3IgcHJlZGljYXRlCiAgLy8gdHlwZXMgYXJlIDE2IGJ5dGVzIGFuZCAzMiBieXRlcyBmb3IgcGFpcnMuCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjUHJlZDEyOCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTI4KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWNQcmVkMjU2IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMikpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1ZlY3QxMDI0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxMjgpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTI4KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWN0MjA0OCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMjU2KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDI1NikpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVVZlY3QxMDI0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxMjgpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVVZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKTsKCiAgI2RlZmluZSBRNlNfVmVjdG9yUHJlZFBhaXIgSEVYQUdPTl9WZWNQcmVkMjU2CiAgI2RlZmluZSBRNlNfVmVjdG9yUHJlZCAgICAgSEVYQUdPTl9WZWNQcmVkMTI4CiAgI2RlZmluZSBRNlNfVmVjdG9yICAgICAgICAgSEVYQUdPTl9WZWN0MTAyNAogICNkZWZpbmUgUTZTX1ZlY3RvclBhaXIgICAgIEhFWEFHT05fVmVjdDIwNDgKICAjZGVmaW5lIFE2U19VVmVjdG9yICAgICAgICBIRVhBR09OX1VWZWN0MTAyNAogICNkZWZpbmUgUTZTX1VWZWN0b3JQYWlyICAgIEhFWEFHT05fVVZlY3QyMDQ4CgojZWxzZSAvKiBfX1E2U19BUkNIX18gPj0gNjUgKi8KCi8vIFY2NSBWZWN0b3IgdHlwZXMKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQojaWYgZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjUHJlZDEyOCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTI4KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEyOCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1ZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMjU2KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDIwNDggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDI1NikpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICAjZGVmaW5lIEhWWF9WZWN0b3JQcmVkICAgICBIRVhBR09OX1ZlY1ByZWQxMjgKICAjZGVmaW5lIEhWWF9WZWN0b3IgICAgICAgICBIRVhBR09OX1ZlY3QxMDI0CiAgI2RlZmluZSBIVlhfVmVjdG9yUGFpciAgICAgSEVYQUdPTl9WZWN0MjA0OAogICNkZWZpbmUgSFZYX1VWZWN0b3IgICAgICAgIEhFWEFHT05fVVZlY3QxMDI0CiAgI2RlZmluZSBIVlhfVVZlY3RvclBhaXIgICAgSEVYQUdPTl9VVmVjdDIwNDgKI2Vsc2UgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNpZiBkZWZpbmVkIF9fSFZYX18gJiYgIChfX0hWWF9MRU5HVEhfXyA9PSA2NCkKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWNQcmVkNjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWN0NTEyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1VWZWN0NTEyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICAjZGVmaW5lIEhWWF9WZWN0b3JQcmVkICAgICBIRVhBR09OX1ZlY1ByZWQ2NAogICNkZWZpbmUgSFZYX1ZlY3RvciAgICAgICAgIEhFWEFHT05fVmVjdDUxMgogICNkZWZpbmUgSFZYX1ZlY3RvclBhaXIgICAgIEhFWEFHT05fVmVjdDEwMjQKICAjZGVmaW5lIEhWWF9VVmVjdG9yICAgICAgICBIRVhBR09OX1VWZWN0NTEyCiAgI2RlZmluZSBIVlhfVVZlY3RvclBhaXIgICAgSEVYQUdPTl9VVmVjdDEwMjQKI2VuZGlmIC8qIGRlZmluZWQgX19IVlhfXyAmJiAgKF9fSFZYX0xFTkdUSF9fID09IDY0KSAqLwojZW5kaWYgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNlbmRpZiAvKiBfX0hWWF9BUkNIX18gPj0gNjUgKi8KI2VuZGlmIC8qIF9fUTZTX0FSQ0hfXyA+PSA2NSAqLwoKLyogUHJlZGljYXRlcyAqLwoKdHlwZWRlZiBpbnQgSEVYQUdPTl9QcmVkOwoKLyoqKgogKioqIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYWxpYXNlcwogKioqLwoKLyogT2xkIG5hbWVzICovCiNkZWZpbmUgUTZWZWN0IFE2VmVjdDY0CiNkZWZpbmUgUTZWX0dFVF9EIFE2VjY0X0dFVF9ECiNkZWZpbmUgUTZWX0dFVF9VRCBRNlY2NF9HRVRfVUQKI2RlZmluZSBRNlZfR0VUX1cwIFE2VjY0X0dFVF9XMAojZGVmaW5lIFE2Vl9HRVRfVzEgUTZWNjRfR0VUX1cxCiNkZWZpbmUgUTZWX0dFVF9VVzAgUTZWNjRfR0VUX1VXMAojZGVmaW5lIFE2Vl9HRVRfVVcxIFE2VjY0X0dFVF9VVzEKI2RlZmluZSBRNlZfR0VUX0gwIFE2VjY0X0dFVF9IMAojZGVmaW5lIFE2Vl9HRVRfSDEgUTZWNjRfR0VUX0gxCiNkZWZpbmUgUTZWX0dFVF9IMiBRNlY2NF9HRVRfSDIKI2RlZmluZSBRNlZfR0VUX0gzIFE2VjY0X0dFVF9IMwojZGVmaW5lIFE2Vl9HRVRfVUgwIFE2VjY0X0dFVF9VSDAKI2RlZmluZSBRNlZfR0VUX1VIMSBRNlY2NF9HRVRfVUgxCiNkZWZpbmUgUTZWX0dFVF9VSDIgUTZWNjRfR0VUX1VIMgojZGVmaW5lIFE2Vl9HRVRfVUgzIFE2VjY0X0dFVF9VSDMKI2RlZmluZSBRNlZfR0VUX0IwIFE2VjY0X0dFVF9CMAojZGVmaW5lIFE2Vl9HRVRfQjEgUTZWNjRfR0VUX0IxCiNkZWZpbmUgUTZWX0dFVF9CMiBRNlY2NF9HRVRfQjIKI2RlZmluZSBRNlZfR0VUX0IzIFE2VjY0X0dFVF9CMwojZGVmaW5lIFE2Vl9HRVRfQjQgUTZWNjRfR0VUX0I0CiNkZWZpbmUgUTZWX0dFVF9CNSBRNlY2NF9HRVRfQjUKI2RlZmluZSBRNlZfR0VUX0I2IFE2VjY0X0dFVF9CNgojZGVmaW5lIFE2Vl9HRVRfQjcgUTZWNjRfR0VUX0I3CiNkZWZpbmUgUTZWX0dFVF9VQjAgUTZWNjRfR0VUX1VCMAojZGVmaW5lIFE2Vl9HRVRfVUIxIFE2VjY0X0dFVF9VQjEKI2RlZmluZSBRNlZfR0VUX1VCMiBRNlY2NF9HRVRfVUIyCiNkZWZpbmUgUTZWX0dFVF9VQjMgUTZWNjRfR0VUX1VCMwojZGVmaW5lIFE2Vl9HRVRfVUI0IFE2VjY0X0dFVF9VQjQKI2RlZmluZSBRNlZfR0VUX1VCNSBRNlY2NF9HRVRfVUI1CiNkZWZpbmUgUTZWX0dFVF9VQjYgUTZWNjRfR0VUX1VCNgojZGVmaW5lIFE2Vl9HRVRfVUI3IFE2VjY0X0dFVF9VQjcKI2RlZmluZSBRNlZfUFVUX0QgUTZWNjRfUFVUX0QKI2RlZmluZSBRNlZfUFVUX1cwIFE2VjY0X1BVVF9XMAojZGVmaW5lIFE2Vl9QVVRfVzEgUTZWNjRfUFVUX1cxCiNkZWZpbmUgUTZWX1BVVF9IMCBRNlY2NF9QVVRfSDAKI2RlZmluZSBRNlZfUFVUX0gxIFE2VjY0X1BVVF9IMQojZGVmaW5lIFE2Vl9QVVRfSDIgUTZWNjRfUFVUX0gyCiNkZWZpbmUgUTZWX1BVVF9IMyBRNlY2NF9QVVRfSDMKI2RlZmluZSBRNlZfUFVUX0IwIFE2VjY0X1BVVF9CMAojZGVmaW5lIFE2Vl9QVVRfQjEgUTZWNjRfUFVUX0IxCiNkZWZpbmUgUTZWX1BVVF9CMiBRNlY2NF9QVVRfQjIKI2RlZmluZSBRNlZfUFVUX0IzIFE2VjY0X1BVVF9CMwojZGVmaW5lIFE2Vl9QVVRfQjQgUTZWNjRfUFVUX0I0CiNkZWZpbmUgUTZWX1BVVF9CNSBRNlY2NF9QVVRfQjUKI2RlZmluZSBRNlZfUFVUX0I2IFE2VjY0X1BVVF9CNgojZGVmaW5lIFE2Vl9QVVRfQjcgUTZWNjRfUFVUX0I3CiNkZWZpbmUgUTZWX0NSRUFURV9EIFE2VjY0X0NSRUFURV9ECiNkZWZpbmUgUTZWX0NSRUFURV9XIFE2VjY0X0NSRUFURV9XCiNkZWZpbmUgUTZWX0NSRUFURV9IIFE2VjY0X0NSRUFURV9ICiNkZWZpbmUgUTZWX0NSRUFURV9CIFE2VjY0X0NSRUFURV9CCgojaWZkZWYgX19jcGx1c3BsdXMKI2RlZmluZSBRNlZlY3RDIFE2VmVjdDY0QwojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8qIDY0IEJpdCBWZWN0b3JzICovCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX21heV9hbGlhc19fKSkgUTZWZWN0NjQ7CgovKiBFeHRyYWN0IGRvdWJsZXdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjY0X0dFVF9EKHYpICh2KQojZGVmaW5lIFE2VjY0X0dFVF9VRCh2KSAoKHVuc2lnbmVkIGxvbmcgbG9uZykodikpCgovKiBFeHRyYWN0IHdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjY0X0dFVF9XMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLndbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1cxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24ud1sxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVVcwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IHV3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51d1swXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VVzEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgdXdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnV3WzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNkZWZpbmUgUTZWNjRfR0VUX0gwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5oWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9IMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0gzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VIMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIHNob3J0IHVoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUgzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51aFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogRXh0cmFjdCBieXRlIG1hY3JvcyAqLwoKI2RlZmluZSBRNlY2NF9HRVRfQjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0IyKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfQjModikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzNdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CNCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0I1KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls1XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfQjYodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzZdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CNyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbN107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUI0KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VQjUodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnViWzVdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCNih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbNl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUI3KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51Yls3XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogTk9URTogQWxsIHNldCBtYWNyb3MgcmV0dXJuIGEgUTZWZWN0NjQgdHlwZSAqLwoKLyogU2V0IGRvdWJsZXdvcmQgbWFjcm8gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX0QodiwgbmV3KSAobmV3KQoKLyogU2V0IHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjY0X1BVVF9XMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLndbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX1cxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24ud1sxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX1cwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDAwMDAwMDBMTCkgfCAoKFE2VmVjdDY0KSgodW5zaWduZWQgaW50KShuZXcpKSkpCiNkZWZpbmUgUTZWNjRfUFVUX1cxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwMDAwMDAwZmZmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkobmV3KSkgPDwgMzJMTCkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogU2V0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5oWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9IMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmhbMl0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0gzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZjAwMDBMTCkgfCAoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSkKI2RlZmluZSBRNlY2NF9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmYwMDAwZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSA8PCAxNkxMKSkKI2RlZmluZSBRNlY2NF9QVVRfSDIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwMDBmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSA8PCAzMkxMKSkKI2RlZmluZSBRNlY2NF9QVVRfSDModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4MDAwMGZmZmZmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KShuZXcpKSA8PCA0OExMKSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBTZXQgYnl0ZSBtYWNyb3MgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbMl0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0IzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlszXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjQodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzRdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9CNSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbNV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0I2KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls2XSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjcodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzddID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlY2NF9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmZmZmZmZmYwMExMKSB8ICgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkpCiNkZWZpbmUgUTZWNjRfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZjAwZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCA4TEwpKQojZGVmaW5lIFE2VjY0X1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmMDBmZmZmTEwpIHwgKCgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgMTZMTCkpCiNkZWZpbmUgUTZWNjRfUFVUX0IzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDBmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAyNExMKSkKI2RlZmluZSBRNlY2NF9QVVRfQjQodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmMDBmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDMyTEwpKQojZGVmaW5lIFE2VjY0X1BVVF9CNSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmMDBmZmZmZmZmZmZmTEwpIHwgKCgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgNDBMTCkpCiNkZWZpbmUgUTZWNjRfUFVUX0I2KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmMDBmZmZmZmZmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCA0OExMKSkKI2RlZmluZSBRNlY2NF9QVVRfQjcodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4MDBmZmZmZmZmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KShuZXcpKSA8PCA1NkxMKSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBRNlZlY3Q2NCB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIGRvdWJsZXdvcmQgKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0QoZCkgKGQpCgovKiBDcmVhdGUgZnJvbSB3b3JkcyAqLwoKI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlY2NF9DUkVBVEVfVyh3MSwgdzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi53WzBdID0gKHcwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi53WzFdID0gKHcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlY2NF9DUkVBVEVfVyh3MSwgdzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoUTZWZWN0NjQpKHcxKSkgPDwgMzJMTCkgfCAoKFE2VmVjdDY0KSgodzApICYgMHhmZmZmZmZmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCi8qIENyZWF0ZSBmcm9tIGhhbGYgd29yZHMgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0goaDMsIGgyLCBoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXSA9IChoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChoMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFsyXSA9IChoMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXSA9IChoMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0goaDMsIGgyLCBoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKFE2VmVjdDY0KShoMykpIDw8IDQ4TEwpIHwgKCgoUTZWZWN0NjQpKChoMikgJiAweGZmZmYpKSA8PCAzMkxMKSB8ICAgICAgICBcCiAgICgoKFE2VmVjdDY0KSgoaDEpICYgMHhmZmZmKSkgPDwgMTZMTCkgfCAoKFE2VmVjdDY0KSgoaDApICYgMHhmZmZmKSkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0IoYjcsIGI2LCBiNSwgYjQsIGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlswXSA9IChiMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsxXSA9IChiMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChiMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlszXSA9IChiMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls0XSA9IChiNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls1XSA9IChiNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls2XSA9IChiNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls3XSA9IChiNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0IoYjcsIGI2LCBiNSwgYjQsIGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKFE2VmVjdDY0KShiNykpIDw8IDU2TEwpIHwgKCgoUTZWZWN0NjQpKChiNikgJiAweGZmKSkgPDwgNDhMTCkgfCAgICAgICAgICBcCiAgICgoKFE2VmVjdDY0KSgoYjUpICYgMHhmZikpIDw8IDQwTEwpIHwgKCgoUTZWZWN0NjQpKChiNCkgJiAweGZmKSkgPDwgMzJMTCkgfCBcCiAgICgoKFE2VmVjdDY0KSgoYjMpICYgMHhmZikpIDw8IDI0TEwpIHwgKCgoUTZWZWN0NjQpKChiMikgJiAweGZmKSkgPDwgMTZMTCkgfCBcCiAgICgoKFE2VmVjdDY0KSgoYjEpICYgMHhmZikpIDw8IDhMTCkgfCAoKFE2VmVjdDY0KSgoYjApICYgMHhmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgUTZWZWN0NjRDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIFE2VmVjdDY0Qyhsb25nIGxvbmcgZCA9IDApIDogZGF0YShkKSB7fTsKICBRNlZlY3Q2NEMoaW50IHcxLCBpbnQgdzApIDogZGF0YShRNlY2NF9DUkVBVEVfVyh3MSwgdzApKSB7fTsKICBRNlZlY3Q2NEMoc2hvcnQgaDMsIHNob3J0IGgyLCBzaG9ydCBoMSwgc2hvcnQgaDApCiAgICAgIDogZGF0YShRNlY2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkpIHt9OwogIFE2VmVjdDY0QyhzaWduZWQgY2hhciBiNywgc2lnbmVkIGNoYXIgYjYsIHNpZ25lZCBjaGFyIGI1LCBzaWduZWQgY2hhciBiNCwKICAgICAgICAgICAgc2lnbmVkIGNoYXIgYjMsIHNpZ25lZCBjaGFyIGIyLCBzaWduZWQgY2hhciBiMSwgc2lnbmVkIGNoYXIgYjApCiAgICAgIDogZGF0YShRNlY2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApKSB7fTsKICBRNlZlY3Q2NEMoY29uc3QgUTZWZWN0NjRDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgUTZWZWN0NjRDICZvcGVyYXRvcj0oY29uc3QgUTZWZWN0NjRDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGxvbmcgbG9uZygpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3QgZG91Ymxld29yZCBtZXRob2RzCiAgbG9uZyBsb25nIEQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9EKGRhdGEpOwogIH07CiAgdW5zaWduZWQgbG9uZyBsb25nIFVEKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUQoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCB3b3JkIG1ldGhvZHMKICBpbnQgVzAodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9XMChkYXRhKTsKICB9OwogIGludCBXMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1cxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXMCh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VXMChkYXRhKTsKICB9OwogIHVuc2lnbmVkIGludCBVVzEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VVzEoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0gxKGRhdGEpOwogIH07CiAgc2hvcnQgSDIodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9IMihkYXRhKTsKICB9OwogIHNob3J0IEgzKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfSDMoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDAodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDAoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDIodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDIoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDModm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDMoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBieXRlIG1ldGhvZHMKICBzaWduZWQgY2hhciBCMCh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0IwKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CMShkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIyKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfQjIoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMyh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0IzKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CNChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEI1KHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfQjUoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCNih2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0I2KGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjcodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CNyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUIzKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjQoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCNSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VCNShkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUI2KHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUI2KGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjcodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjcoZGF0YSk7CiAgfTsKCiAgLy8gTk9URTogQWxsIHNldCBtZXRob2RzIHJldHVybiBhIFE2VmVjdDY0QyB0eXBlCgogIC8vIFNldCBkb3VibGV3b3JkIG1ldGhvZAogIFE2VmVjdDY0QyBEKGxvbmcgbG9uZyBkKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9EKGRhdGEsIGQpKTsKICB9OwoKICAvLyBTZXQgd29yZCBtZXRob2RzCiAgUTZWZWN0NjRDIFcwKGludCB3KSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9XMChkYXRhLCB3KSk7CiAgfTsKICBRNlZlY3Q2NEMgVzEoaW50IHcpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX1cxKGRhdGEsIHcpKTsKICB9OwoKICAvLyBTZXQgaGFsZiB3b3JkIG1ldGhvZHMKICBRNlZlY3Q2NEMgSDAoc2hvcnQgaCkgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfSDAoZGF0YSwgaCkpOwogIH07CiAgUTZWZWN0NjRDIEgxKHNob3J0IGgpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0gxKGRhdGEsIGgpKTsKICB9OwogIFE2VmVjdDY0QyBIMihzaG9ydCBoKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9IMihkYXRhLCBoKSk7CiAgfTsKICBRNlZlY3Q2NEMgSDMoc2hvcnQgaCkgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfSDMoZGF0YSwgaCkpOwogIH07CgogIC8vIFNldCBieXRlIG1ldGhvZHMKICBRNlZlY3Q2NEMgQjAoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjAoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEIxKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0IxKGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDY0QyBCMihzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9CMihkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3Q2NEMgQjMoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjMoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEI0KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0I0KGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDY0QyBCNShzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9CNShkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3Q2NEMgQjYoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjYoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEI3KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0I3KGRhdGEsIGIpKTsKICB9OwoKcHJpdmF0ZToKICBsb25nIGxvbmcgZGF0YTsKfTsKCiNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwoKLyogMzIgQml0IFZlY3RvcnMgKi8KCnR5cGVkZWYgaW50IFE2VmVjdDMyOwoKLyogRXh0cmFjdCB3b3JkIG1hY3JvcyAqLwoKI2RlZmluZSBRNlYzMl9HRVRfVyh2KSAodikKI2RlZmluZSBRNlYzMl9HRVRfVVcodikgKCh1bnNpZ25lZCBpbnQpKHYpKQoKLyogRXh0cmFjdCBoYWxmIHdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjMyX0dFVF9IMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX0gxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uaFsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGJ5dGUgbWFjcm9zICovCgojZGVmaW5lIFE2VjMyX0dFVF9CMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX0IxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uYlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9CMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8qIE5PVEU6IEFsbCBzZXQgbWFjcm9zIHJldHVybiBhIFE2VmVjdDMyIHR5cGUgKi8KCi8qIFNldCB3b3JkIG1hY3JvICovCgojZGVmaW5lIFE2VjMyX1BVVF9XKHYsIG5ldykgKG5ldykKCi8qIFNldCBoYWxmIHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjMyX1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfUFVUX0gxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWMzJfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMDAwKSB8ICgoUTZWZWN0MzIpKCh1bnNpZ25lZCBzaG9ydCkobmV3KSkpKQojZGVmaW5lIFE2VjMyX1BVVF9IMSh2LCBuZXcpICgoKHYpICYgMHgwMDAwZmZmZikgfCAoKChRNlZlY3QzMikobmV3KSkgPDwgMTYpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCi8qIFNldCBieXRlIG1hY3JvcyAqLwoKI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlYzMl9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9QVVRfQjModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlYzMl9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmMDApIHwgKChRNlZlY3QzMikoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSkKI2RlZmluZSBRNlYzMl9QVVRfQjEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwZmYpIHwgKCgoUTZWZWN0MzIpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgOCkpCiNkZWZpbmUgUTZWMzJfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmMDBmZmZmKSB8ICgoKFE2VmVjdDMyKSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDE2KSkKI2RlZmluZSBRNlYzMl9QVVRfQjModiwgbmV3KSAoKCh2KSAmIDB4MDBmZmZmZmYpIHwgKCgoUTZWZWN0MzIpKG5ldykpIDw8IDI0KSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBRNlZlY3QzMiB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIHdvcmQgKi8KCiNkZWZpbmUgUTZWMzJfQ1JFQVRFX1codykgKHcpCgovKiBDcmVhdGUgZnJvbSBoYWxmIHdvcmRzICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjMyX0NSRUFURV9IKGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF0gPSAoaDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMV0gPSAoaDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19xZHNwNl9fICovCgojZGVmaW5lIFE2VjMyX0NSRUFURV9IKGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChRNlZlY3QzMikoaDEpKSA8PCAxNikgfCAoKFE2VmVjdDMyKSgoaDApICYgMHhmZmZmKSkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlYzMl9DUkVBVEVfQihiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzBdID0gKGIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzFdID0gKGIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzJdID0gKGIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzNdID0gKGIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlYzMl9DUkVBVEVfQihiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoUTZWZWN0MzIpKGIzKSkgPDwgMjQpIHwgKCgoUTZWZWN0MzIpKChiMikgJiAweGZmKSkgPDwgMTYpIHwgICAgICAgICAgICAgIFwKICAgKCgoUTZWZWN0MzIpKChiMSkgJiAweGZmKSkgPDwgOCkgfCAoKFE2VmVjdDMyKSgoYjApICYgMHhmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgUTZWZWN0MzJDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIFE2VmVjdDMyQyhpbnQgdyA9IDApIDogZGF0YSh3KSB7fTsKICBRNlZlY3QzMkMoc2hvcnQgaDEsIHNob3J0IGgwKSA6IGRhdGEoUTZWMzJfQ1JFQVRFX0goaDEsIGgwKSkge307CiAgUTZWZWN0MzJDKHNpZ25lZCBjaGFyIGIzLCBzaWduZWQgY2hhciBiMiwgc2lnbmVkIGNoYXIgYjEsIHNpZ25lZCBjaGFyIGIwKQogICAgICA6IGRhdGEoUTZWMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApKSB7fTsKICBRNlZlY3QzMkMoY29uc3QgUTZWZWN0MzJDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgUTZWZWN0MzJDICZvcGVyYXRvcj0oY29uc3QgUTZWZWN0MzJDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGludCgpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3Qgd29yZCBtZXRob2RzCiAgaW50IFcodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9XKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVVcoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX0gxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUgwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgxKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUgxKGRhdGEpOwogIH07CgogIC8vIEV4dHJhY3QgYnl0ZSBtZXRob2RzCiAgc2lnbmVkIGNoYXIgQjAodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9CMChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIxKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfQjEoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX0IyKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjModm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9CMyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUIzKGRhdGEpOwogIH07CgogIC8vIE5PVEU6IEFsbCBzZXQgbWV0aG9kcyByZXR1cm4gYSBRNlZlY3QzMkMgdHlwZQoKICAvLyBTZXQgd29yZCBtZXRob2QKICBRNlZlY3QzMkMgVyhpbnQgdykgewogICAgcmV0dXJuIFE2VmVjdDMyQyhRNlYzMl9QVVRfVyhkYXRhLCB3KSk7CiAgfTsKCiAgLy8gU2V0IGhhbGYgd29yZCBtZXRob2RzCiAgUTZWZWN0MzJDIEgwKHNob3J0IGgpIHsKICAgIHJldHVybiBRNlZlY3QzMkMoUTZWMzJfUFVUX0gwKGRhdGEsIGgpKTsKICB9OwogIFE2VmVjdDMyQyBIMShzaG9ydCBoKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9IMShkYXRhLCBoKSk7CiAgfTsKCiAgLy8gU2V0IGJ5dGUgbWV0aG9kcwogIFE2VmVjdDMyQyBCMChzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9CMChkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3QzMkMgQjEoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDMyQyhRNlYzMl9QVVRfQjEoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0MzJDIEIyKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3QzMkMoUTZWMzJfUFVUX0IyKGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDMyQyBCMyhzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9CMyhkYXRhLCBiKSk7CiAgfTsKCnByaXZhdGU6CiAgaW50IGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8vIFY2NSBWZWN0b3IgdHlwZXMKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQojaWYgZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpCnR5cGVkZWYgbG9uZyBRNlZlY1ByZWQxMjggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7Cgp0eXBlZGVmIGxvbmcgUTZWZWN0MTAyNCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTI4KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEyOCkpKTsKCnR5cGVkZWYgbG9uZyBRNlZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMjU2KSkpOwoKI2Vsc2UgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNpZiBkZWZpbmVkIF9fSFZYX18gJiYgIChfX0hWWF9MRU5HVEhfXyA9PSA2NCkKdHlwZWRlZiBsb25nIFE2VmVjUHJlZDY0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKCnR5cGVkZWYgbG9uZyBRNlZlY3Q1MTIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwoKdHlwZWRlZiBsb25nIFE2VmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgojZW5kaWYgLyogZGVmaW5lZCBfX0hWWF9fICYmICAoX19IVlhfTEVOR1RIX18gPT0gNjQpICovCiNlbmRpZiAvKiBkZWZpbmVkIF9fSFZYX18gJiYgKF9fSFZYX0xFTkdUSF9fID09IDEyOCkgKi8KI2VuZGlmIC8qIF9fSFZYX0FSQ0hfXyA+PSA2NSAqLwoKLyogUHJlZGljYXRlcyAqLwoKdHlwZWRlZiBpbnQgUTZQcmVkOwoKCiNpZmRlZiBfX0hWWF9fCgovLyBFeHRyYWN0IEhWWCBWZWN0b3JQYWlyIG1hY3JvLgojZGVmaW5lIEhFWEFHT05fSFZYX0dFVF9XKHYpICh2KQoKLy8gRXh0cmFjdCBIVlggVmVjdG9yIG1hY3Jvcy4KI2RlZmluZSBIRVhBR09OX0hWWF9HRVRfVjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgSFZYX1ZlY3RvclBhaXIgVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgSFZYX1ZlY3RvciBWWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbi5XID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbi5WWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fSFZYX0dFVF9WMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yUGFpciBXOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yIFZbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlcgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9IVlhfR0VUX1AodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQcmVkIFBbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uUFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8vIFNldCBIVlggVmVjdG9yUGFpciBtYWNyby4KI2RlZmluZSBIRVhBR09OX0hWWF9QVVRfVyh2LCBuZXcpIChuZXcpCgovLyBTZXQgSFZYIFZlY3RvciBtYWNyb3MuCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1YwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3IgVlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVlswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1YxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3IgVlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVlsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1AodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQcmVkIFBbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uUFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCgojZGVmaW5lIEhFWEFHT05fSFZYX0NSRUFURV9XKHYxLCB2MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yUGFpciBXOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yIFZbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMF0gPSAodjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMV0gPSAodjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojaWZkZWYgX19jcGx1c3BsdXMKCmNsYXNzIEhWWF9WZWN0IHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycy4KICAvLyBEZWZhdWx0LgogIEhWWF9WZWN0KCkgOiBkYXRhKFE2X1dfdmNvbWJpbmVfVlYoUTZfVl92emVybygpLCBRNl9WX3Z6ZXJvKCkpKXt9OwoKICAvLyBDdXN0b20gY29uc3RydWN0b3JzLgogIEhWWF9WZWN0KEhWWF9WZWN0b3JQYWlyIFcpIDogZGF0YShXKXt9OwogIEhWWF9WZWN0KEhWWF9WZWN0b3IgdjEsIEhWWF9WZWN0b3IgdjApIDogZGF0YShIRVhBR09OX0hWWF9DUkVBVEVfVyh2MSwgdjApKXt9OwoKICAvLyBDb3B5IGNvbnN0cnVjdG9yLgogIEhWWF9WZWN0KGNvbnN0IEhWWF9WZWN0ICZXKSA9IGRlZmF1bHQ7CgogIC8vIE1vdmUgY29uc3RydWN0b3IuCiAgSFZYX1ZlY3QoSFZYX1ZlY3QgJiZXKSA9IGRlZmF1bHQ7CgogIC8vIEFzc2lnbm1lbnQgb3BlcmF0b3IuCiAgSFZYX1ZlY3QgJm9wZXJhdG9yPShjb25zdCBIVlhfVmVjdCAmVykgPSBkZWZhdWx0OwoKICBvcGVyYXRvciBIVlhfVmVjdG9yUGFpcigpIHsgcmV0dXJuIGRhdGE7IH07CgogIC8vIEV4dHJhY3QgVmVjdG9yUGFpciBtZXRob2QuCiAgSFZYX1ZlY3RvclBhaXIgVyh2b2lkKSB7IHJldHVybiBIRVhBR09OX0hWWF9HRVRfVyhkYXRhKTsgfTsKCiAgLy8gRXh0cmFjdCBWZWN0b3IgbWV0aG9kcy4KICBIVlhfVmVjdG9yIFYwKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9WMChkYXRhKTsgfTsKICBIVlhfVmVjdG9yIFYxKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9WMShkYXRhKTsgfTsKICBIVlhfVmVjdG9yUHJlZCBQKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9QKGRhdGEpOyB9OwoKICAvLyBOT1RFOiBBbGwgc2V0IG1ldGhvZHMgcmV0dXJuIGEgSFZYX1ZlY3QgdHlwZS4KICAvLyBTZXQgSFZYIFZlY3RvclBhaXIgbWV0aG9kLgogIEhWWF9WZWN0IFcoSFZYX1ZlY3RvclBhaXIgdykgeyByZXR1cm4gSFZYX1ZlY3QoSEVYQUdPTl9IVlhfUFVUX1coZGF0YSwgdykpOyB9OwoKICAvLyBTZXQgSFZYIFZlY3RvciBtZXRob2RzLgogIEhWWF9WZWN0IFYwKEhWWF9WZWN0b3IgdikgeyByZXR1cm4gSFZYX1ZlY3QoSEVYQUdPTl9IVlhfUFVUX1YwKGRhdGEsIHYpKTsgfTsKICBIVlhfVmVjdCBWMShIVlhfVmVjdG9yIHYpIHsgcmV0dXJuIEhWWF9WZWN0KEhFWEFHT05fSFZYX1BVVF9WMShkYXRhLCB2KSk7IH07CiAgSFZYX1ZlY3QgUChIVlhfVmVjdG9yUHJlZCBwKSB7IHJldHVybiBIVlhfVmVjdChIRVhBR09OX0hWWF9QVVRfUChkYXRhLCBwKSk7IH07Cgpwcml2YXRlOgogIEhWWF9WZWN0b3JQYWlyIGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KI2VuZGlmIC8qIF9fSFZYX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfSURMRSAgICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfUlVOICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfRVJST1IgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfRFNUQVRFX0lOQ09NUExFVEUgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfRFNUQVRFX0NPTVBMRVRFICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfT1JERVJfTk9PUkRFUiAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfT1JERVJfT1JERVIgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQllQQVNTX09GRiAgICAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQllQQVNTX09OICAgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQ09NUF9OT05FICAgICAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQ09NUF9ETEJDICAgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfREVTQ1RZUEVfVFlQRTAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfREVTQ1RZUEVfVFlQRTEgICAgICAgICAxCgp0eXBlZGVmIHN0cnVjdCBoZXhhZ29uX3VkbWFfZGVzY3JpcHRvcl90eXBlMF9zCnsKICAgIHZvaWQgKm5leHQ7CiAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoOjI0OwogICAgdW5zaWduZWQgaW50IGRlc2N0eXBlOjI7CiAgICB1bnNpZ25lZCBpbnQgZHN0Y29tcDoxOwogICAgdW5zaWduZWQgaW50IHNyY2NvbXA6MTsKICAgIHVuc2lnbmVkIGludCBkc3RieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBzcmNieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBvcmRlcjoxOwogICAgdW5zaWduZWQgaW50IGRzdGF0ZToxOwogICAgdm9pZCAqc3JjOwogICAgdm9pZCAqZHN0Owp9IGhleGFnb25fdWRtYV9kZXNjcmlwdG9yX3R5cGUwX3Q7Cgp0eXBlZGVmIHN0cnVjdCBoZXhhZ29uX3VkbWFfZGVzY3JpcHRvcl90eXBlMV9zCnsKICAgIHZvaWQgKm5leHQ7CiAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoOjI0OwogICAgdW5zaWduZWQgaW50IGRlc2N0eXBlOjI7CiAgICB1bnNpZ25lZCBpbnQgZHN0Y29tcDoxOwogICAgdW5zaWduZWQgaW50IHNyY2NvbXA6MTsKICAgIHVuc2lnbmVkIGludCBkc3RieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBzcmNieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBvcmRlcjoxOwogICAgdW5zaWduZWQgaW50IGRzdGF0ZToxOwogICAgdm9pZCAqc3JjOwogICAgdm9pZCAqZHN0OwogICAgdW5zaWduZWQgaW50IGFsbG9jYXRpb246Mjg7CiAgICB1bnNpZ25lZCBpbnQgcGFkZGluZzo0OwogICAgdW5zaWduZWQgaW50IHJvaXdpZHRoOjE2OwogICAgdW5zaWduZWQgaW50IHJvaWhlaWdodDoxNjsKICAgIHVuc2lnbmVkIGludCBzcmNzdHJpZGU6MTY7CiAgICB1bnNpZ25lZCBpbnQgZHN0c3RyaWRlOjE2OwogICAgdW5zaWduZWQgaW50IHNyY3dpZHRob2Zmc2V0OjE2OwogICAgdW5zaWduZWQgaW50IGRzdHdpZHRob2Zmc2V0OjE2Owp9IGhleGFnb25fdWRtYV9kZXNjcmlwdG9yX3R5cGUxX3Q7CgojZW5kaWYgLyogIUhFWEFHT05fVFlQRVNfSCAqLwoAaHRteGxpbnRyaW4uaAAvKiA9PT0tLS0tLS0tLSBpbnRyaW4uaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8qIE9ubHkgaW5jbHVkZSB0aGlzIGlmIHdlJ3JlIGNvbXBpbGluZyBmb3IgdGhlIHdpbmRvd3MgcGxhdGZvcm0uICovCiNpZm5kZWYgX01TQ19WRVIKI2luY2x1ZGVfbmV4dCA8aW50cmluLmg+CiNlbHNlCgojaWZuZGVmIF9fSU5UUklOX0gKI2RlZmluZSBfX0lOVFJJTl9ICgovKiBGaXJzdCBpbmNsdWRlIHRoZSBzdGFuZGFyZCBpbnRyaW5zaWNzLiAqLwojaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQojaW5jbHVkZSA8eDg2aW50cmluLmg+CiNlbmRpZgoKI2lmIGRlZmluZWQoX19hcm1fXykKI2luY2x1ZGUgPGFybWludHIuaD4KI2VuZGlmCgojaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2luY2x1ZGUgPGFybTY0aW50ci5oPgojZW5kaWYKCi8qIEZvciB0aGUgZGVmaW5pdGlvbiBvZiBqbXBfYnVmLiAqLwojaWYgX19TVERDX0hPU1RFRF9fCiNpbmNsdWRlIDxzZXRqbXAuaD4KI2VuZGlmCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgojaWYgX194ODZfNjRfXwojZGVmaW5lIF9fTFBUUklOVF9UWVBFX18gX19pbnQ2NAojZWxzZQojZGVmaW5lIF9fTFBUUklOVF9UWVBFX18gbG9uZwojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgojaWYgZGVmaW5lZChfX01NWF9fKQovKiBBbmQgdGhlIHJhbmRvbSBvbmVzIHRoYXQgYXJlbid0IGluIHRob3NlIGZpbGVzLiAqLwpfX202NCBfbV9mcm9tX2Zsb2F0KGZsb2F0KTsKZmxvYXQgX21fdG9fZmxvYXQoX19tNjQpOwojZW5kaWYKCi8qIE90aGVyIGFzc29ydGVkIGluc3RydWN0aW9uIGludHJpbnNpY3MuICovCnZvaWQgX19hZGRmc2J5dGUodW5zaWduZWQgbG9uZywgdW5zaWduZWQgY2hhcik7CnZvaWQgX19hZGRmc2R3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9fYWRkZnN3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX2NvZGVfc2VnKGNvbnN0IGNoYXIgKik7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19jcHVpZChpbnRbNF0sIGludCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19jcHVpZGV4KGludFs0XSwgaW50LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXwpfX2ludDY0IF9fZW11bChpbnQsIGludCk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIF9faW50NjQgX19lbXVsdSh1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CnVuc2lnbmVkIGludCBfX2dldGNhbGxlcnNlZmxhZ3Modm9pZCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19oYWx0KHZvaWQpOwp1bnNpZ25lZCBjaGFyIF9faW5ieXRlKHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX2luYnl0ZXN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2luY2ZzYnl0ZSh1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2luY2ZzZHdvcmQodW5zaWduZWQgbG9uZyk7CnZvaWQgX19pbmNmc3dvcmQodW5zaWduZWQgbG9uZyk7CnVuc2lnbmVkIGxvbmcgX19pbmR3b3JkKHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX2luZHdvcmRzdHJpbmcodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIGxvbmcgKiwgdW5zaWduZWQgbG9uZyk7CnZvaWQgX19pbnQyYyh2b2lkKTsKdm9pZCBfX2ludmxwZyh2b2lkICopOwp1bnNpZ25lZCBzaG9ydCBfX2lud29yZCh1bnNpZ25lZCBzaG9ydCk7CnZvaWQgX19pbndvcmRzdHJpbmcodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIHNob3J0ICosIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9fbGlkdCh2b2lkICopOwp1bnNpZ25lZCBfX2ludDY0IF9fbGxfbHNoaWZ0KHVuc2lnbmVkIF9faW50NjQsIGludCk7Cl9faW50NjQgX19sbF9yc2hpZnQoX19pbnQ2NCwgaW50KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX21vdnNiKHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciBjb25zdCAqLCBzaXplX3QpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fbW92c2QodW5zaWduZWQgbG9uZyAqLCB1bnNpZ25lZCBsb25nIGNvbnN0ICosIHNpemVfdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19tb3Zzdyh1bnNpZ25lZCBzaG9ydCAqLCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqLCBzaXplX3QpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fbm9wKHZvaWQpOwp2b2lkIF9fbnZyZWdfcmVzdG9yZV9mZW5jZSh2b2lkKTsKdm9pZCBfX252cmVnX3NhdmVfZmVuY2Uodm9pZCk7CnZvaWQgX19vdXRieXRlKHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBjaGFyKTsKdm9pZCBfX291dGJ5dGVzdHJpbmcodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgbG9uZyk7CnZvaWQgX19vdXRkd29yZCh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgbG9uZyk7CnZvaWQgX19vdXRkd29yZHN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgbG9uZyAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX291dHdvcmQodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX291dHdvcmRzdHJpbmcodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIHNob3J0ICosIHVuc2lnbmVkIGxvbmcpOwp1bnNpZ25lZCBsb25nIF9fcmVhZGNyMCh2b2lkKTsKdW5zaWduZWQgbG9uZyBfX3JlYWRjcjIodm9pZCk7CnVuc2lnbmVkIF9fTFBUUklOVF9UWVBFX18gX19yZWFkY3IzKHZvaWQpOwp1bnNpZ25lZCBsb25nIF9fcmVhZGNyNCh2b2lkKTsKdW5zaWduZWQgbG9uZyBfX3JlYWRjcjgodm9pZCk7CnVuc2lnbmVkIGludCBfX3JlYWRkcih1bnNpZ25lZCBpbnQpOwojaWZkZWYgX19pMzg2X18Kc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfX3JlYWRmc2J5dGUodW5zaWduZWQgbG9uZyk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIHNob3J0IF9fcmVhZGZzd29yZCh1bnNpZ25lZCBsb25nKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgbG9uZyBfX3JlYWRmc2R3b3JkKHVuc2lnbmVkIGxvbmcpOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBfX2ludDY0IF9fcmVhZGZzcXdvcmQodW5zaWduZWQgbG9uZyk7CiNlbmRpZgpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBfX2ludDY0IF9fcmVhZG1zcih1bnNpZ25lZCBsb25nKTsKdW5zaWduZWQgX19pbnQ2NCBfX3JlYWRwbWModW5zaWduZWQgbG9uZyk7CnVuc2lnbmVkIGxvbmcgX19zZWdtZW50bGltaXQodW5zaWduZWQgbG9uZyk7CnZvaWQgX19zaWR0KHZvaWQgKik7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19zdG9zYih1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGNoYXIsIHNpemVfdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19zdG9zZCh1bnNpZ25lZCBsb25nICosIHVuc2lnbmVkIGxvbmcsIHNpemVfdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19zdG9zdyh1bnNpZ25lZCBzaG9ydCAqLCB1bnNpZ25lZCBzaG9ydCwgc2l6ZV90KTsKdm9pZCBfX3N2bV9jbGdpKHZvaWQpOwp2b2lkIF9fc3ZtX2ludmxwZ2Eodm9pZCAqLCBpbnQpOwp2b2lkIF9fc3ZtX3NraW5pdChpbnQpOwp2b2lkIF9fc3ZtX3N0Z2kodm9pZCk7CnZvaWQgX19zdm1fdm1sb2FkKHNpemVfdCk7CnZvaWQgX19zdm1fdm1ydW4oc2l6ZV90KTsKdm9pZCBfX3N2bV92bXNhdmUoc2l6ZV90KTsKdm9pZCBfX3VkMih2b2lkKTsKdW5zaWduZWQgX19pbnQ2NCBfX3VsbF9yc2hpZnQodW5zaWduZWQgX19pbnQ2NCwgaW50KTsKdm9pZCBfX3ZteF9vZmYodm9pZCk7CnZvaWQgX192bXhfdm1wdHJzdCh1bnNpZ25lZCBfX2ludDY0ICopOwp2b2lkIF9fd2JpbnZkKHZvaWQpOwp2b2lkIF9fd3JpdGVjcjAodW5zaWduZWQgaW50KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX3dyaXRlY3IzKHVuc2lnbmVkIF9fSU5UUFRSX1RZUEVfXyk7CnZvaWQgX193cml0ZWNyNCh1bnNpZ25lZCBpbnQpOwp2b2lkIF9fd3JpdGVjcjgodW5zaWduZWQgaW50KTsKdm9pZCBfX3dyaXRlZHIodW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOwp2b2lkIF9fd3JpdGVmc2J5dGUodW5zaWduZWQgbG9uZywgdW5zaWduZWQgY2hhcik7CnZvaWQgX193cml0ZWZzZHdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CnZvaWQgX193cml0ZWZzcXdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgX19pbnQ2NCk7CnZvaWQgX193cml0ZWZzd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBzaG9ydCk7CnZvaWQgX193cml0ZW1zcih1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBfX2ludDY0KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCAqX0FkZHJlc3NPZlJldHVybkFkZHJlc3Modm9pZCk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIGNoYXIgX0JpdFNjYW5Gb3J3YXJkKHVuc2lnbmVkIGxvbmcgKl9JbmRleCwgdW5zaWduZWQgbG9uZyBfTWFzayk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIGNoYXIgX0JpdFNjYW5SZXZlcnNlKHVuc2lnbmVkIGxvbmcgKl9JbmRleCwgdW5zaWduZWQgbG9uZyBfTWFzayk7CnVuc2lnbmVkIGNoYXIgX2JpdHRlc3QobG9uZyBjb25zdCAqLCBsb25nKTsKdW5zaWduZWQgY2hhciBfYml0dGVzdGFuZGNvbXBsZW1lbnQobG9uZyAqLCBsb25nKTsKdW5zaWduZWQgY2hhciBfYml0dGVzdGFuZHJlc2V0KGxvbmcgKiwgbG9uZyk7CnVuc2lnbmVkIGNoYXIgX2JpdHRlc3RhbmRzZXQobG9uZyAqLCBsb25nKTsKdm9pZCBfX2NkZWNsIF9kaXNhYmxlKHZvaWQpOwp2b2lkIF9fY2RlY2wgX2VuYWJsZSh2b2lkKTsKbG9uZyBfSW50ZXJsb2NrZWRBZGRMYXJnZVN0YXRpc3RpYyhfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kLCBsb25nIF9WYWx1ZSk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHJlc2V0KGxvbmcgdm9sYXRpbGUgKiwgbG9uZyk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHNldChsb25nIHZvbGF0aWxlICosIGxvbmcpOwp2b2lkICpfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyX0hMRUFjcXVpcmUodm9pZCAqdm9sYXRpbGUgKiwgdm9pZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKTsKdm9pZCAqX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcl9ITEVSZWxlYXNlKHZvaWQgKnZvbGF0aWxlICosIHZvaWQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKik7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGRfSExFQWNxdWlyZShsb25nIHZvbGF0aWxlICosIGxvbmcpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkX0hMRVJlbGVhc2UobG9uZyB2b2xhdGlsZSAqLCBsb25nKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDY0X0hMRUFjcXVpcmUoX19pbnQ2NCB2b2xhdGlsZSAqLCBfX2ludDY0KTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDY0X0hMRVJlbGVhc2UoX19pbnQ2NCB2b2xhdGlsZSAqLCBfX2ludDY0KTsKc3RhdGljIF9faW5saW5lX18gdm9pZApfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIG90aGVyIGludHJpbnNpY3Mgb3IgQysrMTEgYXRvbWljcyBpbnN0ZWFkIikpKQpfUmVhZEJhcnJpZXIodm9pZCk7CnN0YXRpYyBfX2lubGluZV9fIHZvaWQKX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBvdGhlciBpbnRyaW5zaWNzIG9yIEMrKzExIGF0b21pY3MgaW5zdGVhZCIpKSkKX1JlYWRXcml0ZUJhcnJpZXIodm9pZCk7CnVuc2lnbmVkIGludCBfcm9yeF91MzIodW5zaWduZWQgaW50LCBjb25zdCB1bnNpZ25lZCBpbnQpOwppbnQgX3NhcnhfaTMyKGludCwgdW5zaWduZWQgaW50KTsKI2lmIF9fU1REQ19IT1NURURfXwppbnQgX19jZGVjbCBfc2V0am1wKGptcF9idWYpOwojZW5kaWYKdW5zaWduZWQgaW50IF9zaGx4X3UzMih1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CnVuc2lnbmVkIGludCBfc2hyeF91MzIodW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOwp2b2lkIF9TdG9yZV9ITEVSZWxlYXNlKGxvbmcgdm9sYXRpbGUgKiwgbG9uZyk7CnZvaWQgX1N0b3JlNjRfSExFUmVsZWFzZShfX2ludDY0IHZvbGF0aWxlICosIF9faW50NjQpOwp2b2lkIF9TdG9yZVBvaW50ZXJfSExFUmVsZWFzZSh2b2lkICp2b2xhdGlsZSAqLCB2b2lkICopOwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCl9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2Ugb3RoZXIgaW50cmluc2ljcyBvciBDKysxMSBhdG9taWNzIGluc3RlYWQiKSkpCl9Xcml0ZUJhcnJpZXIodm9pZCk7CnVuc2lnbmVkIF9faW50MzIgeGJlZ2luKHZvaWQpOwp2b2lkIF94ZW5kKHZvaWQpOwoKLyogVGhlc2UgYWRkaXRpb25hbCBpbnRyaW5zaWNzIGFyZSB0dXJuZWQgb24gaW4geDY0L2FtZDY0L3g4Nl82NCBtb2RlLiAqLwojaWZkZWYgX194ODZfNjRfXwp2b2lkIF9fYWRkZ3NieXRlKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGNoYXIpOwp2b2lkIF9fYWRkZ3Nkd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2FkZGdzcXdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgX19pbnQ2NCk7CnZvaWQgX19hZGRnc3dvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgc2hvcnQpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fZmFzdHN0b3JlZmVuY2Uodm9pZCk7CnZvaWQgX19pbmNnc2J5dGUodW5zaWduZWQgbG9uZyk7CnZvaWQgX19pbmNnc2R3b3JkKHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9faW5jZ3Nxd29yZCh1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2luY2dzd29yZCh1bnNpZ25lZCBsb25nKTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX21vdnNxKHVuc2lnbmVkIGxvbmcgbG9uZyAqLCB1bnNpZ25lZCBsb25nIGxvbmcgY29uc3QgKiwgc2l6ZV90KTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfX3JlYWRnc2J5dGUodW5zaWduZWQgbG9uZyk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIGxvbmcgX19yZWFkZ3Nkd29yZCh1bnNpZ25lZCBsb25nKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgX19pbnQ2NCBfX3JlYWRnc3F3b3JkKHVuc2lnbmVkIGxvbmcpOwp1bnNpZ25lZCBzaG9ydCBfX3JlYWRnc3dvcmQodW5zaWduZWQgbG9uZyk7CnVuc2lnbmVkIF9faW50NjQgX19zaGlmdGxlZnQxMjgodW5zaWduZWQgX19pbnQ2NCBfTG93UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDY0IF9IaWdoUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9TaGlmdCk7CnVuc2lnbmVkIF9faW50NjQgX19zaGlmdHJpZ2h0MTI4KHVuc2lnbmVkIF9faW50NjQgX0xvd1BhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50NjQgX0hpZ2hQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9TaGlmdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19zdG9zcSh1bnNpZ25lZCBfX2ludDY0ICosIHVuc2lnbmVkIF9faW50NjQsIHNpemVfdCk7CnVuc2lnbmVkIGNoYXIgX192bXhfb24odW5zaWduZWQgX19pbnQ2NCAqKTsKdW5zaWduZWQgY2hhciBfX3ZteF92bWNsZWFyKHVuc2lnbmVkIF9faW50NjQgKik7CnVuc2lnbmVkIGNoYXIgX192bXhfdm1sYXVuY2godm9pZCk7CnVuc2lnbmVkIGNoYXIgX192bXhfdm1wdHJsZCh1bnNpZ25lZCBfX2ludDY0ICopOwp1bnNpZ25lZCBjaGFyIF9fdm14X3ZtcmVhZChzaXplX3QsIHNpemVfdCAqKTsKdW5zaWduZWQgY2hhciBfX3ZteF92bXJlc3VtZSh2b2lkKTsKdW5zaWduZWQgY2hhciBfX3ZteF92bXdyaXRlKHNpemVfdCwgc2l6ZV90KTsKdm9pZCBfX3dyaXRlZ3NieXRlKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGNoYXIpOwp2b2lkIF9fd3JpdGVnc2R3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9fd3JpdGVnc3F3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIF9faW50NjQpOwp2b2lkIF9fd3JpdGVnc3dvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgc2hvcnQpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0NjQoX19pbnQ2NCBjb25zdCAqLCBfX2ludDY0KTsKdW5zaWduZWQgY2hhciBfYml0dGVzdGFuZGNvbXBsZW1lbnQ2NChfX2ludDY0ICosIF9faW50NjQpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0YW5kcmVzZXQ2NChfX2ludDY0ICosIF9faW50NjQpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0YW5kc2V0NjQoX19pbnQ2NCAqLCBfX2ludDY0KTsKbG9uZyBfSW50ZXJsb2NrZWRBbmRfbnAobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkQW5kMTZfbnAoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZEFuZDY0X25wKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkQW5kOF9ucChjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRyZXNldDY0KF9faW50NjQgdm9sYXRpbGUgKiwgX19pbnQ2NCk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHNldDY0KF9faW50NjQgdm9sYXRpbGUgKiwgX19pbnQ2NCk7CmxvbmcgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlX25wKGxvbmcgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwgbG9uZyBfRXhjaGFuZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0NvbXBhcmFuZCk7CnVuc2lnbmVkIGNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTI4X25wKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2VIaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCAqX0NvbXBhcmFuZFJlc3VsdCk7CnNob3J0IF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTE2X25wKHNob3J0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IF9FeGNoYW5nZSwgc2hvcnQgX0NvbXBhcmFuZCk7Cl9faW50NjQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlNjRfbnAoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlLCBfX2ludDY0IF9Db21wYXJhbmQpOwp2b2lkICpfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyX25wKHZvaWQgKnZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqX0V4Y2hhbmdlLCB2b2lkICpfQ29tcGFyYW5kKTsKbG9uZyBfSW50ZXJsb2NrZWRPcl9ucChsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRPcjE2X25wKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRPcjY0X25wKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkT3I4X25wKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkWG9yX25wKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZFhvcjE2X25wKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRYb3I2NF9ucChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZFhvcjhfbnAoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKdW5zaWduZWQgX19pbnQ2NCBfcm9yeF91NjQodW5zaWduZWQgX19pbnQ2NCwgY29uc3QgdW5zaWduZWQgaW50KTsKX19pbnQ2NCBfc2FyeF9pNjQoX19pbnQ2NCwgdW5zaWduZWQgaW50KTsKdW5zaWduZWQgX19pbnQ2NCBfc2hseF91NjQodW5zaWduZWQgX19pbnQ2NCwgdW5zaWduZWQgaW50KTsKdW5zaWduZWQgX19pbnQ2NCBfc2hyeF91NjQodW5zaWduZWQgX19pbnQ2NCwgdW5zaWduZWQgaW50KTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfX211bGgoX19pbnQ2NCwgX19pbnQ2NCk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIF9faW50NjQgX191bXVsaCh1bnNpZ25lZCBfX2ludDY0LCB1bnNpZ25lZCBfX2ludDY0KTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfbXVsMTI4KF9faW50NjQsIF9faW50NjQsIF9faW50NjQqKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgX19pbnQ2NCBfdW11bDEyOCh1bnNpZ25lZCBfX2ludDY0LAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50NjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgX19pbnQ2NCopOwoKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKCnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIGNoYXIgX0JpdFNjYW5Gb3J3YXJkNjQodW5zaWduZWQgbG9uZyAqX0luZGV4LCB1bnNpZ25lZCBfX2ludDY0IF9NYXNrKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfQml0U2NhblJldmVyc2U2NCh1bnNpZ25lZCBsb25nICpfSW5kZXgsIHVuc2lnbmVkIF9faW50NjQgX01hc2spOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkRGVjcmVtZW50NjQoX19pbnQ2NCB2b2xhdGlsZSAqX0FkZGVuZCk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2U2NChfX2ludDY0IHZvbGF0aWxlICpfVGFyZ2V0LCBfX2ludDY0IF9WYWx1ZSk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ2NChfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kLCBfX2ludDY0IF9WYWx1ZSk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2VTdWI2NChfX2ludDY0IHZvbGF0aWxlICpfU3ViZW5kLCBfX2ludDY0IF9WYWx1ZSk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkSW5jcmVtZW50NjQoX19pbnQ2NCB2b2xhdGlsZSAqX0FkZGVuZCk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkT3I2NChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpzdGF0aWMgX19pbmxpbmVfXwpfX2ludDY0IF9JbnRlcmxvY2tlZFhvcjY0KF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkQW5kNjQoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgRXhjaGFuZ2UgQWRkClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCmNoYXIgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ4X2FjcShjaGFyIHZvbGF0aWxlICpfQWRkZW5kLCBjaGFyIF9WYWx1ZSk7CmNoYXIgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ4X25mKGNoYXIgdm9sYXRpbGUgKl9BZGRlbmQsIGNoYXIgX1ZhbHVlKTsKY2hhciBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDhfcmVsKGNoYXIgdm9sYXRpbGUgKl9BZGRlbmQsIGNoYXIgX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9BZGRlbmQsIHNob3J0IF9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkMTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9BZGRlbmQsIHNob3J0IF9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkMTZfcmVsKHNob3J0IHZvbGF0aWxlICpfQWRkZW5kLCBzaG9ydCBfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkX2FjcShsb25nIHZvbGF0aWxlICpfQWRkZW5kLCBsb25nIF9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGRfbmYobG9uZyB2b2xhdGlsZSAqX0FkZGVuZCwgbG9uZyBfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkX3JlbChsb25nIHZvbGF0aWxlICpfQWRkZW5kLCBsb25nIF9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX0FkZGVuZCwgX19pbnQ2NCBfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkNjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX0FkZGVuZCwgX19pbnQ2NCBfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkNjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9BZGRlbmQsIF9faW50NjQgX1ZhbHVlKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIEluY3JlbWVudApcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQpzaG9ydCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEluY3JlbWVudDE2X25mKHNob3J0IHZvbGF0aWxlICpfVmFsdWUpOwpzaG9ydCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQxNl9yZWwoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkSW5jcmVtZW50X2FjcShsb25nIHZvbGF0aWxlICpfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEluY3JlbWVudF9uZihsb25nIHZvbGF0aWxlICpfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEluY3JlbWVudF9yZWwobG9uZyB2b2xhdGlsZSAqX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQ2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQ2NF9uZihfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEluY3JlbWVudDY0X3JlbChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUpOwojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgRGVjcmVtZW50ClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnNob3J0IF9JbnRlcmxvY2tlZERlY3JlbWVudDE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRGVjcmVtZW50MTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZERlY3JlbWVudDE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWREZWNyZW1lbnRfYWNxKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRGVjcmVtZW50X25mKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRGVjcmVtZW50X3JlbChsb25nIHZvbGF0aWxlICpfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZERlY3JlbWVudDY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZERlY3JlbWVudDY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRGVjcmVtZW50NjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSk7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBBbmQKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKY2hhciBfSW50ZXJsb2NrZWRBbmQ4X2FjcShjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZEFuZDhfbmYoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKY2hhciBfSW50ZXJsb2NrZWRBbmQ4X3JlbChjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRBbmQxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRBbmQxNl9uZihzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZEFuZDE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkQW5kX2FjcShsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpsb25nIF9JbnRlcmxvY2tlZEFuZF9uZihsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpsb25nIF9JbnRlcmxvY2tlZEFuZF9yZWwobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRBbmQ2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRBbmQ2NF9uZihfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZEFuZDY0X3JlbChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogQml0IENvdW50aW5nIGFuZCBUZXN0aW5nClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHNldF9hY3EobG9uZyB2b2xhdGlsZSAqX0JpdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfQml0UG9zKTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kc2V0X25mKGxvbmcgdm9sYXRpbGUgKl9CaXRCYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfQml0UG9zKTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kc2V0X3JlbChsb25nIHZvbGF0aWxlICpfQml0QmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRyZXNldF9hY3EobG9uZyB2b2xhdGlsZSAqX0JpdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRyZXNldF9uZihsb25nIHZvbGF0aWxlICpfQml0QmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfQml0UG9zKTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kcmVzZXRfcmVsKGxvbmcgdm9sYXRpbGUgKl9CaXRCYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfQml0UG9zKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIE9yClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCmNoYXIgX0ludGVybG9ja2VkT3I4X2FjcShjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZE9yOF9uZihjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZE9yOF9yZWwoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkT3IxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRPcjE2X25mKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkT3IxNl9yZWwoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpsb25nIF9JbnRlcmxvY2tlZE9yX2FjcShsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpsb25nIF9JbnRlcmxvY2tlZE9yX25mKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkT3JfcmVsKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkT3I2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRPcjY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkT3I2NF9yZWwoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIFhvcgpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQpjaGFyIF9JbnRlcmxvY2tlZFhvcjhfYWNxKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkWG9yOF9uZihjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZFhvcjhfcmVsKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZFhvcjE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZFhvcjE2X25mKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkWG9yMTZfcmVsKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRYb3JfYWNxKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkWG9yX25mKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkWG9yX3JlbChsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZFhvcjY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZFhvcjY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkWG9yNjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBFeGNoYW5nZQpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQpjaGFyIF9JbnRlcmxvY2tlZEV4Y2hhbmdlOF9hY3EoY2hhciB2b2xhdGlsZSAqX1RhcmdldCwgY2hhciBfVmFsdWUpOwpjaGFyIF9JbnRlcmxvY2tlZEV4Y2hhbmdlOF9uZihjaGFyIHZvbGF0aWxlICpfVGFyZ2V0LCBjaGFyIF9WYWx1ZSk7CmNoYXIgX0ludGVybG9ja2VkRXhjaGFuZ2U4X3JlbChjaGFyIHZvbGF0aWxlICpfVGFyZ2V0LCBjaGFyIF9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlMTZfYWNxKHNob3J0IHZvbGF0aWxlICpfVGFyZ2V0LCBzaG9ydCBfVmFsdWUpOwpzaG9ydCBfSW50ZXJsb2NrZWRFeGNoYW5nZTE2X25mKHNob3J0IHZvbGF0aWxlICpfVGFyZ2V0LCBzaG9ydCBfVmFsdWUpOwpzaG9ydCBfSW50ZXJsb2NrZWRFeGNoYW5nZTE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX1RhcmdldCwgc2hvcnQgX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWRFeGNoYW5nZV9hY3EobG9uZyB2b2xhdGlsZSAqX1RhcmdldCwgbG9uZyBfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlX25mKGxvbmcgdm9sYXRpbGUgKl9UYXJnZXQsIGxvbmcgX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWRFeGNoYW5nZV9yZWwobG9uZyB2b2xhdGlsZSAqX1RhcmdldCwgbG9uZyBfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlNjRfYWNxKF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZTY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZTY0X3JlbChfX2ludDY0IHZvbGF0aWxlICpfVGFyZ2V0LCBfX2ludDY0IF9WYWx1ZSk7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBDb21wYXJlIEV4Y2hhbmdlClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCmNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlOF9hY3EoY2hhciB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgX0V4Y2hhbmdlLCBjaGFyIF9Db21wYXJhbmQpOwpjaGFyIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZThfbmYoY2hhciB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgX0V4Y2hhbmdlLCBjaGFyIF9Db21wYXJhbmQpOwpjaGFyIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZThfcmVsKGNoYXIgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIF9FeGNoYW5nZSwgY2hhciBfQ29tcGFyYW5kKTsKc2hvcnQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTZfYWNxKHNob3J0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IF9FeGNoYW5nZSwgc2hvcnQgX0NvbXBhcmFuZCk7CnNob3J0IF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTE2X25mKHNob3J0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IF9FeGNoYW5nZSwgc2hvcnQgX0NvbXBhcmFuZCk7CnNob3J0IF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBfRXhjaGFuZ2UsIHNob3J0IF9Db21wYXJhbmQpOwpsb25nIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZV9hY3EobG9uZyB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9FeGNoYW5nZSwgbG9uZyBfQ29tcGFyYW5kKTsKbG9uZyBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VfbmYobG9uZyB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9FeGNoYW5nZSwgbG9uZyBfQ29tcGFyYW5kKTsKbG9uZyBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VfcmVsKGxvbmcgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfRXhjaGFuZ2UsIGxvbmcgX0NvbXBhcmFuZCk7Cl9faW50NjQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlNjRfYWNxKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2UsIF9faW50NjQgX0NvbXBhcmFuZCk7Cl9faW50NjQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlNjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZSwgX19pbnQ2NCBfQ29tcGFyYW5kKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NF9yZWwoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZSwgX19pbnQ2NCBfQ29tcGFyYW5kKTsKI2VuZGlmCiNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnVuc2lnbmVkIGNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTI4KF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2VIaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCAqX0NvbXBhcmFuZFJlc3VsdCk7CiNlbmRpZgojaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKdW5zaWduZWQgY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxMjhfYWNxKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlSGlnaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlTG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCAqX0NvbXBhcmFuZFJlc3VsdCk7CnVuc2lnbmVkIGNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTI4X25mKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2VIaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCAqX0NvbXBhcmFuZFJlc3VsdCk7CnVuc2lnbmVkIGNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTI4X3JlbChfX2ludDY0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgKl9Db21wYXJhbmRSZXN1bHQpOwojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIG1vdnMsIHN0b3MKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX19tb3ZzYih1bnNpZ25lZCBjaGFyICpfX2RzdCwgdW5zaWduZWQgY2hhciBjb25zdCAqX19zcmMsIHNpemVfdCBfX24pIHsKI2lmIGRlZmluZWQoX194ODZfNjRfXykKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIG1vdnNiIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrUyIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbHNlCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInhjaGcgJSVlc2ksICUxXG5yZXAgbW92c2JcbnhjaGcgJSVlc2ksICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrciIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbmRpZgp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fbW92c2QodW5zaWduZWQgbG9uZyAqX19kc3QsIHVuc2lnbmVkIGxvbmcgY29uc3QgKl9fc3JjLCBzaXplX3QgX19uKSB7CiNpZiBkZWZpbmVkKF9feDg2XzY0X18pCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJlcCBtb3ZzbCIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK1MiKF9fc3JjKSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwojZWxzZQogIF9fYXNtX18gX192b2xhdGlsZV9fKCJ4Y2hnICUlZXNpLCAlMVxucmVwIG1vdnNsXG54Y2hnICUlZXNpLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK3IiKF9fc3JjKSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwojZW5kaWYKfQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX21vdnN3KHVuc2lnbmVkIHNob3J0ICpfX2RzdCwgdW5zaWduZWQgc2hvcnQgY29uc3QgKl9fc3JjLCBzaXplX3QgX19uKSB7CiNpZiBkZWZpbmVkKF9feDg2XzY0X18pCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJlcCBtb3ZzdyIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK1MiKF9fc3JjKSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwojZWxzZQogIF9fYXNtX18gX192b2xhdGlsZV9fKCJ4Y2hnICUlZXNpLCAlMVxucmVwIG1vdnN3XG54Y2hnICUlZXNpLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK3IiKF9fc3JjKSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwojZW5kaWYKfQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX3N0b3NkKHVuc2lnbmVkIGxvbmcgKl9fZHN0LCB1bnNpZ25lZCBsb25nIF9feCwgc2l6ZV90IF9fbikgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCJyZXAgc3Rvc2wiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK0QiKF9fZHN0KSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOiAiYSIoX194KQogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fc3Rvc3codW5zaWduZWQgc2hvcnQgKl9fZHN0LCB1bnNpZ25lZCBzaG9ydCBfX3gsIHNpemVfdCBfX24pIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIHN0b3N3IgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrYyIoX19uKQogICAgICAgICAgICAgICAgICAgICAgIDogImEiKF9feCkKICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKfQojZW5kaWYKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX19tb3ZzcSh1bnNpZ25lZCBsb25nIGxvbmcgKl9fZHN0LCB1bnNpZ25lZCBsb25nIGxvbmcgY29uc3QgKl9fc3JjLCBzaXplX3QgX19uKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJlcCBtb3ZzcSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK1MiKF9fc3JjKSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOgogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9fc3Rvc3EodW5zaWduZWQgX19pbnQ2NCAqX19kc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgX19pbnQ2NCBfX3gsCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fc3Rvc3EodW5zaWduZWQgX19pbnQ2NCAqX19kc3QsIHVuc2lnbmVkIF9faW50NjQgX194LCBzaXplX3QgX19uKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJlcCBzdG9zcSIgOiAiK0QiKF9fZHN0KSwgIitjIihfX24pIDogImEiKF9feCkKICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKfQojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIE1pc2MKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKI2lmIGRlZmluZWQoX19pMzg2X18pCiNkZWZpbmUgX19jcHVpZF9jb3VudChfX2xlYWYsIF9fY291bnQsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KSAgICAgICAgICAgICBcCiAgX19hc20oImNwdWlkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgOiAiPWEiKF9fZWF4KSwgIj1iIihfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgOiAiMCIoX19sZWFmKSwgIjIiKF9fY291bnQpKQojZWxzZQovKiB4ODYtNjQgdXNlcyAlcmJ4IGFzIHRoZSBiYXNlIHJlZ2lzdGVyLCBzbyBwcmVzZXJ2ZSBpdC4gKi8KI2RlZmluZSBfX2NwdWlkX2NvdW50KF9fbGVhZiwgX19jb3VudCwgX19lYXgsIF9fZWJ4LCBfX2VjeCwgX19lZHgpICAgICAgICAgICAgIFwKICBfX2FzbSgieGNoZ3EgJSVyYngsJXExXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAiY3B1aWRcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAieGNoZ3EgJSVyYngsJXExIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPXIiKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6ICIwIihfX2xlYWYpLCAiMiIoX19jb3VudCkpCiNlbmRpZgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfX2NwdWlkKGludCBfX2luZm9bNF0sIGludCBfX2xldmVsKSB7CiAgX19jcHVpZF9jb3VudChfX2xldmVsLCAwLCBfX2luZm9bMF0sIF9faW5mb1sxXSwgX19pbmZvWzJdLCBfX2luZm9bM10pOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9fY3B1aWRleChpbnQgX19pbmZvWzRdLCBpbnQgX19sZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2VjeCkgewogIF9fY3B1aWRfY291bnQoX19sZXZlbCwgX19lY3gsIF9faW5mb1swXSwgX19pbmZvWzFdLCBfX2luZm9bMl0sIF9faW5mb1szXSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX19oYWx0KHZvaWQpIHsKICBfX2FzbV9fIHZvbGF0aWxlKCJobHQiKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9fbm9wKHZvaWQpIHsKICBfX2FzbV9fIHZvbGF0aWxlKCJub3AiKTsKfQojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIE1TIEFBcmNoNjQgc3BlY2lmaWMKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCnVuc2lnbmVkIF9faW50NjQgX19nZXRSZWcoaW50KTsKbG9uZyBfSW50ZXJsb2NrZWRBZGQobG9uZyB2b2xhdGlsZSAqQWRkZW5kLCBsb25nIFZhbHVlKTsKX19pbnQ2NCBfUmVhZFN0YXR1c1JlZyhpbnQpOwp2b2lkIF9Xcml0ZVN0YXR1c1JlZyhpbnQsIF9faW50NjQpOwoKdW5zaWduZWQgc2hvcnQgX19jZGVjbCBfYnl0ZXN3YXBfdXNob3J0KHVuc2lnbmVkIHNob3J0IHZhbCk7CnVuc2lnbmVkIGxvbmcgX19jZGVjbCBfYnl0ZXN3YXBfdWxvbmcgKHVuc2lnbmVkIGxvbmcgdmFsKTsKdW5zaWduZWQgX19pbnQ2NCBfX2NkZWNsIF9ieXRlc3dhcF91aW50NjQodW5zaWduZWQgX19pbnQ2NCB2YWwpOwoKX19pbnQ2NCBfX211bGgoX19pbnQ2NCBfX2EsIF9faW50NjQgX19iKTsKdW5zaWduZWQgX19pbnQ2NCBfX3VtdWxoKHVuc2lnbmVkIF9faW50NjQgX19hLCB1bnNpZ25lZCBfX2ludDY0IF9fYik7CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogUHJpdmlsZWdlZCBpbnRyaW5zaWNzClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9faW50NjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fcmVhZG1zcih1bnNpZ25lZCBsb25nIF9fcmVnaXN0ZXIpIHsKICAvLyBMb2FkcyB0aGUgY29udGVudHMgb2YgYSA2NC1iaXQgbW9kZWwgc3BlY2lmaWMgcmVnaXN0ZXIgKE1TUikgc3BlY2lmaWVkIGluCiAgLy8gdGhlIEVDWCByZWdpc3RlciBpbnRvIHJlZ2lzdGVycyBFRFg6RUFYLiBUaGUgRURYIHJlZ2lzdGVyIGlzIGxvYWRlZCB3aXRoCiAgLy8gdGhlIGhpZ2gtb3JkZXIgMzIgYml0cyBvZiB0aGUgTVNSIGFuZCB0aGUgRUFYIHJlZ2lzdGVyIGlzIGxvYWRlZCB3aXRoIHRoZQogIC8vIGxvdy1vcmRlciAzMiBiaXRzLiBJZiBsZXNzIHRoYW4gNjQgYml0cyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIE1TUiBiZWluZwogIC8vIHJlYWQsIHRoZSB2YWx1ZXMgcmV0dXJuZWQgdG8gRURYOkVBWCBpbiB1bmltcGxlbWVudGVkIGJpdCBsb2NhdGlvbnMgYXJlCiAgLy8gdW5kZWZpbmVkLgogIHVuc2lnbmVkIGxvbmcgX19lZHg7CiAgdW5zaWduZWQgbG9uZyBfX2VheDsKICBfX2FzbV9fICgicmRtc3IiIDogIj1kIihfX2VkeCksICI9YSIoX19lYXgpIDogImMiKF9fcmVnaXN0ZXIpKTsKICByZXR1cm4gKCgodW5zaWduZWQgX19pbnQ2NClfX2VkeCkgPDwgMzIpIHwgKHVuc2lnbmVkIF9faW50NjQpX19lYXg7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0xQVFJJTlRfVFlQRV9fIF9fREVGQVVMVF9GTl9BVFRSUwpfX3JlYWRjcjModm9pZCkgewogIHVuc2lnbmVkIF9fTFBUUklOVF9UWVBFX18gX19jcjNfdmFsOwogIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUlY3IzLCAlMCIgOiAiPXIiKF9fY3IzX3ZhbCkgOiA6ICJtZW1vcnkiKTsKICByZXR1cm4gX19jcjNfdmFsOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX3dyaXRlY3IzKHVuc2lnbmVkIF9fSU5UUFRSX1RZUEVfXyBfX2NyM192YWwpIHsKICBfX2FzbV9fICgibW92ICUwLCAlJWNyMyIgOiA6ICJyIihfX2NyM192YWwpIDogIm1lbW9yeSIpOwp9CgojaWZkZWYgX19jcGx1c3BsdXMKfQojZW5kaWYKCiN1bmRlZiBfX0xQVFJJTlRfVFlQRV9fCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19JTlRSSU5fSCAqLwojZW5kaWYgLyogX01TQ19WRVIgKi8KAHJpc2N2X3ZlY3Rvci5oAC8qPT09LS0tLSBzaGFpbnRyaW4uaCAtIFNIQSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8c2hhaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1NIQUlOVFJJTl9ICiNkZWZpbmUgX19TSEFJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNoYSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCiNkZWZpbmUgX21tX3NoYTFybmRzNF9lcHUzMihWMSwgVjIsIE0pIFwKICBfX2J1aWx0aW5faWEzMl9zaGExcm5kczQoKF9fdjRzaSkoX19tMTI4aSkoVjEpLCAoX192NHNpKShfX20xMjhpKShWMiksIChNKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGExbmV4dGVfZXB1MzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NoYTFuZXh0ZSgoX192NHNpKV9fWCwgKF9fdjRzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhMW1zZzFfZXB1MzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NoYTFtc2cxKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGExbXNnMl9lcHUzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2hhMW1zZzIoKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NoYTI1NnJuZHMyX2VwdTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSwgX19tMTI4aSBfX1opCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2hhMjU2cm5kczIoKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19ZLCAoX192NHNpKV9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGEyNTZtc2cxX2VwdTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zaGEyNTZtc2cxKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGEyNTZtc2cyX2VwdTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zaGEyNTZtc2cyKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX1NIQUlOVFJJTl9IICovCgB4ODZpbnRyaW4uaABzYW5pdGl6ZXIvYWxsb2NhdG9yX2ludGVyZmFjZS5oAHNhbml0aXplci9zY3Vkb19pbnRlcmZhY2UuaABJbnZhbGlkIGVzY2FwZSBjaGFyYWN0ZXIgaW4gc3RyaW5nLgByb290L3BidW5pdHMvAGVuZHBvczogAFNlYXJjaEJpdFN0YXRlIGluY29uc2lzdGVuY3kAUkUyOiB1bmV4cGVjdGVkIG9wOiAAZW1wdHl3aWR0aCAlI3ggLT4gJWQAaW52YWxpZCBjaGFyYWN0ZXIgY2xhc3MAQ29wdGljAExpbmVhcl9BAEx1AE11bHRhbmkAUGhhZ3NfUGEAU2hhcmFkYQBTb3lvbWJvAFNJR0ZQRQAlczogd3JvbmcgZWxmIHR5cGU6ICVkADAgPD0gaW5kZXggJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPD0gdmVyZGVmbnVtXwBoYXZlbid0IGxlZnQgQXJlbmEgcmVnaW9uAGoAeABkb3VibGUAJT0AYU4AZXEAPD0AU2EAUHJlcGFyZVRvTW9kaWZ5IHNob3VsZG4ndCBiZSBjYWxsZWQgb24gT0sgc3RhdHVzLgBBdHRlbXB0aW5nIHRvIGZldGNoIHZhbHVlIGluc3RlYWQgb2YgaGFuZGxpbmcgZXJyb3IgAFZhbHVlIG9mIFwALCBjYXAgPSAAcHctPm5leHQgPT0gdwBGaXhlZC9VVEMAZW50cm9weSBmaWxsIGZhaWxlZABUTFMgS0RGIGZhaWxlZC4KAEVOR0lORSByb3V0aW5lcwBmdW5jdGlvbiBzaG91bGQgbm90IGhhdmUgYmVlbiBjYWxsZWQAa3l0aGUucHJvdG8uS3ppcEluZm8uY3JpdGljYWxfa3ppcF9lcnJvcnMAa3l0aGUucHJvdG8uY29tbW9uLkxhbmd1YWdlLmFuYWx5emVyX3ZlcnNpb24AQ291bGQgbm90IHBhcnNlIHZuYW1lIGdlbmVyYXRvciBjb25maWd1cmF0aW9uOiAAX19jbGFuZ19jdWRhX2J1aWx0aW5fdmFycy5oAF9fY2xhbmdfY3VkYV9pbnRyaW5zaWNzLmgAX19jbGFuZ19jdWRhX21hdGguaAAvKj09PS0tLS0gX193bW1pbnRyaW5fcGNsbXVsLmggLSBQQ01VTCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1dNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxfX3dtbWludHJpbl9wY2xtdWwuaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHdtbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fV01NSU5UUklOX1BDTE1VTF9ICiNkZWZpbmUgX19XTU1JTlRSSU5fUENMTVVMX0gKCi8vLyBNdWx0aXBsaWVzIHR3byA2NC1iaXQgaW50ZWdlciB2YWx1ZXMsIHdoaWNoIGFyZSBzZWxlY3RlZCBmcm9tIHNvdXJjZQovLy8gICAgb3BlcmFuZHMgdXNpbmcgdGhlIGltbWVkaWF0ZS12YWx1ZSBvcGVyYW5kLiBUaGUgbXVsdGlwbGljYXRpb24gaXMgYQovLy8gICAgY2FycnktbGVzcyBtdWx0aXBsaWNhdGlvbiwgYW5kIHRoZSAxMjgtYml0IGludGVnZXIgcHJvZHVjdCBpcyBzdG9yZWQgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX2NsbXVsZXBpNjRfc2kxMjgoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZLCBjb25zdCBpbnQgX19JKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENMTVVMUURRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX1kKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19JCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgc3BlY2lmeWluZyB3aGljaCA2NC1iaXQgdmFsdWVzIHRvIHNlbGVjdCBmcm9tIHRoZQovLy8gICAgb3BlcmFuZHMuIEJpdCAwIGlzIHVzZWQgdG8gc2VsZWN0IGEgdmFsdWUgZnJvbSBvcGVyYW5kIFxhIF9fWCwgYW5kIGJpdAovLy8gICAgNCBpcyB1c2VkIHRvIHNlbGVjdCBhIHZhbHVlIGZyb20gb3BlcmFuZCBcYSBfX1k6IFxuCi8vLyAgICBCaXRbMF09MCBpbmRpY2F0ZXMgdGhhdCBiaXRzWzYzOjBdIG9mIG9wZXJhbmQgXGEgX19YIGFyZSB1c2VkLiBcbgovLy8gICAgQml0WzBdPTEgaW5kaWNhdGVzIHRoYXQgYml0c1sxMjc6NjRdIG9mIG9wZXJhbmQgXGEgX19YIGFyZSB1c2VkLiBcbgovLy8gICAgQml0WzRdPTAgaW5kaWNhdGVzIHRoYXQgYml0c1s2MzowXSBvZiBvcGVyYW5kIFxhIF9fWSBhcmUgdXNlZC4gXG4KLy8vICAgIEJpdFs0XT0xIGluZGljYXRlcyB0aGF0IGJpdHNbMTI3OjY0XSBvZiBvcGVyYW5kIFxhIF9fWSBhcmUgdXNlZC4KLy8vIFxyZXR1cm5zIFRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJlc3VsdCBvZiB0aGUgY2FycnktbGVzcwovLy8gICAgbXVsdGlwbGljYXRpb24gb2YgdGhlIHNlbGVjdGVkIDY0LWJpdCB2YWx1ZXMuCiNkZWZpbmUgX21tX2NsbXVsZXBpNjRfc2kxMjgoWCwgWSwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wY2xtdWxxZHExMjgoKF9fdjJkaSkoX19tMTI4aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFkpLCAoY2hhcikoSSkpKQoKI2VuZGlmIC8qIF9fV01NSU5UUklOX1BDTE1VTF9IICovCgBhcm1fY2RlLmgALyo9PT0tLS0tIGF2eDJpbnRyaW4uaCAtIEFWWDIgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdngyaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDJJTlRSSU5fSAojZGVmaW5lIF9fQVZYMklOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4MiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdngyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLyogU1NFNCBNdWx0aXBsZSBQYWNrZWQgU3VtcyBvZiBBYnNvbHV0ZSBEaWZmZXJlbmNlLiAgKi8KI2RlZmluZSBfbW0yNTZfbXBzYWRid19lcHU4KFgsIFksIE0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfbXBzYWRidzI1NigoX192MzJxaSkoX19tMjU2aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoWSksIChpbnQpKE0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hYnNfZXBpOChfX20yNTZpIF9fYSkKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhYnNiMjU2KChfX3YzMnFpKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hYnNfZXBpMTYoX19tMjU2aSBfX2EpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWJzdzI1NigoX192MTZoaSlfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWJzX2VwaTMyKF9fbTI1NmkgX19hKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFic2QyNTYoKF9fdjhzaSlfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGFja3NfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhY2tzc3diMjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BhY2tzX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWNrc3NkdzI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGFja3VzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWNrdXN3YjI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wYWNrdXNfZXBpMzIoX19tMjU2aSBfX1YxLCBfX20yNTZpIF9fVjIpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3BhY2t1c2R3MjU2KChfX3Y4c2kpX19WMSwgKF9fdjhzaSlfX1YyKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZF9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjMycXUpX19hICsgKF9fdjMycXUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZF9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YxNmh1KV9fYSArIChfX3YxNmh1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSArIChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZF9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZHUpX19hICsgKF9fdjRkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWRkc19lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWRkc2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWRkc19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFkZHN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZHNfZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFkZHVzYjI1NigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRzX2VwdTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWRkdXN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKI2RlZmluZSBfbW0yNTZfYWxpZ25yX2VwaTgoYSwgYiwgbikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWxpZ25yMjU2KChfX3YzMnFpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShiKSwgKG4pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hbmRfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSAmIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FuZG5vdF9zaTI1NihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKH4oX192NGR1KV9fYSAmIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2F2Z19lcHU4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYXZnYjI1NigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hdmdfZXB1MTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Bhdmd3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2JsZW5kdl9lcGk4KF9fbTI1NmkgX19WMSwgX19tMjU2aSBfX1YyLCBfX20yNTZpIF9fTSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYmxlbmR2YjI1NigoX192MzJxaSlfX1YxLCAoX192MzJxaSlfX1YyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19NKTsKfQoKI2RlZmluZSBfbW0yNTZfYmxlbmRfZXBpMTYoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BibGVuZHcyNTYoKF9fdjE2aGkpKF9fbTI1NmkpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShWMiksIChpbnQpKE0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbXBlcV9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjMycWkpX19hID09IChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbXBlcV9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YxNmhpKV9fYSA9PSAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZXFfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHNpKV9fYSA9PSAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbXBlcV9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZGkpX19hID09IChfX3Y0ZGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NtcGd0X2VwaTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgY29tcGFyaXNvbiwgYnV0IF9fdjMycWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjMycXMuICovCiAgcmV0dXJuIChfX20yNTZpKSgoX192MzJxcylfX2EgPiAoX192MzJxcylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZ3RfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192MTZoaSlfX2EgPiAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZ3RfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHNpKV9fYSA+IChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NtcGd0X2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkaSlfX2EgPiAoX192NGRpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9oYWRkX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BoYWRkdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9oYWRkX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BoYWRkZDI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaGFkZHNfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGhhZGRzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9oc3ViX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Boc3VidzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9oc3ViX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Boc3ViZDI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaHN1YnNfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGhzdWJzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYWRkdWJzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtYWRkdWJzdzI1NigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYWRkX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWFkZHdkMjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4c2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWF4X2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4c3cyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWF4X2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4c2QyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcHU4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4dWIyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWF4X2VwdTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4dXcyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWF4X2VwdTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4dWQyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWluc2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWluX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWluc3cyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWluX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWluc2QyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcHU4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWludWIyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWluX2VwdTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWludXcyNTYgKChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcHUzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnVkMjU2KChfX3Y4c2kpX19hLCAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21vdmVtYXNrX2VwaTgoX19tMjU2aSBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG1vdm1za2IyNTYoKF9fdjMycWkpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaThfZXBpMTYoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MTZxcylfX1YsIF9fdjE2aGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpOF9lcGkzMihfX20xMjhpIF9fVikKewogIC8qIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHBlcmZvcm1zIGEgc2lnbmVkIGV4dGVuc2lvbiwgYnV0IF9fdjE2cWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjE2cXMuICovCiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFzKV9fViwgKF9fdjE2cXMpX19WLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KSwgX192OHNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaThfZXBpNjQoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX1YsIChfX3YxNnFzKV9fViwgMCwgMSwgMiwgMyksIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGkxNl9lcGkzMihfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGhpKV9fViwgX192OHNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTE2X2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aGkpX19WLCAoX192OGhpKV9fViwgMCwgMSwgMiwgMyksIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGkzMl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHNpKV9fViwgX192NGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdThfZXBpMTYoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2cXUpX19WLCBfX3YxNmhpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdThfZXBpMzIoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXUpX19WLCAoX192MTZxdSlfX1YsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpLCBfX3Y4c2kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1OF9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxdSlfX1YsIChfX3YxNnF1KV9fViwgMCwgMSwgMiwgMyksIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUxNl9lcGkzMihfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGh1KV9fViwgX192OHNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTE2X2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aHUpX19WLCAoX192OGh1KV9fViwgMCwgMSwgMiwgMyksIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUzMl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHN1KV9fViwgX192NGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtdWxkcTI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsaHJzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbXVsaHJzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxoaV9lcHUxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG11bGh1dzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxoaV9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG11bGh3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X211bGxvX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjE2aHUpX19hICogKF9fdjE2aHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxsb19lcGkzMiAoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSAqIChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X211bF9lcHUzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG11bHVkcTI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfb3Jfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSB8IChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NhZF9lcHU4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2FkYncyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2h1ZmZsZV9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2h1ZmIyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgojZGVmaW5lIF9tbTI1Nl9zaHVmZmxlX2VwaTMyKGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2h1ZmQyNTYoKF9fdjhzaSkoX19tMjU2aSkoYSksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZWhpX2VwaTE2KGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2h1Zmh3MjU2KChfX3YxNmhpKShfX20yNTZpKShhKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9zaHVmZmxlbG9fZXBpMTYoYSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzaHVmbHcyNTYoKF9fdjE2aGkpKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaWduX2VwaTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNpZ25iMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NpZ25fZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNpZ253MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NpZ25fZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNpZ25kMjU2KChfX3Y4c2kpX19hLCAoX192OHNpKV9fYik7Cn0KCiNkZWZpbmUgX21tMjU2X3NsbGlfc2kyNTYoYSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGxkcWkyNTZfYnl0ZXNoaWZ0KChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X2JzbGxpX2VwaTEyOChhLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNsbGRxaTI1Nl9ieXRlc2hpZnQoKF9fdjRkaSkoX19tMjU2aSkoYSksIChpbnQpKGltbSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbGlfZXBpMTYoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGx3aTI1NigoX192MTZoaSlfX2EsIF9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2xsX2VwaTE2KF9fbTI1NmkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNsbHcyNTYoKF9fdjE2aGkpX19hLCAoX192OGhpKV9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2xsaV9lcGkzMihfX20yNTZpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNsbGRpMjU2KChfX3Y4c2kpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbF9lcGkzMihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGxkMjU2KChfX3Y4c2kpX19hLCAoX192NHNpKV9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2xsaV9lcGk2NChfX20yNTZpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHNsbHFpMjU2KChfX3Y0ZGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbF9lcGk2NChfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzbGxxMjU2KChfX3Y0ZGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYWlfZXBpMTYoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmF3aTI1NigoX192MTZoaSlfX2EsIF9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JhX2VwaTE2KF9fbTI1NmkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYXcyNTYoKF9fdjE2aGkpX19hLCAoX192OGhpKV9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JhaV9lcGkzMihfX20yNTZpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYWRpMjU2KChfX3Y4c2kpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYV9lcGkzMihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmFkMjU2KChfX3Y4c2kpX19hLCAoX192NHNpKV9fY291bnQpOwp9CgojZGVmaW5lIF9tbTI1Nl9zcmxpX3NpMjU2KGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsZHFpMjU2X2J5dGVzaGlmdCgoX19tMjU2aSkoYSksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfYnNybGlfZXBpMTI4KGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsZHFpMjU2X2J5dGVzaGlmdCgoX19tMjU2aSkoYSksIChpbnQpKGltbSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybGlfZXBpMTYoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Bzcmx3aTI1NigoX192MTZoaSlfX2EsIF9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JsX2VwaTE2KF9fbTI1NmkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybHcyNTYoKF9fdjE2aGkpX19hLCAoX192OGhpKV9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JsaV9lcGkzMihfX20yNTZpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybGRpMjU2KChfX3Y4c2kpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybF9lcGkzMihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmxkMjU2KChfX3Y4c2kpX19hLCAoX192NHNpKV9fY291bnQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JsaV9lcGk2NChfX20yNTZpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHNybHFpMjU2KChfX3Y0ZGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybF9lcGk2NChfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzcmxxMjU2KChfX3Y0ZGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1Yl9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjMycXUpX19hIC0gKF9fdjMycXUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1Yl9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YxNmh1KV9fYSAtIChfX3YxNmh1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192OHN1KV9fYSAtIChfX3Y4c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1Yl9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZHUpX19hIC0gKF9fdjRkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Vic19lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3Vic2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Vic19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHN1YnN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1YnNfZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHN1YnVzYjI1NigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJzX2VwdTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3VidXN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2hpX2VwaTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iLCA4LCAzMis4LCA5LCAzMis5LCAxMCwgMzIrMTAsIDExLCAzMisxMSwgMTIsIDMyKzEyLCAxMywgMzIrMTMsIDE0LCAzMisxNCwgMTUsIDMyKzE1LCAyNCwgMzIrMjQsIDI1LCAzMisyNSwgMjYsIDMyKzI2LCAyNywgMzIrMjcsIDI4LCAzMisyOCwgMjksIDMyKzI5LCAzMCwgMzIrMzAsIDMxLCAzMiszMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl91bnBhY2toaV9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IsIDQsIDE2KzQsIDUsIDE2KzUsIDYsIDE2KzYsIDcsIDE2KzcsIDEyLCAxNisxMiwgMTMsIDE2KzEzLCAxNCwgMTYrMTQsIDE1LCAxNisxNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl91bnBhY2toaV9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iLCAyLCA4KzIsIDMsIDgrMywgNiwgOCs2LCA3LCA4KzcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdW5wYWNraGlfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGkpX19hLCAoX192NGRpKV9fYiwgMSwgNCsxLCAzLCA0KzMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdW5wYWNrbG9fZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IsIDAsIDMyKzAsIDEsIDMyKzEsIDIsIDMyKzIsIDMsIDMyKzMsIDQsIDMyKzQsIDUsIDMyKzUsIDYsIDMyKzYsIDcsIDMyKzcsIDE2LCAzMisxNiwgMTcsIDMyKzE3LCAxOCwgMzIrMTgsIDE5LCAzMisxOSwgMjAsIDMyKzIwLCAyMSwgMzIrMjEsIDIyLCAzMisyMiwgMjMsIDMyKzIzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2xvX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYiwgMCwgMTYrMCwgMSwgMTYrMSwgMiwgMTYrMiwgMywgMTYrMywgOCwgMTYrOCwgOSwgMTYrOSwgMTAsIDE2KzEwLCAxMSwgMTYrMTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdW5wYWNrbG9fZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2kpX19hLCAoX192OHNpKV9fYiwgMCwgOCswLCAxLCA4KzEsIDQsIDgrNCwgNSwgOCs1KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2xvX2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IsIDAsIDQrMCwgMiwgNCsyKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3hvcl9zaTI1NihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZHUpX19hIF4gKF9fdjRkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3RyZWFtX2xvYWRfc2kyNTYoX19tMjU2aSBjb25zdCAqX19WKQp7CiAgdHlwZWRlZiBfX3Y0ZGkgX192NGRpX2FsaWduZWQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgzMikpKTsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX25vbnRlbXBvcmFsX2xvYWQoKGNvbnN0IF9fdjRkaV9hbGlnbmVkICopX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0c3NfcHMoX19tMTI4IF9fWCkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19YLCAoX192NHNmKV9fWCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3RzZF9wZChfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfX2EsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3Rzc19wcyhfX20xMjggX19YKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX1gsIChfX3Y0c2YpX19YLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdHNkX3BkKF9fbTEyOGQgX19YKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19YLCAoX192MmRmKV9fWCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RzaTEyOF9zaTI1NihfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fWCwgKF9fdjJkaSlfX1gsIDAsIDEsIDAsIDEpOwp9CgojZGVmaW5lIF9tbV9icm9hZGNhc3RzaTEyOF9zaTI1NihYKSBfbW0yNTZfYnJvYWRjYXN0c2kxMjhfc2kyNTYoWCkKCiNkZWZpbmUgX21tX2JsZW5kX2VwaTMyKFYxLCBWMiwgTSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYmxlbmRkMTI4KChfX3Y0c2kpKF9fbTEyOGkpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFYyKSwgKGludCkoTSkpKQoKI2RlZmluZSBfbW0yNTZfYmxlbmRfZXBpMzIoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BibGVuZGQyNTYoKF9fdjhzaSkoX19tMjU2aSkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVjIpLCAoaW50KShNKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0Yl9lcGk4KF9fbTEyOGkgX19YKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFpKV9fWCwgKF9fdjE2cWkpX19YLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdHdfZXBpMTYoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhoaSlfX1gsIChfX3Y4aGkpX19YLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdGRfZXBpMzIoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19YLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdHFfZXBpNjQoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19YLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdGJfZXBpOChfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxaSlfX1gsIChfX3YxNnFpKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3R3X2VwaTE2KF9fbTEyOGkgX19YKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aGkpX19YLCAoX192OGhpKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0ZF9lcGkzMihfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fWCwgKF9fdjRzaSlfX1gsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0cV9lcGk2NChfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fWCwgKF9fdjJkaSlfX1gsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXZhcjh4MzJfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJzaTI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlNHg2NF9wZChWLCBNKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3Blcm1kZjI1NigoX192NGRmKShfX20yNTZkKShWKSwgKGludCkoTSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXZhcjh4MzJfcHMoX19tMjU2IF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9wZXJtdmFyc2YyNTYoKF9fdjhzZilfX2EsIChfX3Y4c2kpX19iKTsKfQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZTR4NjRfZXBpNjQoViwgTSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtZGkyNTYoKF9fdjRkaSkoX19tMjU2aSkoViksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tMjU2X3Blcm11dGUyeDEyOF9zaTI1NihWMSwgVjIsIE0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGVybXRpMjU2KChfX20yNTZpKShWMSksIChfX20yNTZpKShWMiksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RpMTI4X3NpMjU2KFYsIE0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdDEyOGkyNTYoKF9fdjRkaSkoX19tMjU2aSkoViksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tMjU2X2luc2VydGkxMjhfc2kyNTYoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2luc2VydDEyOGkyNTYoKF9fdjRkaSkoX19tMjU2aSkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoVjIpLCAoaW50KShNKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza2xvYWRfZXBpMzIoaW50IGNvbnN0ICpfX1gsIF9fbTI1NmkgX19NKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkZDI1NigoY29uc3QgX192OHNpICopX19YLCAoX192OHNpKV9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrbG9hZF9lcGk2NChsb25nIGxvbmcgY29uc3QgKl9fWCwgX19tMjU2aSBfX00pCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfbWFza2xvYWRxMjU2KChjb25zdCBfX3Y0ZGkgKilfX1gsIChfX3Y0ZGkpX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tsb2FkX2VwaTMyKGludCBjb25zdCAqX19YLCBfX20xMjhpIF9fTSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9tYXNrbG9hZGQoKGNvbnN0IF9fdjRzaSAqKV9fWCwgKF9fdjRzaSlfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza2xvYWRfZXBpNjQobG9uZyBsb25nIGNvbnN0ICpfX1gsIF9fbTEyOGkgX19NKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkcSgoY29uc3QgX192MmRpICopX19YLCAoX192MmRpKV9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrc3RvcmVfZXBpMzIoaW50ICpfX1gsIF9fbTI1NmkgX19NLCBfX20yNTZpIF9fWSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZWQyNTYoKF9fdjhzaSAqKV9fWCwgKF9fdjhzaSlfX00sIChfX3Y4c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tzdG9yZV9lcGk2NChsb25nIGxvbmcgKl9fWCwgX19tMjU2aSBfX00sIF9fbTI1NmkgX19ZKQp7CiAgX19idWlsdGluX2lhMzJfbWFza3N0b3JlcTI1NigoX192NGRpICopX19YLCAoX192NGRpKV9fTSwgKF9fdjRkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3N0b3JlX2VwaTMyKGludCAqX19YLCBfX20xMjhpIF9fTSwgX19tMTI4aSBfX1kpCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrc3RvcmVkKChfX3Y0c2kgKilfX1gsIChfX3Y0c2kpX19NLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrc3RvcmVfZXBpNjQobG9uZyBsb25nICpfX1gsIF9fbTEyOGkgX19NLCBfX20xMjhpIF9fWSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZXEoKCBfX3YyZGkgKilfX1gsIChfX3YyZGkpX19NLCAoX192MmRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGx2X2VwaTMyKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsdjhzaSgoX192OHNpKV9fWCwgKF9fdjhzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2xsdl9lcGkzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNsbHY0c2koKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbHZfZXBpNjQoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGx2NGRpKChfX3Y0ZGkpX19YLCAoX192NGRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zbGx2X2VwaTY0KF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsdjJkaSgoX192MmRpKV9fWCwgKF9fdjJkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Jhdl9lcGkzMihfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYXY4c2koKF9fdjhzaSlfX1gsIChfX3Y4c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NyYXZfZXBpMzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmF2NHNpKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmx2X2VwaTMyKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsdjhzaSgoX192OHNpKV9fWCwgKF9fdjhzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3Jsdl9lcGkzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNybHY0c2koKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybHZfZXBpNjQoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Bzcmx2NGRpKChfX3Y0ZGkpX19YLCAoX192NGRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmx2X2VwaTY0KF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsdjJkaSgoX192MmRpKV9fWCwgKF9fdjJkaSlfX1kpOwp9CgojZGVmaW5lIF9tbV9tYXNrX2kzMmdhdGhlcl9wZChhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcGQoKF9fdjJkZikoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTMyZ2F0aGVyX3BkKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9wZDI1NigoX192NGRmKShfX20yNTZkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW1fbWFza19pNjRnYXRoZXJfcGQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BkKChfX3YyZGYpKF9fbTEyOGQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2k2NGdhdGhlcl9wZChhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX21hc2tfaTMyZ2F0aGVyX3BzKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3BzKChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMmdhdGhlcl9wcyhhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9wczI1NigoX192OHNmKShfX20yNTYpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW1fbWFza19pNjRnYXRoZXJfcHMoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcHMoKF9fdjRzZikoX19tMTI4KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTY0Z2F0aGVyX3BzKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BzMjU2KChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbV9tYXNrX2kzMmdhdGhlcl9lcGkzMihhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfZCgoX192NHNpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pMzJnYXRoZXJfZXBpMzIoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX2QyNTYoKF9fdjhzaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0Z2F0aGVyX2VwaTMyKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVycV9kKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2k2NGdhdGhlcl9lcGkzMihhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfZDI1NigoX192NHNpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW1fbWFza19pMzJnYXRoZXJfZXBpNjQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3EoKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTMyZ2F0aGVyX2VwaTY0KGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9xMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbV9tYXNrX2k2NGdhdGhlcl9lcGk2NChhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcSgoX192MmRpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZyBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRnYXRoZXJfZXBpNjQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3EyNTYoKF9fdjRkaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX2kzMmdhdGhlcl9wZChtLCBpLCBzKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcGQoKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jbXBlcV9wZChfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQoKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW0yNTZfaTMyZ2F0aGVyX3BkKG0sIGksIHMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9wZDI1NigoX192NGRmKV9tbTI1Nl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2NtcF9wZChfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0NNUF9FUV9PUSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW1faTY0Z2F0aGVyX3BkKG0sIGksIHMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2F0aGVycV9wZCgoX192MmRmKV9tbV91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2NtcGVxX3BkKF9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCgpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9pNjRnYXRoZXJfcGQobSwgaSwgcykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BkMjU2KChfX3Y0ZGYpX21tMjU2X3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY21wX3BkKF9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfQ01QX0VRX09RKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzKSkpCgojZGVmaW5lIF9tbV9pMzJnYXRoZXJfcHMobSwgaSwgcykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcHMoKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2NtcGVxX3BzKF9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzKCkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW0yNTZfaTMyZ2F0aGVyX3BzKG0sIGksIHMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3BzMjU2KChfX3Y4c2YpX21tMjU2X3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9jbXBfcHMoX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfQ01QX0VRX09RKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMpKSkKCiNkZWZpbmUgX21tX2k2NGdhdGhlcl9wcyhtLCBpLCBzKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVycV9wcygoX192NHNmKV9tbV91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fY21wZXFfcHMoX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMoKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9pNjRnYXRoZXJfcHMobSwgaSwgcykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcHMyNTYoKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2NtcGVxX3BzKF9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzKCkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW1faTMyZ2F0aGVyX2VwaTMyKG0sIGksIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9kKChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50IGNvbnN0ICopKG0pLCAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0MV9lcGkzMigtMSksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9pMzJnYXRoZXJfZXBpMzIobSwgaSwgcykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX2QyNTYoKF9fdjhzaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgY29uc3QgKikobSksIChfX3Y4c2kpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXQxX2VwaTMyKC0xKSwgKHMpKSkKCiNkZWZpbmUgX21tX2k2NGdhdGhlcl9lcGkzMihtLCBpLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfZCgoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldDFfZXBpMzIoLTEpLCAocykpKQoKI2RlZmluZSBfbW0yNTZfaTY0Z2F0aGVyX2VwaTMyKG0sIGksIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVycV9kMjU2KChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50IGNvbnN0ICopKG0pLCAoX192NGRpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0MV9lcGkzMigtMSksIChzKSkpCgojZGVmaW5lIF9tbV9pMzJnYXRoZXJfZXBpNjQobSwgaSwgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3EoKF9fdjJkaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXQxX2VwaTY0eCgtMSksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9pMzJnYXRoZXJfZXBpNjQobSwgaSwgcykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3EyNTYoKF9fdjRkaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXQxX2VwaTY0eCgtMSksIChzKSkpCgojZGVmaW5lIF9tbV9pNjRnYXRoZXJfZXBpNjQobSwgaSwgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3EoKF9fdjJkaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXQxX2VwaTY0eCgtMSksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9pNjRnYXRoZXJfZXBpNjQobSwgaSwgcykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3EyNTYoKF9fdjRkaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXQxX2VwaTY0eCgtMSksIChzKSkpCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKCiNlbmRpZiAvKiBfX0FWWDJJTlRSSU5fSCAqLwoAYnVpbHRpbnMuaABmbWE0aW50cmluLmgAaHZ4X2hleGFnb25fcHJvdG9zLmgAbW1pbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbW92ZGlyaW50cmluLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPG1vdmRpcmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX01PVkRJUklOVFJJTl9ICiNkZWZpbmUgX01PVkRJUklOVFJJTl9ICgovKiBNb3ZlIGRvdWJsZXdvcmQgYXMgZGlyZWN0IHN0b3JlICovCnN0YXRpYyBfX2lubGluZV9fIHZvaWQKX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygibW92ZGlyaSIpKSkKX2RpcmVjdHN0b3JldV91MzIgKHZvaWQgKl9fZHN0LCB1bnNpZ25lZCBpbnQgIF9fdmFsdWUpCnsKICBfX2J1aWx0aW5faWEzMl9kaXJlY3RzdG9yZV91MzIoKHVuc2lnbmVkIGludCAqKV9fZHN0LCAodW5zaWduZWQgaW50KV9fdmFsdWUpOwp9CgojaWZkZWYgX194ODZfNjRfXwoKLyogTW92ZSBxdWFkd29yZCBhcyBkaXJlY3Qgc3RvcmUgKi8Kc3RhdGljIF9faW5saW5lX18gdm9pZApfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJtb3ZkaXJpIikpKQpfZGlyZWN0c3RvcmV1X3U2NCAodm9pZCAqX19kc3QsIHVuc2lnbmVkIGxvbmcgX192YWx1ZSkKewogIF9fYnVpbHRpbl9pYTMyX2RpcmVjdHN0b3JlX3U2NCgodW5zaWduZWQgbG9uZyAqKV9fZHN0LCBfX3ZhbHVlKTsKfQoKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCi8qCiAqIG1vdmRpcjY0YiAtIE1vdmUgNjQgYnl0ZXMgYXMgZGlyZWN0IHN0b3JlLgogKiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSA2NCBieXRlIGFsaWduZWQsIGFuZCB0aGUgc3RvcmUgaXMgYXRvbWljLgogKiBUaGUgc291cmNlIGFkZHJlc3MgaGFzIG5vIGFsaWdubWVudCByZXF1aXJlbWVudCwgYW5kIHRoZSBsb2FkIGZyb20KICogdGhlIHNvdXJjZSBhZGRyZXNzIGlzIG5vdCBhdG9taWMuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCl9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIm1vdmRpcjY0YiIpKSkKX21vdmRpcjY0YiAodm9pZCAqX19kc3QgX19hdHRyaWJ1dGVfXygoYWxpZ25fdmFsdWUoNjQpKSksIGNvbnN0IHZvaWQgKl9fc3JjKQp7CiAgX19idWlsdGluX2lhMzJfbW92ZGlyNjRiKF9fZHN0LCBfX3NyYyk7Cn0KCiNlbmRpZiAvKiBfTU9WRElSSU5UUklOX0ggKi8KAHNneGludHJpbi5oAHN0ZGFyZy5oAC8vPT09LS0gc2FuaXRpemVyL2FzYW5faW50ZXJmYWNlLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgQWRkcmVzc1Nhbml0aXplciAoQVNhbikuCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9BU0FOX0lOVEVSRkFDRV9ICiNkZWZpbmUgU0FOSVRJWkVSX0FTQU5fSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgovLy8gTWFya3MgYSBtZW1vcnkgcmVnaW9uICg8Yz5bYWRkciwgYWRkcitzaXplKTwvYz4pIGFzIHVuYWRkcmVzc2FibGUuCi8vLwovLy8gVGhpcyBtZW1vcnkgbXVzdCBiZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBieSB5b3VyIHByb2dyYW0uIEluc3RydW1lbnRlZAovLy8gY29kZSBpcyBmb3JiaWRkZW4gZnJvbSBhY2Nlc3NpbmcgYWRkcmVzc2VzIGluIHRoaXMgcmVnaW9uIHVudGlsIGl0IGlzCi8vLyB1bnBvaXNvbmVkLiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBndWFyYW50ZWVkIHRvIHBvaXNvbiB0aGUgZW50aXJlIHJlZ2lvbiAtCi8vLyBpdCBjb3VsZCBwb2lzb24gb25seSBhIHN1YnJlZ2lvbiBvZiA8Yz5bYWRkciwgYWRkcitzaXplKTwvYz4gZHVlIHRvIEFTYW4KLy8vIGFsaWdubWVudCByZXN0cmljdGlvbnMuCi8vLwovLy8gXG5vdGUgVGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkLXNhZmUgYmVjYXVzZSBubyB0d28gdGhyZWFkcyBjYW4gcG9pc29uIG9yCi8vLyB1bnBvaXNvbiBtZW1vcnkgaW4gdGhlIHNhbWUgbWVtb3J5IHJlZ2lvbiBzaW11bHRhbmVvdXNseS4KLy8vCi8vLyBccGFyYW0gYWRkciBTdGFydCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBvZiBtZW1vcnkgcmVnaW9uLgp2b2lkIF9fYXNhbl9wb2lzb25fbWVtb3J5X3JlZ2lvbih2b2lkIGNvbnN0IHZvbGF0aWxlICphZGRyLCBzaXplX3Qgc2l6ZSk7CgovLy8gTWFya3MgYSBtZW1vcnkgcmVnaW9uICg8Yz5bYWRkciwgYWRkcitzaXplKTwvYz4pIGFzIGFkZHJlc3NhYmxlLgovLy8KLy8vIFRoaXMgbWVtb3J5IG11c3QgYmUgcHJldmlvdXNseSBhbGxvY2F0ZWQgYnkgeW91ciBwcm9ncmFtLiBBY2Nlc3NpbmcKLy8vIGFkZHJlc3NlcyBpbiB0aGlzIHJlZ2lvbiBpcyBhbGxvd2VkIHVudGlsIHRoaXMgcmVnaW9uIGlzIHBvaXNvbmVkIGFnYWluLgovLy8gVGhpcyBmdW5jdGlvbiBjb3VsZCB1bnBvaXNvbiBhIHN1cGVyLXJlZ2lvbiBvZiA8Yz5bYWRkciwgYWRkcitzaXplKTwvYz4gZHVlCi8vLyB0byBBU2FuIGFsaWdubWVudCByZXN0cmljdGlvbnMuCi8vLwovLy8gXG5vdGUgVGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkLXNhZmUgYmVjYXVzZSBubyB0d28gdGhyZWFkcyBjYW4KLy8vIHBvaXNvbiBvciB1bnBvaXNvbiBtZW1vcnkgaW4gdGhlIHNhbWUgbWVtb3J5IHJlZ2lvbiBzaW11bHRhbmVvdXNseS4KLy8vCi8vLyBccGFyYW0gYWRkciBTdGFydCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBvZiBtZW1vcnkgcmVnaW9uLgp2b2lkIF9fYXNhbl91bnBvaXNvbl9tZW1vcnlfcmVnaW9uKHZvaWQgY29uc3Qgdm9sYXRpbGUgKmFkZHIsIHNpemVfdCBzaXplKTsKCi8vIE1hY3JvcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2UuCiNpZiBfX2hhc19mZWF0dXJlKGFkZHJlc3Nfc2FuaXRpemVyKSB8fCBkZWZpbmVkKF9fU0FOSVRJWkVfQUREUkVTU19fKQovLy8gTWFya3MgYSBtZW1vcnkgcmVnaW9uIGFzIHVuYWRkcmVzc2FibGUuCi8vLwovLy8gXG5vdGUgTWFjcm8gcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlOyBkZWZpbmVkIGFzIGEgbm8tb3AgaWYgQVNhbiBpcyBub3QKLy8vIGVuYWJsZWQuCi8vLwovLy8gXHBhcmFtIGFkZHIgU3RhcnQgb2YgbWVtb3J5IHJlZ2lvbi4KLy8vIFxwYXJhbSBzaXplIFNpemUgb2YgbWVtb3J5IHJlZ2lvbi4KI2RlZmluZSBBU0FOX1BPSVNPTl9NRU1PUllfUkVHSU9OKGFkZHIsIHNpemUpIFwKICBfX2FzYW5fcG9pc29uX21lbW9yeV9yZWdpb24oKGFkZHIpLCAoc2l6ZSkpCgovLy8gTWFya3MgYSBtZW1vcnkgcmVnaW9uIGFzIGFkZHJlc3NhYmxlLgovLy8KLy8vIFxub3RlIE1hY3JvIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsgZGVmaW5lZCBhcyBhIG5vLW9wIGlmIEFTYW4gaXMgbm90Ci8vLyBlbmFibGVkLgovLy8KLy8vIFxwYXJhbSBhZGRyIFN0YXJ0IG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gc2l6ZSBTaXplIG9mIG1lbW9yeSByZWdpb24uCiNkZWZpbmUgQVNBTl9VTlBPSVNPTl9NRU1PUllfUkVHSU9OKGFkZHIsIHNpemUpIFwKICBfX2FzYW5fdW5wb2lzb25fbWVtb3J5X3JlZ2lvbigoYWRkciksIChzaXplKSkKI2Vsc2UKI2RlZmluZSBBU0FOX1BPSVNPTl9NRU1PUllfUkVHSU9OKGFkZHIsIHNpemUpIFwKICAoKHZvaWQpKGFkZHIpLCAodm9pZCkoc2l6ZSkpCiNkZWZpbmUgQVNBTl9VTlBPSVNPTl9NRU1PUllfUkVHSU9OKGFkZHIsIHNpemUpIFwKICAoKHZvaWQpKGFkZHIpLCAodm9pZCkoc2l6ZSkpCiNlbmRpZgoKLy8vIENoZWNrcyBpZiBhbiBhZGRyZXNzIGlzIHBvaXNvbmVkLgovLy8KLy8vIFJldHVybnMgMSBpZiA8Yz48aT5hZGRyPC9pPjwvYz4gaXMgcG9pc29uZWQgKHRoYXQgaXMsIDEtYnl0ZSByZWFkL3dyaXRlCi8vLyBhY2Nlc3MgdG8gdGhpcyBhZGRyZXNzIHdvdWxkIHJlc3VsdCBpbiBhbiBlcnJvciByZXBvcnQgZnJvbSBBU2FuKS4KLy8vIE90aGVyd2lzZSByZXR1cm5zIDAuCi8vLwovLy8gXHBhcmFtIGFkZHIgQWRkcmVzcyB0byBjaGVjay4KLy8vCi8vLyBccmV0dmFsIDEgQWRkcmVzcyBpcyBwb2lzb25lZC4KLy8vIFxyZXR2YWwgMCBBZGRyZXNzIGlzIG5vdCBwb2lzb25lZC4KaW50IF9fYXNhbl9hZGRyZXNzX2lzX3BvaXNvbmVkKHZvaWQgY29uc3Qgdm9sYXRpbGUgKmFkZHIpOwoKLy8vIENoZWNrcyBpZiBhIHJlZ2lvbiBpcyBwb2lzb25lZC4KLy8vCi8vLyBJZiBhdCBsZWFzdCBvbmUgYnl0ZSBpbiA8Yz5bYmVnLCBiZWcrc2l6ZSk8L2M+IGlzIHBvaXNvbmVkLCByZXR1cm5zIHRoZQovLy8gYWRkcmVzcyBvZiB0aGUgZmlyc3Qgc3VjaCBieXRlLiBPdGhlcndpc2UgcmV0dXJucyAwLgovLy8KLy8vIFxwYXJhbSBiZWcgU3RhcnQgb2YgbWVtb3J5IHJlZ2lvbi4KLy8vIFxwYXJhbSBzaXplIFN0YXJ0IG9mIG1lbW9yeSByZWdpb24uCi8vLyBccmV0dXJucyBBZGRyZXNzIG9mIGZpcnN0IHBvaXNvbmVkIGJ5dGUuCnZvaWQgKl9fYXNhbl9yZWdpb25faXNfcG9pc29uZWQodm9pZCAqYmVnLCBzaXplX3Qgc2l6ZSk7CgovLy8gRGVzY3JpYmVzIGFuIGFkZHJlc3MgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gUHJpbnRzIHRoZSBkZXNjcmlwdGlvbiBvZiA8Yz48aT5hZGRyPC9pPjwvYz4uCi8vLwovLy8gXHBhcmFtIGFkZHIgQWRkcmVzcyB0byBkZXNjcmliZS4Kdm9pZCBfX2FzYW5fZGVzY3JpYmVfYWRkcmVzcyh2b2lkICphZGRyKTsKCi8vLyBDaGVja3MgaWYgYW4gZXJyb3IgaGFzIGJlZW4gb3IgaXMgYmVpbmcgcmVwb3J0ZWQgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tCi8vLyB0aGUgZGVidWdnZXIgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGFuIEFTYW4gZXJyb3IpLgovLy8KLy8vIFJldHVybnMgMSBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpIHJlcG9ydGVkLiBPdGhlcndpc2UgcmV0dXJucyAwLgovLy8KLy8vIFxyZXR1cm5zIDEgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKSByZXBvcnRlZC4gT3RoZXJ3aXNlIHJldHVybnMKLy8vIDAuCmludCBfX2FzYW5fcmVwb3J0X3ByZXNlbnQodm9pZCk7CgovLy8gR2V0cyB0aGUgUEMgKHByb2dyYW0gY291bnRlcikgcmVnaXN0ZXIgdmFsdWUgb2YgYW4gQVNhbiBlcnJvciAodXNlZnVsIGZvcgovLy8gY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gUmV0dXJucyBQQyBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpIHJlcG9ydGVkLgovLy8gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyBQQyB2YWx1ZS4Kdm9pZCAqX19hc2FuX2dldF9yZXBvcnRfcGModm9pZCk7CgovLy8gR2V0cyB0aGUgQlAgKGJhc2UgcG9pbnRlcikgcmVnaXN0ZXIgdmFsdWUgb2YgYW4gQVNhbiBlcnJvciAodXNlZnVsIGZvcgovLy8gY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gUmV0dXJucyBCUCBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpIHJlcG9ydGVkLgovLy8gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyBCUCB2YWx1ZS4Kdm9pZCAqX19hc2FuX2dldF9yZXBvcnRfYnAodm9pZCk7CgovLy8gR2V0cyB0aGUgU1AgKHN0YWNrIHBvaW50ZXIpIHJlZ2lzdGVyIHZhbHVlIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IKLy8vIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIElmIGFuIGVycm9yIGhhcyBiZWVuIChvciBpcyBiZWluZykgcmVwb3J0ZWQsIHJldHVybnMgU1AuCi8vLyBPdGhlcndpc2UgcmV0dXJucyAwLgovLy8KLy8vIFxyZXR1cm5zIFNQIHZhbHVlLgp2b2lkICpfX2FzYW5fZ2V0X3JlcG9ydF9zcCh2b2lkKTsKCi8vLyBHZXRzIHRoZSBhZGRyZXNzIG9mIHRoZSByZXBvcnQgYnVmZmVyIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IgY2FsbGluZwovLy8gZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIHJlcG9ydCBidWZmZXIgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKQovLy8gcmVwb3J0ZWQuIE90aGVyd2lzZSByZXR1cm5zIDAuCi8vLwovLy8gXHJldHVybnMgQWRkcmVzcyBvZiByZXBvcnQgYnVmZmVyLgp2b2lkICpfX2FzYW5fZ2V0X3JlcG9ydF9hZGRyZXNzKHZvaWQpOwoKLy8vIEdldHMgYWNjZXNzIHR5cGUgb2YgYW4gQVNhbiBlcnJvciAodXNlZnVsIGZvciBjYWxsaW5nIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBSZXR1cm5zIGFjY2VzcyB0eXBlIChyZWFkIG9yIHdyaXRlKSBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpCi8vLyByZXBvcnRlZC4gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyBBY2Nlc3MgdHlwZSAoMCA9IHJlYWQsIDEgPSB3cml0ZSkuCmludCBfX2FzYW5fZ2V0X3JlcG9ydF9hY2Nlc3NfdHlwZSh2b2lkKTsKCi8vLyBHZXRzIGFjY2VzcyBzaXplIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gUmV0dXJucyBhY2Nlc3Mgc2l6ZSBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpIHJlcG9ydGVkLiBPdGhlcndpc2UKLy8vIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyBBY2Nlc3Mgc2l6ZSBpbiBieXRlcy4Kc2l6ZV90IF9fYXNhbl9nZXRfcmVwb3J0X2FjY2Vzc19zaXplKHZvaWQpOwoKLy8vIEdldHMgdGhlIGJ1ZyBkZXNjcmlwdGlvbiBvZiBhbiBBU2FuIGVycm9yICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSBhCi8vLyBkZWJ1Z2dlcikuCi8vLwovLy8gXHJldHVybnMgUmV0dXJucyBhIGJ1ZyBkZXNjcmlwdGlvbiBpZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpCi8vLyByZXBvcnRlZCAtIGZvciBleGFtcGxlLCAiaGVhcC11c2UtYWZ0ZXItZnJlZSIuIE90aGVyd2lzZSByZXR1cm5zIGFuIGVtcHR5Ci8vLyBzdHJpbmcuCmNvbnN0IGNoYXIgKl9fYXNhbl9nZXRfcmVwb3J0X2Rlc2NyaXB0aW9uKHZvaWQpOwoKLy8vIEdldHMgaW5mb3JtYXRpb24gYWJvdXQgYSBwb2ludGVyICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFJldHVybnMgdGhlIGNhdGVnb3J5IG9mIHRoZSBnaXZlbiBwb2ludGVyIGFzIGEgY29uc3RhbnQgc3RyaW5nLgovLy8gUG9zc2libGUgcmV0dXJuIHZhbHVlcyBhcmUgPGM+Z2xvYmFsPC9jPiwgPGM+c3RhY2s8L2M+LCA8Yz5zdGFjay1mYWtlPC9jPiwKLy8vIDxjPmhlYXA8L2M+LCA8Yz5oZWFwLWludmFsaWQ8L2M+LCA8Yz5zaGFkb3ctbG93PC9jPiwgPGM+c2hhZG93LWdhcDwvYz4sCi8vLyA8Yz5zaGFkb3ctaGlnaDwvYz4sIGFuZCA8Yz51bmtub3duPC9jPi4KLy8vCi8vLyBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIDxjPmdsb2JhbDwvYz4gb3IgPGM+c3RhY2s8L2M+LCB0cmllcyB0byBhbHNvIHJldHVybgovLy8gdGhlIHZhcmlhYmxlIG5hbWUsIGFkZHJlc3MsIGFuZCBzaXplLiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIDxjPmhlYXA8L2M+LAovLy8gdHJpZXMgdG8gcmV0dXJuIHRoZSBjaHVuayBhZGRyZXNzIGFuZCBzaXplLiA8Yz48aT5uYW1lPC9pPjwvYz4gc2hvdWxkIHBvaW50Ci8vLyB0byBhbiBhbGxvY2F0ZWQgYnVmZmVyIG9mIHNpemUgPGM+PGk+bmFtZV9zaXplPC9pPjwvYz4uCi8vLwovLy8gXHBhcmFtIGFkZHIgQWRkcmVzcyB0byBsb2NhdGUuCi8vLyBccGFyYW0gbmFtZSBCdWZmZXIgdG8gc3RvcmUgdGhlIHZhcmlhYmxlJ3MgbmFtZS4KLy8vIFxwYXJhbSBuYW1lX3NpemUgU2l6ZSBpbiBieXRlcyBvZiB0aGUgdmFyaWFibGUncyBuYW1lIGJ1ZmZlci4KLy8vIFxwYXJhbVtvdXRdIHJlZ2lvbl9hZGRyZXNzIEFkZHJlc3Mgb2YgdGhlIHJlZ2lvbi4KLy8vIFxwYXJhbVtvdXRdIHJlZ2lvbl9zaXplIFNpemUgb2YgdGhlIHJlZ2lvbiBpbiBieXRlcy4KLy8vCi8vLyBccmV0dXJucyBSZXR1cm5zIHRoZSBjYXRlZ29yeSBvZiB0aGUgZ2l2ZW4gcG9pbnRlciBhcyBhIGNvbnN0YW50IHN0cmluZy4KY29uc3QgY2hhciAqX19hc2FuX2xvY2F0ZV9hZGRyZXNzKHZvaWQgKmFkZHIsIGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcmVnaW9uX2FkZHJlc3MsIHNpemVfdCAqcmVnaW9uX3NpemUpOwoKLy8vIEdldHMgdGhlIGFsbG9jYXRpb24gc3RhY2sgdHJhY2UgYW5kIHRocmVhZCBJRCBmb3IgYSBoZWFwIGFkZHJlc3MgKHVzZWZ1bAovLy8gZm9yIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFN0b3JlcyB1cCB0byA8Yz48aT5zaXplPC9pPjwvYz4gZnJhbWVzIGluIDxjPjxpPnRyYWNlPC9pPjwvYz4uIFJldHVybnMKLy8vIHRoZSBudW1iZXIgb2Ygc3RvcmVkIGZyYW1lcyBvciAwIG9uIGVycm9yLgovLy8KLy8vIFxwYXJhbSBhZGRyIEEgaGVhcCBhZGRyZXNzLgovLy8gXHBhcmFtIHRyYWNlIEEgYnVmZmVyIHRvIHN0b3JlIHRoZSBzdGFjayB0cmFjZS4KLy8vIFxwYXJhbSBzaXplIFNpemUgaW4gYnl0ZXMgb2YgdGhlIHRyYWNlIGJ1ZmZlci4KLy8vIFxwYXJhbVtvdXRdIHRocmVhZF9pZCBUaGUgdGhyZWFkIElEIG9mIHRoZSBhZGRyZXNzLgovLy8KLy8vIFxyZXR1cm5zIFJldHVybnMgdGhlIG51bWJlciBvZiBzdG9yZWQgZnJhbWVzIG9yIDAgb24gZXJyb3IuCnNpemVfdCBfX2FzYW5fZ2V0X2FsbG9jX3N0YWNrKHZvaWQgKmFkZHIsIHZvaWQgKip0cmFjZSwgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqdGhyZWFkX2lkKTsKCi8vLyBHZXRzIHRoZSBmcmVlIHN0YWNrIHRyYWNlIGFuZCB0aHJlYWQgSUQgZm9yIGEgaGVhcCBhZGRyZXNzICh1c2VmdWwgZm9yCi8vLyBjYWxsaW5nIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBTdG9yZXMgdXAgdG8gPGM+PGk+c2l6ZTwvaT48L2M+IGZyYW1lcyBpbiA8Yz48aT50cmFjZTwvaT48L2M+LiBSZXR1cm5zCi8vLyB0aGUgbnVtYmVyIG9mIHN0b3JlZCBmcmFtZXMgb3IgMCBvbiBlcnJvci4KLy8vCi8vLyBccGFyYW0gYWRkciBBIGhlYXAgYWRkcmVzcy4KLy8vIFxwYXJhbSB0cmFjZSBBIGJ1ZmZlciB0byBzdG9yZSB0aGUgc3RhY2sgdHJhY2UuCi8vLyBccGFyYW0gc2l6ZSBTaXplIGluIGJ5dGVzIG9mIHRoZSB0cmFjZSBidWZmZXIuCi8vLyBccGFyYW1bb3V0XSB0aHJlYWRfaWQgVGhlIHRocmVhZCBJRCBvZiB0aGUgYWRkcmVzcy4KLy8vCi8vLyBccmV0dXJucyBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3RvcmVkIGZyYW1lcyBvciAwIG9uIGVycm9yLgpzaXplX3QgX19hc2FuX2dldF9mcmVlX3N0YWNrKHZvaWQgKmFkZHIsIHZvaWQgKip0cmFjZSwgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICp0aHJlYWRfaWQpOwoKLy8vIEdldHMgdGhlIGN1cnJlbnQgc2hhZG93IG1lbW9yeSBtYXBwaW5nICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSB0aGUKLy8vIGRlYnVnZ2VyKS4KLy8vCi8vLyBccGFyYW1bb3V0XSBzaGFkb3dfc2NhbGUgU2hhZG93IHNjYWxlIHZhbHVlLgovLy8gXHBhcmFtW291dF0gc2hhZG93X29mZnNldCBPZmZzZXQgdmFsdWUuCnZvaWQgX19hc2FuX2dldF9zaGFkb3dfbWFwcGluZyhzaXplX3QgKnNoYWRvd19zY2FsZSwgc2l6ZV90ICpzaGFkb3dfb2Zmc2V0KTsKCi8vLyBUaGlzIGlzIGFuIGludGVybmFsIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHRvIHJlcG9ydCBhbiBlcnJvci4gSG93ZXZlciwKLy8vIGl0IGlzIHN0aWxsIGEgcGFydCBvZiB0aGUgaW50ZXJmYWNlIGJlY2F1c2UgeW91IG1pZ2h0IHdhbnQgdG8gc2V0IGEKLy8vIGJyZWFrcG9pbnQgb24gdGhpcyBmdW5jdGlvbiBpbiB0aGUgZGVidWdnZXIuCi8vLwovLy8gXHBhcmFtIHBjIDxjPjxpPnBjPC9pPjwvYz4gdmFsdWUgb2YgdGhlIEFTYW4gZXJyb3IuCi8vLyBccGFyYW0gYnAgPGM+PGk+YnA8L2k+PC9jPiB2YWx1ZSBvZiB0aGUgQVNhbiBlcnJvci4KLy8vIFxwYXJhbSBzcCA8Yz48aT5zcDwvaT48L2M+IHZhbHVlIG9mIHRoZSBBU2FuIGVycm9yLgovLy8gXHBhcmFtIGFkZHIgQWRkcmVzcyBvZiB0aGUgQVNhbiBlcnJvci4KLy8vIFxwYXJhbSBpc193cml0ZSBUcnVlIGlmIHRoZSBlcnJvciBpcyBhIHdyaXRlIGVycm9yOyBmYWxzZSBvdGhlcndpc2UuCi8vLyBccGFyYW0gYWNjZXNzX3NpemUgU2l6ZSBvZiB0aGUgbWVtb3J5IGFjY2VzcyBvZiB0aGUgQVNhbiBlcnJvci4Kdm9pZCBfX2FzYW5fcmVwb3J0X2Vycm9yKHZvaWQgKnBjLCB2b2lkICpicCwgdm9pZCAqc3AsCiAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICphZGRyLCBpbnQgaXNfd3JpdGUsIHNpemVfdCBhY2Nlc3Nfc2l6ZSk7CgovLyBEZXByZWNhdGVkLiBDYWxsIF9fc2FuaXRpemVyX3NldF9kZWF0aF9jYWxsYmFjayBpbnN0ZWFkLgp2b2lkIF9fYXNhbl9zZXRfZGVhdGhfY2FsbGJhY2sodm9pZCAoKmNhbGxiYWNrKSh2b2lkKSk7CgovLy8gU2V0cyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGR1cmluZyBBU2FuIGVycm9yIHJlcG9ydGluZy4KLy8vCi8vLyBUaGUgY2FsbGJhY2sgcHJvdmlkZXMgYSBzdHJpbmcgcG9pbnRlciB0byB0aGUgcmVwb3J0LgovLy8KLy8vIFxwYXJhbSBjYWxsYmFjayBVc2VyLXByb3ZpZGVkIGZ1bmN0aW9uLgp2b2lkIF9fYXNhbl9zZXRfZXJyb3JfcmVwb3J0X2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykoY29uc3QgY2hhciAqKSk7CgovLy8gVXNlci1wcm92aWRlZCBjYWxsYmFjayBvbiBBU2FuIGVycm9ycy4KLy8vCi8vLyBZb3UgY2FuIHByb3ZpZGUgYSBmdW5jdGlvbiB0aGF0IHdvdWxkIGJlIGNhbGxlZCBpbW1lZGlhdGVseSB3aGVuIEFTYW4KLy8vIGRldGVjdHMgYW4gZXJyb3IuIFRoaXMgaXMgdXNlZnVsIGluIGNhc2VzIHdoZW4gQVNhbiBkZXRlY3RzIGFuIGVycm9yIGJ1dAovLy8geW91ciBwcm9ncmFtIGNyYXNoZXMgYmVmb3JlIHRoZSBBU2FuIHJlcG9ydCBpcyBwcmludGVkLgp2b2lkIF9fYXNhbl9vbl9lcnJvcih2b2lkKTsKCi8vLyBQcmludHMgYWNjdW11bGF0ZWQgc3RhdGlzdGljcyB0byA8Yz5zdGRlcnI8L2M+ICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSB0aGUKLy8vIGRlYnVnZ2VyKS4Kdm9pZCBfX2FzYW5fcHJpbnRfYWNjdW11bGF0ZWRfc3RhdHModm9pZCk7CgovLy8gVXNlci1wcm92aWRlZCBkZWZhdWx0IG9wdGlvbiBzZXR0aW5ncy4KLy8vCi8vLyBZb3UgY2FuIHByb3ZpZGUgeW91ciBvd24gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYSBzdHJpbmcKLy8vIGNvbnRhaW5pbmcgQVNhbiBydW50aW1lIG9wdGlvbnMgKGZvciBleGFtcGxlLAovLy8gPGM+dmVyYm9zaXR5PTE6aGFsdF9vbl9lcnJvcj0wPC9jPikuCi8vLwovLy8gXHJldHVybnMgRGVmYXVsdCBvcHRpb25zIHN0cmluZy4KY29uc3QgY2hhciogX19hc2FuX2RlZmF1bHRfb3B0aW9ucyh2b2lkKTsKCi8vIFRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBmYWNpbGl0YXRlIGdhcmJhZ2UgY29sbGVjdGlvbiBpbiBwcmVzZW5jZSBvZgovLyBBU2FuJ3MgZmFrZSBzdGFjay4KCi8vLyBHZXRzIGFuIG9wYXF1ZSBoYW5kbGVyIHRvIHRoZSBjdXJyZW50IHRocmVhZCdzIGZha2Ugc3RhY2suCi8vLwovLy8gUmV0dXJucyBhbiBvcGFxdWUgaGFuZGxlciB0byBiZSB1c2VkIGJ5Ci8vLyA8Yz5fX2FzYW5fYWRkcl9pc19pbl9mYWtlX3N0YWNrKCk8L2M+LiBSZXR1cm5zIE5VTEwgaWYgdGhlIGN1cnJlbnQgdGhyZWFkCi8vLyBkb2VzIG5vdCBoYXZlIGEgZmFrZSBzdGFjay4KLy8vCi8vLyBccmV0dXJucyBBbiBvcGFxdWUgaGFuZGxlciB0byB0aGUgZmFrZSBzdGFjayBvciBOVUxMLgp2b2lkICpfX2FzYW5fZ2V0X2N1cnJlbnRfZmFrZV9zdGFjayh2b2lkKTsKCi8vLyBDaGVja3MgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgZ2l2ZW4gZmFrZSBzdGFjay4KLy8vCi8vLyBJZiA8Yz48aT5mYWtlX3N0YWNrPC9pPjwvYz4gaXMgbm9uLU5VTEwgYW5kIDxjPjxpPmFkZHI8L2k+PC9jPiBiZWxvbmdzIHRvIGEKLy8vIGZha2UgZnJhbWUgaW4gPGM+PGk+ZmFrZV9zdGFjazwvaT48L2M+LCByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSByZWFsCi8vLyBzdGFjayB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBmYWtlIGZyYW1lIGFuZCBzZXRzIDxjPjxpPmJlZzwvaT48L2M+IGFuZAovLy8gPGM+PGk+ZW5kPC9pPjwvYz4gdG8gdGhlIGJvdW5kYXJpZXMgb2YgdGhpcyBmYWtlIGZyYW1lLiBPdGhlcndpc2UgcmV0dXJucwovLy8gTlVMTCBhbmQgZG9lcyBub3QgdG91Y2ggPGM+PGk+YmVnPC9pPjwvYz4gYW5kIDxjPjxpPmVuZDwvaT48L2M+LgovLy8KLy8vIElmIDxjPjxpPmJlZzwvaT48L2M+IG9yIDxjPjxpPmVuZDwvaT48L2M+IGFyZSBOVUxMLCB0aGV5IGFyZSBub3QgdG91Y2hlZC4KLy8vCi8vLyBcbm90ZSBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhIHRocmVhZCBvdGhlciB0aGFuIHRoZSBvd25lciBvZgovLy8gPGM+PGk+ZmFrZV9zdGFjazwvaT48L2M+LCBidXQgdGhlIG93bmVyIHRocmVhZCBuZWVkcyB0byBiZSBhbGl2ZS4KLy8vCi8vLyBccGFyYW0gZmFrZV9zdGFjayBBbiBvcGFxdWUgaGFuZGxlciB0byBhIGZha2Ugc3RhY2suCi8vLyBccGFyYW0gYWRkciBBZGRyZXNzIHRvIHRlc3QuCi8vLyBccGFyYW1bb3V0XSBiZWcgQmVnaW5uaW5nIG9mIGZha2UgZnJhbWUuCi8vLyBccGFyYW1bb3V0XSBlbmQgRW5kIG9mIGZha2UgZnJhbWUuCi8vLyBccmV0dXJucyBTdGFjayBhZGRyZXNzIG9yIE5VTEwuCnZvaWQgKl9fYXNhbl9hZGRyX2lzX2luX2Zha2Vfc3RhY2sodm9pZCAqZmFrZV9zdGFjaywgdm9pZCAqYWRkciwgdm9pZCAqKmJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqZW5kKTsKCi8vLyBQZXJmb3JtcyBzaGFkb3cgbWVtb3J5IGNsZWFudXAgb2YgdGhlIGN1cnJlbnQgdGhyZWFkJ3Mgc3RhY2sgYmVmb3JlIGEKLy8vIGZ1bmN0aW9uIG1hcmtlZCB3aXRoIHRoZSA8Yz5bW25vcmV0dXJuXV08L2M+IGF0dHJpYnV0ZSBpcyBjYWxsZWQuCi8vLwovLy8gVG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIG9uIHRoZSBzdGFjaywgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIG5vLXJldHVybgovLy8gZnVuY3Rpb25zIGxpa2UgPGM+X2V4aXQoKTwvYz4gYW5kIDxjPmV4ZWNsKCk8L2M+Lgp2b2lkIF9fYXNhbl9oYW5kbGVfbm9fcmV0dXJuKHZvaWQpOwoKLy8vIFVwZGF0ZSBhbGxvY2F0aW9uIHN0YWNrIHRyYWNlIGZvciB0aGUgZ2l2ZW4gYWxsb2NhdGlvbiB0byB0aGUgY3VycmVudCBzdGFjawovLy8gdHJhY2UuIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsbCwgMCBpZiBub3QuCmludCBfX2FzYW5fdXBkYXRlX2FsbG9jYXRpb25fY29udGV4dCh2b2lkKiBhZGRyKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfQVNBTl9JTlRFUkZBQ0VfSAoAS1lUSEVfS1pJUF9FTkNPRElORwBqc29uAHVuaGFuZGxlZCAAKCVkLCVkKQAoAEJhZCBmaW5hbCBjaGFyOiAAQmF0YWsAQ28AQ3MAQ3VuZWlmb3JtAEdlb3JnaWFuAEtodWRhd2FkaQBNZXJvaXRpY19IaWVyb2dseXBocwBNbgBUYWdhbG9nAFpwAFslcyA6ICVkXSBSQVc6IABoAERjAGRsAG5nAGVvAHNpemVvZgA8PgBVTkFWQUlMQUJMRQBcVSBtdXN0IGJlIGZvbGxvd2VkIGJ5IDggaGV4IGRpZ2l0czogXABcJwB0aGlzLT5Mb2NrU2xvd1dpdGhEZWFkbGluZShob3csIGNvbmQsIEtlcm5lbFRpbWVvdXQ6Ok5ldmVyKCksIGZsYWdzKQAhdy0+d2FpdHAtPnRpbWVvdXQuaGFzX3RpbWVvdXQoKQBMb2NrIHJldHVybmluZyAAU2lnbmFsQWxsIG9uIABtcwBSU0Egc2lnbmluZyB0ZXN0IGZhaWxlZC4KAFogQ29tcHV0YXRpb24gUmVzdWx0AFogQ29tcHV0YXRpb24gS0FUIGZhaWxlZC4KAE9QRU5TU0xESVI6IG4vYQBwdWJsaWMga2V5IHJvdXRpbmVzAG91dC9zb29uZy8uaW50ZXJtZWRpYXRlcy9leHRlcm5hbC9reXRoZS9jeHhfZXh0cmFjdG9yL2xpbnV4X2dsaWJjX3g4Nl82NC9nZW4vcHJvdG8va3l0aGUvcHJvdG8vYnVpbGRpbmZvLnBiLmNjAGt5dGhlLnByb3RvLmNvbW1vbi5PcmlnaW4ubGFuZ3VhZ2UAZjk1LWNwcC1pbnB1dABDaGVjayBmYWlsZWQ6ICF3cml0ZXJfLmhhc192YWx1ZSgpAGt5dGhlX2NsYWltAGV4dGVybmFsL2t5dGhlL2t5dGhlL2N4eC9leHRyYWN0b3IvY3h4X2V4dHJhY3Rvcl9tYWluLmNjACAJCgsMDQAvKj09PS0tLS0gX19jbGFuZ19jdWRhX2RldmljZV9mdW5jdGlvbnMuaCAtIENVREEgcnVudGltZSBzdXBwb3J0IC0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9ERVZJQ0VfRlVOQ1RJT05TX0hfXwojZGVmaW5lIF9fQ0xBTkdfQ1VEQV9ERVZJQ0VfRlVOQ1RJT05TX0hfXwoKI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCiNpZiBDVURBX1ZFUlNJT04gPCA5MDAwCiNlcnJvciBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIENVREEtOSsgb25seS4KI2VuZGlmCiNlbmRpZgoKLy8gX19ERVZJQ0VfXyBpcyBhIGhlbHBlciBtYWNybyB3aXRoIGNvbW1vbiBzZXQgb2YgYXR0cmlidXRlcyBmb3IgdGhlIHdyYXBwZXJzCi8vIHdlIGltcGxlbWVudCBpbiB0aGlzIGZpbGUuIFdlIG5lZWQgc3RhdGljIGluIG9yZGVyIHRvIGF2b2lkIGVtaXR0aW5nIHVudXNlZAovLyBmdW5jdGlvbnMgYW5kIF9fZm9yY2VpbmxpbmVfXyBoZWxwcyBpbmxpbmluZyB0aGVzZSB3cmFwcGVycyBhdCAtTzEuCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERVZJQ0VfXyIpCiNpZmRlZiBfX09QRU5NUF9OVlBUWF9fCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSwgbm90aHJvdykpCiNlbHNlCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgX19kZXZpY2VfXyBfX2ZvcmNlaW5saW5lX18KI2VuZGlmCgpfX0RFVklDRV9fIGludCBfX2FsbChpbnQgX19hKSB7IHJldHVybiBfX252dm1fdm90ZV9hbGwoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2FueShpbnQgX19hKSB7IHJldHVybiBfX252dm1fdm90ZV9hbnkoX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2JhbGxvdChpbnQgX19hKSB7IHJldHVybiBfX252dm1fdm90ZV9iYWxsb3QoX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2JyZXYodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX19udl9icmV2KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19icmV2bGwodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X2JyZXZsbChfX2EpOwp9CiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQpfX0RFVklDRV9fIHZvaWQgX19icmtwdCgpIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oImJya3B0OyIpOyB9Cl9fREVWSUNFX18gdm9pZCBfX2Jya3B0KGludCBfX2EpIHsgX19icmtwdCgpOyB9CiNlbHNlCl9fREVWSUNFX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKSBfX2Jya3B0KHZvaWQpIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiYnJrcHQ7Iik7Cn0KX19ERVZJQ0VfXyB2b2lkIF9fYXR0cmlidXRlX18oKG92ZXJsb2FkYWJsZSkpIF9fYnJrcHQoaW50IF9fYSkgeyBfX2Jya3B0KCk7IH0KI2VuZGlmCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fYnl0ZV9wZXJtKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19udl9ieXRlX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBpbnQgX19jbHooaW50IF9fYSkgeyByZXR1cm4gX19udl9jbHooX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2NsemxsKGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfY2x6bGwoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fY29zZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmFzdF9jb3NmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgX19kQXRvbWljQWRkKGRvdWJsZSAqX19wLCBkb3VibGUgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FkZF9nZW5fZChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kQXRvbWljQWRkX2Jsb2NrKGRvdWJsZSAqX19wLCBkb3VibGUgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hZGRfZ2VuX2QoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZEF0b21pY0FkZF9zeXN0ZW0oZG91YmxlICpfX3AsIGRvdWJsZSBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FkZF9nZW5fZChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kYWRkX3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kYWRkX3JkKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RhZGRfcm4oZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RhZGRfcm4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZGFkZF9ydShkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZGFkZF9ydShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kYWRkX3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kYWRkX3J6KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RkaXZfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RkaXZfcmQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZGRpdl9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZGRpdl9ybihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kZGl2X3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kZGl2X3J1KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RkaXZfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RkaXZfcnooX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZG11bF9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZG11bF9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kbXVsX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kbXVsX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RtdWxfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RtdWxfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZG11bF9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZG11bF9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2RvdWJsZTJmbG9hdF9yZChkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmZsb2F0X3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2RvdWJsZTJmbG9hdF9ybihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmZsb2F0X3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2RvdWJsZTJmbG9hdF9ydShkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmZsb2F0X3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2RvdWJsZTJmbG9hdF9yeihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmZsb2F0X3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyBpbnQgX19kb3VibGUyaGlpbnQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kb3VibGUyaGlpbnQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2RvdWJsZTJpbnRfcmQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kb3VibGUyaW50X3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19kb3VibGUyaW50X3JuKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZG91YmxlMmludF9ybihfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZG91YmxlMmludF9ydShkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RvdWJsZTJpbnRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2RvdWJsZTJpbnRfcnooZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kb3VibGUyaW50X3J6KF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19kb3VibGUybGxfcmQoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJsbF9yZChfX2EpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZG91YmxlMmxsX3JuKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUybGxfcm4oX19hKTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2RvdWJsZTJsbF9ydShkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmxsX3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19kb3VibGUybGxfcnooZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJsbF9yeihfX2EpOwp9Cl9fREVWSUNFX18gaW50IF9fZG91YmxlMmxvaW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZG91YmxlMmxvaW50KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19kb3VibGUydWludF9yZChkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMnVpbnRfcmQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2RvdWJsZTJ1aW50X3JuKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWludF9ybihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fZG91YmxlMnVpbnRfcnUoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1aW50X3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19kb3VibGUydWludF9yeihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMnVpbnRfcnooX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2RvdWJsZTJ1bGxfcmQoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1bGxfcmQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2RvdWJsZTJ1bGxfcm4oZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1bGxfcm4oX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2RvdWJsZTJ1bGxfcnUoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1bGxfcnUoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2RvdWJsZTJ1bGxfcnooZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1bGxfcnooX19hKTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2RvdWJsZV9hc19sb25nbG9uZyhkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlX2FzX2xvbmdsb25nKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kcmNwX3JkKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHJjcF9yZChfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHJjcF9ybihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RyY3Bfcm4oX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RyY3BfcnUoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kcmNwX3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgX19kcmNwX3J6KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHJjcF9yeihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHNxcnRfcmQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kc3FydF9yZChfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHNxcnRfcm4oZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kc3FydF9ybihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHNxcnRfcnUoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kc3FydF9ydShfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHNxcnRfcnooZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kc3FydF9yeihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHN1Yl9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZHN1Yl9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kc3ViX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kc3ViX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzdWJfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RzdWJfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZHN1Yl9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZHN1Yl9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2V4cDEwZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmFzdF9leHAxMGYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZXhwZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmFzdF9leHBmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZBdG9taWNBZGQoZmxvYXQgKl9fcCwgZmxvYXQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FkZF9nZW5fZihfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZBdG9taWNBZGRfYmxvY2soZmxvYXQgKl9fcCwgZmxvYXQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hZGRfZ2VuX2YoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljQWRkX3N5c3RlbShmbG9hdCAqX19wLCBmbG9hdCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FkZF9nZW5fZihfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZBdG9taWNFeGNoKGZsb2F0ICpfX3AsIGZsb2F0IF9fdikgewogIHJldHVybiBfX252X2ludF9hc19mbG9hdCgKICAgICAgX19udnZtX2F0b21feGNoZ19nZW5faSgoaW50ICopX19wLCBfX252X2Zsb2F0X2FzX2ludChfX3YpKSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZBdG9taWNFeGNoX2Jsb2NrKGZsb2F0ICpfX3AsIGZsb2F0IF9fdikgewogIHJldHVybiBfX252X2ludF9hc19mbG9hdCgKICAgICAgX19udnZtX2F0b21fY3RhX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX19udl9mbG9hdF9hc19pbnQoX192KSkpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljRXhjaF9zeXN0ZW0oZmxvYXQgKl9fcCwgZmxvYXQgX192KSB7CiAgcmV0dXJuIF9fbnZfaW50X2FzX2Zsb2F0KAogICAgICBfX252dm1fYXRvbV9zeXNfeGNoZ19nZW5faSgoaW50ICopX19wLCBfX252X2Zsb2F0X2FzX2ludChfX3YpKSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZhZGRfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mYWRkX3JkKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmFkZF9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZhZGRfcm4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mYWRkX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZmFkZF9ydShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZhZGRfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mYWRkX3J6KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmRpdl9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZkaXZfcmQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mZGl2X3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZmRpdl9ybihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZkaXZfcnUoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mZGl2X3J1KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmRpdl9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZkaXZfcnooX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mZGl2aWRlZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2Zhc3RfZmRpdmlkZWYoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gaW50IF9fZmZzKGludCBfX2EpIHsgcmV0dXJuIF9fbnZfZmZzKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19mZnNsbChsb25nIGxvbmcgX19hKSB7IHJldHVybiBfX252X2Zmc2xsKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19maW5pdGUoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9pc2Zpbml0ZWQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2Zpbml0ZWYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zpbml0ZWYoX19hKTsgfQojaWZkZWYgX01TQ19WRVIKX19ERVZJQ0VfXyBpbnQgX19maW5pdGVsKGxvbmcgZG91YmxlIF9fYSk7CiNlbmRpZgpfX0RFVklDRV9fIGludCBfX2Zsb2F0MmludF9yZChmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQyaW50X3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19mbG9hdDJpbnRfcm4oZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmludF9ybihfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZmxvYXQyaW50X3J1KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mbG9hdDJpbnRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2Zsb2F0MmludF9yeihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQyaW50X3J6KF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19mbG9hdDJsbF9yZChmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQybGxfcmQoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2Zsb2F0MmxsX3JuKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mbG9hdDJsbF9ybihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZmxvYXQybGxfcnUoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmxsX3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19mbG9hdDJsbF9yeihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQybGxfcnooX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2Zsb2F0MnVpbnRfcmQoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fbnZfZmxvYXQydWludF9yZChfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fZmxvYXQydWludF9ybihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1aW50X3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19mbG9hdDJ1aW50X3J1KGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVpbnRfcnUoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2Zsb2F0MnVpbnRfcnooZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fbnZfZmxvYXQydWludF9yeihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fZmxvYXQydWxsX3JkKGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVsbF9yZChfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fZmxvYXQydWxsX3JuKGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVsbF9ybihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fZmxvYXQydWxsX3J1KGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVsbF9ydShfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fZmxvYXQydWxsX3J6KGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVsbF9yeihfX2EpOwp9Cl9fREVWSUNFX18gaW50IF9fZmxvYXRfYXNfaW50KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mbG9hdF9hc19pbnQoX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2Zsb2F0X2FzX3VpbnQoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fbnZfZmxvYXRfYXNfdWludChfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZm1hX3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19udl9mbWFfcmQoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19mbWFfcm4oZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYykgewogIHJldHVybiBfX252X2ZtYV9ybihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2ZtYV9ydShkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hX3J1KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZm1hX3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19udl9mbWFfcnooX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZtYWZfaWVlZV9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9pZWVlX3JkKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX2llZWVfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYykgewogIHJldHVybiBfX252X2ZtYWZfaWVlZV9ybihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9pZWVlX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX2llZWVfcnUoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZtYWZfaWVlZV9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9pZWVlX3J6KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX3JkKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX3JuKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX3J1KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX3J6KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbXVsX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZm11bF9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZtdWxfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mbXVsX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm11bF9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZtdWxfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbXVsX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZm11bF9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZyY3BfcmQoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZyY3BfcmQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnJjcF9ybihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZnJjcF9ybihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mcmNwX3J1KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mcmNwX3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZyY3BfcnooZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZyY3BfcnooX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnJzcXJ0X3JuKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mcnNxcnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnNxcnRfcmQoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZzcXJ0X3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzcXJ0X3JuKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mc3FydF9ybihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mc3FydF9ydShmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZnNxcnRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnNxcnRfcnooZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZzcXJ0X3J6KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzdWJfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mc3ViX3JkKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZnN1Yl9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZzdWJfcm4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mc3ViX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZnN1Yl9ydShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzdWJfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mc3ViX3J6KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGludCBfX2hhZGQoaW50IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9oYWRkKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2hpbG9pbnQyZG91YmxlKGludCBfX2EsIGludCBfX2IpIHsKICByZXR1cm4gX19udl9oaWxvaW50MmRvdWJsZShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQWRkKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FkZF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQWRkX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hZGRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FkZF9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FkZF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQW5kKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FuZF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQW5kX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hbmRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FuZF9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FuZF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQ0FTKGludCAqX19wLCBpbnQgX19jbXAsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY2FzX2dlbl9pKF9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljQ0FTX2Jsb2NrKGludCAqX19wLCBpbnQgX19jbXAsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2Nhc19nZW5faShfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0NBU19zeXN0ZW0oaW50ICpfX3AsIGludCBfX2NtcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfY2FzX2dlbl9pKF9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljRXhjaChpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV94Y2hnX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNFeGNoX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV94Y2hnX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNFeGNoX3N5c3RlbShpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfeGNoZ19nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljTWF4KGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX21heF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljTWF4X2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9tYXhfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01heF9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21heF9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljTWluKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX21pbl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljTWluX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9taW5fZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01pbl9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21pbl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljT3IoaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fb3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY09yX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9vcl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljT3Jfc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19vcl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljWG9yKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3hvcl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljWG9yX2Jsb2NrKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV94b3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY1hvcl9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX3hvcl9nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19pbGxBdG9taWNNYXgobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWF4X2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19pbGxBdG9taWNNYXhfYmxvY2sobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX21heF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWF4X3N5c3RlbShsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfbWF4X2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19pbGxBdG9taWNNaW4obG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWluX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19pbGxBdG9taWNNaW5fYmxvY2sobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX21pbl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWluX3N5c3RlbShsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfbWluX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19pbnQyZG91YmxlX3JuKGludCBfX2EpIHsgcmV0dXJuIF9fbnZfaW50MmRvdWJsZV9ybihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19pbnQyZmxvYXRfcmQoaW50IF9fYSkgeyByZXR1cm4gX19udl9pbnQyZmxvYXRfcmQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9faW50MmZsb2F0X3JuKGludCBfX2EpIHsgcmV0dXJuIF9fbnZfaW50MmZsb2F0X3JuKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ludDJmbG9hdF9ydShpbnQgX19hKSB7IHJldHVybiBfX252X2ludDJmbG9hdF9ydShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19pbnQyZmxvYXRfcnooaW50IF9fYSkgeyByZXR1cm4gX19udl9pbnQyZmxvYXRfcnooX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9faW50X2FzX2Zsb2F0KGludCBfX2EpIHsgcmV0dXJuIF9fbnZfaW50X2FzX2Zsb2F0KF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19pc2Zpbml0ZWQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9pc2Zpbml0ZWQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2lzaW5mKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfaXNpbmZkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19pc2luZmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2lzaW5mZihfX2EpOyB9CiNpZmRlZiBfTVNDX1ZFUgpfX0RFVklDRV9fIGludCBfX2lzaW5mbChsb25nIGRvdWJsZSBfX2EpOwojZW5kaWYKX19ERVZJQ0VfXyBpbnQgX19pc25hbihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2lzbmFuZChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9faXNuYW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9pc25hbmYoX19hKTsgfQojaWZkZWYgX01TQ19WRVIKX19ERVZJQ0VfXyBpbnQgX19pc25hbmwobG9uZyBkb3VibGUgX19hKTsKI2VuZGlmCl9fREVWSUNFX18gZG91YmxlIF9fbGwyZG91YmxlX3JkKGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl9sbDJkb3VibGVfcmQoX19hKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2xsMmRvdWJsZV9ybihsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfbGwyZG91YmxlX3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19sbDJkb3VibGVfcnUobG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X2xsMmRvdWJsZV9ydShfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fbGwyZG91YmxlX3J6KGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl9sbDJkb3VibGVfcnooX19hKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fbGwyZmxvYXRfcmQobG9uZyBsb25nIF9fYSkgeyByZXR1cm4gX19udl9sbDJmbG9hdF9yZChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19sbDJmbG9hdF9ybihsb25nIGxvbmcgX19hKSB7IHJldHVybiBfX252X2xsMmZsb2F0X3JuKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2xsMmZsb2F0X3J1KGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfbGwyZmxvYXRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fbGwyZmxvYXRfcnoobG9uZyBsb25nIF9fYSkgeyByZXR1cm4gX19udl9sbDJmbG9hdF9yeihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNBbmQobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fYW5kX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19sbEF0b21pY0FuZF9ibG9jayhsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYW5kX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19sbEF0b21pY0FuZF9zeXN0ZW0obG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FuZF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNPcihsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9vcl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNPcl9ibG9jayhsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfb3JfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2xsQXRvbWljT3Jfc3lzdGVtKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19vcl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNYb3IobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21feG9yX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19sbEF0b21pY1hvcl9ibG9jayhsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfeG9yX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19sbEF0b21pY1hvcl9zeXN0ZW0obG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX3hvcl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19sb2cxMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfbG9nMTBmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2xvZzJmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYXN0X2xvZzJmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2xvZ2YoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfbG9nZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fbG9uZ2xvbmdfYXNfZG91YmxlKGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl9sb25nbG9uZ19hc19kb3VibGUoX19hKTsKfQpfX0RFVklDRV9fIGludCBfX211bDI0KGludCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfbXVsMjQoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbXVsNjRoaShsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfbXVsNjRoaShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBpbnQgX19tdWxoaShpbnQgX19hLCBpbnQgX19iKSB7IHJldHVybiBfX252X211bGhpKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3BtMCh2b2lkKSB7IHJldHVybiBfX252dm1fcmVhZF9wdHhfc3JlZ19wbTAoKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3BtMSh2b2lkKSB7IHJldHVybiBfX252dm1fcmVhZF9wdHhfc3JlZ19wbTEoKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3BtMih2b2lkKSB7IHJldHVybiBfX252dm1fcmVhZF9wdHhfc3JlZ19wbTIoKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3BtMyh2b2lkKSB7IHJldHVybiBfX252dm1fcmVhZF9wdHhfc3JlZ19wbTMoKTsgfQpfX0RFVklDRV9fIGludCBfX3BvcGMoaW50IF9fYSkgeyByZXR1cm4gX19udl9wb3BjKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19wb3BjbGwobG9uZyBsb25nIF9fYSkgeyByZXR1cm4gX19udl9wb3BjbGwoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fcG93ZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2Zhc3RfcG93ZihfX2EsIF9fYik7Cn0KCi8vIFBhcmFtZXRlciBtdXN0IGhhdmUgYSBrbm93biBpbnRlZ2VyIHZhbHVlLgojZGVmaW5lIF9fcHJvZl90cmlnZ2VyKF9fYSkgX19hc21fXyBfX3ZvbGF0aWxlX18oInBtZXZlbnQgXHQlMDsiIDo6ImkiKF9fYSkpCl9fREVWSUNFX18gaW50IF9fcmhhZGQoaW50IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9yaGFkZChfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19zYWQoaW50IF9fYSwgaW50IF9fYiwgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX252X3NhZChfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fc2F0dXJhdGVmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9zYXR1cmF0ZWYoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX3NpZ25iaXRkKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfc2lnbmJpdGQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX3NpZ25iaXRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9zaWduYml0ZihfX2EpOyB9Cl9fREVWSUNFX18gdm9pZCBfX3NpbmNvc2YoZmxvYXQgX19hLCBmbG9hdCAqX19zLCBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIF9fbnZfZmFzdF9zaW5jb3NmKF9fYSwgX19zLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19zaW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYXN0X3NpbmYoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX3N5bmN0aHJlYWRzX2FuZChpbnQgX19hKSB7IHJldHVybiBfX252dm1fYmFyMF9hbmQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX3N5bmN0aHJlYWRzX2NvdW50KGludCBfX2EpIHsgcmV0dXJuIF9fbnZ2bV9iYXIwX3BvcGMoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX3N5bmN0aHJlYWRzX29yKGludCBfX2EpIHsgcmV0dXJuIF9fbnZ2bV9iYXIwX29yKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX3RhbmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfdGFuZihfX2EpOyB9Cl9fREVWSUNFX18gdm9pZCBfX3RocmVhZGZlbmNlKHZvaWQpIHsgX19udnZtX21lbWJhcl9nbCgpOyB9Cl9fREVWSUNFX18gdm9pZCBfX3RocmVhZGZlbmNlX2Jsb2NrKHZvaWQpIHsgX19udnZtX21lbWJhcl9jdGEoKTsgfTsKX19ERVZJQ0VfXyB2b2lkIF9fdGhyZWFkZmVuY2Vfc3lzdGVtKHZvaWQpIHsgX19udnZtX21lbWJhcl9zeXMoKTsgfTsKX19ERVZJQ0VfXyB2b2lkIF9fdHJhcCh2b2lkKSB7IF9fYXNtX18gX192b2xhdGlsZV9fKCJ0cmFwOyIpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0FkZCh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hZGRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBZGRfYmxvY2sodW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hZGRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBZGRfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FkZF9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0FuZCh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hbmRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBbmRfYmxvY2sodW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hbmRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBbmRfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FuZF9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0NBUyh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fY21wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jYXNfZ2VuX2koKGludCAqKV9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQKX191QXRvbWljQ0FTX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX19jbXAsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2Nhc19nZW5faSgoaW50ICopX19wLCBfX2NtcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludApfX3VBdG9taWNDQVNfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX19jbXAsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2Nhc19nZW5faSgoaW50ICopX19wLCBfX2NtcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNEZWModW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fZGVjX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRGVjX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfZGVjX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRGVjX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19kZWNfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNFeGNoKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNFeGNoX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNFeGNoX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfeGNoZ19nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0luYyh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9pbmNfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNJbmNfYmxvY2sodW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9pbmNfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNJbmNfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2luY19nZW5fdWkoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY01heCh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9tYXhfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNYXhfYmxvY2sodW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9tYXhfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNYXhfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21heF9nZW5fdWkoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY01pbih1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9taW5fZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNaW5fYmxvY2sodW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9taW5fZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNaW5fc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21pbl9nZW5fdWkoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY09yKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX29yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljT3JfYmxvY2sodW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX29yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljT3Jfc3lzdGVtKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfb3JfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNYb3IodW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21feG9yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljWG9yX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfeG9yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljWG9yX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c194b3JfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VoYWRkKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91aGFkZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX191aW50MmRvdWJsZV9ybih1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWludDJkb3VibGVfcm4oX19hKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fdWludDJmbG9hdF9yZCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWludDJmbG9hdF9yZChfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191aW50MmZsb2F0X3JuKHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19udl91aW50MmZsb2F0X3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VpbnQyZmxvYXRfcnUodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3VpbnQyZmxvYXRfcnUoX19hKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fdWludDJmbG9hdF9yeih1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWludDJmbG9hdF9yeihfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191aW50X2FzX2Zsb2F0KHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19udl91aW50X2FzX2Zsb2F0KF9fYSk7Cn0gLy8KX19ERVZJQ0VfXyBkb3VibGUgX191bGwyZG91YmxlX3JkKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl91bGwyZG91YmxlX3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX191bGwyZG91YmxlX3JuKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl91bGwyZG91YmxlX3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX191bGwyZG91YmxlX3J1KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl91bGwyZG91YmxlX3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX191bGwyZG91YmxlX3J6KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl91bGwyZG91YmxlX3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VsbDJmbG9hdF9yZCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmZsb2F0X3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VsbDJmbG9hdF9ybih1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmZsb2F0X3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VsbDJmbG9hdF9ydSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmZsb2F0X3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VsbDJmbG9hdF9yeih1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmZsb2F0X3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNBZGQodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fYWRkX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQWRkX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9hZGRfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNBZGRfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfYWRkX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQW5kKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FuZF9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0FuZF9ibG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYW5kX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQW5kX3N5c3RlbSh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FuZF9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0NBUyh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fY21wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2Nhc19nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNDQVNfYmxvY2sodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2NtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfY2FzX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX2NtcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0NBU19zeXN0ZW0odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19jbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19jYXNfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljRXhjaCh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21feGNoZ19nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0V4Y2hfYmxvY2sodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV94Y2hnX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljRXhjaF9zeXN0ZW0odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfeGNoZ19nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY01heCh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9tYXhfZ2VuX3VsbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNNYXhfYmxvY2sodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX21heF9nZW5fdWxsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY01heF9zeXN0ZW0odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19tYXhfZ2VuX3VsbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNNaW4odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWluX2dlbl91bGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljTWluX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9taW5fZ2VuX3VsbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNNaW5fc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfbWluX2dlbl91bGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljT3IodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9vcl9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY09yX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX29yX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljT3Jfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19vcl9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY1hvcih1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV94b3JfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNYb3JfYmxvY2sodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX3hvcl9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY1hvcl9zeXN0ZW0odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c194b3JfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191bXVsMjQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3VtdWwyNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bXVsNjRoaSh1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19udl91bXVsNjRoaShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191bXVsaGkodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3VtdWxoaShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191cmhhZGQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3VyaGFkZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191c2FkKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fbnZfdXNhZChfX2EsIF9fYiwgX19jKTsKfQoKI2lmIENVREFfVkVSU0lPTiA+PSA5MDAwICYmIENVREFfVkVSU0lPTiA8IDkwMjAKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzMih1bnNpZ25lZCBpbnQgX19hKSB7IHJldHVybiBfX252X3ZhYnMyKF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzNCh1bnNpZ25lZCBpbnQgX19hKSB7IHJldHVybiBfX252X3ZhYnM0KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWJzZGlmZnMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNkaWZmczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhYnNkaWZmczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZ1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFic2RpZmZ1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWJzZGlmZnU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNzczIodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3ZhYnNzczIoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNzczQodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3ZhYnNzczQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGQyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWRkMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFkZDQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHNzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFkZHNzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkc3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWRkc3M0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGR1czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhZGR1czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFkZHVzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZnczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhdmdzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZnczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhdmdzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZndTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3Zhdmd1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZndTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3Zhdmd1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZXEyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZXEyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBlcTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBlcTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdlczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBnZXMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBnZXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ2VzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ2V1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGdldTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBnZXU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ3RzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3RzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGd0czQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGd0dTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBndHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ3R1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbGVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGxlczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxlczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsZXM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsZXUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbGV1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbGV1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGxldTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsdHMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsdHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbHRzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbHR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGx0dTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0dTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsdHU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBuZTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBuZTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcG5lNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcG5lNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192aGFkZHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92aGFkZHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZoYWRkdTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZoYWRkdTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWF4czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWF4czQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWF4dTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWF4dTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWluczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWluczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWludTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92bWludTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZzIodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX19udl92bmVnMihfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZzQodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX19udl92bmVnNChfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZ3NzMih1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdm5lZ3NzMihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZ3NzNCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdm5lZ3NzNChfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2FkczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2FkczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2FkdTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2FkdTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGVxMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGVxMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0ZXE0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0ZXE0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0Z2VzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2VzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGdlczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGdldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRnZXUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0Z2V1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z3RzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGd0czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRndHM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRndHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0Z3R1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z3R1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGd0dTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxlczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRsZXMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsZXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bGVzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bGV1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGxldTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRsZXU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bHRzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHRzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGx0czQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGx0dTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRsdHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bHR1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bmUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bmUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRuZTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRuZTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YjIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzdWIyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWI0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c3ViNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3Vic3MyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c3Vic3MyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWJzczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzdWJzczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnN1YnVzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3VidXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c3VidXM0KF9fYSwgX19iKTsKfQojZWxzZSAvLyBDVURBX1ZFUlNJT04gPj0gOTAyMAovLyBDVURBIG5vIGxvbmdlciBwcm92aWRlcyBpbmxpbmUgYXNzZW1ibHkgKG9yIGJpdGNvZGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlCi8vIGZ1bmN0aW9ucywgc28gd2UgaGF2ZSB0byByZWltcGxtZW50IHRoZW0uIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBuYWl2ZSBhbmQgaXMKLy8gbm90IG9wdGltaXplZCBmb3IgcGVyZm9ybWFuY2UuCgovLyBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBOLWJpdCBib29sZWFuIHN1YmZpZWxkcyBpbnRvIGFsbC0wIG9yIGFsbC0xLgovLyBFLmcuIF9fYm9vbDJtYXNrKDB4MDEwMDAxMDAsOCkgLT4gMHhmZjAwZmYwMAovLyAgICAgIF9fYm9vbDJtYXNrKDB4MDAwMTAwMDAsMTYpIC0+IDB4ZmZmZjAwMDAKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19ib29sMm1hc2sodW5zaWduZWQgaW50IF9fYSwgaW50IHNoaWZ0KSB7CiAgcmV0dXJuIChfX2EgPDwgc2hpZnQpIC0gX19hOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFiczIodW5zaWduZWQgaW50IF9fYSkgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmMi5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIigwKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnM0KHVuc2lnbmVkIGludCBfX2EpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjQuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoMCksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjIuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQoKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjQuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNkaWZmdTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmMi51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZ1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmY0LnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzc3MyKHVuc2lnbmVkIGludCBfX2EpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjIuczMyLnMzMi5zMzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKDApLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic3NzNCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmY0LnMzMi5zMzIuczMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIigwKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGQyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWRkMi51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZDQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhZGQ0LnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkc3MyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWRkMi5zMzIuczMyLnMzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGRzczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhZGQ0LnMzMi5zMzIuczMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFkZDIudTMyLnUzMi51MzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkdXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWRkNC51MzIudTMyLnUzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhdmdzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmF2cmcyLnMzMi5zMzIuczMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZnczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhdnJnNC5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3UyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YXZyZzIudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3Zhdmd1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmF2cmc0LnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0ZXEyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi51MzIudTMyLmVxICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZXEyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0ZXEyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGVxNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQudTMyLnUzMi5lcSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGVxNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGVxNChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGdlczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQyLnMzMi5zMzIuZ2UgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBnZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0Z2VzMihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0NC5zMzIuczMyLmdlICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ2VzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGdlczQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi51MzIudTMyLmdlICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ2V1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGdldTIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2V1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQudTMyLnUzMi5nZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRnZXU0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z3RzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIuczMyLnMzMi5ndCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGd0czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRndHMyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnMzMi5zMzIuZ3QgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0Z3RzNChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0dTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQyLnUzMi51MzIuZ3QgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0Z3R1MihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRndHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0NC51MzIudTMyLmd0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3R1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGd0dTQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi5zMzIuczMyLmxlICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbGVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGxlczIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bGVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQuczMyLnMzMi5sZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxlczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsZXM0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bGV1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIudTMyLnUzMi5sZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsZXUyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnUzMi51MzIubGUgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bGV1NChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGx0czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQyLnMzMi5zMzIubHQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsdHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bHRzMihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0NC5zMzIuczMyLmx0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbHRzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGx0czQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi51MzIudTMyLmx0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbHR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGx0dTIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHR1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQudTMyLnUzMi5sdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0dTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsdHU0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bmUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi51MzIudTMyLm5lICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbmUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bmUyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldG5lNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQudTMyLnUzMi5uZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcG5lNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldG5lNChfX2EsIF9fYiksIDgpOwp9CgovLyBCYXNlZCBvbiBJVEVNIDIzIGluIEFJTS0yMzk6IGh0dHA6Ly9kc3BhY2UubWl0LmVkdS9oYW5kbGUvMTcyMS4xLzYwODYKLy8gKGEgJiBiKSArIChhIHwgYikgPSBhICsgYiA9IChhIF4gYikgKyAyICogKGEgJiBiKSA9PgovLyAoYSArIGIpIC8gMiA9ICgoYSBeIGIpID4+IDEpICsgKGEgJiBiKQovLyBUbyBvcGVyYXRlIG9uIG11bHRpcGxlIHN1Yi1lbGVtZW50cyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBtYXNrIG91dCBiaXRzCi8vIHRoYXQgY3Jvc3NlZCBvdmVyIGludG8gYWRqYWNlbnQgZWxlbWVudHMgZHVyaW5nIHRoZSBzaGlmdC4KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192aGFkZHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKCgoX19hIF4gX19iKSA+PiAxKSAmIH4weDgwMDA4MDAwdSkgKyAoX19hICYgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZoYWRkdTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoKChfX2EgXiBfX2IpID4+IDEpICYgfjB4ODA4MDgwODB1KSArIChfX2EgJiBfX2IpOwp9CgpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXhzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgaWYgKChfX2EgJiAweDgwMDApICYmIChfX2IgJiAweDgwMDApKSB7CiAgICAvLyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBwdHhhcyB3aGljaCBwcm9kdWNlcyBpbnZhbGlkIHJlc3VsdCBpZiBsb3cgZWxlbWVudAogICAgLy8gaXMgbmVnYXRpdmUuCiAgICB1bnNpZ25lZCBtYXNrID0gX192Y21wZ3RzMihfX2EsIF9fYik7CiAgICByID0gKF9fYSAmIG1hc2spIHwgKF9fYiAmIH5tYXNrKTsKICB9IGVsc2UgewogICAgX19hc21fXygidm1heDIuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgfQogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWF4NC5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWF4Mi51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1heHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWF4NC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWluMi5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWluNC5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWluMi51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm1pbnU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2bWluNC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjIuczMyLnMzMi5zMzIuYWRkICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2FkczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmNC5zMzIuczMyLnMzMi5hZGQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmYyLnUzMi51MzIudTMyLmFkZCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjQudTMyLnUzMi51MzIuYWRkICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YjIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzdWIyLnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192bmVnMih1bnNpZ25lZCBpbnQgX19hKSB7IHJldHVybiBfX3ZzdWIyKDAsIF9fYSk7IH0KCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YjQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzdWI0LnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192bmVnNCh1bnNpZ25lZCBpbnQgX19hKSB7IHJldHVybiBfX3ZzdWI0KDAsIF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3Vic3MyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c3ViMi5zMzIuczMyLnMzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWdzczIodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX3ZzdWJzczIoMCwgX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWJzczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzdWI0LnMzMi5zMzIuczMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZ3NzNCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fdnN1YnNzNCgwLCBfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnN1YjIudTMyLnUzMi51MzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3VidXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c3ViNC51MzIudTMyLnUzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQojZW5kaWYgLy8gQ1VEQV9WRVJTSU9OID49IDkwMjAKCi8vIEZvciBPcGVuTVAgd2UgcmVxdWlyZSB0aGUgdXNlciB0byBpbmNsdWRlIDx0aW1lLmg+IGFzIHdlIG5lZWQgdG8ga25vdyB3aGF0Ci8vIGNsb2NrX3QgaXMgb24gdGhlIHN5c3RlbS4KI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCl9fREVWSUNFX18gLyogY2xvY2tfdD0gKi8gaW50IGNsb2NrKCkgeyByZXR1cm4gX19udnZtX3JlYWRfcHR4X3NyZWdfY2xvY2soKTsgfQojZW5kaWYKX19ERVZJQ0VfXyBsb25nIGxvbmcgY2xvY2s2NCgpIHsgcmV0dXJuIF9fbnZ2bV9yZWFkX3B0eF9zcmVnX2Nsb2NrNjQoKTsgfQoKLy8gVGhlc2UgZnVuY3Rpb25zIHNob3VsZG4ndCBiZSBkZWNsYXJlZCB3aGVuIGluY2x1ZGluZyB0aGlzIGhlYWRlcgovLyBmb3IgbWF0aCBmdW5jdGlvbiByZXNvbHV0aW9uIHB1cnBvc2VzLgojaWZuZGVmIF9fT1BFTk1QX05WUFRYX18KX19ERVZJQ0VfXyB2b2lkICptZW1jcHkodm9pZCAqX19hLCBjb25zdCB2b2lkICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX21lbWNweShfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIHZvaWQgKm1lbXNldCh2b2lkICpfX2EsIGludCBfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX21lbXNldChfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCiNwcmFnbWEgcG9wX21hY3JvKCJfX0RFVklDRV9fIikKI2VuZGlmIC8vIF9fQ0xBTkdfQ1VEQV9ERVZJQ0VfRlVOQ1RJT05TX0hfXwoAYXJtX2ZwMTYuaAAvLz09PS0tLS0tIG9wZW5jbC1jLWJhc2UuaCAtIE9wZW5DTCBDIGxhbmd1YWdlIGJhc2UgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBfT1BFTkNMX0JBU0VfSF8KI2RlZmluZSBfT1BFTkNMX0JBU0VfSF8KCi8vIERlZmluZSBleHRlbnNpb24gbWFjcm9zCgojaWYgKGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gMjAwKQovLyBGb3IgU1BJUiBhbGwgZXh0ZW5zaW9ucyBhcmUgc3VwcG9ydGVkLgojaWYgZGVmaW5lZChfX1NQSVJfXykKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfZXh0ZW5kZWRfdHlwZXMgMQojZGVmaW5lIGNsX2tocl9zdWJncm91cF9ub25fdW5pZm9ybV92b3RlIDEKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfYmFsbG90IDEKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfbm9uX3VuaWZvcm1fYXJpdGhtZXRpYyAxCiNkZWZpbmUgY2xfa2hyX3N1Ymdyb3VwX3NodWZmbGUgMQojZGVmaW5lIGNsX2tocl9zdWJncm91cF9zaHVmZmxlX3JlbGF0aXZlIDEKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZSAxCiNkZWZpbmUgY2xfa2hyX2V4dGVuZGVkX2JpdF9vcHMgMQojZGVmaW5lIGNsX2tocl9pbnRlZ2VyX2RvdF9wcm9kdWN0IDEKI2RlZmluZSBfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0IDEKI2RlZmluZSBfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0X3BhY2tlZCAxCgojZW5kaWYgLy8gZGVmaW5lZChfX1NQSVJfXykKI2VuZGlmIC8vIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IDIwMCkKCi8vIERlZmluZSBmZWF0dXJlIG1hY3JvcyBmb3IgT3BlbkNMIEMgMi4wCiNpZiAoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXyA9PSAxMDAgfHwgX19PUEVOQ0xfQ19WRVJTSU9OX18gPT0gMjAwKQojZGVmaW5lIF9fb3BlbmNsX2NfcGlwZXMgMQojZGVmaW5lIF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlIDEKI2RlZmluZSBfX29wZW5jbF9jX3dvcmtfZ3JvdXBfY29sbGVjdGl2ZV9mdW5jdGlvbnMgMQojZGVmaW5lIF9fb3BlbmNsX2NfYXRvbWljX29yZGVyX2FjcV9yZWwgMQojZGVmaW5lIF9fb3BlbmNsX2NfYXRvbWljX29yZGVyX3NlcV9jc3QgMQojZGVmaW5lIF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSAxCiNkZWZpbmUgX19vcGVuY2xfY19hdG9taWNfc2NvcGVfYWxsX2RldmljZXMgMQojZGVmaW5lIF9fb3BlbmNsX2NfZGV2aWNlX2VucXVldWUgMQojZGVmaW5lIF9fb3BlbmNsX2NfcmVhZF93cml0ZV9pbWFnZXMgMQojZGVmaW5lIF9fb3BlbmNsX2NfcHJvZ3JhbV9zY29wZV9nbG9iYWxfdmFyaWFibGVzIDEKI2RlZmluZSBfX29wZW5jbF9jX2ltYWdlcyAxCiNlbmRpZgoKLy8gRGVmaW5lIGhlYWRlci1vbmx5IGZlYXR1cmUgbWFjcm9zIGZvciBPcGVuQ0wgQyAzLjAuCiNpZiAoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXyA9PSAyMDIxMDAgfHwgX19PUEVOQ0xfQ19WRVJTSU9OX18gPT0gMzAwKQovLyBGb3IgdGhlIFNQSVIgdGFyZ2V0IGFsbCBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkLgojaWYgZGVmaW5lZChfX1NQSVJfXykKI2RlZmluZSBfX29wZW5jbF9jX2F0b21pY19zY29wZV9hbGxfZGV2aWNlcyAxCiNlbmRpZiAvLyBkZWZpbmVkKF9fU1BJUl9fKQojZW5kaWYgLy8gKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18gPT0gMjAyMTAwIHx8IF9fT1BFTkNMX0NfVkVSU0lPTl9fID09IDMwMCkKCi8vIGJ1aWx0LWluIHNjYWxhciBkYXRhIHR5cGVzOgoKLyoqCiAqIEFuIHVuc2lnbmVkIDgtYml0IGludGVnZXIuCiAqLwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWNoYXI7CgovKioKICogQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIuCiAqLwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVzaG9ydDsKCi8qKgogKiBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlci4KICovCnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnQ7CgovKioKICogQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIuCiAqLwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgovKioKICogVGhlIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB0aGUgcmVzdWx0IG9mIHRoZSBzaXplb2Ygb3BlcmF0b3IuIFRoaXMKICogaXMgYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBpZiBDTF9ERVZJQ0VfQUREUkVTU19CSVRTCiAqIGRlZmluZWQgaW4gdGFibGUgNC4zIGlzIDMyLWJpdHMgYW5kIGlzIGEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgaWYKICogQ0xfREVWSUNFX0FERFJFU1NfQklUUyBpcyA2NC1iaXRzLgogKi8KdHlwZWRlZiBfX1NJWkVfVFlQRV9fIHNpemVfdDsKCi8qKgogKiBBIHNpZ25lZCBpbnRlZ2VyIHR5cGUgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIHN1YnRyYWN0aW5nIHR3byBwb2ludGVycy4KICogVGhpcyBpcyBhIDMyLWJpdCBzaWduZWQgaW50ZWdlciBpZiBDTF9ERVZJQ0VfQUREUkVTU19CSVRTCiAqIGRlZmluZWQgaW4gdGFibGUgNC4zIGlzIDMyLWJpdHMgYW5kIGlzIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIGlmCiAqIENMX0RFVklDRV9BRERSRVNTX0JJVFMgaXMgNjQtYml0cy4KICovCnR5cGVkZWYgX19QVFJESUZGX1RZUEVfXyBwdHJkaWZmX3Q7CgovKioKICogQSBzaWduZWQgaW50ZWdlciB0eXBlIHdpdGggdGhlIHByb3BlcnR5IHRoYXQgYW55IHZhbGlkIHBvaW50ZXIgdG8KICogdm9pZCBjYW4gYmUgY29udmVydGVkIHRvIHRoaXMgdHlwZSwgdGhlbiBjb252ZXJ0ZWQgYmFjayB0byBwb2ludGVyCiAqIHRvIHZvaWQsIGFuZCB0aGUgcmVzdWx0IHdpbGwgY29tcGFyZSBlcXVhbCB0byB0aGUgb3JpZ2luYWwgcG9pbnRlci4KICovCnR5cGVkZWYgX19JTlRQVFJfVFlQRV9fIGludHB0cl90OwoKLyoqCiAqIEFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSB3aXRoIHRoZSBwcm9wZXJ0eSB0aGF0IGFueSB2YWxpZCBwb2ludGVyIHRvCiAqIHZvaWQgY2FuIGJlIGNvbnZlcnRlZCB0byB0aGlzIHR5cGUsIHRoZW4gY29udmVydGVkIGJhY2sgdG8gcG9pbnRlcgogKiB0byB2b2lkLCBhbmQgdGhlIHJlc3VsdCB3aWxsIGNvbXBhcmUgZXF1YWwgdG8gdGhlIG9yaWdpbmFsIHBvaW50ZXIuCiAqLwp0eXBlZGVmIF9fVUlOVFBUUl9UWVBFX18gdWludHB0cl90OwoKLy8gYnVpbHQtaW4gdmVjdG9yIGRhdGEgdHlwZXM6CnR5cGVkZWYgY2hhciBjaGFyMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBjaGFyIGNoYXIzIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIGNoYXIgY2hhcjQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgY2hhciBjaGFyOCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBjaGFyIGNoYXIxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CnR5cGVkZWYgdWNoYXIgdWNoYXIyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwp0eXBlZGVmIHVjaGFyIHVjaGFyMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiB1Y2hhciB1Y2hhcjQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgdWNoYXIgdWNoYXI4IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg4KSkpOwp0eXBlZGVmIHVjaGFyIHVjaGFyMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIHNob3J0IHNob3J0MiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBzaG9ydCBzaG9ydDMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgc2hvcnQgc2hvcnQ0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIHNob3J0IHNob3J0OCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBzaG9ydCBzaG9ydDE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKdHlwZWRlZiB1c2hvcnQgdXNob3J0MiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiB1c2hvcnQgdXNob3J0MyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiB1c2hvcnQgdXNob3J0NCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiB1c2hvcnQgdXNob3J0OCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiB1c2hvcnQgdXNob3J0MTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIGludCBpbnQyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwp0eXBlZGVmIGludCBpbnQzIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIGludCBpbnQ0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIGludCBpbnQ4IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg4KSkpOwp0eXBlZGVmIGludCBpbnQxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CnR5cGVkZWYgdWludCB1aW50MiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiB1aW50IHVpbnQzIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIHVpbnQgdWludDQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgdWludCB1aW50OCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiB1aW50IHVpbnQxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CnR5cGVkZWYgbG9uZyBsb25nMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBsb25nIGxvbmczIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIGxvbmcgbG9uZzQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgbG9uZyBsb25nOCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBsb25nIGxvbmcxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CnR5cGVkZWYgdWxvbmcgdWxvbmcyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwp0eXBlZGVmIHVsb25nIHVsb25nMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiB1bG9uZyB1bG9uZzQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgdWxvbmcgdWxvbmc4IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg4KSkpOwp0eXBlZGVmIHVsb25nIHVsb25nMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIGZsb2F0IGZsb2F0MiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBmbG9hdCBmbG9hdDMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgZmxvYXQgZmxvYXQ0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIGZsb2F0IGZsb2F0OCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBmbG9hdCBmbG9hdDE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKI2lmZGVmIGNsX2tocl9mcDE2CiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnAxNiA6IGVuYWJsZQp0eXBlZGVmIGhhbGYgaGFsZjIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgaGFsZiBoYWxmMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiBoYWxmIGhhbGY0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIGhhbGYgaGFsZjggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgaGFsZiBoYWxmMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwojZW5kaWYKI2lmZGVmIGNsX2tocl9mcDY0CiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA8IENMX1ZFUlNJT05fMV8yCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnA2NCA6IGVuYWJsZQojZW5kaWYKdHlwZWRlZiBkb3VibGUgZG91YmxlMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBkb3VibGUgZG91YmxlMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiBkb3VibGUgZG91YmxlNCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiBkb3VibGUgZG91YmxlOCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBkb3VibGUgZG91YmxlMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwojZW5kaWYKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pCiNkZWZpbmUgTlVMTCBudWxscHRyCiNlbGlmIGRlZmluZWQoX19PUEVOQ0xfQ19WRVJTSU9OX18pCiNkZWZpbmUgTlVMTCAoKHZvaWQqKTApCiNlbmRpZgoKLyoqCiAqIFZhbHVlIG9mIG1heGltdW0gbm9uLWluZmluaXRlIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQKICogbnVtYmVyLgogKi8KI2RlZmluZSBNQVhGTE9BVCAweDEuZmZmZmZlcDEyN2YKCi8qKgogKiBBIHBvc2l0aXZlIGZsb2F0IGNvbnN0YW50IGV4cHJlc3Npb24uIEhVR0VfVkFMRiBldmFsdWF0ZXMKICogdG8gK2luZmluaXR5LiBVc2VkIGFzIGFuIGVycm9yIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBidWlsdC1pbgogKiBtYXRoIGZ1bmN0aW9ucy4KICovCiNkZWZpbmUgSFVHRV9WQUxGIChfX2J1aWx0aW5faHVnZV92YWxmKCkpCgovKioKICogQSBwb3NpdGl2ZSBkb3VibGUgY29uc3RhbnQgZXhwcmVzc2lvbi4gSFVHRV9WQUwgZXZhbHVhdGVzCiAqIHRvICtpbmZpbml0eS4gVXNlZCBhcyBhbiBlcnJvciB2YWx1ZSByZXR1cm5lZCBieSB0aGUgYnVpbHQtaW4KICogbWF0aCBmdW5jdGlvbnMuCiAqLwojZGVmaW5lIEhVR0VfVkFMIChfX2J1aWx0aW5faHVnZV92YWwoKSkKCi8qKgogKiBBIGNvbnN0YW50IGV4cHJlc3Npb24gb2YgdHlwZSBmbG9hdCByZXByZXNlbnRpbmcgcG9zaXRpdmUgb3IKICogdW5zaWduZWQgaW5maW5pdHkuCiAqLwojZGVmaW5lIElORklOSVRZIChfX2J1aWx0aW5faW5mZigpKQoKLyoqCiAqIEEgY29uc3RhbnQgZXhwcmVzc2lvbiBvZiB0eXBlIGZsb2F0IHJlcHJlc2VudGluZyBhIHF1aWV0IE5hTi4KICovCiNkZWZpbmUgTkFOIGFzX2Zsb2F0KElOVF9NQVgpCgojZGVmaW5lIEZQX0lMT0dCMCAgICBJTlRfTUlOCiNkZWZpbmUgRlBfSUxPR0JOQU4gIElOVF9NQVgKCiNkZWZpbmUgRkxUX0RJRyA2CiNkZWZpbmUgRkxUX01BTlRfRElHIDI0CiNkZWZpbmUgRkxUX01BWF8xMF9FWFAgKzM4CiNkZWZpbmUgRkxUX01BWF9FWFAgKzEyOAojZGVmaW5lIEZMVF9NSU5fMTBfRVhQIC0zNwojZGVmaW5lIEZMVF9NSU5fRVhQIC0xMjUKI2RlZmluZSBGTFRfUkFESVggMgojZGVmaW5lIEZMVF9NQVggMHgxLmZmZmZmZXAxMjdmCiNkZWZpbmUgRkxUX01JTiAweDEuMHAtMTI2ZgojZGVmaW5lIEZMVF9FUFNJTE9OIDB4MS4wcC0yM2YKCiNkZWZpbmUgTV9FX0YgICAgICAgICAyLjcxODI4MTgyODQ1OTA0NTIzNTM2MDI4NzQ3MTM1MjY2MjUwZgojZGVmaW5lIE1fTE9HMkVfRiAgICAgMS40NDI2OTUwNDA4ODg5NjM0MDczNTk5MjQ2ODEwMDE4OTIxNGYKI2RlZmluZSBNX0xPRzEwRV9GICAgIDAuNDM0Mjk0NDgxOTAzMjUxODI3NjUxMTI4OTE4OTE2NjA1MDgyZgojZGVmaW5lIE1fTE4yX0YgICAgICAgMC42OTMxNDcxODA1NTk5NDUzMDk0MTcyMzIxMjE0NTgxNzY1NjhmCiNkZWZpbmUgTV9MTjEwX0YgICAgICAyLjMwMjU4NTA5Mjk5NDA0NTY4NDAxNzk5MTQ1NDY4NDM2NDIxZgojZGVmaW5lIE1fUElfRiAgICAgICAgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1MDI4OGYKI2RlZmluZSBNX1BJXzJfRiAgICAgIDEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkxNjM5NzUxNDRmCiNkZWZpbmUgTV9QSV80X0YgICAgICAwLjc4NTM5ODE2MzM5NzQ0ODMwOTYxNTY2MDg0NTgxOTg3NTcyMWYKI2RlZmluZSBNXzFfUElfRiAgICAgIDAuMzE4MzA5ODg2MTgzNzkwNjcxNTM3NzY3NTI2NzQ1MDI4NzI0ZgojZGVmaW5lIE1fMl9QSV9GICAgICAgMC42MzY2MTk3NzIzNjc1ODEzNDMwNzU1MzUwNTM0OTAwNTc0NDhmCiNkZWZpbmUgTV8yX1NRUlRQSV9GICAxLjEyODM3OTE2NzA5NTUxMjU3Mzg5NjE1ODkwMzEyMTU0NTE3ZgojZGVmaW5lIE1fU1FSVDJfRiAgICAgMS40MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk2OTgwOGYKI2RlZmluZSBNX1NRUlQxXzJfRiAgIDAuNzA3MTA2NzgxMTg2NTQ3NTI0NDAwODQ0MzYyMTA0ODQ5MDM5ZgoKI2RlZmluZSBEQkxfRElHIDE1CiNkZWZpbmUgREJMX01BTlRfRElHIDUzCiNkZWZpbmUgREJMX01BWF8xMF9FWFAgKzMwOAojZGVmaW5lIERCTF9NQVhfRVhQICsxMDI0CiNkZWZpbmUgREJMX01JTl8xMF9FWFAgLTMwNwojZGVmaW5lIERCTF9NSU5fRVhQIC0xMDIxCiNkZWZpbmUgREJMX1JBRElYIDIKI2RlZmluZSBEQkxfTUFYIDB4MS5mZmZmZmZmZmZmZmZmcDEwMjMKI2RlZmluZSBEQkxfTUlOIDB4MS4wcC0xMDIyCiNkZWZpbmUgREJMX0VQU0lMT04gMHgxLjBwLTUyCgojZGVmaW5lIE1fRSAgICAgICAgICAgMHgxLjViZjBhOGIxNDU3NjlwKzEKI2RlZmluZSBNX0xPRzJFICAgICAgIDB4MS43MTU0NzY1MmI4MmZlcCswCiNkZWZpbmUgTV9MT0cxMEUgICAgICAweDEuYmNiN2IxNTI2ZTUwZXAtMgojZGVmaW5lIE1fTE4yICAgICAgICAgMHgxLjYyZTQyZmVmYTM5ZWZwLTEKI2RlZmluZSBNX0xOMTAgICAgICAgIDB4MS4yNmJiMWJiYjU1NTE2cCsxCiNkZWZpbmUgTV9QSSAgICAgICAgICAweDEuOTIxZmI1NDQ0MmQxOHArMQojZGVmaW5lIE1fUElfMiAgICAgICAgMHgxLjkyMWZiNTQ0NDJkMThwKzAKI2RlZmluZSBNX1BJXzQgICAgICAgIDB4MS45MjFmYjU0NDQyZDE4cC0xCiNkZWZpbmUgTV8xX1BJICAgICAgICAweDEuNDVmMzA2ZGM5Yzg4M3AtMgojZGVmaW5lIE1fMl9QSSAgICAgICAgMHgxLjQ1ZjMwNmRjOWM4ODNwLTEKI2RlZmluZSBNXzJfU1FSVFBJICAgIDB4MS4yMGRkNzUwNDI5YjZkcCswCiNkZWZpbmUgTV9TUVJUMiAgICAgICAweDEuNmEwOWU2NjdmM2JjZHArMAojZGVmaW5lIE1fU1FSVDFfMiAgICAgMHgxLjZhMDllNjY3ZjNiY2RwLTEKCiNpZmRlZiBjbF9raHJfZnAxNgoKI2RlZmluZSBIQUxGX0RJRyAzCiNkZWZpbmUgSEFMRl9NQU5UX0RJRyAxMQojZGVmaW5lIEhBTEZfTUFYXzEwX0VYUCArNAojZGVmaW5lIEhBTEZfTUFYX0VYUCArMTYKI2RlZmluZSBIQUxGX01JTl8xMF9FWFAgLTQKI2RlZmluZSBIQUxGX01JTl9FWFAgLTEzCiNkZWZpbmUgSEFMRl9SQURJWCAyCiNkZWZpbmUgSEFMRl9NQVggKCgweDEuZmZjcDE1aCkpCiNkZWZpbmUgSEFMRl9NSU4gKCgweDEuMHAtMTRoKSkKI2RlZmluZSBIQUxGX0VQU0lMT04gKCgweDEuMHAtMTBoKSkKCiNkZWZpbmUgTV9FX0ggICAgICAgICAyLjcxODI4MTgyODQ1OTA0NTIzNTM2MDI4NzQ3MTM1MjY2MjUwaAojZGVmaW5lIE1fTE9HMkVfSCAgICAgMS40NDI2OTUwNDA4ODg5NjM0MDczNTk5MjQ2ODEwMDE4OTIxNGgKI2RlZmluZSBNX0xPRzEwRV9IICAgIDAuNDM0Mjk0NDgxOTAzMjUxODI3NjUxMTI4OTE4OTE2NjA1MDgyaAojZGVmaW5lIE1fTE4yX0ggICAgICAgMC42OTMxNDcxODA1NTk5NDUzMDk0MTcyMzIxMjE0NTgxNzY1NjhoCiNkZWZpbmUgTV9MTjEwX0ggICAgICAyLjMwMjU4NTA5Mjk5NDA0NTY4NDAxNzk5MTQ1NDY4NDM2NDIxaAojZGVmaW5lIE1fUElfSCAgICAgICAgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1MDI4OGgKI2RlZmluZSBNX1BJXzJfSCAgICAgIDEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkxNjM5NzUxNDRoCiNkZWZpbmUgTV9QSV80X0ggICAgICAwLjc4NTM5ODE2MzM5NzQ0ODMwOTYxNTY2MDg0NTgxOTg3NTcyMWgKI2RlZmluZSBNXzFfUElfSCAgICAgIDAuMzE4MzA5ODg2MTgzNzkwNjcxNTM3NzY3NTI2NzQ1MDI4NzI0aAojZGVmaW5lIE1fMl9QSV9IICAgICAgMC42MzY2MTk3NzIzNjc1ODEzNDMwNzU1MzUwNTM0OTAwNTc0NDhoCiNkZWZpbmUgTV8yX1NRUlRQSV9IICAxLjEyODM3OTE2NzA5NTUxMjU3Mzg5NjE1ODkwMzEyMTU0NTE3aAojZGVmaW5lIE1fU1FSVDJfSCAgICAgMS40MTQyMTM1NjIzNzMwOTUwNDg4MDE2ODg3MjQyMDk2OTgwOGgKI2RlZmluZSBNX1NRUlQxXzJfSCAgIDAuNzA3MTA2NzgxMTg2NTQ3NTI0NDAwODQ0MzYyMTA0ODQ5MDM5aAoKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCiNkZWZpbmUgQ0hBUl9CSVQgIDgKI2RlZmluZSBTQ0hBUl9NQVggMTI3CiNkZWZpbmUgU0NIQVJfTUlOICgtMTI4KQojZGVmaW5lIFVDSEFSX01BWCAyNTUKI2RlZmluZSBDSEFSX01BWCAgU0NIQVJfTUFYCiNkZWZpbmUgQ0hBUl9NSU4gIFNDSEFSX01JTgojZGVmaW5lIFVTSFJUX01BWCA2NTUzNQojZGVmaW5lIFNIUlRfTUFYICAzMjc2NwojZGVmaW5lIFNIUlRfTUlOICAoLTMyNzY4KQojZGVmaW5lIFVJTlRfTUFYICAweGZmZmZmZmZmCiNkZWZpbmUgSU5UX01BWCAgIDIxNDc0ODM2NDcKI2RlZmluZSBJTlRfTUlOICAgKC0yMTQ3NDgzNjQ3LTEpCiNkZWZpbmUgVUxPTkdfTUFYIDB4ZmZmZmZmZmZmZmZmZmZmZlVMCiNkZWZpbmUgTE9OR19NQVggIDB4N2ZmZmZmZmZmZmZmZmZmZkwKI2RlZmluZSBMT05HX01JTiAgKC0weDdmZmZmZmZmZmZmZmZmZmZMLTEpCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS44LCB2MS4yIHM2LjEyLjgsIHYyLjAgczYuMTMuOCAtIFN5bmNocm9uaXphdGlvbiBGdW5jdGlvbnMKCi8vIEZsYWcgdHlwZSBhbmQgdmFsdWVzIGZvciBiYXJyaWVyLCBtZW1fZmVuY2UsIHJlYWRfbWVtX2ZlbmNlLCB3cml0ZV9tZW1fZmVuY2UKdHlwZWRlZiB1aW50IGNsX21lbV9mZW5jZV9mbGFnczsKCi8qKgogKiBRdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdAogKiBvcmRlcmluZyBvZiBtZW1vcnkgb3BlcmF0aW9ucyB0byBsb2NhbCBtZW1vcnkKICovCiNkZWZpbmUgQ0xLX0xPQ0FMX01FTV9GRU5DRSAgICAweDAxCgovKioKICogUXVldWUgYSBtZW1vcnkgZmVuY2UgdG8gZW5zdXJlIGNvcnJlY3QKICogb3JkZXJpbmcgb2YgbWVtb3J5IG9wZXJhdGlvbnMgdG8gZ2xvYmFsIG1lbW9yeQogKi8KI2RlZmluZSBDTEtfR0xPQkFMX01FTV9GRU5DRSAgIDB4MDIKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCnR5cGVkZWYgZW51bSBtZW1vcnlfc2NvcGUgewogIG1lbW9yeV9zY29wZV93b3JrX2l0ZW0gPSBfX09QRU5DTF9NRU1PUllfU0NPUEVfV09SS19JVEVNLAogIG1lbW9yeV9zY29wZV93b3JrX2dyb3VwID0gX19PUEVOQ0xfTUVNT1JZX1NDT1BFX1dPUktfR1JPVVAsCiAgbWVtb3J5X3Njb3BlX2RldmljZSA9IF9fT1BFTkNMX01FTU9SWV9TQ09QRV9ERVZJQ0UsCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2FsbF9kZXZpY2VzKQogIG1lbW9yeV9zY29wZV9hbGxfc3ZtX2RldmljZXMgPSBfX09QRU5DTF9NRU1PUllfU0NPUEVfQUxMX1NWTV9ERVZJQ0VTLAojaWYgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wKQogIG1lbW9yeV9zY29wZV9hbGxfZGV2aWNlcyA9IG1lbW9yeV9zY29wZV9hbGxfc3ZtX2RldmljZXMsCiNlbmRpZiAvLyBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYgLy8gZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9hbGxfZGV2aWNlcykKLyoqCiAqIFN1Ymdyb3VwcyBoYXZlIGRpZmZlcmVudCByZXF1aXJlbWVudHMgb24gZm9yd2FyZCBwcm9ncmVzcywgc28ganVzdCB0ZXN0CiAqIGFsbCB0aGUgcmVsZXZhbnQgbWFjcm9zLgogKiBDTCAzLjAgc3ViLWdyb3VwcyAidGhleSBhcmUgbm90IGd1YXJhbnRlZWQgdG8gbWFrZSBpbmRlcGVuZGVudCBmb3J3YXJkIHByb2dyZXNzIgogKiBLSFIgc3ViZ3JvdXBzICJTdWJncm91cHMgd2l0aGluIGEgd29ya2dyb3VwIGFyZSBpbmRlcGVuZGVudCwgbWFrZSBmb3J3YXJkIHByb2dyZXNzIHdpdGggcmVzcGVjdCB0byBlYWNoIG90aGVyIgogKi8KI2lmIGRlZmluZWQoY2xfaW50ZWxfc3ViZ3JvdXBzKSB8fCBkZWZpbmVkKGNsX2tocl9zdWJncm91cHMpIHx8IGRlZmluZWQoX19vcGVuY2xfY19zdWJncm91cHMpCiAgbWVtb3J5X3Njb3BlX3N1Yl9ncm91cCA9IF9fT1BFTkNMX01FTU9SWV9TQ09QRV9TVUJfR1JPVVAKI2VuZGlmCn0gbWVtb3J5X3Njb3BlOwoKLyoqCiAqIFF1ZXVlIGEgbWVtb3J5IGZlbmNlIHRvIGVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nIG9mIG1lbW9yeQogKiBvcGVyYXRpb25zIGJldHdlZW4gd29yay1pdGVtcyBvZiBhIHdvcmstZ3JvdXAgdG8KICogaW1hZ2UgbWVtb3J5LgogKi8KI2RlZmluZSBDTEtfSU1BR0VfTUVNX0ZFTkNFICAweDA0CgojaWZuZGVmIEFUT01JQ19WQVJfSU5JVAojZGVmaW5lIEFUT01JQ19WQVJfSU5JVCh4KSAoeCkKI2VuZGlmIC8vQVRPTUlDX1ZBUl9JTklUCiNkZWZpbmUgQVRPTUlDX0ZMQUdfSU5JVCAwCgovLyBlbnVtIHZhbHVlcyBhbGlnbmVkIHdpdGggd2hhdCBjbGFuZyB1c2VzIGluIEVtaXRBdG9taWNFeHByKCkKdHlwZWRlZiBlbnVtIG1lbW9yeV9vcmRlcgp7CiAgbWVtb3J5X29yZGVyX3JlbGF4ZWQgPSBfX0FUT01JQ19SRUxBWEVELAogIG1lbW9yeV9vcmRlcl9hY3F1aXJlID0gX19BVE9NSUNfQUNRVUlSRSwKICBtZW1vcnlfb3JkZXJfcmVsZWFzZSA9IF9fQVRPTUlDX1JFTEVBU0UsCiAgbWVtb3J5X29yZGVyX2FjcV9yZWwgPSBfX0FUT01JQ19BQ1FfUkVMLAojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KQogIG1lbW9yeV9vcmRlcl9zZXFfY3N0ID0gX19BVE9NSUNfU0VRX0NTVAojZW5kaWYKfSBtZW1vcnlfb3JkZXI7CgojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4zLCB2MS4yIHM2LjEyLjE0LCB2Mi4wIHM2LjEzLjE0IC0gSW1hZ2UgUmVhZCBhbmQgV3JpdGUgRnVuY3Rpb25zCgovLyBUaGVzZSB2YWx1ZXMgbmVlZCB0byBtYXRjaCB0aGUgcnVudGltZSBlcXVpdmFsZW50Ci8vCi8vIEFkZHJlc3NpbmcgTW9kZS4KLy8KI2RlZmluZSBDTEtfQUREUkVTU19OT05FICAgICAgICAgICAgICAgIDAKI2RlZmluZSBDTEtfQUREUkVTU19DTEFNUF9UT19FREdFICAgICAgIDIKI2RlZmluZSBDTEtfQUREUkVTU19DTEFNUCAgICAgICAgICAgICAgIDQKI2RlZmluZSBDTEtfQUREUkVTU19SRVBFQVQgICAgICAgICAgICAgIDYKI2RlZmluZSBDTEtfQUREUkVTU19NSVJST1JFRF9SRVBFQVQgICAgIDgKCi8vCi8vIENvb3JkaW5hdGlvbiBOb3JtYWxpemF0aW9uCi8vCiNkZWZpbmUgQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZBTFNFICAgICAwCiNkZWZpbmUgQ0xLX05PUk1BTElaRURfQ09PUkRTX1RSVUUgICAgICAxCgovLwovLyBGaWx0ZXJpbmcgTW9kZS4KLy8KI2RlZmluZSBDTEtfRklMVEVSX05FQVJFU1QgICAgICAgICAgICAgIDB4MTAKI2RlZmluZSBDTEtfRklMVEVSX0xJTkVBUiAgICAgICAgICAgICAgIDB4MjAKCiNpZmRlZiBjbF9raHJfZ2xfbXNhYV9zaGFyaW5nCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZ2xfbXNhYV9zaGFyaW5nIDogZW5hYmxlCiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCi8vCi8vIENoYW5uZWwgRGF0YXR5cGUuCi8vCiNkZWZpbmUgQ0xLX1NOT1JNX0lOVDggICAgICAgIDB4MTBEMAojZGVmaW5lIENMS19TTk9STV9JTlQxNiAgICAgICAweDEwRDEKI2RlZmluZSBDTEtfVU5PUk1fSU5UOCAgICAgICAgMHgxMEQyCiNkZWZpbmUgQ0xLX1VOT1JNX0lOVDE2ICAgICAgIDB4MTBEMwojZGVmaW5lIENMS19VTk9STV9TSE9SVF81NjUgICAweDEwRDQKI2RlZmluZSBDTEtfVU5PUk1fU0hPUlRfNTU1ICAgMHgxMEQ1CiNkZWZpbmUgQ0xLX1VOT1JNX0lOVF8xMDEwMTAgIDB4MTBENgojZGVmaW5lIENMS19TSUdORURfSU5UOCAgICAgICAweDEwRDcKI2RlZmluZSBDTEtfU0lHTkVEX0lOVDE2ICAgICAgMHgxMEQ4CiNkZWZpbmUgQ0xLX1NJR05FRF9JTlQzMiAgICAgIDB4MTBEOQojZGVmaW5lIENMS19VTlNJR05FRF9JTlQ4ICAgICAweDEwREEKI2RlZmluZSBDTEtfVU5TSUdORURfSU5UMTYgICAgMHgxMERCCiNkZWZpbmUgQ0xLX1VOU0lHTkVEX0lOVDMyICAgIDB4MTBEQwojZGVmaW5lIENMS19IQUxGX0ZMT0FUICAgICAgICAweDEwREQKI2RlZmluZSBDTEtfRkxPQVQgICAgICAgICAgICAgMHgxMERFCiNkZWZpbmUgQ0xLX1VOT1JNX0lOVDI0ICAgICAgIDB4MTBERgoKLy8gQ2hhbm5lbCBvcmRlciwgbnVtYmVyaW5nIG11c3QgYmUgYWxpZ25lZCB3aXRoIGNsX2NoYW5uZWxfb3JkZXIgaW4gY2wuaAovLwojZGVmaW5lIENMS19SICAgICAgICAgMHgxMEIwCiNkZWZpbmUgQ0xLX0EgICAgICAgICAweDEwQjEKI2RlZmluZSBDTEtfUkcgICAgICAgIDB4MTBCMgojZGVmaW5lIENMS19SQSAgICAgICAgMHgxMEIzCiNkZWZpbmUgQ0xLX1JHQiAgICAgICAweDEwQjQKI2RlZmluZSBDTEtfUkdCQSAgICAgIDB4MTBCNQojZGVmaW5lIENMS19CR1JBICAgICAgMHgxMEI2CiNkZWZpbmUgQ0xLX0FSR0IgICAgICAweDEwQjcKI2RlZmluZSBDTEtfSU5URU5TSVRZIDB4MTBCOAojZGVmaW5lIENMS19MVU1JTkFOQ0UgMHgxMEI5CiNkZWZpbmUgQ0xLX1J4ICAgICAgICAgICAgICAgIDB4MTBCQQojZGVmaW5lIENMS19SR3ggICAgICAgICAgICAgICAweDEwQkIKI2RlZmluZSBDTEtfUkdCeCAgICAgICAgICAgICAgMHgxMEJDCiNkZWZpbmUgQ0xLX0RFUFRIICAgICAgICAgICAgIDB4MTBCRAojZGVmaW5lIENMS19ERVBUSF9TVEVOQ0lMICAgICAweDEwQkUKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wCiNkZWZpbmUgQ0xLX3NSR0IgICAgICAgICAgICAgIDB4MTBCRgojZGVmaW5lIENMS19zUkdCeCAgICAgICAgICAgICAweDEwQzAKI2RlZmluZSBDTEtfc1JHQkEgICAgICAgICAgICAgMHgxMEMxCiNkZWZpbmUgQ0xLX3NCR1JBICAgICAgICAgICAgIDB4MTBDMgojZGVmaW5lIENMS19BQkdSICAgICAgICAgICAgICAweDEwQzMKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzAKCi8vIE9wZW5DTCB2Mi4wIHM2LjEzLjE2IC0gUGlwZSBGdW5jdGlvbnMKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQojZGVmaW5lIENMS19OVUxMX1JFU0VSVkVfSUQgKF9fYnVpbHRpbl9hc3R5cGUoKCh2b2lkKikoX19TSVpFX01BWF9fKSksIHJlc2VydmVfaWRfdCkpCgovLyBPcGVuQ0wgdjIuMCBzNi4xMy4xNyAtIEVucXVldWUgS2VybmVscwojZGVmaW5lIENMX0NPTVBMRVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCiNkZWZpbmUgQ0xfUlVOTklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEKI2RlZmluZSBDTF9TVUJNSVRURUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MgojZGVmaW5lIENMX1FVRVVFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzCgojZGVmaW5lIENMS19TVUNDRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAojZGVmaW5lIENMS19FTlFVRVVFX0ZBSUxVUkUgICAgICAgICAgICAgICAgICAgICAgICAgLTEwMQojZGVmaW5lIENMS19JTlZBTElEX1FVRVVFICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEwMgojZGVmaW5lIENMS19JTlZBTElEX05EUkFOR0UgICAgICAgICAgICAgICAgICAgICAgICAgLTE2MAojZGVmaW5lIENMS19JTlZBTElEX0VWRU5UX1dBSVRfTElTVCAgICAgICAgICAgICAgICAgLTU3CiNkZWZpbmUgQ0xLX0RFVklDRV9RVUVVRV9GVUxMICAgICAgICAgICAgICAgICAgICAgICAtMTYxCiNkZWZpbmUgQ0xLX0lOVkFMSURfQVJHX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAtNTEKI2RlZmluZSBDTEtfRVZFTlRfQUxMT0NBVElPTl9GQUlMVVJFICAgICAgICAgICAgICAgIC0xMDAKI2RlZmluZSBDTEtfT1VUX09GX1JFU09VUkNFUyAgICAgICAgICAgICAgICAgICAgICAgIC01CgojZGVmaW5lIENMS19OVUxMX1FVRVVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAojZGVmaW5lIENMS19OVUxMX0VWRU5UIChfX2J1aWx0aW5fYXN0eXBlKCgoX19TSVpFX01BWF9fKSksIGNsa19ldmVudF90KSkKCi8vIGV4ZWN1dGlvbiBtb2RlbCByZWxhdGVkIGRlZmluaXRpb25zCiNkZWZpbmUgQ0xLX0VOUVVFVUVfRkxBR1NfTk9fV0FJVCAgICAgICAgICAgICAgICAgICAweDAKI2RlZmluZSBDTEtfRU5RVUVVRV9GTEFHU19XQUlUX0tFUk5FTCAgICAgICAgICAgICAgIDB4MQojZGVmaW5lIENMS19FTlFVRVVFX0ZMQUdTX1dBSVRfV09SS19HUk9VUCAgICAgICAgICAgMHgyCgp0eXBlZGVmIGludCBrZXJuZWxfZW5xdWV1ZV9mbGFnc190Owp0eXBlZGVmIGludCBjbGtfcHJvZmlsaW5nX2luZm87CgovLyBQcm9maWxpbmcgaW5mbyBuYW1lIChzZWUgY2FwdHVyZV9ldmVudF9wcm9maWxpbmdfaW5mbykKI2RlZmluZSBDTEtfUFJPRklMSU5HX0NPTU1BTkRfRVhFQ19USU1FIDB4MQoKI2RlZmluZSBNQVhfV09SS19ESU0gMwoKdHlwZWRlZiBzdHJ1Y3QgewogIHVuc2lnbmVkIGludCB3b3JrRGltZW5zaW9uOwogIHNpemVfdCBnbG9iYWxXb3JrT2Zmc2V0W01BWF9XT1JLX0RJTV07CiAgc2l6ZV90IGdsb2JhbFdvcmtTaXplW01BWF9XT1JLX0RJTV07CiAgc2l6ZV90IGxvY2FsV29ya1NpemVbTUFYX1dPUktfRElNXTsKfSBuZHJhbmdlX3Q7CgojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogT3BlbkNMIHYxLjEvMS4yLzIuMCBzNi4yLjQuMiAtIGFzX3R5cGUgb3BlcmF0b3JzCiAqIFJlaW50ZXJwcmV0cyBhIGRhdGEgdHlwZSBhcyBhbm90aGVyIGRhdGEgdHlwZSBvZiB0aGUgc2FtZSBzaXplCiAqLwojZGVmaW5lIGFzX2NoYXIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGNoYXIpCiNkZWZpbmUgYXNfY2hhcjIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGNoYXIyKQojZGVmaW5lIGFzX2NoYXIzKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBjaGFyMykKI2RlZmluZSBhc19jaGFyNCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgY2hhcjQpCiNkZWZpbmUgYXNfY2hhcjgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGNoYXI4KQojZGVmaW5lIGFzX2NoYXIxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgY2hhcjE2KQoKI2RlZmluZSBhc191Y2hhcih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXIpCiNkZWZpbmUgYXNfdWNoYXIyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1Y2hhcjIpCiNkZWZpbmUgYXNfdWNoYXIzKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1Y2hhcjMpCiNkZWZpbmUgYXNfdWNoYXI0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1Y2hhcjQpCiNkZWZpbmUgYXNfdWNoYXI4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1Y2hhcjgpCiNkZWZpbmUgYXNfdWNoYXIxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXIxNikKCiNkZWZpbmUgYXNfc2hvcnQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0KQojZGVmaW5lIGFzX3Nob3J0Mih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgc2hvcnQyKQojZGVmaW5lIGFzX3Nob3J0Myh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgc2hvcnQzKQojZGVmaW5lIGFzX3Nob3J0NCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgc2hvcnQ0KQojZGVmaW5lIGFzX3Nob3J0OCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgc2hvcnQ4KQojZGVmaW5lIGFzX3Nob3J0MTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0MTYpCgojZGVmaW5lIGFzX3VzaG9ydCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdXNob3J0KQojZGVmaW5lIGFzX3VzaG9ydDIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVzaG9ydDIpCiNkZWZpbmUgYXNfdXNob3J0Myh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdXNob3J0MykKI2RlZmluZSBhc191c2hvcnQ0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1c2hvcnQ0KQojZGVmaW5lIGFzX3VzaG9ydDgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVzaG9ydDgpCiNkZWZpbmUgYXNfdXNob3J0MTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVzaG9ydDE2KQoKI2RlZmluZSBhc19pbnQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGludCkKI2RlZmluZSBhc19pbnQyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnQyKQojZGVmaW5lIGFzX2ludDMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGludDMpCiNkZWZpbmUgYXNfaW50NCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaW50NCkKI2RlZmluZSBhc19pbnQ4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnQ4KQojZGVmaW5lIGFzX2ludDE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnQxNikKCiNkZWZpbmUgYXNfdWludCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWludCkKI2RlZmluZSBhc191aW50Mih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWludDIpCiNkZWZpbmUgYXNfdWludDMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVpbnQzKQojZGVmaW5lIGFzX3VpbnQ0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1aW50NCkKI2RlZmluZSBhc191aW50OCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWludDgpCiNkZWZpbmUgYXNfdWludDE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1aW50MTYpCgojZGVmaW5lIGFzX2xvbmcoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGxvbmcpCiNkZWZpbmUgYXNfbG9uZzIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGxvbmcyKQojZGVmaW5lIGFzX2xvbmczKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBsb25nMykKI2RlZmluZSBhc19sb25nNCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgbG9uZzQpCiNkZWZpbmUgYXNfbG9uZzgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGxvbmc4KQojZGVmaW5lIGFzX2xvbmcxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgbG9uZzE2KQoKI2RlZmluZSBhc191bG9uZyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmcpCiNkZWZpbmUgYXNfdWxvbmcyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1bG9uZzIpCiNkZWZpbmUgYXNfdWxvbmczKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1bG9uZzMpCiNkZWZpbmUgYXNfdWxvbmc0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1bG9uZzQpCiNkZWZpbmUgYXNfdWxvbmc4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1bG9uZzgpCiNkZWZpbmUgYXNfdWxvbmcxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmcxNikKCiNkZWZpbmUgYXNfZmxvYXQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0KQojZGVmaW5lIGFzX2Zsb2F0Mih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZmxvYXQyKQojZGVmaW5lIGFzX2Zsb2F0Myh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZmxvYXQzKQojZGVmaW5lIGFzX2Zsb2F0NCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZmxvYXQ0KQojZGVmaW5lIGFzX2Zsb2F0OCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZmxvYXQ4KQojZGVmaW5lIGFzX2Zsb2F0MTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0MTYpCgojaWZkZWYgY2xfa2hyX2ZwNjQKI2RlZmluZSBhc19kb3VibGUoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGRvdWJsZSkKI2RlZmluZSBhc19kb3VibGUyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBkb3VibGUyKQojZGVmaW5lIGFzX2RvdWJsZTMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGRvdWJsZTMpCiNkZWZpbmUgYXNfZG91YmxlNCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZG91YmxlNCkKI2RlZmluZSBhc19kb3VibGU4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBkb3VibGU4KQojZGVmaW5lIGFzX2RvdWJsZTE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBkb3VibGUxNikKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojaWZkZWYgY2xfa2hyX2ZwMTYKI2RlZmluZSBhc19oYWxmKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBoYWxmKQojZGVmaW5lIGFzX2hhbGYyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBoYWxmMikKI2RlZmluZSBhc19oYWxmMyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaGFsZjMpCiNkZWZpbmUgYXNfaGFsZjQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGhhbGY0KQojZGVmaW5lIGFzX2hhbGY4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBoYWxmOCkKI2RlZmluZSBhc19oYWxmMTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGhhbGYxNikKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgojZGVmaW5lIGFzX3NpemVfdCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgc2l6ZV90KQojZGVmaW5lIGFzX3B0cmRpZmZfdCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgcHRyZGlmZl90KQojZGVmaW5lIGFzX2ludHB0cl90KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnRwdHJfdCkKI2RlZmluZSBhc191aW50cHRyX3QoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVpbnRwdHJfdCkKCi8vIEMrKyBmb3IgT3BlbkNMIC0gX19yZW1vdmVfYWRkcmVzc19zcGFjZQojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKQp0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPiBzdHJ1Y3QgX19yZW1vdmVfYWRkcmVzc19zcGFjZSB7IHVzaW5nIHR5cGUgPSBfVHA7IH07CnRlbXBsYXRlIDx0eXBlbmFtZSBfVHA+IHN0cnVjdCBfX3JlbW92ZV9hZGRyZXNzX3NwYWNlPF9fZ2VuZXJpYyBfVHA+IHsKICB1c2luZyB0eXBlID0gX1RwOwp9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPiBzdHJ1Y3QgX19yZW1vdmVfYWRkcmVzc19zcGFjZTxfX2dsb2JhbCBfVHA+IHsKICB1c2luZyB0eXBlID0gX1RwOwp9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPiBzdHJ1Y3QgX19yZW1vdmVfYWRkcmVzc19zcGFjZTxfX3ByaXZhdGUgX1RwPiB7CiAgdXNpbmcgdHlwZSA9IF9UcDsKfTsKdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4gc3RydWN0IF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2U8X19sb2NhbCBfVHA+IHsKICB1c2luZyB0eXBlID0gX1RwOwp9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPiBzdHJ1Y3QgX19yZW1vdmVfYWRkcmVzc19zcGFjZTxfX2NvbnN0YW50IF9UcD4gewogIHVzaW5nIHR5cGUgPSBfVHA7Cn07CiNlbmRpZgoKLy8gT3BlbkNMIHYxLjEgczYuOSwgdjEuMi8yLjAgczYuMTAgLSBGdW5jdGlvbiBxdWFsaWZpZXJzCgojZGVmaW5lIF9fa2VybmVsX2V4ZWMoWCwgdHlwZW4pIF9fa2VybmVsIFwKCV9fYXR0cmlidXRlX18oKHdvcmtfZ3JvdXBfc2l6ZV9oaW50KFgsIDEsIDEpKSkgXAoJX19hdHRyaWJ1dGVfXygodmVjX3R5cGVfaGludCh0eXBlbikpKQoKI2RlZmluZSBrZXJuZWxfZXhlYyhYLCB0eXBlbikgX19rZXJuZWwgXAoJX19hdHRyaWJ1dGVfXygod29ya19ncm91cF9zaXplX2hpbnQoWCwgMSwgMSkpKSBcCglfX2F0dHJpYnV0ZV9fKCh2ZWNfdHlwZV9oaW50KHR5cGVuKSkpCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCi8vIE9wZW5DTCB2MS4yIHM2LjEyLjEzLCB2Mi4wIHM2LjEzLjEzIC0gcHJpbnRmCgppbnQgcHJpbnRmKF9fY29uc3RhbnQgY29uc3QgY2hhciogc3QsIC4uLikgX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50ZiwgMSwgMikpKTsKI2VuZGlmCgojaWZkZWYgY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uCgojZGVmaW5lIENMS19BVkNfTUVfTUFKT1JfMTZ4MTZfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9NQUpPUl8xNng4X0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfTUFKT1JfOHgxNl9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SXzh4OF9JTlRFTCAweDMKCiNkZWZpbmUgQ0xLX0FWQ19NRV9NSU5PUl84eDhfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9NSU5PUl84eDRfSU5URUwgMHgxCiNkZWZpbmUgQ0xLX0FWQ19NRV9NSU5PUl80eDhfSU5URUwgMHgyCiNkZWZpbmUgQ0xLX0FWQ19NRV9NSU5PUl80eDRfSU5URUwgMHgzCgojZGVmaW5lIENMS19BVkNfTUVfTUFKT1JfRk9SV0FSRF9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SX0JBQ0tXQVJEX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfTUFKT1JfQklESVJFQ1RJT05BTF9JTlRFTCAweDIKCiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS19BTExfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS18xNngxNl9JTlRFTCAweDdFCiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS18xNng4X0lOVEVMIDB4N0QKI2RlZmluZSBDTEtfQVZDX01FX1BBUlRJVElPTl9NQVNLXzh4MTZfSU5URUwgMHg3QgojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfOHg4X0lOVEVMIDB4NzcKI2RlZmluZSBDTEtfQVZDX01FX1BBUlRJVElPTl9NQVNLXzh4NF9JTlRFTCAweDZGCiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS180eDhfSU5URUwgMHg1RgojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfNHg0X0lOVEVMIDB4M0YKCiNkZWZpbmUgQ0xLX0FWQ19NRV9TTElDRV9UWVBFX1BSRURfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9TTElDRV9UWVBFX0JQUkVEX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfU0xJQ0VfVFlQRV9JTlRSQV9JTlRFTCAweDIKCiNkZWZpbmUgQ0xLX0FWQ19NRV9TRUFSQ0hfV0lORE9XX0VYSEFVU1RJVkVfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9TRUFSQ0hfV0lORE9XX1NNQUxMX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19USU5ZX0lOVEVMIDB4MgojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19FWFRSQV9USU5ZX0lOVEVMIDB4MwojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19ESUFNT05EX0lOVEVMIDB4NAojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19MQVJHRV9ESUFNT05EX0lOVEVMIDB4NQojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19SRVNFUlZFRDBfSU5URUwgMHg2CiNkZWZpbmUgQ0xLX0FWQ19NRV9TRUFSQ0hfV0lORE9XX1JFU0VSVkVEMV9JTlRFTCAweDcKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfQ1VTVE9NX0lOVEVMIDB4OAoKI2RlZmluZSBDTEtfQVZDX01FX1NBRF9BREpVU1RfTU9ERV9OT05FX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfU0FEX0FESlVTVF9NT0RFX0hBQVJfSU5URUwgMHgyCgojZGVmaW5lIENMS19BVkNfTUVfU1VCUElYRUxfTU9ERV9JTlRFR0VSX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfU1VCUElYRUxfTU9ERV9IUEVMX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfU1VCUElYRUxfTU9ERV9RUEVMX0lOVEVMIDB4MwoKI2RlZmluZSBDTEtfQVZDX01FX0NPU1RfUFJFQ0lTSU9OX1FQRUxfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9DT1NUX1BSRUNJU0lPTl9IUEVMX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfQ09TVF9QUkVDSVNJT05fUEVMX0lOVEVMIDB4MgojZGVmaW5lIENMS19BVkNfTUVfQ09TVF9QUkVDSVNJT05fRFBFTF9JTlRFTCAweDMKCiNkZWZpbmUgQ0xLX0FWQ19NRV9CSURJUl9XRUlHSFRfUVVBUlRFUl9JTlRFTCAweDEwCiNkZWZpbmUgQ0xLX0FWQ19NRV9CSURJUl9XRUlHSFRfVEhJUkRfSU5URUwgMHgxNQojZGVmaW5lIENMS19BVkNfTUVfQklESVJfV0VJR0hUX0hBTEZfSU5URUwgMHgyMAojZGVmaW5lIENMS19BVkNfTUVfQklESVJfV0VJR0hUX1RXT19USElSRF9JTlRFTCAweDJCCiNkZWZpbmUgQ0xLX0FWQ19NRV9CSURJUl9XRUlHSFRfVEhSRUVfUVVBUlRFUl9JTlRFTCAweDMwCgojZGVmaW5lIENMS19BVkNfTUVfQk9SREVSX1JFQUNIRURfTEVGVF9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX0JPUkRFUl9SRUFDSEVEX1JJR0hUX0lOVEVMIDB4MgojZGVmaW5lIENMS19BVkNfTUVfQk9SREVSX1JFQUNIRURfVE9QX0lOVEVMIDB4NAojZGVmaW5lIENMS19BVkNfTUVfQk9SREVSX1JFQUNIRURfQk9UVE9NX0lOVEVMIDB4OAoKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBXzE2eDE2X0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfOHg4X0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfNHg0X0lOVEVMIDB4MgoKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfUEFSVElUSU9OXzE2eDE2X0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS19QQVJUSVRJT05fOHg4X0lOVEVMIDB4NDAwMAoKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfMTZ4MTZfRk9SV0FSRF9FTkFCTEVfSU5URUwgKDB4MSA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfMTZ4MTZfQkFDS1dBUkRfRU5BQkxFX0lOVEVMICgweDIgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzE2eDE2X0RVQUxfRU5BQkxFX0lOVEVMICgweDMgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF9GT1JXQVJEX0VOQUJMRV9JTlRFTCAoMHg1NSA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4X0JBQ0tXQVJEX0VOQUJMRV9JTlRFTCAoMHhBQSA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4X0RVQUxfRU5BQkxFX0lOVEVMICgweEZGIDw8IDI0KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfMF9GT1JXQVJEX0VOQUJMRV9JTlRFTCAoMHgxIDw8IDI0KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfMF9CQUNLV0FSRF9FTkFCTEVfSU5URUwgKDB4MiA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzFfRk9SV0FSRF9FTkFCTEVfSU5URUwgKDB4MSA8PCAyNikKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzFfQkFDS1dBUkRfRU5BQkxFX0lOVEVMICgweDIgPDwgMjYpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF8yX0ZPUldBUkRfRU5BQkxFX0lOVEVMICgweDEgPDwgMjgpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF8yX0JBQ0tXQVJEX0VOQUJMRV9JTlRFTCAoMHgyIDw8IDI4KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfM19GT1JXQVJEX0VOQUJMRV9JTlRFTCAoMHgxIDw8IDMwKQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfM19CQUNLV0FSRF9FTkFCTEVfSU5URUwgKDB4MiA8PCAzMCkKCiNkZWZpbmUgQ0xLX0FWQ19NRV9CTE9DS19CQVNFRF9TS0lQXzR4NF9JTlRFTCAweDAwCiNkZWZpbmUgQ0xLX0FWQ19NRV9CTE9DS19CQVNFRF9TS0lQXzh4OF9JTlRFTCAweDgwCgojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTFVNQV9QQVJUSVRJT05fTUFTS19BTExfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV9MVU1BX1BBUlRJVElPTl9NQVNLXzE2eDE2X0lOVEVMIDB4NgojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTFVNQV9QQVJUSVRJT05fTUFTS184eDhfSU5URUwgMHg1CiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV9MVU1BX1BBUlRJVElPTl9NQVNLXzR4NF9JTlRFTCAweDMKCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV9ORUlHSEJPUl9MRUZUX01BU0tfRU5BQkxFX0lOVEVMIDB4NjAKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBX05FSUdIQk9SX1VQUEVSX01BU0tfRU5BQkxFX0lOVEVMIDB4MTAKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBX05FSUdIQk9SX1VQUEVSX1JJR0hUX01BU0tfRU5BQkxFX0lOVEVMIDB4OAojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTkVJR0hCT1JfVVBQRVJfTEVGVF9NQVNLX0VOQUJMRV9JTlRFTCAweDQKCiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX1ZFUlRJQ0FMX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9IT1JJWk9OVEFMX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9EQ19JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfRElBR09OQUxfRE9XTl9MRUZUX0lOVEVMIDB4MwojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9ESUFHT05BTF9ET1dOX1JJR0hUX0lOVEVMIDB4NAojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9QTEFORV9JTlRFTCAweDQKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfVkVSVElDQUxfUklHSFRfSU5URUwgMHg1CiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX0hPUklaT05UQUxfRE9XTl9JTlRFTCAweDYKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfVkVSVElDQUxfTEVGVF9JTlRFTCAweDcKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfSE9SSVpPTlRBTF9VUF9JTlRFTCAweDgKI2RlZmluZSBDTEtfQVZDX01FX0NIUk9NQV9QUkVESUNUT1JfTU9ERV9EQ19JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX0NIUk9NQV9QUkVESUNUT1JfTU9ERV9IT1JJWk9OVEFMX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfQ0hST01BX1BSRURJQ1RPUl9NT0RFX1ZFUlRJQ0FMX0lOVEVMIDB4MgojZGVmaW5lIENMS19BVkNfTUVfQ0hST01BX1BSRURJQ1RPUl9NT0RFX1BMQU5FX0lOVEVMIDB4MwoKI2RlZmluZSBDTEtfQVZDX01FX0ZSQU1FX0ZPUldBUkRfSU5URUwgMHgxCiNkZWZpbmUgQ0xLX0FWQ19NRV9GUkFNRV9CQUNLV0FSRF9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX0ZSQU1FX0RVQUxfSU5URUwgMHgzCgojZGVmaW5lIENMS19BVkNfTUVfSU5URVJMQUNFRF9TQ0FOX1RPUF9GSUVMRF9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX0lOVEVSTEFDRURfU0NBTl9CT1RUT01fRklFTERfSU5URUwgMHgxCgojZGVmaW5lIENMS19BVkNfTUVfSU5JVElBTElaRV9JTlRFTCAweDAKCiNkZWZpbmUgQ0xLX0FWQ19JTUVfUEFZTE9BRF9JTklUSUFMSVpFX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfUkVGX1BBWUxPQURfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX1NJQ19QQVlMT0FEX0lOSVRJQUxJWkVfSU5URUwgMHgwCgojZGVmaW5lIENMS19BVkNfSU1FX1JFU1VMVF9JTklUSUFMSVpFX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfUkVGX1JFU1VMVF9JTklUSUFMSVpFX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfU0lDX1JFU1VMVF9JTklUSUFMSVpFX0lOVEVMIDB4MAoKI2RlZmluZSBDTEtfQVZDX0lNRV9SRVNVTFRfU0lOR0xFX1JFRkVSRU5DRV9TVFJFQU1PVVRfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX0lNRV9SRVNVTFRfU0lOR0xFX1JFRkVSRU5DRV9TVFJFQU1JTl9JTklUSUFMSVpFX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfSU1FX1JFU1VMVF9EVUFMX1JFRkVSRU5DRV9TVFJFQU1PVVRfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX0lNRV9SRVNVTFRfRFVBTF9SRUZFUkVOQ0VfU1RSRUFNSU5fSU5JVElBTElaRV9JTlRFTCAweDAKCiNlbmRpZiAvLyBjbF9pbnRlbF9kZXZpY2Vfc2lkZV9hdmNfbW90aW9uX2VzdGltYXRpb24KCi8vIERpc2FibGUgYW55IGV4dGVuc2lvbnMgd2UgbWF5IGhhdmUgZW5hYmxlZCBwcmV2aW91c2x5LgojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gYWxsIDogZGlzYWJsZQoKI2VuZGlmIC8vX09QRU5DTF9CQVNFX0hfCgBwbW1pbnRyaW4uaABzMzkwaW50cmluLmgAc3RkYXRvbWljLmgAc3RkYm9vbC5oAHVpbnRyaW50cmluLmgALyo9PT0tLS0tIHZlY2ludHJpbi5oIC0gVmVjdG9yIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmIGRlZmluZWQoX19zMzkweF9fKSAmJiBkZWZpbmVkKF9fVkVDX18pCgojZGVmaW5lIF9fQVRUUlNfYWkgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQojZGVmaW5lIF9fQVRUUlNfbyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fKSkKI2RlZmluZSBfX0FUVFJTX29fYWkgX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19hbHdheXNfaW5saW5lX18pKQoKI2RlZmluZSBfX2NvbnN0YW50KFBBUk0pIFwKICBfX2F0dHJpYnV0ZV9fKChfX2VuYWJsZV9pZl9fICgoUEFSTSkgPT0gKFBBUk0pLCBcCiAgICAgImFyZ3VtZW50IG11c3QgYmUgYSBjb25zdGFudCBpbnRlZ2VyIikpKQojZGVmaW5lIF9fY29uc3RhbnRfcmFuZ2UoUEFSTSwgTE9XLCBISUdIKSBcCiAgX19hdHRyaWJ1dGVfXygoX19lbmFibGVfaWZfXyAoKFBBUk0pID49IChMT1cpICYmIChQQVJNKSA8PSAoSElHSCksIFwKICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIGNvbnN0YW50IGludGVnZXIgZnJvbSAiICNMT1cgIiB0byAiICNISUdIKSkpCiNkZWZpbmUgX19jb25zdGFudF9wb3cyX3JhbmdlKFBBUk0sIExPVywgSElHSCkgXAogIF9fYXR0cmlidXRlX18oKF9fZW5hYmxlX2lmX18gKChQQVJNKSA+PSAoTE9XKSAmJiAoUEFSTSkgPD0gKEhJR0gpICYmIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFBBUk0pICYgKChQQVJNKSAtIDEpKSA9PSAwLCBcCiAgICAgImFyZ3VtZW50IG11c3QgYmUgYSBjb25zdGFudCBwb3dlciBvZiAyIGZyb20gIiAjTE9XICIgdG8gIiAjSElHSCkpKQoKLyotLSBfX2xjYmIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKZXh0ZXJuIF9fQVRUUlNfbyB1bnNpZ25lZCBpbnQKX19sY2JiKGNvbnN0IHZvaWQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCiNkZWZpbmUgX19sY2JiKFgsIFkpICgoX190eXBlb2ZfXygoX19sY2JiKSgoWCksIChZKSkpKSBcCiAgX19idWlsdGluX3MzOTBfbGNiYigoWCksIF9fYnVpbHRpbl9jb25zdGFudF9wKChZKSk/IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKChZKSA9PSA2NCA/IDAgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMTI4ID8gMSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSAyNTYgPyAyIDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDUxMiA/IDMgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMTAyNCA/IDQgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMjA0OCA/IDUgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gNDA5NiA/IDYgOiAwKSA6IDApKQoKLyotLSB2ZWNfZXh0cmFjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgc2lnbmVkIGNoYXIKdmVjX2V4dHJhY3QoX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiAxNV07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGNoYXIKdmVjX2V4dHJhY3QoX192ZWN0b3IgX19ib29sIGNoYXIgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiAxNV07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGNoYXIKdmVjX2V4dHJhY3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDE1XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgc2lnbmVkIHNob3J0CnZlY19leHRyYWN0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDddOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBzaG9ydAp2ZWNfZXh0cmFjdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiA3XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdW5zaWduZWQgc2hvcnQKdmVjX2V4dHJhY3QoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiA3XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgc2lnbmVkIGludAp2ZWNfZXh0cmFjdChfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgM107Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGludAp2ZWNfZXh0cmFjdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgM107Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGludAp2ZWNfZXh0cmFjdChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiAzXTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZXh0cmFjdChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMV07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZXh0cmFjdChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMV07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZXh0cmFjdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiAxXTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGZsb2F0CnZlY19leHRyYWN0KF9fdmVjdG9yIGZsb2F0IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgM107Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBkb3VibGUKdmVjX2V4dHJhY3QoX192ZWN0b3IgZG91YmxlIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMV07Cn0KCi8qLS0gdmVjX2luc2VydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19pbnNlcnQoc2lnbmVkIGNoYXIgX19zY2FsYXIsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAxNV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2luc2VydCh1bnNpZ25lZCBjaGFyIF9fc2NhbGFyLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX3ZlYywgaW50IF9faW5kZXgpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fbmV3dmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX192ZWM7CiAgX19uZXd2ZWNbX19pbmRleCAmIDE1XSA9ICh1bnNpZ25lZCBjaGFyKV9fc2NhbGFyOwogIHJldHVybiBfX25ld3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfaW5zZXJ0KHVuc2lnbmVkIGNoYXIgX19zY2FsYXIsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIGludCBfX2luZGV4KSB7CiAgX192ZWNbX19pbmRleCAmIDE1XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19pbnNlcnQoc2lnbmVkIHNob3J0IF9fc2NhbGFyLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgX192ZWNbX19pbmRleCAmIDddID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfaW5zZXJ0KHVuc2lnbmVkIHNob3J0IF9fc2NhbGFyLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX192ZWMsCiAgICAgICAgICAgaW50IF9faW5kZXgpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX25ld3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX3ZlYzsKICBfX25ld3ZlY1tfX2luZGV4ICYgN10gPSAodW5zaWduZWQgc2hvcnQpX19zY2FsYXI7CiAgcmV0dXJuIF9fbmV3dmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfaW5zZXJ0KHVuc2lnbmVkIHNob3J0IF9fc2NhbGFyLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywKICAgICAgICAgICBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiA3XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfaW5zZXJ0KHNpZ25lZCBpbnQgX19zY2FsYXIsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgX192ZWNbX19pbmRleCAmIDNdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19zY2FsYXIsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fbmV3dmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3ZlYzsKICBfX25ld3ZlY1tfX2luZGV4ICYgM10gPSBfX3NjYWxhcjsKICByZXR1cm4gX19uZXd2ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfaW5zZXJ0KHVuc2lnbmVkIGludCBfX3NjYWxhciwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAzXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfaW5zZXJ0KHNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfaW5zZXJ0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX3NjYWxhciwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICBpbnQgX19pbmRleCkgewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX25ld3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX192ZWM7CiAgX19uZXd2ZWNbX19pbmRleCAmIDFdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fbmV3dmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19pbnNlcnQoZmxvYXQgX19zY2FsYXIsIF9fdmVjdG9yIGZsb2F0IF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfaW5zZXJ0KGRvdWJsZSBfX3NjYWxhciwgX192ZWN0b3IgZG91YmxlIF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKLyotLSB2ZWNfcHJvbW90ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3Byb21vdGUoc2lnbmVkIGNoYXIgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3Igc2lnbmVkIGNoYXIgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKTA7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3plcm8sIF9femVybywKICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgMTVdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wcm9tb3RlKHVuc2lnbmVkIGNoYXIgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3plcm8gPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikwOwogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3plcm8sIF9femVybywKICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgMTVdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3Byb21vdGUoc2lnbmVkIHNob3J0IF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3plcm8gPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KTA7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgN10gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wcm9tb3RlKHVuc2lnbmVkIHNob3J0IF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9femVybyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkwOwogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwogIF9fdmVjW19faW5kZXggJiA3XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcHJvbW90ZShzaWduZWQgaW50IF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBpbnQgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpMDsKICBfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgM10gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcHJvbW90ZSh1bnNpZ25lZCBpbnQgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IF9femVybyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpMDsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3plcm8sIF9femVybywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDNdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19wcm9tb3RlKHNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3plcm8gPSAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykwOwogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3plcm8sIF9femVybywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcHJvbW90ZSh1bnNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9femVybyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpMDsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3plcm8sIF9femVybywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEpOwogIF9fdmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19wcm9tb3RlKGZsb2F0IF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIGZsb2F0IF9femVybyA9IChfX3ZlY3RvciBmbG9hdCkwLjBmOwogIF9fdmVjdG9yIGZsb2F0IF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDNdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19wcm9tb3RlKGRvdWJsZSBfX3NjYWxhciwgaW50IF9faW5kZXgpIHsKICBjb25zdCBfX3ZlY3RvciBkb3VibGUgX196ZXJvID0gKF9fdmVjdG9yIGRvdWJsZSkwLjA7CiAgX192ZWN0b3IgZG91YmxlIF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDFdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgovKi0tIHZlY19pbnNlcnRfYW5kX3plcm8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKTA7CiAgX192ZWNbN10gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19pbnNlcnRfYW5kX3plcm8oY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpMDsKICBfX3ZlY1s3XSA9ICpfX3B0cjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KTA7CiAgX192ZWNbM10gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KTA7CiAgX192ZWNbM10gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19pbnNlcnRfYW5kX3plcm8oY29uc3Qgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpMDsKICBfX3ZlY1sxXSA9ICpfX3B0cjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KTA7CiAgX192ZWNbMV0gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19pbnNlcnRfYW5kX3plcm8oY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjID0gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpMDsKICBfX3ZlY1swXSA9ICpfX3B0cjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTA7CiAgX192ZWNbMF0gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCBmbG9hdCAqX19wdHIpIHsKICBfX3ZlY3RvciBmbG9hdCBfX3ZlYyA9IChfX3ZlY3RvciBmbG9hdCkwLjBmOwogIF9fdmVjWzFdID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IGRvdWJsZSAqX19wdHIpIHsKICBfX3ZlY3RvciBkb3VibGUgX192ZWMgPSAoX192ZWN0b3IgZG91YmxlKTAuMDsKICBfX3ZlY1swXSA9ICpfX3B0cjsKICByZXR1cm4gX192ZWM7Cn0KCi8qLS0gdmVjX3Blcm0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19wZXJtKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3Blcm0oX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3Blcm0oX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19wZXJtKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wZXJtKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfcGVybShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19wZXJtKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcGVybShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19wZXJtKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3Blcm0oX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19wZXJtKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3Blcm0oX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19wZXJtKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3Blcm0oX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKLyotLSB2ZWNfcGVybWkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4KZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19wZXJtaShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19wZXJtaShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3Blcm1pKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4KZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX3Blcm1pKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKI2RlZmluZSB2ZWNfcGVybWkoWCwgWSwgWikgKChfX3R5cGVvZl9fKCh2ZWNfcGVybWkpKChYKSwgKFkpLCAoWikpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZwZGkoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoWCksIFwKICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAoKChaKSAmIDIpIDw8IDEpIHwgKChaKSAmIDEpKSkKCi8qLS0gdmVjX2JwZXJtX3UxMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19icGVybV91MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YnBlcm0oX19hLCBfX2IpOwp9CiNlbmRpZgoKLyotLSB2ZWNfcmV2YiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19yZXZiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgICAgICBfX2J1aWx0aW5fczM5MF92bGJyaCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX192ZWMpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmV2YihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bGJyaChfX3ZlYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3JldmIoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgICAgICAgX19idWlsdGluX3MzOTBfdmxicmYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3ZlYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcmV2YihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmxicmYoX192ZWMpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19yZXZiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpCiAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3ZsYnJnKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX192ZWMpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3JldmIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZsYnJnKF9fdmVjKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19yZXZiKF9fdmVjdG9yIGZsb2F0IF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCkKICAgICAgICAgX19idWlsdGluX3MzOTBfdmxicmYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3ZlYyk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JldmIoX192ZWN0b3IgZG91YmxlIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpCiAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3ZsYnJnKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX192ZWMpOwp9CgovKi0tIHZlY19yZXZlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfcmV2ZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpIHsgX192ZWNbMTVdLCBfX3ZlY1sxNF0sIF9fdmVjWzEzXSwgX192ZWNbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbMTFdLCBfX3ZlY1sxMF0sIF9fdmVjWzldLCBfX3ZlY1s4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcmV2ZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSB7IF9fdmVjWzE1XSwgX192ZWNbMTRdLCBfX3ZlY1sxM10sIF9fdmVjWzEyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbMTFdLCBfX3ZlY1sxMF0sIF9fdmVjWzldLCBfX3ZlY1s4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbN10sIF9fdmVjWzZdLCBfX3ZlY1s1XSwgX192ZWNbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19yZXZlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikgeyBfX3ZlY1sxNV0sIF9fdmVjWzE0XSwgX192ZWNbMTNdLCBfX3ZlY1sxMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY1sxMV0sIF9fdmVjWzEwXSwgX192ZWNbOV0sIF9fdmVjWzhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbN10sIF9fdmVjWzZdLCBfX3ZlY1s1XSwgX192ZWNbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY1szXSwgX192ZWNbMl0sIF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3JldmUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpIHsgX192ZWNbN10sIF9fdmVjWzZdLCBfX3ZlY1s1XSwgX192ZWNbNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3JldmUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSB7IF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19yZXZlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KSB7IF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3JldmUoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkgeyBfX3ZlY1szXSwgX192ZWNbMl0sIF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3JldmUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHsgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfcmV2ZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KSB7IF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3JldmUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykgeyBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19yZXZlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19yZXZlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpIHsgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcmV2ZShfX3ZlY3RvciBmbG9hdCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpIHsgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcmV2ZShfX3ZlY3RvciBkb3VibGUgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkgeyBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKLyotLSB2ZWNfc2VsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NlbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2VsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc2VsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3IgX19ib29sIGNoYXIpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zZWwoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2MgJiBfX2IpIHwgKH5fX2MgJiBfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2MgJiBfX2IpIHwgKH5fX2MgJiBfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NlbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc2VsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NlbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYyAmIF9fYikgfCAofl9fYyAmIF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIGludClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBpbnQpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NlbChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIGludClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBpbnQpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3IgX19ib29sIGludClfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc2VsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2MgJiBfX2IpIHwgKH5fX2MgJiBfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NlbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2VsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zZWwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYyAmIF9fYikgfCAofl9fYyAmIF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19jICYgX19hKSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc2VsKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCkoKF9fYyAmIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKH5fX2MgJiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc2VsKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYykgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2E7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19jOwogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpKChfX2NjICYgX19iYykgfCAofl9fY2MgJiBfX2FjKSk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NlbChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoKF9fYyAmIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAofl9fYyAmIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc2VsKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2MpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hOwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fY2MgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYzsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoKF9fY2MgJiBfX2JjKSB8ICh+X19jYyAmIF9fYWMpKTsKfQoKLyotLSB2ZWNfZ2F0aGVyX2VsZW1lbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZ2F0aGVyX2VsZW1lbnQoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICBfX3ZlY1tfX2luZGV4XSA9ICooY29uc3Qgc2lnbmVkIGludCAqKSgKICAgIChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSk7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgX192ZWNbX19pbmRleF0gPSAqKGNvbnN0IHVuc2lnbmVkIGludCAqKSgKICAgIChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSk7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2dhdGhlcl9lbGVtZW50KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCB1bnNpZ25lZCBpbnQgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZ2F0aGVyX2VsZW1lbnQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICBfX3ZlY1tfX2luZGV4XSA9ICooY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqKSgKICAgIChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSk7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgX192ZWNbX19pbmRleF0gPSAqKGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqKSgKICAgIChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSk7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2dhdGhlcl9lbGVtZW50KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciBmbG9hdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgX192ZWNbX19pbmRleF0gPSAqKGNvbnN0IGZsb2F0ICopKAogICAgKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKTsKICByZXR1cm4gX192ZWM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2dhdGhlcl9lbGVtZW50KF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvdWJsZSAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCBkb3VibGUgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKLyotLSB2ZWNfc2NhdHRlcl9lbGVtZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc2NhdHRlcl9lbGVtZW50KF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICAqKHNpZ25lZCBpbnQgKikoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKSA9CiAgICBfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc2NhdHRlcl9lbGVtZW50KF9fdmVjdG9yIF9fYm9vbCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogICoodW5zaWduZWQgaW50ICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogICoodW5zaWduZWQgaW50ICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgKihzaWduZWQgbG9uZyBsb25nICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICAqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zY2F0dGVyX2VsZW1lbnQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICAqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc2NhdHRlcl9lbGVtZW50KF9fdmVjdG9yIGZsb2F0IF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogICooZmxvYXQgKikoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKSA9CiAgICBfX3ZlY1tfX2luZGV4XTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBkb3VibGUgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgIGRvdWJsZSAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogICooZG91YmxlICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KCi8qLS0gdmVjX3hsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3hsKGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKTsKICByZXR1cm4gVjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIHNob3J0KSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3hsKGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBpbnQpKTsKICByZXR1cm4gVjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgaW50KSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3hsKGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKTsKICByZXR1cm4gVjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSk7CiAgcmV0dXJuIFY7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3QgZmxvYXQgKl9fcHRyKSB7CiAgX192ZWN0b3IgZmxvYXQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBmbG9hdCkpOwogIHJldHVybiBWOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCBkb3VibGUgKl9fcHRyKSB7CiAgX192ZWN0b3IgZG91YmxlIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgZG91YmxlKSk7CiAgcmV0dXJuIFY7Cn0KCi8qLS0gdmVjX3hsZDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY194bGQyKGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGNoYXIpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIHNob3J0KSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY194bGQyKGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgaW50KSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgaW50KSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3QgZG91YmxlICpfX3B0cikgewogIF9fdmVjdG9yIGRvdWJsZSBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIGRvdWJsZSkpOwogIHJldHVybiBWOwp9CgovKi0tIHZlY194bHc0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfeGx3NChsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgY2hhcikpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfeGx3NChsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGludCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGludCkpOwogIHJldHVybiBWOwp9CgovKi0tIHZlY194c3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgY2hhcikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBpbnQpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgaW50KSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLCBsb25nIF9fb2Zmc2V0LAogICAgICAgIHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjLCBsb25nIF9fb2Zmc2V0LAogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIGZsb2F0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBmbG9hdCAqX19wdHIpIHsKICBfX3ZlY3RvciBmbG9hdCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsIHNpemVvZihfX3ZlY3RvciBmbG9hdCkpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywgbG9uZyBfX29mZnNldCwgZG91YmxlICpfX3B0cikgewogIF9fdmVjdG9yIGRvdWJsZSBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsIHNpemVvZihfX3ZlY3RvciBkb3VibGUpKTsKfQoKLyotLSB2ZWNfeHN0ZDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgY2hhcikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgc2hvcnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLCBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGludCkpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGludCkpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLCBsb25nIF9fb2Zmc2V0LAogICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdGQyKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgbG9uZyBfX29mZnNldCwKICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciBkb3VibGUgX192ZWMsIGxvbmcgX19vZmZzZXQsIGRvdWJsZSAqX19wdHIpIHsKICBfX3ZlY3RvciBkb3VibGUgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLCBzaXplb2YoX192ZWN0b3IgZG91YmxlKSk7Cn0KCi8qLS0gdmVjX3hzdHc0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGNoYXIpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0dzQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIHNob3J0KSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0dzQoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBpbnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0dzQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKTsKfQoKLyotLSB2ZWNfbG9hZF9ibmRyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbG9hZF9ibmRyeShjb25zdCBzaWduZWQgY2hhciAqX19wdHIsIHVuc2lnbmVkIHNob3J0IF9fbGVuKQogIF9fY29uc3RhbnRfcG93Ml9yYW5nZShfX2xlbiwgNjQsIDQwOTYpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19sb2FkX2JuZHJ5KGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19sb2FkX2JuZHJ5KGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wdHIsIHVuc2lnbmVkIHNob3J0IF9fbGVuKQogIF9fY29uc3RhbnRfcG93Ml9yYW5nZShfX2xlbiwgNjQsIDQwOTYpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbG9hZF9ibmRyeShjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIsIHVuc2lnbmVkIHNob3J0IF9fbGVuKQogIF9fY29uc3RhbnRfcG93Ml9yYW5nZShfX2xlbiwgNjQsIDQwOTYpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19sb2FkX2JuZHJ5KGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19sb2FkX2JuZHJ5KGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIsIHVuc2lnbmVkIHNob3J0IF9fbGVuKQogIF9fY29uc3RhbnRfcG93Ml9yYW5nZShfX2xlbiwgNjQsIDQwOTYpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX2JuZHJ5KGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX2JuZHJ5KGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIHVuc2lnbmVkIHNob3J0IF9fbGVuKQogIF9fY29uc3RhbnRfcG93Ml9yYW5nZShfX2xlbiwgNjQsIDQwOTYpOwoKI2lmIF9fQVJDSF9fID49IDEyCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgZmxvYXQKdmVjX2xvYWRfYm5kcnkoY29uc3QgZmxvYXQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKI2VuZGlmCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbG9hZF9ibmRyeShjb25zdCBkb3VibGUgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCiNkZWZpbmUgdmVjX2xvYWRfYm5kcnkoWCwgWSkgKChfX3R5cGVvZl9fKCh2ZWNfbG9hZF9ibmRyeSkoKFgpLCAoWSkpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZsYmIoKFgpLCAoKFkpID09IDY0ID8gMCA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSAxMjggPyAxIDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDI1NiA/IDIgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gNTEyID8gMyA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSAxMDI0ID8gNCA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSAyMDQ4ID8gNSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSA0MDk2ID8gNiA6IC0xKSkpCgovKi0tIHZlY19sb2FkX2xlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbG9hZF9sZW4oY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyLCB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19sb2FkX2xlbihjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2xvYWRfbGVuKGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbG9hZF9sZW4oY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyLCB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19sb2FkX2xlbihjb25zdCBzaWduZWQgaW50ICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2xvYWRfbGVuKGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX2xlbihjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2xvYWRfbGVuKGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2xvYWRfbGVuKGNvbnN0IGZsb2F0ICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdClfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbG9hZF9sZW4oY29uc3QgZG91YmxlICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdmxsKF9fbGVuLCBfX3B0cik7Cn0KCi8qLS0gdmVjX2xvYWRfbGVuX3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbG9hZF9sZW5fcihjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZscmwoX19sZW4sIF9fcHRyKTsKfQojZW5kaWYKCi8qLS0gdmVjX3N0b3JlX2xlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYywgc2lnbmVkIGNoYXIgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgdW5zaWduZWQgY2hhciAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIHNpZ25lZCBzaG9ydCAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywgdW5zaWduZWQgc2hvcnQgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgc2lnbmVkIGludCAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsIHVuc2lnbmVkIGludCAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLCBzaWduZWQgbG9uZyBsb25nICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc3RvcmVfbGVuKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciBmbG9hdCBfX3ZlYywgZmxvYXQgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc3RvcmVfbGVuKF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywgZG91YmxlICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQoKLyotLSB2ZWNfc3RvcmVfbGVuX3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSB2b2lkCnZlY19zdG9yZV9sZW5fcihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLCB1bnNpZ25lZCBjaGFyICpfX3B0ciwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdHJsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQojZW5kaWYKCi8qLS0gdmVjX2xvYWRfcGFpciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2xvYWRfcGFpcihzaWduZWQgbG9uZyBsb25nIF9fYSwgc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX3BhaXIodW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2dlbm1hc2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2dlbm1hc2sodW5zaWduZWQgc2hvcnQgX19tYXNrKQogIF9fY29uc3RhbnQoX19tYXNrKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSgKICAgIF9fbWFzayAmIDB4ODAwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHg0MDAwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDIwMDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MTAwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwODAwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDA0MDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDIwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMTAwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwODAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDA0MCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMDIwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwMTAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDAwOCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMDA0ID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwMDIgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDAwMSA/IDB4ZmYgOiAwKTsKfQoKLyotLSB2ZWNfZ2VubWFza3NfKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZ2VubWFza3NfOCh1bnNpZ25lZCBjaGFyIF9fZmlyc3QsIHVuc2lnbmVkIGNoYXIgX19sYXN0KQogIF9fY29uc3RhbnQoX19maXJzdCkgX19jb25zdGFudChfX2xhc3QpIHsKICB1bnNpZ25lZCBjaGFyIF9fYml0MSA9IF9fZmlyc3QgJiA3OwogIHVuc2lnbmVkIGNoYXIgX19iaXQyID0gX19sYXN0ICYgNzsKICB1bnNpZ25lZCBjaGFyIF9fbWFzazEgPSAodW5zaWduZWQgY2hhcikoMVUgPDwgKDcgLSBfX2JpdDEpIDw8IDEpIC0gMTsKICB1bnNpZ25lZCBjaGFyIF9fbWFzazIgPSAodW5zaWduZWQgY2hhcikoMVUgPDwgKDcgLSBfX2JpdDIpKSAtIDE7CiAgdW5zaWduZWQgY2hhciBfX3ZhbHVlID0gKF9fYml0MSA8PSBfX2JpdDIgPwogICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxICYgfl9fbWFzazIgOgogICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxIHwgfl9fbWFzazIpOwogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3ZhbHVlOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZ2VubWFza3NfMTYodW5zaWduZWQgY2hhciBfX2ZpcnN0LCB1bnNpZ25lZCBjaGFyIF9fbGFzdCkKICBfX2NvbnN0YW50KF9fZmlyc3QpIF9fY29uc3RhbnQoX19sYXN0KSB7CiAgdW5zaWduZWQgY2hhciBfX2JpdDEgPSBfX2ZpcnN0ICYgMTU7CiAgdW5zaWduZWQgY2hhciBfX2JpdDIgPSBfX2xhc3QgJiAxNTsKICB1bnNpZ25lZCBzaG9ydCBfX21hc2sxID0gKHVuc2lnbmVkIHNob3J0KSgxVSA8PCAoMTUgLSBfX2JpdDEpIDw8IDEpIC0gMTsKICB1bnNpZ25lZCBzaG9ydCBfX21hc2syID0gKHVuc2lnbmVkIHNob3J0KSgxVSA8PCAoMTUgLSBfX2JpdDIpKSAtIDE7CiAgdW5zaWduZWQgc2hvcnQgX192YWx1ZSA9IChfX2JpdDEgPD0gX19iaXQyID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbWFzazEgJiB+X19tYXNrMiA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxIHwgfl9fbWFzazIpOwogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX192YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19nZW5tYXNrc18zMih1bnNpZ25lZCBjaGFyIF9fZmlyc3QsIHVuc2lnbmVkIGNoYXIgX19sYXN0KQogIF9fY29uc3RhbnQoX19maXJzdCkgX19jb25zdGFudChfX2xhc3QpIHsKICB1bnNpZ25lZCBjaGFyIF9fYml0MSA9IF9fZmlyc3QgJiAzMTsKICB1bnNpZ25lZCBjaGFyIF9fYml0MiA9IF9fbGFzdCAmIDMxOwogIHVuc2lnbmVkIGludCBfX21hc2sxID0gKDFVIDw8ICgzMSAtIF9fYml0MSkgPDwgMSkgLSAxOwogIHVuc2lnbmVkIGludCBfX21hc2syID0gKDFVIDw8ICgzMSAtIF9fYml0MikpIC0gMTsKICB1bnNpZ25lZCBpbnQgX192YWx1ZSA9IChfX2JpdDEgPD0gX19iaXQyID8KICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxICYgfl9fbWFzazIgOgogICAgICAgICAgICAgICAgICAgICAgICAgIF9fbWFzazEgfCB+X19tYXNrMik7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX192YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19nZW5tYXNrc182NCh1bnNpZ25lZCBjaGFyIF9fZmlyc3QsIHVuc2lnbmVkIGNoYXIgX19sYXN0KQogIF9fY29uc3RhbnQoX19maXJzdCkgX19jb25zdGFudChfX2xhc3QpIHsKICB1bnNpZ25lZCBjaGFyIF9fYml0MSA9IF9fZmlyc3QgJiA2MzsKICB1bnNpZ25lZCBjaGFyIF9fYml0MiA9IF9fbGFzdCAmIDYzOwogIHVuc2lnbmVkIGxvbmcgbG9uZyBfX21hc2sxID0gKDFVTEwgPDwgKDYzIC0gX19iaXQxKSA8PCAxKSAtIDE7CiAgdW5zaWduZWQgbG9uZyBsb25nIF9fbWFzazIgPSAoMVVMTCA8PCAoNjMgLSBfX2JpdDIpKSAtIDE7CiAgdW5zaWduZWQgbG9uZyBsb25nIF9fdmFsdWUgPSAoX19iaXQxIDw9IF9fYml0MiA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSAmIH5fX21hc2syIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxIHwgfl9fbWFzazIpOwogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmFsdWU7Cn0KCi8qLS0gdmVjX3NwbGF0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcGxhdChfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxNSkgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zcGxhdChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxNSkgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NwbGF0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMTUpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3BsYXQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDcpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zcGxhdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgNykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NwbGF0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDcpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcGxhdChfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NwbGF0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NwbGF0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NwbGF0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc3BsYXQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykKICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX192ZWNbX19pbmRleF0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NwbGF0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX192ZWNbX19pbmRleF07Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc3BsYXQoX192ZWN0b3IgZmxvYXQgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX192ZWNbX19pbmRleF07Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NwbGF0KF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX192ZWNbX19pbmRleF07Cn0KCi8qLS0gdmVjX3NwbGF0X3MqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3BsYXRfczgoc2lnbmVkIGNoYXIgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NwbGF0X3MxNihzaWduZWQgc2hvcnQgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3BsYXRfczMyKHNpZ25lZCBzaG9ydCBfX3NjYWxhcikKICBfX2NvbnN0YW50KF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KShzaWduZWQgaW50KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3BsYXRfczY0KHNpZ25lZCBzaG9ydCBfX3NjYWxhcikKICBfX2NvbnN0YW50KF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShzaWduZWQgbG9uZylfX3NjYWxhcjsKfQoKLyotLSB2ZWNfc3BsYXRfdSogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NwbGF0X3U4KHVuc2lnbmVkIGNoYXIgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcGxhdF91MTYodW5zaWduZWQgc2hvcnQgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NwbGF0X3UzMihzaWduZWQgc2hvcnQgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KShzaWduZWQgaW50KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcGxhdF91NjQoc2lnbmVkIHNob3J0IF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2lnbmVkIGxvbmcgbG9uZylfX3NjYWxhcjsKfQoKLyotLSB2ZWNfc3BsYXRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NwbGF0cyhzaWduZWQgY2hhciBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NwbGF0cyh1bnNpZ25lZCBjaGFyIF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NwbGF0cyhzaWduZWQgc2hvcnQgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NwbGF0cyh1bnNpZ25lZCBzaG9ydCBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NwbGF0cyhzaWduZWQgaW50IF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NwbGF0cyh1bnNpZ25lZCBpbnQgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3BsYXRzKHNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fc2NhbGFyOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NwbGF0cyhmbG9hdCBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19zY2FsYXI7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NwbGF0cyhkb3VibGUgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX3NjYWxhcjsKfQoKLyotLSB2ZWNfZXh0ZW5kX3M2NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZXh0ZW5kX3M2NChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYVs3XSwgX19hWzE1XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2V4dGVuZF9zNjQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoX19hWzNdLCBfX2FbN10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19leHRlbmRfczY0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2FbMV0sIF9fYVszXSk7Cn0KCi8qLS0gdmVjX21lcmdlaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tZXJnZWgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSgKICAgIF9fYVswXSwgX19iWzBdLCBfX2FbMV0sIF9fYlsxXSwgX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdLAogICAgX19hWzRdLCBfX2JbNF0sIF9fYVs1XSwgX19iWzVdLCBfX2FbNl0sIF9fYls2XSwgX19hWzddLCBfX2JbN10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfbWVyZ2VoKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoCiAgICBfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0sIF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSwKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWVyZ2VoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoCiAgICBfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0sIF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSwKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tZXJnZWgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KSgKICAgIF9fYVswXSwgX19iWzBdLCBfX2FbMV0sIF9fYlsxXSwgX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19tZXJnZWgoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KSgKICAgIF9fYVswXSwgX19iWzBdLCBfX2FbMV0sIF9fYlsxXSwgX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21lcmdlaChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKAogICAgX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdLCBfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tZXJnZWgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KShfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19tZXJnZWgoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21lcmdlaChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYVswXSwgX19iWzBdLCBfX2FbMV0sIF9fYlsxXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21lcmdlaChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYVswXSwgX19iWzBdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfbWVyZ2VoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hWzBdLCBfX2JbMF0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX21lcmdlaChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYVswXSwgX19iWzBdKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19tZXJnZWgoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KShfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0pOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19tZXJnZWgoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKShfX2FbMF0sIF9fYlswXSk7Cn0KCi8qLS0gdmVjX21lcmdlbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tZXJnZWwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSgKICAgIF9fYVs4XSwgX19iWzhdLCBfX2FbOV0sIF9fYls5XSwgX19hWzEwXSwgX19iWzEwXSwgX19hWzExXSwgX19iWzExXSwKICAgIF9fYVsxMl0sIF9fYlsxMl0sIF9fYVsxM10sIF9fYlsxM10sIF9fYVsxNF0sIF9fYlsxNF0sIF9fYVsxNV0sIF9fYlsxNV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfbWVyZ2VsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoCiAgICBfX2FbOF0sIF9fYls4XSwgX19hWzldLCBfX2JbOV0sIF9fYVsxMF0sIF9fYlsxMF0sIF9fYVsxMV0sIF9fYlsxMV0sCiAgICBfX2FbMTJdLCBfX2JbMTJdLCBfX2FbMTNdLCBfX2JbMTNdLCBfX2FbMTRdLCBfX2JbMTRdLCBfX2FbMTVdLCBfX2JbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWVyZ2VsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoCiAgICBfX2FbOF0sIF9fYls4XSwgX19hWzldLCBfX2JbOV0sIF9fYVsxMF0sIF9fYlsxMF0sIF9fYVsxMV0sIF9fYlsxMV0sCiAgICBfX2FbMTJdLCBfX2JbMTJdLCBfX2FbMTNdLCBfX2JbMTNdLCBfX2FbMTRdLCBfX2JbMTRdLCBfX2FbMTVdLCBfX2JbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tZXJnZWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KSgKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19tZXJnZWwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KSgKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21lcmdlbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKAogICAgX19hWzRdLCBfX2JbNF0sIF9fYVs1XSwgX19iWzVdLCBfX2FbNl0sIF9fYls2XSwgX19hWzddLCBfX2JbN10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tZXJnZWwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KShfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19tZXJnZWwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21lcmdlbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21lcmdlbChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYVsxXSwgX19iWzFdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfbWVyZ2VsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hWzFdLCBfX2JbMV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX21lcmdlbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYVsxXSwgX19iWzFdKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19tZXJnZWwoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KShfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10pOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19tZXJnZWwoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKShfX2FbMV0sIF9fYlsxXSk7Cn0KCi8qLS0gdmVjX3BhY2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19wYWNrKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2FjID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYTsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSgKICAgIF9fYWNbMV0sIF9fYWNbM10sIF9fYWNbNV0sIF9fYWNbN10sIF9fYWNbOV0sIF9fYWNbMTFdLCBfX2FjWzEzXSwgX19hY1sxNV0sCiAgICBfX2JjWzFdLCBfX2JjWzNdLCBfX2JjWzVdLCBfX2JjWzddLCBfX2JjWzldLCBfX2JjWzExXSwgX19iY1sxM10sIF9fYmNbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3BhY2soX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYWMgPSAoX192ZWN0b3IgX19ib29sIGNoYXIpX19hOwogIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYmMgPSAoX192ZWN0b3IgX19ib29sIGNoYXIpX19iOwogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKAogICAgX19hY1sxXSwgX19hY1szXSwgX19hY1s1XSwgX19hY1s3XSwgX19hY1s5XSwgX19hY1sxMV0sIF9fYWNbMTNdLCBfX2FjWzE1XSwKICAgIF9fYmNbMV0sIF9fYmNbM10sIF9fYmNbNV0sIF9fYmNbN10sIF9fYmNbOV0sIF9fYmNbMTFdLCBfX2JjWzEzXSwgX19iY1sxNV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wYWNrKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hOwogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKAogICAgX19hY1sxXSwgX19hY1szXSwgX19hY1s1XSwgX19hY1s3XSwgX19hY1s5XSwgX19hY1sxMV0sIF9fYWNbMTNdLCBfX2FjWzE1XSwKICAgIF9fYmNbMV0sIF9fYmNbM10sIF9fYmNbNV0sIF9fYmNbN10sIF9fYmNbOV0sIF9fYmNbMTFdLCBfX2JjWzEzXSwgX19iY1sxNV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3BhY2soX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYTsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iOwogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KSgKICAgIF9fYWNbMV0sIF9fYWNbM10sIF9fYWNbNV0sIF9fYWNbN10sCiAgICBfX2JjWzFdLCBfX2JjWzNdLCBfX2JjWzVdLCBfX2JjWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19wYWNrKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2FjID0gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2E7CiAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYmMgPSAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoCiAgICBfX2FjWzFdLCBfX2FjWzNdLCBfX2FjWzVdLCBfX2FjWzddLAogICAgX19iY1sxXSwgX19iY1szXSwgX19iY1s1XSwgX19iY1s3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wYWNrKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYTsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSgKICAgIF9fYWNbMV0sIF9fYWNbM10sIF9fYWNbNV0sIF9fYWNbN10sCiAgICBfX2JjWzFdLCBfX2JjWzNdLCBfX2JjWzVdLCBfX2JjWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcGFjayhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIGludClfX2E7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iOwogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkoX19hY1sxXSwgX19hY1szXSwgX19iY1sxXSwgX19iY1szXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3BhY2soX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgX192ZWN0b3IgX19ib29sIGludCBfX2FjID0gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19hOwogIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iYyA9IChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYWNbMV0sIF9fYWNbM10sIF9fYmNbMV0sIF9fYmNbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BhY2soX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2E7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkoX19hY1sxXSwgX19hY1szXSwgX19iY1sxXSwgX19iY1szXSk7Cn0KCi8qLS0gdmVjX3BhY2tzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19wYWNrcyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa3NoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFja3MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19wYWNrcyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrc2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcGFja3MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19wYWNrcyhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrc2coX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BhY2tzKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNnKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfcGFja3NfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3BhY2tzX2NjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtzaHMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wYWNrc19jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2hzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19wYWNrc19jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtzZnMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcGFja3NfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZnMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19wYWNrc19jYyhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrc2dzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19wYWNrc19jYyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZ3MoX19hLCBfX2IsIF9fY2MpOwp9CgovKi0tIHZlY19wYWNrc3UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wYWNrc3UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3plcm8gPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KTA7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzaCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkoX19hID49IF9femVybykgJiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KShfX2IgPj0gX196ZXJvKSAmIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wYWNrc3UoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BhY2tzdShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgaW50IF9femVybyA9IChfX3ZlY3RvciBzaWduZWQgaW50KTA7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYSA+PSBfX3plcm8pICYgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KShfX2IgPj0gX196ZXJvKSAmIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BhY2tzdShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcGFja3N1KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpMDsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNnKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoX19hID49IF9femVybykgJgogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IgPj0gX196ZXJvKSAmCiAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcGFja3N1KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNnKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfcGFja3N1X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFja3N1X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2hzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BhY2tzdV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNmcyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcGFja3N1X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZ3MoX19hLCBfX2IsIF9fY2MpOwp9CgovKi0tIHZlY191bnBhY2toIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3VucGFja2goX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGhiKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfdW5wYWNraChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EpIHsKICByZXR1cm4gKChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92dXBoYigoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY191bnBhY2toKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGxoYihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY191bnBhY2toKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwaGgoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfdW5wYWNraChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3Z1cGhoKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY191bnBhY2toKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsaGgoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfdW5wYWNraChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBoZihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY191bnBhY2toKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Z1cGhmKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3VucGFja2goX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsaGYoX19hKTsKfQoKLyotLSB2ZWNfdW5wYWNrbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY191bnBhY2tsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsYihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3VucGFja2woX192ZWN0b3IgX19ib29sIGNoYXIgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgICAgICAgX19idWlsdGluX3MzOTBfdnVwbGIoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfdW5wYWNrbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsbGIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfdW5wYWNrbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGxodyhfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY191bnBhY2tsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EpIHsKICByZXR1cm4gKChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgICAgICAgX19idWlsdGluX3MzOTBfdnVwbGh3KChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfdW5wYWNrbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGxoKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3VucGFja2woX192ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGYoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfdW5wYWNrbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92dXBsZigoX192ZWN0b3Igc2lnbmVkIGludClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY191bnBhY2tsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGxmKF9fYSk7Cn0KCi8qLS0gdmVjX2NtcGVxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBlcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZXEoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGVxKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGVxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wZXEoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBlcShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZXEoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZXEoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZXEoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGVxKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGVxKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGVxKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA9PSBfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZXEoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA9PSBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wZXEoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID09IF9fYik7Cn0KCi8qLS0gdmVjX2NtcGdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBnZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA+PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZ2UoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wZ2UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPj0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBnZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPj0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZ2UoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPj0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZ2UoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGdlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGdlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+PSBfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZ2UoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA+PSBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wZ2UoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID49IF9fYik7Cn0KCi8qLS0gdmVjX2NtcGd0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBndChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA+IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBndChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGd0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBndChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBndChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA+IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGd0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA+IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGd0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wZ3QoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID4gX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGd0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPiBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wZ3QoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hID4gX19iKTsKfQoKLyotLSB2ZWNfY21wbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGxlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hIDw9IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBsZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBsZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKF9fYSA8PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGxlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKF9fYSA8PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBsZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA8PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBsZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbGUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbGUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDw9IF9fYik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBsZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hIDw9IF9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBsZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPD0gX19iKTsKfQoKLyotLSB2ZWNfY21wbHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGx0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hIDwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGx0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wbHQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGx0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKF9fYSA8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGx0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hIDwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbHQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hIDwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbHQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBsdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPCBfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbHQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA8IF9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBsdChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPCBfX2IpOwp9CgovKi0tIHZlY19hbGxfZXEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2VzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2VkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovKi0tIHZlY19hbGxfbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2VzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2VkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovKi0tIHZlY19hbGxfZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2IsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2IsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19iLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX2d0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2EsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovKi0tIHZlY19hbGxfbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19hLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVzYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlZGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX2x0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19iLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hzYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hkYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovKi0tIHZlY19hbGxfbmdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmdlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmdlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8qLS0gdmVjX2FsbF9uZ3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZ3QoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25ndChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8qLS0gdmVjX2FsbF9ubGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ubGUoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZXNicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ubGUoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlZGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLyotLSB2ZWNfYWxsX25sdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25sdChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hzYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmx0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLyotLSB2ZWNfYWxsX25hbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25hbihfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZnRjaXNiKF9fYSwgMTUsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmFuKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZnRjaWRiKF9fYSwgMTUsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovKi0tIHZlY19hbGxfbnVtZXJpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbnVtZXJpYyhfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZnRjaXNiKF9fYSwgMTUsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbnVtZXJpYyhfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lkYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLyotLSB2ZWNfYW55X2VxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLyotLSB2ZWNfYW55X25lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLyotLSB2ZWNfYW55X2dlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19iLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8qLS0gdmVjX2FueV9ndCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLyotLSB2ZWNfYW55X2xlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2EsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8qLS0gdmVjX2FueV9sdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2IsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLyotLSB2ZWNfYW55X25nZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25nZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25nZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovKi0tIHZlY19hbnlfbmd0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmd0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaHNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZ3QoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovKi0tIHZlY19hbnlfbmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmxlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVzYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmxlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8qLS0gdmVjX2FueV9ubHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ubHQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25sdChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8qLS0gdmVjX2FueV9uYW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uYW4oX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lzYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25hbihfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lkYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMzsKfQoKLyotLSB2ZWNfYW55X251bWVyaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X251bWVyaWMoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lzYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X251bWVyaWMoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmdGNpZGIoX19hLCAxNSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8qLS0gdmVjX2FuZGMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2FuZGMoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2FuZGMoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2FuZGMoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfYW5kYyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19hbmRjKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCkoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EgJgogICAgICAgICAgICAgICAgICAgICAgICAgfihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfYW5kYyhfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgIH4oX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKSgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICB+KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2FuZGMoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJgogICAgICAgICAgICAgICAgICAgICAgICAgfihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKLyotLSB2ZWNfbm9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19ub3IoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19ub3IoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19ub3IoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19ub3IoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19ub3IoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19ub3IoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19ub3IoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbm9yKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19ub3IoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbm9yKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19ub3IoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KX4oKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19ub3IoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKX4oKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19ub3IoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSl+KChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbm9yKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpfigoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgovKi0tIHZlY19vcmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX29yYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfb3JjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX29yYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19vcmMoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX29yYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19vcmMoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfb3JjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19vcmMoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfb3JjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfb3JjKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19vcmMoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfb3JjKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX29yYyhfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgfihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19vcmMoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKSgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSB8CiAgICAgICAgICAgICAgICAgICAgICAgICB+KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKLyotLSB2ZWNfbmFuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19uYW5kKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX25hbmQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19uYW5kKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfbmFuZChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19uYW5kKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbmFuZChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX25hbmQoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbmFuZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX25hbmQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX25hbmQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbmFuZChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX25hbmQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19uYW5kKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCl+KChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19uYW5kKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSl+KChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgovKi0tIHZlY19lcXYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2VxdihfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19lcXYoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19lcXYoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19lcXYoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZXF2KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZXF2KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZXF2KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2VxdihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2VxdihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfZXF2KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2VxdihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2VxdihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2VxdihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpfigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSBeCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfZXF2KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSl+KChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4KICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgovKi0tIHZlY19jbnRseiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbnRseihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY250bHooX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NudGx6KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbnRseihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemgoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbnRseihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y2x6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY250bHooX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y2x6ZihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2NudGx6KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpnKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19jbnRseihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpnKF9fYSk7Cn0KCi8qLS0gdmVjX2NudHR6IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NudHR6KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbnR0eihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6YihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY250dHooX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NudHR6KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6aChfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NudHR6KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjdHpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbnR0eihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjdHpmKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfY250dHooX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emcoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2NudHR6KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emcoX19hKTsKfQoKLyotLSB2ZWNfcG9wY250IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcG9wY250KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3BvcGNudChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RiKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wb3BjbnQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcG9wY250KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RoKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcG9wY250KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwb3BjdGYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BvcGNudChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwb3BjdGYoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19wb3BjbnQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0ZygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcG9wY250KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0ZyhfX2EpOwp9CgovKi0tIHZlY19ybCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfcmwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdmVybGx2YigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcmwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZlcmxsdmIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3JsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZlcmxsdmgoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmVybGx2aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3JsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZlcmxsdmYoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19ybChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZlcmxsdmYoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19ybChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92ZXJsbHZnKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbHZnKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfcmxpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3JsaShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92ZXJsbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcmxpKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbGIoX19hLCAoaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcmxpKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHVuc2lnbmVkIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdmVybGxoKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgKGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmxpKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmVybGxoKF9fYSwgKGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19ybGkoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZlcmxsZigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAoaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcmxpKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZlcmxsZihfX2EsIChpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmxpKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92ZXJsbGcoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgKGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3JsaShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbGcoX19hLCAoaW50KV9fYik7Cn0KCi8qLS0gdmVjX3JsX21hc2sgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3JsX21hc2soX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIF9fY29uc3RhbnQoX19jKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcmxfbWFzayhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcmxfbWFzayhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19ybF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgX19jb25zdGFudChfX2MpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19ybF9tYXNrKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgX19jb25zdGFudChfX2MpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3JsX21hc2soX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIF9fY29uc3RhbnQoX19jKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmxfbWFzayhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIF9fY29uc3RhbnQoX19jKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19ybF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgojZGVmaW5lIHZlY19ybF9tYXNrKFgsIFksIFopICgoX190eXBlb2ZfXygodmVjX3JsX21hc2spKChYKSwgKFkpLCAoWikpKSkgXAogIF9fZXh0ZW5zaW9uX18gKHsgXAogICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3JlczsgXAogICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ggPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWCk7IFwKICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX195ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFkpOyBcCiAgICBzd2l0Y2ggKHNpemVvZiAoKFgpWzBdKSkgeyBcCiAgICBjYXNlIDE6IF9fcmVzID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIF9fYnVpbHRpbl9zMzkwX3ZlcmltYiggXAogICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX194LCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3gsIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9feSwgKFopKTsgYnJlYWs7IFwKICAgIGNhc2UgMjogX19yZXMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19idWlsdGluX3MzOTBfdmVyaW1oKCBcCiAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX194LCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX194LCBcCiAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX195LCAoWikpOyBicmVhazsgXAogICAgY2FzZSA0OiBfX3JlcyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBfX2J1aWx0aW5fczM5MF92ZXJpbWYoIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX194LCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9feCwgXAogICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3ksIChaKSk7IGJyZWFrOyBcCiAgICBkZWZhdWx0OiBfX3JlcyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBfX2J1aWx0aW5fczM5MF92ZXJpbWcoIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX194LCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9feCwgXAogICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3ksIChaKSk7IGJyZWFrOyBcCiAgICB9IF9fcmVzOyB9KSkKCi8qLS0gdmVjX3NsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zbGwoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zbGwoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNsKF9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNsKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzbChfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zbGwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zbGwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zbGwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2woCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX3NsYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2xiKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNsYihfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNsYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xiKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zbGIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NsYihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NsYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc2xiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovKi0tIHZlY19zbGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NsZChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zbGQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xkKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zbGQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xkKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NsZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIGludAp2ZWNfc2xkKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsZChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NsZChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc2xkKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsZChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCiNpZiBfX0FSQ0hfXyA+PSAxMgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGZsb2F0CnZlY19zbGQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKI2VuZGlmCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc2xkKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCiNkZWZpbmUgdmVjX3NsZChYLCBZLCBaKSAoKF9fdHlwZW9mX18oKHZlY19zbGQpKChYKSwgKFkpLCAoWikpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZzbGRiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShZKSwgKFopKSkKCi8qLS0gdmVjX3NsZHcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NsZHcoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zbGR3KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xkdyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsZHcoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGR3KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2xkdyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xkdyhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsZHcoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc2xkdyhfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCiNkZWZpbmUgdmVjX3NsZHcoWCwgWSwgWikgKChfX3R5cGVvZl9fKCh2ZWNfc2xkdykoKFgpLCAoWSksIChaKSkpKSBcCiAgX19idWlsdGluX3MzOTBfdnNsZGIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFkpLCAoWikgKiA0KSkKCi8qLS0gdmVjX3NsZGIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xkYihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsZGIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zbGRiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xkYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NsZGIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zbGRiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGRiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xkYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgZmxvYXQKdmVjX3NsZGIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX3NsZGIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgojZGVmaW5lIHZlY19zbGRiKFgsIFksIFopICgoX190eXBlb2ZfXygodmVjX3NsZGIpKChYKSwgKFkpLCAoWikpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZzbGQoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWSksIChaKSkpCgojZW5kaWYKCi8qLS0gdmVjX3NyYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmEoX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNyYShfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNyYShfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmEoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX3NyYWIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NyYWIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JhYihfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmFiKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JhYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JhYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyYWIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmFiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JhYihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JhYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NyYWIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcmFiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NyYWIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zcmFiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyotLSB2ZWNfc3JsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JsKF9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNybChfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JsKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zcmwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcmwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcmwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyotLSB2ZWNfc3JiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NyYihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmxiKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JsYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NyYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyYihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyYihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcmIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcmIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc3JiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc3JiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyotLSB2ZWNfc3JkYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEzCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmRiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3JkYihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NyZGIoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmRiKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JkYihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NyZGIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NyZGIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmRiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBmbG9hdAp2ZWNfc3JkYihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc3JkYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCiNkZWZpbmUgdmVjX3NyZGIoWCwgWSwgWikgKChfX3R5cGVvZl9fKCh2ZWNfc3JkYikoKFgpLCAoWSksIChaKSkpKSBcCiAgX19idWlsdGluX3MzOTBfdnNyZCgoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWCksIFwKICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShZKSwgKFopKSkKCiNlbmRpZgoKLyotLSB2ZWNfYWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2FicyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIC1fX2EsIHZlY19jbXBsdChfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcikwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfYWJzKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIC1fX2EsIHZlY19jbXBsdChfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19hYnMoX192ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIC1fX2EsIHZlY19jbXBsdChfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KTApKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfYWJzKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCAtX19hLCB2ZWNfY21wbHQoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykwKSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfYWJzKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zmxwc2IoX19hKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfYWJzKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZscGRiKF9fYSk7Cn0KCi8qLS0gdmVjX25hYnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbmFicyhfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZsbnNiKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX25hYnMoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmxuZGIoX19hKTsKfQoKLyotLSB2ZWNfbWF4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21heChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21heChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYmMgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2FjLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19tYXgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19iYywgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hYywgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hYywgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tYXgoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hYywgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19iYywgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2FjLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbWF4KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWF4c2IoX19hLCBfX2IsIDApOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19tYXgoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewojaWYgX19BUkNIX18gPj0gMTIKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtYXhkYihfX2EsIF9fYiwgMCk7CiNlbHNlCiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYikpOwojZW5kaWYKfQoKLyotLSB2ZWNfbWluIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21pbihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21pbihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYmMgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19hYywgX19iLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYiwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19taW4oX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19taW4oX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19taW4oX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2JjLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYWMsIF9fYiwgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2IsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYWMsIF9fYiwgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19taW4oX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2IsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19taW4oX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19taW4oX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYWMsIF9fYiwgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2IsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2JjLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19hYywgX19iLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbWluKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWluc2IoX19hLCBfX2IsIDApOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19taW4oX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewojaWYgX19BUkNIX18gPj0gMTIKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtaW5kYihfX2EsIF9fYiwgMCk7CiNlbHNlCiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2IsIHZlY19jbXBndChfX2EsIF9fYikpOwojZW5kaWYKfQoKLyotLSB2ZWNfYWRkX3UxMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2FkZF91MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXEoX19hLCBfX2IpOwp9CgovKi0tIHZlY19hZGRjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hZGRjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YWNjYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19hZGRjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhY2NoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19hZGRjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFjY2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2FkZGMoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YWNjZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2FkZGNfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hZGRjX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhY2NxKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfYWRkZV91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2FkZGVfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFjcShfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfYWRkZWNfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2FkZGVjX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YWNjY3EoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX2F2ZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19hdmcoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmF2Z2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2F2ZyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfYXZnKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXZnZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2F2ZyhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmF2Z2coX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hdmcoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdsYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19hdmcoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmF2Z2xoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19hdmcoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXZnbGYoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2F2ZyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdsZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2NoZWNrc3VtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NoZWNrc3VtKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNrc20oX19hLCBfX2IpOwp9CgovKi0tIHZlY19nZm1zdW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZ2Ztc3VtKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZ2Ztc3VtKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZnZm1oKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19nZm1zdW0oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2dmbXN1bV8xMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2dmbXN1bV8xMjgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2dmbXN1bV9hY2N1bSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19nZm1zdW1fYWNjdW0oX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtYWIoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZ2Ztc3VtX2FjY3VtKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWFoKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2dmbXN1bV9hY2N1bShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWFmKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19nZm1zdW1fYWNjdW1fMTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19nZm1zdW1fYWNjdW1fMTI4KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZnZm1hZyhfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfbWxhZGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21sYWRkKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21sYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21sYWRkKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2EgKiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iICsgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWxhZGQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21sYWRkKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tbGFkZChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21sYWRkKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiArIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWxhZGQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX21sYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19hICogKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iICsgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21sYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKLyotLSB2ZWNfbWhhZGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21oYWRkKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWhiKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19taGFkZChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsaGIoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWhhZGQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1haGgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19taGFkZChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsaGgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX21oYWRkKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWhmKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21oYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWxoZihfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfbWVhZGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tZWFkZChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hZWIoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tZWFkZChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbGViKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tZWFkZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hZWgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbWVhZGQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWxlaChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWVhZGQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hZWYoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWVhZGQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbGVmKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19tb2FkZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21vYWRkKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFvYihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21vYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsb2IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX21vYWRkKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFvaChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tb2FkZChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbG9oKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19tb2FkZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFvZihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tb2FkZChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsb2YoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX211bGggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tdWxoKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtaGIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19tdWxoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxoYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbXVsaChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtaGgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbXVsaChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxoaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX211bGgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtaGYoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX211bGgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxoZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX211bGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbXVsZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWViKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX211bGUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtbGViKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbXVsZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX211bGUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1sZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19tdWxlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWVmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tdWxlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1sZWYoX19hLCBfX2IpOwp9CgovKi0tIHZlY19tdWxvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX211bG8oX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1vYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tdWxvKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxvYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX211bG8oX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bW9oKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tdWxvKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtbG9oKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbXVsbyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1vZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbXVsbyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtbG9mKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfbXN1bV91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCiNkZWZpbmUgdmVjX21zdW1fdTEyOChYLCBZLCBaLCBXKSBcCiAgKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3Ztc2xnKChYKSwgKFkpLCAoWiksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX3N1Yl91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zdWJfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNxKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfc3ViYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3ViYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNjYmliKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3N1YmMoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNjYmloKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zdWJjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNjYmlmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zdWJjKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNjYmlnKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfc3ViY191MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3N1YmNfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNjYmlxKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfc3ViZV91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3N1YmVfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNiaXEoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX3N1YmVjX3UxMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zdWJlY191MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNiY2JpcShfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfc3VtMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zdW0yKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdW1naChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3VtMihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdW1nZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3N1bV91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3N1bV91MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN1bXFmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3VtX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3VtcWcoX19hLCBfX2IpOwp9CgovKi0tIHZlY19zdW00IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3N1bTQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdW1iKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zdW00KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdW1oKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfdGVzdF9tYXNrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bShfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnRtKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bSgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX3Rlc3RfbWFzayhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bSgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX3Rlc3RfbWFzayhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bSgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bSgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyotLSB2ZWNfbWFkZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19tYWRkKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBfX3ZlY3RvciBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtYXNiKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19tYWRkKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIF9fdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtYWRiKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19tc3ViIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX21zdWIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IsIF9fdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm1zc2IoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX21zdWIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgX192ZWN0b3IgZG91YmxlIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm1zZGIoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX25tYWRkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX25tYWRkKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBfX3ZlY3RvciBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZubWFzYihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19ubWFkZChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBfX3ZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zmbm1hZGIoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKi0tIHZlY19ubXN1YiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19ubXN1YihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgX192ZWN0b3IgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zmbm1zc2IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbm1zdWIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgX192ZWN0b3IgZG91YmxlIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm5tc2RiKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyotLSB2ZWNfc3FydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcXJ0KF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZnNxc2IoX19hKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc3FydChfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zmc3FkYihfX2EpOwp9CgovKi0tIHZlY19sZDJmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgZG91YmxlCnZlY19sZDJmKGNvbnN0IGZsb2F0ICpfX3B0cikgewogIHR5cGVkZWYgZmxvYXQgX192MmYzMiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKihjb25zdCBfX3YyZjMyICopX19wdHIsIF9fdmVjdG9yIGRvdWJsZSk7Cn0KCi8qLS0gdmVjX3N0MmYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSB2b2lkCnZlY19zdDJmKF9fdmVjdG9yIGRvdWJsZSBfX2EsIGZsb2F0ICpfX3B0cikgewogIHR5cGVkZWYgZmxvYXQgX192MmYzMiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKICAqKF9fdjJmMzIgKilfX3B0ciA9IF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192MmYzMik7Cn0KCi8qLS0gdmVjX2N0ZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfY3RkKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBpbnQgX19iKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCAzMSkgewogIF9fdmVjdG9yIGRvdWJsZSBfX2NvbnYgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGRvdWJsZSk7CiAgX19jb252ICo9ICgoX192ZWN0b3IgZG91YmxlKShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpCiAgICAgICAgICAgICAoKDB4M2ZmVUxMIC0gX19iKSA8PCA1MikpOwogIHJldHVybiBfX2NvbnY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfY3RkKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIGludCBfX2IpCiAgX19jb25zdGFudF9yYW5nZShfX2IsIDAsIDMxKSB7CiAgX192ZWN0b3IgZG91YmxlIF9fY29udiA9IF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3IgZG91YmxlKTsKICBfX2NvbnYgKj0gKChfX3ZlY3RvciBkb3VibGUpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKICAgICAgICAgICAgICgoMHgzZmZVTEwgLSBfX2IpIDw8IDUyKSk7CiAgcmV0dXJuIF9fY29udjsKfQoKLyotLSB2ZWNfY3RzbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfY3RzbChfX3ZlY3RvciBkb3VibGUgX19hLCBpbnQgX19iKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCAzMSkgewogIF9fYSAqPSAoKF9fdmVjdG9yIGRvdWJsZSkoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQogICAgICAgICAgKCgweDNmZlVMTCArIF9fYikgPDwgNTIpKTsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsKfQoKLyotLSB2ZWNfY3R1bCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19jdHVsKF9fdmVjdG9yIGRvdWJsZSBfX2EsIGludCBfX2IpCiAgX19jb25zdGFudF9yYW5nZShfX2IsIDAsIDMxKSB7CiAgX19hICo9ICgoX192ZWN0b3IgZG91YmxlKShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpCiAgICAgICAgICAoKDB4M2ZmVUxMICsgX19iKSA8PCA1MikpOwogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyk7Cn0KCi8qLS0gdmVjX2RvdWJsZWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgZG91YmxlCnZlY19kb3VibGVlKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHR5cGVkZWYgZmxvYXQgX192MmYzMiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKICBfX3YyZjMyIF9fcGFjayA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAyKTsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19wYWNrLCBfX3ZlY3RvciBkb3VibGUpOwp9CiNlbmRpZgoKLyotLSB2ZWNfZmxvYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfZmxvYXRlKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICB0eXBlZGVmIGZsb2F0IF9fdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgX192MmYzMiBfX3BhY2sgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdjJmMzIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3BhY2ssIF9fcGFjaywgMCwgLTEsIDEsIC0xKTsKfQojZW5kaWYKCi8qLS0gdmVjX2RvdWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfZG91YmxlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3IgZG91YmxlKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19kb3VibGUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGRvdWJsZSk7Cn0KCi8qLS0gdmVjX2Zsb2F0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2Zsb2F0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3IgZmxvYXQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfZmxvYXQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGZsb2F0KTsKfQoKI2VuZGlmCgovKi0tIHZlY19zaWduZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zaWduZWQoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpOwp9CgojaWYgX19BUkNIX18gPj0gMTMKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2lnbmVkKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQpOwp9CiNlbmRpZgoKLyotLSB2ZWNfdW5zaWduZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY191bnNpZ25lZChfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTsKfQoKI2lmIF9fQVJDSF9fID49IDEzCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfdW5zaWduZWQoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50KTsKfQojZW5kaWYKCi8qLS0gdmVjX3JvdW5kcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcm91bmRwKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDYpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19yb3VuZHAoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDQsIDYpOwp9CgovKi0tIHZlY19jZWlsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2NlaWwoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgLy8gT24gdGhpcyBwbGF0Zm9ybSwgdmVjX2NlaWwgbmV2ZXIgdHJpZ2dlcnMgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgNik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2NlaWwoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIC8vIE9uIHRoaXMgcGxhdGZvcm0sIHZlY19jZWlsIG5ldmVyIHRyaWdnZXJzIHRoZSBJRUVFLWluZXhhY3QgZXhjZXB0aW9uLgogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDQsIDYpOwp9CgovKi0tIHZlY19yb3VuZG0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JvdW5kbShfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpc2IoX19hLCA0LCA3KTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcm91bmRtKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA3KTsKfQoKLyotLSB2ZWNfZmxvb3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19mbG9vcihfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICAvLyBPbiB0aGlzIHBsYXRmb3JtLCB2ZWNfZmxvb3IgbmV2ZXIgdHJpZ2dlcnMgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgNyk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2Zsb29yKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICAvLyBPbiB0aGlzIHBsYXRmb3JtLCB2ZWNfZmxvb3IgbmV2ZXIgdHJpZ2dlcnMgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgNCwgNyk7Cn0KCi8qLS0gdmVjX3JvdW5keiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcm91bmR6KF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDUpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19yb3VuZHooX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDQsIDUpOwp9CgovKi0tIHZlY190cnVuYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3RydW5jKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIC8vIE9uIHRoaXMgcGxhdGZvcm0sIHZlY190cnVuYyBuZXZlciB0cmlnZ2VycyB0aGUgSUVFRS1pbmV4YWN0IGV4Y2VwdGlvbi4KICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpc2IoX19hLCA0LCA1KTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfdHJ1bmMoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIC8vIE9uIHRoaXMgcGxhdGZvcm0sIHZlY190cnVuYyBuZXZlciB0cmlnZ2VycyB0aGUgSUVFRS1pbmV4YWN0IGV4Y2VwdGlvbi4KICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA1KTsKfQoKLyotLSB2ZWNfcm91bmRjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19yb3VuZGMoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgMCk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JvdW5kYyhfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgNCwgMCk7Cn0KCi8qLS0gdmVjX3JpbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcmludChfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICAvLyB2ZWNfcmludCBtYXkgdHJpZ2dlciB0aGUgSUVFRS1pbmV4YWN0IGV4Y2VwdGlvbi4KICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpc2IoX19hLCAwLCAwKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcmludChfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgLy8gdmVjX3JpbnQgbWF5IHRyaWdnZXIgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgMCwgMCk7Cn0KCi8qLS0gdmVjX3JvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcm91bmQoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgNCk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JvdW5kKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA0KTsKfQoKLyotLSB2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIGludAp2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzKF9fdmVjdG9yIGZsb2F0IF9fYSwgaW50IF9fYiwgaW50ICpfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2IsIDAsIDQwOTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19mcF90ZXN0X2RhdGFfY2xhc3MoX192ZWN0b3IgZG91YmxlIF9fYSwgaW50IF9fYiwgaW50ICpfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2IsIDAsIDQwOTUpOwoKI2RlZmluZSB2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzKFgsIFksIFopIFwKICAoKF9fdHlwZW9mX18oKHZlY19mcF90ZXN0X2RhdGFfY2xhc3MpKChYKSwgKFkpLCAoWikpKSkgXAogICBfX2V4dGVuc2lvbl9fICh7IFwKICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fcmVzOyBcCiAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ggPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWCk7IFwKICAgICBpbnQgKl9feiA9IChaKTsgXAogICAgIHN3aXRjaCAoc2l6ZW9mICgoWClbMF0pKSB7IFwKICAgICBjYXNlIDQ6ICBfX3JlcyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBcCiAgICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5fczM5MF92ZnRjaXNiKChfX3ZlY3RvciBmbG9hdClfX3gsIChZKSwgX196KTsgXAogICAgICAgICAgICAgIGJyZWFrOyBcCiAgICAgZGVmYXVsdDogX19yZXMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgXAogICAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX3MzOTBfdmZ0Y2lkYigoX192ZWN0b3IgZG91YmxlKV9feCwgKFkpLCBfX3opOyBcCiAgICAgICAgICAgICAgYnJlYWs7IFwKICAgICB9IF9fcmVzOyB9KSkKI2Vsc2UKI2RlZmluZSB2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzKFgsIFksIFopIFwKICAoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdmZ0Y2lkYigoWCksIChZKSwgKFopKSkKI2VuZGlmCgojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1pFUk9fUCAoMSA8PCAxMSkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9aRVJPX04gKDEgPDwgMTApCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfWkVSTyAoX19WRUNfQ0xBU1NfRlBfWkVST19QIHwgX19WRUNfQ0xBU1NfRlBfWkVST19OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX05PUk1BTF9QICgxIDw8IDkpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTk9STUFMX04gKDEgPDwgOCkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9OT1JNQUwgKF9fVkVDX0NMQVNTX0ZQX05PUk1BTF9QIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfTk9STUFMX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMX1AgKDEgPDwgNykKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfTiAoMSA8PCA2KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTCAoX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMX1AgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfTikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QICgxIDw8IDUpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfTiAoMSA8PCA0KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZIChfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1FOQU5fUCAoMSA8PCAzKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1FOQU5fTiAoMSA8PCAyKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1FOQU4gKF9fVkVDX0NMQVNTX0ZQX1FOQU5fUCB8IF9fVkVDX0NMQVNTX0ZQX1FOQU5fTikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TTkFOX1AgKDEgPDwgMSkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TTkFOX04gKDEgPDwgMCkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TTkFOIChfX1ZFQ19DTEFTU19GUF9TTkFOX1AgfCBfX1ZFQ19DTEFTU19GUF9TTkFOX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTkFOIChfX1ZFQ19DTEFTU19GUF9RTkFOIHwgX19WRUNfQ0xBU1NfRlBfU05BTikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9OT1RfTk9STUFMIChfX1ZFQ19DTEFTU19GUF9OQU4gfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX1pFUk8gfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFkpCgovKi0tIHZlY19leHRlbmRfdG9fZnAzMl9oaSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTQKI2RlZmluZSB2ZWNfZXh0ZW5kX3RvX2ZwMzJfaGkoWCwgVykgXAogICgoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdmNsZm5ocygoWCksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX2V4dGVuZF90b19mcDMyX2hpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxNAojZGVmaW5lIHZlY19leHRlbmRfdG9fZnAzMl9sbyhYLCBXKSBcCiAgKChfX3ZlY3RvciBmbG9hdClfX2J1aWx0aW5fczM5MF92Y2xmbmxzKChYKSwgKFcpKSk7CiNlbmRpZgoKLyotLSB2ZWNfcm91bmRfZnJvbV9mcDMyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDE0CiNkZWZpbmUgdmVjX3JvdW5kX2Zyb21fZnAzMihYLCBZLCBXKSBcCiAgKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92Y3JuZnMoKFgpLCAoWSksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX2NvbnZlcnRfdG9fZnAxNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxNAojZGVmaW5lIHZlY19jb252ZXJ0X3RvX2ZwMTYoWCwgVykgXAogICgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdmNmbigoWCksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX2NvbnZlcnRfZnJvbV9mcDE2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxNAojZGVmaW5lIHZlY19jb252ZXJ0X2Zyb21fZnAxNihYLCBXKSBcCiAgKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92Y25mKChYKSwgKFcpKSk7CiNlbmRpZgoKLyotLSB2ZWNfY3BfdW50aWxfemVybyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NwX3VudGlsX3plcm8oX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92aXN0cmIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgICAgICAgX19idWlsdGluX3MzOTBfdmlzdHJiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zpc3RyYihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NwX3VudGlsX3plcm8oX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY3BfdW50aWxfemVybyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgICAgICAgX19idWlsdGluX3MzOTBfdmlzdHJoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NwX3VudGlsX3plcm8oX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaChfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3Igc2lnbmVkIGludCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIGludCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NwX3VudGlsX3plcm8oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmYoX19hKTsKfQoKLyotLSB2ZWNfY3BfdW50aWxfemVyb19jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmlzdHJicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY3BfdW50aWxfemVyb19jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92aXN0cmJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmJzKF9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY3BfdW50aWxfemVyb19jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY3BfdW50aWxfemVyb19jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jcF91bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaHMoX19hLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY3BfdW50aWxfemVyb19jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmlzdHJmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zpc3RyZnMoX19hLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wZXFfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcGVxX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWViKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19jbXBlcV9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBlcV9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVmKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfY21wZXFfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wZXFfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVicyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWhzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wZXFfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlZnMoX19hLCBfX2IsIF9fY2MpOwp9CgovKi0tIHZlY19jbXBlcV9vcl8wX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZlZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWV6YihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlZXpoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBlcV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVlemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemYoX19hLCBfX2IpOwp9CgovKi0tIHZlY19jbXBlcV9vcl8wX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZlZXpicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWV6YnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemJzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVlemhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemhzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWV6ZnMoX19hLCBfX2IsIF9fY2MpOwp9CgovKi0tIHZlY19jbXBuZV9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5laCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBuZV9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlbmVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9pZHgoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWYoX19hLCBfX2IpOwp9CgovKi0tIHZlY19jbXBuZV9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfY21wbmVfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZlbmVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYnMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlbmVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5laHMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWZzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wbmVfb3JfMF9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6YihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlbmV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpmKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfY21wbmVfb3JfMF9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcG5lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5lX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemJzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6aHMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemZzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wcmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcHJnKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3RyY2IoX19hLCBfX2IsIF9fYywgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wcmcoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3RyY2goX19hLCBfX2IsIF9fYywgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcHJnKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzdHJjZihfX2EsIF9fYiwgX19jLCA0KTsKfQoKLyotLSB2ZWNfY21wcmdfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcHJnX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzdHJjYnMoX19hLCBfX2IsIF9fYywgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wcmdfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzdHJjaHMoX19hLCBfX2IsIF9fYywgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcHJnX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnN0cmNmcyhfX2EsIF9fYiwgX19jLCA0LCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wcmdfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wcmdfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2IoX19hLCBfX2IsIF9fYywgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXByZ19pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjaChfX2EsIF9fYiwgX19jLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXByZ19pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjZihfX2EsIF9fYiwgX19jLCAwKTsKfQoKLyotLSB2ZWNfY21wcmdfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wcmdfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjYnMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXByZ19pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNocyhfX2EsIF9fYiwgX19jLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXByZ19pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNmcyhfX2EsIF9fYiwgX19jLCAwLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wcmdfb3JfMF9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wcmdfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6YihfX2EsIF9fYiwgX19jLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcHJnX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemgoX19hLCBfX2IsIF9fYywgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wcmdfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6ZihfX2EsIF9fYiwgX19jLCAwKTsKfQoKLyotLSB2ZWNfY21wcmdfb3JfMF9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wcmdfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3picyhfX2EsIF9fYiwgX19jLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcHJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6aHMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wcmdfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3pmcyhfX2EsIF9fYiwgX19jLCAwLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wbnJnIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcG5yZyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzdHJjYihfX2EsIF9fYiwgX19jLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wbnJnKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzdHJjaChfX2EsIF9fYiwgX19jLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcG5yZyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnN0cmNmKF9fYSwgX19iLCBfX2MsIDEyKTsKfQoKLyotLSB2ZWNfY21wbnJnX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcG5yZ19jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92c3RyY2JzKF9fYSwgX19iLCBfX2MsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBucmdfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZzdHJjaHMoX19hLCBfX2IsIF9fYywgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBucmdfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92c3RyY2ZzKF9fYSwgX19iLCBfX2MsIDEyLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wbnJnX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbnJnX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjYihfX2EsIF9fYiwgX19jLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5yZ19pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2goX19hLCBfX2IsIF9fYywgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbnJnX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjZihfX2EsIF9fYiwgX19jLCA4KTsKfQoKLyotLSB2ZWNfY21wbnJnX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbnJnX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNicyhfX2EsIF9fYiwgX19jLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5yZ19pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjaHMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbnJnX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNmcyhfX2EsIF9fYiwgX19jLCA4LCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wbnJnX29yXzBfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbnJnX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3piKF9fYSwgX19iLCBfX2MsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbnJnX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3poKF9fYSwgX19iLCBfX2MsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5yZ19vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6ZihfX2EsIF9fYiwgX19jLCA4KTsKfQoKLyotLSB2ZWNfY21wbnJnX29yXzBfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbnJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6YnMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBucmdfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3pocyhfX2EsIF9fYiwgX19jLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBucmdfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3pmcyhfX2EsIF9fYiwgX19jLCA4LCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92ZmFlYihfX2EsIF9fYiwgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZmYWVoKF9fYSwgX19iLCA0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZmYWVmKF9fYSwgX19iLCA0KTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXFfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA0LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA0LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdmZhZWJzKF9fYSwgX19iLCA0LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA0LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA0LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZmYWVocyhfX2EsIF9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X2VxX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdmZhZWZzKF9fYSwgX19iLCA0LCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXFfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWViKF9fYSwgX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWgoX19hLCBfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKF9fYSwgX19iLCAwKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXFfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYnMoX19hLCBfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWhzKF9fYSwgX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWZzKF9fYSwgX19iLCAwLCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemIoX19hLCBfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpoKF9fYSwgX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmKF9fYSwgX19iLCAwKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpicyhfX2EsIF9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpocyhfX2EsIF9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemZzKF9fYSwgX19iLCAwLCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZmYWViKF9fYSwgX19iLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDEyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdmZhZWgoX19hLCBfX2IsIDEyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdmZhZWYoX19hLCBfX2IsIDEyKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmVfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92ZmFlYnMoX19hLCBfX2IsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdmZhZWhzKF9fYSwgX19iLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92ZmFlZnMoX19hLCBfX2IsIDEyLCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmVfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWViKF9fYSwgX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWgoX19hLCBfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKF9fYSwgX19iLCA4KTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmVfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVicyhfX2EsIF9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlaHMoX19hLCBfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZnMoX19hLCBfX2IsIDgsIF9fY2MpOwp9CgovKi0tIHZlY19maW5kX2FueV9uZV9vcl8wX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YihfX2EsIF9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemgoX19hLCBfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZXpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemYoX19hLCBfX2IsIDgpOwp9CgovKi0tIHZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZXpicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemJzKF9fYSwgX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemhzKF9fYSwgX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZnMoX19hLCBfX2IsIDgsIF9fY2MpOwp9CgovKi0tIHZlY19zZWFyY2hfc3RyaW5nX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTMKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ19jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2IoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2IoX19hLCBfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2goKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2goKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNoKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2YoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ19jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc2YoX19hLCBfX2IsIF9fYywgX19jYyk7Cn0KCiNlbmRpZgoKLyotLSB2ZWNfc2VhcmNoX3N0cmluZ191bnRpbF96ZXJvX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEzCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ191bnRpbF96ZXJvX2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3piKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemIoX19hLCBfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3poKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ191bnRpbF96ZXJvX2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemgoX19hLCBfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3pmKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgojZW5kaWYKCiN1bmRlZiBfX2NvbnN0YW50X3BvdzJfcmFuZ2UKI3VuZGVmIF9fY29uc3RhbnRfcmFuZ2UKI3VuZGVmIF9fY29uc3RhbnQKI3VuZGVmIF9fQVRUUlNfbwojdW5kZWYgX19BVFRSU19vX2FpCiN1bmRlZiBfX0FUVFJTX2FpCgojZWxzZQoKI2Vycm9yICJVc2UgLWZ6dmVjdG9yIHRvIGVuYWJsZSB2ZWN0b3IgZXh0ZW5zaW9ucyIKCiNlbmRpZgoALy89PT0tLSBzYW5pdGl6ZXIvY292ZXJhZ2VfaW50ZXJmYWNlLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUHVibGljIGludGVyZmFjZSBmb3Igc2FuaXRpemVyIGNvdmVyYWdlLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBTQU5JVElaRVJfQ09WRVJBR19JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9DT1ZFUkFHX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCiAgLy8gUmVjb3JkIGFuZCBkdW1wIGNvdmVyYWdlIGluZm8uCiAgdm9pZCBfX3Nhbml0aXplcl9jb3ZfZHVtcCh2b2lkKTsKCiAgLy8gQ2xlYXIgY29sbGVjdGVkIGNvdmVyYWdlIGluZm8uCiAgdm9pZCBfX3Nhbml0aXplcl9jb3ZfcmVzZXQodm9pZCk7CgogIC8vIER1bXAgY29sbGVjdGVkIGNvdmVyYWdlIGluZm8uIFNvcnRzIHBjcyBieSBtb2R1bGUgaW50byBpbmRpdmlkdWFsIC5zYW5jb3YKICAvLyBmaWxlcy4KICB2b2lkIF9fc2FuaXRpemVyX2R1bXBfY292ZXJhZ2UoY29uc3QgdWludHB0cl90ICpwY3MsIHVpbnRwdHJfdCBsZW4pOwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gIC8vIGV4dGVybiAiQyIKI2VuZGlmCgojZW5kaWYgIC8vIFNBTklUSVpFUl9DT1ZFUkFHX0lOVEVSRkFDRV9ICgBzYW5pdGl6ZXIvbmV0YnNkX3N5c2NhbGxfaG9va3MuaAAgKGZyZWFkKCZjb250ZW50WzBdLCBzaXplLCAxLCBoYW5kbGUpPQBwYXR0ZXJuAENoZWNrIGZhaWxlZDogZG9jdW1lbnRbImNvbnRlbnQiXS5BY2NlcHQod3JpdGVyKQBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvY29tbW9uL2t6aXBfd3JpdGVyX2Fvc3AuY2MAcG9saWN5IG5vdCBvbmUgb2Y6IGNsZWFuLW9ubHksIHByZWZlci1yZWxhdGl2ZSwgcHJlZmVyLXJlYWwAYnl0ZW1hcCByYW5nZSAAdW5rbm93biByb3VuZDogAFs6XmRpZ2l0Ol0AWzpsb3dlcjpdAFs6dXBwZXI6XQBtYXRjaCEgJWQAfABjb250ZXh0IGRvZXMgbm90IGNvbnRhaW4gdGV4dABBbmF0b2xpYW5fSGllcm9nbHlwaHMAQmFzc2FfVmFoAEhhbnVub28AS2F5YWhfTGkATHlkaWFuAE5hYmF0YWVhbgBOZXdfVGFpX0x1ZQBQZgBUaWJldGFuAFpzAG1tYXAoKSBmb3IgYWx0ZXJuYXRlIHNpZ25hbCBzdGFjayBmYWlsZWQAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9hZGRyZXNzX2lzX3JlYWRhYmxlLmNjAF9fdmRzb19nZXRjcHUAaW1hZ2UtPklzUHJlc2VudCgpIHx8IGluY3JlbWVudCA9PSAwAHN1bSA+PSBhAER2AGQAJiYAU2IAQ2hlY2sgc3VtICE9IG51bGxwdHIgZmFpbGVkOiAAXSBsZW5ndGggPSAALCB0YWcgPSAAUmVhZGVyVHJ5TG9jayBmYWlsZWQgAENoZWNrICh2ICYgKGtNdVdhaXQgfCBrTXVXcldhaXQpKSAhPSBrTXVXcldhaXQgZmFpbGVkOiAlczogTXV0ZXggY29ycnVwdDogd2FpdGluZyB3cml0ZXIgd2l0aCBubyB3YWl0ZXJzOiAlcAAgI3R5cGVzPQBTSEEtMjU2IEtBVABOSVNUIFAtNTIxAG9iamVjdCBpZGVudGlmaWVyIHJvdXRpbmVzAGt5dGhlLnByb3RvLmNvbW1vbi5NYXJrZWRTb3VyY2UucHJlX3RleHQAT3BlbkluZGV4KCkgY2FsbGVkIHR3aWNlACBkaWZmZXJzIGZyb20gdGhlIGN1cnJlbnQgb25lLgoAX19jbGFuZ19jdWRhX2xpYmRldmljZV9kZWNsYXJlcy5oAC8qPT09LS0tLS0tLS0tLS0tLS0tIGFteGludHJpbi5oIC0gQU1YIGludHJpbnNpY3MgLSotIEMvQysrIC0qLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhbXhpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmIC8qIF9fSU1NSU5UUklOX0ggKi8KCiNpZm5kZWYgX19BTVhJTlRSSU5fSAojZGVmaW5lIF9fQU1YSU5UUklOX0gKI2lmZGVmIF9feDg2XzY0X18KCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfVElMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFteC10aWxlIikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYW14LWludDgiKSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0JGMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhbXgtYmYxNiIpKSkKCi8vLyBMb2FkIHRpbGUgY29uZmlndXJhdGlvbiBmcm9tIGEgNjQtYnl0ZSBtZW1vcnkgbG9jYXRpb24gc3BlY2lmaWVkIGJ5Ci8vLyAibWVtX2FkZHIiLiBUaGUgdGlsZSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIHRoZSB0aWxlIHR5cGUgcGFsZXR0ZSwgdGhlCi8vLyBudW1iZXIgb2YgYnl0ZXMgcGVyIHJvdywgYW5kIHRoZSBudW1iZXIgb2Ygcm93cy4gSWYgdGhlIHNwZWNpZmllZAovLy8gcGFsZXR0ZV9pZCBpcyB6ZXJvLCB0aGF0IHNpZ25pZmllcyB0aGUgaW5pdCBzdGF0ZSBmb3IgYm90aCB0aGUgdGlsZQovLy8gY29uZmlnIGFuZCB0aGUgdGlsZSBkYXRhLCBhbmQgdGhlIHRpbGVzIGFyZSB6ZXJvZWQuIEFueSBpbnZhbGlkCi8vLyBjb25maWd1cmF0aW9ucyB3aWxsIHJlc3VsdCBpbiAjR1AgZmF1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTERUSUxFQ0ZHIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fY29uZmlnCi8vLyAgICBBIHBvaW50ZXIgdG8gNTEyLWJpdHMgY29uZmlndXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSU19USUxFCl90aWxlX2xvYWRjb25maWcoY29uc3Qgdm9pZCAqX19jb25maWcpIHsKICBfX2J1aWx0aW5faWEzMl90aWxlX2xvYWRjb25maWcoX19jb25maWcpOwp9CgovLy8gU3RvcmVzIHRoZSBjdXJyZW50IHRpbGUgY29uZmlndXJhdGlvbiB0byBhIDY0LWJ5dGUgbWVtb3J5IGxvY2F0aW9uCi8vLyBzcGVjaWZpZWQgYnkgIm1lbV9hZGRyIi4gVGhlIHRpbGUgY29uZmlndXJhdGlvbiBpbmNsdWRlcyB0aGUgdGlsZSB0eXBlCi8vLyBwYWxldHRlLCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBlciByb3csIGFuZCB0aGUgbnVtYmVyIG9mIHJvd3MuIElmIHRpbGVzCi8vLyBhcmUgbm90IGNvbmZpZ3VyZWQsIGFsbCB6ZXJvZXMgd2lsbCBiZSBzdG9yZWQgdG8gbWVtb3J5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNUVElMRUNGRyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2NvbmZpZwovLy8gICAgQSBwb2ludGVyIHRvIDUxMi1iaXRzIGNvbmZpZ3VyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlNfVElMRQpfdGlsZV9zdG9yZWNvbmZpZyh2b2lkICpfX2NvbmZpZykgewogIF9fYnVpbHRpbl9pYTMyX3RpbGVfc3RvcmVjb25maWcoX19jb25maWcpOwp9CgovLy8gUmVsZWFzZSB0aGUgdGlsZSBjb25maWd1cmF0aW9uIHRvIHJldHVybiB0byB0aGUgaW5pdCBzdGF0ZSwgd2hpY2gKLy8vIHJlbGVhc2VzIGFsbCBzdG9yYWdlIGl0IGN1cnJlbnRseSBob2xkcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFUkVMRUFTRSA8L2M+IGluc3RydWN0aW9uLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSU19USUxFIF90aWxlX3JlbGVhc2Uodm9pZCkgewogIF9fYnVpbHRpbl9pYTMyX3RpbGVyZWxlYXNlKCk7Cn0KCi8vLyBMb2FkIHRpbGUgcm93cyBmcm9tIG1lbW9yeSBzcGVjaWZpZWlkIGJ5ICJiYXNlIiBhZGRyZXNzIGFuZCAic3RyaWRlIiBpbnRvCi8vLyBkZXN0aW5hdGlvbiB0aWxlICJkc3QiIHVzaW5nIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24gcHJldmlvdXNseSBjb25maWd1cmVkCi8vLyB2aWEgIl90aWxlX2xvYWRjb25maWciLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVMT0FERCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIEEgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBiYXNlCi8vLyAgICBBIHBvaW50ZXIgdG8gYmFzZSBhZGRyZXNzLgovLy8gXHBhcmFtIHN0cmlkZQovLy8gICAgVGhlIHN0cmlkZSBiZXR3ZWVuIHRoZSByb3dzJyBkYXRhIHRvIGJlIGxvYWRlZCBpbiBtZW1vcnkuCiNkZWZpbmUgX3RpbGVfbG9hZGQoZHN0LCBiYXNlLCBzdHJpZGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2lhMzJfdGlsZWxvYWRkNjQoKGRzdCksICgoY29uc3Qgdm9pZCAqKShiYXNlKSksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fU0laRV9UWVBFX18pKHN0cmlkZSkpCgovLy8gTG9hZCB0aWxlIHJvd3MgZnJvbSBtZW1vcnkgc3BlY2lmaWVpZCBieSAiYmFzZSIgYWRkcmVzcyBhbmQgInN0cmlkZSIgaW50bwovLy8gZGVzdGluYXRpb24gdGlsZSAiZHN0IiB1c2luZyB0aGUgdGlsZSBjb25maWd1cmF0aW9uIHByZXZpb3VzbHkgY29uZmlndXJlZAovLy8gdmlhICJfdGlsZV9sb2FkY29uZmlnIi4gVGhpcyBpbnRyaW5zaWMgcHJvdmlkZXMgYSBoaW50IHRvIHRoZSBpbXBsZW1lbnRhdGlvbgovLy8gdGhhdCB0aGUgZGF0YSB3aWxsIGxpa2VseSBub3QgYmUgcmV1c2VkIGluIHRoZSBuZWFyIGZ1dHVyZSBhbmQgdGhlIGRhdGEKLy8vIGNhY2hpbmcgY2FuIGJlIG9wdGltaXplZCBhY2NvcmRpbmdseS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFTE9BRERUMSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIEEgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBiYXNlCi8vLyAgICBBIHBvaW50ZXIgdG8gYmFzZSBhZGRyZXNzLgovLy8gXHBhcmFtIHN0cmlkZQovLy8gICAgVGhlIHN0cmlkZSBiZXR3ZWVuIHRoZSByb3dzJyBkYXRhIHRvIGJlIGxvYWRlZCBpbiBtZW1vcnkuCiNkZWZpbmUgX3RpbGVfc3RyZWFtX2xvYWRkKGRzdCwgYmFzZSwgc3RyaWRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2lhMzJfdGlsZWxvYWRkdDE2NCgoZHN0KSwgKChjb25zdCB2b2lkICopKGJhc2UpKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19TSVpFX1RZUEVfXykoc3RyaWRlKSkKCi8vLyBTdG9yZSB0aGUgdGlsZSBzcGVjaWZpZWQgYnkgInNyYyIgdG8gbWVtb3J5IHNwZWNpZmllaWQgYnkgImJhc2UiIGFkZHJlc3MgYW5kCi8vLyAic3RyaWRlIiB1c2luZyB0aGUgdGlsZSBjb25maWd1cmF0aW9uIHByZXZpb3VzbHkgY29uZmlndXJlZCB2aWEKLy8vICJfdGlsZV9sb2FkY29uZmlnIi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFU1RPUkVEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgQSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIGJhc2UKLy8vICAgIEEgcG9pbnRlciB0byBiYXNlIGFkZHJlc3MuCi8vLyBccGFyYW0gc3RyaWRlCi8vLyAgICBUaGUgc3RyaWRlIGJldHdlZW4gdGhlIHJvd3MnIGRhdGEgdG8gYmUgc3RvcmVkIGluIG1lbW9yeS4KI2RlZmluZSBfdGlsZV9zdG9yZWQoZHN0LCBiYXNlLCBzdHJpZGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90aWxlc3RvcmVkNjQoKGRzdCksICgodm9pZCAqKShiYXNlKSksIChfX1NJWkVfVFlQRV9fKShzdHJpZGUpKQoKLy8vIFplcm8gdGhlIHRpbGUgc3BlY2lmaWVkIGJ5ICJ0ZGVzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVElMRVpFUk8gPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gdGlsZQovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUgdG8gYmUgemVyby4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV96ZXJvKHRpbGUpIF9fYnVpbHRpbl9pYTMyX3RpbGV6ZXJvKCh0aWxlKSkKCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gImRzdCIsCi8vLyBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJTU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCiNkZWZpbmUgX3RpbGVfZHBic3NkKGRzdCwgc3JjMCwgc3JjMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2lhMzJfdGRwYnNzZCgoZHN0KSwgKHNyYzApLCAoc3JjMSkpCgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2Ygc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzAgd2l0aAovLy8gY29ycmVzcG9uZGluZyB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUKLy8vIDMyLWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluICJkc3QiLCBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJTVUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCiNkZWZpbmUgX3RpbGVfZHBic3VkKGRzdCwgc3JjMCwgc3JjMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2lhMzJfdGRwYnN1ZCgoZHN0KSwgKHNyYzApLCAoc3JjMSkpCgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gImRzdCIsCi8vLyBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJVU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCiNkZWZpbmUgX3RpbGVfZHBidXNkKGRzdCwgc3JjMCwgc3JjMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2lhMzJfdGRwYnVzZCgoZHN0KSwgKHNyYzApLCAoc3JjMSkpCgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZQovLy8gMzItYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbgovLy8gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlVVRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV9kcGJ1dWQoZHN0LCBzcmMwLCBzcmMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90ZHBidXVkKChkc3QpLCAoc3JjMCksIChzcmMxKSkKCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIEJGMTYgKDE2LWJpdCkgZmxvYXRpbmctcG9pbnQgcGFpcnMgaW4gdGlsZXMgc3JjMCBhbmQKLy8vIHNyYzEsIGFjY3VtdWxhdGluZyB0aGUgaW50ZXJtZWRpYXRlIHNpbmdsZS1wcmVjaXNpb24gKDMyLWJpdCkgZmxvYXRpbmctcG9pbnQKLy8vIGVsZW1lbnRzIHdpdGggZWxlbWVudHMgaW4gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUKLy8vICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJGMTZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV9kcGJmMTZwcyhkc3QsIHNyYzAsIHNyYzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90ZHBiZjE2cHMoKGRzdCksIChzcmMwKSwgKHNyYzEpKQoKLy8vIEFNWCB0aWxlIHJlZ2lzdGVyIHNpemUgY2FuIGJlIGNvbmZpZ3VyZWQsIHRoZSBtYXhpbXVtIHNpemUgaXMgMTZ4NjQ9MTAyNAovLy8gYnl0ZXMuIFNpbmNlIHRoZXJlIGlzIG5vIDJEIHR5cGUgaW4gbGx2bSBJUiwgd2UgdXNlIHZlY3RvciB0eXBlIHRvCi8vLyByZXByZXNlbnQgMkQgdGlsZSBhbmQgdGhlIGZpeGVkIHNpemUgaXMgbWF4aW11bSBhbXggdGlsZSByZWdpc3RlciBzaXplLgp0eXBlZGVmIGludCBfdGlsZTEwMjRpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxMDI0KSwgX19hbGlnbmVkX18oNjQpKSk7CgovLy8gVGhpcyBpcyBpbnRlcm5hbCBpbnRyaW5zaWMuIEMvQysrIHVzZXIgc2hvdWxkIGF2b2lkIGNhbGxpbmcgaXQgZGlyZWN0bHkuCnN0YXRpYyBfX2lubGluZV9fIF90aWxlMTAyNGkgX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKX3RpbGVfbG9hZGRfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgY29uc3Qgdm9pZCAqYmFzZSwKICAgICAgICAgICAgICAgICAgICAgX19TSVpFX1RZUEVfXyBzdHJpZGUpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdGlsZWxvYWRkNjRfaW50ZXJuYWwobSwgbiwgYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fU0laRV9UWVBFX18pKHN0cmlkZSkpOwp9CgovLy8gVGhpcyBpcyBpbnRlcm5hbCBpbnRyaW5zaWMuIEMvQysrIHVzZXIgc2hvdWxkIGF2b2lkIGNhbGxpbmcgaXQgZGlyZWN0bHkuCnN0YXRpYyBfX2lubGluZV9fIF90aWxlMTAyNGkgX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKX3RpbGVfbG9hZGR0MV9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCBjb25zdCB2b2lkICpiYXNlLAogICAgICAgICAgICAgICAgICAgICAgIF9fU0laRV9UWVBFX18gc3RyaWRlKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3RpbGVsb2FkZHQxNjRfaW50ZXJuYWwobSwgbiwgYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19TSVpFX1RZUEVfXykoc3RyaWRlKSk7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9kcGJzc2RfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgdW5zaWduZWQgc2hvcnQgaywKICAgICAgICAgICAgICAgICAgICAgIF90aWxlMTAyNGkgZHN0LCBfdGlsZTEwMjRpIHNyYzEsIF90aWxlMTAyNGkgc3JjMikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90ZHBic3NkX2ludGVybmFsKG0sIG4sIGssIGRzdCwgc3JjMSwgc3JjMik7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9kcGJzdWRfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgdW5zaWduZWQgc2hvcnQgaywKICAgICAgICAgICAgICAgICAgICAgIF90aWxlMTAyNGkgZHN0LCBfdGlsZTEwMjRpIHNyYzEsIF90aWxlMTAyNGkgc3JjMikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90ZHBic3VkX2ludGVybmFsKG0sIG4sIGssIGRzdCwgc3JjMSwgc3JjMik7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9kcGJ1c2RfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgdW5zaWduZWQgc2hvcnQgaywKICAgICAgICAgICAgICAgICAgICAgIF90aWxlMTAyNGkgZHN0LCBfdGlsZTEwMjRpIHNyYzEsIF90aWxlMTAyNGkgc3JjMikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90ZHBidXNkX2ludGVybmFsKG0sIG4sIGssIGRzdCwgc3JjMSwgc3JjMik7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9kcGJ1dWRfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgdW5zaWduZWQgc2hvcnQgaywKICAgICAgICAgICAgICAgICAgICAgIF90aWxlMTAyNGkgZHN0LCBfdGlsZTEwMjRpIHNyYzEsIF90aWxlMTAyNGkgc3JjMikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90ZHBidXVkX2ludGVybmFsKG0sIG4sIGssIGRzdCwgc3JjMSwgc3JjMik7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9zdG9yZWRfaW50ZXJuYWwodW5zaWduZWQgc2hvcnQgbSwgdW5zaWduZWQgc2hvcnQgbiwgdm9pZCAqYmFzZSwKICAgICAgICAgICAgICAgICAgICAgIF9fU0laRV9UWVBFX18gc3RyaWRlLCBfdGlsZTEwMjRpIHRpbGUpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdGlsZXN0b3JlZDY0X2ludGVybmFsKG0sIG4sIGJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19TSVpFX1RZUEVfXykoc3RyaWRlKSwgdGlsZSk7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfQkYxNgpfdGlsZV9kcGJmMTZwc19pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB1bnNpZ25lZCBzaG9ydCBrLAogICAgICAgICAgICAgICAgICAgICAgICBfdGlsZTEwMjRpIGRzdCwgX3RpbGUxMDI0aSBzcmMxLCBfdGlsZTEwMjRpIHNyYzIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdGRwYmYxNnBzX2ludGVybmFsKG0sIG4sIGssIGRzdCwgc3JjMSwgc3JjMik7Cn0KCi8vLyBUaGlzIHN0cnVjdCBwYWNrIHRoZSBzaGFwZSBhbmQgdGlsZSBkYXRhIHRvZ2V0aGVyIGZvciB1c2VyLiBXZSBzdWdnZXN0Ci8vLyBpbml0aWFsaXppbmcgdGhlIHN0cnVjdCBhcyBlYXJseSBhcyBwb3NzaWJsZSwgYmVjYXVzZSBjb21waWxlciBkZXBlbmRzCi8vLyBvbiB0aGUgc2hhcGUgaW5mb3JtYXRpb24gdG8gZG8gY29uZmlndXJlLiBUaGUgY29uc3RhbnQgdmFsdWUgaXMgcHJlZmVycmVkCi8vLyBmb3Igb3B0aW1pemF0aW9uIGJ5IGNvbXBpbGVyLgp0eXBlZGVmIHN0cnVjdCBfX3RpbGUxMDI0aV9zdHIgewogIGNvbnN0IHVuc2lnbmVkIHNob3J0IHJvdzsKICBjb25zdCB1bnNpZ25lZCBzaG9ydCBjb2w7CiAgX3RpbGUxMDI0aSB0aWxlOwp9IF9fdGlsZTEwMjRpOwoKLy8vIExvYWQgdGlsZSByb3dzIGZyb20gbWVtb3J5IHNwZWNpZmllaWQgYnkgImJhc2UiIGFkZHJlc3MgYW5kICJzdHJpZGUiIGludG8KLy8vIGRlc3RpbmF0aW9uIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVElMRUxPQUREIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgQSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIGJhc2UKLy8vICAgIEEgcG9pbnRlciB0byBiYXNlIGFkZHJlc3MuCi8vLyBccGFyYW0gc3RyaWRlCi8vLyAgICBUaGUgc3RyaWRlIGJldHdlZW4gdGhlIHJvd3MnIGRhdGEgdG8gYmUgbG9hZGVkIGluIG1lbW9yeS4KX19ERUZBVUxUX0ZOX0FUVFJTX1RJTEUKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfbG9hZGQoX190aWxlMTAyNGkgKmRzdCwgY29uc3Qgdm9pZCAqYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19TSVpFX1RZUEVfXyBzdHJpZGUpIHsKICBkc3QtPnRpbGUgPSBfdGlsZV9sb2FkZF9pbnRlcm5hbChkc3QtPnJvdywgZHN0LT5jb2wsIGJhc2UsIHN0cmlkZSk7Cn0KCi8vLyBMb2FkIHRpbGUgcm93cyBmcm9tIG1lbW9yeSBzcGVjaWZpZWlkIGJ5ICJiYXNlIiBhZGRyZXNzIGFuZCAic3RyaWRlIiBpbnRvCi8vLyBkZXN0aW5hdGlvbiB0aWxlICJkc3QiLiBUaGlzIGludHJpbnNpYyBwcm92aWRlcyBhIGhpbnQgdG8gdGhlIGltcGxlbWVudGF0aW9uCi8vLyB0aGF0IHRoZSBkYXRhIHdpbGwgbGlrZWx5IG5vdCBiZSByZXVzZWQgaW4gdGhlIG5lYXIgZnV0dXJlIGFuZCB0aGUgZGF0YQovLy8gY2FjaGluZyBjYW4gYmUgb3B0aW1pemVkIGFjY29yZGluZ2x5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVMT0FERFQxIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgQSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIGJhc2UKLy8vICAgIEEgcG9pbnRlciB0byBiYXNlIGFkZHJlc3MuCi8vLyBccGFyYW0gc3RyaWRlCi8vLyAgICBUaGUgc3RyaWRlIGJldHdlZW4gdGhlIHJvd3MnIGRhdGEgdG8gYmUgbG9hZGVkIGluIG1lbW9yeS4KX19ERUZBVUxUX0ZOX0FUVFJTX1RJTEUKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfc3RyZWFtX2xvYWRkKF9fdGlsZTEwMjRpICpkc3QsIGNvbnN0IHZvaWQgKmJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1NJWkVfVFlQRV9fIHN0cmlkZSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2xvYWRkdDFfaW50ZXJuYWwoZHN0LT5yb3csIGRzdC0+Y29sLCBiYXNlLCBzdHJpZGUpOwp9CgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2Ygc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzAgd2l0aAovLy8gY29ycmVzcG9uZGluZyBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMSwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIDMyLWJpdAovLy8gcmVzdWx0cy4gU3VtIHRoZXNlIDQgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluICJkc3QiLAovLy8gYW5kIHN0b3JlIHRoZSAzMi1iaXQgcmVzdWx0IGJhY2sgdG8gdGlsZSAiZHN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBURFBCU1NEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMAovLy8gICAgVGhlIDFzdCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMxCi8vLyAgICBUaGUgMm5kIHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgpfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9kcGJzc2QoX190aWxlMTAyNGkgKmRzdCwgX190aWxlMTAyNGkgc3JjMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGlsZTEwMjRpIHNyYzEpIHsKICBkc3QtPnRpbGUgPSBfdGlsZV9kcGJzc2RfaW50ZXJuYWwoc3JjMC5yb3csIHNyYzEuY29sLCBzcmMwLmNvbCwgZHN0LT50aWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMwLnRpbGUsIHNyYzEudGlsZSk7Cn0KCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZQovLy8gMzItYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlNVRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfZHBic3VkKF9fdGlsZTEwMjRpICpkc3QsIF9fdGlsZTEwMjRpIHNyYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RpbGUxMDI0aSBzcmMxKSB7CiAgZHN0LT50aWxlID0gX3RpbGVfZHBic3VkX2ludGVybmFsKHNyYzAucm93LCBzcmMxLmNvbCwgc3JjMC5jb2wsIGRzdC0+dGlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjMC50aWxlLCBzcmMxLnRpbGUpOwp9CgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gImRzdCIsCi8vLyBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJVU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCl9fREVGQVVMVF9GTl9BVFRSU19JTlQ4CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX190aWxlX2RwYnVzZChfX3RpbGUxMDI0aSAqZHN0LCBfX3RpbGUxMDI0aSBzcmMwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190aWxlMTAyNGkgc3JjMSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2RwYnVzZF9pbnRlcm5hbChzcmMwLnJvdywgc3JjMS5jb2wsIHNyYzAuY29sLCBkc3QtPnRpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzAudGlsZSwgc3JjMS50aWxlKTsKfQoKLy8vIENvbXB1dGUgZG90LXByb2R1Y3Qgb2YgYnl0ZXMgaW4gdGlsZXMgd2l0aCBhIHNvdXJjZS9kZXN0aW5hdGlvbiBhY2N1bXVsYXRvci4KLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzAgd2l0aAovLy8gY29ycmVzcG9uZGluZyB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUKLy8vIDMyLWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4KLy8vICJkc3QiLCBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJVVUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCl9fREVGQVVMVF9GTl9BVFRSU19JTlQ4CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX190aWxlX2RwYnV1ZChfX3RpbGUxMDI0aSAqZHN0LCBfX3RpbGUxMDI0aSBzcmMwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190aWxlMTAyNGkgc3JjMSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2RwYnV1ZF9pbnRlcm5hbChzcmMwLnJvdywgc3JjMS5jb2wsIHNyYzAuY29sLCBkc3QtPnRpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzAudGlsZSwgc3JjMS50aWxlKTsKfQoKLy8vIFN0b3JlIHRoZSB0aWxlIHNwZWNpZmllZCBieSAic3JjIiB0byBtZW1vcnkgc3BlY2lmaWVpZCBieSAiYmFzZSIgYWRkcmVzcyBhbmQKLy8vICJzdHJpZGUiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVTVE9SRUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBBIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gYmFzZQovLy8gICAgQSBwb2ludGVyIHRvIGJhc2UgYWRkcmVzcy4KLy8vIFxwYXJhbSBzdHJpZGUKLy8vICAgIFRoZSBzdHJpZGUgYmV0d2VlbiB0aGUgcm93cycgZGF0YSB0byBiZSBzdG9yZWQgaW4gbWVtb3J5LgpfX0RFRkFVTFRfRk5fQVRUUlNfVElMRQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9zdG9yZWQodm9pZCAqYmFzZSwgX19TSVpFX1RZUEVfXyBzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RpbGUxMDI0aSBzcmMpIHsKICBfdGlsZV9zdG9yZWRfaW50ZXJuYWwoc3JjLnJvdywgc3JjLmNvbCwgYmFzZSwgc3RyaWRlLCBzcmMudGlsZSk7Cn0KCi8vLyBaZXJvIHRoZSB0aWxlIHNwZWNpZmllZCBieSAiZHN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFWkVSTyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlIHRvIGJlIHplcm8uIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCl9fREVGQVVMVF9GTl9BVFRSU19USUxFCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX190aWxlX3plcm8oX190aWxlMTAyNGkgKmRzdCkgewogIGRzdC0+dGlsZSA9IF9fYnVpbHRpbl9pYTMyX3RpbGV6ZXJvX2ludGVybmFsKGRzdC0+cm93LCBkc3QtPmNvbCk7Cn0KCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIEJGMTYgKDE2LWJpdCkgZmxvYXRpbmctcG9pbnQgcGFpcnMgaW4gdGlsZXMgc3JjMCBhbmQKLy8vIHNyYzEsIGFjY3VtdWxhdGluZyB0aGUgaW50ZXJtZWRpYXRlIHNpbmdsZS1wcmVjaXNpb24gKDMyLWJpdCkgZmxvYXRpbmctcG9pbnQKLy8vIGVsZW1lbnRzIHdpdGggZWxlbWVudHMgaW4gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUKLy8vICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJGMTZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KX19ERUZBVUxUX0ZOX0FUVFJTX0JGMTYKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfZHBiZjE2cHMoX190aWxlMTAyNGkgKmRzdCwgX190aWxlMTAyNGkgc3JjMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190aWxlMTAyNGkgc3JjMSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2RwYmYxNnBzX2ludGVybmFsKHNyYzAucm93LCBzcmMxLmNvbCwgc3JjMC5jb2wsIGRzdC0+dGlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMwLnRpbGUsIHNyYzEudGlsZSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfVElMRQojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19CRjE2CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwojZW5kaWYgLyogX19BTVhJTlRSSU5fSCAqLwoALyo9PT0tLS0tIGF2eDUxMmRxaW50cmluLmggLSBBVlg1MTJEUSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJkcWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJEUUlOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJEUUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyZHEiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNTEyKSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyZHEiKSkpCgpzdGF0aWMgX19pbmxpbmUgX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9rbm90X21hc2s4KF9fbW1hc2s4IF9fTSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9rbm90cWkoX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9rYW5kX21hc2s4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rYW5kcWkoKF9fbW1hc2s4KV9fQSwgKF9fbW1hc2s4KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUwpfa2FuZG5fbWFzazgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2thbmRucWkoKF9fbW1hc2s4KV9fQSwgKF9fbW1hc2s4KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUwpfa29yX21hc2s4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rb3JxaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9reG5vcl9tYXNrOChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQikKewogIHJldHVybiAoX19tbWFzazgpX19idWlsdGluX2lhMzJfa3hub3JxaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9reG9yX21hc2s4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9reG9ycWkoKF9fbW1hc2s4KV9fQSwgKF9fbW1hc2s4KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0Y19tYXNrOF91OChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y3FpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3R6X21hc2s4X3U4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3R6cWkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdF9tYXNrOF91OChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQiwgdW5zaWduZWQgY2hhciAqX19DKSB7CiAgKl9fQyA9ICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3RjcWkoX19BLCBfX0IpOwogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0enFpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0Y19tYXNrOF91OChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNxaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdHpfbWFzazhfdTgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6cWkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RfbWFzazhfdTgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNxaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0enFpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0Y19tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNoaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdHpfbWFzazE2X3U4KF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6aGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RfbWFzazE2X3U4KF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdGNoaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0emhpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9rYWRkX21hc2s4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rYWRkcWkoKF9fbW1hc2s4KV9fQSwgKF9fbW1hc2s4KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX2thZGRfbWFzazE2KF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9rYWRkaGkoKF9fbW1hc2sxNilfX0EsIChfX21tYXNrMTYpX19CKTsKfQoKI2RlZmluZSBfa3NoaWZ0bGlfbWFzazgoQSwgSSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfa3NoaWZ0bGlxaSgoX19tbWFzazgpKEEpLCAodW5zaWduZWQgaW50KShJKSkpCgojZGVmaW5lIF9rc2hpZnRyaV9tYXNrOChBLCBJKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rc2hpZnRyaXFpKChfX21tYXNrOCkoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dG1hc2s4X3UzMihfX21tYXNrOCBfX0EpIHsKICByZXR1cm4gKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl9rbW92YigoX19tbWFzazgpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9jdnR1MzJfbWFzazgodW5zaWduZWQgaW50IF9fQSkgewogIHJldHVybiAoX19tbWFzazgpX19idWlsdGluX2lhMzJfa21vdmIoKF9fbW1hc2s4KV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUwpfbG9hZF9tYXNrOChfX21tYXNrOCAqX19BKSB7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rbW92YigqKF9fbW1hc2s4ICopX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3N0b3JlX21hc2s4KF9fbW1hc2s4ICpfX0EsIF9fbW1hc2s4IF9fQikgewogICooX19tbWFzazggKilfX0EgPSBfX2J1aWx0aW5faWEzMl9rbW92YigoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGxvX2VwaTY0IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpICgoX192OGR1KSBfX0EgKiAoX192OGR1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxsb19lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbXVsbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxsb19lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tdWxsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl94b3JfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGR1KV9fQSBeIChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfeG9yX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3hvcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel94b3JfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl94b3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfeG9yX3BzIChfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpKChfX3YxNnN1KV9fQSBeIChfX3YxNnN1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfeG9yX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl94b3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel94b3JfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3hvcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfb3JfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGR1KV9fQSB8IChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfb3JfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfb3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfb3JfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9vcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9vcl9wcyhfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpKChfX3YxNnN1KV9fQSB8IChfX3YxNnN1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfb3JfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX29yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfb3JfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX29yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGR1KV9fQSAmIChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYW5kX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2FuZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hbmRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYW5kX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c3UpX19BICYgKF9fdjE2c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hbmRfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FuZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FuZF9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYW5kX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRub3RfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKSh+KF9fdjhkdSlfX0EgJiAoX192OGR1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZG5vdF9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hbmRub3RfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYW5kbm90X3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYW5kbm90X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZG5vdF9wcyhfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpKH4oX192MTZzdSlfX0EgJiAoX192MTZzdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZG5vdF9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYW5kbm90X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYW5kbm90X3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9hbmRub3RfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBkX2VwaTY0IChfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBkX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwZF9lcGk2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGRfZXBpNjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwZF9lcGk2NChVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGRfZXB1NjQgKF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9lcHU2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwZF9lcHU2NCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBkX2VwdTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwZF9lcHU2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX2VwdTY0KFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwc19lcGk2NCAoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwc19lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cHNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcHNfZXBpNjQoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcHNfZXBpNjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBzX2VwaTY0KFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMycXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBzX2VwdTY0IChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwc19lcHU2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBzX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwc19lcHU2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwc19lcHU2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcHNfZXB1NjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTY0X3BkIChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGRpKV9fQSwgX192OGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXBpNjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTY0X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXBpNjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwaTY0X3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0cXEycGQ1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcGk2NF9wZChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2N2dHFxMnBkNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwaTY0X3BkKFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0cXEycGQ1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTY0X3BzIChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0cXEycHM1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk2NF9wcyAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcGk2NF9wcyhBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0cXEycHM1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXBpNjRfcHMoVywgVSwgQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwaTY0X3BzKFUsIEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnRxcTJwczUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBkX2VwaTY0IChfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBkX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwZF9lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwZF9lcGk2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBkX2VwaTY0KFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBkX2VwaTY0KFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGRfZXB1NjQgKF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBkX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGRfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBkX2VwdTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGRfZXB1NjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGRfZXB1NjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwc19lcGk2NCAoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBzX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcHNfZXBpNjQoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMycXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBzX2VwaTY0KFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcHNfZXBpNjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMycXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBzX2VwdTY0IChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBzX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwc19lcHU2NCAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwc19lcHU2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcHNfZXB1NjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwc19lcHU2NChVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHU2NF9wZCAoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhkdSlfX0EsIF9fdjhkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTY0X3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dGVwdTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHU2NF9wZCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dGVwdTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcHU2NF9wZChBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwZDUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXB1NjRfcGQoVywgVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnR1cXEycGQ1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXB1NjRfcGQoVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnR1cXEycGQ1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTY0X3BzIChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnR1cXEycHM1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTY0X3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcHU2NF9wcyhBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXB1NjRfcHMoVywgVSwgQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwdTY0X3BzKFUsIEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnR1cXEycHM1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JhbmdlX3BkKEEsIEIsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yYW5nZV9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JhbmdlX3BkKFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX3JhbmdlX3JvdW5kX3BkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JhbmdlX3JvdW5kX3BkKFcsIFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yYW5nZV9yb3VuZF9wZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JhbmdlX3BzKEEsIEIsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yYW5nZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yYW5nZV9wcyhXLCBVLCBBLCBCLCBDKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmFuZ2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JhbmdlX3BzKFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yYW5nZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX3JhbmdlX3JvdW5kX3BzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yYW5nZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yYW5nZV9yb3VuZF9wcyhXLCBVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmFuZ2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmFuZ2Vfcm91bmRfcHMoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JhbmdlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcmFuZ2Vfcm91bmRfc3MoQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3Jhbmdlc3MxMjhfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsIChpbnQpKEMpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcmFuZ2Vfc3MoQSAsQiAsIEMpIF9tbV9yYW5nZV9yb3VuZF9zcyhBLCBCLCBDICxfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrX3JhbmdlX3JvdW5kX3NzKFcsIFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yYW5nZXNzMTI4X3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2Vfc3MoVyAsIFUsIEEsIEIsIEMpIF9tbV9tYXNrX3JhbmdlX3JvdW5kX3NzKFcsIFUsIEEsIEIsIEMgLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrel9yYW5nZV9yb3VuZF9zcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmFuZ2VzczEyOF9yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yYW5nZV9zcyhVLCBBICxCICwgQykgX21tX21hc2t6X3JhbmdlX3JvdW5kX3NzKFUsIEEsIEIsIEMgLF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX3JhbmdlX3JvdW5kX3NkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmFuZ2VzZDEyOF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLCAoaW50KShDKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yYW5nZV9zZChBICxCICwgQykgX21tX3JhbmdlX3JvdW5kX3NkKEEsIEIsIEMgLF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2Vfcm91bmRfc2QoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXNkMTI4X3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JhbmdlX3NkKFcsIFUsIEEsIEIsIEMpIF9tbV9tYXNrX3JhbmdlX3JvdW5kX3NkKFcsIFUsIEEsIEIsIEMgLF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JhbmdlX3JvdW5kX3NkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmFuZ2VzZDEyOF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yYW5nZV9zZChVLCBBLCBCLCBDKSBfbW1fbWFza3pfcmFuZ2Vfcm91bmRfc2QoVSwgQSwgQiwgQyAsX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfcmVkdWNlX3BkKEEsIEIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yZWR1Y2VfcGQoVywgVSwgQSwgQikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yZWR1Y2VfcGQoVSwgQSwgQikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfcmVkdWNlX3BzKEEsIEIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmVkdWNlX3BzKFcsIFUsIEEsIEIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmVkdWNlX3BzKFUsIEEsIEIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9yZWR1Y2Vfcm91bmRfcGQoQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yZWR1Y2Vfcm91bmRfcGQoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmVkdWNlX3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yZWR1Y2Vfcm91bmRfcHMoQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JlZHVjZV9yb3VuZF9wcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmVkdWNlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmVkdWNlX3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9zcyhBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoQyksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JlZHVjZV9zcyhXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X3JlZHVjZV9zcyhVLCBBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fcmVkdWNlX3JvdW5kX3NzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2Vzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2Vfcm91bmRfc3MoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoQyksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JlZHVjZV9yb3VuZF9zcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yZWR1Y2Vfc2QoQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3NkKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X3JlZHVjZV9zZChVLCBBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9yb3VuZF9zZChBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoQyksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3JvdW5kX3NkKFcsIFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3JvdW5kX3NkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdmVwaTMyX21hc2sgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2N2dGQybWFzazUxMiAoKF9fdjE2c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZtX2VwaTMyIChfX21tYXNrMTYgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMmQ1MTIgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZtX2VwaTY0IChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2sycTUxMiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlcGk2NF9tYXNrIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2N2dHEybWFzazUxMiAoKF9fdjhkaSkgX19BKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9mMzJ4MiAoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9mMzJ4MiAoX19tNTEyIF9fTywgX19tbWFzazE2IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Jyb2FkY2FzdF9mMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfZjMyeDIgKF9fbW1hc2sxNiBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9icm9hZGNhc3RfZjMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9mMzJ4OChfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2YzMng4KF9fbTUxMiBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYnJvYWRjYXN0X2YzMng4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfZjMyeDgoX19tbWFzazE2IF9fTSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9icm9hZGNhc3RfZjMyeDgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2Y2NHgyKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19BLCAoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9mNjR4MihfX201MTJkIF9fTywgX19tbWFzazggX19NLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9icm9hZGNhc3RfZjY0eDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfZjY0eDIoX19tbWFzazggX19NLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9icm9hZGNhc3RfZjY0eDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2kzMngyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fQSwgKF9fdjRzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RfaTMyeDIgKF9fbTUxMmkgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2kzMngyIChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9pMzJ4OChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNpKV9fQSwgKF9fdjhzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RfaTMyeDgoX19tNTEyaSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4OChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9pMzJ4OChfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9icm9hZGNhc3RfaTMyeDgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2k2NHgyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19BLCAoX192MmRpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9pNjR4MihfX201MTJpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2Jyb2FkY2FzdF9pNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9pNjR4MihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYnJvYWRjYXN0X2k2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfZXh0cmFjdGYzMng4X3BzKEEsIGltbSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmMzJ4OF9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0ZjMyeDhfcHMoVywgVSwgQSwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng4X21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHRyYWN0ZjMyeDhfcHMoVSwgQSwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng4X21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2V4dHJhY3RmNjR4Ml9wZChBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHgyXzUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGY2NHgyX3BkKFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RmNjR4Ml9wZChVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHgyXzUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfZXh0cmFjdGkzMng4X2VwaTMyKEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTMyeDhfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGkzMng4X2VwaTMyKFcsIFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTMyeDhfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHRyYWN0aTMyeDhfZXBpMzIoVSwgQSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4OF9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9leHRyYWN0aTY0eDJfZXBpNjQoQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4Ml81MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4dHJhY3RpNjR4Ml9lcGk2NChXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHgyXzUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHRyYWN0aTY0eDJfZXBpNjQoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4Ml81MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2luc2VydGYzMng4KEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2luc2VydGYzMng4KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGYzMng4KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfaW5zZXJ0ZjMyeDgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRmMzJ4OChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2luc2VydGYzMng4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRmNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfaW5zZXJ0ZjY0eDJfNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGY2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfaW5zZXJ0ZjY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0ZjY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9pbnNlcnRmNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0aTMyeDgoQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2luc2VydGkzMng4KChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGkzMng4KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfaW5zZXJ0aTMyeDgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0aTMyeDgoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9pbnNlcnRpMzJ4OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0aTY0eDIoQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHgyXzUxMigoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pbnNlcnRpNjR4MihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfaW5zZXJ0aTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0aTY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2luc2VydGk2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZwY2xhc3NfcHNfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9mcGNsYXNzcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2ZwY2xhc3NfcHNfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9mcGNsYXNzcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19mcGNsYXNzX3BkX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9mcGNsYXNzX3BkX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX2ZwY2xhc3Nfc2RfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19mcGNsYXNzX3NkX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9mcGNsYXNzX3NzX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19mcGNsYXNzX3NzX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgBodG1pbnRyaW4uaABtc2EuaAAvKj09PS0tLS0gcG9wY250aW50cmluLmggLSBQT1BDTlQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fUE9QQ05USU5UUklOX0gKI2RlZmluZSBfX1BPUENOVElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicG9wY250IikpKQoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmIChfX2NwbHVzcGx1cyA+PSAyMDExMDNMKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIgX19ERUZBVUxUX0ZOX0FUVFJTIGNvbnN0ZXhwcgojZWxzZQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIgX19ERUZBVUxUX0ZOX0FUVFJTCiNlbmRpZgoKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGhhdmluZyBhIHZhbHVlIG9mIDEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE9QQ05UIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQW4gdW5zaWduZWQgMzItYml0IGludGVnZXIgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGJpdHMgd2l0aCB2YWx1ZSAxIGluIHRoZQovLy8gICAgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9tbV9wb3BjbnRfdTMyKHVuc2lnbmVkIGludCBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50KF9fQSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBoYXZpbmcgYSB2YWx1ZSBvZiAxLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBPUENOVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBiaXRzIHdpdGggdmFsdWUgMSBpbiB0aGUKLy8vICAgIHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfbW1fcG9wY250X3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGxsKF9fQSk7Cn0KI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKCiNlbmRpZiAvKiBfX1BPUENOVElOVFJJTl9IICovCgBzZXJpYWxpemVpbnRyaW4uaAB0Z21hdGguaAAvLz09PS0tIHNhbml0aXplci91YnNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotIEMrKyAtKi09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIFVCU2FuaXRpemVyIChVQlNhbikuCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9VQlNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9VQlNBTl9JTlRFUkZBQ0VfSAoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKLy8vIFVzZXItcHJvdmlkZWQgZGVmYXVsdCBvcHRpb24gc2V0dGluZ3MuCi8vLwovLy8gWW91IGNhbiBwcm92aWRlIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIGEgc3RyaW5nCi8vLyBjb250YWluaW5nIFVCU2FuIHJ1bnRpbWUgb3B0aW9ucyAoZm9yIGV4YW1wbGUsCi8vLyA8Yz52ZXJib3NpdHk9MTpoYWx0X29uX2Vycm9yPTA8L2M+KS4KLy8vCi8vLyBccmV0dXJucyBEZWZhdWx0IG9wdGlvbnMgc3RyaW5nLgpjb25zdCBjaGFyKiBfX3Vic2FuX2RlZmF1bHRfb3B0aW9ucyh2b2lkKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfVUJTQU5fSU5URVJGQUNFX0gKAE1pc3MgZnJhY3Rpb24gcGFydCBpbiBudW1iZXIuAFVuc3BlY2lmaWMgc3ludGF4IGVycm9yLgB3YgAsIABbOl53b3JkOl0Ac2hvdWxkIG5ldmVyIGhhcHBlbgBObyByYW5nZXMgaW4gY2hhciBjbGFzcwBieXRlJXMgWyUwMngtJTAyeF0gLT4gJWQAJXMlZABEb0NvYWxlc2NlIGZhaWxlZDogcjItPm9wKCkgaXMgAENmAEN5cmlsbGljAEd1cm11a2hpAE9sX0NoaWtpAGRzdCAhPSBudWxscHRyAER1cGxpY2F0ZSBhZGRyIDB4JWx4OiAlcyA8LT4gMHglbHg6ICVzACVzOiBubyBleGVjdXRhYmxlIExPQUQgc2VnbWVudHMAbGV2ZWwgPj0gMQBibG9jayBub3QgYmlnIGVub3VnaCBmb3IgZXZlbiBvbmUgbGV2ZWwAbABnAERzACYAfgBBQk9SVEVEAFRoaXMgY2FuJ3QgaGFwcGVuOyBiYXNlNjQgZGVjb2RlciBzdGF0ZSA9ICVkACwgYmVnaW5fcG9zXyA9IAAsIG9mZnNldCA9IABdIGhhcyBvZmZzZXQgACB3aGljaCBhcmUgb3V0c2lkZSBvZiB0aGUgY2hpbGRzIGxlbmd0aCBvZiAAd2FpdHAtPnRocmVhZC0+d2FpdHAgPT0gbnVsbHB0cgA6bG9jYWx0aW1lACBzcGVjPScAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9nY2RfZXh0cmEuYwBSU0EgVmVyaWZ5IEtBVCBmYWlsZWQuCgBFQ0RTQSBSAGt5dGhlLnByb3RvLkFuYWx5c2lzUmVxdWVzdC5maWxlX2RhdGFfc2VydmljZQAgIEFjdHVhbCAgIDogAENIRUNLIGZhaWxlZDogdGhpcy0+TWFwRmllbGRCYXNlOjpyZXBlYXRlZF9maWVsZF8gIT0gTlVMTDogAGMrKy1oZWFkZXIALXNoYXJlZABFcnJvciBhZGRpbmcgY29tcGlsYXRpb246IAAAKSBhcyB3ZSB3ZXJlIHVuYWJsZSB0byBmaW5kIGEgc3RhYmxlIHVuaXF1ZSByb290LgBDU3lzdGVtACNpZmRlZgAjaWZuZGVmAC8qPT09LS0tLSBfX2NsYW5nX2hpcF9tYXRoLmggLSBEZXZpY2Utc2lkZSBISVAgbWF0aCBzdXBwb3J0IC0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NMQU5HX0hJUF9NQVRIX0hfXwojZGVmaW5lIF9fQ0xBTkdfSElQX01BVEhfSF9fCgojaWYgIWRlZmluZWQoX19ISVBfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBISVAgYW5kIE9wZW5NUCBBTURHQ04gZGV2aWNlIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZiAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKI2luY2x1ZGUgPGFsZ29yaXRobT4KI2VuZGlmCiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI2luY2x1ZGUgPG9tcC5oPgojZW5kaWYKI2VuZGlmIC8vICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQoKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKQojZW5kaWYKCi8vIEEgZmV3IGZ1bmN0aW9ucyByZXR1cm4gYm9vbCB0eXBlIHN0YXJ0aW5nIG9ubHkgaW4gQysrMTEuCiNwcmFnbWEgcHVzaF9tYWNybygiX19SRVRVUk5fVFlQRSIpCiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojZGVmaW5lIF9fUkVUVVJOX1RZUEUgaW50CiNlbHNlCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQojZGVmaW5lIF9fUkVUVVJOX1RZUEUgYm9vbAojZWxzZQojZGVmaW5lIF9fUkVUVVJOX1RZUEUgaW50CiNlbmRpZgojZW5kaWYgLy8gX19PUEVOTVBfQU1ER0NOX18KCiNpZiBkZWZpbmVkIChfX2NwbHVzcGx1cykgJiYgX19jcGx1c3BsdXMgPCAyMDExMDNMCi8vIGVtdWxhdGUgc3RhdGljX2Fzc2VydCBvbiB0eXBlIHNpemVzCnRlbXBsYXRlPGJvb2w+CnN0cnVjdCBfX2NvbXBhcmVfcmVzdWx0e307CnRlbXBsYXRlPD4Kc3RydWN0IF9fY29tcGFyZV9yZXN1bHQ8dHJ1ZT4gewogIHN0YXRpYyBjb25zdCBfX2RldmljZV9fIGJvb2wgdmFsaWQ7Cn07CgpfX0RFVklDRV9fCnZvaWQgX19zdXBwcmVzc191bnVzZWRfd2FybmluZyhib29sIGIpe307CnRlbXBsYXRlIDx1bnNpZ25lZCBpbnQgUywgdW5zaWduZWQgaW50IFQ+Cl9fREVWSUNFX18gdm9pZCBfX3N0YXRpY19hc3NlcnRfZXF1YWxfc2l6ZSgpIHsKICBfX3N1cHByZXNzX3VudXNlZF93YXJuaW5nKF9fY29tcGFyZV9yZXN1bHQ8UyA9PSBUPjo6dmFsaWQpOwp9CgojZGVmaW5lIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoQSwgQikgXAogIF9fc3RhdGljX2Fzc2VydF9lcXVhbF9zaXplPEEsQj4oKQoKI2Vsc2UKI2RlZmluZSBfX3N0YXRpY19hc3NlcnRfdHlwZV9zaXplX2VxdWFsKEEsQikgXAogIHN0YXRpY19hc3NlcnQoKEEpID09IChCKSwgIiIpCgojZW5kaWYKCl9fREVWSUNFX18KdWludDY0X3QgX19tYWtlX21hbnRpc3NhX2Jhc2U4KGNvbnN0IGNoYXIgKl9fdGFncCkgewogIHVpbnQ2NF90IF9fciA9IDA7CiAgd2hpbGUgKF9fdGFncCkgewogICAgY2hhciBfX3RtcCA9ICpfX3RhZ3A7CgogICAgaWYgKF9fdG1wID49ICcwJyAmJiBfX3RtcCA8PSAnNycpCiAgICAgIF9fciA9IChfX3IgKiA4dSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYV9iYXNlMTAoY29uc3QgY2hhciAqX190YWdwKSB7CiAgdWludDY0X3QgX19yID0gMDsKICB3aGlsZSAoX190YWdwKSB7CiAgICBjaGFyIF9fdG1wID0gKl9fdGFncDsKCiAgICBpZiAoX190bXAgPj0gJzAnICYmIF9fdG1wIDw9ICc5JykKICAgICAgX19yID0gKF9fciAqIDEwdSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYV9iYXNlMTYoY29uc3QgY2hhciAqX190YWdwKSB7CiAgdWludDY0X3QgX19yID0gMDsKICB3aGlsZSAoX190YWdwKSB7CiAgICBjaGFyIF9fdG1wID0gKl9fdGFncDsKCiAgICBpZiAoX190bXAgPj0gJzAnICYmIF9fdG1wIDw9ICc5JykKICAgICAgX19yID0gKF9fciAqIDE2dSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UgaWYgKF9fdG1wID49ICdhJyAmJiBfX3RtcCA8PSAnZicpCiAgICAgIF9fciA9IChfX3IgKiAxNnUpICsgX190bXAgLSAnYScgKyAxMDsKICAgIGVsc2UgaWYgKF9fdG1wID49ICdBJyAmJiBfX3RtcCA8PSAnRicpCiAgICAgIF9fciA9IChfX3IgKiAxNnUpICsgX190bXAgLSAnQScgKyAxMDsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYShjb25zdCBjaGFyICpfX3RhZ3ApIHsKICBpZiAoIV9fdGFncCkKICAgIHJldHVybiAwdTsKCiAgaWYgKCpfX3RhZ3AgPT0gJzAnKSB7CiAgICArK19fdGFncDsKCiAgICBpZiAoKl9fdGFncCA9PSAneCcgfHwgKl9fdGFncCA9PSAnWCcpCiAgICAgIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTE2KF9fdGFncCk7CiAgICBlbHNlCiAgICAgIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTgoX190YWdwKTsKICB9CgogIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTEwKF9fdGFncCk7Cn0KCi8vIEJFR0lOIEZMT0FUCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQpfX0RFVklDRV9fCmludCBhYnMoaW50IF9feCkgewogIGludCBfX3NnbiA9IF9feCA+PiAoc2l6ZW9mKGludCkgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KX19ERVZJQ0VfXwpsb25nIGxhYnMobG9uZyBfX3gpIHsKICBsb25nIF9fc2duID0gX194ID4+IChzaXplb2YobG9uZykgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KX19ERVZJQ0VfXwpsb25nIGxvbmcgbGxhYnMobG9uZyBsb25nIF9feCkgewogIGxvbmcgbG9uZyBfX3NnbiA9IF9feCA+PiAoc2l6ZW9mKGxvbmcgbG9uZykgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KI2VuZGlmCgpfX0RFVklDRV9fCmZsb2F0IGFjb3NmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgYWNvc2hmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NoX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGFzaW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2FzaW5fZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgYXNpbmhmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2FzaW5oX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGF0YW4yZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2F0YW4yX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgYXRhbmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfYXRhbl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBhdGFuaGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfYXRhbmhfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY2JydGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY2JydF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBjZWlsZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jZWlsX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGNvcHlzaWduZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2NvcHlzaWduX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgY29zZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jb3NfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY29zaGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY29zaF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBjb3NwaWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY29zcGlfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY3lsX2Jlc3NlbF9pMGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY3lsX2Jlc3NlbF9pMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZXJmY2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXJmY19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZjaW52ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjaW52X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGVyZmN4ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjeF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2VyZl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZpbnZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2VyZmludl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHAxMGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZXhwMmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHBmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2V4cF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHBtMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwbTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZmFic2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZmFic19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmZGltZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2ZkaW1fZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmZGl2aWRlZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC8gX195OyB9CgpfX0RFVklDRV9fCmZsb2F0IGZsb29yZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9mbG9vcl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmbWFmKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9mMzIoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZmxvYXQgZm1heGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWF4X2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZm1pbmYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWluX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZm1vZGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbW9kX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZnJleHBmKGZsb2F0IF9feCwgaW50ICpfX25wdHIpIHsKICBpbnQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPQogICAgICBfX29jbWxfZnJleHBfZjMyKF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKikmX190bXApOwogICpfX25wdHIgPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCBoeXBvdGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9oeXBvdF9mMzIoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmludCBpbG9nYmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaWxvZ2JfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2Zpbml0ZWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaXNmaW5pdGVfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2lzaW5mZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pc2luZl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpfX1JFVFVSTl9UWVBFIF9faXNuYW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2lzbmFuX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGowZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9qMF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBqMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfajFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgam5mKGludCBfX24sIGZsb2F0IF9feCkgeyAvLyBUT0RPOiB3ZSBjb3VsZCB1c2UgQWhtZXMgbXVsdGlwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4gajBmKF9feCk7CiAgaWYgKF9fbiA9PSAxKQogICAgcmV0dXJuIGoxZihfX3gpOwoKICBmbG9hdCBfX3gwID0gajBmKF9feCk7CiAgZmxvYXQgX194MSA9IGoxZihfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGZsb2F0IF9feDIgPSAoMiAqIF9faSkgLyBfX3ggKiBfX3gxIC0gX194MDsKICAgIF9feDAgPSBfX3gxOwogICAgX194MSA9IF9feDI7CiAgfQoKICByZXR1cm4gX194MTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBsZGV4cGYoZmxvYXQgX194LCBpbnQgX19lKSB7IHJldHVybiBfX29jbWxfbGRleHBfZjMyKF9feCwgX19lKTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsZ2FtbWFmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2xnYW1tYV9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGxvbmcgaW50IGxscmludGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGxvbmcgaW50IGxscm91bmRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3JvdW5kX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGxvZzEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2cxMF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsb2cxcGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nMXBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbG9nMmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsb2diZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2diX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGxvZ2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgaW50IGxyaW50ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yaW50X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgaW50IGxyb3VuZGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbW9kZmYoZmxvYXQgX194LCBmbG9hdCAqX19pcHRyKSB7CiAgZmxvYXQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPQogICAgICBfX29jbWxfbW9kZl9mMzIoX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopJl9fdG1wKTsKICAqX19pcHRyID0gX190bXA7CiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCBuYW5mKGNvbnN0IGNoYXIgKl9fdGFncCkgewogIHVuaW9uIHsKICAgIGZsb2F0IHZhbDsKICAgIHN0cnVjdCBpZWVlX2Zsb2F0IHsKICAgICAgdW5zaWduZWQgaW50IG1hbnRpc3NhIDogMjI7CiAgICAgIHVuc2lnbmVkIGludCBxdWlldCA6IDE7CiAgICAgIHVuc2lnbmVkIGludCBleHBvbmVudCA6IDg7CiAgICAgIHVuc2lnbmVkIGludCBzaWduIDogMTsKICAgIH0gYml0czsKICB9IF9fdG1wOwogIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoc2l6ZW9mKF9fdG1wLnZhbCksIHNpemVvZihfX3RtcC5iaXRzKSk7CgogIF9fdG1wLmJpdHMuc2lnbiA9IDB1OwogIF9fdG1wLmJpdHMuZXhwb25lbnQgPSB+MHU7CiAgX190bXAuYml0cy5xdWlldCA9IDF1OwogIF9fdG1wLmJpdHMubWFudGlzc2EgPSBfX21ha2VfbWFudGlzc2EoX190YWdwKTsKCiAgcmV0dXJuIF9fdG1wLnZhbDsKfQoKX19ERVZJQ0VfXwpmbG9hdCBuZWFyYnlpbnRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25lYXJieWludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBuZXh0YWZ0ZXJmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9uZXh0YWZ0ZXJfZjMyKF9feCwgX195KTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBub3JtM2RmKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2xlbjNfZjMyKF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmZsb2F0IG5vcm00ZGYoZmxvYXQgX194LCBmbG9hdCBfX3ksIGZsb2F0IF9feiwgZmxvYXQgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9sZW40X2YzMihfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmZsb2F0IG5vcm1jZGZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25jZGZfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbm9ybWNkZmludmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmNkZmludl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBub3JtZihpbnQgX19kaW0sCiAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2EpIHsgLy8gVE9ETzogcGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzIHN1cHBvcnQuCiAgZmxvYXQgX19yID0gMDsKICB3aGlsZSAoX19kaW0tLSkgewogICAgX19yICs9IF9fYVswXSAqIF9fYVswXTsKICAgICsrX19hOwogIH0KCiAgcmV0dXJuIF9fb2NtbF9zcXJ0X2YzMihfX3IpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHBvd2YoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3dfZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBwb3dpZihmbG9hdCBfX3gsIGludCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3duX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgcmNicnRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3JjYnJ0X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHJlbWFpbmRlcmYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19vY21sX3JlbWFpbmRlcl9mMzIoX194LCBfX3kpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHJlbXF1b2YoZmxvYXQgX194LCBmbG9hdCBfX3ksIGludCAqX19xdW8pIHsKICBpbnQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPSBfX29jbWxfcmVtcXVvX2YzMigKICAgICAgX194LCBfX3ksIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopJl9fdG1wKTsKICAqX19xdW8gPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCByaHlwb3RmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfcmh5cG90X2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgcmludGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBybm9ybTNkZihmbG9hdCBfX3gsIGZsb2F0IF9feSwgZmxvYXQgX196KSB7CiAgcmV0dXJuIF9fb2NtbF9ybGVuM19mMzIoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZmxvYXQgcm5vcm00ZGYoZmxvYXQgX194LCBmbG9hdCBfX3ksIGZsb2F0IF9feiwgZmxvYXQgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9ybGVuNF9mMzIoX194LCBfX3ksIF9feiwgX193KTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBybm9ybWYoaW50IF9fZGltLAogICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYSkgeyAvLyBUT0RPOiBwbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMgc3VwcG9ydC4KICBmbG9hdCBfX3IgPSAwOwogIHdoaWxlIChfX2RpbS0tKSB7CiAgICBfX3IgKz0gX19hWzBdICogX19hWzBdOwogICAgKytfX2E7CiAgfQoKICByZXR1cm4gX19vY21sX3JzcXJ0X2YzMihfX3IpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHJvdW5kZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yb3VuZF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCByc3FydGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcnNxcnRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgc2NhbGJsbmYoZmxvYXQgX194LCBsb25nIGludCBfX24pIHsKICByZXR1cm4gKF9fbiA8IElOVF9NQVgpID8gX19vY21sX3NjYWxibl9mMzIoX194LCBfX24pCiAgICAgICAgICAgICAgICAgICAgICAgICA6IF9fb2NtbF9zY2FsYl9mMzIoX194LCBfX24pOwp9CgpfX0RFVklDRV9fCmZsb2F0IHNjYWxibmYoZmxvYXQgX194LCBpbnQgX19uKSB7IHJldHVybiBfX29jbWxfc2NhbGJuX2YzMihfX3gsIF9fbik7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX3NpZ25iaXRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3NpZ25iaXRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NmKGZsb2F0IF9feCwgZmxvYXQgKl9fc2lucHRyLCBmbG9hdCAqX19jb3NwdHIpIHsKICBmbG9hdCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogICpfX3NpbnB0ciA9CiAgICAgIF9fb2NtbF9zaW5jb3NfZjMyKF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBmbG9hdCAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NwaWYoZmxvYXQgX194LCBmbG9hdCAqX19zaW5wdHIsIGZsb2F0ICpfX2Nvc3B0cikgewogIGZsb2F0IF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgKl9fc2lucHRyID0gX19vY21sX3NpbmNvc3BpX2YzMigKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopJl9fdG1wKTsKICAqX19jb3NwdHIgPSBfX3RtcDsKfQoKX19ERVZJQ0VfXwpmbG9hdCBzaW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3Npbl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBzaW5oZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5oX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHNpbnBpZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5waV9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBzcXJ0ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHRhbmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfdGFuX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHRhbmhmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3RhbmhfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgdGdhbW1hZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF90Z2FtbWFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgdHJ1bmNmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3RydW5jX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHkwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF95MF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCB5MWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfeTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgeW5mKGludCBfX24sIGZsb2F0IF9feCkgeyAvLyBUT0RPOiB3ZSBjb3VsZCB1c2UgQWhtZXMgbXVsdGlwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4gUGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzCiAgLy8gICAgICAgc3VwcG9ydC4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4geTBmKF9feCk7CiAgaWYgKF9fbiA9PSAxKQogICAgcmV0dXJuIHkxZihfX3gpOwoKICBmbG9hdCBfX3gwID0geTBmKF9feCk7CiAgZmxvYXQgX194MSA9IHkxZihfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGZsb2F0IF9feDIgPSAoMiAqIF9faSkgLyBfX3ggKiBfX3gxIC0gX194MDsKICAgIF9feDAgPSBfX3gxOwogICAgX194MSA9IF9feDI7CiAgfQoKICByZXR1cm4gX194MTsKfQoKLy8gQkVHSU4gSU5UUklOU0lDUwoKX19ERVZJQ0VfXwpmbG9hdCBfX2Nvc2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX2Nvc19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX2V4cDEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfZXhwMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgX19leHBmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25hdGl2ZV9leHBfZjMyKF9feCk7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JkKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0bl9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JuKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0ZV9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3J1KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0cF9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3J6KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0el9mMzIoX194LCBfX3kpOyB9CiNlbHNlCl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JuKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX3ggKyBfX3k7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC8gX195OyB9CiNlbmRpZgoKX19ERVZJQ0VfXwpmbG9hdCBfX2ZkaXZpZGVmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX3ggLyBfX3k7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JkKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydG5fZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JuKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydGVfZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3J1KGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydHBfZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3J6KGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydHpfZjMyKF9feCwgX195LCBfX3opOwp9CiNlbHNlCl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JuKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9mMzIoX194LCBfX3ksIF9feik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194ICogX195OyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpmbG9hdCBfX2ZyY3BfcmQoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0bl9mMzIoMS4wZiwgX194KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnJjcF9ybihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9kaXZfcnRlX2YzMigxLjBmLCBfX3gpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mcmNwX3J1KGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHBfZjMyKDEuMGYsIF9feCk7IH0KX19ERVZJQ0VfXwpmbG9hdCBfX2ZyY3BfcnooZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0el9mMzIoMS4wZiwgX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnJjcF9ybihmbG9hdCBfX3gpIHsgcmV0dXJuIDEuMGYgLyBfX3g7IH0KI2VuZGlmCgpfX0RFVklDRV9fCmZsb2F0IF9fZnJzcXJ0X3JuKGZsb2F0IF9feCkgeyByZXR1cm4gX19sbHZtX2FtZGdjbl9yc3FfZjMyKF9feCk7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mc3FydF9yZChmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0bl9mMzIoX194KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnNxcnRfcm4oZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfc3FydF9ydGVfZjMyKF9feCk7IH0KX19ERVZJQ0VfXwpmbG9hdCBfX2ZzcXJ0X3J1KGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3NxcnRfcnRwX2YzMihfX3gpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mc3FydF9yeihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0el9mMzIoX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnNxcnRfcm4oZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX3NxcnRfZjMyKF9feCk7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC0gX195OyB9CiNlbmRpZgoKX19ERVZJQ0VfXwpmbG9hdCBfX2xvZzEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfbG9nMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgX19sb2cyZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfbG9nMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX2xvZ2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX2xvZ19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX3Bvd2YoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3dfZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX3NhdHVyYXRlZihmbG9hdCBfX3gpIHsgcmV0dXJuIChfX3ggPCAwKSA/IDAgOiAoKF9feCA+IDEpID8gMSA6IF9feCk7IH0KCl9fREVWSUNFX18Kdm9pZCBfX3NpbmNvc2YoZmxvYXQgX194LCBmbG9hdCAqX19zaW5wdHIsIGZsb2F0ICpfX2Nvc3B0cikgewogICpfX3NpbnB0ciA9IF9fb2NtbF9uYXRpdmVfc2luX2YzMihfX3gpOwogICpfX2Nvc3B0ciA9IF9fb2NtbF9uYXRpdmVfY29zX2YzMihfX3gpOwp9CgpfX0RFVklDRV9fCmZsb2F0IF9fc2luZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfc2luX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IF9fdGFuZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF90YW5fZjMyKF9feCk7IH0KLy8gRU5EIElOVFJJTlNJQ1MKLy8gRU5EIEZMT0FUCgovLyBCRUdJTiBET1VCTEUKX19ERVZJQ0VfXwpkb3VibGUgYWNvcyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYWNvc19mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgYWNvc2goZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NoX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhc2luKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9hc2luX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhc2luaChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYXNpbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGF0YW4oZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2F0YW5fZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGF0YW4yKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9hdGFuMl9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhdGFuaChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYXRhbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNicnQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2NicnRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNlaWwoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2NlaWxfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNvcHlzaWduKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2NvcHlzaWduX2Y2NChfX3gsIF9feSk7Cn0KCl9fREVWSUNFX18KZG91YmxlIGNvcyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfY29zX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjb3NoKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jb3NoX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjb3NwaShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfY29zcGlfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGN5bF9iZXNzZWxfaTAoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2kwX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjeWxfYmVzc2VsX2kxKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pMV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZXJmKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmMoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2VyZmNfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmNpbnYoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2VyZmNpbnZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmN4KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjeF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZXJmaW52KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZpbnZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZXhwX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBleHAxMChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZXhwMTBfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cDIoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2V4cDJfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cG0xKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9leHBtMV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZmFicyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZmFic19mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZmRpbShkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfZmRpbV9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBmbG9vcihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZmxvb3JfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGZtYShkb3VibGUgX194LCBkb3VibGUgX195LCBkb3VibGUgX196KSB7CiAgcmV0dXJuIF9fb2NtbF9mbWFfZjY0KF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBmbWF4KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWF4X2Y2NChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIGZtaW4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX19vY21sX2ZtaW5fZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZm1vZChkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfZm1vZF9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBmcmV4cChkb3VibGUgX194LCBpbnQgKl9fbnB0cikgewogIGludCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogIGRvdWJsZSBfX3IgPQogICAgICBfX29jbWxfZnJleHBfZjY0KF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKikmX190bXApOwogICpfX25wdHIgPSBfX3RtcDsKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBoeXBvdChkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfaHlwb3RfZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwppbnQgaWxvZ2IoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2lsb2diX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCl9fUkVUVVJOX1RZUEUgX19maW5pdGUoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2lzZmluaXRlX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCl9fUkVUVVJOX1RZUEUgX19pc2luZihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfaXNpbmZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2lzbmFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pc25hbl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgajAoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2owX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBqMShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfajFfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGpuKGludCBfX24sIGRvdWJsZSBfX3gpIHsgLy8gVE9ETzogd2UgY291bGQgdXNlIEFobWVzIG11bHRpcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgTWlsbGVyICYgQnJvd24gYWxnb3JpdGhtCiAgLy8gICAgICAgZm9yIGxpbmVhciByZWN1cnJlbmNlcyB0byBnZXQgTyhsb2cgbikgc3RlcHMsIGJ1dCBpdCdzIHVuY2xlYXIgaWYKICAvLyAgICAgICBpdCdkIGJlIGJlbmVmaWNpYWwgaW4gdGhpcyBjYXNlLiBQbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMKICAvLyAgICAgICBzdXBwb3J0LgogIGlmIChfX24gPT0gMCkKICAgIHJldHVybiBqMChfX3gpOwogIGlmIChfX24gPT0gMSkKICAgIHJldHVybiBqMShfX3gpOwoKICBkb3VibGUgX194MCA9IGowKF9feCk7CiAgZG91YmxlIF9feDEgPSBqMShfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGRvdWJsZSBfX3gyID0gKDIgKiBfX2kpIC8gX194ICogX194MSAtIF9feDA7CiAgICBfX3gwID0gX194MTsKICAgIF9feDEgPSBfX3gyOwogIH0KICByZXR1cm4gX194MTsKfQoKX19ERVZJQ0VfXwpkb3VibGUgbGRleHAoZG91YmxlIF9feCwgaW50IF9fZSkgeyByZXR1cm4gX19vY21sX2xkZXhwX2Y2NChfX3gsIF9fZSk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxnYW1tYShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbGdhbW1hX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgbG9uZyBpbnQgbGxyaW50KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yaW50X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgbG9uZyBpbnQgbGxyb3VuZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxvZyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBsb2cxMChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nMTBfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxvZzFwKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2cxcF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgbG9nMihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nMl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgbG9nYihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nYl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGludCBscmludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGludCBscm91bmQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3JvdW5kX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBtb2RmKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19pcHRyKSB7CiAgZG91YmxlIF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgZG91YmxlIF9fciA9CiAgICAgIF9fb2NtbF9tb2RmX2Y2NChfX3gsIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgZG91YmxlICopJl9fdG1wKTsKICAqX19pcHRyID0gX190bXA7CgogIHJldHVybiBfX3I7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5hbihjb25zdCBjaGFyICpfX3RhZ3ApIHsKI2lmICFfV0lOMzIKICB1bmlvbiB7CiAgICBkb3VibGUgdmFsOwogICAgc3RydWN0IGllZWVfZG91YmxlIHsKICAgICAgdWludDY0X3QgbWFudGlzc2EgOiA1MTsKICAgICAgdWludDMyX3QgcXVpZXQgOiAxOwogICAgICB1aW50MzJfdCBleHBvbmVudCA6IDExOwogICAgICB1aW50MzJfdCBzaWduIDogMTsKICAgIH0gYml0czsKICB9IF9fdG1wOwogIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoc2l6ZW9mKF9fdG1wLnZhbCksIHNpemVvZihfX3RtcC5iaXRzKSk7CgogIF9fdG1wLmJpdHMuc2lnbiA9IDB1OwogIF9fdG1wLmJpdHMuZXhwb25lbnQgPSB+MHU7CiAgX190bXAuYml0cy5xdWlldCA9IDF1OwogIF9fdG1wLmJpdHMubWFudGlzc2EgPSBfX21ha2VfbWFudGlzc2EoX190YWdwKTsKCiAgcmV0dXJuIF9fdG1wLnZhbDsKI2Vsc2UKICBfX3N0YXRpY19hc3NlcnRfdHlwZV9zaXplX2VxdWFsKHNpemVvZih1aW50NjRfdCksIHNpemVvZihkb3VibGUpKTsKICB1aW50NjRfdCBfX3ZhbCA9IF9fbWFrZV9tYW50aXNzYShfX3RhZ3ApOwogIF9fdmFsIHw9IDB4RkZGIDw8IDUxOwogIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxkb3VibGUgKj4oJl9fdmFsKTsKI2VuZGlmCn0KCl9fREVWSUNFX18KZG91YmxlIG5lYXJieWludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbmVhcmJ5aW50X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBuZXh0YWZ0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfbmV4dGFmdGVyX2Y2NChfX3gsIF9feSk7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5vcm0oaW50IF9fZGltLAogICAgICAgICAgICBjb25zdCBkb3VibGUgKl9fYSkgeyAvLyBUT0RPOiBwbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMgc3VwcG9ydC4KICBkb3VibGUgX19yID0gMDsKICB3aGlsZSAoX19kaW0tLSkgewogICAgX19yICs9IF9fYVswXSAqIF9fYVswXTsKICAgICsrX19hOwogIH0KCiAgcmV0dXJuIF9fb2NtbF9zcXJ0X2Y2NChfX3IpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtM2QoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfbGVuM19mNjQoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5vcm00ZChkb3VibGUgX194LCBkb3VibGUgX195LCBkb3VibGUgX196LCBkb3VibGUgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9sZW40X2Y2NChfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtY2RmKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uY2RmX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtY2RmaW52KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uY2RmaW52X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBwb3coZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX19vY21sX3Bvd19mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBwb3dpKGRvdWJsZSBfX3gsIGludCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3duX2Y2NChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIHJjYnJ0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yY2JydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcmVtYWluZGVyKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3JlbWFpbmRlcl9mNjQoX194LCBfX3kpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSByZW1xdW8oZG91YmxlIF9feCwgZG91YmxlIF9feSwgaW50ICpfX3F1bykgewogIGludCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogIGRvdWJsZSBfX3IgPSBfX29jbWxfcmVtcXVvX2Y2NCgKICAgICAgX194LCBfX3ksIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopJl9fdG1wKTsKICAqX19xdW8gPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpkb3VibGUgcmh5cG90KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9yaHlwb3RfZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcmludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcm5vcm0oaW50IF9fZGltLAogICAgICAgICAgICAgY29uc3QgZG91YmxlICpfX2EpIHsgLy8gVE9ETzogcGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzIHN1cHBvcnQuCiAgZG91YmxlIF9fciA9IDA7CiAgd2hpbGUgKF9fZGltLS0pIHsKICAgIF9fciArPSBfX2FbMF0gKiBfX2FbMF07CiAgICArK19fYTsKICB9CgogIHJldHVybiBfX29jbWxfcnNxcnRfZjY0KF9fcik7Cn0KCl9fREVWSUNFX18KZG91YmxlIHJub3JtM2QoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfcmxlbjNfZjY0KF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBybm9ybTRkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3ksIGRvdWJsZSBfX3osIGRvdWJsZSBfX3cpIHsKICByZXR1cm4gX19vY21sX3JsZW40X2Y2NChfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSByb3VuZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHJzcXJ0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yc3FydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgc2NhbGJsbihkb3VibGUgX194LCBsb25nIGludCBfX24pIHsKICByZXR1cm4gKF9fbiA8IElOVF9NQVgpID8gX19vY21sX3NjYWxibl9mNjQoX194LCBfX24pCiAgICAgICAgICAgICAgICAgICAgICAgICA6IF9fb2NtbF9zY2FsYl9mNjQoX194LCBfX24pOwp9Cl9fREVWSUNFX18KZG91YmxlIHNjYWxibihkb3VibGUgX194LCBpbnQgX19uKSB7IHJldHVybiBfX29jbWxfc2NhbGJuX2Y2NChfX3gsIF9fbik7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX3NpZ25iaXQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3NpZ25iaXRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHNpbihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfc2luX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCnZvaWQgc2luY29zKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19zaW5wdHIsIGRvdWJsZSAqX19jb3NwdHIpIHsKICBkb3VibGUgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICAqX19zaW5wdHIgPSBfX29jbWxfc2luY29zX2Y2NCgKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NwaShkb3VibGUgX194LCBkb3VibGUgKl9fc2lucHRyLCBkb3VibGUgKl9fY29zcHRyKSB7CiAgZG91YmxlIF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgKl9fc2lucHRyID0gX19vY21sX3NpbmNvc3BpX2Y2NCgKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18KZG91YmxlIHNpbmgoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3NpbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHNpbnBpKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5waV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgc3FydChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfc3FydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgdGFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF90YW5fZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHRhbmgoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3RhbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHRnYW1tYShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfdGdhbW1hX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSB0cnVuYyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfdHJ1bmNfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHkwKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF95MF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgeTEoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3kxX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSB5bihpbnQgX19uLCBkb3VibGUgX194KSB7IC8vIFRPRE86IHdlIGNvdWxkIHVzZSBBaG1lcyBtdWx0aXBsaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4gUGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzCiAgLy8gICAgICAgc3VwcG9ydC4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4geTAoX194KTsKICBpZiAoX19uID09IDEpCiAgICByZXR1cm4geTEoX194KTsKCiAgZG91YmxlIF9feDAgPSB5MChfX3gpOwogIGRvdWJsZSBfX3gxID0geTEoX194KTsKICBmb3IgKGludCBfX2kgPSAxOyBfX2kgPCBfX247ICsrX19pKSB7CiAgICBkb3VibGUgX194MiA9ICgyICogX19pKSAvIF9feCAqIF9feDEgLSBfX3gwOwogICAgX194MCA9IF9feDE7CiAgICBfX3gxID0gX194MjsKICB9CgogIHJldHVybiBfX3gxOwp9CgovLyBCRUdJTiBJTlRSSU5TSUNTCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZGFkZF9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9hZGRfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kYWRkX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2FkZF9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RhZGRfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfYWRkX3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZGFkZF9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9hZGRfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kYWRkX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCArIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZGRpdl9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9kaXZfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kZGl2X3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2Rpdl9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RkaXZfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfZGl2X3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZGRpdl9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9kaXZfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kZGl2X3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCAvIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZG11bF9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9tdWxfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kbXVsX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX211bF9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RtdWxfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfbXVsX3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZG11bF9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9tdWxfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kbXVsX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCAqIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9yZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0bl9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ybihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0ZV9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ydShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0cF9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9yeihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0el9mNjQoMS4wLCBfX3gpOyB9CiNlbHNlCl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ybihkb3VibGUgX194KSB7IHJldHVybiAxLjAgLyBfX3g7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JkKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0bl9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0ZV9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3J1KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0cF9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3J6KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0el9mNjQoX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X2Y2NChfX3gpOyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpkb3VibGUgX19kc3ViX3JkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3N1Yl9ydG5fZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzdWJfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfc3ViX3J0ZV9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZHN1Yl9ydShkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9zdWJfcnRwX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kc3ViX3J6KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3N1Yl9ydHpfZjY0KF9feCwgX195KTsKfQojZWxzZQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzdWJfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX194IC0gX195OyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcmQoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0bl9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0ZV9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0cF9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcnooZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0el9mNjQoX194LCBfX3ksIF9feik7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX2Y2NChfX3gsIF9feSwgX196KTsKfQojZW5kaWYKLy8gRU5EIElOVFJJTlNJQ1MKLy8gRU5EIERPVUJMRQoKLy8gQyBvbmx5IG1hY3JvcwojaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTAojZGVmaW5lIGlzZmluaXRlKF9feCkgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19maW5pdGVmLCBkb3VibGUgOiBfX2Zpbml0ZSkoX194KQojZGVmaW5lIGlzaW5mKF9feCkgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19pc2luZmYsIGRvdWJsZSA6IF9faXNpbmYpKF9feCkKI2RlZmluZSBpc25hbihfX3gpIF9HZW5lcmljKChfX3gpLCBmbG9hdCA6IF9faXNuYW5mLCBkb3VibGUgOiBfX2lzbmFuKShfX3gpCiNkZWZpbmUgc2lnbmJpdChfX3gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19zaWduYml0ZiwgZG91YmxlIDogX19zaWduYml0KShfX3gpCiNlbmRpZiAvLyAhZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKdGVtcGxhdGUgPGNsYXNzIFQ+IF9fREVWSUNFX18gVCBtaW4oVCBfX2FyZzEsIFQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPCBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gX19ERVZJQ0VfXyBUIG1heChUIF9fYXJnMSwgVCBfX2FyZzIpIHsKICByZXR1cm4gKF9fYXJnMSA+IF9fYXJnMikgPyBfX2FyZzEgOiBfX2FyZzI7Cn0KCl9fREVWSUNFX18gaW50IG1pbihpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPCBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9Cl9fREVWSUNFX18gaW50IG1heChpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPiBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9CgpfX0RFVklDRV9fCmZsb2F0IG1heChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gZm1heGYoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBtYXgoZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gZm1heChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgbWluKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBmbWluZihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIG1pbihkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBmbWluKF9feCwgX195KTsgfQoKI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pICYmICFkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQpfX2hvc3RfXyBpbmxpbmUgc3RhdGljIGludCBtaW4oaW50IF9fYXJnMSwgaW50IF9fYXJnMikgewogIHJldHVybiBzdGQ6Om1pbihfX2FyZzEsIF9fYXJnMik7Cn0KCl9faG9zdF9fIGlubGluZSBzdGF0aWMgaW50IG1heChpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIHN0ZDo6bWF4KF9fYXJnMSwgX19hcmcyKTsKfQojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNlbmRpZgoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX18iKQojcHJhZ21hIHBvcF9tYWNybygiX19SRVRVUk5fVFlQRSIpCgojZW5kaWYgLy8gX19DTEFOR19ISVBfTUFUSF9IX18KAC8qPT09LS0tLSBfX3dtbWludHJpbl9hZXMuaCAtIEFFUyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19XTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8X193bW1pbnRyaW5fYWVzLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx3bW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1dNTUlOVFJJTl9BRVNfSAojZGVmaW5lIF9fV01NSU5UUklOX0FFU19ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYWVzIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIFBlcmZvcm1zIGEgc2luZ2xlIHJvdW5kIG9mIEFFUyBlbmNyeXB0aW9uIHVzaW5nIHRoZSBFcXVpdmFsZW50Ci8vLyAgICBJbnZlcnNlIENpcGhlciwgdHJhbnNmb3JtaW5nIHRoZSBzdGF0ZSB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBzb3VyY2UKLy8vICAgIG9wZXJhbmQgdXNpbmcgYSAxMjgtYml0IHJvdW5kIGtleSB2YWx1ZSBjb250YWluZWQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFFU0VOQyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdGF0ZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX1IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZCBrZXkgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZW5jX3NpMTI4KF9fbTEyOGkgX19WLCBfX20xMjhpIF9fUikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hZXNlbmMxMjgoKF9fdjJkaSlfX1YsIChfX3YyZGkpX19SKTsKfQoKLy8vIFBlcmZvcm1zIHRoZSBmaW5hbCByb3VuZCBvZiBBRVMgZW5jcnlwdGlvbiB1c2luZyB0aGUgRXF1aXZhbGVudAovLy8gICAgSW52ZXJzZSBDaXBoZXIsIHRyYW5zZm9ybWluZyB0aGUgc3RhdGUgdmFsdWUgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICBvcGVyYW5kIHVzaW5nIGEgMTI4LWJpdCByb3VuZCBrZXkgdmFsdWUgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICBvcGVyYW5kLCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNFTkNMQVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN0YXRlIHZhbHVlLgovLy8gXHBhcmFtIF9fUgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJvdW5kIGtleSB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBlbmNyeXB0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNlbmNsYXN0X3NpMTI4KF9fbTEyOGkgX19WLCBfX20xMjhpIF9fUikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hZXNlbmNsYXN0MTI4KChfX3YyZGkpX19WLCAoX192MmRpKV9fUik7Cn0KCi8vLyBQZXJmb3JtcyBhIHNpbmdsZSByb3VuZCBvZiBBRVMgZGVjcnlwdGlvbiB1c2luZyB0aGUgRXF1aXZhbGVudAovLy8gICAgSW52ZXJzZSBDaXBoZXIsIHRyYW5zZm9ybWluZyB0aGUgc3RhdGUgdmFsdWUgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICBvcGVyYW5kIHVzaW5nIGEgMTI4LWJpdCByb3VuZCBrZXkgdmFsdWUgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICBvcGVyYW5kLCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNERUMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3RhdGUgdmFsdWUuCi8vLyBccGFyYW0gX19SCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcm91bmQga2V5IHZhbHVlLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRlY3J5cHRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2RlY19zaTEyOChfX20xMjhpIF9fViwgX19tMTI4aSBfX1IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWVzZGVjMTI4KChfX3YyZGkpX19WLCAoX192MmRpKV9fUik7Cn0KCi8vLyBQZXJmb3JtcyB0aGUgZmluYWwgcm91bmQgb2YgQUVTIGRlY3J5cHRpb24gdXNpbmcgdGhlIEVxdWl2YWxlbnQKLy8vICAgIEludmVyc2UgQ2lwaGVyLCB0cmFuc2Zvcm1pbmcgdGhlIHN0YXRlIHZhbHVlIGZyb20gdGhlIGZpcnN0IHNvdXJjZQovLy8gICAgb3BlcmFuZCB1c2luZyBhIDEyOC1iaXQgcm91bmQga2V5IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgb3BlcmFuZCwgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUVTREVDTEFTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdGF0ZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX1IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZCBrZXkgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZGVjcnlwdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZGVjbGFzdF9zaTEyOChfX20xMjhpIF9fViwgX19tMTI4aSBfX1IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDEyOCgoX192MmRpKV9fViwgKF9fdjJkaSlfX1IpOwp9CgovLy8gQXBwbGllcyB0aGUgQUVTIEludk1peENvbHVtbnMoKSB0cmFuc2Zvcm1hdGlvbiB0byBhbiBleHBhbmRlZCBrZXkKLy8vICAgIGNvbnRhaW5lZCBpbiB0aGUgc291cmNlIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNJTUMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZXhwYW5kZWQga2V5LgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzaW1jX3NpMTI4KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2Flc2ltYzEyOCgoX192MmRpKV9fVik7Cn0KCi8vLyBHZW5lcmF0ZXMgYSByb3VuZCBrZXkgZm9yIEFFUyBlbmNyeXB0aW9uLCBvcGVyYXRpbmcgb24gMTI4LWJpdCBkYXRhCi8vLyAgICBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kIGFuZCB1c2luZyBhbiA4LWJpdCByb3VuZCBjb25zdGFudAovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4KF9fbTEyOGkgQywgY29uc3QgaW50IFIpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0tFWUdFTkFTU0lTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBDCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdGhhdCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBRVMgZW5jcnlwdGlvbiBrZXkuCi8vLyBccGFyYW0gUgovLy8gICAgQW4gOC1iaXQgcm91bmQgY29uc3RhbnQgdXNlZCB0byBnZW5lcmF0ZSB0aGUgQUVTIGVuY3J5cHRpb24ga2V5LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHJvdW5kIGtleSBmb3IgQUVTIGVuY3J5cHRpb24uCiNkZWZpbmUgX21tX2Flc2tleWdlbmFzc2lzdF9zaTEyOChDLCBSKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2Flc2tleWdlbmFzc2lzdDEyOCgoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoUikpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmICAvKiBfX1dNTUlOVFJJTl9BRVNfSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0gYXZ4NTEyYmYxNmludHJpbi5oIC0gQVZYNTEyX0JGMTYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmJmMTZpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyQkYxNklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJCRjE2SU5UUklOX0gKCnR5cGVkZWYgc2hvcnQgX19tNTEyYmggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7CnR5cGVkZWYgc2hvcnQgX19tMjU2YmggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19iZmxvYXQxNjsKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmJmMTYiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYmYxNiIpKSkKCi8vLyBDb252ZXJ0IE9uZSBCRjE2IERhdGEgdG8gT25lIFNpbmdsZSBGbG9hdCBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSBiZmxvYXQgZGF0YS4KLy8vIFxyZXR1cm5zIEEgZmxvYXQgZGF0YSB3aG9zZSBzaWduIGZpZWxkIGFuZCBleHBvbmVudCBmaWVsZCBrZWVwIHVuY2hhbmdlZCwKLy8vICAgIGFuZCBmcmFjdGlvbiBmaWVsZCBpcyBleHRlbmRlZCB0byAyMyBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlMgX21tX2N2dHNiaF9zcyhfX2JmbG9hdDE2IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzYmYxNjJzc18zMihfX0EpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMjU2IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAyNTYgYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0bmUycHNfcGJoKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lMnBzMmJmMTZfNTEyKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CKTsKfQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAzMi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0Egb3IgX19CLiBBIDAgbWVhbnMgZWxlbWVudCBmcm9tIF9fVy4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XSB3aG9zZSBsb3dlciAyNTYgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDI1NiBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tNTEyYmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dG5lMnBzX3BiaChfX201MTJiaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDMyLWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQSBvciBfX0IuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMjU2IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAyNTYgYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0bmUycHNfcGJoKF9fbW1hc2szMiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XSBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0bmVwc19wYmgoX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzUxMl9tYXNrKChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0EuIEEgMCBtZWFucyBlbGVtZW50IGZyb20gX19XLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2YmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dG5lcHNfcGJoKF9fbTI1NmJoIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzUxMl9tYXNrKChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0EuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZiaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dG5lcHNfcGJoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl81MTJfbWFzaygoX192MTZzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZHBiZjE2X3BzKF9fbTUxMiBfX0QsIF9fbTUxMmJoIF9fQSwgX19tNTEyYmggX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfZHBiZjE2cHNfNTEyKChfX3YxNnNmKSBfX0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0IpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgMTYtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIF9fQSBhbmQgX19CJ3MgZG90IHByb2R1Y3QgYWNjdW11bGF0ZWQgd2l0aCBfX0QuIEEgMCBtZWFucyBfX0QuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19kcGJmMTZfcHMoX19tNTEyIF9fRCwgX19tbWFzazE2IF9fVSwgX19tNTEyYmggX19BLCBfX201MTJiaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9kcGJmMTZfcHMoX19ELCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fRCk7Cn0KCi8vLyBEb3QgUHJvZHVjdCBvZiBCRjE2IFBhaXJzIEFjY3VtdWxhdGVkIGludG8gUGFja2VkIFNpbmdsZSBQcmVjaXNpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgX19BIGFuZCBfX0IncyBkb3QgcHJvZHVjdCBhY2N1bXVsYXRlZCB3aXRoIF9fRC4gQSAwIG1lYW5zIDAuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZHBiZjE2X3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0QsIF9fbTUxMmJoIF9fQSwgX19tNTEyYmggX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfZHBiZjE2X3BzKF9fRCwgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIEJGMTYgRGF0YSB0byBQYWNrZWQgZmxvYXQgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2N2dHBiaF9wcyhfX20yNTZiaCBfX0EpIHsKICByZXR1cm4gX21tNTEyX2Nhc3RzaTUxMl9wcygoX19tNTEyaSlfbW01MTJfc2xsaV9lcGkzMigKICAgICAgKF9fbTUxMmkpX21tNTEyX2N2dGVwaTE2X2VwaTMyKChfX20yNTZpKV9fQSksIDE2KSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBCRjE2IERhdGEgdG8gUGFja2VkIGZsb2F0IERhdGEgdXNpbmcgemVyb2luZyBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrLiBFbGVtZW50cyBhcmUgemVyb2VkIG91dCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sKLy8vICAgIGJpdCBpcyBub3Qgc2V0LgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBiaF9wcyhfX21tYXNrMTYgX19VLCBfX20yNTZiaCBfX0EpIHsKICByZXR1cm4gX21tNTEyX2Nhc3RzaTUxMl9wcygoX19tNTEyaSlfbW01MTJfc2xsaV9lcGkzMigKICAgICAgKF9fbTUxMmkpX21tNTEyX21hc2t6X2N2dGVwaTE2X2VwaTMyKChfX21tYXNrMTYpX19VLCAoX19tMjU2aSlfX0EpLCAxNikpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgQkYxNiBEYXRhIHRvIFBhY2tlZCBmbG9hdCBEYXRhIHVzaW5nIG1lcmdpbmcgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fUwovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uIEVsZW1lbnRzIGFyZSBjb3BpZWQgZnJvbSBfX1Mgd2hlbgovLy8gICAgIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgYml0IGlzIG5vdCBzZXQuCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrLgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGJoX3BzKF9fbTUxMiBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmJoIF9fQSkgewogIHJldHVybiBfbW01MTJfY2FzdHNpNTEyX3BzKChfX201MTJpKV9tbTUxMl9tYXNrX3NsbGlfZXBpMzIoCiAgICAgIChfX201MTJpKV9fUywgKF9fbW1hc2sxNilfX1UsCiAgICAgIChfX201MTJpKV9tbTUxMl9jdnRlcGkxNl9lcGkzMigoX19tMjU2aSlfX0EpLCAxNikpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKCiNlbmRpZgoALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMmNkaW50cmluLmggLSBBVlg1MTJDRCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmNkaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkNESU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkNESU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJjZCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9jb25mbGljdF9lcGk2NCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3ZwY29uZmxpY3RkaV81MTIgKChfX3Y4ZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbmZsaWN0X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9jb25mbGljdF9lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2NvbmZsaWN0X2VwaTMyIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBjb25mbGljdHNpXzUxMiAoKF9fdjE2c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbmZsaWN0X2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2NvbmZsaWN0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2NvbmZsaWN0X2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY29uZmxpY3RfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2x6Y250X2VwaTMyIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBsemNudGRfNTEyICgoX192MTZzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfbHpjbnRfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2x6Y250X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9semNudF9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2x6Y250X2VwaTY0IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBsemNudHFfNTEyICgoX192OGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19semNudF9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfbHpjbnRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2Jyb2FkY2FzdG1iX2VwaTY0IChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9tbTUxMl9zZXQxX2VwaTY0KChsb25nIGxvbmcpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9icm9hZGNhc3Rtd19lcGkzMiAoX19tbWFzazE2IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX21tNTEyX3NldDFfZXBpMzIoKGludCkgX19BKTsKCn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAYXZ4NTEydmxiZjE2aW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tLS0tIGhyZXNldGludHJpbi5oIC0gSFJFU0VUIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fWDg2R1BSSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGhyZXNldGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2Z3ByaW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19IUkVTRVRJTlRSSU5fSAojZGVmaW5lIF9fSFJFU0VUSU5UUklOX0gKCiNpZiBfX2hhc19leHRlbnNpb24oZ251X2FzbSkKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiaHJlc2V0IikpKQoKLy8vIFByb3ZpZGVzIGEgaGludCB0byB0aGUgcHJvY2Vzc29yIHRvIHNlbGVjdGl2ZWx5IHJlc2V0IHRoZSBwcmVkaWN0aW9uCi8vLyAgICBoaXN0b3J5IG9mIHRoZSBjdXJyZW50IGxvZ2ljYWwgcHJvY2Vzc29yIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyCi8vLyAgICB2YWx1ZSBcYSBfX2VheC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEhSRVNFVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIElGIF9fZWF4ID09IDAKLy8vICAgICAgLy8gbm9wCi8vLyAgICBFTFNFCi8vLyAgICAgIEZPUiBpIDo9IDAgdG8gMzEKLy8vICAgICAgICBJRiBfX2VheFtpXQovLy8gICAgICAgICAgUmVzZXRQcmVkaWN0aW9uRmVhdHVyZShpKQovLy8gICAgICAgIEZJCi8vLyAgICAgIEVOREZPUgovLy8gICAgRkkKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9ocmVzZXQoaW50IF9fZWF4KQp7CiAgX19hc21fXyAoImhyZXNldCAkMCIgOjogImEiKF9fZWF4KSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX2hhc19leHRlbnNpb24oZ251X2FzbSkgKi8KCiNlbmRpZiAvKiBfX0hSRVNFVElOVFJJTl9IICovCgBpc282NDYuaABsaW1pdHMuaABvbXAuaAAvLz09PS0tLSBvcGVuY2wtYy5oIC0gT3BlbkNMIEMgbGFuZ3VhZ2UgYnVpbHRpbiBmdW5jdGlvbiBoZWFkZXIgLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBfT1BFTkNMX0hfCiNkZWZpbmUgX09QRU5DTF9IXwoKI2luY2x1ZGUgIm9wZW5jbC1jLWJhc2UuaCIKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmbmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCiNkZWZpbmUgY2xfa2hyX2RlcHRoX2ltYWdlcwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fIDwgQ0xfVkVSU0lPTl8yXzAKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2tocl8zZF9pbWFnZV93cml0ZXMgOiBlbmFibGUKI2VuZGlmIC8vY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA8IENMX1ZFUlNJT05fMl8wCgoKI2lmIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzFfMikpICYmIGRlZmluZWQoX19TUElSX18pCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9pbnRlbF9wbGFuYXJfeXV2IDogYmVnaW4KI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2ludGVsX3BsYW5hcl95dXYgOiBlbmQKI2VuZGlmIC8vIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzFfMikpICYmIGRlZmluZWQoX19TUElSX18pCgojZGVmaW5lIF9fb3ZsZCBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKQojZGVmaW5lIF9fY29udiBfX2F0dHJpYnV0ZV9fKChjb252ZXJnZW50KSkKCi8vIE9wdGltaXphdGlvbnMKI2RlZmluZSBfX3B1cmVmbiBfX2F0dHJpYnV0ZV9fKChwdXJlKSkKI2RlZmluZSBfX2NuZm4gX19hdHRyaWJ1dGVfXygoY29uc3QpKQoKCi8vIE9wZW5DTCB2MS4xLzEuMi8yLjAgczYuMi4zIC0gRXhwbGljaXQgY29udmVyc2lvbnMKCmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4oY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0ZSh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVjaGFyKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnR6KHVjaGFyKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bih1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdCh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooc2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooc2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eih1c2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cCh1c2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4odXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eihpbnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChpbnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4oaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHoodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cCh1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4odWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHoobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4obG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0ZSh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVsb25nKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnR6KHVsb25nKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bih1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdCh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooZmxvYXQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooZmxvYXQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGZsb2F0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZShjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUoY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4oY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eih1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHAoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRlKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoodXNob3J0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydHoodXNob3J0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cCh1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRuKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcih1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0KHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eihpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4oaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUodWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoodWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKHVpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cCh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4odWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcih1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZShsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUobG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoobG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KGxvbmcpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGxvbmcpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4obG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eih1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHAoZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoZmxvYXQpOwoKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZShjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KGNoYXIpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGNoYXIpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bihjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eih1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHAoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0bihzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoodXNob3J0KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHoodXNob3J0KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRuKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0KHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eihpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUodWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoodWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKHVpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4odWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZShsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUobG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoobG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KGxvbmcpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGxvbmcpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bihsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4obG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eih1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHAoZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0bihmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUodWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHVjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4odWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHNob3J0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHNob3J0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bihzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eih1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cCh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0ZShpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHAoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0bihpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRlKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydHoodWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRuKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4obG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4obG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUodWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHVsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4odWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KGZsb2F0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGZsb2F0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bihmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdChmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZSh1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodWNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAodWNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bih1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHooc2hvcnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoc2hvcnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydGUodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4odXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0cChpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRuKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydGUodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydGUodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0eih1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydG4odWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4odWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXQodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZSh1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodWxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAodWxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bih1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHooZmxvYXQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoZmxvYXQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0ZShjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRlKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodWNoYXIpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHoodWNoYXIpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRuKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eihzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZSh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUodXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KHVzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKHVzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bih1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4odXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZShpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bihpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZSh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eih1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bih1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdCh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0ZShsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4obG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRlKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodWxvbmcpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHoodWxvbmcpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRuKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eihmbG9hdCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihmbG9hdCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRlKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0cChjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1Y2hhcik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eih1Y2hhcik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydG4odWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXQodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KHNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KHNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZSh1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHoodXNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAodXNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bih1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHooaW50KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoaW50KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHoodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRlKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0cChsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1bG9uZyk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eih1bG9uZyk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydG4odWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXQodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KGZsb2F0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGZsb2F0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChmbG9hdCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihjaGFyKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChjaGFyKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4oY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHoodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cCh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydGUoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydG4oc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0ZSh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHVzaG9ydCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnR6KHVzaG9ydCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0bih1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdCh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHooaW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooaW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cChpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyhpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1aW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cCh1aW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihsb25nKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChsb25nKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4obG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHoodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cCh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydGUoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydG4oZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGZsb2F0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGNoYXIpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1Y2hhcik7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWNoYXIpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHooc2hvcnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKHNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUodXNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1c2hvcnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKHVzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4odXNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUoaW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihpbnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4oaW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHoodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4odWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdCh1aW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGxvbmcpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1bG9uZyk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWxvbmcpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShmbG9hdCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHooZmxvYXQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGZsb2F0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihmbG9hdCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChmbG9hdCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0ZShjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRlKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodWNoYXIyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHoodWNoYXIyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRuKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eihzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZSh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUodXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KHVzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKHVzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bih1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4odXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdCh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZShpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KGludDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGludDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bihpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdChpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZSh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eih1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bih1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdCh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0ZShsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4obG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRlKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodWxvbmcyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHoodWxvbmcyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRuKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eihmbG9hdDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihmbG9hdDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoZmxvYXQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHooY2hhcjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoY2hhcjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRuKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydGUodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eih1c2hvcnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0eih1c2hvcnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4odXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KGludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZSh1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eih1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAodWludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bih1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoobG9uZzIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAobG9uZzIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRuKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChmbG9hdDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eihjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4oY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHoodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cCh1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Mih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydGUoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRwKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0ZSh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHVzaG9ydDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KHVzaG9ydDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0bih1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdCh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHooaW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooaW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cChpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MihpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1aW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cCh1aW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eihsb25nMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChsb25nMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4obG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHoodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cCh1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Mih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydGUoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRwKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooY2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooY2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MihjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1Y2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cCh1Y2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihzaG9ydDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChzaG9ydDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4oc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZSh1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHoodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHAodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cCh1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydGUoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRwKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydG4oaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0ZSh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZSh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVpbnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnR6KHVpbnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHAodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0bih1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bih1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdCh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHoobG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHoobG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mihsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1bG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cCh1bG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihmbG9hdDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChmbG9hdDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4oZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQoZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eihjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4oY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUodWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHVjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4odWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZShzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHNob3J0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHNob3J0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eih1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cCh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRuKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0ZShpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHAoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4oaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0bihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRlKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWludDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydHoodWludDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cCh1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRuKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRuKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0KHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eihsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4obG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4obG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUodWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHVsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4odWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZShmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KGZsb2F0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGZsb2F0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydG4oY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZSh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVjaGFyMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnR6KHVjaGFyMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bih1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdCh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooc2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooc2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eih1c2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cCh1c2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4odXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eihpbnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChpbnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4oaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHoodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cCh1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4odWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Mih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHoobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydG4obG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZSh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVsb25nMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnR6KHVsb25nMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bih1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdCh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooZmxvYXQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooZmxvYXQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0ZShjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRlKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodWNoYXIyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHoodWNoYXIyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRuKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eihzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZSh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUodXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KHVzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKHVzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bih1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4odXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdCh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZShpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KGludDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGludDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bihpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdChpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZSh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eih1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bih1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdCh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0ZShsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4obG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRlKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodWxvbmcyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHoodWxvbmcyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRuKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eihmbG9hdDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihmbG9hdDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoZmxvYXQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHooY2hhcjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoY2hhcjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRuKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydGUodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eih1c2hvcnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0eih1c2hvcnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4odXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KGludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZSh1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eih1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAodWludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bih1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoobG9uZzIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAobG9uZzIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRuKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChmbG9hdDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHAoY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihjaGFyMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZSh1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodWNoYXIyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVjaGFyMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bih1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KHNob3J0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIoc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKHVzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodXNob3J0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cCh1c2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKHVzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1c2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKGludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooaW50Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKGludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIodWludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHAobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4obG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mihsb25nMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZSh1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodWxvbmcyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVsb25nMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bih1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoZmxvYXQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KGZsb2F0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChmbG9hdDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oZmxvYXQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIoZmxvYXQyKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRuKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1Y2hhcjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0eih1Y2hhcjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4odWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KHNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KHNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZSh1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHoodXNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAodXNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bih1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHooaW50Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoaW50Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHoodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjModWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRuKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1bG9uZzMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0eih1bG9uZzMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4odWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KGZsb2F0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGZsb2F0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChmbG9hdDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihjaGFyMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChjaGFyMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4oY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHoodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cCh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydGUoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0ZSh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHVzaG9ydDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnR6KHVzaG9ydDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAodXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0bih1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjModXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdCh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooaW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooaW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyhpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1aW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cCh1aW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjModWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihsb25nMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChsb25nMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4obG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHoodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cCh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydGUoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KGZsb2F0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZShjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGNoYXIzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGNoYXIzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bihjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdChjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eih1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0ZShzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0bihzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRlKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoodXNob3J0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHoodXNob3J0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cCh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRuKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0KHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eihpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUodWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoodWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKHVpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cCh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4odWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZShsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUobG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoobG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGxvbmczKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGxvbmczKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bihsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4obG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myhsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdChsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eih1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0ZShmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0bihmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUodWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHVjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4odWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHNob3J0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHNob3J0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eih1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0cCh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0ZShpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHAoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0bihpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRlKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWludDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydHoodWludDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0cCh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRuKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0KHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4obG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4obG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUodWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHVsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4odWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGZsb2F0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGZsb2F0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KGNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZSh1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodWNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAodWNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bih1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHooc2hvcnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoc2hvcnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydGUodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydG4odXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDModXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRlKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0cChpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydGUodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydGUodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1aW50Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0eih1aW50Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4odWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydG4odWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXQodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KGxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZSh1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodWxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAodWxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bih1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHooZmxvYXQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoZmxvYXQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0ZShjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHooY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHAoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MyhjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodWNoYXIzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHoodWNoYXIzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRuKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0KHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZSh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUodXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KHVzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKHVzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bih1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4odXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdCh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZShpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHooaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KGludDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKGludDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bihpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MyhpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZSh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eih1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bih1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdCh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0ZShsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHAobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4obG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myhsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodWxvbmczKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHoodWxvbmczKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRuKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0KHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihmbG9hdDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihmbG9hdDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRuKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1Y2hhcjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0eih1Y2hhcjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4odWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KHNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KHNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZSh1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHoodXNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAodXNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bih1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHooaW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoaW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHoodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzModWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRuKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1bG9uZzMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0eih1bG9uZzMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4odWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KGZsb2F0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGZsb2F0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChmbG9hdDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihjaGFyMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChjaGFyMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4oY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHoodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cCh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydGUoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0ZSh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHVzaG9ydDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnR6KHVzaG9ydDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAodXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0bih1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzModXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdCh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooaW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooaW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyhpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1aW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cCh1aW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzModWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihsb25nMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChsb25nMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4obG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHoodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cCh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydGUoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KGZsb2F0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0cChjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGNoYXIzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1Y2hhcjMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWNoYXIzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooc2hvcnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKHNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MyhzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUodXNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1c2hvcnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKHVzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4odXNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUoaW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihpbnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4oaW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHoodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4odWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Myh1aW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0cChsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGxvbmczKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1bG9uZzMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWxvbmczKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShmbG9hdDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooZmxvYXQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGZsb2F0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihmbG9hdDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MyhmbG9hdDMpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydGUoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRwKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4oY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZSh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVjaGFyNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KHVjaGFyNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0bih1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdCh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooc2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooc2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eih1c2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cCh1c2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4odXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eihpbnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChpbnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4oaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHoodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eih1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cCh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4odWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNCh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydGUobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHoobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRwKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4obG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZSh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVsb25nNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KHVsb25nNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0bih1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdCh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooZmxvYXQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooZmxvYXQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGZsb2F0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUoY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bihjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eih1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0ZShzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0bihzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRlKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoodXNob3J0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydHoodXNob3J0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRuKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0KHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eihpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUodWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoodWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKHVpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4odWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUobG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoobG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGxvbmc0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGxvbmc0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bihsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4obG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eih1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0ZShmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0bihmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoZmxvYXQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHooY2hhcjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoY2hhcjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0cChzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRuKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eih1c2hvcnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0eih1c2hvcnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydG4odXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXQodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KGludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZSh1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eih1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAodWludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bih1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoobG9uZzQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAobG9uZzQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0cChmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRuKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZSh1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodWNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAodWNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bih1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4odXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRlKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0cChpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRuKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydGUodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1aW50NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0eih1aW50NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydG4odWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4odWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZSh1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodWxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAodWxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bih1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooZmxvYXQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoZmxvYXQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHooY2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooY2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1Y2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cCh1Y2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eihzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4oc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0ZSh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHoodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cCh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bih1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NCh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRwKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydG4oaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0ZSh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0ZSh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVpbnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnR6KHVpbnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0bih1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bih1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdCh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHoobG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHoobG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1bG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cCh1bG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eihmbG9hdDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChmbG9hdDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4oZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRlKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydGUodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1Y2hhcjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eih1Y2hhcjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydG4odWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KHNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KHNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZSh1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHoodXNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAodXNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bih1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHooaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHoodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRlKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydGUodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1bG9uZzQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eih1bG9uZzQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydG4odWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KGZsb2F0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGZsb2F0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydGUoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRwKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4oY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZSh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVjaGFyNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KHVjaGFyNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0bih1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdCh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooc2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooc2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eih1c2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cCh1c2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4odXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eihpbnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChpbnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4oaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHoodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eih1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cCh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4odWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNCh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydGUobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHoobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRwKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4obG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZSh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVsb25nNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KHVsb25nNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0bih1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdCh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooZmxvYXQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooZmxvYXQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGZsb2F0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUoY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGNoYXI0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGNoYXI0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bihjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eih1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0ZShzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0bihzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRlKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoodXNob3J0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydHoodXNob3J0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRuKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0KHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eihpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUodWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoodWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKHVpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4odWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUobG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoobG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bihsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4obG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eih1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0ZShmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0bihmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoZmxvYXQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoY2hhcjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUodWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVjaGFyNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1Y2hhcjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4odWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eihzaG9ydDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoc2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZSh1c2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVzaG9ydDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAodXNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bih1c2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodXNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZShpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGludDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoaW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bihpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoaW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZSh1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eih1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bih1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KHVpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQobG9uZzQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUodWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVsb25nNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1bG9uZzQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4odWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGZsb2F0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eihmbG9hdDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoZmxvYXQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGZsb2F0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KGZsb2F0NCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0ZShjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRlKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodWNoYXI4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHoodWNoYXI4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRuKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eihzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZSh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUodXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KHVzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKHVzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bih1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4odXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZShpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KGludDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGludDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bihpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZSh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eih1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bih1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdCh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0ZShsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4obG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRlKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodWxvbmc4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHoodWxvbmc4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRuKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eihmbG9hdDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihmbG9hdDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoZmxvYXQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHooY2hhcjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoY2hhcjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRuKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydGUodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eih1c2hvcnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0eih1c2hvcnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4odXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KGludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZSh1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eih1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAodWludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bih1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoobG9uZzgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAobG9uZzgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRuKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChmbG9hdDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eihjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4oY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHoodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cCh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OCh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydGUoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRwKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0ZSh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHVzaG9ydDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KHVzaG9ydDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0bih1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdCh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHooaW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooaW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1aW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cCh1aW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eihsb25nOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChsb25nOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4obG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHoodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cCh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OCh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydGUoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRwKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooY2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooY2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1Y2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cCh1Y2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihzaG9ydDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChzaG9ydDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4oc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZSh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHoodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHAodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cCh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bih1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OCh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydGUoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRwKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydG4oaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0ZSh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZSh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVpbnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnR6KHVpbnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHAodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0bih1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bih1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdCh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHoobG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHoobG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1bG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cCh1bG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihmbG9hdDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChmbG9hdDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4oZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQoZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eihjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4oY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUodWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHVjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4odWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZShzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHNob3J0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHNob3J0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eih1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cCh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRuKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0ZShpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHAoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4oaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0bihpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRlKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWludDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydHoodWludDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRuKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRuKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0KHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eihsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4obG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4obG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUodWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHVsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4odWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZShmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KGZsb2F0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGZsb2F0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydG4oY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZSh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVjaGFyOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnR6KHVjaGFyOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bih1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdCh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooc2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooc2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eih1c2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cCh1c2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4odXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eihpbnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChpbnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4oaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHoodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eih1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cCh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4odWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OCh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHoobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydG4obG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZSh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVsb25nOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnR6KHVsb25nOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bih1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdCh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooZmxvYXQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooZmxvYXQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0ZShjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRlKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodWNoYXI4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHoodWNoYXI4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRuKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eihzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZSh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUodXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KHVzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKHVzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bih1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4odXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZShpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KGludDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGludDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bihpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZSh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eih1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bih1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdCh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0ZShsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4obG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRlKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodWxvbmc4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHoodWxvbmc4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRuKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eihmbG9hdDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihmbG9hdDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoZmxvYXQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHooY2hhcjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoY2hhcjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRuKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydGUodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eih1c2hvcnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0eih1c2hvcnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4odXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KGludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZSh1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eih1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAodWludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bih1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoobG9uZzgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAobG9uZzgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRuKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChmbG9hdDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHAoY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChjaGFyOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZSh1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodWNoYXI4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVjaGFyOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bih1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KHNob3J0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgoc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKHVzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodXNob3J0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cCh1c2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKHVzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1c2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKGludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooaW50OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKGludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgodWludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHAobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4obG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChsb25nOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZSh1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodWxvbmc4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVsb25nOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bih1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoZmxvYXQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KGZsb2F0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChmbG9hdDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oZmxvYXQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgoZmxvYXQ4KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydG4oY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZSh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVjaGFyMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnR6KHVjaGFyMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bih1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdCh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooc2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooc2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eih1c2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cCh1c2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4odXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eihpbnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChpbnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4oaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHoodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cCh1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4odWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHoobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydG4obG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZSh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVsb25nMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnR6KHVsb25nMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bih1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdCh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooZmxvYXQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooZmxvYXQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGZsb2F0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4oY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eih1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0ZShzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRlKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoodXNob3J0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydHoodXNob3J0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cCh1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRuKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNih1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0KHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4oaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUodWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoodWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKHVpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cCh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4odWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNih1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUobG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoobG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGxvbmcxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGxvbmcxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4obG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eih1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0ZShmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoZmxvYXQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHooY2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAoY2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRlKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRuKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydGUodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eih1c2hvcnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0eih1c2hvcnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydG4odXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXQodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KGludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KGludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZSh1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eih1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAodWludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bih1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoobG9uZzE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAobG9uZzE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRlKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRuKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZSh1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodWNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAodWNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bih1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooc2hvcnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoc2hvcnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRwKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4odXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRlKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0cChpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRuKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydGUodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1aW50MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0eih1aW50MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRwKHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydG4odWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4odWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXQodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZSh1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodWxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAodWxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bih1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooZmxvYXQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoZmxvYXQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHooY2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooY2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1Y2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cCh1Y2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eihzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4oc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0ZSh1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHoodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cCh1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0bih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydGUoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRwKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0ZSh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0ZSh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVpbnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnR6KHVpbnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bih1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0bih1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdCh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHoobG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHoobG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1bG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cCh1bG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eihmbG9hdDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChmbG9hdDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4oZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRlKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0cChjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1Y2hhcjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eih1Y2hhcjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydG4odWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXQodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KHNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KHNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZSh1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHoodXNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAodXNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bih1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHooaW50MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoaW50MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHoodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRlKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0cChsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1bG9uZzE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eih1bG9uZzE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydG4odWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXQodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KGZsb2F0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGZsb2F0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydG4oY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZSh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVjaGFyMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnR6KHVjaGFyMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bih1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdCh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooc2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooc2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eih1c2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cCh1c2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4odXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eihpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4oaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHoodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cCh1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4odWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHoobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydG4obG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZSh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVsb25nMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnR6KHVsb25nMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bih1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdCh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooZmxvYXQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooZmxvYXQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGZsb2F0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGNoYXIxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGNoYXIxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4oY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eih1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0ZShzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRlKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoodXNob3J0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydHoodXNob3J0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cCh1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRuKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNih1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0KHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4oaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUodWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoodWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKHVpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cCh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4odWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNih1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUobG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoobG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4obG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eih1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0ZShmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoZmxvYXQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRwKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoY2hhcjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUodWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVjaGFyMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1Y2hhcjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4odWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihzaG9ydDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoc2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZSh1c2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVzaG9ydDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAodXNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bih1c2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodXNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZShpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGludDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoaW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bihpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoaW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZSh1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eih1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bih1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KHVpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRwKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYobG9uZzE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUodWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVsb25nMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1bG9uZzE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4odWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGZsb2F0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihmbG9hdDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoZmxvYXQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGZsb2F0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KGZsb2F0MTYpOwoKLy8gQ29udmVyc2lvbnMgd2l0aCBkb3VibGUgZGF0YSB0eXBlIHBhcmFtZXRlcnMgb3IgcmV0dXJuIHZhbHVlLgoKI2lmZGVmIGNsX2tocl9mcDY0CiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnA2NCA6IGVuYWJsZQpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZShkb3VibGUpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4oZG91YmxlKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRwKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eihkb3VibGUpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjIoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKGRvdWJsZTIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihkb3VibGUyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHAoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KGRvdWJsZTIpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4oZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHooZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGRvdWJsZTMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihkb3VibGUzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGRvdWJsZTMpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4oZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGRvdWJsZTQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bihkb3VibGU0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KGRvdWJsZTQpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjgoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKGRvdWJsZTgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihkb3VibGU4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHAoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KGRvdWJsZTgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZShkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0eihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoZG91YmxlMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGRvdWJsZTE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooZG91YmxlMTYpOwoKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGRvdWJsZSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoZG91YmxlKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGRvdWJsZSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooZG91YmxlKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihkb3VibGUpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMihkb3VibGUyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGRvdWJsZTIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4oZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChkb3VibGUyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KGRvdWJsZTIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4oZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHooZG91YmxlMik7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzKGRvdWJsZTMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoZG91YmxlMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0bihkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKGRvdWJsZTMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooZG91YmxlMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdChkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZShkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bihkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihkb3VibGUzKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjQoZG91YmxlNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShkb3VibGU0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRuKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoZG91YmxlNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eihkb3VibGU0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0KGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGRvdWJsZTQpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOChkb3VibGU4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGRvdWJsZTgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4oZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChkb3VibGU4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KGRvdWJsZTgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4oZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHooZG91YmxlOCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTYoZG91YmxlMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShkb3VibGUxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRuKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoZG91YmxlMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihkb3VibGUxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0KGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChkb3VibGUpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKGRvdWJsZSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cChkb3VibGUpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnR6KGRvdWJsZSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHAoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHooZG91YmxlKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoZG91YmxlMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0ZShkb3VibGUyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAoZG91YmxlMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0eihkb3VibGUyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRwKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KGRvdWJsZTIpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myhkb3VibGUzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRlKGRvdWJsZTMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cChkb3VibGUzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnR6KGRvdWJsZTMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHAoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHooZG91YmxlMyk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGRvdWJsZTQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUoZG91YmxlNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKGRvdWJsZTQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHooZG91YmxlNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0cChkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0eihkb3VibGU0KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoZG91YmxlOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0ZShkb3VibGU4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAoZG91YmxlOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0eihkb3VibGU4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRwKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KGRvdWJsZTgpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGRvdWJsZTE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydGUoZG91YmxlMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKGRvdWJsZTE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHooZG91YmxlMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0cChkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0eihkb3VibGUxNik7Cgp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRuKGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cChkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0bihkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydHooZG91YmxlKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mihkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydGUoZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bihkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRwKGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooZG91YmxlMik7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDMoZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRlKGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHAoZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnR6KGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGRvdWJsZTMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydG4oZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQoZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRuKGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0eihkb3VibGU0KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydGUoZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bihkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRwKGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooZG91YmxlOCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNihkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydGUoZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0cChkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHooZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUoZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooZG91YmxlMTYpOwoKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4oZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0cChkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGRvdWJsZSk7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDIoZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRlKGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHAoZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnR6KGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KGRvdWJsZTIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4oZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXQoZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAoZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0eihkb3VibGUzKTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHooZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bihkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRwKGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooZG91YmxlNCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDgoZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRlKGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHAoZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnR6KGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KGRvdWJsZTgpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bihkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAoZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdChkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKGRvdWJsZSk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihkb3VibGUpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHAoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KGRvdWJsZSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Mihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZShkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0eihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoZG91YmxlMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGRvdWJsZTIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooZG91YmxlMik7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myhkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZShkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bihkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoZG91YmxlMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKGRvdWJsZTMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHooZG91YmxlMyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUoZG91YmxlNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGRvdWJsZTQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0cChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHooZG91YmxlNCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZShkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bihkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0eihkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoZG91YmxlOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGRvdWJsZTgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooZG91YmxlOCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShkb3VibGUxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4oZG91YmxlMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eihkb3VibGUxNik7Cgpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShkb3VibGUpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4oZG91YmxlKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eihkb3VibGUpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzIoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKGRvdWJsZTIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihkb3VibGUyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHAoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KGRvdWJsZTIpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4oZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHooZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGRvdWJsZTMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihkb3VibGUzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGRvdWJsZTMpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4oZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGRvdWJsZTQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bihkb3VibGU0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KGRvdWJsZTQpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzgoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKGRvdWJsZTgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihkb3VibGU4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHAoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KGRvdWJsZTgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZShkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0eihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoZG91YmxlMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGRvdWJsZTE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooZG91YmxlMTYpOwoKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nKGRvdWJsZSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUoZG91YmxlKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0bihkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGRvdWJsZSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHooZG91YmxlKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdChkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZShkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bihkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cChkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihkb3VibGUpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMihkb3VibGUyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGRvdWJsZTIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4oZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChkb3VibGUyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KGRvdWJsZTIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4oZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHooZG91YmxlMik7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczKGRvdWJsZTMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoZG91YmxlMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0bihkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKGRvdWJsZTMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooZG91YmxlMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdChkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZShkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bihkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihkb3VibGUzKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzQoZG91YmxlNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShkb3VibGU0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRuKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoZG91YmxlNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eihkb3VibGU0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0KGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGRvdWJsZTQpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOChkb3VibGU4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGRvdWJsZTgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4oZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChkb3VibGU4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KGRvdWJsZTgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4oZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHooZG91YmxlOCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTYoZG91YmxlMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShkb3VibGUxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRuKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoZG91YmxlMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihkb3VibGUxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0KGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChkb3VibGUpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKGRvdWJsZSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4oZG91YmxlKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChkb3VibGUpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnR6KGRvdWJsZSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyKGRvdWJsZTIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoZG91YmxlMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bihkb3VibGUyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKGRvdWJsZTIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooZG91YmxlMik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGRvdWJsZTMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUoZG91YmxlMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihkb3VibGUzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGRvdWJsZTMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooZG91YmxlMyk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KGRvdWJsZTQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUoZG91YmxlNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bihkb3VibGU0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGRvdWJsZTQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHooZG91YmxlNCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4KGRvdWJsZTgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoZG91YmxlOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bihkb3VibGU4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKGRvdWJsZTgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooZG91YmxlOCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoZG91YmxlMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZShkb3VibGUxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGRvdWJsZTE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoZG91YmxlMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihkb3VibGUxNik7Cgpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoZG91YmxlKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoZmxvYXQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoc2hvcnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZSh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKHVpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZSh1bG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydGUobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZSh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZSh1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydG4obG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bih1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bih1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHAobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cCh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cCh1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHoobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eih1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eih1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KHVzaG9ydCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKGRvdWJsZTIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKGZsb2F0Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIobG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKHNob3J0Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMih1aW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIodWxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMih1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZShkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRlKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZSh1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZSh1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bihkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRuKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4odWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4odWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bih1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bih1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cChkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRwKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cCh1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cCh1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eihkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnR6KGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHoodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHoodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eih1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eih1c2hvcnQyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoZG91YmxlMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoZmxvYXQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoc2hvcnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzKHVpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyh1bG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydGUobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZSh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZSh1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydG4obG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bih1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bih1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydHAobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cCh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cCh1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydHoobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eih1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eih1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KHVzaG9ydDMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChkb3VibGU0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChmbG9hdDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChzaG9ydDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQodWludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KHVsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUoZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0ZShsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4oZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0bihsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4odWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4odXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAoZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0cChsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHooZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0eihsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHoodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHoodXNob3J0NCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KGRvdWJsZTgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KGZsb2F0OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgobG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KHNob3J0OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOCh1aW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgodWxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOCh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZShkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRlKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZSh1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZSh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bihkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRuKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4odWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4odWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bih1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bih1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cChkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRwKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cCh1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cCh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eihkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnR6KGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHoodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHoodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eih1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eih1c2hvcnQ4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihkb3VibGUxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihmbG9hdDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihzaG9ydDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTYodWludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KHVsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTYodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUoZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0ZShsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4oZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0bihsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4odWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4odXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAoZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0cChsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHooZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0eihsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHoodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHoodXNob3J0MTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnAxNiA6IGVuYWJsZQovLyBDb252ZXJ0IGhhbGYgdHlwZXMgdG8gbm9uLWRvdWJsZSB0eXBlcy4KdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRlKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRuKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnR6KGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0KGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShoYWxmKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydHAoaGFsZik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihoYWxmKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydGUoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4oaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHooaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKGhhbGYyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0cChoYWxmMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4oaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGhhbGYyKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4oaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGhhbGYzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChoYWxmMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnR6KGhhbGYzKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjQoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKGhhbGY0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChoYWxmNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGhhbGY0KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydGUoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4oaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHooaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKGhhbGY4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0cChoYWxmOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4oaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGhhbGY4KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cChoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoaGFsZjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGhhbGYxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydHooaGFsZjE2KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQoaGFsZik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShoYWxmKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oaGFsZik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihoYWxmKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KGhhbGYpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyKGhhbGYyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoaGFsZjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGhhbGYyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooaGFsZjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZShoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bihoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihoYWxmMik7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDMoaGFsZjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShoYWxmMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oaGFsZjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihoYWxmMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0KGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGhhbGYzKTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NChoYWxmNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKGhhbGY0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihoYWxmNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGhhbGY0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4oaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooaGFsZjQpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4KGhhbGY4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoaGFsZjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGhhbGY4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooaGFsZjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZShoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bihoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihoYWxmOCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNihoYWxmMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKGhhbGYxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihoYWxmMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGhhbGYxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXQoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4oaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooaGFsZjE2KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bihoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHooaGFsZik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUoaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bihoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooaGFsZjIpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDMoaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cChoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnR6KGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHAoaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KGhhbGYzKTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQoaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4oaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eihoYWxmNCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUoaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bihoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooaGFsZjgpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNihoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUoaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHooaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUoaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0cChoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHooaGFsZjE2KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZShoYWxmKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoaGFsZik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihoYWxmKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydGUoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4oaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHooaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKGhhbGYyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0cChoYWxmMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4oaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGhhbGYyKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4oaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGhhbGYzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChoYWxmMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnR6KGhhbGYzKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzQoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKGhhbGY0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChoYWxmNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGhhbGY0KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydGUoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4oaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHooaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKGhhbGY4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0cChoYWxmOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4oaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGhhbGY4KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cChoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoaGFsZjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGhhbGYxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydHooaGFsZjE2KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUoaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bihoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUoaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooaGFsZik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bihoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHooaGFsZjIpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4oaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGhhbGYzKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0KGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZShoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAoaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0eihoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZShoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRwKGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4oaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eihoYWxmNCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bihoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHooaGFsZjgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUoaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bihoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooaGFsZjE2KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRuKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnR6KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShoYWxmKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHAoaGFsZik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihoYWxmKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4oaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHooaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGhhbGYyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cChoYWxmMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDMoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKGhhbGYzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChoYWxmMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydG4oaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHooaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXQoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKGhhbGY0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0cChoYWxmNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4oaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGhhbGY0KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4oaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHooaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGhhbGY4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cChoYWxmOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUoaGFsZjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGhhbGYxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHooaGFsZjE2KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoaGFsZik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShoYWxmKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydG4oaGFsZik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihoYWxmKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRuKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGhhbGYpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGhhbGYyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoaGFsZjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRuKGhhbGYyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooaGFsZjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0ZShoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0bihoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihoYWxmMik7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMoaGFsZjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShoYWxmMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4oaGFsZjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihoYWxmMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRlKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGhhbGYzKTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChoYWxmNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGhhbGY0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0bihoYWxmNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGhhbGY0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydG4oaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooaGFsZjQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGhhbGY4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoaGFsZjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRuKGhhbGY4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooaGFsZjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0ZShoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0bihoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihoYWxmOCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihoYWxmMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGhhbGYxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bihoYWxmMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGhhbGYxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydGUoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooaGFsZjE2KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZyhoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUoaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHooaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUoaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0cChoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHooaGFsZik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bihoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHooaGFsZjIpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4oaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGhhbGYzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0KGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZShoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAoaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0eihoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZShoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRwKGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4oaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eihoYWxmNCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bihoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHooaGFsZjgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUoaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bihoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooaGFsZjE2KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnR6KGhhbGYpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZShoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bihoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0eihoYWxmMik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnR6KGhhbGYzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4oaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHooaGFsZjQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZShoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bihoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0eihoYWxmOCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4oaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHooaGFsZjE2KTsKCi8vIENvbnZlcnQgbm9uLWRvdWJsZSB0eXBlcyB0byBoYWxmIHR5cGVzLgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZih1c2hvcnQpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVpbnQpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihzaG9ydCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihmbG9hdCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4odXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4odWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4obG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1Y2hhcjIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoc2hvcnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoaW50Mik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1aW50Mik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1bG9uZzIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoZmxvYXQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydGUodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydGUodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHAodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHAodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydG4odWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydG4odWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHoodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHoodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVjaGFyMyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhzaG9ydDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjModXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhpbnQzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVpbnQzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVsb25nMyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhmbG9hdDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjMoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0ZSh1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUoaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0ZSh1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0cCh1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAoaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0cCh1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0bih1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4odXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4oaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4odWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0bih1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4oaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0eih1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHoodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHooaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHoodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0eih1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHooaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWNoYXI0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KHNob3J0NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNCh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KGludDQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWludDQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWxvbmc0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KGZsb2F0NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNChoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRlKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZSh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZShpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZSh1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRlKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZShoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRwKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cCh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cChpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cCh1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRwKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cChoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRuKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bih1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bihpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bih1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4obG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRuKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bihoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnR6KHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eih1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eihpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eih1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHoobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnR6KHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eihoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1Y2hhcjgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoc2hvcnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4KHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoaW50OCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1aW50OCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1bG9uZzgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoZmxvYXQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4KGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydGUodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydGUodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHAodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHAodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydG4odWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydG4odWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHoodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHoodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWNoYXIxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KHNob3J0MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KGludDE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWludDE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWxvbmcxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KGZsb2F0MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNihoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRlKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZSh1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZShpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZSh1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRlKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZShoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRwKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cCh1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cChpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cCh1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRwKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cChoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRuKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bihpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bih1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4obG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRuKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bihoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnR6KHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eihpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eih1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHoobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnR6KHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eihoYWxmMTYpOwoKLy8gQ29udmVydCBoYWxmIHR5cGVzIHRvIGRvdWJsZSB0eXBlcy4KI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKGhhbGYpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydGUoaGFsZik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChoYWxmKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKGhhbGYpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHooaGFsZik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoaGFsZjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZShoYWxmMik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRwKGhhbGYyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oaGFsZjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eihoYWxmMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoaGFsZjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShoYWxmMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKGhhbGYzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydG4oaGFsZjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihoYWxmMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQoaGFsZjQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0ZShoYWxmNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGhhbGY0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4oaGFsZjQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0eihoYWxmNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoaGFsZjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZShoYWxmOCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRwKGhhbGY4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oaGFsZjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eihoYWxmOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihoYWxmMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGhhbGYxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAoaGFsZjE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0bihoYWxmMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGhhbGYxNik7CgovLyBDb252ZXJ0IGRvdWJsZSB0eXBlcyB0byBoYWxmIHR5cGVzLgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KGRvdWJsZSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihkb3VibGUyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGRvdWJsZTMpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooZG91YmxlNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihkb3VibGU4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xLCB2MS4yIHM2LjEyLjEsIHYyLjAgczYuMTMuMSAtIFdvcmstaXRlbSBGdW5jdGlvbnMKCi8qKgogKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGltZW5zaW9ucyBpbiB1c2UuIFRoaXMgaXMgdGhlCiAqIHZhbHVlIGdpdmVuIHRvIHRoZSB3b3JrX2RpbSBhcmd1bWVudCBzcGVjaWZpZWQgaW4KICogY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAxLgogKi8KdWludCBfX292bGQgX19jbmZuIGdldF93b3JrX2RpbSh2b2lkKTsKCi8qKgogKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZ2xvYmFsIHdvcmstaXRlbXMgc3BlY2lmaWVkIGZvcgogKiBkaW1lbnNpb24gaWRlbnRpZmllZCBieSBkaW1pbmR4LiBUaGlzIHZhbHVlIGlzIGdpdmVuIGJ5CiAqIHRoZSBnbG9iYWxfd29ya19zaXplIGFyZ3VtZW50IHRvCiAqIGNsRW5xdWV1ZU5EUmFuZ2VLZXJuZWwuIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4CiAqIGFyZSAwIHRvIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZgogKiBkaW1pbmR4LCBnZXRfZ2xvYmFsX3NpemUoKSByZXR1cm5zIDEuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIGFsd2F5cyByZXR1cm5zIDEuCiAqLwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfZ2xvYmFsX3NpemUodWludCBkaW1pbmR4KTsKCi8qKgogKiBSZXR1cm5zIHRoZSB1bmlxdWUgZ2xvYmFsIHdvcmstaXRlbSBJRCB2YWx1ZSBmb3IKICogZGltZW5zaW9uIGlkZW50aWZpZWQgYnkgZGltaW5keC4gVGhlIGdsb2JhbCB3b3JrLWl0ZW0KICogSUQgc3BlY2lmaWVzIHRoZSB3b3JrLWl0ZW0gSUQgYmFzZWQgb24gdGhlIG51bWJlciBvZgogKiBnbG9iYWwgd29yay1pdGVtcyBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB0aGUga2VybmVsLiBWYWxpZAogKiB2YWx1ZXMgb2YgZGltaW5keCBhcmUgMCB0byBnZXRfd29ya19kaW0oKSAtIDEuIEZvcgogKiBvdGhlciB2YWx1ZXMgb2YgZGltaW5keCwgZ2V0X2dsb2JhbF9pZCgpIHJldHVybnMgMC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAwLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2dsb2JhbF9pZCh1aW50IGRpbWluZHgpOwoKLyoqCiAqIFJldHVybnMgdGhlIG51bWJlciBvZiBsb2NhbCB3b3JrLWl0ZW1zIHNwZWNpZmllZCBpbgogKiBkaW1lbnNpb24gaWRlbnRpZmllZCBieSBkaW1pbmR4LiBUaGlzIHZhbHVlIGlzIGdpdmVuIGJ5CiAqIHRoZSBsb2NhbF93b3JrX3NpemUgYXJndW1lbnQgdG8KICogY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbCBpZiBsb2NhbF93b3JrX3NpemUgaXMgbm90CiAqIE5VTEw7IG90aGVyd2lzZSB0aGUgT3BlbkNMIGltcGxlbWVudGF0aW9uIGNob29zZXMKICogYW4gYXBwcm9wcmlhdGUgbG9jYWxfd29ya19zaXplIHZhbHVlIHdoaWNoIGlzIHJldHVybmVkCiAqIGJ5IHRoaXMgZnVuY3Rpb24uIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvCiAqIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZiBkaW1pbmR4LAogKiBnZXRfbG9jYWxfc2l6ZSgpIHJldHVybnMgMS4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgYWx3YXlzIHJldHVybnMgMS4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9sb2NhbF9zaXplKHVpbnQgZGltaW5keCk7CgovKioKICogUmV0dXJucyB0aGUgdW5pcXVlIGxvY2FsIHdvcmstaXRlbSBJRCBpLmUuIGEgd29yay1pdGVtCiAqIHdpdGhpbiBhIHNwZWNpZmljIHdvcmstZ3JvdXAgZm9yIGRpbWVuc2lvbiBpZGVudGlmaWVkIGJ5CiAqIGRpbWluZHguIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvCiAqIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZiBkaW1pbmR4LAogKiBnZXRfbG9jYWxfaWQoKSByZXR1cm5zIDAuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIHJldHVybnMgMC4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9sb2NhbF9pZCh1aW50IGRpbWluZHgpOwoKLyoqCiAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3b3JrLWdyb3VwcyB0aGF0IHdpbGwgZXhlY3V0ZSBhCiAqIGtlcm5lbCBmb3IgZGltZW5zaW9uIGlkZW50aWZpZWQgYnkgZGltaW5keC4KICogVmFsaWQgdmFsdWVzIG9mIGRpbWluZHggYXJlIDAgdG8gZ2V0X3dvcmtfZGltKCkgLSAxLgogKiBGb3Igb3RoZXIgdmFsdWVzIG9mIGRpbWluZHgsIGdldF9udW1fZ3JvdXBzKCkgcmV0dXJucyAxLgogKiBGb3IgY2xFbnF1ZXVlVGFzaywgdGhpcyBhbHdheXMgcmV0dXJucyAxLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X251bV9ncm91cHModWludCBkaW1pbmR4KTsKCi8qKgogKiBnZXRfZ3JvdXBfaWQgcmV0dXJucyB0aGUgd29yay1ncm91cCBJRCB3aGljaCBpcyBhCiAqIG51bWJlciBmcm9tIDAgLi4gZ2V0X251bV9ncm91cHMoZGltaW5keCkgLSAxLgogKiBWYWxpZCB2YWx1ZXMgb2YgZGltaW5keCBhcmUgMCB0byBnZXRfd29ya19kaW0oKSAtIDEuCiAqIEZvciBvdGhlciB2YWx1ZXMsIGdldF9ncm91cF9pZCgpIHJldHVybnMgMC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAwLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2dyb3VwX2lkKHVpbnQgZGltaW5keCk7CgovKioKICogZ2V0X2dsb2JhbF9vZmZzZXQgcmV0dXJucyB0aGUgb2Zmc2V0IHZhbHVlcyBzcGVjaWZpZWQgaW4KICogZ2xvYmFsX3dvcmtfb2Zmc2V0IGFyZ3VtZW50IHRvCiAqIGNsRW5xdWV1ZU5EUmFuZ2VLZXJuZWwuCiAqIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvIGdldF93b3JrX2RpbSgpIC0gMS4KICogRm9yIG90aGVyIHZhbHVlcywgZ2V0X2dsb2JhbF9vZmZzZXQoKSByZXR1cm5zIDAuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIHJldHVybnMgMC4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9nbG9iYWxfb2Zmc2V0KHVpbnQgZGltaW5keCk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnNpemVfdCBfX292bGQgZ2V0X2VucXVldWVkX2xvY2FsX3NpemUodWludCBkaW1pbmR4KTsKc2l6ZV90IF9fb3ZsZCBnZXRfZ2xvYmFsX2xpbmVhcl9pZCh2b2lkKTsKc2l6ZV90IF9fb3ZsZCBnZXRfbG9jYWxfbGluZWFyX2lkKHZvaWQpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjIsIHYxLjIgczYuMTIuMiwgdjIuMCBzNi4xMy4yIC0gTWF0aCBmdW5jdGlvbnMKCi8qKgogKiBBcmMgY29zaW5lIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhY29zKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhY29zKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFjb3MoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhY29zKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYWNvcyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYWNvcyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhY29zKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBhY29zKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhY29zKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhY29zKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEludmVyc2UgaHlwZXJib2xpYyBjb3NpbmUuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGFjb3NoKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGFjb3NoKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gYWNvc2goZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYWNvc2goZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBhY29zaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBhY29zaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhY29zaChoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gYWNvc2goaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGFjb3NoKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhY29zaChoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGFjb3NoKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhY29zICh4KSAvIFBJLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhY29zcGkoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhY29zcGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFjb3NwaShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGFjb3NwaShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIGFjb3NwaShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBhY29zcGkoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhY29zcGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEFyYyBzaW5lIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhc2luKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhc2luKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFzaW4oZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhc2luKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXNpbihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXNpbihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXNpbihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhc2luKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBhc2luKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhc2luKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhc2luKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXNpbihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEludmVyc2UgaHlwZXJib2xpYyBzaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhc2luaChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhc2luaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFzaW5oKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhc2luaChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGFzaW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXNpbmgoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhc2luaChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhc2luaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGFzaW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhc2luaChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhc2luaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYXNpbiAoeCkgLyBQSS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhc2lucGkoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhc2lucGkoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGFzaW5waShkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGFzaW5waShoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGFzaW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhc2lucGkoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGFzaW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBBcmMgdGFuZ2VudCBmdW5jdGlvbi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbihmbG9hdCB5X292ZXJfeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQyIHlfb3Zlcl94KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gYXRhbihmbG9hdDMgeV9vdmVyX3gpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhdGFuKGZsb2F0NCB5X292ZXJfeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQ4IHlfb3Zlcl94KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQxNiB5X292ZXJfeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZSB5X292ZXJfeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZTIgeV9vdmVyX3gpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbihkb3VibGUzIHlfb3Zlcl94KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGF0YW4oZG91YmxlNCB5X292ZXJfeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZTggeV9vdmVyX3gpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4oZG91YmxlMTYgeV9vdmVyX3gpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW4oaGFsZiB5X292ZXJfeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmMiB5X292ZXJfeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmMyB5X292ZXJfeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmNCB5X292ZXJfeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmOCB5X292ZXJfeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGF0YW4oaGFsZjE2IHlfb3Zlcl94KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBBcmMgdGFuZ2VudCBvZiB5IC8geC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZmxvYXQgeSwgZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0MiB5LCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0MyB5LCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0NCB5LCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0OCB5LCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuMihmbG9hdDE2IHksIGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFuMihkb3VibGUgeSwgZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlMiB5LCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlMyB5LCBkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlNCB5LCBkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlOCB5LCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4yKGRvdWJsZTE2IHksIGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW4yKGhhbGYgeSwgaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmMiB5LCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmMyB5LCBoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmNCB5LCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBhdGFuMihoYWxmOCB5LCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbjIoaGFsZjE2IHksIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBIeXBlcmJvbGljIGFyYyB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhdGFuaChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGF0YW5oKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGF0YW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXRhbmgoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGF0YW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhdGFuaChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhdGFuaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYXRhbiAoeCkgLyBQSS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFucGkoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhdGFucGkoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGF0YW5waShkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW5waShoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGF0YW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFucGkoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGF0YW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGF0YW4yICh5LCB4KSAvIFBJLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0IHksIGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0MiB5LCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW4ycGkoZmxvYXQzIHksIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShmbG9hdDQgeSwgZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0OCB5LCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0MTYgeSwgZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlIHksIGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlMiB5LCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShkb3VibGUzIHksIGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBhdGFuMnBpKGRvdWJsZTQgeSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlOCB5LCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlMTYgeSwgZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmIHksIGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmMiB5LCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFuMnBpKGhhbGYzIHksIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIGF0YW4ycGkoaGFsZjQgeSwgaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmOCB5LCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmMTYgeSwgaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgY3ViZS1yb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjYnJ0KGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjYnJ0KGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNicnQoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNicnQoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNicnQoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjYnJ0KGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2JydChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNicnQoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2JydChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2JydChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjYnJ0KGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2JydChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byBwb3NpdGl2ZQogKiBpbmZpbml0eSByb3VuZGluZyBtb2RlLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjZWlsKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjZWlsKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNlaWwoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjZWlsKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2VpbChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2VpbChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2VpbChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjZWlsKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjZWlsKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjZWlsKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjZWlsKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2VpbChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgeCB3aXRoIGl0cyBzaWduIGNoYW5nZWQgdG8gbWF0Y2ggdGhlIHNpZ24gb2YgeS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb3B5c2lnbihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBjb3B5c2lnbihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvcHlzaWduKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGNvcHlzaWduKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGNvc2luZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvcyhmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb3MoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb3MoZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBjb3MoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvcyhkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvcyhkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvcyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvcyhkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb3MoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGNvcyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3MoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvcyhoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29zKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3MoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb3MoaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGh5cGVyYm9saWMgY29zaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjb3NoKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb3NoKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvc2goZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvc2goZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvc2goZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb3NoKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29zaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvc2goZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29zaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29zaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3NoKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3NoKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3NoKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3NoKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29zaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgY29zIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjb3NwaShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb3NwaShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvc3BpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb3NwaShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29zcGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29zcGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3NwaShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXBsZW1lbnRhcnkgZXJyb3IgZnVuY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGVyZmMoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGVyZmMoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXJmYyhmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGVyZmMoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBlcmZjKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBlcmZjKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBlcmZjKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGVyZmMoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGVyZmMoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGVyZmMoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGVyZmMoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBlcmZjKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRXJyb3IgZnVuY3Rpb24gZW5jb3VudGVyZWQgaW4gaW50ZWdyYXRpbmcgdGhlCiAqIG5vcm1hbCBkaXN0cmlidXRpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGVyZihmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGVyZihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBlcmYoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXJmKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGVyZihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZXJmKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXJmKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBlcmYoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZXJmKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBlcmYoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBlcmYoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGVyZihoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZSBlIGV4cG9uZW50aWFsIGZ1bmN0aW9uIG9mIHguCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGV4cChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cChmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXhwKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cChkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwKGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBleHAoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cChkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cChkb3VibGUxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBleHAoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwKGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIGV4cChoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cChoYWxmMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRXhwb25lbnRpYWwgYmFzZSAyIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBleHAyKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBleHAyKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGV4cDIoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBleHAyKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZXhwMihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZXhwMihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZXhwMihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAyKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBleHAyKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBleHAyKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAyKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZXhwMihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEV4cG9uZW50aWFsIGJhc2UgMTAgZnVuY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGV4cDEwKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cDEwKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBleHAxMChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBleHAxMChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAxMChoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGV4cDEwKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAxMChoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cDEwKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBlXngtIDEuMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZXhwbTEoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBleHBtMShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBleHBtMShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBleHBtMShkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGV4cG0xKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBleHBtMShkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cG0xKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGV4cG0xKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cG0xKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGFic29sdXRlIHZhbHVlIG9mIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmYWJzKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmYWJzKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZhYnMoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmYWJzKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZmFicyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZmFicyhkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFicyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBmYWJzKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBmYWJzKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBmYWJzKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBmYWJzKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmFicyhoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIHggLSB5IGlmIHggPiB5LCArMCBpZiB4IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB5LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZkaW0oZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZmRpbShmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmZGltKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZmRpbShkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmZGltKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBmZGltKGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGZkaW0oaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byAtdmUKICogaW5maW5pdHkgcm91bmRpbmcgbW9kZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbG9vcihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmbG9vcihkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGZsb29yKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZsb29yKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGZsb29yKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBmbG9vcihoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZmxvb3IoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGZsb29yKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb3JyZWN0bHkgcm91bmRlZCBmbG9hdGluZy1wb2ludAogKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3VtIG9mIGMgd2l0aCB0aGUgaW5maW5pdGVseQogKiBwcmVjaXNlIHByb2R1Y3Qgb2YgYSBhbmQgYi4gUm91bmRpbmcgb2YKICogaW50ZXJtZWRpYXRlIHByb2R1Y3RzIHNoYWxsIG5vdCBvY2N1ci4gRWRnZSBjYXNlCiAqIGJlaGF2aW9yIGlzIHBlciB0aGUgSUVFRSA3NTQtMjAwOCBzdGFuZGFyZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZm1hKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IGMpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWEoZmxvYXQyIGEsIGZsb2F0MiBiLCBmbG9hdDIgYyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtYShmbG9hdDMgYSwgZmxvYXQzIGIsIGZsb2F0MyBjKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZm1hKGZsb2F0NCBhLCBmbG9hdDQgYiwgZmxvYXQ0IGMpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWEoZmxvYXQ4IGEsIGZsb2F0OCBiLCBmbG9hdDggYyk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWEoZmxvYXQxNiBhLCBmbG9hdDE2IGIsIGZsb2F0MTYgYyk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlMiBhLCBkb3VibGUyIGIsIGRvdWJsZTIgYyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlMyBhLCBkb3VibGUzIGIsIGRvdWJsZTMgYyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlNCBhLCBkb3VibGU0IGIsIGRvdWJsZTQgYyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWEoZG91YmxlOCBhLCBkb3VibGU4IGIsIGRvdWJsZTggYyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZm1hKGRvdWJsZTE2IGEsIGRvdWJsZTE2IGIsIGRvdWJsZTE2IGMpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtYShoYWxmIGEsIGhhbGYgYiwgaGFsZiBjKTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWEoaGFsZjIgYSwgaGFsZjIgYiwgaGFsZjIgYyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1hKGhhbGYzIGEsIGhhbGYzIGIsIGhhbGYzIGMpOwpoYWxmNCBfX292bGQgX19jbmZuIGZtYShoYWxmNCBhLCBoYWxmNCBiLCBoYWxmNCBjKTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWEoaGFsZjggYSwgaGFsZjggYiwgaGFsZjggYyk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYShoYWxmMTYgYSwgaGFsZjE2IGIsIGhhbGYxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeCA8IHksIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIG9uZQogKiBhcmd1bWVudCBpcyBhIE5hTiwgZm1heCgpIHJldHVybnMgdGhlIG90aGVyCiAqIGFyZ3VtZW50LiBJZiBib3RoIGFyZ3VtZW50cyBhcmUgTmFOcywgZm1heCgpCiAqIHJldHVybnMgYSBOYU4uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZm1heChmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0MiB4LCBmbG9hdCB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZm1heChmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQ0IHgsIGZsb2F0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0OCB4LCBmbG9hdCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZm1heChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTIgeCwgZG91YmxlIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZm1heChkb3VibGUzIHgsIGRvdWJsZSB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTggeCwgZG91YmxlIHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMTYgeCwgZG91YmxlIHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtYXgoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1heChoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbWF4KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGZtYXgoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjE2IHgsIGhhbGYxNiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWF4KGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1heChoYWxmMyB4LCBoYWxmIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGZtYXgoaGFsZjQgeCwgaGFsZiB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWF4KGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjE2IHgsIGhhbGYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB5IGlmIHkgPCB4LCBvdGhlcndpc2UgaXQgcmV0dXJucyB4LiBJZiBvbmUKICogYXJndW1lbnQgaXMgYSBOYU4sIGZtaW4oKSByZXR1cm5zIHRoZSBvdGhlcgogKiBhcmd1bWVudC4gSWYgYm90aCBhcmd1bWVudHMgYXJlIE5hTnMsIGZtaW4oKQogKiByZXR1cm5zIGEgTmFOLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtaW4oZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWluKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtaW4oZmxvYXQzIHgsIGZsb2F0IHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0NCB4LCBmbG9hdCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MTYgeCwgZmxvYXQgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtaW4oZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGUyIHgsIGRvdWJsZSB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtaW4oZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTQgeCwgZG91YmxlIHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGU4IHgsIGRvdWJsZSB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWluKGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGZtaW4oaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWluKGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmMiB4LCBoYWxmIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGZtaW4oaGFsZjMgeCwgaGFsZiB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbWluKGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmOCB4LCBoYWxmIHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYxNiB4LCBoYWxmIHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIE1vZHVsdXMuIFJldHVybnMgeCAtIHkgKiB0cnVuYyAoeC95KS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmbW9kKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZtb2QoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtb2QoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZm1vZChkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtb2QoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGZtb2QoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1vZChoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbW9kKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGZtb2QoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtb2QoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGZtaW4oeCAtIGZsb29yICh4KSwgMHgxLmZmZmZmZXAtMWYgKS4KICogZmxvb3IoeCkgaXMgcmV0dXJuZWQgaW4gaXB0ci4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgZnJhY3QoZmxvYXQgeCwgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIGZyYWN0KGZsb2F0MiB4LCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIGZyYWN0KGZsb2F0MyB4LCBmbG9hdDMgKmlwdHIpOwpmbG9hdDQgX19vdmxkIGZyYWN0KGZsb2F0NCB4LCBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIGZyYWN0KGZsb2F0OCB4LCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBmcmFjdChmbG9hdDE2IHgsIGZsb2F0MTYgKmlwdHIpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBmcmFjdChkb3VibGUgeCwgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgZnJhY3QoZG91YmxlMiB4LCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgZnJhY3QoZG91YmxlMyB4LCBkb3VibGUzICppcHRyKTsKZG91YmxlNCBfX292bGQgZnJhY3QoZG91YmxlNCB4LCBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgZnJhY3QoZG91YmxlOCB4LCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIGZyYWN0KGRvdWJsZTE2IHgsIGRvdWJsZTE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIGZyYWN0KGhhbGYgeCwgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBmcmFjdChoYWxmMiB4LCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBmcmFjdChoYWxmMyB4LCBoYWxmMyAqaXB0cik7CmhhbGY0IF9fb3ZsZCBmcmFjdChoYWxmNCB4LCBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBmcmFjdChoYWxmOCB4LCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgZnJhY3QoaGFsZjE2IHgsIGhhbGYxNiAqaXB0cik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX2dsb2JhbCBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgZnJhY3QoZmxvYXQyIHgsIF9fZ2xvYmFsIGZsb2F0MiAqaXB0cik7CmZsb2F0MyBfX292bGQgZnJhY3QoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fZ2xvYmFsIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgZnJhY3QoZmxvYXQ4IHgsIF9fZ2xvYmFsIGZsb2F0OCAqaXB0cik7CmZsb2F0MTYgX19vdmxkIGZyYWN0KGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX2xvY2FsIGZsb2F0ICppcHRyKTsKZmxvYXQyIF9fb3ZsZCBmcmFjdChmbG9hdDIgeCwgX19sb2NhbCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIGZyYWN0KGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fbG9jYWwgZmxvYXQ0ICppcHRyKTsKZmxvYXQ4IF9fb3ZsZCBmcmFjdChmbG9hdDggeCwgX19sb2NhbCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBmcmFjdChmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX3ByaXZhdGUgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIGZyYWN0KGZsb2F0MiB4LCBfX3ByaXZhdGUgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBmcmFjdChmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIGZyYWN0KGZsb2F0OCB4LCBfX3ByaXZhdGUgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgZnJhY3QoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqaXB0cik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX2dsb2JhbCBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBmcmFjdChkb3VibGUyIHgsIF9fZ2xvYmFsIGRvdWJsZTIgKmlwdHIpOwpkb3VibGUzIF9fb3ZsZCBmcmFjdChkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fZ2xvYmFsIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBmcmFjdChkb3VibGU4IHgsIF9fZ2xvYmFsIGRvdWJsZTggKmlwdHIpOwpkb3VibGUxNiBfX292bGQgZnJhY3QoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX2xvY2FsIGRvdWJsZSAqaXB0cik7CmRvdWJsZTIgX19vdmxkIGZyYWN0KGRvdWJsZTIgeCwgX19sb2NhbCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgZnJhY3QoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fbG9jYWwgZG91YmxlNCAqaXB0cik7CmRvdWJsZTggX19vdmxkIGZyYWN0KGRvdWJsZTggeCwgX19sb2NhbCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIGZyYWN0KGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX3ByaXZhdGUgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgZnJhY3QoZG91YmxlMiB4LCBfX3ByaXZhdGUgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIGZyYWN0KGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fcHJpdmF0ZSBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgZnJhY3QoZG91YmxlOCB4LCBfX3ByaXZhdGUgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBmcmFjdChkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmlwdHIpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX2dsb2JhbCBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIGZyYWN0KGhhbGYyIHgsIF9fZ2xvYmFsIGhhbGYyICppcHRyKTsKaGFsZjMgX19vdmxkIGZyYWN0KGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fZ2xvYmFsIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIGZyYWN0KGhhbGY4IHgsIF9fZ2xvYmFsIGhhbGY4ICppcHRyKTsKaGFsZjE2IF9fb3ZsZCBmcmFjdChoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX2xvY2FsIGhhbGYgKmlwdHIpOwpoYWxmMiBfX292bGQgZnJhY3QoaGFsZjIgeCwgX19sb2NhbCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBmcmFjdChoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fbG9jYWwgaGFsZjQgKmlwdHIpOwpoYWxmOCBfX292bGQgZnJhY3QoaGFsZjggeCwgX19sb2NhbCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgZnJhY3QoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX3ByaXZhdGUgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBmcmFjdChoYWxmMiB4LCBfX3ByaXZhdGUgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgZnJhY3QoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fcHJpdmF0ZSBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBmcmFjdChoYWxmOCB4LCBfX3ByaXZhdGUgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIGZyYWN0KGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBFeHRyYWN0IG1hbnRpc3NhIGFuZCBleHBvbmVudCBmcm9tIHguIEZvciBlYWNoCiAqIGNvbXBvbmVudCB0aGUgbWFudGlzc2EgcmV0dXJuZWQgaXMgYSBmbG9hdCB3aXRoCiAqIG1hZ25pdHVkZSBpbiB0aGUgaW50ZXJ2YWwgWzEvMiwgMSkgb3IgMC4gRWFjaAogKiBjb21wb25lbnQgb2YgeCBlcXVhbHMgbWFudGlzc2EgcmV0dXJuZWQgKiAyXmV4cC4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgZnJleHAoZmxvYXQgeCwgaW50ICpleHApOwpmbG9hdDIgX19vdmxkIGZyZXhwKGZsb2F0MiB4LCBpbnQyICpleHApOwpmbG9hdDMgX19vdmxkIGZyZXhwKGZsb2F0MyB4LCBpbnQzICpleHApOwpmbG9hdDQgX19vdmxkIGZyZXhwKGZsb2F0NCB4LCBpbnQ0ICpleHApOwpmbG9hdDggX19vdmxkIGZyZXhwKGZsb2F0OCB4LCBpbnQ4ICpleHApOwpmbG9hdDE2IF9fb3ZsZCBmcmV4cChmbG9hdDE2IHgsIGludDE2ICpleHApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBmcmV4cChkb3VibGUgeCwgaW50ICpleHApOwpkb3VibGUyIF9fb3ZsZCBmcmV4cChkb3VibGUyIHgsIGludDIgKmV4cCk7CmRvdWJsZTMgX19vdmxkIGZyZXhwKGRvdWJsZTMgeCwgaW50MyAqZXhwKTsKZG91YmxlNCBfX292bGQgZnJleHAoZG91YmxlNCB4LCBpbnQ0ICpleHApOwpkb3VibGU4IF9fb3ZsZCBmcmV4cChkb3VibGU4IHgsIGludDggKmV4cCk7CmRvdWJsZTE2IF9fb3ZsZCBmcmV4cChkb3VibGUxNiB4LCBpbnQxNiAqZXhwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIGZyZXhwKGhhbGYgeCwgaW50ICpleHApOwpoYWxmMiBfX292bGQgZnJleHAoaGFsZjIgeCwgaW50MiAqZXhwKTsKaGFsZjMgX19vdmxkIGZyZXhwKGhhbGYzIHgsIGludDMgKmV4cCk7CmhhbGY0IF9fb3ZsZCBmcmV4cChoYWxmNCB4LCBpbnQ0ICpleHApOwpoYWxmOCBfX292bGQgZnJleHAoaGFsZjggeCwgaW50OCAqZXhwKTsKaGFsZjE2IF9fb3ZsZCBmcmV4cChoYWxmMTYgeCwgaW50MTYgKmV4cCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmZsb2F0MiBfX292bGQgZnJleHAoZmxvYXQyIHgsIF9fZ2xvYmFsIGludDIgKmV4cCk7CmZsb2F0MyBfX292bGQgZnJleHAoZmxvYXQzIHgsIF9fZ2xvYmFsIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmZsb2F0OCBfX292bGQgZnJleHAoZmxvYXQ4IHgsIF9fZ2xvYmFsIGludDggKmV4cCk7CmZsb2F0MTYgX19vdmxkIGZyZXhwKGZsb2F0MTYgeCwgX19nbG9iYWwgaW50MTYgKmV4cCk7CmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX2xvY2FsIGludCAqZXhwKTsKZmxvYXQyIF9fb3ZsZCBmcmV4cChmbG9hdDIgeCwgX19sb2NhbCBpbnQyICpleHApOwpmbG9hdDMgX19vdmxkIGZyZXhwKGZsb2F0MyB4LCBfX2xvY2FsIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKZmxvYXQ4IF9fb3ZsZCBmcmV4cChmbG9hdDggeCwgX19sb2NhbCBpbnQ4ICpleHApOwpmbG9hdDE2IF9fb3ZsZCBmcmV4cChmbG9hdDE2IHgsIF9fbG9jYWwgaW50MTYgKmV4cCk7CmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpmbG9hdDIgX19vdmxkIGZyZXhwKGZsb2F0MiB4LCBfX3ByaXZhdGUgaW50MiAqZXhwKTsKZmxvYXQzIF9fb3ZsZCBmcmV4cChmbG9hdDMgeCwgX19wcml2YXRlIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpmbG9hdDggX19vdmxkIGZyZXhwKGZsb2F0OCB4LCBfX3ByaXZhdGUgaW50OCAqZXhwKTsKZmxvYXQxNiBfX292bGQgZnJleHAoZmxvYXQxNiB4LCBfX3ByaXZhdGUgaW50MTYgKmV4cCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmRvdWJsZTIgX19vdmxkIGZyZXhwKGRvdWJsZTIgeCwgX19nbG9iYWwgaW50MiAqZXhwKTsKZG91YmxlMyBfX292bGQgZnJleHAoZG91YmxlMyB4LCBfX2dsb2JhbCBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmRvdWJsZTggX19vdmxkIGZyZXhwKGRvdWJsZTggeCwgX19nbG9iYWwgaW50OCAqZXhwKTsKZG91YmxlMTYgX19vdmxkIGZyZXhwKGRvdWJsZTE2IHgsIF9fZ2xvYmFsIGludDE2ICpleHApOwpkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX2xvY2FsIGludCAqZXhwKTsKZG91YmxlMiBfX292bGQgZnJleHAoZG91YmxlMiB4LCBfX2xvY2FsIGludDIgKmV4cCk7CmRvdWJsZTMgX19vdmxkIGZyZXhwKGRvdWJsZTMgeCwgX19sb2NhbCBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKZG91YmxlOCBfX292bGQgZnJleHAoZG91YmxlOCB4LCBfX2xvY2FsIGludDggKmV4cCk7CmRvdWJsZTE2IF9fb3ZsZCBmcmV4cChkb3VibGUxNiB4LCBfX2xvY2FsIGludDE2ICpleHApOwpkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpkb3VibGUyIF9fb3ZsZCBmcmV4cChkb3VibGUyIHgsIF9fcHJpdmF0ZSBpbnQyICpleHApOwpkb3VibGUzIF9fb3ZsZCBmcmV4cChkb3VibGUzIHgsIF9fcHJpdmF0ZSBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpkb3VibGU4IF9fb3ZsZCBmcmV4cChkb3VibGU4IHgsIF9fcHJpdmF0ZSBpbnQ4ICpleHApOwpkb3VibGUxNiBfX292bGQgZnJleHAoZG91YmxlMTYgeCwgX19wcml2YXRlIGludDE2ICpleHApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmhhbGYyIF9fb3ZsZCBmcmV4cChoYWxmMiB4LCBfX2dsb2JhbCBpbnQyICpleHApOwpoYWxmMyBfX292bGQgZnJleHAoaGFsZjMgeCwgX19nbG9iYWwgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmhhbGY4IF9fb3ZsZCBmcmV4cChoYWxmOCB4LCBfX2dsb2JhbCBpbnQ4ICpleHApOwpoYWxmMTYgX19vdmxkIGZyZXhwKGhhbGYxNiB4LCBfX2dsb2JhbCBpbnQxNiAqZXhwKTsKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX2xvY2FsIGludCAqZXhwKTsKaGFsZjIgX19vdmxkIGZyZXhwKGhhbGYyIHgsIF9fbG9jYWwgaW50MiAqZXhwKTsKaGFsZjMgX19vdmxkIGZyZXhwKGhhbGYzIHgsIF9fbG9jYWwgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKaGFsZjggX19vdmxkIGZyZXhwKGhhbGY4IHgsIF9fbG9jYWwgaW50OCAqZXhwKTsKaGFsZjE2IF9fb3ZsZCBmcmV4cChoYWxmMTYgeCwgX19sb2NhbCBpbnQxNiAqZXhwKTsKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpoYWxmMiBfX292bGQgZnJleHAoaGFsZjIgeCwgX19wcml2YXRlIGludDIgKmV4cCk7CmhhbGYzIF9fb3ZsZCBmcmV4cChoYWxmMyB4LCBfX3ByaXZhdGUgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpoYWxmOCBfX292bGQgZnJleHAoaGFsZjggeCwgX19wcml2YXRlIGludDggKmV4cCk7CmhhbGYxNiBfX292bGQgZnJleHAoaGFsZjE2IHgsIF9fcHJpdmF0ZSBpbnQxNiAqZXhwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBDb21wdXRlIHRoZSB2YWx1ZSBvZiB0aGUgc3F1YXJlIHJvb3Qgb2YgeF4yICsgeV4yCiAqIHdpdGhvdXQgdW5kdWUgb3ZlcmZsb3cgb3IgdW5kZXJmbG93LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoeXBvdChmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGh5cG90KGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGh5cG90KGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gaHlwb3QoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGh5cG90KGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGh5cG90KGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGh5cG90KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGh5cG90KGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBoeXBvdChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybiB0aGUgZXhwb25lbnQgYXMgYW4gaW50ZWdlciB2YWx1ZS4KICovCmludCBfX292bGQgX19jbmZuIGlsb2diKGZsb2F0IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQzIHgpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQ4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGUgeCk7CmludDIgX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGUyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZG91YmxlMyB4KTsKaW50NCBfX292bGQgX19jbmZuIGlsb2diKGRvdWJsZTQgeCk7CmludDggX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGU4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoaGFsZiB4KTsKaW50MiBfX292bGQgX19jbmZuIGlsb2diKGhhbGYyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoaGFsZjMgeCk7CmludDQgX19vdmxkIF9fY25mbiBpbG9nYihoYWxmNCB4KTsKaW50OCBfX292bGQgX19jbmZuIGlsb2diKGhhbGY4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBNdWx0aXBseSB4IGJ5IDIgdG8gdGhlIHBvd2VyIG4uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxkZXhwKGZsb2F0IHgsIGludCBuKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQyIHgsIGludDIgbik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxkZXhwKGZsb2F0MyB4LCBpbnQzIG4pOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDQgeCwgaW50NCBuKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQ4IHgsIGludDggbik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDE2IHgsIGludDE2IG4pOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDIgeCwgaW50IG4pOwpmbG9hdDMgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDMgeCwgaW50IG4pOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDQgeCwgaW50IG4pOwpmbG9hdDggX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDggeCwgaW50IG4pOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQxNiB4LCBpbnQgbik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsZGV4cChkb3VibGUgeCwgaW50IG4pOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMiB4LCBpbnQyIG4pOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMyB4LCBpbnQzIG4pOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlNCB4LCBpbnQ0IG4pOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlOCB4LCBpbnQ4IG4pOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxkZXhwKGRvdWJsZTE2IHgsIGludDE2IG4pOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMiB4LCBpbnQgbik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBsZGV4cChkb3VibGUzIHgsIGludCBuKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGxkZXhwKGRvdWJsZTQgeCwgaW50IG4pOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlOCB4LCBpbnQgbik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMTYgeCwgaW50IG4pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYgeCwgaW50IG4pOwpoYWxmMiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYyIHgsIGludDIgbik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbGRleHAoaGFsZjMgeCwgaW50MyBuKTsKaGFsZjQgX19vdmxkIF9fY25mbiBsZGV4cChoYWxmNCB4LCBpbnQ0IG4pOwpoYWxmOCBfX292bGQgX19jbmZuIGxkZXhwKGhhbGY4IHgsIGludDggbik7CmhhbGYxNiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYxNiB4LCBpbnQxNiBuKTsKaGFsZjIgX19vdmxkIF9fY25mbiBsZGV4cChoYWxmMiB4LCBpbnQgbik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbGRleHAoaGFsZjMgeCwgaW50IG4pOwpoYWxmNCBfX292bGQgX19jbmZuIGxkZXhwKGhhbGY0IHgsIGludCBuKTsKaGFsZjggX19vdmxkIF9fY25mbiBsZGV4cChoYWxmOCB4LCBpbnQgbik7CmhhbGYxNiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYxNiB4LCBpbnQgbik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogTG9nIGdhbW1hIGZ1bmN0aW9uLiBSZXR1cm5zIHRoZSBuYXR1cmFsCiAqIGxvZ2FyaXRobSBvZiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIGdhbW1hCiAqIGZ1bmN0aW9uLiBUaGUgc2lnbiBvZiB0aGUgZ2FtbWEgZnVuY3Rpb24gaXMKICogcmV0dXJuZWQgaW4gdGhlIHNpZ25wIGFyZ3VtZW50IG9mIGxnYW1tYV9yLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsZ2FtbWEoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxnYW1tYShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxnYW1tYShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIGxnYW1tYShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBsZ2FtbWEoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdCB4LCBpbnQgKnNpZ25wKTsKZmxvYXQyIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDIgeCwgaW50MiAqc2lnbnApOwpmbG9hdDMgX19vdmxkIGxnYW1tYV9yKGZsb2F0MyB4LCBpbnQzICpzaWducCk7CmZsb2F0NCBfX292bGQgbGdhbW1hX3IoZmxvYXQ0IHgsIGludDQgKnNpZ25wKTsKZmxvYXQ4IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDggeCwgaW50OCAqc2lnbnApOwpmbG9hdDE2IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDE2IHgsIGludDE2ICpzaWducCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGxnYW1tYV9yKGRvdWJsZSB4LCBpbnQgKnNpZ25wKTsKZG91YmxlMiBfX292bGQgbGdhbW1hX3IoZG91YmxlMiB4LCBpbnQyICpzaWducCk7CmRvdWJsZTMgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTMgeCwgaW50MyAqc2lnbnApOwpkb3VibGU0IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGU0IHgsIGludDQgKnNpZ25wKTsKZG91YmxlOCBfX292bGQgbGdhbW1hX3IoZG91YmxlOCB4LCBpbnQ4ICpzaWducCk7CmRvdWJsZTE2IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUxNiB4LCBpbnQxNiAqc2lnbnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgbGdhbW1hX3IoaGFsZiB4LCBpbnQgKnNpZ25wKTsKaGFsZjIgX19vdmxkIGxnYW1tYV9yKGhhbGYyIHgsIGludDIgKnNpZ25wKTsKaGFsZjMgX19vdmxkIGxnYW1tYV9yKGhhbGYzIHgsIGludDMgKnNpZ25wKTsKaGFsZjQgX19vdmxkIGxnYW1tYV9yKGhhbGY0IHgsIGludDQgKnNpZ25wKTsKaGFsZjggX19vdmxkIGxnYW1tYV9yKGhhbGY4IHgsIGludDggKnNpZ25wKTsKaGFsZjE2IF9fb3ZsZCBsZ2FtbWFfcihoYWxmMTYgeCwgaW50MTYgKnNpZ25wKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpmbG9hdDIgX19vdmxkIGxnYW1tYV9yKGZsb2F0MiB4LCBfX2dsb2JhbCBpbnQyICpzaWducCk7CmZsb2F0MyBfX292bGQgbGdhbW1hX3IoZmxvYXQzIHgsIF9fZ2xvYmFsIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpmbG9hdDggX19vdmxkIGxnYW1tYV9yKGZsb2F0OCB4LCBfX2dsb2JhbCBpbnQ4ICpzaWducCk7CmZsb2F0MTYgX19vdmxkIGxnYW1tYV9yKGZsb2F0MTYgeCwgX19nbG9iYWwgaW50MTYgKnNpZ25wKTsKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmZsb2F0MiBfX292bGQgbGdhbW1hX3IoZmxvYXQyIHgsIF9fbG9jYWwgaW50MiAqc2lnbnApOwpmbG9hdDMgX19vdmxkIGxnYW1tYV9yKGZsb2F0MyB4LCBfX2xvY2FsIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmZsb2F0OCBfX292bGQgbGdhbW1hX3IoZmxvYXQ4IHgsIF9fbG9jYWwgaW50OCAqc2lnbnApOwpmbG9hdDE2IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDE2IHgsIF9fbG9jYWwgaW50MTYgKnNpZ25wKTsKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKZmxvYXQyIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDIgeCwgX19wcml2YXRlIGludDIgKnNpZ25wKTsKZmxvYXQzIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDMgeCwgX19wcml2YXRlIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKZmxvYXQ4IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDggeCwgX19wcml2YXRlIGludDggKnNpZ25wKTsKZmxvYXQxNiBfX292bGQgbGdhbW1hX3IoZmxvYXQxNiB4LCBfX3ByaXZhdGUgaW50MTYgKnNpZ25wKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpkb3VibGUyIF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUyIHgsIF9fZ2xvYmFsIGludDIgKnNpZ25wKTsKZG91YmxlMyBfX292bGQgbGdhbW1hX3IoZG91YmxlMyB4LCBfX2dsb2JhbCBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpkb3VibGU4IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGU4IHgsIF9fZ2xvYmFsIGludDggKnNpZ25wKTsKZG91YmxlMTYgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTE2IHgsIF9fZ2xvYmFsIGludDE2ICpzaWducCk7CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmRvdWJsZTIgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTIgeCwgX19sb2NhbCBpbnQyICpzaWducCk7CmRvdWJsZTMgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTMgeCwgX19sb2NhbCBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmRvdWJsZTggX19vdmxkIGxnYW1tYV9yKGRvdWJsZTggeCwgX19sb2NhbCBpbnQ4ICpzaWducCk7CmRvdWJsZTE2IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUxNiB4LCBfX2xvY2FsIGludDE2ICpzaWducCk7CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKZG91YmxlMiBfX292bGQgbGdhbW1hX3IoZG91YmxlMiB4LCBfX3ByaXZhdGUgaW50MiAqc2lnbnApOwpkb3VibGUzIF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUzIHgsIF9fcHJpdmF0ZSBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKZG91YmxlOCBfX292bGQgbGdhbW1hX3IoZG91YmxlOCB4LCBfX3ByaXZhdGUgaW50OCAqc2lnbnApOwpkb3VibGUxNiBfX292bGQgbGdhbW1hX3IoZG91YmxlMTYgeCwgX19wcml2YXRlIGludDE2ICpzaWducCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpoYWxmMiBfX292bGQgbGdhbW1hX3IoaGFsZjIgeCwgX19nbG9iYWwgaW50MiAqc2lnbnApOwpoYWxmMyBfX292bGQgbGdhbW1hX3IoaGFsZjMgeCwgX19nbG9iYWwgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpoYWxmOCBfX292bGQgbGdhbW1hX3IoaGFsZjggeCwgX19nbG9iYWwgaW50OCAqc2lnbnApOwpoYWxmMTYgX19vdmxkIGxnYW1tYV9yKGhhbGYxNiB4LCBfX2dsb2JhbCBpbnQxNiAqc2lnbnApOwpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmhhbGYyIF9fb3ZsZCBsZ2FtbWFfcihoYWxmMiB4LCBfX2xvY2FsIGludDIgKnNpZ25wKTsKaGFsZjMgX19vdmxkIGxnYW1tYV9yKGhhbGYzIHgsIF9fbG9jYWwgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmhhbGY4IF9fb3ZsZCBsZ2FtbWFfcihoYWxmOCB4LCBfX2xvY2FsIGludDggKnNpZ25wKTsKaGFsZjE2IF9fb3ZsZCBsZ2FtbWFfcihoYWxmMTYgeCwgX19sb2NhbCBpbnQxNiAqc2lnbnApOwpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKaGFsZjIgX19vdmxkIGxnYW1tYV9yKGhhbGYyIHgsIF9fcHJpdmF0ZSBpbnQyICpzaWducCk7CmhhbGYzIF9fb3ZsZCBsZ2FtbWFfcihoYWxmMyB4LCBfX3ByaXZhdGUgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKaGFsZjggX19vdmxkIGxnYW1tYV9yKGhhbGY4IHgsIF9fcHJpdmF0ZSBpbnQ4ICpzaWducCk7CmhhbGYxNiBfX292bGQgbGdhbW1hX3IoaGFsZjE2IHgsIF9fcHJpdmF0ZSBpbnQxNiAqc2lnbnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIENvbXB1dGUgbmF0dXJhbCBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxvZyhmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBsb2coZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbG9nKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbG9nKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbG9nKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2coZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBsb2coZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBsb2coZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2coZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbG9nKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBsb2coaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBsb2coaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGxvZyhoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMiBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxvZzIoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxvZzIoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbG9nMihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxvZzIoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBsb2cyKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsb2cyKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBsb2cyKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGxvZzIoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGxvZzIoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGxvZzIoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGxvZzIoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsb2cyKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMTAgbG9nYXJpdGhtLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsb2cxMChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsb2cxMChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxvZzEwKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxvZzEwKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbG9nMTAoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGxvZzEwKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBsb2cxMChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsb2cxMChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIGUgbG9nYXJpdGhtIG9mICgxLjAgKyB4KS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbG9nMXAoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsb2cxcChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGxvZzFwKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxvZzFwKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxvZzFwKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGxvZzFwKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHRoZSBleHBvbmVudCBvZiB4LCB3aGljaCBpcyB0aGUgaW50ZWdyYWwKICogcGFydCBvZiBsb2dyIHwgeCB8LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsb2diKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsb2diKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbG9nYihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxvZ2IoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBsb2diKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGxvZ2IoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxvZ2IoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxvZ2IoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbG9nYihoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbG9nYihoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBsb2diKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIG1hZCBhcHByb3hpbWF0ZXMgYSAqIGIgKyBjLiBXaGV0aGVyIG9yIGhvdyB0aGUKICogcHJvZHVjdCBvZiBhICogYiBpcyByb3VuZGVkIGFuZCBob3cgc3VwZXJub3JtYWwgb3IKICogc3Vibm9ybWFsIGludGVybWVkaWF0ZSBwcm9kdWN0cyBhcmUgaGFuZGxlZCBpcyBub3QKICogZGVmaW5lZC4gbWFkIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlcmUgc3BlZWQgaXMKICogcHJlZmVycmVkIG92ZXIgYWNjdXJhY3kuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1hZChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0MiBhLCBmbG9hdDIgYiwgZmxvYXQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBtYWQoZmxvYXQzIGEsIGZsb2F0MyBiLCBmbG9hdDMgYyk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1hZChmbG9hdDQgYSwgZmxvYXQ0IGIsIGZsb2F0NCBjKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0OCBhLCBmbG9hdDggYiwgZmxvYXQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBmbG9hdDE2IGMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTIgYSwgZG91YmxlMiBiLCBkb3VibGUyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTMgYSwgZG91YmxlMyBiLCBkb3VibGUzIGMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTQgYSwgZG91YmxlNCBiLCBkb3VibGU0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTggYSwgZG91YmxlOCBiLCBkb3VibGU4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1hZChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBkb3VibGUxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYWQoaGFsZiBhLCBoYWxmIGIsIGhhbGYgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWFkKGhhbGYyIGEsIGhhbGYyIGIsIGhhbGYyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIG1hZChoYWxmMyBhLCBoYWxmMyBiLCBoYWxmMyBjKTsKaGFsZjQgX19vdmxkIF9fY25mbiBtYWQoaGFsZjQgYSwgaGFsZjQgYiwgaGFsZjQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWFkKGhhbGY4IGEsIGhhbGY4IGIsIGhhbGY4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBtYWQoaGFsZjE2IGEsIGhhbGYxNiBiLCBoYWxmMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB4IGlmIHwgeCB8ID4gfCB5IHwsIHkgaWYgfCB5IHwgPiB8IHggfCwgb3RoZXJ3aXNlCiAqIGZtYXgoeCwgeSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1heG1hZyhmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1heG1hZyhmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBtYXhtYWcoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtYXhtYWcoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtYXhtYWcoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1heG1hZyhkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtYXhtYWcoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1heG1hZyhkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYXhtYWcoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1heG1hZyhoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtYXhtYWcoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1heG1hZyhoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB4IGlmIHwgeCB8IDwgfCB5IHwsIHkgaWYgfCB5IHwgPCB8IHggfCwgb3RoZXJ3aXNlCiAqIGZtaW4oeCwgeSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1pbm1hZyhmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1pbm1hZyhmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBtaW5tYWcoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaW5tYWcoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaW5tYWcoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1pbm1hZyhkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaW5tYWcoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1pbm1hZyhkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtaW5tYWcoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1pbm1hZyhoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaW5tYWcoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1pbm1hZyhoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRGVjb21wb3NlIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLiBUaGUgbW9kZgogKiBmdW5jdGlvbiBicmVha3MgdGhlIGFyZ3VtZW50IHggaW50byBpbnRlZ3JhbCBhbmQKICogZnJhY3Rpb25hbCBwYXJ0cywgZWFjaCBvZiB3aGljaCBoYXMgdGhlIHNhbWUgc2lnbiBhcwogKiB0aGUgYXJndW1lbnQuIEl0IHN0b3JlcyB0aGUgaW50ZWdyYWwgcGFydCBpbiB0aGUgb2JqZWN0CiAqIHBvaW50ZWQgdG8gYnkgaXB0ci4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgbW9kZihmbG9hdCB4LCBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgbW9kZihmbG9hdDIgeCwgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBtb2RmKGZsb2F0MyB4LCBmbG9hdDMgKmlwdHIpOwpmbG9hdDQgX19vdmxkIG1vZGYoZmxvYXQ0IHgsIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgbW9kZihmbG9hdDggeCwgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgbW9kZihmbG9hdDE2IHgsIGZsb2F0MTYgKmlwdHIpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBtb2RmKGRvdWJsZSB4LCBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBtb2RmKGRvdWJsZTIgeCwgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIG1vZGYoZG91YmxlMyB4LCBkb3VibGUzICppcHRyKTsKZG91YmxlNCBfX292bGQgbW9kZihkb3VibGU0IHgsIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBtb2RmKGRvdWJsZTggeCwgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBtb2RmKGRvdWJsZTE2IHgsIGRvdWJsZTE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIG1vZGYoaGFsZiB4LCBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIG1vZGYoaGFsZjIgeCwgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgbW9kZihoYWxmMyB4LCBoYWxmMyAqaXB0cik7CmhhbGY0IF9fb3ZsZCBtb2RmKGhhbGY0IHgsIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIG1vZGYoaGFsZjggeCwgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIG1vZGYoaGFsZjE2IHgsIGhhbGYxNiAqaXB0cik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fZ2xvYmFsIGZsb2F0ICppcHRyKTsKZmxvYXQyIF9fb3ZsZCBtb2RmKGZsb2F0MiB4LCBfX2dsb2JhbCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIG1vZGYoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19nbG9iYWwgZmxvYXQ0ICppcHRyKTsKZmxvYXQ4IF9fb3ZsZCBtb2RmKGZsb2F0OCB4LCBfX2dsb2JhbCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBtb2RmKGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fbG9jYWwgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIG1vZGYoZmxvYXQyIHgsIF9fbG9jYWwgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBtb2RmKGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19sb2NhbCBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIG1vZGYoZmxvYXQ4IHgsIF9fbG9jYWwgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgbW9kZihmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fcHJpdmF0ZSBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgbW9kZihmbG9hdDIgeCwgX19wcml2YXRlIGZsb2F0MiAqaXB0cik7CmZsb2F0MyBfX292bGQgbW9kZihmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19wcml2YXRlIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgbW9kZihmbG9hdDggeCwgX19wcml2YXRlIGZsb2F0OCAqaXB0cik7CmZsb2F0MTYgX19vdmxkIG1vZGYoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqaXB0cik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fZ2xvYmFsIGRvdWJsZSAqaXB0cik7CmRvdWJsZTIgX19vdmxkIG1vZGYoZG91YmxlMiB4LCBfX2dsb2JhbCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgbW9kZihkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19nbG9iYWwgZG91YmxlNCAqaXB0cik7CmRvdWJsZTggX19vdmxkIG1vZGYoZG91YmxlOCB4LCBfX2dsb2JhbCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIG1vZGYoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fbG9jYWwgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgbW9kZihkb3VibGUyIHgsIF9fbG9jYWwgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIG1vZGYoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19sb2NhbCBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgbW9kZihkb3VibGU4IHgsIF9fbG9jYWwgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBtb2RmKGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fcHJpdmF0ZSBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBtb2RmKGRvdWJsZTIgeCwgX19wcml2YXRlIGRvdWJsZTIgKmlwdHIpOwpkb3VibGUzIF9fb3ZsZCBtb2RmKGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19wcml2YXRlIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBtb2RmKGRvdWJsZTggeCwgX19wcml2YXRlIGRvdWJsZTggKmlwdHIpOwpkb3VibGUxNiBfX292bGQgbW9kZihkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmlwdHIpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fZ2xvYmFsIGhhbGYgKmlwdHIpOwpoYWxmMiBfX292bGQgbW9kZihoYWxmMiB4LCBfX2dsb2JhbCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBtb2RmKGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19nbG9iYWwgaGFsZjQgKmlwdHIpOwpoYWxmOCBfX292bGQgbW9kZihoYWxmOCB4LCBfX2dsb2JhbCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgbW9kZihoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fbG9jYWwgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBtb2RmKGhhbGYyIHgsIF9fbG9jYWwgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgbW9kZihoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19sb2NhbCBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBtb2RmKGhhbGY4IHgsIF9fbG9jYWwgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIG1vZGYoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fcHJpdmF0ZSBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIG1vZGYoaGFsZjIgeCwgX19wcml2YXRlIGhhbGYyICppcHRyKTsKaGFsZjMgX19vdmxkIG1vZGYoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19wcml2YXRlIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIG1vZGYoaGFsZjggeCwgX19wcml2YXRlIGhhbGY4ICppcHRyKTsKaGFsZjE2IF9fb3ZsZCBtb2RmKGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBSZXR1cm5zIGEgcXVpZXQgTmFOLiBUaGUgbmFuY29kZSBtYXkgYmUgcGxhY2VkCiAqIGluIHRoZSBzaWduaWZpY2FuZCBvZiB0aGUgcmVzdWx0aW5nIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmFuKHVpbnQgbmFuY29kZSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hbih1aW50MiBuYW5jb2RlKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmFuKHVpbnQzIG5hbmNvZGUpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYW4odWludDQgbmFuY29kZSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hbih1aW50OCBuYW5jb2RlKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hbih1aW50MTYgbmFuY29kZSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBuYW4odWxvbmcgbmFuY29kZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBuYW4odWxvbmcyIG5hbmNvZGUpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbmFuKHVsb25nMyBuYW5jb2RlKTsKZG91YmxlNCBfX292bGQgX19jbmZuIG5hbih1bG9uZzQgbmFuY29kZSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBuYW4odWxvbmc4IG5hbmNvZGUpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG5hbih1bG9uZzE2IG5hbmNvZGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIG5hbih1c2hvcnQgbmFuY29kZSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDIgbmFuY29kZSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDMgbmFuY29kZSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDQgbmFuY29kZSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDggbmFuY29kZSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG5hbih1c2hvcnQxNiBuYW5jb2RlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlcyB0aGUgbmV4dCByZXByZXNlbnRhYmxlIHNpbmdsZS1wcmVjaXNpb24KICogZmxvYXRpbmctcG9pbnQgdmFsdWUgZm9sbG93aW5nIHggaW4gdGhlIGRpcmVjdGlvbiBvZgogKiB5LiBUaHVzLCBpZiB5IGlzIGxlc3MgdGhhbiB4LCBuZXh0YWZ0ZXIoKSByZXR1cm5zIHRoZQogKiBsYXJnZXN0IHJlcHJlc2VudGFibGUgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGxlc3MKICogdGhhbiB4LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5leHRhZnRlcihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5leHRhZnRlcihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG5leHRhZnRlcihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG5leHRhZnRlcihkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIG5leHRhZnRlcihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG5leHRhZnRlcihoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgeCB0byB0aGUgcG93ZXIgeS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93KGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBwb3coZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gcG93KGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvdyhmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBwb3coZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHBvdyhmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3coZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHBvdyhkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBwb3coZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93KGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHBvdyhkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcG93KGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvdyhoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcG93KGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHBvdyhoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3coaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcG93KGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBwb3coaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHkgaXMgYW4gaW50ZWdlci4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93bihmbG9hdCB4LCBpbnQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIHBvd24oZmxvYXQyIHgsIGludDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIHBvd24oZmxvYXQzIHgsIGludDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvd24oZmxvYXQ0IHgsIGludDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIHBvd24oZmxvYXQ4IHgsIGludDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBwb3duKGZsb2F0MTYgeCwgaW50MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZSB4LCBpbnQgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTIgeCwgaW50MiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHBvd24oZG91YmxlMyB4LCBpbnQzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93bihkb3VibGU0IHgsIGludDQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTggeCwgaW50OCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTE2IHgsIGludDE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvd24oaGFsZiB4LCBpbnQgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcG93bihoYWxmMiB4LCBpbnQyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHBvd24oaGFsZjMgeCwgaW50MyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3duKGhhbGY0IHgsIGludDQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcG93bihoYWxmOCB4LCBpbnQ4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBwb3duKGhhbGYxNiB4LCBpbnQxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHggaXMgPj0gMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBwb3dyKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvd3IoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHBvd3IoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93cihkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvd3IoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIHBvd3IoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gcG93cihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3dyKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIHBvd3IoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIHBvd3IoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHRoZSB2YWx1ZSByIHN1Y2ggdGhhdCByID0geCAtIG4qeSwgd2hlcmUgbgogKiBpcyB0aGUgaW50ZWdlciBuZWFyZXN0IHRoZSBleGFjdCB2YWx1ZSBvZiB4L3kuIElmIHRoZXJlCiAqIGFyZSB0d28gaW50ZWdlcnMgY2xvc2VzdCB0byB4L3ksIG4gc2hhbGwgYmUgdGhlIGV2ZW4KICogb25lLiBJZiByIGlzIHplcm8sIGl0IGlzIGdpdmVuIHRoZSBzYW1lIHNpZ24gYXMgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHJlbWFpbmRlcihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiByZW1haW5kZXIoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHJlbWFpbmRlcihkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHJlbWFpbmRlcihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiByZW1haW5kZXIoaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByZW1haW5kZXIoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBUaGUgcmVtcXVvIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSB2YWx1ZSByIHN1Y2gKICogdGhhdCByID0geCAtIG4qeSwgd2hlcmUgbiBpcyB0aGUgaW50ZWdlciBuZWFyZXN0IHRoZQogKiBleGFjdCB2YWx1ZSBvZiB4L3kuIElmIHRoZXJlIGFyZSB0d28gaW50ZWdlcnMgY2xvc2VzdAogKiB0byB4L3ksIG4gc2hhbGwgYmUgdGhlIGV2ZW4gb25lLiBJZiByIGlzIHplcm8sIGl0IGlzCiAqIGdpdmVuIHRoZSBzYW1lIHNpZ24gYXMgeC4gVGhpcyBpcyB0aGUgc2FtZSB2YWx1ZQogKiB0aGF0IGlzIHJldHVybmVkIGJ5IHRoZSByZW1haW5kZXIgZnVuY3Rpb24uCiAqIHJlbXF1byBhbHNvIGNhbGN1bGF0ZXMgdGhlIGxvd2VyIHNldmVuIGJpdHMgb2YgdGhlCiAqIGludGVncmFsIHF1b3RpZW50IHgveSwgYW5kIGdpdmVzIHRoYXQgdmFsdWUgdGhlIHNhbWUKICogc2lnbiBhcyB4L3kuIEl0IHN0b3JlcyB0aGlzIHNpZ25lZCB2YWx1ZSBpbiB0aGUgb2JqZWN0CiAqIHBvaW50ZWQgdG8gYnkgcXVvLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgaW50ICpxdW8pOwpmbG9hdDIgX19vdmxkIHJlbXF1byhmbG9hdDIgeCwgZmxvYXQyIHksIGludDIgKnF1byk7CmZsb2F0MyBfX292bGQgcmVtcXVvKGZsb2F0MyB4LCBmbG9hdDMgeSwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBpbnQ0ICpxdW8pOwpmbG9hdDggX19vdmxkIHJlbXF1byhmbG9hdDggeCwgZmxvYXQ4IHksIGludDggKnF1byk7CmZsb2F0MTYgX19vdmxkIHJlbXF1byhmbG9hdDE2IHgsIGZsb2F0MTYgeSwgaW50MTYgKnF1byk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIGludCAqcXVvKTsKZG91YmxlMiBfX292bGQgcmVtcXVvKGRvdWJsZTIgeCwgZG91YmxlMiB5LCBpbnQyICpxdW8pOwpkb3VibGUzIF9fb3ZsZCByZW1xdW8oZG91YmxlMyB4LCBkb3VibGUzIHksIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgaW50NCAqcXVvKTsKZG91YmxlOCBfX292bGQgcmVtcXVvKGRvdWJsZTggeCwgZG91YmxlOCB5LCBpbnQ4ICpxdW8pOwpkb3VibGUxNiBfX292bGQgcmVtcXVvKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIGludDE2ICpxdW8pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBpbnQgKnF1byk7CmhhbGYyIF9fb3ZsZCByZW1xdW8oaGFsZjIgeCwgaGFsZjIgeSwgaW50MiAqcXVvKTsKaGFsZjMgX19vdmxkIHJlbXF1byhoYWxmMyB4LCBoYWxmMyB5LCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIGludDQgKnF1byk7CmhhbGY4IF9fb3ZsZCByZW1xdW8oaGFsZjggeCwgaGFsZjggeSwgaW50OCAqcXVvKTsKaGFsZjE2IF9fb3ZsZCByZW1xdW8oaGFsZjE2IHgsIGhhbGYxNiB5LCBpbnQxNiAqcXVvKTsKCiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19nbG9iYWwgaW50ICpxdW8pOwpmbG9hdDIgX19vdmxkIHJlbXF1byhmbG9hdDIgeCwgZmxvYXQyIHksIF9fZ2xvYmFsIGludDIgKnF1byk7CmZsb2F0MyBfX292bGQgcmVtcXVvKGZsb2F0MyB4LCBmbG9hdDMgeSwgX19nbG9iYWwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX2dsb2JhbCBpbnQ0ICpxdW8pOwpmbG9hdDggX19vdmxkIHJlbXF1byhmbG9hdDggeCwgZmxvYXQ4IHksIF9fZ2xvYmFsIGludDggKnF1byk7CmZsb2F0MTYgX19vdmxkIHJlbXF1byhmbG9hdDE2IHgsIGZsb2F0MTYgeSwgX19nbG9iYWwgaW50MTYgKnF1byk7CmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19sb2NhbCBpbnQgKnF1byk7CmZsb2F0MiBfX292bGQgcmVtcXVvKGZsb2F0MiB4LCBmbG9hdDIgeSwgX19sb2NhbCBpbnQyICpxdW8pOwpmbG9hdDMgX19vdmxkIHJlbXF1byhmbG9hdDMgeCwgZmxvYXQzIHksIF9fbG9jYWwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX2xvY2FsIGludDQgKnF1byk7CmZsb2F0OCBfX292bGQgcmVtcXVvKGZsb2F0OCB4LCBmbG9hdDggeSwgX19sb2NhbCBpbnQ4ICpxdW8pOwpmbG9hdDE2IF9fb3ZsZCByZW1xdW8oZmxvYXQxNiB4LCBmbG9hdDE2IHksIF9fbG9jYWwgaW50MTYgKnF1byk7CmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19wcml2YXRlIGludCAqcXVvKTsKZmxvYXQyIF9fb3ZsZCByZW1xdW8oZmxvYXQyIHgsIGZsb2F0MiB5LCBfX3ByaXZhdGUgaW50MiAqcXVvKTsKZmxvYXQzIF9fb3ZsZCByZW1xdW8oZmxvYXQzIHgsIGZsb2F0MyB5LCBfX3ByaXZhdGUgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX3ByaXZhdGUgaW50NCAqcXVvKTsKZmxvYXQ4IF9fb3ZsZCByZW1xdW8oZmxvYXQ4IHgsIGZsb2F0OCB5LCBfX3ByaXZhdGUgaW50OCAqcXVvKTsKZmxvYXQxNiBfX292bGQgcmVtcXVvKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCBfX3ByaXZhdGUgaW50MTYgKnF1byk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fZ2xvYmFsIGludCAqcXVvKTsKZG91YmxlMiBfX292bGQgcmVtcXVvKGRvdWJsZTIgeCwgZG91YmxlMiB5LCBfX2dsb2JhbCBpbnQyICpxdW8pOwpkb3VibGUzIF9fb3ZsZCByZW1xdW8oZG91YmxlMyB4LCBkb3VibGUzIHksIF9fZ2xvYmFsIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19nbG9iYWwgaW50NCAqcXVvKTsKZG91YmxlOCBfX292bGQgcmVtcXVvKGRvdWJsZTggeCwgZG91YmxlOCB5LCBfX2dsb2JhbCBpbnQ4ICpxdW8pOwpkb3VibGUxNiBfX292bGQgcmVtcXVvKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIF9fZ2xvYmFsIGludDE2ICpxdW8pOwpkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fbG9jYWwgaW50ICpxdW8pOwpkb3VibGUyIF9fb3ZsZCByZW1xdW8oZG91YmxlMiB4LCBkb3VibGUyIHksIF9fbG9jYWwgaW50MiAqcXVvKTsKZG91YmxlMyBfX292bGQgcmVtcXVvKGRvdWJsZTMgeCwgZG91YmxlMyB5LCBfX2xvY2FsIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19sb2NhbCBpbnQ0ICpxdW8pOwpkb3VibGU4IF9fb3ZsZCByZW1xdW8oZG91YmxlOCB4LCBkb3VibGU4IHksIF9fbG9jYWwgaW50OCAqcXVvKTsKZG91YmxlMTYgX19vdmxkIHJlbXF1byhkb3VibGUxNiB4LCBkb3VibGUxNiB5LCBfX2xvY2FsIGludDE2ICpxdW8pOwpkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fcHJpdmF0ZSBpbnQgKnF1byk7CmRvdWJsZTIgX19vdmxkIHJlbXF1byhkb3VibGUyIHgsIGRvdWJsZTIgeSwgX19wcml2YXRlIGludDIgKnF1byk7CmRvdWJsZTMgX19vdmxkIHJlbXF1byhkb3VibGUzIHgsIGRvdWJsZTMgeSwgX19wcml2YXRlIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19wcml2YXRlIGludDQgKnF1byk7CmRvdWJsZTggX19vdmxkIHJlbXF1byhkb3VibGU4IHgsIGRvdWJsZTggeSwgX19wcml2YXRlIGludDggKnF1byk7CmRvdWJsZTE2IF9fb3ZsZCByZW1xdW8oZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgX19wcml2YXRlIGludDE2ICpxdW8pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX2dsb2JhbCBpbnQgKnF1byk7CmhhbGYyIF9fb3ZsZCByZW1xdW8oaGFsZjIgeCwgaGFsZjIgeSwgX19nbG9iYWwgaW50MiAqcXVvKTsKaGFsZjMgX19vdmxkIHJlbXF1byhoYWxmMyB4LCBoYWxmMyB5LCBfX2dsb2JhbCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fZ2xvYmFsIGludDQgKnF1byk7CmhhbGY4IF9fb3ZsZCByZW1xdW8oaGFsZjggeCwgaGFsZjggeSwgX19nbG9iYWwgaW50OCAqcXVvKTsKaGFsZjE2IF9fb3ZsZCByZW1xdW8oaGFsZjE2IHgsIGhhbGYxNiB5LCBfX2dsb2JhbCBpbnQxNiAqcXVvKTsKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX2xvY2FsIGludCAqcXVvKTsKaGFsZjIgX19vdmxkIHJlbXF1byhoYWxmMiB4LCBoYWxmMiB5LCBfX2xvY2FsIGludDIgKnF1byk7CmhhbGYzIF9fb3ZsZCByZW1xdW8oaGFsZjMgeCwgaGFsZjMgeSwgX19sb2NhbCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fbG9jYWwgaW50NCAqcXVvKTsKaGFsZjggX19vdmxkIHJlbXF1byhoYWxmOCB4LCBoYWxmOCB5LCBfX2xvY2FsIGludDggKnF1byk7CmhhbGYxNiBfX292bGQgcmVtcXVvKGhhbGYxNiB4LCBoYWxmMTYgeSwgX19sb2NhbCBpbnQxNiAqcXVvKTsKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX3ByaXZhdGUgaW50ICpxdW8pOwpoYWxmMiBfX292bGQgcmVtcXVvKGhhbGYyIHgsIGhhbGYyIHksIF9fcHJpdmF0ZSBpbnQyICpxdW8pOwpoYWxmMyBfX292bGQgcmVtcXVvKGhhbGYzIHgsIGhhbGYzIHksIF9fcHJpdmF0ZSBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fcHJpdmF0ZSBpbnQ0ICpxdW8pOwpoYWxmOCBfX292bGQgcmVtcXVvKGhhbGY4IHgsIGhhbGY4IHksIF9fcHJpdmF0ZSBpbnQ4ICpxdW8pOwpoYWxmMTYgX19vdmxkIHJlbXF1byhoYWxmMTYgeCwgaGFsZjE2IHksIF9fcHJpdmF0ZSBpbnQxNiAqcXVvKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlICh1c2luZyByb3VuZCB0byBuZWFyZXN0CiAqIGV2ZW4gcm91bmRpbmcgbW9kZSkgaW4gZmxvYXRpbmctcG9pbnQgZm9ybWF0LgogKiBSZWZlciB0byBzZWN0aW9uIDcuMSBmb3IgZGVzY3JpcHRpb24gb2Ygcm91bmRpbmcKICogbW9kZXMuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJpbnQoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByaW50KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHJpbnQoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcmludChmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiByaW50KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByaW50KGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJpbnQoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByaW50KGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByaW50KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByaW50KGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHJpbnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHJpbnQoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHJpbnQoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHJpbnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByaW50KGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB4IHRvIHRoZSBwb3dlciAxL3kuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJvb3RuKGZsb2F0IHgsIGludCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gcm9vdG4oZmxvYXQyIHgsIGludDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIHJvb3RuKGZsb2F0MyB4LCBpbnQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiByb290bihmbG9hdDQgeCwgaW50NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gcm9vdG4oZmxvYXQ4IHgsIGludDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByb290bihmbG9hdDE2IHgsIGludDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcm9vdG4oZG91YmxlIHgsIGludCB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTIgeCwgaW50MiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTMgeCwgaW50MyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTQgeCwgaW50NCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTggeCwgaW50OCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByb290bihkb3VibGUxNiB4LCBpbnQxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByb290bihoYWxmIHgsIGludCB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiByb290bihoYWxmMiB4LCBpbnQyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHJvb3RuKGhhbGYzIHgsIGludDMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gcm9vdG4oaGFsZjQgeCwgaW50NCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiByb290bihoYWxmOCB4LCBpbnQ4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByb290bihoYWxmMTYgeCwgaW50MTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJuIHRoZSBpbnRlZ3JhbCB2YWx1ZSBuZWFyZXN0IHRvIHggcm91bmRpbmcKICogaGFsZndheSBjYXNlcyBhd2F5IGZyb20gemVybywgcmVnYXJkbGVzcyBvZiB0aGUKICogY3VycmVudCByb3VuZGluZyBkaXJlY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJvdW5kKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHJvdW5kKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcm91bmQoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJvdW5kKGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByb3VuZChkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByb3VuZChkb3VibGUxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByb3VuZChoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIHJvdW5kKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHJvdW5kKGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHJvdW5kKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIHJvdW5kKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByb3VuZChoYWxmMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBpbnZlcnNlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiByc3FydChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByc3FydChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHJzcXJ0KGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiByc3FydChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJzcXJ0KGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcnNxcnQoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiByc3FydChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByc3FydChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHJzcXJ0KGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiByc3FydChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByc3FydChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc2luZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHNpbihmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaW4oZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaW4oZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBzaW4oZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbihkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNpbihkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNpbihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbihkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaW4oZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNpbihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW4oaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHNpbihoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2luKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW4oaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaW4oaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHNpbmUgYW5kIGNvc2luZSBvZiB4LiBUaGUgY29tcHV0ZWQgc2luZQogKiBpcyB0aGUgcmV0dXJuIHZhbHVlIGFuZCBjb21wdXRlZCBjb3NpbmUgaXMgcmV0dXJuZWQKICogaW4gY29zdmFsLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCBzaW5jb3MoZmxvYXQgeCwgZmxvYXQgKmNvc3ZhbCk7CmZsb2F0MiBfX292bGQgc2luY29zKGZsb2F0MiB4LCBmbG9hdDIgKmNvc3ZhbCk7CmZsb2F0MyBfX292bGQgc2luY29zKGZsb2F0MyB4LCBmbG9hdDMgKmNvc3ZhbCk7CmZsb2F0NCBfX292bGQgc2luY29zKGZsb2F0NCB4LCBmbG9hdDQgKmNvc3ZhbCk7CmZsb2F0OCBfX292bGQgc2luY29zKGZsb2F0OCB4LCBmbG9hdDggKmNvc3ZhbCk7CmZsb2F0MTYgX19vdmxkIHNpbmNvcyhmbG9hdDE2IHgsIGZsb2F0MTYgKmNvc3ZhbCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHNpbmNvcyhkb3VibGUgeCwgZG91YmxlICpjb3N2YWwpOwpkb3VibGUyIF9fb3ZsZCBzaW5jb3MoZG91YmxlMiB4LCBkb3VibGUyICpjb3N2YWwpOwpkb3VibGUzIF9fb3ZsZCBzaW5jb3MoZG91YmxlMyB4LCBkb3VibGUzICpjb3N2YWwpOwpkb3VibGU0IF9fb3ZsZCBzaW5jb3MoZG91YmxlNCB4LCBkb3VibGU0ICpjb3N2YWwpOwpkb3VibGU4IF9fb3ZsZCBzaW5jb3MoZG91YmxlOCB4LCBkb3VibGU4ICpjb3N2YWwpOwpkb3VibGUxNiBfX292bGQgc2luY29zKGRvdWJsZTE2IHgsIGRvdWJsZTE2ICpjb3N2YWwpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgc2luY29zKGhhbGYgeCwgaGFsZiAqY29zdmFsKTsKaGFsZjIgX19vdmxkIHNpbmNvcyhoYWxmMiB4LCBoYWxmMiAqY29zdmFsKTsKaGFsZjMgX19vdmxkIHNpbmNvcyhoYWxmMyB4LCBoYWxmMyAqY29zdmFsKTsKaGFsZjQgX19vdmxkIHNpbmNvcyhoYWxmNCB4LCBoYWxmNCAqY29zdmFsKTsKaGFsZjggX19vdmxkIHNpbmNvcyhoYWxmOCB4LCBoYWxmOCAqY29zdmFsKTsKaGFsZjE2IF9fb3ZsZCBzaW5jb3MoaGFsZjE2IHgsIGhhbGYxNiAqY29zdmFsKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX2dsb2JhbCBmbG9hdCAqY29zdmFsKTsKZmxvYXQyIF9fb3ZsZCBzaW5jb3MoZmxvYXQyIHgsIF9fZ2xvYmFsIGZsb2F0MiAqY29zdmFsKTsKZmxvYXQzIF9fb3ZsZCBzaW5jb3MoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fZ2xvYmFsIGZsb2F0NCAqY29zdmFsKTsKZmxvYXQ4IF9fb3ZsZCBzaW5jb3MoZmxvYXQ4IHgsIF9fZ2xvYmFsIGZsb2F0OCAqY29zdmFsKTsKZmxvYXQxNiBfX292bGQgc2luY29zKGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqY29zdmFsKTsKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX2xvY2FsIGZsb2F0ICpjb3N2YWwpOwpmbG9hdDIgX19vdmxkIHNpbmNvcyhmbG9hdDIgeCwgX19sb2NhbCBmbG9hdDIgKmNvc3ZhbCk7CmZsb2F0MyBfX292bGQgc2luY29zKGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fbG9jYWwgZmxvYXQ0ICpjb3N2YWwpOwpmbG9hdDggX19vdmxkIHNpbmNvcyhmbG9hdDggeCwgX19sb2NhbCBmbG9hdDggKmNvc3ZhbCk7CmZsb2F0MTYgX19vdmxkIHNpbmNvcyhmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqY29zdmFsKTsKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX3ByaXZhdGUgZmxvYXQgKmNvc3ZhbCk7CmZsb2F0MiBfX292bGQgc2luY29zKGZsb2F0MiB4LCBfX3ByaXZhdGUgZmxvYXQyICpjb3N2YWwpOwpmbG9hdDMgX19vdmxkIHNpbmNvcyhmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBmbG9hdDQgKmNvc3ZhbCk7CmZsb2F0OCBfX292bGQgc2luY29zKGZsb2F0OCB4LCBfX3ByaXZhdGUgZmxvYXQ4ICpjb3N2YWwpOwpmbG9hdDE2IF9fb3ZsZCBzaW5jb3MoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqY29zdmFsKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX2dsb2JhbCBkb3VibGUgKmNvc3ZhbCk7CmRvdWJsZTIgX19vdmxkIHNpbmNvcyhkb3VibGUyIHgsIF9fZ2xvYmFsIGRvdWJsZTIgKmNvc3ZhbCk7CmRvdWJsZTMgX19vdmxkIHNpbmNvcyhkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fZ2xvYmFsIGRvdWJsZTQgKmNvc3ZhbCk7CmRvdWJsZTggX19vdmxkIHNpbmNvcyhkb3VibGU4IHgsIF9fZ2xvYmFsIGRvdWJsZTggKmNvc3ZhbCk7CmRvdWJsZTE2IF9fb3ZsZCBzaW5jb3MoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmNvc3ZhbCk7CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX2xvY2FsIGRvdWJsZSAqY29zdmFsKTsKZG91YmxlMiBfX292bGQgc2luY29zKGRvdWJsZTIgeCwgX19sb2NhbCBkb3VibGUyICpjb3N2YWwpOwpkb3VibGUzIF9fb3ZsZCBzaW5jb3MoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fbG9jYWwgZG91YmxlNCAqY29zdmFsKTsKZG91YmxlOCBfX292bGQgc2luY29zKGRvdWJsZTggeCwgX19sb2NhbCBkb3VibGU4ICpjb3N2YWwpOwpkb3VibGUxNiBfX292bGQgc2luY29zKGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmNvc3ZhbCk7CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX3ByaXZhdGUgZG91YmxlICpjb3N2YWwpOwpkb3VibGUyIF9fb3ZsZCBzaW5jb3MoZG91YmxlMiB4LCBfX3ByaXZhdGUgZG91YmxlMiAqY29zdmFsKTsKZG91YmxlMyBfX292bGQgc2luY29zKGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fcHJpdmF0ZSBkb3VibGU0ICpjb3N2YWwpOwpkb3VibGU4IF9fb3ZsZCBzaW5jb3MoZG91YmxlOCB4LCBfX3ByaXZhdGUgZG91YmxlOCAqY29zdmFsKTsKZG91YmxlMTYgX19vdmxkIHNpbmNvcyhkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmNvc3ZhbCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX2dsb2JhbCBoYWxmICpjb3N2YWwpOwpoYWxmMiBfX292bGQgc2luY29zKGhhbGYyIHgsIF9fZ2xvYmFsIGhhbGYyICpjb3N2YWwpOwpoYWxmMyBfX292bGQgc2luY29zKGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fZ2xvYmFsIGhhbGY0ICpjb3N2YWwpOwpoYWxmOCBfX292bGQgc2luY29zKGhhbGY4IHgsIF9fZ2xvYmFsIGhhbGY4ICpjb3N2YWwpOwpoYWxmMTYgX19vdmxkIHNpbmNvcyhoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICpjb3N2YWwpOwpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX2xvY2FsIGhhbGYgKmNvc3ZhbCk7CmhhbGYyIF9fb3ZsZCBzaW5jb3MoaGFsZjIgeCwgX19sb2NhbCBoYWxmMiAqY29zdmFsKTsKaGFsZjMgX19vdmxkIHNpbmNvcyhoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fbG9jYWwgaGFsZjQgKmNvc3ZhbCk7CmhhbGY4IF9fb3ZsZCBzaW5jb3MoaGFsZjggeCwgX19sb2NhbCBoYWxmOCAqY29zdmFsKTsKaGFsZjE2IF9fb3ZsZCBzaW5jb3MoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICpjb3N2YWwpOwpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX3ByaXZhdGUgaGFsZiAqY29zdmFsKTsKaGFsZjIgX19vdmxkIHNpbmNvcyhoYWxmMiB4LCBfX3ByaXZhdGUgaGFsZjIgKmNvc3ZhbCk7CmhhbGYzIF9fb3ZsZCBzaW5jb3MoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fcHJpdmF0ZSBoYWxmNCAqY29zdmFsKTsKaGFsZjggX19vdmxkIHNpbmNvcyhoYWxmOCB4LCBfX3ByaXZhdGUgaGFsZjggKmNvc3ZhbCk7CmhhbGYxNiBfX292bGQgc2luY29zKGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICpjb3N2YWwpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIENvbXB1dGUgaHlwZXJib2xpYyBzaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBzaW5oKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzaW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNpbmgoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzaW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2luaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2luaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2luaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW5oKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBzaW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaW5oKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW5oKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2luaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc2luIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBzaW5waShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzaW5waShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNpbnBpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzaW5waShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2lucGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2lucGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzaW5waShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaW5waShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc3F1YXJlIHJvb3QuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHNxcnQoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHNxcnQoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc3FydChmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNxcnQoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzcXJ0KGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzcXJ0KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBzcXJ0KGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHNxcnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHNxcnQoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHNxcnQoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHNxcnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzcXJ0KGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW4oZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiB0YW4oZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdGFuKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiB0YW4oZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRhbihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRhbihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFuKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHRhbihoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdGFuKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW4oaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHRhbihoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRhbihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgaHlwZXJib2xpYyB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW5oKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiB0YW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbmgoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiB0YW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFuaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gdGFuaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFuaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiB0YW5oKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiB0YW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW5oKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiB0YW5oKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gdGFuaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgdGFuIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW5waShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiB0YW5waShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbnBpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiB0YW5waShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFucGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFucGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiB0YW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiB0YW5waShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW5waShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiB0YW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgdGhlIGdhbW1hIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRnYW1tYShmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRnYW1tYShmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRnYW1tYShkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRnYW1tYShkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0Z2FtbWEoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byB6ZXJvCiAqIHJvdW5kaW5nIG1vZGUuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHRydW5jKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRydW5jKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiB0cnVuYyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHRydW5jKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRydW5jKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBjb3NpbmUuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTJeMTYgLi4uICsyXjE2LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX2NvcyhmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX2NvcyhmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfY29zKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggLyB5LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX2RpdmlkZShmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfZGl2aWRlKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKCi8qKgogKiBDb21wdXRlIHRoZSBiYXNlLSBlIGV4cG9uZW50aWFsIG9mIHguCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfZXhwKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfZXhwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgdGhlIGJhc2UtIDIgZXhwb25lbnRpYWwgb2YgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAyKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAyKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMTAgZXhwb25lbnRpYWwgb2YgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfZXhwMTAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2V4cDEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2V4cDEwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBuYXR1cmFsIGxvZ2FyaXRobS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2coZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2coZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2xvZyhmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMiBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfbG9nMihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfbG9nMihmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDEwIGxvZ2FyaXRobS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfbG9nMTAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2xvZzEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2xvZzEwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB4IHRvIHRoZSBwb3dlciB5LCB3aGVyZSB4IGlzID49IDAuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfcG93cihmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9wb3dyKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfcG93cihmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3Bvd3IoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9wb3dyKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3Bvd3IoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwoKLyoqCiAqIENvbXB1dGUgcmVjaXByb2NhbC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfcmVjaXAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3JlY2lwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3JlY2lwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBpbnZlcnNlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9yc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfcnNxcnQoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfcnNxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNpbmUuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTJeMTYgLi4uICsyXjE2LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3NpbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX3NpbihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfc2luKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3NxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3NxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHRhbmdlbnQuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTIxNiAuLi4gKzIxNi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl90YW4oZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl90YW4oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3RhbihmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBjb3NpbmUgb3ZlciBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHJhbmdlLgogKiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2NvcyhmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9jb3MoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9jb3MoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggLyB5IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4KICogVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfZGl2aWRlKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9kaXZpZGUoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gZSBleHBvbmVudGlhbCBvZiB4IG92ZXIgYW4KICogaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMKICogaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMiBleHBvbmVudGlhbCBvZiB4IG92ZXIgYW4KICogaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMKICogaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDIoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDIoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwMihmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMTAgZXhwb25lbnRpYWwgb2YgeCBvdmVyIGFuCiAqIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzCiAqIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAxMChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgbmF0dXJhbCBsb2dhcml0aG0gb3ZlciBhbiBpbXBsZW1lbnRhdGlvbmRlZmluZWQKICogcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzIGltcGxlbWVudGF0aW9uCiAqIGRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZyhmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZyhmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDIgbG9nYXJpdGhtIG92ZXIgYW4gaW1wbGVtZW50YXRpb25kZWZpbmVkCiAqIHJhbmdlLiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbmRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cyKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cyKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZzIoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDEwIGxvZ2FyaXRobSBvdmVyIGFuIGltcGxlbWVudGF0aW9uZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb25kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMTAoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMTAoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHggaXMgPj0gMC4gVGhlIHJhbmdlIG9mCiAqIHggYW5kIHkgYXJlIGltcGxlbWVudGF0aW9uLWRlZmluZWQuIFRoZSBtYXhpbXVtIGVycm9yCiAqIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9wb3dyKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3Bvd3IoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwoKLyoqCiAqIENvbXB1dGUgcmVjaXByb2NhbCBvdmVyIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQKICogcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9yZWNpcChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9yZWNpcChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgaW52ZXJzZSBzcXVhcmUgcm9vdCBvdmVyIGFuIGltcGxlbWVudGF0aW9uZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb25kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfcnNxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfcnNxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNpbmUgb3ZlciBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHJhbmdlLgogKiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NpbihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9zaW4oZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9zaW4oZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNxdWFyZSByb290IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NxcnQoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0YW5nZW50IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4KICogVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV90YW4oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfdGFuKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfdGFuKGZsb2F0MTYgeCk7CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4zLCB2MS4yIHM2LjEyLjMsIHYyLjAgczYuMTMuMyAtIEludGVnZXIgRnVuY3Rpb25zCgovKioKICogUmV0dXJucyB8IHggfC4KICovCnVjaGFyIF9fb3ZsZCBfX2NuZm4gYWJzKGNoYXIgeCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyIHgpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBhYnMoY2hhcjIgeCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGFicyh1Y2hhcjIgeCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFicyhjaGFyMyB4KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyMyB4KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYWJzKGNoYXI0IHgpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhYnModWNoYXI0IHgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBhYnMoY2hhcjggeCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGFicyh1Y2hhcjggeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhYnMoY2hhcjE2IHgpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyMTYgeCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGFicyhzaG9ydCB4KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYWJzKHVzaG9ydCB4KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFicyhzaG9ydDIgeCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBhYnModXNob3J0MiB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGFicyhzaG9ydDMgeCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhYnModXNob3J0MyB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGFicyhzaG9ydDQgeCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBhYnModXNob3J0NCB4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFicyhzaG9ydDggeCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBhYnModXNob3J0OCB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBhYnMoc2hvcnQxNiB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBhYnModXNob3J0MTYgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBhYnMoaW50IHgpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzKGludDIgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQyIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGFicyhpbnQzIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGFicyh1aW50MyB4KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnMoaW50NCB4KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnModWludDQgeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzKGludDggeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQ4IHgpOwp1aW50MTYgX19vdmxkIF9fY25mbiBhYnMoaW50MTYgeCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFicyh1aW50MTYgeCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYWJzKGxvbmcgeCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nIHgpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBhYnMobG9uZzIgeCk7CnVsb25nMiBfX292bGQgX19jbmZuIGFicyh1bG9uZzIgeCk7CnVsb25nMyBfX292bGQgX19jbmZuIGFicyhsb25nMyB4KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nMyB4KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYWJzKGxvbmc0IHgpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhYnModWxvbmc0IHgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBhYnMobG9uZzggeCk7CnVsb25nOCBfX292bGQgX19jbmZuIGFicyh1bG9uZzggeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhYnMobG9uZzE2IHgpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nMTYgeCk7CgovKioKICogUmV0dXJucyB8IHggLSB5IHwgd2l0aG91dCBtb2R1bG8gb3ZlcmZsb3cuCiAqLwp1Y2hhciBfX292bGQgX19jbmZuIGFic19kaWZmKGNoYXIgeCwgY2hhciB5KTsKdWNoYXIgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1Y2hhciB4LCB1Y2hhciB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIGFic19kaWZmKHVjaGFyMiB4LCB1Y2hhcjIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFic19kaWZmKGNoYXIzIHgsIGNoYXIzIHkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1Y2hhcjMgeCwgdWNoYXIzIHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihjaGFyNCB4LCBjaGFyNCB5KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWNoYXI0IHgsIHVjaGFyNCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIGFic19kaWZmKHVjaGFyOCB4LCB1Y2hhcjggeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZihjaGFyMTYgeCwgY2hhcjE2IHkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWNoYXIxNiB4LCB1Y2hhcjE2IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihzaG9ydCB4LCBzaG9ydCB5KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodXNob3J0IHgsIHVzaG9ydCB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFic19kaWZmKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1c2hvcnQyIHgsIHVzaG9ydDIgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhYnNfZGlmZihzaG9ydDMgeCwgc2hvcnQzIHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodXNob3J0MyB4LCB1c2hvcnQzIHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoc2hvcnQ0IHgsIHNob3J0NCB5KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGFic19kaWZmKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFic19kaWZmKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBhYnNfZGlmZih1c2hvcnQ4IHgsIHVzaG9ydDggeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoc2hvcnQxNiB4LCBzaG9ydDE2IHkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGFic19kaWZmKHVzaG9ydDE2IHgsIHVzaG9ydDE2IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoaW50IHgsIGludCB5KTsKdWludCBfX292bGQgX19jbmZuIGFic19kaWZmKHVpbnQgeCwgdWludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBhYnNfZGlmZihpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWludDIgeCwgdWludDIgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoaW50MyB4LCBpbnQzIHkpOwp1aW50MyBfX292bGQgX19jbmZuIGFic19kaWZmKHVpbnQzIHgsIHVpbnQzIHkpOwp1aW50NCBfX292bGQgX19jbmZuIGFic19kaWZmKGludDQgeCwgaW50NCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1aW50NCB4LCB1aW50NCB5KTsKdWludDggX19vdmxkIF9fY25mbiBhYnNfZGlmZihpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWludDggeCwgdWludDggeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFic19kaWZmKGludDE2IHgsIGludDE2IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1aW50MTYgeCwgdWludDE2IHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGFic19kaWZmKGxvbmcgeCwgbG9uZyB5KTsKdWxvbmcgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1bG9uZyB4LCB1bG9uZyB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIGFic19kaWZmKHVsb25nMiB4LCB1bG9uZzIgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGFic19kaWZmKGxvbmczIHgsIGxvbmczIHkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1bG9uZzMgeCwgdWxvbmczIHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihsb25nNCB4LCBsb25nNCB5KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWxvbmc0IHgsIHVsb25nNCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIGFic19kaWZmKHVsb25nOCB4LCB1bG9uZzggeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZihsb25nMTYgeCwgbG9uZzE2IHkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWxvbmcxNiB4LCB1bG9uZzE2IHkpOwoKLyoqCiAqIFJldHVybnMgeCArIHkgYW5kIHNhdHVyYXRlcyB0aGUgcmVzdWx0LgogKi8KY2hhciBfX292bGQgX19jbmZuIGFkZF9zYXQoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIGFkZF9zYXQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChjaGFyMiB4LCBjaGFyMiB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIGFkZF9zYXQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFkZF9zYXQodWNoYXIzIHgsIHVjaGFyMyB5KTsKY2hhcjQgX19vdmxkIF9fY25mbiBhZGRfc2F0KGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChjaGFyOCB4LCBjaGFyOCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVjaGFyMTYgeCwgdWNoYXIxNiB5KTsKc2hvcnQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGFkZF9zYXQoc2hvcnQyIHgsIHNob3J0MiB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFkZF9zYXQodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBhZGRfc2F0KHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVzaG9ydDMgeCwgdXNob3J0MyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGFkZF9zYXQoc2hvcnQ4IHgsIHNob3J0OCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFkZF9zYXQodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1c2hvcnQxNiB4LCB1c2hvcnQxNiB5KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBhZGRfc2F0KGludDIgeCwgaW50MiB5KTsKdWludDIgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1aW50MyB4LCB1aW50MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGFkZF9zYXQoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIGFkZF9zYXQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBhZGRfc2F0KGludDggeCwgaW50OCB5KTsKdWludDggX19vdmxkIF9fY25mbiBhZGRfc2F0KHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGFkZF9zYXQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFkZF9zYXQodWludDE2IHgsIHVpbnQxNiB5KTsKbG9uZyBfX292bGQgX19jbmZuIGFkZF9zYXQobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGFkZF9zYXQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChsb25nMiB4LCBsb25nMiB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGFkZF9zYXQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGFkZF9zYXQodWxvbmczIHgsIHVsb25nMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBhZGRfc2F0KGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChsb25nOCB4LCBsb25nOCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVsb25nMTYgeCwgdWxvbmcxNiB5KTsKCi8qKgogKiBSZXR1cm5zICh4ICsgeSkgPj4gMS4gVGhlIGludGVybWVkaWF0ZSBzdW0gZG9lcwogKiBub3QgbW9kdWxvIG92ZXJmbG93LgogKi8KY2hhciBfX292bGQgX19jbmZuIGhhZGQoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIGhhZGQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gaGFkZChjaGFyMiB4LCBjaGFyMiB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gaGFkZCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIGhhZGQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGhhZGQodWNoYXIzIHgsIHVjaGFyMyB5KTsKY2hhcjQgX19vdmxkIF9fY25mbiBoYWRkKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBoYWRkKHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gaGFkZChjaGFyOCB4LCBjaGFyOCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gaGFkZCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBoYWRkKGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBoYWRkKHVjaGFyMTYgeCwgdWNoYXIxNiB5KTsKc2hvcnQgX19vdmxkIF9fY25mbiBoYWRkKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBoYWRkKHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGhhZGQoc2hvcnQyIHgsIHNob3J0MiB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGhhZGQodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBoYWRkKHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBoYWRkKHVzaG9ydDMgeCwgdXNob3J0MyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaGFkZChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaGFkZCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGhhZGQoc2hvcnQ4IHgsIHNob3J0OCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGhhZGQodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaGFkZChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaGFkZCh1c2hvcnQxNiB4LCB1c2hvcnQxNiB5KTsKaW50IF9fb3ZsZCBfX2NuZm4gaGFkZChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gaGFkZCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBoYWRkKGludDIgeCwgaW50MiB5KTsKdWludDIgX19vdmxkIF9fY25mbiBoYWRkKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaGFkZChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gaGFkZCh1aW50MyB4LCB1aW50MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGhhZGQoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIGhhZGQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBoYWRkKGludDggeCwgaW50OCB5KTsKdWludDggX19vdmxkIF9fY25mbiBoYWRkKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGhhZGQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGhhZGQodWludDE2IHgsIHVpbnQxNiB5KTsKbG9uZyBfX292bGQgX19jbmZuIGhhZGQobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGhhZGQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaGFkZChsb25nMiB4LCBsb25nMiB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gaGFkZCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGhhZGQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGhhZGQodWxvbmczIHgsIHVsb25nMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBoYWRkKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBoYWRkKHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaGFkZChsb25nOCB4LCBsb25nOCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gaGFkZCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBoYWRkKGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBoYWRkKHVsb25nMTYgeCwgdWxvbmcxNiB5KTsKCi8qKgogKiBSZXR1cm5zICh4ICsgeSArIDEpID4+IDEuIFRoZSBpbnRlcm1lZGlhdGUgc3VtCiAqIGRvZXMgbm90IG1vZHVsbyBvdmVyZmxvdy4KICovCmNoYXIgX19vdmxkIF9fY25mbiByaGFkZChjaGFyIHgsIGNoYXIgeSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyMiB4LCB1Y2hhcjIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjQgeCwgY2hhcjQgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyOCB4LCB1Y2hhcjggeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIHJoYWRkKGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiByaGFkZCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gcmhhZGQoc2hvcnQgeCwgc2hvcnQgeSk7CnVzaG9ydCBfX292bGQgX19jbmZuIHJoYWRkKHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQyIHgsIHVzaG9ydDIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0NCB4LCBzaG9ydDQgeSk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQ4IHgsIHVzaG9ydDggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiByaGFkZChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gcmhhZGQodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIHJoYWRkKGludCB4LCBpbnQgeSk7CnVpbnQgX19vdmxkIF9fY25mbiByaGFkZCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiByaGFkZChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDIgeCwgdWludDIgeSk7CmludDMgX19vdmxkIF9fY25mbiByaGFkZChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiByaGFkZChpbnQ0IHgsIGludDQgeSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiByaGFkZChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDggeCwgdWludDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gcmhhZGQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIHJoYWRkKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiByaGFkZChsb25nIHgsIGxvbmcgeSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nMiB4LCB1bG9uZzIgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzQgeCwgbG9uZzQgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nOCB4LCB1bG9uZzggeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIHJoYWRkKGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiByaGFkZCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogUmV0dXJucyBtaW4obWF4KHgsIG1pbnZhbCksIG1heHZhbCkuCiAqIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBpZiBtaW52YWwgPiBtYXh2YWwuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhciB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhciBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyIHgsIHVjaGFyIG1pbnZhbCwgdWNoYXIgbWF4dmFsKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyMiB4LCBjaGFyMiBtaW52YWwsIGNoYXIyIG1heHZhbCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMiB4LCB1Y2hhcjIgbWludmFsLCB1Y2hhcjIgbWF4dmFsKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyMyB4LCBjaGFyMyBtaW52YWwsIGNoYXIzIG1heHZhbCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMyB4LCB1Y2hhcjMgbWludmFsLCB1Y2hhcjMgbWF4dmFsKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyNCB4LCBjaGFyNCBtaW52YWwsIGNoYXI0IG1heHZhbCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyNCB4LCB1Y2hhcjQgbWludmFsLCB1Y2hhcjQgbWF4dmFsKTsKY2hhcjggX19vdmxkIF9fY25mbiBjbGFtcChjaGFyOCB4LCBjaGFyOCBtaW52YWwsIGNoYXI4IG1heHZhbCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyOCB4LCB1Y2hhcjggbWludmFsLCB1Y2hhcjggbWF4dmFsKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhcjE2IHgsIGNoYXIxNiBtaW52YWwsIGNoYXIxNiBtYXh2YWwpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIxNiB4LCB1Y2hhcjE2IG1pbnZhbCwgdWNoYXIxNiBtYXh2YWwpOwpzaG9ydCBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0IHgsIHNob3J0IG1pbnZhbCwgc2hvcnQgbWF4dmFsKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0IHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDIgeCwgc2hvcnQyIG1pbnZhbCwgc2hvcnQyIG1heHZhbCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQyIHgsIHVzaG9ydDIgbWludmFsLCB1c2hvcnQyIG1heHZhbCk7CnNob3J0MyBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0MyB4LCBzaG9ydDMgbWludmFsLCBzaG9ydDMgbWF4dmFsKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNsYW1wKHVzaG9ydDMgeCwgdXNob3J0MyBtaW52YWwsIHVzaG9ydDMgbWF4dmFsKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQ0IHgsIHNob3J0NCBtaW52YWwsIHNob3J0NCBtYXh2YWwpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0NCB4LCB1c2hvcnQ0IG1pbnZhbCwgdXNob3J0NCBtYXh2YWwpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDggeCwgc2hvcnQ4IG1pbnZhbCwgc2hvcnQ4IG1heHZhbCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQ4IHgsIHVzaG9ydDggbWludmFsLCB1c2hvcnQ4IG1heHZhbCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDE2IHgsIHNob3J0MTYgbWludmFsLCBzaG9ydDE2IG1heHZhbCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MTYgeCwgdXNob3J0MTYgbWludmFsLCB1c2hvcnQxNiBtYXh2YWwpOwppbnQgX19vdmxkIF9fY25mbiBjbGFtcChpbnQgeCwgaW50IG1pbnZhbCwgaW50IG1heHZhbCk7CnVpbnQgX19vdmxkIF9fY25mbiBjbGFtcCh1aW50IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDIgX19vdmxkIF9fY25mbiBjbGFtcChpbnQyIHgsIGludDIgbWludmFsLCBpbnQyIG1heHZhbCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDIgeCwgdWludDIgbWludmFsLCB1aW50MiBtYXh2YWwpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaW50MyB4LCBpbnQzIG1pbnZhbCwgaW50MyBtYXh2YWwpOwp1aW50MyBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQzIHgsIHVpbnQzIG1pbnZhbCwgdWludDMgbWF4dmFsKTsKaW50NCBfX292bGQgX19jbmZuIGNsYW1wKGludDQgeCwgaW50NCBtaW52YWwsIGludDQgbWF4dmFsKTsKdWludDQgX19vdmxkIF9fY25mbiBjbGFtcCh1aW50NCB4LCB1aW50NCBtaW52YWwsIHVpbnQ0IG1heHZhbCk7CmludDggX19vdmxkIF9fY25mbiBjbGFtcChpbnQ4IHgsIGludDggbWludmFsLCBpbnQ4IG1heHZhbCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDggeCwgdWludDggbWludmFsLCB1aW50OCBtYXh2YWwpOwppbnQxNiBfX292bGQgX19jbmZuIGNsYW1wKGludDE2IHgsIGludDE2IG1pbnZhbCwgaW50MTYgbWF4dmFsKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDE2IHgsIHVpbnQxNiBtaW52YWwsIHVpbnQxNiBtYXh2YWwpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZyB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZyBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nIHgsIHVsb25nIG1pbnZhbCwgdWxvbmcgbWF4dmFsKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjbGFtcChsb25nMiB4LCBsb25nMiBtaW52YWwsIGxvbmcyIG1heHZhbCk7CnVsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMiB4LCB1bG9uZzIgbWludmFsLCB1bG9uZzIgbWF4dmFsKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjbGFtcChsb25nMyB4LCBsb25nMyBtaW52YWwsIGxvbmczIG1heHZhbCk7CnVsb25nMyBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMyB4LCB1bG9uZzMgbWludmFsLCB1bG9uZzMgbWF4dmFsKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcChsb25nNCB4LCBsb25nNCBtaW52YWwsIGxvbmc0IG1heHZhbCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nNCB4LCB1bG9uZzQgbWludmFsLCB1bG9uZzQgbWF4dmFsKTsKbG9uZzggX19vdmxkIF9fY25mbiBjbGFtcChsb25nOCB4LCBsb25nOCBtaW52YWwsIGxvbmc4IG1heHZhbCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nOCB4LCB1bG9uZzggbWludmFsLCB1bG9uZzggbWF4dmFsKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZzE2IHgsIGxvbmcxNiBtaW52YWwsIGxvbmcxNiBtYXh2YWwpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmcxNiB4LCB1bG9uZzE2IG1pbnZhbCwgdWxvbmcxNiBtYXh2YWwpOwpjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKGNoYXIyIHgsIGNoYXIgbWludmFsLCBjaGFyIG1heHZhbCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMiB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhcjMgeCwgY2hhciBtaW52YWwsIGNoYXIgbWF4dmFsKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIzIHgsIHVjaGFyIG1pbnZhbCwgdWNoYXIgbWF4dmFsKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyNCB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcCh1Y2hhcjQgeCwgdWNoYXIgbWludmFsLCB1Y2hhciBtYXh2YWwpOwpjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKGNoYXI4IHgsIGNoYXIgbWludmFsLCBjaGFyIG1heHZhbCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyOCB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGNsYW1wKGNoYXIxNiB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIxNiB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CnNob3J0MiBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0MiB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQyIHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDMgeCwgc2hvcnQgbWludmFsLCBzaG9ydCBtYXh2YWwpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MyB4LCB1c2hvcnQgbWludmFsLCB1c2hvcnQgbWF4dmFsKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQ0IHgsIHNob3J0IG1pbnZhbCwgc2hvcnQgbWF4dmFsKTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNsYW1wKHVzaG9ydDQgeCwgdXNob3J0IG1pbnZhbCwgdXNob3J0IG1heHZhbCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0OCB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQ4IHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQxNiB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MTYgeCwgdXNob3J0IG1pbnZhbCwgdXNob3J0IG1heHZhbCk7CmludDIgX19vdmxkIF9fY25mbiBjbGFtcChpbnQyIHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50MiBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQyIHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDMgX19vdmxkIF9fY25mbiBjbGFtcChpbnQzIHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50MyBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQzIHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDQgX19vdmxkIF9fY25mbiBjbGFtcChpbnQ0IHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50NCBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQ0IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDggX19vdmxkIF9fY25mbiBjbGFtcChpbnQ4IHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50OCBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQ4IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaW50MTYgeCwgaW50IG1pbnZhbCwgaW50IG1heHZhbCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQxNiB4LCB1aW50IG1pbnZhbCwgdWludCBtYXh2YWwpOwpsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKGxvbmcyIHgsIGxvbmcgbWludmFsLCBsb25nIG1heHZhbCk7CnVsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMiB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZzMgeCwgbG9uZyBtaW52YWwsIGxvbmcgbWF4dmFsKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmczIHgsIHVsb25nIG1pbnZhbCwgdWxvbmcgbWF4dmFsKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcChsb25nNCB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcCh1bG9uZzQgeCwgdWxvbmcgbWludmFsLCB1bG9uZyBtYXh2YWwpOwpsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKGxvbmc4IHgsIGxvbmcgbWludmFsLCBsb25nIG1heHZhbCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nOCB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGNsYW1wKGxvbmcxNiB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmcxNiB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CgovKioKICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgMC1iaXRzIGluIHgsIHN0YXJ0aW5nCiAqIGF0IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBwb3NpdGlvbi4KICovCmNoYXIgX19vdmxkIF9fY25mbiBjbHooY2hhciB4KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjbHoodWNoYXIgeCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY2x6KGNoYXIyIHgpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjbHoodWNoYXIyIHgpOwpjaGFyMyBfX292bGQgX19jbmZuIGNseihjaGFyMyB4KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY2x6KHVjaGFyMyB4KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbHooY2hhcjQgeCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNseih1Y2hhcjQgeCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY2x6KGNoYXI4IHgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjbHoodWNoYXI4IHgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjbHooY2hhcjE2IHgpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2x6KHVjaGFyMTYgeCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY2x6KHNob3J0IHgpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjbHoodXNob3J0IHgpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjbHooc2hvcnQyIHgpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY2x6KHVzaG9ydDIgeCk7CnNob3J0MyBfX292bGQgX19jbmZuIGNseihzaG9ydDMgeCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjbHoodXNob3J0MyB4KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2x6KHNob3J0NCB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNseih1c2hvcnQ0IHgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjbHooc2hvcnQ4IHgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY2x6KHVzaG9ydDggeCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjbHooc2hvcnQxNiB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjbHoodXNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGNseihpbnQgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBjbHoodWludCB4KTsKaW50MiBfX292bGQgX19jbmZuIGNseihpbnQyIHgpOwp1aW50MiBfX292bGQgX19jbmZuIGNseih1aW50MiB4KTsKaW50MyBfX292bGQgX19jbmZuIGNseihpbnQzIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGNseih1aW50MyB4KTsKaW50NCBfX292bGQgX19jbmZuIGNseihpbnQ0IHgpOwp1aW50NCBfX292bGQgX19jbmZuIGNseih1aW50NCB4KTsKaW50OCBfX292bGQgX19jbmZuIGNseihpbnQ4IHgpOwp1aW50OCBfX292bGQgX19jbmZuIGNseih1aW50OCB4KTsKaW50MTYgX19vdmxkIF9fY25mbiBjbHooaW50MTYgeCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNseih1aW50MTYgeCk7CmxvbmcgX19vdmxkIF9fY25mbiBjbHoobG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjbHoodWxvbmcgeCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY2x6KGxvbmcyIHgpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjbHoodWxvbmcyIHgpOwpsb25nMyBfX292bGQgX19jbmZuIGNseihsb25nMyB4KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY2x6KHVsb25nMyB4KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbHoobG9uZzQgeCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNseih1bG9uZzQgeCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY2x6KGxvbmc4IHgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjbHoodWxvbmc4IHgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjbHoobG9uZzE2IHgpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2x6KHVsb25nMTYgeCk7CgovKioKICogUmV0dXJucyB0aGUgY291bnQgb2YgdHJhaWxpbmcgMC1iaXRzIGluIHguIElmIHggaXMgMCwKICogcmV0dXJucyB0aGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSB0eXBlIG9mIHggb3IKICogY29tcG9uZW50IHR5cGUgb2YgeCwgaWYgeCBpcyBhIHZlY3Rvci4KICovCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKY2hhciBfX292bGQgX19jbmZuIGN0eihjaGFyIHgpOwp1Y2hhciBfX292bGQgX19jbmZuIGN0eih1Y2hhciB4KTsKY2hhcjIgX19vdmxkIF9fY25mbiBjdHooY2hhcjIgeCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGN0eih1Y2hhcjIgeCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY3R6KGNoYXIzIHgpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjdHoodWNoYXIzIHgpOwpjaGFyNCBfX292bGQgX19jbmZuIGN0eihjaGFyNCB4KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY3R6KHVjaGFyNCB4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjdHooY2hhcjggeCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGN0eih1Y2hhcjggeCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGN0eihjaGFyMTYgeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjdHoodWNoYXIxNiB4KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjdHooc2hvcnQgeCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGN0eih1c2hvcnQgeCk7CnNob3J0MiBfX292bGQgX19jbmZuIGN0eihzaG9ydDIgeCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjdHoodXNob3J0MiB4KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY3R6KHNob3J0MyB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGN0eih1c2hvcnQzIHgpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjdHooc2hvcnQ0IHgpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KHVzaG9ydDQgeCk7CnNob3J0OCBfX292bGQgX19jbmZuIGN0eihzaG9ydDggeCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjdHoodXNob3J0OCB4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGN0eihzaG9ydDE2IHgpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGN0eih1c2hvcnQxNiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gY3R6KGludCB4KTsKdWludCBfX292bGQgX19jbmZuIGN0eih1aW50IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY3R6KGludDIgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY3R6KGludDMgeCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQzIHgpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KGludDQgeCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY3R6KGludDggeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQ4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGN0eihpbnQxNiB4KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQxNiB4KTsKbG9uZyBfX292bGQgX19jbmZuIGN0eihsb25nIHgpOwp1bG9uZyBfX292bGQgX19jbmZuIGN0eih1bG9uZyB4KTsKbG9uZzIgX19vdmxkIF9fY25mbiBjdHoobG9uZzIgeCk7CnVsb25nMiBfX292bGQgX19jbmZuIGN0eih1bG9uZzIgeCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY3R6KGxvbmczIHgpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjdHoodWxvbmczIHgpOwpsb25nNCBfX292bGQgX19jbmZuIGN0eihsb25nNCB4KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY3R6KHVsb25nNCB4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjdHoobG9uZzggeCk7CnVsb25nOCBfX292bGQgX19jbmZuIGN0eih1bG9uZzggeCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGN0eihsb25nMTYgeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjdHoodWxvbmcxNiB4KTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJucyBtdWxfaGkoYSwgYikgKyBjLgogKi8KY2hhciBfX292bGQgX19jbmZuIG1hZF9oaShjaGFyIGEsIGNoYXIgYiwgY2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIgYSwgdWNoYXIgYiwgdWNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXIyIGEsIGNoYXIyIGIsIGNoYXIyIGMpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIyIGEsIHVjaGFyMiBiLCB1Y2hhcjIgYyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXIzIGEsIGNoYXIzIGIsIGNoYXIzIGMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIzIGEsIHVjaGFyMyBiLCB1Y2hhcjMgYyk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXI0IGEsIGNoYXI0IGIsIGNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXI0IGEsIHVjaGFyNCBiLCB1Y2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXI4IGEsIGNoYXI4IGIsIGNoYXI4IGMpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXI4IGEsIHVjaGFyOCBiLCB1Y2hhcjggYyk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9oaShjaGFyMTYgYSwgY2hhcjE2IGIsIGNoYXIxNiBjKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1Y2hhcjE2IGEsIHVjaGFyMTYgYiwgdWNoYXIxNiBjKTsKc2hvcnQgX19vdmxkIF9fY25mbiBtYWRfaGkoc2hvcnQgYSwgc2hvcnQgYiwgc2hvcnQgYyk7CnVzaG9ydCBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQgYSwgdXNob3J0IGIsIHVzaG9ydCBjKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0MiBhLCBzaG9ydDIgYiwgc2hvcnQyIGMpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVzaG9ydDIgYSwgdXNob3J0MiBiLCB1c2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfaGkoc2hvcnQzIGEsIHNob3J0MyBiLCBzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfaGkodXNob3J0MyBhLCB1c2hvcnQzIGIsIHVzaG9ydDMgYyk7CnNob3J0NCBfX292bGQgX19jbmZuIG1hZF9oaShzaG9ydDQgYSwgc2hvcnQ0IGIsIHNob3J0NCBjKTsKdXNob3J0NCBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQ0IGEsIHVzaG9ydDQgYiwgdXNob3J0NCBjKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0OCBhLCBzaG9ydDggYiwgc2hvcnQ4IGMpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVzaG9ydDggYSwgdXNob3J0OCBiLCB1c2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0MTYgYSwgc2hvcnQxNiBiLCBzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCB1c2hvcnQxNiBjKTsKaW50IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwppbnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludDIgYSwgaW50MiBiLCBpbnQyIGMpOwp1aW50MiBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIG1hZF9oaShpbnQzIGEsIGludDMgYiwgaW50MyBjKTsKdWludDMgX19vdmxkIF9fY25mbiBtYWRfaGkodWludDMgYSwgdWludDMgYiwgdWludDMgYyk7CmludDQgX19vdmxkIF9fY25mbiBtYWRfaGkoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludDggYSwgaW50OCBiLCBpbnQ4IGMpOwp1aW50OCBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBtYWRfaGkoaW50MTYgYSwgaW50MTYgYiwgaW50MTYgYyk7CnVpbnQxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKbG9uZyBfX292bGQgX19jbmZuIG1hZF9oaShsb25nIGEsIGxvbmcgYiwgbG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmcgYSwgdWxvbmcgYiwgdWxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmcyIGEsIGxvbmcyIGIsIGxvbmcyIGMpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmcyIGEsIHVsb25nMiBiLCB1bG9uZzIgYyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmczIGEsIGxvbmczIGIsIGxvbmczIGMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmczIGEsIHVsb25nMyBiLCB1bG9uZzMgYyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmc0IGEsIGxvbmc0IGIsIGxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmc0IGEsIHVsb25nNCBiLCB1bG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmc4IGEsIGxvbmc4IGIsIGxvbmc4IGMpOwp1bG9uZzggX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmc4IGEsIHVsb25nOCBiLCB1bG9uZzggYyk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9oaShsb25nMTYgYSwgbG9uZzE2IGIsIGxvbmcxNiBjKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1bG9uZzE2IGEsIHVsb25nMTYgYiwgdWxvbmcxNiBjKTsKCi8qKgogKiBSZXR1cm5zIGEgKiBiICsgYyBhbmQgc2F0dXJhdGVzIHRoZSByZXN1bHQuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChjaGFyIGEsIGNoYXIgYiwgY2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyIGEsIHVjaGFyIGIsIHVjaGFyIGMpOwpjaGFyMiBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjIgYSwgY2hhcjIgYiwgY2hhcjIgYyk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1hZF9zYXQodWNoYXIyIGEsIHVjaGFyMiBiLCB1Y2hhcjIgYyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChjaGFyMyBhLCBjaGFyMyBiLCBjaGFyMyBjKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGNoYXI0IGEsIGNoYXI0IGIsIGNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgdWNoYXI0IGMpOwpjaGFyOCBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjggYSwgY2hhcjggYiwgY2hhcjggYyk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1hZF9zYXQodWNoYXI4IGEsIHVjaGFyOCBiLCB1Y2hhcjggYyk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjE2IGEsIGNoYXIxNiBiLCBjaGFyMTYgYyk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwpzaG9ydCBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQgYSwgc2hvcnQgYiwgc2hvcnQgYyk7CnVzaG9ydCBfX292bGQgX19jbmZuIG1hZF9zYXQodXNob3J0IGEsIHVzaG9ydCBiLCB1c2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQyIGEsIHNob3J0MiBiLCBzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDIgYSwgdXNob3J0MiBiLCB1c2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfc2F0KHNob3J0MyBhLCBzaG9ydDMgYiwgc2hvcnQzIGMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1c2hvcnQzIGEsIHVzaG9ydDMgYiwgdXNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChzaG9ydDQgYSwgc2hvcnQ0IGIsIHNob3J0NCBjKTsKdXNob3J0NCBfX292bGQgX19jbmZuIG1hZF9zYXQodXNob3J0NCBhLCB1c2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQ4IGEsIHNob3J0OCBiLCBzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDggYSwgdXNob3J0OCBiLCB1c2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChzaG9ydDE2IGEsIHNob3J0MTYgYiwgc2hvcnQxNiBjKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDE2IGEsIHVzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwppbnQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50IGEsIHVpbnQgYiwgdWludCBjKTsKaW50MiBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50MyBhLCBpbnQzIGIsIGludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKaW50NCBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50NCBhLCB1aW50NCBiLCB1aW50NCBjKTsKaW50OCBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KGludDE2IGEsIGludDE2IGIsIGludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwpsb25nIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChsb25nIGEsIGxvbmcgYiwgbG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nIGEsIHVsb25nIGIsIHVsb25nIGMpOwpsb25nMiBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzIgYSwgbG9uZzIgYiwgbG9uZzIgYyk7CnVsb25nMiBfX292bGQgX19jbmZuIG1hZF9zYXQodWxvbmcyIGEsIHVsb25nMiBiLCB1bG9uZzIgYyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChsb25nMyBhLCBsb25nMyBiLCBsb25nMyBjKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGxvbmc0IGEsIGxvbmc0IGIsIGxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nNCBhLCB1bG9uZzQgYiwgdWxvbmc0IGMpOwpsb25nOCBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzggYSwgbG9uZzggYiwgbG9uZzggYyk7CnVsb25nOCBfX292bGQgX19jbmZuIG1hZF9zYXQodWxvbmc4IGEsIHVsb25nOCBiLCB1bG9uZzggYyk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzE2IGEsIGxvbmcxNiBiLCBsb25nMTYgYyk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwoKLyoqCiAqIFJldHVybnMgeSBpZiB4IDwgeSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgeC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtYXgoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG1heCh1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtYXgoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG1heChjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWF4KHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYXgodWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtYXgoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtYXgoY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtYXgodXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtYXgodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG1heCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG1heChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtYXgodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtYXgodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG1heChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1heChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbWF4KGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtYXgodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtYXgoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG1heCh1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1heChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG1heChpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtYXgobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG1heCh1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtYXgobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1heCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG1heChsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWF4KHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYXgodWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtYXgobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1heCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtYXgobG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1heCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXIyIHgsIGNoYXIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjIgeCwgdWNoYXIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXIzIHgsIGNoYXIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIG1heCh1Y2hhcjMgeCwgdWNoYXIgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI0IHgsIGNoYXIgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjQgeCwgdWNoYXIgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI4IHgsIGNoYXIgeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjggeCwgdWNoYXIgeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1heChjaGFyMTYgeCwgY2hhciB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjE2IHgsIHVjaGFyIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQyIHgsIHNob3J0IHkpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDIgeCwgdXNob3J0IHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQzIHgsIHNob3J0IHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDMgeCwgdXNob3J0IHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQ0IHgsIHNob3J0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDQgeCwgdXNob3J0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBtYXgoc2hvcnQ4IHgsIHNob3J0IHkpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDggeCwgdXNob3J0IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MTYgeCwgc2hvcnQgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDE2IHgsIHVzaG9ydCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1heChpbnQyIHgsIGludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBtYXgodWludDIgeCwgdWludCB5KTsKaW50MyBfX292bGQgX19jbmZuIG1heChpbnQzIHgsIGludCB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtYXgodWludDMgeCwgdWludCB5KTsKaW50NCBfX292bGQgX19jbmZuIG1heChpbnQ0IHgsIGludCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBtYXgodWludDQgeCwgdWludCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1heChpbnQ4IHgsIGludCB5KTsKdWludDggX19vdmxkIF9fY25mbiBtYXgodWludDggeCwgdWludCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBtYXgoaW50MTYgeCwgaW50IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtYXgodWludDE2IHgsIHVpbnQgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmcyIHgsIGxvbmcgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1heCh1bG9uZzIgeCwgdWxvbmcgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmczIHgsIGxvbmcgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIG1heCh1bG9uZzMgeCwgdWxvbmcgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc0IHgsIGxvbmcgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIG1heCh1bG9uZzQgeCwgdWxvbmcgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc4IHgsIGxvbmcgeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1heCh1bG9uZzggeCwgdWxvbmcgeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1heChsb25nMTYgeCwgbG9uZyB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1heCh1bG9uZzE2IHgsIHVsb25nIHkpOwoKLyoqCiAqIFJldHVybnMgeSBpZiB5IDwgeCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgeC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtaW4oY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG1pbih1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtaW4oY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG1pbihjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWluKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtaW4odWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtaW4oY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtaW4oY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtaW4odXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtaW4odXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG1pbih1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG1pbihzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtaW4odXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtaW4odXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG1pbihpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1pbihpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbWluKGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtaW4odWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtaW4oaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG1pbih1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1pbihpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG1pbihpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtaW4obG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG1pbih1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtaW4obG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1pbih1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG1pbihsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWluKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtaW4odWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtaW4obG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1pbih1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtaW4obG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1pbih1bG9uZzE2IHgsIHVsb25nMTYgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWluKGNoYXIyIHgsIGNoYXIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjIgeCwgdWNoYXIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWluKGNoYXIzIHgsIGNoYXIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIG1pbih1Y2hhcjMgeCwgdWNoYXIgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI0IHgsIGNoYXIgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjQgeCwgdWNoYXIgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI4IHgsIGNoYXIgeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjggeCwgdWNoYXIgeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1pbihjaGFyMTYgeCwgY2hhciB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjE2IHgsIHVjaGFyIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQyIHgsIHNob3J0IHkpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDIgeCwgdXNob3J0IHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQzIHgsIHNob3J0IHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDMgeCwgdXNob3J0IHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQ0IHgsIHNob3J0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDQgeCwgdXNob3J0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBtaW4oc2hvcnQ4IHgsIHNob3J0IHkpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDggeCwgdXNob3J0IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MTYgeCwgc2hvcnQgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDE2IHgsIHVzaG9ydCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1pbihpbnQyIHgsIGludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBtaW4odWludDIgeCwgdWludCB5KTsKaW50MyBfX292bGQgX19jbmZuIG1pbihpbnQzIHgsIGludCB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtaW4odWludDMgeCwgdWludCB5KTsKaW50NCBfX292bGQgX19jbmZuIG1pbihpbnQ0IHgsIGludCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBtaW4odWludDQgeCwgdWludCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1pbihpbnQ4IHgsIGludCB5KTsKdWludDggX19vdmxkIF9fY25mbiBtaW4odWludDggeCwgdWludCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBtaW4oaW50MTYgeCwgaW50IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtaW4odWludDE2IHgsIHVpbnQgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWluKGxvbmcyIHgsIGxvbmcgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1pbih1bG9uZzIgeCwgdWxvbmcgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWluKGxvbmczIHgsIGxvbmcgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIG1pbih1bG9uZzMgeCwgdWxvbmcgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc0IHgsIGxvbmcgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIG1pbih1bG9uZzQgeCwgdWxvbmcgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc4IHgsIGxvbmcgeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1pbih1bG9uZzggeCwgdWxvbmcgeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1pbihsb25nMTYgeCwgbG9uZyB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1pbih1bG9uZzE2IHgsIHVsb25nIHkpOwoKLyoqCiAqIENvbXB1dGVzIHggKiB5IGFuZCByZXR1cm5zIHRoZSBoaWdoIGhhbGYgb2YgdGhlCiAqIHByb2R1Y3Qgb2YgeCBhbmQgeS4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG11bF9oaShjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtdWxfaGkodWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtdWxfaGkoc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG11bF9oaSh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG11bF9oaShzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG11bF9oaShpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG11bF9oaShpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtdWxfaGkodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtdWxfaGkoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG11bF9oaSh1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG11bF9oaShpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG11bF9oaShpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG11bF9oaShsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtdWxfaGkodWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogRm9yIGVhY2ggZWxlbWVudCBpbiB2LCB0aGUgYml0cyBhcmUgc2hpZnRlZCBsZWZ0IGJ5CiAqIHRoZSBudW1iZXIgb2YgYml0cyBnaXZlbiBieSB0aGUgY29ycmVzcG9uZGluZwogKiBlbGVtZW50IGluIGkgKHN1YmplY3QgdG8gdXN1YWwgc2hpZnQgbW9kdWxvIHJ1bGVzCiAqIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDYuMykuIEJpdHMgc2hpZnRlZCBvZmYgdGhlIGxlZnQKICogc2lkZSBvZiB0aGUgZWxlbWVudCBhcmUgc2hpZnRlZCBiYWNrIGluIGZyb20gdGhlCiAqIHJpZ2h0LgogKi8KY2hhciBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyIHYsIGNoYXIgaSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyIHYsIHVjaGFyIGkpOwpjaGFyMiBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyMiB2LCBjaGFyMiBpKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyMiB2LCB1Y2hhcjIgaSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGNoYXIzIHYsIGNoYXIzIGkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiByb3RhdGUodWNoYXIzIHYsIHVjaGFyMyBpKTsKY2hhcjQgX19vdmxkIF9fY25mbiByb3RhdGUoY2hhcjQgdiwgY2hhcjQgaSk7CnVjaGFyNCBfX292bGQgX19jbmZuIHJvdGF0ZSh1Y2hhcjQgdiwgdWNoYXI0IGkpOwpjaGFyOCBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyOCB2LCBjaGFyOCBpKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyOCB2LCB1Y2hhcjggaSk7CmNoYXIxNiBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyMTYgdiwgY2hhcjE2IGkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyMTYgdiwgdWNoYXIxNiBpKTsKc2hvcnQgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQgdiwgc2hvcnQgaSk7CnVzaG9ydCBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQgdiwgdXNob3J0IGkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQyIHYsIHNob3J0MiBpKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQyIHYsIHVzaG9ydDIgaSk7CnNob3J0MyBfX292bGQgX19jbmZuIHJvdGF0ZShzaG9ydDMgdiwgc2hvcnQzIGkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVzaG9ydDMgdiwgdXNob3J0MyBpKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHNob3J0NCB2LCBzaG9ydDQgaSk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiByb3RhdGUodXNob3J0NCB2LCB1c2hvcnQ0IGkpOwpzaG9ydDggX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQ4IHYsIHNob3J0OCBpKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQ4IHYsIHVzaG9ydDggaSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQxNiB2LCBzaG9ydDE2IGkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQxNiB2LCB1c2hvcnQxNiBpKTsKaW50IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludCB2LCBpbnQgaSk7CnVpbnQgX19vdmxkIF9fY25mbiByb3RhdGUodWludCB2LCB1aW50IGkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDIgdiwgaW50MiBpKTsKdWludDIgX19vdmxkIF9fY25mbiByb3RhdGUodWludDIgdiwgdWludDIgaSk7CmludDMgX19vdmxkIF9fY25mbiByb3RhdGUoaW50MyB2LCBpbnQzIGkpOwp1aW50MyBfX292bGQgX19jbmZuIHJvdGF0ZSh1aW50MyB2LCB1aW50MyBpKTsKaW50NCBfX292bGQgX19jbmZuIHJvdGF0ZShpbnQ0IHYsIGludDQgaSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVpbnQ0IHYsIHVpbnQ0IGkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDggdiwgaW50OCBpKTsKdWludDggX19vdmxkIF9fY25mbiByb3RhdGUodWludDggdiwgdWludDggaSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDE2IHYsIGludDE2IGkpOwp1aW50MTYgX19vdmxkIF9fY25mbiByb3RhdGUodWludDE2IHYsIHVpbnQxNiBpKTsKbG9uZyBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nIHYsIGxvbmcgaSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nIHYsIHVsb25nIGkpOwpsb25nMiBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nMiB2LCBsb25nMiBpKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nMiB2LCB1bG9uZzIgaSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGxvbmczIHYsIGxvbmczIGkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiByb3RhdGUodWxvbmczIHYsIHVsb25nMyBpKTsKbG9uZzQgX19vdmxkIF9fY25mbiByb3RhdGUobG9uZzQgdiwgbG9uZzQgaSk7CnVsb25nNCBfX292bGQgX19jbmZuIHJvdGF0ZSh1bG9uZzQgdiwgdWxvbmc0IGkpOwpsb25nOCBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nOCB2LCBsb25nOCBpKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nOCB2LCB1bG9uZzggaSk7CmxvbmcxNiBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nMTYgdiwgbG9uZzE2IGkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nMTYgdiwgdWxvbmcxNiBpKTsKCi8qKgogKiBSZXR1cm5zIHggLSB5IGFuZCBzYXR1cmF0ZXMgdGhlIHJlc3VsdC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBzdWJfc2F0KGNoYXIgeCwgY2hhciB5KTsKdWNoYXIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVjaGFyIHgsIHVjaGFyIHkpOwpjaGFyMiBfX292bGQgX19jbmZuIHN1Yl9zYXQoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIHN1Yl9zYXQodWNoYXIyIHgsIHVjaGFyMiB5KTsKY2hhcjMgX19vdmxkIF9fY25mbiBzdWJfc2F0KGNoYXIzIHgsIGNoYXIzIHkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChjaGFyNCB4LCBjaGFyNCB5KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1Y2hhcjQgeCwgdWNoYXI0IHkpOwpjaGFyOCBfX292bGQgX19jbmZuIHN1Yl9zYXQoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWNoYXI4IHgsIHVjaGFyOCB5KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChjaGFyMTYgeCwgY2hhcjE2IHkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChzaG9ydCB4LCBzaG9ydCB5KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1c2hvcnQgeCwgdXNob3J0IHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVzaG9ydDIgeCwgdXNob3J0MiB5KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChzaG9ydDMgeCwgc2hvcnQzIHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIHN1Yl9zYXQoc2hvcnQ0IHgsIHNob3J0NCB5KTsKdXNob3J0NCBfX292bGQgX19jbmZuIHN1Yl9zYXQodXNob3J0NCB4LCB1c2hvcnQ0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBzdWJfc2F0KHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzdWJfc2F0KHVzaG9ydDggeCwgdXNob3J0OCB5KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHN1Yl9zYXQoc2hvcnQxNiB4LCBzaG9ydDE2IHkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHN1Yl9zYXQodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIHN1Yl9zYXQoaW50IHgsIGludCB5KTsKdWludCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWludCB4LCB1aW50IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1aW50MiB4LCB1aW50MiB5KTsKaW50MyBfX292bGQgX19jbmZuIHN1Yl9zYXQoaW50MyB4LCBpbnQzIHkpOwp1aW50MyBfX292bGQgX19jbmZuIHN1Yl9zYXQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBzdWJfc2F0KGludDQgeCwgaW50NCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVpbnQ0IHgsIHVpbnQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1aW50OCB4LCB1aW50OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBzdWJfc2F0KGludDE2IHgsIGludDE2IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBzdWJfc2F0KGxvbmcgeCwgbG9uZyB5KTsKdWxvbmcgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVsb25nIHgsIHVsb25nIHkpOwpsb25nMiBfX292bGQgX19jbmZuIHN1Yl9zYXQobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIHN1Yl9zYXQodWxvbmcyIHgsIHVsb25nMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBzdWJfc2F0KGxvbmczIHgsIGxvbmczIHkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChsb25nNCB4LCBsb25nNCB5KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1bG9uZzQgeCwgdWxvbmc0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIHN1Yl9zYXQobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWxvbmc4IHgsIHVsb25nOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChsb25nMTYgeCwgbG9uZzE2IHkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogcmVzdWx0W2ldID0gKChzaG9ydCloaVtpXSA8PCA4KSB8IGxvW2ldCiAqIHJlc3VsdFtpXSA9ICgodXNob3J0KWhpW2ldIDw8IDgpIHwgbG9baV0KICovCnNob3J0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoY2hhciBoaSwgdWNoYXIgbG8pOwp1c2hvcnQgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhciBoaSwgdWNoYXIgbG8pOwpzaG9ydDIgX19vdmxkIF9fY25mbiB1cHNhbXBsZShjaGFyMiBoaSwgdWNoYXIyIGxvKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoY2hhcjMgaGksIHVjaGFyMyBsbyk7CnNob3J0NCBfX292bGQgX19jbmZuIHVwc2FtcGxlKGNoYXI0IGhpLCB1Y2hhcjQgbG8pOwpzaG9ydDggX19vdmxkIF9fY25mbiB1cHNhbXBsZShjaGFyOCBoaSwgdWNoYXI4IGxvKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHVwc2FtcGxlKGNoYXIxNiBoaSwgdWNoYXIxNiBsbyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjIgaGksIHVjaGFyMiBsbyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjMgaGksIHVjaGFyMyBsbyk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjQgaGksIHVjaGFyNCBsbyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjggaGksIHVjaGFyOCBsbyk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUodWNoYXIxNiBoaSwgdWNoYXIxNiBsbyk7CgovKioKICogcmVzdWx0W2ldID0gKChpbnQpaGlbaV0gPDwgMTYpIHwgbG9baV0KICogcmVzdWx0W2ldID0gKCh1aW50KWhpW2ldIDw8IDE2KSB8IGxvW2ldCiAqLwppbnQgX19vdmxkIF9fY25mbiB1cHNhbXBsZShzaG9ydCBoaSwgdXNob3J0IGxvKTsKdWludCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydCBoaSwgdXNob3J0IGxvKTsKaW50MiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHNob3J0MiBoaSwgdXNob3J0MiBsbyk7CmludDMgX19vdmxkIF9fY25mbiB1cHNhbXBsZShzaG9ydDMgaGksIHVzaG9ydDMgbG8pOwppbnQ0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoc2hvcnQ0IGhpLCB1c2hvcnQ0IGxvKTsKaW50OCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHNob3J0OCBoaSwgdXNob3J0OCBsbyk7CmludDE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoc2hvcnQxNiBoaSwgdXNob3J0MTYgbG8pOwp1aW50MiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDIgaGksIHVzaG9ydDIgbG8pOwp1aW50MyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDMgaGksIHVzaG9ydDMgbG8pOwp1aW50NCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDQgaGksIHVzaG9ydDQgbG8pOwp1aW50OCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDggaGksIHVzaG9ydDggbG8pOwp1aW50MTYgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1c2hvcnQxNiBoaSwgdXNob3J0MTYgbG8pOwovKioKICogcmVzdWx0W2ldID0gKChsb25nKWhpW2ldIDw8IDMyKSB8IGxvW2ldCiAqIHJlc3VsdFtpXSA9ICgodWxvbmcpaGlbaV0gPDwgMzIpIHwgbG9baV0KICovCmxvbmcgX19vdmxkIF9fY25mbiB1cHNhbXBsZShpbnQgaGksIHVpbnQgbG8pOwp1bG9uZyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQgaGksIHVpbnQgbG8pOwpsb25nMiBfX292bGQgX19jbmZuIHVwc2FtcGxlKGludDIgaGksIHVpbnQyIGxvKTsKbG9uZzMgX19vdmxkIF9fY25mbiB1cHNhbXBsZShpbnQzIGhpLCB1aW50MyBsbyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoaW50NCBoaSwgdWludDQgbG8pOwpsb25nOCBfX292bGQgX19jbmZuIHVwc2FtcGxlKGludDggaGksIHVpbnQ4IGxvKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoaW50MTYgaGksIHVpbnQxNiBsbyk7CnVsb25nMiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQyIGhpLCB1aW50MiBsbyk7CnVsb25nMyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQzIGhpLCB1aW50MyBsbyk7CnVsb25nNCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQ0IGhpLCB1aW50NCBsbyk7CnVsb25nOCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQ4IGhpLCB1aW50OCBsbyk7CnVsb25nMTYgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1aW50MTYgaGksIHVpbnQxNiBsbyk7CgovKgogKiBwb3Bjb3VudCh4KTogcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNldCBiaXQgaW4geAogKi8KI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpjaGFyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoY2hhciB4KTsKdWNoYXIgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhciB4KTsKY2hhcjIgX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyMiB4KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWNoYXIyIHgpOwpjaGFyMyBfX292bGQgX19jbmZuIHBvcGNvdW50KGNoYXIzIHgpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhcjMgeCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoY2hhcjQgeCk7CnVjaGFyNCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVjaGFyNCB4KTsKY2hhcjggX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyOCB4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWNoYXI4IHgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyMTYgeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhcjE2IHgpOwpzaG9ydCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0IHgpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1c2hvcnQgeCk7CnNob3J0MiBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0MiB4KTsKdXNob3J0MiBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDIgeCk7CnNob3J0MyBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0MyB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDMgeCk7CnNob3J0NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0NCB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDQgeCk7CnNob3J0OCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0OCB4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDggeCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChzaG9ydDE2IHgpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDE2IHgpOwppbnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoaW50MiB4KTsKdWludDIgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50MiB4KTsKaW50MyBfX292bGQgX19jbmZuIHBvcGNvdW50KGludDMgeCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWludDMgeCk7CmludDQgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQ0IHgpOwp1aW50NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVpbnQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoaW50OCB4KTsKdWludDggX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50OCB4KTsKaW50MTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQxNiB4KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWludDE2IHgpOwpsb25nIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQobG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZyB4KTsKbG9uZzIgX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nMiB4KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWxvbmcyIHgpOwpsb25nMyBfX292bGQgX19jbmZuIHBvcGNvdW50KGxvbmczIHgpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZzMgeCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQobG9uZzQgeCk7CnVsb25nNCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVsb25nNCB4KTsKbG9uZzggX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nOCB4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWxvbmc4IHgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nMTYgeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZzE2IHgpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgovKioKICogTXVsdGlwbHkgdHdvIDI0LWJpdCBpbnRlZ2VyIHZhbHVlcyB4IGFuZCB5IGFuZCBhZGQKICogdGhlIDMyLWJpdCBpbnRlZ2VyIHJlc3VsdCB0byB0aGUgMzItYml0IGludGVnZXIgei4KICogUmVmZXIgdG8gZGVmaW5pdGlvbiBvZiBtdWwyNCB0byBzZWUgaG93IHRoZSAyNC1iaXQKICogaW50ZWdlciBtdWx0aXBsaWNhdGlvbiBpcyBwZXJmb3JtZWQuCiAqLwppbnQgX19vdmxkIF9fY25mbiBtYWQyNChpbnQgeCwgaW50IHksIGludCB6KTsKdWludCBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQgeCwgdWludCB5LCB1aW50IHopOwppbnQyIF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50MiB4LCBpbnQyIHksIGludDIgeik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWFkMjQodWludDIgeCwgdWludDIgeSwgdWludDIgeik7CmludDMgX19vdmxkIF9fY25mbiBtYWQyNChpbnQzIHgsIGludDMgeSwgaW50MyB6KTsKdWludDMgX19vdmxkIF9fY25mbiBtYWQyNCh1aW50MyB4LCB1aW50MyB5LCB1aW50MyB6KTsKaW50NCBfX292bGQgX19jbmZuIG1hZDI0KGludDQgeCwgaW50NCB5LCBpbnQ0IHopOwp1aW50NCBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQ0IHgsIHVpbnQ0IHksIHVpbnQ0IHopOwppbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50OCB4LCBpbnQ4IHksIGludDggeik7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkMjQodWludDggeCwgdWludDggeSwgdWludDggeik7CmludDE2IF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50MTYgeCwgaW50MTYgeSwgaW50MTYgeik7CnVpbnQxNiBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDE2IHopOwoKLyoqCiAqIE11bHRpcGx5IHR3byAyNC1iaXQgaW50ZWdlciB2YWx1ZXMgeCBhbmQgeS4geCBhbmQgeQogKiBhcmUgMzItYml0IGludGVnZXJzIGJ1dCBvbmx5IHRoZSBsb3cgMjQtYml0cyBhcmUgdXNlZAogKiB0byBwZXJmb3JtIHRoZSBtdWx0aXBsaWNhdGlvbi4gbXVsMjQgc2hvdWxkIG9ubHkKICogYmUgdXNlZCB3aGVuIHZhbHVlcyBpbiB4IGFuZCB5IGFyZSBpbiB0aGUgcmFuZ2UgWy0KICogMl4yMywgMl4yMy0xXSBpZiB4IGFuZCB5IGFyZSBzaWduZWQgaW50ZWdlcnMgYW5kIGluIHRoZQogKiByYW5nZSBbMCwgMl4yNC0xXSBpZiB4IGFuZCB5IGFyZSB1bnNpZ25lZCBpbnRlZ2Vycy4gSWYKICogeCBhbmQgeSBhcmUgbm90IGluIHRoaXMgcmFuZ2UsIHRoZSBtdWx0aXBsaWNhdGlvbgogKiByZXN1bHQgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmludCBfX292bGQgX19jbmZuIG11bDI0KGludCB4LCBpbnQgeSk7CnVpbnQgX19vdmxkIF9fY25mbiBtdWwyNCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBtdWwyNChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDIgeCwgdWludDIgeSk7CmludDMgX19vdmxkIF9fY25mbiBtdWwyNChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtdWwyNChpbnQ0IHgsIGludDQgeSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBtdWwyNChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDggeCwgdWludDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gbXVsMjQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIG11bDI0KHVpbnQxNiB4LCB1aW50MTYgeSk7CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS40LCB2MS4yIHM2LjEyLjQsIHYyLjAgczYuMTMuNCAtIENvbW1vbiBGdW5jdGlvbnMKCi8qKgogKiBSZXR1cm5zIGZtaW4oZm1heCh4LCBtaW52YWwpLCBtYXh2YWwpLgogKiBSZXN1bHRzIGFyZSB1bmRlZmluZWQgaWYgbWludmFsID4gbWF4dmFsLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjbGFtcChmbG9hdCB4LCBmbG9hdCBtaW52YWwsIGZsb2F0IG1heHZhbCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MiB4LCBmbG9hdDIgbWludmFsLCBmbG9hdDIgbWF4dmFsKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQzIHgsIGZsb2F0MyBtaW52YWwsIGZsb2F0MyBtYXh2YWwpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjbGFtcChmbG9hdDQgeCwgZmxvYXQ0IG1pbnZhbCwgZmxvYXQ0IG1heHZhbCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0OCB4LCBmbG9hdDggbWludmFsLCBmbG9hdDggbWF4dmFsKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MTYgeCwgZmxvYXQxNiBtaW52YWwsIGZsb2F0MTYgbWF4dmFsKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQyIHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQzIHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQ0IHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQ4IHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MTYgeCwgZmxvYXQgbWludmFsLCBmbG9hdCBtYXh2YWwpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlIHgsIGRvdWJsZSBtaW52YWwsIGRvdWJsZSBtYXh2YWwpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMiB4LCBkb3VibGUyIG1pbnZhbCwgZG91YmxlMiBtYXh2YWwpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMyB4LCBkb3VibGUzIG1pbnZhbCwgZG91YmxlMyBtYXh2YWwpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlNCB4LCBkb3VibGU0IG1pbnZhbCwgZG91YmxlNCBtYXh2YWwpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlOCB4LCBkb3VibGU4IG1pbnZhbCwgZG91YmxlOCBtYXh2YWwpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTE2IHgsIGRvdWJsZTE2IG1pbnZhbCwgZG91YmxlMTYgbWF4dmFsKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTIgeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjbGFtcChkb3VibGUzIHgsIGRvdWJsZSBtaW52YWwsIGRvdWJsZSBtYXh2YWwpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlNCB4LCBkb3VibGUgbWludmFsLCBkb3VibGUgbWF4dmFsKTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTggeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMTYgeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZiB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwpoYWxmMiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYyIHgsIGhhbGYyIG1pbnZhbCwgaGFsZjIgbWF4dmFsKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjbGFtcChoYWxmMyB4LCBoYWxmMyBtaW52YWwsIGhhbGYzIG1heHZhbCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjQgeCwgaGFsZjQgbWludmFsLCBoYWxmNCBtYXh2YWwpOwpoYWxmOCBfX292bGQgX19jbmZuIGNsYW1wKGhhbGY4IHgsIGhhbGY4IG1pbnZhbCwgaGFsZjggbWF4dmFsKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjE2IHgsIGhhbGYxNiBtaW52YWwsIGhhbGYxNiBtYXh2YWwpOwpoYWxmMiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYyIHgsIGhhbGYgbWludmFsLCBoYWxmIG1heHZhbCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjMgeCwgaGFsZiBtaW52YWwsIGhhbGYgbWF4dmFsKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjbGFtcChoYWxmNCB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwpoYWxmOCBfX292bGQgX19jbmZuIGNsYW1wKGhhbGY4IHgsIGhhbGYgbWludmFsLCBoYWxmIG1heHZhbCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYxNiB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbnZlcnRzIHJhZGlhbnMgdG8gZGVncmVlcywgaS5lLiAoMTgwIC8gUEkpICoKICogcmFkaWFucy4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdCByYWRpYW5zKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdDIgcmFkaWFucyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGRlZ3JlZXMoZmxvYXQzIHJhZGlhbnMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBkZWdyZWVzKGZsb2F0NCByYWRpYW5zKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdDggcmFkaWFucyk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGZsb2F0MTYgcmFkaWFucyk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBkZWdyZWVzKGRvdWJsZSByYWRpYW5zKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlMiByYWRpYW5zKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlMyByYWRpYW5zKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlNCByYWRpYW5zKTsKZG91YmxlOCBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlOCByYWRpYW5zKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGRvdWJsZTE2IHJhZGlhbnMpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGRlZ3JlZXMoaGFsZiByYWRpYW5zKTsKaGFsZjIgX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGYyIHJhZGlhbnMpOwpoYWxmMyBfX292bGQgX19jbmZuIGRlZ3JlZXMoaGFsZjMgcmFkaWFucyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhoYWxmNCByYWRpYW5zKTsKaGFsZjggX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGY4IHJhZGlhbnMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGYxNiByYWRpYW5zKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeCA8IHksIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIHggYW5kIHkKICogYXJlIGluZmluaXRlIG9yIE5hTiwgdGhlIHJldHVybiB2YWx1ZXMgYXJlIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWF4KGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtYXgoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbWF4KGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1heChmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtYXgoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG1heChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1heChmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1heChmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1heChmbG9hdDQgeCwgZmxvYXQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1heChmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtYXgoZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1heChkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1heChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMiB4LCBkb3VibGUgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtYXgoZG91YmxlOCB4LCBkb3VibGUgeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYXgoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1heChoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtYXgoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1heChoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYzIHgsIGhhbGYgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1heChoYWxmMTYgeCwgaGFsZiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeSA8IHgsIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIHggYW5kIHkKICogYXJlIGluZmluaXRlIG9yIE5hTiwgdGhlIHJldHVybiB2YWx1ZXMgYXJlIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWluKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtaW4oZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbWluKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1pbihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtaW4oZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG1pbihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1pbihmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1pbihmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1pbihmbG9hdDQgeCwgZmxvYXQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1pbihmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaW4oZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1pbihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1pbihkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMiB4LCBkb3VibGUgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaW4oZG91YmxlOCB4LCBkb3VibGUgeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtaW4oaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1pbihoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaW4oaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1pbihoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYzIHgsIGhhbGYgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1pbihoYWxmMTYgeCwgaGFsZiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBsaW5lYXIgYmxlbmQgb2YgeCAmIHkgaW1wbGVtZW50ZWQgYXM6CiAqIHggKyAoeSAtIHgpICogYQogKiBhIG11c3QgYmUgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgMC4wIC4uLiAxLjAuIElmIGEgaXMgbm90CiAqIGluIHRoZSByYW5nZSAwLjAgLi4uIDEuMCwgdGhlIHJldHVybiB2YWx1ZXMgYXJlCiAqIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGEpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9hdDIgYSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1peChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0MyBhKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IGEpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtaXgoZmxvYXQ4IHgsIGZsb2F0OCB5LCBmbG9hdDggYSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQxNiB4LCBmbG9hdDE2IHksIGZsb2F0MTYgYSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1peChmbG9hdDIgeCwgZmxvYXQyIHksIGZsb2F0IGEpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQzIHgsIGZsb2F0MyB5LCBmbG9hdCBhKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQgYSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1peChmbG9hdDggeCwgZmxvYXQ4IHksIGZsb2F0IGEpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0MTYgeCwgZmxvYXQxNiB5LCBmbG9hdCBhKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1peChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSBhKTsKZG91YmxlMiBfX292bGQgX19jbmZuIG1peChkb3VibGUyIHgsIGRvdWJsZTIgeSwgZG91YmxlMiBhKTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1peChkb3VibGUzIHgsIGRvdWJsZTMgeSwgZG91YmxlMyBhKTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1peChkb3VibGU0IHgsIGRvdWJsZTQgeSwgZG91YmxlNCBhKTsKZG91YmxlOCBfX292bGQgX19jbmZuIG1peChkb3VibGU4IHgsIGRvdWJsZTggeSwgZG91YmxlOCBhKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgZG91YmxlMTYgYSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMiB4LCBkb3VibGUyIHksIGRvdWJsZSBhKTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1peChkb3VibGUzIHgsIGRvdWJsZTMgeSwgZG91YmxlIGEpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbWl4KGRvdWJsZTQgeCwgZG91YmxlNCB5LCBkb3VibGUgYSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaXgoZG91YmxlOCB4LCBkb3VibGU4IHksIGRvdWJsZSBhKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgZG91YmxlIGEpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIG1peChoYWxmIHgsIGhhbGYgeSwgaGFsZiBhKTsKaGFsZjIgX19vdmxkIF9fY25mbiBtaXgoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZjIgYSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWl4KGhhbGYzIHgsIGhhbGYzIHksIGhhbGYzIGEpOwpoYWxmNCBfX292bGQgX19jbmZuIG1peChoYWxmNCB4LCBoYWxmNCB5LCBoYWxmNCBhKTsKaGFsZjggX19vdmxkIF9fY25mbiBtaXgoaGFsZjggeCwgaGFsZjggeSwgaGFsZjggYSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1peChoYWxmMTYgeCwgaGFsZjE2IHksIGhhbGYxNiBhKTsKaGFsZjIgX19vdmxkIF9fY25mbiBtaXgoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZiBhKTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaXgoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZiBhKTsKaGFsZjQgX19vdmxkIF9fY25mbiBtaXgoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZiBhKTsKaGFsZjggX19vdmxkIF9fY25mbiBtaXgoaGFsZjggeCwgaGFsZjggeSwgaGFsZiBhKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWl4KGhhbGYxNiB4LCBoYWxmMTYgeSwgaGFsZiBhKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb252ZXJ0cyBkZWdyZWVzIHRvIHJhZGlhbnMsIGkuZS4gKFBJIC8gMTgwKSAqCiAqIGRlZ3JlZXMuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQgZGVncmVlcyk7CmZsb2F0MiBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQyIGRlZ3JlZXMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiByYWRpYW5zKGZsb2F0MyBkZWdyZWVzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhmbG9hdDQgZGVncmVlcyk7CmZsb2F0OCBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQ4IGRlZ3JlZXMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhmbG9hdDE2IGRlZ3JlZXMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhkb3VibGUgZGVncmVlcyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTIgZGVncmVlcyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTMgZGVncmVlcyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTQgZGVncmVlcyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTggZGVncmVlcyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhkb3VibGUxNiBkZWdyZWVzKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByYWRpYW5zKGhhbGYgZGVncmVlcyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmMiBkZWdyZWVzKTsKaGFsZjMgX19vdmxkIF9fY25mbiByYWRpYW5zKGhhbGYzIGRlZ3JlZXMpOwpoYWxmNCBfX292bGQgX19jbmZuIHJhZGlhbnMoaGFsZjQgZGVncmVlcyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmOCBkZWdyZWVzKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmMTYgZGVncmVlcyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyAwLjAgaWYgeCA8IGVkZ2UsIG90aGVyd2lzZSBpdCByZXR1cm5zIDEuMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDIgZWRnZSwgZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzdGVwKGZsb2F0MyBlZGdlLCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQ0IGVkZ2UsIGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDggZWRnZSwgZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDE2IGVkZ2UsIGZsb2F0MTYgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQgZWRnZSwgZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzdGVwKGZsb2F0IGVkZ2UsIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQgZWRnZSwgZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUyIGVkZ2UsIGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzdGVwKGRvdWJsZTMgZWRnZSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlNCBlZGdlLCBkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGU4IGVkZ2UsIGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUxNiBlZGdlLCBkb3VibGUxNiB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlIGVkZ2UsIGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzdGVwKGRvdWJsZSBlZGdlLCBkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlIGVkZ2UsIGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmMiBlZGdlLCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzdGVwKGhhbGYzIGVkZ2UsIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHN0ZXAoaGFsZjQgZWRnZSwgaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmOCBlZGdlLCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmMTYgZWRnZSwgaGFsZjE2IHgpOwpoYWxmMiBfX292bGQgX19jbmZuIHN0ZXAoaGFsZiBlZGdlLCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzdGVwKGhhbGYgZWRnZSwgaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIHN0ZXAoaGFsZiBlZGdlLCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIDAuMCBpZiB4IDw9IGVkZ2UwIGFuZCAxLjAgaWYgeCA+PSBlZGdlMSBhbmQKICogcGVyZm9ybXMgc21vb3RoIEhlcm1pdGUgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIDAKICogYW5kIDF3aGVuIGVkZ2UwIDwgeCA8IGVkZ2UxLiBUaGlzIGlzIHVzZWZ1bCBpbgogKiBjYXNlcyB3aGVyZSB5b3Ugd291bGQgd2FudCBhIHRocmVzaG9sZCBmdW5jdGlvbgogKiB3aXRoIGEgc21vb3RoIHRyYW5zaXRpb24uCiAqIFRoaXMgaXMgZXF1aXZhbGVudCB0bzoKICogZ2VudHlwZSB0OwogKiB0ID0gY2xhbXAgKCh4IC0gZWRnZTApIC8gKGVkZ2UxIC0gZWRnZTApLCAwLCAxKTsKICogcmV0dXJuIHQgKiB0ICogKDMgLSAyICogdCk7CiAqIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBpZiBlZGdlMCA+PSBlZGdlMSBvciBpZiB4LAogKiBlZGdlMCBvciBlZGdlMSBpcyBhIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChmbG9hdCBlZGdlMCwgZmxvYXQgZWRnZTEsIGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0MiBlZGdlMCwgZmxvYXQyIGVkZ2UxLCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQzIGVkZ2UwLCBmbG9hdDMgZWRnZTEsIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChmbG9hdDQgZWRnZTAsIGZsb2F0NCBlZGdlMSwgZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0OCBlZGdlMCwgZmxvYXQ4IGVkZ2UxLCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0MTYgZWRnZTAsIGZsb2F0MTYgZWRnZTEsIGZsb2F0MTYgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0IGVkZ2UwLCBmbG9hdCBlZGdlMSwgZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlMiBlZGdlMCwgZG91YmxlMiBlZGdlMSwgZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlMyBlZGdlMCwgZG91YmxlMyBlZGdlMSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlNCBlZGdlMCwgZG91YmxlNCBlZGdlMSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlOCBlZGdlMCwgZG91YmxlOCBlZGdlMSwgZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZTE2IGVkZ2UwLCBkb3VibGUxNiBlZGdlMSwgZG91YmxlMTYgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZSBlZGdlMCwgZG91YmxlIGVkZ2UxLCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChkb3VibGUgZWRnZTAsIGRvdWJsZSBlZGdlMSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZSBlZGdlMCwgZG91YmxlIGVkZ2UxLCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYyIGVkZ2UwLCBoYWxmMiBlZGdlMSwgaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChoYWxmMyBlZGdlMCwgaGFsZjMgZWRnZTEsIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZjQgZWRnZTAsIGhhbGY0IGVkZ2UxLCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGY4IGVkZ2UwLCBoYWxmOCBlZGdlMSwgaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZjE2IGVkZ2UwLCBoYWxmMTYgZWRnZTEsIGhhbGYxNiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChoYWxmIGVkZ2UwLCBoYWxmIGVkZ2UxLCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIDEuMCBpZiB4ID4gMCwgLTAuMCBpZiB4ID0gLTAuMCwgKzAuMCBpZiB4ID0KICogKzAuMCwgb3IgLTEuMCBpZiB4IDwgMC4gUmV0dXJucyAwLjAgaWYgeCBpcyBhIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNpZ24oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaWduKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaWduKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBzaWduKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaWduKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNpZ24oaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaWduKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHNpZ24oaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2lnbihoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaWduKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaWduKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjUsIHYxLjIgczYuMTIuNSwgdjIuMCBzNi4xMy41IC0gR2VvbWV0cmljIEZ1bmN0aW9ucwoKLyoqCiAqIFJldHVybnMgdGhlIGNyb3NzIHByb2R1Y3Qgb2YgcDAueHl6IGFuZCBwMS54eXouIFRoZQogKiB3IGNvbXBvbmVudCBvZiBmbG9hdDQgcmVzdWx0IHJldHVybmVkIHdpbGwgYmUgMC4wLgogKi8KZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoZmxvYXQ0IHAwLCBmbG9hdDQgcDEpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjcm9zcyhmbG9hdDMgcDAsIGZsb2F0MyBwMSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoZG91YmxlNCBwMCwgZG91YmxlNCBwMSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjcm9zcyhkb3VibGUzIHAwLCBkb3VibGUzIHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoaGFsZjQgcDAsIGhhbGY0IHAxKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjcm9zcyhoYWxmMyBwMCwgaGFsZjMgcDEpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgZG90IHByb2R1Y3QuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGRvdChmbG9hdCBwMCwgZmxvYXQgcDEpOwpmbG9hdCBfX292bGQgX19jbmZuIGRvdChmbG9hdDIgcDAsIGZsb2F0MiBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZG90KGZsb2F0MyBwMCwgZmxvYXQzIHAxKTsKZmxvYXQgX19vdmxkIF9fY25mbiBkb3QoZmxvYXQ0IHAwLCBmbG9hdDQgcDEpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZG90KGRvdWJsZSBwMCwgZG91YmxlIHAxKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZG90KGRvdWJsZTIgcDAsIGRvdWJsZTIgcDEpOwpkb3VibGUgX19vdmxkIF9fY25mbiBkb3QoZG91YmxlMyBwMCwgZG91YmxlMyBwMSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGRvdChkb3VibGU0IHAwLCBkb3VibGU0IHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBkb3QoaGFsZiBwMCwgaGFsZiBwMSk7CmhhbGYgX19vdmxkIF9fY25mbiBkb3QoaGFsZjIgcDAsIGhhbGYyIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGRvdChoYWxmMyBwMCwgaGFsZjMgcDEpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZG90KGhhbGY0IHAwLCBoYWxmNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBwMCBhbmQgcDEuIFRoaXMgaXMKICogY2FsY3VsYXRlZCBhcyBsZW5ndGgocDAgLSBwMSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGRpc3RhbmNlKGZsb2F0IHAwLCBmbG9hdCBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoZmxvYXQyIHAwLCBmbG9hdDIgcDEpOwpmbG9hdCBfX292bGQgX19jbmZuIGRpc3RhbmNlKGZsb2F0MyBwMCwgZmxvYXQzIHAxKTsKZmxvYXQgX19vdmxkIF9fY25mbiBkaXN0YW5jZShmbG9hdDQgcDAsIGZsb2F0NCBwMSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBkaXN0YW5jZShkb3VibGUgcDAsIGRvdWJsZSBwMSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGRpc3RhbmNlKGRvdWJsZTIgcDAsIGRvdWJsZTIgcDEpOwpkb3VibGUgX19vdmxkIF9fY25mbiBkaXN0YW5jZShkb3VibGUzIHAwLCBkb3VibGUzIHAxKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoZG91YmxlNCBwMCwgZG91YmxlNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoaGFsZiBwMCwgaGFsZiBwMSk7CmhhbGYgX19vdmxkIF9fY25mbiBkaXN0YW5jZShoYWxmMiBwMCwgaGFsZjIgcDEpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoaGFsZjMgcDAsIGhhbGYzIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGRpc3RhbmNlKGhhbGY0IHAwLCBoYWxmNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdmVjdG9yIHAsIGkuZS4sCiAqIHNxcnQocC54MiArIHAueSAyICsgLi4uKQogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsZW5ndGgoZmxvYXQgcCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGZsb2F0MiBwKTsKZmxvYXQgX19vdmxkIF9fY25mbiBsZW5ndGgoZmxvYXQzIHApOwpmbG9hdCBfX292bGQgX19jbmZuIGxlbmd0aChmbG9hdDQgcCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsZW5ndGgoZG91YmxlIHApOwpkb3VibGUgX19vdmxkIF9fY25mbiBsZW5ndGgoZG91YmxlMiBwKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGRvdWJsZTMgcCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGxlbmd0aChkb3VibGU0IHApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxlbmd0aChoYWxmIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGYyIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGYzIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGY0IHApOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgYSB2ZWN0b3IgaW4gdGhlIHNhbWUgZGlyZWN0aW9uIGFzIHAgYnV0IHdpdGggYQogKiBsZW5ndGggb2YgMS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGZsb2F0IHApOwpmbG9hdDIgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQyIHApOwpmbG9hdDMgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQzIHApOwpmbG9hdDQgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQ0IHApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGRvdWJsZSBwKTsKZG91YmxlMiBfX292bGQgX19jbmZuIG5vcm1hbGl6ZShkb3VibGUyIHApOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGRvdWJsZTMgcCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZG91YmxlNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBub3JtYWxpemUoaGFsZiBwKTsKaGFsZjIgX19vdmxkIF9fY25mbiBub3JtYWxpemUoaGFsZjIgcCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGhhbGYzIHApOwpoYWxmNCBfX292bGQgX19jbmZuIG5vcm1hbGl6ZShoYWxmNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGZhc3RfbGVuZ3RoKHAwIC0gcDEpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmYXN0X2Rpc3RhbmNlKGZsb2F0IHAwLCBmbG9hdCBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDIgcDAsIGZsb2F0MiBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDMgcDAsIGZsb2F0MyBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDQgcDAsIGZsb2F0NCBwMSk7CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShoYWxmIHAwLCBoYWxmIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjIgcDAsIGhhbGYyIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjMgcDAsIGhhbGYzIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjQgcDAsIGhhbGY0IHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdmVjdG9yIHAgY29tcHV0ZWQgYXM6CiAqIGhhbGZfc3FydChwLngyICsgcC55MiArIC4uLikKICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoZmxvYXQgcCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoZmxvYXQyIHApOwpmbG9hdCBfX292bGQgX19jbmZuIGZhc3RfbGVuZ3RoKGZsb2F0MyBwKTsKZmxvYXQgX19vdmxkIF9fY25mbiBmYXN0X2xlbmd0aChmbG9hdDQgcCk7CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoaGFsZiBwKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfbGVuZ3RoKGhhbGYyIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoaGFsZjMgcCk7CmhhbGYgX19vdmxkIF9fY25mbiBmYXN0X2xlbmd0aChoYWxmNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGEgdmVjdG9yIGluIHRoZSBzYW1lIGRpcmVjdGlvbiBhcyBwIGJ1dCB3aXRoIGEKICogbGVuZ3RoIG9mIDEuIGZhc3Rfbm9ybWFsaXplIGlzIGNvbXB1dGVkIGFzOgogKiBwICogaGFsZl9yc3FydCAocC54XjIgKyBwLnleMiArIC4uLiApCiAqIFRoZSByZXN1bHQgc2hhbGwgYmUgd2l0aGluIDgxOTIgdWxwcyBlcnJvciBmcm9tIHRoZQogKiBpbmZpbml0ZWx5IHByZWNpc2UgcmVzdWx0IG9mCiAqIGlmIChhbGwocCA9PSAwLjBmKSkKICogcmVzdWx0ID0gcDsKICogZWxzZQogKiByZXN1bHQgPSBwIC8gc3FydCAocC54XjIgKyBwLnleMiArIC4uLik7CiAqIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgogKiAxKSBJZiB0aGUgc3VtIG9mIHNxdWFyZXMgaXMgZ3JlYXRlciB0aGFuIEZMVF9NQVgKICogdGhlbiB0aGUgdmFsdWUgb2YgdGhlIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiB0aGUKICogcmVzdWx0IHZlY3RvciBhcmUgdW5kZWZpbmVkLgogKiAyKSBJZiB0aGUgc3VtIG9mIHNxdWFyZXMgaXMgbGVzcyB0aGFuIEZMVF9NSU4gdGhlbgogKiB0aGUgaW1wbGVtZW50YXRpb24gbWF5IHJldHVybiBiYWNrIHAuCiAqIDMpIElmIHRoZSBkZXZpY2UgaXMgaW4gImRlbm9ybXMgYXJlIGZsdXNoZWQgdG8gemVybyIKICogbW9kZSwgaW5kaXZpZHVhbCBvcGVyYW5kIGVsZW1lbnRzIHdpdGggbWFnbml0dWRlCiAqIGxlc3MgdGhhbiBzcXJ0KEZMVF9NSU4pIG1heSBiZSBmbHVzaGVkIHRvIHplcm8KICogYmVmb3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgY2FsY3VsYXRpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGZsb2F0IHApOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmYXN0X25vcm1hbGl6ZShmbG9hdDIgcCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGZsb2F0MyBwKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoZmxvYXQ0IHApOwojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGhhbGYgcCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjIgcCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjMgcCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjQgcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS42LCB2MS4yIHM2LjEyLjYsIHYyLjAgczYuMTMuNiAtIFJlbGF0aW9uYWwgRnVuY3Rpb25zCgovKioKICogaW50biBpc2VxdWFsIChmbG9hdG4geCwgZmxvYXRuIHkpCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCA9PSB5LgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2VxdWFsKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCAhPSB5LgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCA+IHkuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQgeCwgZmxvYXQgeSk7CmludDIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmludDggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZSB4LCBkb3VibGUgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihkb3VibGU0IHgsIGRvdWJsZTQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYgeCwgaGFsZiB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihoYWxmNCB4LCBoYWxmNCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgY29tcG9uZW50LXdpc2UgY29tcGFyZSBvZiB4ID49IHkuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmludDMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGZsb2F0OCB4LCBmbG9hdDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChkb3VibGU4IHgsIGRvdWJsZTggeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChoYWxmMiB4LCBoYWxmMiB5KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChoYWxmOCB4LCBoYWxmOCB5KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgY29tcG9uZW50LXdpc2UgY29tcGFyZSBvZiB4IDwgeS4KICovCmludCBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc2xlc3MoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzbGVzcyhkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzbGVzcyhoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb21wb25lbnQtd2lzZSBjb21wYXJlIG9mIHggPD0geS4KICovCmludCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGZsb2F0IHgsIGZsb2F0IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChmbG9hdDQgeCwgZmxvYXQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChkb3VibGUgeCwgZG91YmxlIHkpOwpsb25nMiBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChoYWxmIHgsIGhhbGYgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoaGFsZjQgeCwgaGFsZjQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb21wb25lbnQtd2lzZSBjb21wYXJlIG9mCiAqICh4IDwgeSkgfHwgKHggPiB5KSAuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGZsb2F0IHgsIGZsb2F0IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDQgeCwgZmxvYXQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihkb3VibGUgeCwgZG91YmxlIHkpOwpsb25nMiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihoYWxmIHgsIGhhbGYgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjQgeCwgaGFsZjQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgZmluaXRlIHZhbHVlLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQyKTsKaW50MyBfX292bGQgX19jbmZuIGlzZmluaXRlKGZsb2F0Myk7CmludDQgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShmbG9hdDQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQ4KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzZmluaXRlKGRvdWJsZSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlMik7CmxvbmczIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlMyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlNCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlOCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGlzZmluaXRlKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzZmluaXRlKGhhbGYpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmMik7CnNob3J0MyBfX292bGQgX19jbmZuIGlzZmluaXRlKGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoaGFsZjQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmOCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFRlc3QgZm9yIGluZmluaXR5IHZhbHVlICgrdmUgb3IgLXZlKSAuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2luZihmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc2luZihmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNpbmYoZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzaW5mKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc2luZihmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzaW5mKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNpbmYoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2luZihkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNpbmYoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNpbmYoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzaW5mKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNpbmYoaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc2luZihoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzaW5mKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzaW5mKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgYSBOYU4uCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc25hbihmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc25hbihmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNuYW4oZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzbmFuKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc25hbihmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbmFuKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNuYW4oZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25hbihkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNuYW4oZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNuYW4oaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbmFuKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNuYW4oaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25hbihoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbmFuKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzbmFuKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgYSBub3JtYWwgdmFsdWUuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzbm9ybWFsKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25vcm1hbChoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBpZiBhcmd1bWVudHMgYXJlIG9yZGVyZWQuIGlzb3JkZXJlZCgpIHRha2VzCiAqIGFyZ3VtZW50cyB4IGFuZCB5LCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0CiAqIGlzZXF1YWwoeCwgeCkgJiYgaXNlcXVhbCh5LCB5KS4KICovCmludCBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzb3JkZXJlZChkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzb3JkZXJlZChoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBUZXN0IGlmIGFyZ3VtZW50cyBhcmUgdW5vcmRlcmVkLiBpc3Vub3JkZXJlZCgpCiAqIHRha2VzIGFyZ3VtZW50cyB4IGFuZCB5LCByZXR1cm5pbmcgbm9uLXplcm8gaWYgeCBvciB5CiAqIGlzIE5hTiwgYW5kIHplcm8gb3RoZXJ3aXNlLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZmxvYXQgeCwgZmxvYXQgeSk7CmludDIgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmludDggX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGRvdWJsZSB4LCBkb3VibGUgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChkb3VibGU0IHgsIGRvdWJsZTQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGhhbGYgeCwgaGFsZiB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChoYWxmNCB4LCBoYWxmNCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFRlc3QgZm9yIHNpZ24gYml0LiBUaGUgc2NhbGFyIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uCiAqIHJldHVybnMgYSAxIGlmIHRoZSBzaWduIGJpdCBpbiB0aGUgZmxvYXQgaXMgc2V0IGVsc2UgcmV0dXJucwogKiAwLiBUaGUgdmVjdG9yIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlCiAqIGZvbGxvd2luZyBmb3IgZWFjaCBjb21wb25lbnQgaW4gZmxvYXRuOiBhIC0xIGlmIHRoZQogKiBzaWduIGJpdCBpbiB0aGUgZmxvYXQgaXMgc2V0IGVsc2UgcmV0dXJucyAwLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0Mik7CmludDMgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0Myk7CmludDQgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0OCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIHNpZ25iaXQoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTIpOwpsb25nMyBfX292bGQgX19jbmZuIHNpZ25iaXQoZG91YmxlMyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZjIpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBzaWduYml0KGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZjgpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgMSBpZiB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gYW55IGNvbXBvbmVudAogKiBvZiB4IGlzIHNldDsgb3RoZXJ3aXNlIHJldHVybnMgMC4KICovCmludCBfX292bGQgX19jbmZuIGFueShjaGFyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoY2hhcjIgeCk7CmludCBfX292bGQgX19jbmZuIGFueShjaGFyMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGNoYXI0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoY2hhcjggeCk7CmludCBfX292bGQgX19jbmZuIGFueShjaGFyMTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShzaG9ydCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0NCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0OCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoaW50MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGludDQgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQ4IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoaW50MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkobG9uZzIgeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGxvbmc0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkobG9uZzggeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nMTYgeCk7CgovKioKICogUmV0dXJucyAxIGlmIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBpbiBhbGwgY29tcG9uZW50cwogKiBvZiB4IGlzIHNldDsgb3RoZXJ3aXNlIHJldHVybnMgMC4KICovCmludCBfX292bGQgX19jbmZuIGFsbChjaGFyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoY2hhcjIgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChjaGFyMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGNoYXI0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoY2hhcjggeCk7CmludCBfX292bGQgX19jbmZuIGFsbChjaGFyMTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChzaG9ydCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0NCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0OCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoaW50MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGludDQgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQ4IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoaW50MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwobG9uZzIgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGxvbmc0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwobG9uZzggeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nMTYgeCk7CgovKioKICogRWFjaCBiaXQgb2YgdGhlIHJlc3VsdCBpcyB0aGUgY29ycmVzcG9uZGluZyBiaXQgb2YgYSBpZgogKiB0aGUgY29ycmVzcG9uZGluZyBiaXQgb2YgYyBpcyAwLiBPdGhlcndpc2UgaXQgaXMgdGhlCiAqIGNvcnJlc3BvbmRpbmcgYml0IG9mIGIuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGNoYXIgYSwgY2hhciBiLCBjaGFyIGMpOwp1Y2hhciBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhciBhLCB1Y2hhciBiLCB1Y2hhciBjKTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjIgYSwgY2hhcjIgYiwgY2hhcjIgYyk7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjIgYSwgdWNoYXIyIGIsIHVjaGFyMiBjKTsKY2hhcjMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjMgYSwgY2hhcjMgYiwgY2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjQgYSwgY2hhcjQgYiwgY2hhcjQgYyk7CnVjaGFyNCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjQgYSwgdWNoYXI0IGIsIHVjaGFyNCBjKTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjggYSwgY2hhcjggYiwgY2hhcjggYyk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjggYSwgdWNoYXI4IGIsIHVjaGFyOCBjKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGNoYXIxNiBhLCBjaGFyMTYgYiwgY2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwpzaG9ydCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChzaG9ydCBhLCBzaG9ydCBiLCBzaG9ydCBjKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydCBhLCB1c2hvcnQgYiwgdXNob3J0IGMpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQyIGEsIHNob3J0MiBiLCBzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodXNob3J0MiBhLCB1c2hvcnQyIGIsIHVzaG9ydDIgYyk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdChzaG9ydDMgYSwgc2hvcnQzIGIsIHNob3J0MyBjKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1c2hvcnQzIGEsIHVzaG9ydDMgYiwgdXNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHNob3J0NCBhLCBzaG9ydDQgYiwgc2hvcnQ0IGMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydDQgYSwgdXNob3J0NCBiLCB1c2hvcnQ0IGMpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQ4IGEsIHNob3J0OCBiLCBzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodXNob3J0OCBhLCB1c2hvcnQ4IGIsIHVzaG9ydDggYyk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQxNiBhLCBzaG9ydDE2IGIsIHNob3J0MTYgYyk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydDE2IGEsIHVzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwppbnQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50IGEsIGludCBiLCBpbnQgYyk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGludDMgYSwgaW50MyBiLCBpbnQzIGMpOwp1aW50MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKaW50NCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChpbnQ0IGEsIGludDQgYiwgaW50NCBjKTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwppbnQxNiBfX292bGQgX19jbmZuIGJpdHNlbGVjdChpbnQxNiBhLCBpbnQxNiBiLCBpbnQxNiBjKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwpsb25nIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGxvbmcgYSwgbG9uZyBiLCBsb25nIGMpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZyBhLCB1bG9uZyBiLCB1bG9uZyBjKTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzIgYSwgbG9uZzIgYiwgbG9uZzIgYyk7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzIgYSwgdWxvbmcyIGIsIHVsb25nMiBjKTsKbG9uZzMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzMgYSwgbG9uZzMgYiwgbG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzQgYSwgbG9uZzQgYiwgbG9uZzQgYyk7CnVsb25nNCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzQgYSwgdWxvbmc0IGIsIHVsb25nNCBjKTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzggYSwgbG9uZzggYiwgbG9uZzggYyk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzggYSwgdWxvbmc4IGIsIHVsb25nOCBjKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGxvbmcxNiBhLCBsb25nMTYgYiwgbG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwpmbG9hdCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0MiBhLCBmbG9hdDIgYiwgZmxvYXQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCBmbG9hdDMgYyk7CmZsb2F0NCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChmbG9hdDQgYSwgZmxvYXQ0IGIsIGZsb2F0NCBjKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0OCBhLCBmbG9hdDggYiwgZmxvYXQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBmbG9hdDE2IGMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTIgYSwgZG91YmxlMiBiLCBkb3VibGUyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTMgYSwgZG91YmxlMyBiLCBkb3VibGUzIGMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTQgYSwgZG91YmxlNCBiLCBkb3VibGU0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTggYSwgZG91YmxlOCBiLCBkb3VibGU4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGJpdHNlbGVjdChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBkb3VibGUxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZiBhLCBoYWxmIGIsIGhhbGYgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGhhbGYyIGEsIGhhbGYyIGIsIGhhbGYyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdChoYWxmMyBhLCBoYWxmMyBiLCBoYWxmMyBjKTsKaGFsZjQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZjQgYSwgaGFsZjQgYiwgaGFsZjQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGhhbGY4IGEsIGhhbGY4IGIsIGhhbGY4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZjE2IGEsIGhhbGYxNiBiLCBoYWxmMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRm9yIGVhY2ggY29tcG9uZW50IG9mIGEgdmVjdG9yIHR5cGUsCiAqIHJlc3VsdFtpXSA9IGlmIE1TQiBvZiBjW2ldIGlzIHNldCA/IGJbaV0gOiBhW2ldLgogKiBGb3IgYSBzY2FsYXIgdHlwZSwgcmVzdWx0ID0gYyA/IGIgOiBhLgogKiBiIGFuZCBhIG11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLgogKiBjIG11c3QgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYW5kIGJpdHMgYXMgYS4KICovCmNoYXIgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhciBhLCBjaGFyIGIsIGNoYXIgYyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyIGEsIHVjaGFyIGIsIGNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIyIGEsIGNoYXIyIGIsIGNoYXIyIGMpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXIyIGEsIHVjaGFyMiBiLCBjaGFyMiBjKTsKY2hhcjMgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjMgYSwgY2hhcjMgYiwgY2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIGNoYXIzIGMpOwpjaGFyNCBfX292bGQgX19jbmZuIHNlbGVjdChjaGFyNCBhLCBjaGFyNCBiLCBjaGFyNCBjKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgY2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXI4IGEsIGNoYXI4IGIsIGNoYXI4IGMpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXI4IGEsIHVjaGFyOCBiLCBjaGFyOCBjKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIxNiBhLCBjaGFyMTYgYiwgY2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCBjaGFyMTYgYyk7CgpzaG9ydCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydCBhLCBzaG9ydCBiLCBzaG9ydCBjKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVzaG9ydCBhLCB1c2hvcnQgYiwgc2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDIgYSwgc2hvcnQyIGIsIHNob3J0MiBjKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQyIGEsIHVzaG9ydDIgYiwgc2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQzIGEsIHNob3J0MyBiLCBzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MyBhLCB1c2hvcnQzIGIsIHNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHNob3J0NCBhLCBzaG9ydDQgYiwgc2hvcnQ0IGMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVzaG9ydDQgYSwgdXNob3J0NCBiLCBzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDggYSwgc2hvcnQ4IGIsIHNob3J0OCBjKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQ4IGEsIHVzaG9ydDggYiwgc2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHNob3J0MTYgYSwgc2hvcnQxNiBiLCBzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCBzaG9ydDE2IGMpOwoKaW50IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQgYSwgdWludCBiLCBpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQyIGEsIHVpbnQyIGIsIGludDIgYyk7CmludDMgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MyBhLCBpbnQzIGIsIGludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQzIGEsIHVpbnQzIGIsIGludDMgYyk7CmludDQgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQ0IGEsIHVpbnQ0IGIsIGludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQ4IGEsIHVpbnQ4IGIsIGludDggYyk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludDE2IGEsIGludDE2IGIsIGludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDE2IGEsIHVpbnQxNiBiLCBpbnQxNiBjKTsKZmxvYXQgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQgYSwgZmxvYXQgYiwgaW50IGMpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQyIGEsIGZsb2F0MiBiLCBpbnQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCBpbnQzIGMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQ0IGEsIGZsb2F0NCBiLCBpbnQ0IGMpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQ4IGEsIGZsb2F0OCBiLCBpbnQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBpbnQxNiBjKTsKCmxvbmcgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZyBhLCBsb25nIGIsIGxvbmcgYyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nIGEsIHVsb25nIGIsIGxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcyIGEsIGxvbmcyIGIsIGxvbmcyIGMpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmcyIGEsIHVsb25nMiBiLCBsb25nMiBjKTsKbG9uZzMgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzMgYSwgbG9uZzMgYiwgbG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIGxvbmczIGMpOwpsb25nNCBfX292bGQgX19jbmZuIHNlbGVjdChsb25nNCBhLCBsb25nNCBiLCBsb25nNCBjKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nNCBhLCB1bG9uZzQgYiwgbG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmc4IGEsIGxvbmc4IGIsIGxvbmc4IGMpOwp1bG9uZzggX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmc4IGEsIHVsb25nOCBiLCBsb25nOCBjKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcxNiBhLCBsb25nMTYgYiwgbG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCBsb25nMTYgYyk7CgpjaGFyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIgYSwgY2hhciBiLCB1Y2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXIgYSwgdWNoYXIgYiwgdWNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIyIGEsIGNoYXIyIGIsIHVjaGFyMiBjKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMiBhLCB1Y2hhcjIgYiwgdWNoYXIyIGMpOwpjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdChjaGFyMyBhLCBjaGFyMyBiLCB1Y2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjQgYSwgY2hhcjQgYiwgdWNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXI0IGEsIHVjaGFyNCBiLCB1Y2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXI4IGEsIGNoYXI4IGIsIHVjaGFyOCBjKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyOCBhLCB1Y2hhcjggYiwgdWNoYXI4IGMpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjE2IGEsIGNoYXIxNiBiLCB1Y2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwoKc2hvcnQgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQgYSwgc2hvcnQgYiwgdXNob3J0IGMpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0IGEsIHVzaG9ydCBiLCB1c2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDIgYSwgc2hvcnQyIGIsIHVzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MiBhLCB1c2hvcnQyIGIsIHVzaG9ydDIgYyk7CnNob3J0MyBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDMgYSwgc2hvcnQzIGIsIHVzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MyBhLCB1c2hvcnQzIGIsIHVzaG9ydDMgYyk7CnNob3J0NCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDQgYSwgc2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0NCBhLCB1c2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDggYSwgc2hvcnQ4IGIsIHVzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0OCBhLCB1c2hvcnQ4IGIsIHVzaG9ydDggYyk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQxNiBhLCBzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCB1c2hvcnQxNiBjKTsKCmludCBfX292bGQgX19jbmZuIHNlbGVjdChpbnQgYSwgaW50IGIsIHVpbnQgYyk7CnVpbnQgX19vdmxkIF9fY25mbiBzZWxlY3QodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MiBhLCBpbnQyIGIsIHVpbnQyIGMpOwp1aW50MiBfX292bGQgX19jbmZuIHNlbGVjdCh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIHNlbGVjdChpbnQzIGEsIGludDMgYiwgdWludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludDQgYSwgaW50NCBiLCB1aW50NCBjKTsKdWludDQgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50OCBfX292bGQgX19jbmZuIHNlbGVjdCh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MTYgYSwgaW50MTYgYiwgdWludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0IGEsIGZsb2F0IGIsIHVpbnQgYyk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNlbGVjdChmbG9hdDIgYSwgZmxvYXQyIGIsIHVpbnQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCB1aW50MyBjKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0NCBhLCBmbG9hdDQgYiwgdWludDQgYyk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNlbGVjdChmbG9hdDggYSwgZmxvYXQ4IGIsIHVpbnQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCB1aW50MTYgYyk7Cgpsb25nIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcgYSwgbG9uZyBiLCB1bG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmcgYSwgdWxvbmcgYiwgdWxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcyIGEsIGxvbmcyIGIsIHVsb25nMiBjKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMiBhLCB1bG9uZzIgYiwgdWxvbmcyIGMpOwpsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdChsb25nMyBhLCBsb25nMyBiLCB1bG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzQgYSwgbG9uZzQgYiwgdWxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmc0IGEsIHVsb25nNCBiLCB1bG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmc4IGEsIGxvbmc4IGIsIHVsb25nOCBjKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nOCBhLCB1bG9uZzggYiwgdWxvbmc4IGMpOwpsb25nMTYgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzE2IGEsIGxvbmcxNiBiLCB1bG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUgYSwgZG91YmxlIGIsIGxvbmcgYyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlMiBhLCBkb3VibGUyIGIsIGxvbmcyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTMgYSwgZG91YmxlMyBiLCBsb25nMyBjKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGU0IGEsIGRvdWJsZTQgYiwgbG9uZzQgYyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlOCBhLCBkb3VibGU4IGIsIGxvbmc4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBsb25nMTYgYyk7CmRvdWJsZSBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUgYSwgZG91YmxlIGIsIHVsb25nIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTIgYSwgZG91YmxlMiBiLCB1bG9uZzIgYyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlMyBhLCBkb3VibGUzIGIsIHVsb25nMyBjKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGU0IGEsIGRvdWJsZTQgYiwgdWxvbmc0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTggYSwgZG91YmxlOCBiLCB1bG9uZzggYyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTE2IGEsIGRvdWJsZTE2IGIsIHVsb25nMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYgYSwgaGFsZiBiLCBzaG9ydCBjKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjIgYSwgaGFsZjIgYiwgc2hvcnQyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIHNlbGVjdChoYWxmMyBhLCBoYWxmMyBiLCBzaG9ydDMgYyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY0IGEsIGhhbGY0IGIsIHNob3J0NCBjKTsKaGFsZjggX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjggYSwgaGFsZjggYiwgc2hvcnQ4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjE2IGEsIGhhbGYxNiBiLCBzaG9ydDE2IGMpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYgYSwgaGFsZiBiLCB1c2hvcnQgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYyIGEsIGhhbGYyIGIsIHVzaG9ydDIgYyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYzIGEsIGhhbGYzIGIsIHVzaG9ydDMgYyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY0IGEsIGhhbGY0IGIsIHVzaG9ydDQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY4IGEsIGhhbGY4IGIsIHVzaG9ydDggYyk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNlbGVjdChoYWxmMTYgYSwgaGFsZjE2IGIsIHVzaG9ydDE2IGMpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLy8gT3BlbkNMIHYxLjEgczYuMTEuNywgdjEuMiBzNi4xMi43LCB2Mi4wIHM2LjEzLjcgLSBWZWN0b3IgRGF0YSBMb2FkIGFuZCBTdG9yZSBGdW5jdGlvbnMKLy8gT3BlbkNMIGV4dGVuc2lvbnMgdjEuMSBzOS42LjYsIHYxLjIgczkuNS42LCB2Mi4wIHM5LjQuNiAtIFZlY3RvciBEYXRhIExvYWQgYW5kIFN0b3JlIEZ1bmN0aW9ucyBmb3IgSGFsZiBUeXBlCi8qKgogKiBVc2UgZ2VuZXJpYyB0eXBlIGdlbnR5cGUgdG8gaW5kaWNhdGUgdGhlIGJ1aWx0LWluIGRhdGEgdHlwZXMKICogY2hhciwgdWNoYXIsIHNob3J0LCB1c2hvcnQsIGludCwgdWludCwgbG9uZywgdWxvbmcsIGZsb2F0LAogKiBkb3VibGUgb3IgaGFsZi4KICoKICogdmxvYWRuIHJldHVybiBzaXplb2YgKGdlbnR5cGVuKSBieXRlcyBvZiBkYXRhIHJlYWQgZnJvbSBhZGRyZXNzIChwICsgKG9mZnNldCAqIG4pKS4KICoKICogdnN0b3JlbiB3cml0ZSBzaXplb2YgKGdlbnR5cGVuKSBieXRlcyBnaXZlbiBieSBkYXRhIHRvIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogbikpLgogKgogKiBUaGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiBuKSkgbXVzdCBiZQogKiA4LWJpdCBhbGlnbmVkIGlmIGdlbnR5cGUgaXMgY2hhciwgdWNoYXI7CiAqIDE2LWJpdCBhbGlnbmVkIGlmIGdlbnR5cGUgaXMgc2hvcnQsIHVzaG9ydCwgaGFsZjsKICogMzItYml0IGFsaWduZWQgaWYgZ2VudHlwZSBpcyBpbnQsIHVpbnQsIGZsb2F0OwogKiA2NC1iaXQgYWxpZ25lZCBpZiBnZW50eXBlIGlzIGxvbmcsIHVsb25nLCBkb3VibGUuCiAqLwoKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBjaGFyICpwKTsKdWNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1c2hvcnQgKnApOwppbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBsb25nICpwKTsKdWxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgY2hhciAqcCk7CnVjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdXNob3J0ICpwKTsKaW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgbG9uZyAqcCk7CnVsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZmxvYXQgKnApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIHZsb2FkKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmhhbGYyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKaGFsZjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwpoYWxmNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmhhbGY4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKaGFsZjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgdWNoYXIgKnApOwpzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgaW50ICpwKTsKdWludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgdWxvbmcgKnApOwpmbG9hdDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgY2hhciAqcCk7CnVjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IHVjaGFyICpwKTsKc2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3Qgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgdXNob3J0ICpwKTsKaW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGludCAqcCk7CnVpbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgbG9uZyAqcCk7CnVsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IHVsb25nICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGNoYXIgKnApOwp1Y2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1Y2hhciAqcCk7CnNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHVzaG9ydCAqcCk7CmludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBpbnQgKnApOwp1aW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGxvbmcgKnApOwp1bG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1bG9uZyAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgdWNoYXIgKnApOwpzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgaW50ICpwKTsKdWludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgdWxvbmcgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1Y2hhciAqcCk7CnNob3J0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3Qgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBpbnQgKnApOwp1aW50MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1bG9uZyAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgZmxvYXQgKnApOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZTIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwpkb3VibGUzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgZG91YmxlICpwKTsKZG91YmxlNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGRvdWJsZSAqcCk7CmRvdWJsZTggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwpkb3VibGUxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIHZsb2FkKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgc2hvcnQgKnApOwp1c2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50MiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWludCAqcCk7CmxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZmxvYXQgKnApOwpjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGNoYXIgKnApOwp1Y2hhcjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpwKTsKdXNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCAqcCk7CmludDMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnApOwpsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGxvbmcgKnApOwp1bG9uZzMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpwKTsKY2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBjaGFyICpwKTsKdWNoYXI0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBzaG9ydCAqcCk7CnVzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQgKnApOwppbnQ0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1aW50ICpwKTsKbG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBsb25nICpwKTsKdWxvbmc0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBmbG9hdCAqcCk7CmNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgc2hvcnQgKnApOwp1c2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50OCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWludCAqcCk7Cmxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZmxvYXQgKnApOwpjaGFyMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpwKTsKdXNob3J0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnApOwpsb25nMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpwKTsKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBjaGFyICpwKTsKdWNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1c2hvcnQgKnApOwppbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBsb25nICpwKTsKdWxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgY2hhciAqcCk7CnVjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdXNob3J0ICpwKTsKaW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgbG9uZyAqcCk7CnVsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZmxvYXQgKnApOwpjaGFyMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHNob3J0ICpwKTsKdXNob3J0MiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVpbnQgKnApOwpsb25nMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGZsb2F0ICpwKTsKY2hhcjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgY2hhciAqcCk7CnVjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnVzaG9ydDMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdXNob3J0ICpwKTsKaW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1aW50ICpwKTsKbG9uZzMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgbG9uZyAqcCk7CnVsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBmbG9hdCAqcCk7CmNoYXI0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGNoYXIgKnApOwp1Y2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgc2hvcnQgKnApOwp1c2hvcnQ0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVzaG9ydCAqcCk7CmludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWludCAqcCk7Cmxvbmc0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGxvbmcgKnApOwp1bG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZmxvYXQgKnApOwpjaGFyOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHNob3J0ICpwKTsKdXNob3J0OCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVpbnQgKnApOwpsb25nOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGZsb2F0ICpwKTsKY2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnVzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1aW50ICpwKTsKbG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBmbG9hdCAqcCk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUgKnApOwpkb3VibGU0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZG91YmxlICpwKTsKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBkb3VibGUgKnApOwpkb3VibGUzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGRvdWJsZSAqcCk7CmRvdWJsZTQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBkb3VibGUgKnApOwpkb3VibGUxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZG91YmxlICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmhhbGYzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmhhbGYxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmhhbGYyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpoYWxmMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmhhbGY4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpoYWxmMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIHZzdG9yZTIoY2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihpbnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWludDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIobG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoc2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1c2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaW50MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVpbnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1Y2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodXNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGludDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1aW50NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1bG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoY2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChpbnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWludDggZGF0YSwgc2l6ZV90IG9mZnNldCwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgobG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihzaG9ydDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodXNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWludDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGZsb2F0ICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKdm9pZCBfX292bGQgdnN0b3JlKGhhbGYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaGFsZjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaGFsZjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoaGFsZjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaGFsZjggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGhhbGYxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKdm9pZCBfX292bGQgdnN0b3JlMihjaGFyMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1Y2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodXNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGludDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihsb25nMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1bG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoY2hhcjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhpbnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMobG9uZzMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGNoYXI0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1c2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoaW50NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGxvbmc0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChjaGFyOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1Y2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodXNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGludDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChsb25nOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1bG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGNoYXIxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWNoYXIxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1c2hvcnQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihpbnQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGxvbmcxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWxvbmcxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1c2hvcnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihpbnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModXNob3J0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaW50MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoY2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1Y2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVzaG9ydDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGludDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQobG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1bG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1c2hvcnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChpbnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoY2hhcjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVzaG9ydDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYobG9uZzE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoY2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVjaGFyMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIobG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVsb25nMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1Y2hhcjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1c2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1bG9uZzMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodWNoYXI0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodXNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodWxvbmc0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoY2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVjaGFyOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgobG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVsb25nOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1Y2hhcjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodXNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGludDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1bG9uZzE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGZsb2F0ICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGRvdWJsZSAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihoYWxmMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhoYWxmMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChoYWxmOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaGFsZjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGhhbGYyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaGFsZjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGhhbGY4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGhhbGYxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaGFsZjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGhhbGYzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaGFsZjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihoYWxmMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFJlYWQgc2l6ZW9mIChoYWxmKSBieXRlcyBvZiBkYXRhIGZyb20gYWRkcmVzcwogKiAocCArIG9mZnNldCkuIFRoZSBkYXRhIHJlYWQgaXMgaW50ZXJwcmV0ZWQgYXMgYQogKiBoYWxmIHZhbHVlLiBUaGUgaGFsZiB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYQogKiBmbG9hdCB2YWx1ZSBhbmQgdGhlIGZsb2F0IHZhbHVlIGlzIHJldHVybmVkLgogKiBUaGUgcmVhZCBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgb2Zmc2V0KQogKiBtdXN0IGJlIDE2LWJpdCBhbGlnbmVkLgogKi8KZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCB2bG9hZF9oYWxmKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwojZWxzZQpmbG9hdCBfX292bGQgdmxvYWRfaGFsZihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFJlYWQgc2l6ZW9mIChoYWxmbikgYnl0ZXMgb2YgZGF0YSBmcm9tIGFkZHJlc3MKICogKHAgKyAob2Zmc2V0ICogbikpLiBUaGUgZGF0YSByZWFkIGlzIGludGVycHJldGVkCiAqIGFzIGEgaGFsZm4gdmFsdWUuIFRoZSBoYWxmbiB2YWx1ZSByZWFkIGlzCiAqIGNvbnZlcnRlZCB0byBhIGZsb2F0biB2YWx1ZSBhbmQgdGhlIGZsb2F0bgogKiB2YWx1ZSBpcyByZXR1cm5lZC4gVGhlIHJlYWQgYWRkcmVzcyBjb21wdXRlZAogKiBhcyAocCArIChvZmZzZXQgKiBuKSkgbXVzdCBiZSAxNi1iaXQgYWxpZ25lZC4KICovCmZsb2F0MiBfX292bGQgdmxvYWRfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZF9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdDIgX19vdmxkIHZsb2FkX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZF9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbHNlCmZsb2F0MiBfX292bGQgdmxvYWRfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWRfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZF9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWRfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZF9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZF9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZF9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZF9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovKioKICogVGhlIGZsb2F0IHZhbHVlIGdpdmVuIGJ5IGRhdGEgaXMgZmlyc3QKICogY29udmVydGVkIHRvIGEgaGFsZiB2YWx1ZSB1c2luZyB0aGUgYXBwcm9wcmlhdGUKICogcm91bmRpbmcgbW9kZS4gVGhlIGhhbGYgdmFsdWUgaXMgdGhlbiB3cml0dGVuCiAqIHRvIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyBvZmZzZXQpLiBUaGUKICogYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIG9mZnNldCkgbXVzdCBiZSAxNi0KICogYml0IGFsaWduZWQuCiAqIHZzdG9yZV9oYWxmIHVzZSB0aGUgY3VycmVudCByb3VuZGluZyBtb2RlLgogKiBUaGUgZGVmYXVsdCBjdXJyZW50IHJvdW5kaW5nIG1vZGUgaXMgcm91bmQgdG8KICogbmVhcmVzdCBldmVuLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNlbHNlCnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydHooZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydHooZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFRoZSBmbG9hdG4gdmFsdWUgZ2l2ZW4gYnkgZGF0YSBpcyBjb252ZXJ0ZWQgdG8KICogYSBoYWxmbiB2YWx1ZSB1c2luZyB0aGUgYXBwcm9wcmlhdGUgcm91bmRpbmcKICogbW9kZS4gVGhlIGhhbGZuIHZhbHVlIGlzIHRoZW4gd3JpdHRlbiB0bwogKiBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgKG9mZnNldCAqIG4pKS4gVGhlCiAqIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogbikpIG11c3QgYmUKICogMTYtYml0IGFsaWduZWQuCiAqIHZzdG9yZV9oYWxmbiB1c2VzIHRoZSBjdXJyZW50IHJvdW5kaW5nIG1vZGUuCiAqIFRoZSBkZWZhdWx0IGN1cnJlbnQgcm91bmRpbmcgbW9kZSBpcyByb3VuZCB0bwogKiBuZWFyZXN0IGV2ZW4uCiAqLwojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydGUoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0eihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnR6KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0eihmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHAoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHAoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydG4oZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZWxzZQp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0ZShkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydGUoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHAoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHAoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0bihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydG4oZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0ZShkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0ZShkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnR6KGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0eihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0bihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0bihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0eihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0eihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRwKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0cChkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBGb3IgbiA9IDEsIDIsIDQsIDggYW5kIDE2IHJlYWQgc2l6ZW9mIChoYWxmbikKICogYnl0ZXMgb2YgZGF0YSBmcm9tIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogbikpLgogKiBUaGUgZGF0YSByZWFkIGlzIGludGVycHJldGVkIGFzIGEgaGFsZm4gdmFsdWUuCiAqIFRoZSBoYWxmbiB2YWx1ZSByZWFkIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0bgogKiB2YWx1ZSBhbmQgdGhlIGZsb2F0biB2YWx1ZSBpcyByZXR1cm5lZC4KICogVGhlIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogbikpCiAqIG11c3QgYmUgYWxpZ25lZCB0byBzaXplb2YgKGhhbGZuKSBieXRlcy4KICogRm9yIG4gPSAzLCB2bG9hZGFfaGFsZjMgcmVhZHMgYSBoYWxmMyBmcm9tCiAqIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogNCkpIGFuZCByZXR1cm5zIGEgZmxvYXQzLgogKiBUaGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiA0KSkKICogbXVzdCBiZSBhbGlnbmVkIHRvIHNpemVvZiAoaGFsZikgKiA0IGJ5dGVzLgogKi8KZmxvYXQyIF9fb3ZsZCB2bG9hZGFfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZGFfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQ0IF9fb3ZsZCB2bG9hZGFfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZGFfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRhX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKZmxvYXQyIF9fb3ZsZCB2bG9hZGFfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRhX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZGFfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkYV9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbHNlCmZsb2F0MiBfX292bGQgdmxvYWRhX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkYV9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQ0IF9fb3ZsZCB2bG9hZGFfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRhX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZGFfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDIgX19vdmxkIHZsb2FkYV9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkYV9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkYV9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZGFfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmZsb2F0MiBfX292bGQgdmxvYWRhX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZGFfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRhX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRhX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovKioKICogVGhlIGZsb2F0biB2YWx1ZSBnaXZlbiBieSBkYXRhIGlzIGNvbnZlcnRlZCB0bwogKiBhIGhhbGZuIHZhbHVlIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSByb3VuZGluZwogKiBtb2RlLgogKiBGb3IgbiA9IDEsIDIsIDQsIDggYW5kIDE2LCB0aGUgaGFsZm4gdmFsdWUgaXMKICogd3JpdHRlbiB0byB0aGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQKICogKiBuKSkuIFRoZSBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgKG9mZnNldCAqCiAqIG4pKSBtdXN0IGJlIGFsaWduZWQgdG8gc2l6ZW9mIChoYWxmbikgYnl0ZXMuCiAqIEZvciBuID0gMywgdGhlIGhhbGYzIHZhbHVlIGlzIHdyaXR0ZW4gdG8gdGhlCiAqIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogNCkpLiBUaGUKICogYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiA0KSkgbXVzdCBiZQogKiBhbGlnbmVkIHRvIHNpemVvZiAoaGFsZikgKiA0IGJ5dGVzLgogKiB2c3RvcmVhX2hhbGZuIHVzZXMgdGhlIGN1cnJlbnQgcm91bmRpbmcKICogbW9kZS4gVGhlIGRlZmF1bHQgY3VycmVudCByb3VuZGluZyBtb2RlIGlzCiAqIHJvdW5kIHRvIG5lYXJlc3QgZXZlbi4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTYoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydGUoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRlKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0eihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0eihmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHAoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0cChmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHAoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHAoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbHNlCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHooZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHAoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHAoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0ZShkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0ZShkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0cChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0bihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0bihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0ZShkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0eihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0eihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLy8gT3BlbkNMIHYxLjEgczYuMTEuOCwgdjEuMiBzNi4xMi44LCB2Mi4wIHM2LjEzLjggLSBTeW5jaHJvbml6YXRpb24gRnVuY3Rpb25zCgovKioKICogQWxsIHdvcmstaXRlbXMgaW4gYSB3b3JrLWdyb3VwIGV4ZWN1dGluZyB0aGUga2VybmVsCiAqIG9uIGEgcHJvY2Vzc29yIG11c3QgZXhlY3V0ZSB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbnkKICogYXJlIGFsbG93ZWQgdG8gY29udGludWUgZXhlY3V0aW9uIGJleW9uZCB0aGUgYmFycmllci4KICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluCiAqIGEgd29yay1ncm91cCBleGVjdXRpbmcgdGhlIGtlcm5lbC4KICogSWYgYmFycmllciBpcyBpbnNpZGUgYSBjb25kaXRpb25hbCBzdGF0ZW1lbnQsIHRoZW4gYWxsCiAqIHdvcmstaXRlbXMgbXVzdCBlbnRlciB0aGUgY29uZGl0aW9uYWwgaWYgYW55IHdvcmstaXRlbQogKiBlbnRlcnMgdGhlIGNvbmRpdGlvbmFsIHN0YXRlbWVudCBhbmQgZXhlY3V0ZXMgdGhlCiAqIGJhcnJpZXIuCiAqIElmIGJhcnJlciBpcyBpbnNpZGUgYSBsb29wLCBhbGwgd29yay1pdGVtcyBtdXN0IGV4ZWN1dGUKICogdGhlIGJhcnJpZXIgZm9yIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGJlZm9yZSBhbnkgYXJlCiAqIGFsbG93ZWQgdG8gY29udGludWUgZXhlY3V0aW9uIGJleW9uZCB0aGUgYmFycmllci4KICogVGhlIGJhcnJpZXIgZnVuY3Rpb24gYWxzbyBxdWV1ZXMgYSBtZW1vcnkgZmVuY2UKICogKHJlYWRzIGFuZCB3cml0ZXMpIHRvIGVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nIG9mCiAqIG1lbW9yeSBvcGVyYXRpb25zIHRvIGxvY2FsIG9yIGdsb2JhbCBtZW1vcnkuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeSBhZGRyZXNzIHNwYWNlCiAqIGFuZCBjYW4gYmUgc2V0IHRvIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlcy4KICogQ0xLX0xPQ0FMX01FTV9GRU5DRSAtIFRoZSBiYXJyaWVyIGZ1bmN0aW9uCiAqIHdpbGwgZWl0aGVyIGZsdXNoIGFueSB2YXJpYWJsZXMgc3RvcmVkIGluIGxvY2FsIG1lbW9yeQogKiBvciBxdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdCBvcmRlcmluZyBvZgogKiBtZW1vcnkgb3BlcmF0aW9ucyB0byBsb2NhbCBtZW1vcnkuCiAqIENMS19HTE9CQUxfTUVNX0ZFTkNFIC0gVGhlIGJhcnJpZXIgZnVuY3Rpb24KICogd2lsbCBxdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdCBvcmRlcmluZwogKiBvZiBtZW1vcnkgb3BlcmF0aW9ucyB0byBnbG9iYWwgbWVtb3J5LiBUaGlzIGNhbiBiZQogKiB1c2VmdWwgd2hlbiB3b3JrLWl0ZW1zLCBmb3IgZXhhbXBsZSwgd3JpdGUgdG8gYnVmZmVyIG9yCiAqIGltYWdlIG9iamVjdHMgYW5kIHRoZW4gd2FudCB0byByZWFkIHRoZSB1cGRhdGVkIGRhdGEuCiAqLwoKdm9pZCBfX292bGQgX19jb252IGJhcnJpZXIoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdm9pZCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2JhcnJpZXIoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS45LCB2MS4yIHM2LjEyLjkgLSBFeHBsaWNpdCBNZW1vcnkgRmVuY2UgRnVuY3Rpb25zCgovKioKICogT3JkZXJzIGxvYWRzIGFuZCBzdG9yZXMgb2YgYSB3b3JrLWl0ZW0KICogZXhlY3V0aW5nIGEga2VybmVsLiBUaGlzIG1lYW5zIHRoYXQgbG9hZHMKICogYW5kIHN0b3JlcyBwcmVjZWRpbmcgdGhlIG1lbV9mZW5jZSB3aWxsCiAqIGJlIGNvbW1pdHRlZCB0byBtZW1vcnkgYmVmb3JlIGFueSBsb2FkcwogKiBhbmQgc3RvcmVzIGZvbGxvd2luZyB0aGUgbWVtX2ZlbmNlLgogKiBUaGUgZmxhZ3MgYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBtZW1vcnkKICogYWRkcmVzcyBzcGFjZSBhbmQgY2FuIGJlIHNldCB0byBhCiAqIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbAogKiB2YWx1ZXM6CiAqIENMS19MT0NBTF9NRU1fRkVOQ0UKICogQ0xLX0dMT0JBTF9NRU1fRkVOQ0UuCiAqLwp2b2lkIF9fb3ZsZCBtZW1fZmVuY2UoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKCi8qKgogKiBSZWFkIG1lbW9yeSBiYXJyaWVyIHRoYXQgb3JkZXJzIG9ubHkKICogbG9hZHMuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeQogKiBhZGRyZXNzIHNwYWNlIGFuZCBjYW4gYmUgc2V0IHRvIGEKICogY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlczoKICogQ0xLX0xPQ0FMX01FTV9GRU5DRQogKiBDTEtfR0xPQkFMX01FTV9GRU5DRS4KICovCnZvaWQgX19vdmxkIHJlYWRfbWVtX2ZlbmNlKGNsX21lbV9mZW5jZV9mbGFncyBmbGFncyk7CgovKioKICogV3JpdGUgbWVtb3J5IGJhcnJpZXIgdGhhdCBvcmRlcnMgb25seQogKiBzdG9yZXMuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeQogKiBhZGRyZXNzIHNwYWNlIGFuZCBjYW4gYmUgc2V0IHRvIGEKICogY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlczoKICogQ0xLX0xPQ0FMX01FTV9GRU5DRQogKiBDTEtfR0xPQkFMX01FTV9GRU5DRS4KICovCnZvaWQgX19vdmxkIHdyaXRlX21lbV9mZW5jZShjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MpOwoKLy8gT3BlbkNMIHYyLjAgczYuMTMuOSAtIEFkZHJlc3MgU3BhY2UgUXVhbGlmaWVyIEZ1bmN0aW9ucwoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmNsX21lbV9mZW5jZV9mbGFncyBfX292bGQgZ2V0X2ZlbmNlKGNvbnN0IHZvaWQgKnB0cik7CmNsX21lbV9mZW5jZV9mbGFncyBfX292bGQgZ2V0X2ZlbmNlKHZvaWQgKnB0cik7CgovKioKICogQnVpbHRpbiBmdW5jdGlvbnMgdG9fZ2xvYmFsLCB0b19sb2NhbCwgYW5kIHRvX3ByaXZhdGUgbmVlZCB0byBiZSBkZWNsYXJlZCBhcyBDbGFuZyBidWlsdGluIGZ1bmN0aW9ucwogKiBhbmQgY2hlY2tlZCBpbiBTZW1hIHNpbmNlIHRoZXkgc2hvdWxkIGJlIGRlY2xhcmVkIGFzCiAqICAgYWRkciBnZW50eXBlKiB0b19hZGRyIChnZW50eXBlKik7CiAqIHdoZXJlIGdlbnR5cGUgaXMgYnVpbHRpbiB0eXBlIG9yIHVzZXIgZGVmaW5lZCB0eXBlLgogKi8KCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xMCwgdjEuMiBzNi4xMi4xMCwgdjIuMCBzNi4xMy4xMCAtIEFzeW5jIENvcGllcyBmcm9tIEdsb2JhbCB0byBMb2NhbCBNZW1vcnksIExvY2FsIHRvIEdsb2JhbCBNZW1vcnksIGFuZCBQcmVmZXRjaAoKLyoqCiAqIGV2ZW50X3QgYXN5bmNfd29ya19ncm91cF9jb3B5ICgKICogX19nbG9iYWwgZ2VudHlwZSAqZHN0LAogKiBjb25zdCBfX2xvY2FsIGdlbnR5cGUgKnNyYywKICogc2l6ZV90IG51bV9lbGVtZW50cywKICogZXZlbnRfdCBldmVudCkKICogUGVyZm9ybSBhbiBhc3luYyBjb3B5IG9mIG51bV9lbGVtZW50cwogKiBnZW50eXBlIGVsZW1lbnRzIGZyb20gc3JjIHRvIGRzdC4gVGhlIGFzeW5jCiAqIGNvcHkgaXMgcGVyZm9ybWVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29ya2dyb3VwCiAqIGFuZCB0aGlzIGJ1aWx0LWluIGZ1bmN0aW9uIG11c3QgdGhlcmVmb3JlCiAqIGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29ya2dyb3VwCiAqIGV4ZWN1dGluZyB0aGUga2VybmVsIHdpdGggdGhlIHNhbWUKICogYXJndW1lbnQgdmFsdWVzOyBvdGhlcndpc2UgdGhlIHJlc3VsdHMgYXJlCiAqIHVuZGVmaW5lZC4KICogUmV0dXJucyBhbiBldmVudCBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBieQogKiB3YWl0X2dyb3VwX2V2ZW50cyB0byB3YWl0IGZvciB0aGUgYXN5bmMgY29weQogKiB0byBmaW5pc2guIFRoZSBldmVudCBhcmd1bWVudCBjYW4gYWxzbyBiZSB1c2VkCiAqIHRvIGFzc29jaWF0ZSB0aGUgYXN5bmNfd29ya19ncm91cF9jb3B5IHdpdGgKICogYSBwcmV2aW91cyBhc3luYyBjb3B5IGFsbG93aW5nIGFuIGV2ZW50IHRvIGJlCiAqIHNoYXJlZCBieSBtdWx0aXBsZSBhc3luYyBjb3BpZXM7IG90aGVyd2lzZSBldmVudAogKiBzaG91bGQgYmUgemVyby4KICogSWYgZXZlbnQgYXJndW1lbnQgaXMgbm9uLXplcm8sIHRoZSBldmVudCBvYmplY3QKICogc3VwcGxpZWQgaW4gZXZlbnQgYXJndW1lbnQgd2lsbCBiZSByZXR1cm5lZC4KICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwZXJmb3JtIGFueSBpbXBsaWNpdAogKiBzeW5jaHJvbml6YXRpb24gb2Ygc291cmNlIGRhdGEgc3VjaCBhcyB1c2luZyBhCiAqIGJhcnJpZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNvcHkuCiAqLwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBjaGFyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBzaG9ydCAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdXNob3J0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWludCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBsb25nICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBmbG9hdCAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgY2hhcjIgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyMiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHNob3J0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVzaG9ydDIgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1aW50MiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgbG9uZzIgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nMiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGZsb2F0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGNoYXIzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1Y2hhcjMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBzaG9ydDMgKmRzdCwgY29uc3QgX19nbG9iYWwgc2hvcnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1c2hvcnQzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGludDMgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWludDMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWludDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGxvbmczICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1bG9uZzMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBmbG9hdDMgKmRzdCwgY29uc3QgX19nbG9iYWwgZmxvYXQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBjaGFyNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWNoYXI0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgc2hvcnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdXNob3J0NCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBpbnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVpbnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBsb25nNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWxvbmc0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZmxvYXQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgY2hhcjggKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyOCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHNob3J0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVzaG9ydDggKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1aW50OCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgbG9uZzggKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nOCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGZsb2F0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGNoYXIxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyMTYgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgc2hvcnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1c2hvcnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50MTYgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVpbnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGxvbmcxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nMTYgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZmxvYXQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgY2hhciAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhciAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgc2hvcnQgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVzaG9ydCAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludCAqZHN0LCBjb25zdCBfX2xvY2FsIGludCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVpbnQgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgbG9uZyAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZyAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZmxvYXQgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGNoYXIyICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjIgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBzaG9ydDIgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1c2hvcnQyICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDIgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWludDIgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGxvbmcyICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzIgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBmbG9hdDIgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBjaGFyMyAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWNoYXIzICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgc2hvcnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgc2hvcnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdXNob3J0MyAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBpbnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVpbnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgdWludDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBsb25nMyAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWxvbmczICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZmxvYXQzICpkc3QsIGNvbnN0IF9fbG9jYWwgZmxvYXQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgY2hhcjQgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVjaGFyNCAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHNob3J0NCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDQgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgaW50NCAqZHN0LCBjb25zdCBfX2xvY2FsIGludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1aW50NCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgbG9uZzQgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVsb25nNCAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGZsb2F0NCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGNoYXI4ICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjggKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBzaG9ydDggKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1c2hvcnQ4ICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDggKmRzdCwgY29uc3QgX19sb2NhbCBpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWludDggKmRzdCwgY29uc3QgX19sb2NhbCB1aW50OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGxvbmc4ICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzggKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBmbG9hdDggKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBjaGFyMTYgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHNob3J0MTYgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdXNob3J0MTYgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1aW50MTYgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBsb25nMTYgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGZsb2F0MTYgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBkb3VibGUzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGRvdWJsZTQgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGU4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBkb3VibGUxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZSAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTIgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGUyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZG91YmxlMyAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBkb3VibGU0ICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTggKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGU4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZG91YmxlMTYgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGUxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaGFsZjIgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGYzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBoYWxmNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaGFsZjggKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGhhbGYyICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmMyAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGYzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgaGFsZjQgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGhhbGY4ICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmMTYgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUGVyZm9ybSBhbiBhc3luYyBnYXRoZXIgb2YgbnVtX2VsZW1lbnRzCiAqIGdlbnR5cGUgZWxlbWVudHMgZnJvbSBzcmMgdG8gZHN0LiBUaGUKICogc3JjX3N0cmlkZSBpcyB0aGUgc3RyaWRlIGluIGVsZW1lbnRzIGZvciBlYWNoCiAqIGdlbnR5cGUgZWxlbWVudCByZWFkIGZyb20gc3JjLiBUaGUgZHN0X3N0cmlkZQogKiBpcyB0aGUgc3RyaWRlIGluIGVsZW1lbnRzIGZvciBlYWNoIGdlbnR5cGUKICogZWxlbWVudCB3cml0dGVuIHRvIGRzdC4gVGhlIGFzeW5jIGdhdGhlciBpcwogKiBwZXJmb3JtZWQgYnkgYWxsIHdvcmstaXRlbXMgaW4gYSB3b3JrLWdyb3VwLgogKiBUaGlzIGJ1aWx0LWluIGZ1bmN0aW9uIG11c3QgdGhlcmVmb3JlIGJlCiAqIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29yay1ncm91cAogKiBleGVjdXRpbmcgdGhlIGtlcm5lbCB3aXRoIHRoZSBzYW1lIGFyZ3VtZW50CiAqIHZhbHVlczsgb3RoZXJ3aXNlIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQuCiAqIFJldHVybnMgYW4gZXZlbnQgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYnkKICogd2FpdF9ncm91cF9ldmVudHMgdG8gd2FpdCBmb3IgdGhlIGFzeW5jIGNvcHkKICogdG8gZmluaXNoLiBUaGUgZXZlbnQgYXJndW1lbnQgY2FuIGFsc28gYmUgdXNlZAogKiB0byBhc3NvY2lhdGUgdGhlCiAqIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5IHdpdGggYQogKiBwcmV2aW91cyBhc3luYyBjb3B5IGFsbG93aW5nIGFuIGV2ZW50IHRvIGJlCiAqIHNoYXJlZCBieSBtdWx0aXBsZSBhc3luYyBjb3BpZXM7IG90aGVyd2lzZSBldmVudAogKiBzaG91bGQgYmUgemVyby4KICogSWYgZXZlbnQgYXJndW1lbnQgaXMgbm9uLXplcm8sIHRoZSBldmVudCBvYmplY3QKICogc3VwcGxpZWQgaW4gZXZlbnQgYXJndW1lbnQgd2lsbCBiZSByZXR1cm5lZC4KICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwZXJmb3JtIGFueSBpbXBsaWNpdAogKiBzeW5jaHJvbml6YXRpb24gb2Ygc291cmNlIGRhdGEgc3VjaCBhcyB1c2luZyBhCiAqIGJhcnJpZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNvcHkuCiAqLwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGNoYXIgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhciAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHNob3J0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1c2hvcnQgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1aW50ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGxvbmcgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGZsb2F0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBjaGFyMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgc2hvcnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdXNob3J0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVpbnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBsb25nMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZmxvYXQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgY2hhcjMgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVjaGFyMyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHNob3J0MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVzaG9ydDMgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaW50MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1aW50MyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgbG9uZzMgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVsb25nMyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGZsb2F0MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGNoYXI0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1Y2hhcjQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBzaG9ydDQgKmRzdCwgY29uc3QgX19nbG9iYWwgc2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1c2hvcnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGludDQgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWludDQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGxvbmc0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1bG9uZzQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBmbG9hdDQgKmRzdCwgY29uc3QgX19nbG9iYWwgZmxvYXQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBjaGFyOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXI4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgc2hvcnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdXNob3J0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVpbnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBsb25nOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmc4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZmxvYXQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgY2hhcjE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBzaG9ydDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVzaG9ydDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWludDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgbG9uZzE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBmbG9hdDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBjaGFyICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhciAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBzaG9ydCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdXNob3J0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWludCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBsb25nICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBmbG9hdCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgY2hhcjIgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyMiAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHNob3J0MiAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDIgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50MiAqZHN0LCBjb25zdCBfX2xvY2FsIGludDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1aW50MiAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgbG9uZzIgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nMiAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGZsb2F0MiAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGNoYXIzICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1Y2hhcjMgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBzaG9ydDMgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1c2hvcnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGludDMgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWludDMgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGxvbmczICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1bG9uZzMgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBmbG9hdDMgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBjaGFyNCAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWNoYXI0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgc2hvcnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgc2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdXNob3J0NCAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBpbnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVpbnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBsb25nNCAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWxvbmc0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZmxvYXQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgZmxvYXQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgY2hhcjggKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyOCAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHNob3J0OCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDggKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50OCAqZHN0LCBjb25zdCBfX2xvY2FsIGludDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1aW50OCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgbG9uZzggKmRzdCwgY29uc3QgX19sb2NhbCBsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nOCAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGZsb2F0OCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGNoYXIxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyMTYgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgc2hvcnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1c2hvcnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50MTYgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVpbnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGxvbmcxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nMTYgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZmxvYXQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGUgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGUyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGRvdWJsZTMgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlMyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZG91YmxlNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGU0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGU4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGRvdWJsZTE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlMiAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBkb3VibGUzICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlMyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTQgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGU0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlOCAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBkb3VibGUxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBoYWxmMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZjMgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGhhbGY0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGY0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBoYWxmOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZjE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGYxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaGFsZjIgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYzICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBoYWxmNCAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGY0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaGFsZjggKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGYxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogV2FpdCBmb3IgZXZlbnRzIHRoYXQgaWRlbnRpZnkgdGhlCiAqIGFzeW5jX3dvcmtfZ3JvdXBfY29weSBvcGVyYXRpb25zIHRvCiAqIGNvbXBsZXRlLiBUaGUgZXZlbnQgb2JqZWN0cyBzcGVjaWZpZWQgaW4KICogZXZlbnRfbGlzdCB3aWxsIGJlIHJlbGVhc2VkIGFmdGVyIHRoZSB3YWl0IGlzCiAqIHBlcmZvcm1lZC4KICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JraXRlbXMKICogaW4gYSB3b3JrLWdyb3VwIGV4ZWN1dGluZyB0aGUga2VybmVsIHdpdGgKICogdGhlIHNhbWUgbnVtX2V2ZW50cyBhbmQgZXZlbnQgb2JqZWN0cyBzcGVjaWZpZWQKICogaW4gZXZlbnRfbGlzdDsgb3RoZXJ3aXNlIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQuCiAqLwp2b2lkIF9fb3ZsZCB3YWl0X2dyb3VwX2V2ZW50cyhpbnQgbnVtX2V2ZW50cywgZXZlbnRfdCAqZXZlbnRfbGlzdCk7CgovKioKICogUHJlZmV0Y2ggbnVtX2VsZW1lbnRzICogc2l6ZW9mKGdlbnR5cGUpCiAqIGJ5dGVzIGludG8gdGhlIGdsb2JhbCBjYWNoZS4gVGhlIHByZWZldGNoCiAqIGluc3RydWN0aW9uIGlzIGFwcGxpZWQgdG8gYSB3b3JrLWl0ZW0gaW4gYSB3b3JrZ3JvdXAKICogYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUgZnVuY3Rpb25hbAogKiBiZWhhdmlvciBvZiB0aGUga2VybmVsLgogKi8Kdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgY2hhciAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgc2hvcnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1c2hvcnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1aW50ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgbG9uZyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZmxvYXQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBjaGFyMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHNob3J0MiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQyICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWludDIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBsb25nMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGZsb2F0MiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGNoYXIzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWNoYXIzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgc2hvcnQzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdXNob3J0MyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGludDMgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1aW50MyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGxvbmczICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWxvbmczICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZmxvYXQzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgY2hhcjQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1Y2hhcjQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBzaG9ydDQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1c2hvcnQ0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaW50NCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVpbnQ0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgbG9uZzQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1bG9uZzQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBmbG9hdDQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBjaGFyOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHNob3J0OCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQ4ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWludDggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBsb25nOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGZsb2F0OCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGNoYXIxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBzaG9ydDE2ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdXNob3J0MTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVpbnQxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGxvbmcxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBmbG9hdDE2ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBkb3VibGUzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZG91YmxlNCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBkb3VibGUxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaGFsZjIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmMyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGhhbGY0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaGFsZjggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjEsIHYxLjIgczYuMTIuMTEgLSBBdG9taWMgRnVuY3Rpb25zCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcyA6IGVuYWJsZQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MgOiBlbmFibGUKI2VuZGlmCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiAob2xkICsgdmFsKSBhbmQgc3RvcmUgcmVzdWx0IGF0IGxvY2F0aW9uCiAqIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwppbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfYWRkKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwpsb25nIF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKSBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLgogKiBDb21wdXRlIChvbGQgLSB2YWwpIGFuZCBzdG9yZSByZXN1bHQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24KICogcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19zdWIodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNpZmRlZiBfX09QRU5DTF9DUFBfVkVSU0lPTl9fCmludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19zdWIodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfYmFzZV9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbV9zdWIodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogU3dhcHMgdGhlIG9sZCB2YWx1ZSBzdG9yZWQgYXQgbG9jYXRpb24gcAogKiB3aXRoIG5ldyB2YWx1ZSBnaXZlbiBieSB2YWwuIFJldHVybnMgb2xkCiAqIHZhbHVlLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX3hjaGcodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKZmxvYXQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIGZsb2F0ICpwLCBmbG9hdCB2YWwpOwpmbG9hdCBfX292bGQgYXRvbWljX3hjaGcodm9sYXRpbGUgX19sb2NhbCBmbG9hdCAqcCwgZmxvYXQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBmbG9hdCAqcCwgZmxvYXQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21feGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21feGNoZyh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiAob2xkICsgMSkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX2luYyh2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwKTsKaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2luYyh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfYmFzZV9hdG9taWNzKQppbnQgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19sb2NhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX2luYyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCk7CmxvbmcgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKQogKiBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBDb21wdXRlCiAqIChvbGQgLSAxKSBhbmQgc3RvcmUgcmVzdWx0IGF0IGxvY2F0aW9uCiAqIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfZGVjKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnApOwppbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgX19sb2NhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnApOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfZGVjKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19nbG9iYWwgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fZGVjKHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnApOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwKTsKbG9uZyBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCBsb25nICpwKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCA9PSBjbXApID8gdmFsIDogb2xkIGFuZCBzdG9yZSByZXN1bHQgYXQKICogbG9jYXRpb24gcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24KICogcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19jbXB4Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfY21weGNoZyh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCBjbXAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19jbXB4Y2hnKHZvbGF0aWxlIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgY21wLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgY21wLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCBjbXAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fY21weGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIGNtcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyBjbXAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyBjbXAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyBjbXAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogbWluKG9sZCwgdmFsKSBhbmQgc3RvcmUgbWluaW11bSB2YWx1ZSBhdAogKiBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbgogKiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX21pbih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19taW4odm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX21pbih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9taW4odm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9taW4odm9sYXRpbGUgX19sb2NhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiBtYXgob2xkLCB2YWwpIGFuZCBzdG9yZSBtYXhpbXVtIHZhbHVlIGF0CiAqIGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uCiAqIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX21heCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwppbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfbWF4KHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9leHRlbmRlZF9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9leHRlbmRlZF9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX21heCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwpsb25nIF9fb3ZsZCBhdG9tX21heCh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKQogKiBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBDb21wdXRlCiAqIChvbGQgJiB2YWwpIGFuZCBzdG9yZSByZXN1bHQgYXQgbG9jYXRpb24KICogcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24gcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19hbmQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNpZmRlZiBfX09QRU5DTF9DUFBfVkVSU0lPTl9fCmludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19hbmQodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fYW5kKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21fYW5kKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCB8IHZhbCkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfb3Iodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19vcih2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19vcih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fb3Iodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX29yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCBeIHZhbCkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194b3Iodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX3hvcih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV94b3Iodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV94b3Iodm9sYXRpbGUgX19sb2NhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzIDogZGlzYWJsZQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MgOiBkaXNhYmxlCiNlbmRpZgoKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTEgLSBBdG9taWNzIEZ1bmN0aW9ucwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gZG91YmxlIGF0b21pY3Mgc3VwcG9ydCByZXF1aXJlcyBleHRlbnNpb25zIGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MgYW5kIGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzIDogZW5hYmxlCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcyA6IGVuYWJsZQojZW5kaWYKCi8vIGF0b21pY19pbml0KCkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IHZhbHVlKTsKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCB2YWx1ZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgdmFsdWUpOwojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgdmFsdWUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IHZhbHVlKTsKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCB2YWx1ZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyB2YWx1ZSk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgdmFsdWUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY193b3JrX2l0ZW1fZmVuY2UoKQp2b2lkIF9fb3ZsZCBhdG9taWNfd29ya19pdGVtX2ZlbmNlKGNsX21lbV9mZW5jZV9mbGFncyBmbGFncywgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwoKLy8gYXRvbWljX2ZldGNoKCkKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTEuNy41OgovLyBhZGQvc3ViOiBhdG9taWMgdHlwZSBhcmd1bWVudCBjYW4gYmUgdWludHB0cl90L2ludHB0cl90LCB2YWx1ZSB0eXBlIGFyZ3VtZW50IGNhbiBiZSBwdHJkaWZmX3QuCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpO2kKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21heCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY19zdG9yZSgpCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCk7CgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQpOwojZW5kaWYgLy9jbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAoKLy8gYXRvbWljX2xvYWQoKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0KTsKdWludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0KTsKaW50IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCk7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QpOwp1aW50IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCk7CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0KTsKbG9uZyBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0KTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0KTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCiNlbmRpZgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfc2NvcGVfZGV2aWNlKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CmZsb2F0IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKZmxvYXQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpkb3VibGUgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZmxvYXQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmCmxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCgovLyBhdG9taWNfZXhjaGFuZ2UoKQoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfb3JkZXJfc2VxX2NzdCkgJiYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CnVpbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3Mpd2kKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKbG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZmxvYXQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZygpIGFuZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKCkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfb3JkZXJfc2VxX2NzdCkgJiYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwojZW5kaWYgLy9jbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLCBmbG9hdCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLCBmbG9hdCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLCBkb3VibGUgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLCBkb3VibGUgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwgdWxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwgdWxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCgovLyBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXQoKSBhbmQgYXRvbWljX2ZsYWdfY2xlYXIoKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqb2JqZWN0KTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXIodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ZsYWcgKm9iamVjdCk7CmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0KTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxhZyAqb2JqZWN0KTsKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCiNlbmRpZgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xMiwgdjEuMiBzNi4xMi4xMiwgdjIuMCBzNi4xMy4xMiAtIE1pc2NlbGxhbmVvdXMgVmVjdG9yIEZ1bmN0aW9ucwoKLyoqCiAqIFRoZSBzaHVmZmxlIGFuZCBzaHVmZmxlMiBidWlsdC1pbiBmdW5jdGlvbnMgY29uc3RydWN0CiAqIGEgcGVybXV0YXRpb24gb2YgZWxlbWVudHMgZnJvbSBvbmUgb3IgdHdvIGlucHV0CiAqIHZlY3RvcnMgcmVzcGVjdGl2ZWx5IHRoYXQgYXJlIG9mIHRoZSBzYW1lIHR5cGUsCiAqIHJldHVybmluZyBhIHZlY3RvciB3aXRoIHRoZSBzYW1lIGVsZW1lbnQgdHlwZSBhcyB0aGUKICogaW5wdXQgYW5kIGxlbmd0aCB0aGF0IGlzIHRoZSBzYW1lIGFzIHRoZSBzaHVmZmxlIG1hc2suCiAqIFRoZSBzaXplIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgbWFzayBtdXN0IG1hdGNoIHRoZQogKiBzaXplIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgcmVzdWx0LiBGb3Igc2h1ZmZsZSwgb25seQogKiB0aGUgaWxvZ2IoMm0tMSkgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBlYWNoIG1hc2sKICogZWxlbWVudCBhcmUgY29uc2lkZXJlZC4gRm9yIHNodWZmbGUyLCBvbmx5IHRoZQogKiBpbG9nYigybS0xKSsxIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgZWFjaCBtYXNrCiAqIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQuIE90aGVyIGJpdHMgaW4gdGhlIG1hc2sgc2hhbGwKICogYmUgaWdub3JlZC4KICogVGhlIGVsZW1lbnRzIG9mIHRoZSBpbnB1dCB2ZWN0b3JzIGFyZSBudW1iZXJlZCBmcm9tCiAqIGxlZnQgdG8gcmlnaHQgYWNyb3NzIG9uZSBvciBib3RoIG9mIHRoZSB2ZWN0b3JzLiBGb3IgdGhpcwogKiBwdXJwb3NlLCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgdmVjdG9yIGlzIGdpdmVuCiAqIGJ5IHZlY19zdGVwKGdlbnR5cGVtKS4gVGhlIHNodWZmbGUgbWFzayBvcGVyYW5kCiAqIHNwZWNpZmllcywgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgcmVzdWx0IHZlY3Rvciwgd2hpY2gKICogZWxlbWVudCBvZiB0aGUgb25lIG9yIHR3byBpbnB1dCB2ZWN0b3JzIHRoZSByZXN1bHQKICogZWxlbWVudCBnZXRzLgogKiBFeGFtcGxlczoKICogdWludDQgbWFzayA9ICh1aW50NCkoMywgMiwKICogMSwgMCk7CiAqIGZsb2F0NCBhOwogKiBmbG9hdDQgciA9IHNodWZmbGUoYSwgbWFzayk7CiAqIC8vIHIuczAxMjMgPSBhLnd6eXgKICogdWludDggbWFzayA9ICh1aW50OCkoMCwgMSwgMiwgMywKICogNCwgNSwgNiwgNyk7CiAqIGZsb2F0NCBhLCBiOwogKiBmbG9hdDggciA9IHNodWZmbGUyKGEsIGIsIG1hc2spOwogKiAvLyByLnMwMTIzID0gYS54eXp3CiAqIC8vIHIuczQ1NjcgPSBiLnh5encKICogdWludDQgbWFzazsKICogZmxvYXQ4IGE7CiAqIGZsb2F0NCBiOwogKiBiID0gc2h1ZmZsZShhLCBtYXNrKTsKICogRXhhbXBsZXMgdGhhdCBhcmUgbm90IHZhbGlkIGFyZToKICogdWludDggbWFzazsKICogc2hvcnQxNiBhOwogKiBzaG9ydDggYjsKICogYiA9IHNodWZmbGUoYSwgbWFzayk7IDwtIG5vdCB2YWxpZAogKi8KY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjIgbWFzayk7Cgp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjIgbWFzayk7CnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyMiBtYXNrKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXIyIG1hc2spOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXIyIG1hc2spOwoKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDIgbWFzayk7Cgp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDIgbWFzayk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0MiBtYXNrKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQyIG1hc2spOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQyIG1hc2spOwoKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDIgbWFzayk7Cgp1aW50MiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDIgbWFzayk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQyIG1hc2spOwp1aW50MiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQyIG1hc2spOwoKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzIgbWFzayk7Cgp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzIgbWFzayk7CnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nMiBtYXNrKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmcyIG1hc2spOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmcyIG1hc2spOwoKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDIgbWFzayk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50MiBtYXNrKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQyIG1hc2spOwoKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjQgbWFzayk7Cgp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjQgbWFzayk7CnVjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyNCBtYXNrKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXI0IG1hc2spOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXI0IG1hc2spOwoKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDQgbWFzayk7Cgp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDQgbWFzayk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0NCBtYXNrKTsKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQ0IG1hc2spOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQ0IG1hc2spOwoKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDQgbWFzayk7Cgp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDQgbWFzayk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50NCBtYXNrKTsKdWludDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQ0IG1hc2spOwoKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzQgbWFzayk7Cgp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzQgbWFzayk7CnVsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nNCBtYXNrKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmc0IG1hc2spOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmc0IG1hc2spOwoKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQ0IG1hc2spOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50NCBtYXNrKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQ0IG1hc2spOwoKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjggbWFzayk7Cgp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjggbWFzayk7CnVjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyOCBtYXNrKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXI4IG1hc2spOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXI4IG1hc2spOwoKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDggbWFzayk7Cgp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDggbWFzayk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0OCBtYXNrKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQ4IG1hc2spOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQ4IG1hc2spOwoKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDggbWFzayk7Cgp1aW50OCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50OCBtYXNrKTsKdWludDggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQ4IG1hc2spOwp1aW50OCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQ4IG1hc2spOwoKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzggbWFzayk7Cgp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzggbWFzayk7CnVsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nOCBtYXNrKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmc4IG1hc2spOwp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmc4IG1hc2spOwoKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDggbWFzayk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQ4IG1hc2spOwpmbG9hdDggX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQ4IG1hc2spOwoKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShjaGFyMiB4LCB1Y2hhcjE2IG1hc2spOwpjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyMTYgbWFzayk7CmNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUoY2hhcjggeCwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShjaGFyMTYgeCwgdWNoYXIxNiBtYXNrKTsKCnVjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjE2IG1hc2spOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjQgeCwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI4IHgsIHVjaGFyMTYgbWFzayk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXIxNiBtYXNrKTsKCnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHNob3J0MiB4LCB1c2hvcnQxNiBtYXNrKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoc2hvcnQ0IHgsIHVzaG9ydDE2IG1hc2spOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0MTYgbWFzayk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHNob3J0MTYgeCwgdXNob3J0MTYgbWFzayk7Cgp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0MiB4LCB1c2hvcnQxNiBtYXNrKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0MTYgbWFzayk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQ4IHgsIHVzaG9ydDE2IG1hc2spOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0MTYgeCwgdXNob3J0MTYgbWFzayk7CgppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50MTYgbWFzayk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShpbnQ0IHgsIHVpbnQxNiBtYXNrKTsKaW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGludDggeCwgdWludDE2IG1hc2spOwppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDE2IG1hc2spOwoKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50MiB4LCB1aW50MTYgbWFzayk7CnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDQgeCwgdWludDE2IG1hc2spOwp1aW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQxNiBtYXNrKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50MTYgeCwgdWludDE2IG1hc2spOwoKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShsb25nMiB4LCB1bG9uZzE2IG1hc2spOwpsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nMTYgbWFzayk7CmxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUobG9uZzggeCwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShsb25nMTYgeCwgdWxvbmcxNiBtYXNrKTsKCnVsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzE2IG1hc2spOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzQgeCwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc4IHgsIHVsb25nMTYgbWFzayk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmcxNiBtYXNrKTsKCmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0MiB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0NCB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0MTYgeCwgdWludDE2IG1hc2spOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmcyIG1hc2spOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nMiBtYXNrKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzIgbWFzayk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nMiBtYXNrKTsKCmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmc0IG1hc2spOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nNCBtYXNrKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzQgbWFzayk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nNCBtYXNrKTsKCmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmc4IG1hc2spOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nOCBtYXNrKTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzggbWFzayk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nOCBtYXNrKTsKCmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGUyIHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU4IHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGUxNiB4LCB1bG9uZzE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQyIG1hc2spOwpoYWxmMiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0MiBtYXNrKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDIgbWFzayk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0MiBtYXNrKTsKCmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQ0IG1hc2spOwpoYWxmNCBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0NCBtYXNrKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDQgbWFzayk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0NCBtYXNrKTsKCmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQ4IG1hc2spOwpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0OCBtYXNrKTsKaGFsZjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDggbWFzayk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0OCBtYXNrKTsKCmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjIgeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjggeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjE2IHgsIHVzaG9ydDE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyMiB4LCBjaGFyMiB5LCB1Y2hhcjIgbWFzayk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjQgeCwgY2hhcjQgeSwgdWNoYXIyIG1hc2spOwpjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXI4IHgsIGNoYXI4IHksIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyMTYgeCwgY2hhcjE2IHksIHVjaGFyMiBtYXNrKTsKCnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMiB4LCB1Y2hhcjIgeSwgdWNoYXIyIG1hc2spOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjQgeCwgdWNoYXI0IHksIHVjaGFyMiBtYXNrKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXI4IHgsIHVjaGFyOCB5LCB1Y2hhcjIgbWFzayk7CnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMTYgeCwgdWNoYXIxNiB5LCB1Y2hhcjIgbWFzayk7CgpzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDIgeCwgc2hvcnQyIHksIHVzaG9ydDIgbWFzayk7CnNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0NCB4LCBzaG9ydDQgeSwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ4IHgsIHNob3J0OCB5LCB1c2hvcnQyIG1hc2spOwpzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDE2IHgsIHNob3J0MTYgeSwgdXNob3J0MiBtYXNrKTsKCnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQyIHgsIHVzaG9ydDIgeSwgdXNob3J0MiBtYXNrKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDQgeCwgdXNob3J0NCB5LCB1c2hvcnQyIG1hc2spOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0OCB4LCB1c2hvcnQ4IHksIHVzaG9ydDIgbWFzayk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQxNiB4LCB1c2hvcnQxNiB5LCB1c2hvcnQyIG1hc2spOwoKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDIgeCwgaW50MiB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDQgeCwgaW50NCB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDggeCwgaW50OCB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDE2IHgsIGludDE2IHksIHVpbnQyIG1hc2spOwoKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50MiB4LCB1aW50MiB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50NCB4LCB1aW50NCB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50OCB4LCB1aW50OCB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50MTYgeCwgdWludDE2IHksIHVpbnQyIG1hc2spOwoKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nMiB4LCBsb25nMiB5LCB1bG9uZzIgbWFzayk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzQgeCwgbG9uZzQgeSwgdWxvbmcyIG1hc2spOwpsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmc4IHgsIGxvbmc4IHksIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nMTYgeCwgbG9uZzE2IHksIHVsb25nMiBtYXNrKTsKCnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMiB4LCB1bG9uZzIgeSwgdWxvbmcyIG1hc2spOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzQgeCwgdWxvbmc0IHksIHVsb25nMiBtYXNrKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmc4IHgsIHVsb25nOCB5LCB1bG9uZzIgbWFzayk7CnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMTYgeCwgdWxvbmcxNiB5LCB1bG9uZzIgbWFzayk7CgpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDIgeCwgZmxvYXQyIHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDQgeCwgZmxvYXQ0IHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDggeCwgZmxvYXQ4IHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDE2IHgsIGZsb2F0MTYgeSwgdWludDIgbWFzayk7CgpjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXIyIHgsIGNoYXIyIHksIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyNCB4LCBjaGFyNCB5LCB1Y2hhcjQgbWFzayk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjggeCwgY2hhcjggeSwgdWNoYXI0IG1hc2spOwpjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXIxNiB4LCBjaGFyMTYgeSwgdWNoYXI0IG1hc2spOwoKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXIyIHgsIHVjaGFyMiB5LCB1Y2hhcjQgbWFzayk7CnVjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyNCB4LCB1Y2hhcjQgeSwgdWNoYXI0IG1hc2spOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjggeCwgdWNoYXI4IHksIHVjaGFyNCBtYXNrKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXIxNiB4LCB1Y2hhcjE2IHksIHVjaGFyNCBtYXNrKTsKCnNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MiB4LCBzaG9ydDIgeSwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ0IHgsIHNob3J0NCB5LCB1c2hvcnQ0IG1hc2spOwpzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDggeCwgc2hvcnQ4IHksIHVzaG9ydDQgbWFzayk7CnNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MTYgeCwgc2hvcnQxNiB5LCB1c2hvcnQ0IG1hc2spOwoKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDIgeCwgdXNob3J0MiB5LCB1c2hvcnQ0IG1hc2spOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0NCB4LCB1c2hvcnQ0IHksIHVzaG9ydDQgbWFzayk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ4IHgsIHVzaG9ydDggeSwgdXNob3J0NCBtYXNrKTsKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDE2IHgsIHVzaG9ydDE2IHksIHVzaG9ydDQgbWFzayk7CgppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50MiB4LCBpbnQyIHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50NCB4LCBpbnQ0IHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50OCB4LCBpbnQ4IHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50MTYgeCwgaW50MTYgeSwgdWludDQgbWFzayk7Cgp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQyIHgsIHVpbnQyIHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQ0IHgsIHVpbnQ0IHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQ4IHgsIHVpbnQ4IHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDQgbWFzayk7Cgpsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmcyIHgsIGxvbmcyIHksIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nNCB4LCBsb25nNCB5LCB1bG9uZzQgbWFzayk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzggeCwgbG9uZzggeSwgdWxvbmc0IG1hc2spOwpsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmcxNiB4LCBsb25nMTYgeSwgdWxvbmc0IG1hc2spOwoKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmcyIHgsIHVsb25nMiB5LCB1bG9uZzQgbWFzayk7CnVsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nNCB4LCB1bG9uZzQgeSwgdWxvbmc0IG1hc2spOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzggeCwgdWxvbmc4IHksIHVsb25nNCBtYXNrKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmcxNiB4LCB1bG9uZzE2IHksIHVsb25nNCBtYXNrKTsKCmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MiB4LCBmbG9hdDIgeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0NCB4LCBmbG9hdDQgeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0OCB4LCBmbG9hdDggeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCB1aW50NCBtYXNrKTsKCmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjIgeCwgY2hhcjIgeSwgdWNoYXI4IG1hc2spOwpjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXI0IHgsIGNoYXI0IHksIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyOCB4LCBjaGFyOCB5LCB1Y2hhcjggbWFzayk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjE2IHgsIGNoYXIxNiB5LCB1Y2hhcjggbWFzayk7Cgp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjIgeCwgdWNoYXIyIHksIHVjaGFyOCBtYXNrKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXI0IHgsIHVjaGFyNCB5LCB1Y2hhcjggbWFzayk7CnVjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyOCB4LCB1Y2hhcjggeSwgdWNoYXI4IG1hc2spOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjE2IHgsIHVjaGFyMTYgeSwgdWNoYXI4IG1hc2spOwoKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQyIHgsIHNob3J0MiB5LCB1c2hvcnQ4IG1hc2spOwpzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDQgeCwgc2hvcnQ0IHksIHVzaG9ydDggbWFzayk7CnNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0OCB4LCBzaG9ydDggeSwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQxNiB4LCBzaG9ydDE2IHksIHVzaG9ydDggbWFzayk7Cgp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MiB4LCB1c2hvcnQyIHksIHVzaG9ydDggbWFzayk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ0IHgsIHVzaG9ydDQgeSwgdXNob3J0OCBtYXNrKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDggeCwgdXNob3J0OCB5LCB1c2hvcnQ4IG1hc2spOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MTYgeCwgdXNob3J0MTYgeSwgdXNob3J0OCBtYXNrKTsKCmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQyIHgsIGludDIgeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ0IHgsIGludDQgeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ4IHgsIGludDggeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQxNiB4LCBpbnQxNiB5LCB1aW50OCBtYXNrKTsKCnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDIgeCwgdWludDIgeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDQgeCwgdWludDQgeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDggeCwgdWludDggeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDE2IHgsIHVpbnQxNiB5LCB1aW50OCBtYXNrKTsKCmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzIgeCwgbG9uZzIgeSwgdWxvbmc4IG1hc2spOwpsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmc0IHgsIGxvbmc0IHksIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nOCB4LCBsb25nOCB5LCB1bG9uZzggbWFzayk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzE2IHgsIGxvbmcxNiB5LCB1bG9uZzggbWFzayk7Cgp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzIgeCwgdWxvbmcyIHksIHVsb25nOCBtYXNrKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmc0IHgsIHVsb25nNCB5LCB1bG9uZzggbWFzayk7CnVsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nOCB4LCB1bG9uZzggeSwgdWxvbmc4IG1hc2spOwp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzE2IHgsIHVsb25nMTYgeSwgdWxvbmc4IG1hc2spOwoKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQyIHgsIGZsb2F0MiB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ0IHgsIGZsb2F0NCB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ4IHgsIGZsb2F0OCB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQxNiB4LCBmbG9hdDE2IHksIHVpbnQ4IG1hc2spOwoKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjIgeCwgY2hhcjIgeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjQgeCwgY2hhcjQgeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjggeCwgY2hhcjggeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjE2IHgsIGNoYXIxNiB5LCB1Y2hhcjE2IG1hc2spOwoKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMiB4LCB1Y2hhcjIgeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyNCB4LCB1Y2hhcjQgeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyOCB4LCB1Y2hhcjggeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMTYgeCwgdWNoYXIxNiB5LCB1Y2hhcjE2IG1hc2spOwoKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MiB4LCBzaG9ydDIgeSwgdXNob3J0MTYgbWFzayk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDQgeCwgc2hvcnQ0IHksIHVzaG9ydDE2IG1hc2spOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ4IHgsIHNob3J0OCB5LCB1c2hvcnQxNiBtYXNrKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MTYgeCwgc2hvcnQxNiB5LCB1c2hvcnQxNiBtYXNrKTsKCnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MiB4LCB1c2hvcnQyIHksIHVzaG9ydDE2IG1hc2spOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDQgeCwgdXNob3J0NCB5LCB1c2hvcnQxNiBtYXNrKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ4IHgsIHVzaG9ydDggeSwgdXNob3J0MTYgbWFzayk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MTYgeCwgdXNob3J0MTYgeSwgdXNob3J0MTYgbWFzayk7CgppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDIgeCwgaW50MiB5LCB1aW50MTYgbWFzayk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50NCB4LCBpbnQ0IHksIHVpbnQxNiBtYXNrKTsKaW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ4IHgsIGludDggeSwgdWludDE2IG1hc2spOwppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDE2IHgsIGludDE2IHksIHVpbnQxNiBtYXNrKTsKCnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQyIHgsIHVpbnQyIHksIHVpbnQxNiBtYXNrKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDQgeCwgdWludDQgeSwgdWludDE2IG1hc2spOwp1aW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50OCB4LCB1aW50OCB5LCB1aW50MTYgbWFzayk7CnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDE2IG1hc2spOwoKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzIgeCwgbG9uZzIgeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzQgeCwgbG9uZzQgeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzggeCwgbG9uZzggeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzE2IHgsIGxvbmcxNiB5LCB1bG9uZzE2IG1hc2spOwoKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMiB4LCB1bG9uZzIgeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nNCB4LCB1bG9uZzQgeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nOCB4LCB1bG9uZzggeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMTYgeCwgdWxvbmcxNiB5LCB1bG9uZzE2IG1hc2spOwoKZmxvYXQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MiB4LCBmbG9hdDIgeSwgdWludDE2IG1hc2spOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ0IHgsIGZsb2F0NCB5LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDggeCwgZmxvYXQ4IHksIHVpbnQxNiBtYXNrKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCB1aW50MTYgbWFzayk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTIgeCwgZG91YmxlMiB5LCB1bG9uZzIgbWFzayk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU0IHgsIGRvdWJsZTQgeSwgdWxvbmcyIG1hc2spOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlOCB4LCBkb3VibGU4IHksIHVsb25nMiBtYXNrKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIHVsb25nMiBtYXNrKTsKCmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUyIHgsIGRvdWJsZTIgeSwgdWxvbmc0IG1hc2spOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlNCB4LCBkb3VibGU0IHksIHVsb25nNCBtYXNrKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTggeCwgZG91YmxlOCB5LCB1bG9uZzQgbWFzayk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUxNiB4LCBkb3VibGUxNiB5LCB1bG9uZzQgbWFzayk7Cgpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlMiB4LCBkb3VibGUyIHksIHVsb25nOCBtYXNrKTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTQgeCwgZG91YmxlNCB5LCB1bG9uZzggbWFzayk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU4IHgsIGRvdWJsZTggeSwgdWxvbmc4IG1hc2spOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgdWxvbmc4IG1hc2spOwoKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUyIHgsIGRvdWJsZTIgeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU0IHgsIGRvdWJsZTQgeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU4IHgsIGRvdWJsZTggeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUxNiB4LCBkb3VibGUxNiB5LCB1bG9uZzE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjIgeCwgaGFsZjIgeSwgdXNob3J0MiBtYXNrKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmNCB4LCBoYWxmNCB5LCB1c2hvcnQyIG1hc2spOwpoYWxmMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGY4IHgsIGhhbGY4IHksIHVzaG9ydDIgbWFzayk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjE2IHgsIGhhbGYxNiB5LCB1c2hvcnQyIG1hc2spOwoKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmMiB4LCBoYWxmMiB5LCB1c2hvcnQ0IG1hc2spOwpoYWxmNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGY0IHgsIGhhbGY0IHksIHVzaG9ydDQgbWFzayk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjggeCwgaGFsZjggeSwgdXNob3J0NCBtYXNrKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmMTYgeCwgaGFsZjE2IHksIHVzaG9ydDQgbWFzayk7CgpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYyIHgsIGhhbGYyIHksIHVzaG9ydDggbWFzayk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjQgeCwgaGFsZjQgeSwgdXNob3J0OCBtYXNrKTsKaGFsZjggX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmOCB4LCBoYWxmOCB5LCB1c2hvcnQ4IG1hc2spOwpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYxNiB4LCBoYWxmMTYgeSwgdXNob3J0OCBtYXNrKTsKCmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYyIHgsIGhhbGYyIHksIHVzaG9ydDE2IG1hc2spOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmNCB4LCBoYWxmNCB5LCB1c2hvcnQxNiBtYXNrKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjggeCwgaGFsZjggeSwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYxNiB4LCBoYWxmMTYgeSwgdXNob3J0MTYgbWFzayk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4zLCB2MS4yIHM2LjEyLjE0LCB2Mi4wIHM2LjEzLjE0IC0gSW1hZ2UgUmVhZCBhbmQgV3JpdGUgRnVuY3Rpb25zCgojaWZkZWYgY2xfa2hyX2dsX21zYWFfc2hhcmluZwojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2dsX21zYWFfc2hhcmluZyA6IGVuYWJsZQojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgovKioKICogVXNlIHRoZSBjb29yZGluYXRlIChjb29yZC54eSkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoY29vcmQueCwgY29vcmQueSwgY29vcmQueikgdG8gZG8KICogYW4gZWxlbWVudCBsb29rdXAgaW4gdGhlIDNEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQKICogYnkgaW1hZ2UuIGNvb3JkLncgaXMgaWdub3JlZC4KICoKICogVXNlIHRoZSBjb29yZGluYXRlIChjb29yZC56KSB0byBpbmRleCBpbnRvIHRoZQogKiAyRCBpbWFnZSBhcnJheSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGltYWdlX2FycmF5CiAqIGFuZCAoY29vcmQueCwgY29vcmQueSkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoeCkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDFEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoY29vcmQueSkgdG8gaW5kZXggaW50byB0aGUKICogMUQgaW1hZ2UgYXJyYXkgb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZV9hcnJheQogKiBhbmQgKGNvb3JkLngpIHRvIGRvIGFuIGVsZW1lbnQgbG9va3VwIGluCiAqIHRoZSAxRCBpbWFnZSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGltYWdlLgogKgogKiBVc2UgdGhlIGNvb3JkaW5hdGUgKGNvb2QueHkpIGFuZCBzYW1wbGUgdG8gZG8gYW4KICogZWxlbWVudCBsb29rdXAgaW4gdGhlIDJEIG11bHRpLXNhbXBsZSBpbWFnZSBzcGVjaWZpZWQKICogYnkgaW1hZ2UuCiAqCiAqIFVzZSBjb29yZC54eSBhbmQgc2FtcGxlIHRvIGRvIGFuIGVsZW1lbnQKICogbG9va3VwIGluIHRoZSAyRCBtdWx0aS1zYW1wbGUgaW1hZ2UgbGF5ZXIKICogaWRlbnRpZmllZCBieSBpbmRleCBjb29yZC56IGluIHRoZSAyRCBtdWx0aS1zYW1wbGUKICogaW1hZ2UgYXJyYXkgc3BlY2lmaWVkIGJ5IGltYWdlLgogKgogKiBGb3IgbWlwbWFwIGltYWdlcywgdXNlIHRoZSBtaXAtbGV2ZWwgc3BlY2lmaWVkIGJ5CiAqIHRoZSBMZXZlbC1vZi1EZXRhaWwgKGxvZCkgb3IgdXNlIGdyYWRpZW50cyBmb3IgTE9ECiAqIGNvbXB1dGF0aW9uLgogKgogKiByZWFkX2ltYWdlZiByZXR1cm5zIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiB0aGUKICogcmFuZ2UgWzAuMCAuLi4gMS4wXSBmb3IgaW1hZ2Ugb2JqZWN0cyBjcmVhdGVkIHdpdGgKICogaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZiB0aGUgcHJlZGVmaW5lZAogKiBwYWNrZWQgZm9ybWF0cyBvciBDTF9VTk9STV9JTlQ4LCBvcgogKiBDTF9VTk9STV9JTlQxNi4KICoKICogcmVhZF9pbWFnZWYgcmV0dXJucyBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gdGhlCiAqIHJhbmdlIFstMS4wIC4uLiAxLjBdIGZvciBpbWFnZSBvYmplY3RzIGNyZWF0ZWQgd2l0aAogKiBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8gQ0xfU05PUk1fSU5UOCwKICogb3IgQ0xfU05PUk1fSU5UMTYuCiAqCiAqIHJlYWRfaW1hZ2VmIHJldHVybnMgZmxvYXRpbmctcG9pbnQgdmFsdWVzIGZvciBpbWFnZQogKiBvYmplY3RzIGNyZWF0ZWQgd2l0aCBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8KICogQ0xfSEFMRl9GTE9BVCBvciBDTF9GTE9BVC4KICoKICogcmVhZF9pbWFnZWkgYW5kIHJlYWRfaW1hZ2V1aSByZXR1cm4KICogdW5ub3JtYWxpemVkIHNpZ25lZCBpbnRlZ2VyIGFuZCB1bnNpZ25lZCBpbnRlZ2VyCiAqIHZhbHVlcyByZXNwZWN0aXZlbHkuIEVhY2ggY2hhbm5lbCB3aWxsIGJlIHN0b3JlZCBpbiBhCiAqIDMyLWJpdCBpbnRlZ2VyLgogKgogKiByZWFkX2ltYWdlaSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfU0lHTkVEX0lOVDgsCiAqIENMX1NJR05FRF9JTlQxNiBhbmQKICogQ0xfU0lHTkVEX0lOVDMyLgogKiBJZiB0aGUgaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgaXMgbm90IG9uZSBvZiB0aGUKICogYWJvdmUgdmFsdWVzLCB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHJlYWRfaW1hZ2VpCiAqIGFyZSB1bmRlZmluZWQuCiAqCiAqIHJlYWRfaW1hZ2V1aSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfVU5TSUdORURfSU5UOCwKICogQ0xfVU5TSUdORURfSU5UMTYgYW5kCiAqIENMX1VOU0lHTkVEX0lOVDMyLgogKiBJZiB0aGUgaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgaXMgbm90IG9uZSBvZiB0aGUKICogYWJvdmUgdmFsdWVzLCB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHJlYWRfaW1hZ2V1aQogKiBhcmUgdW5kZWZpbmVkLgogKgogKiBUaGUgcmVhZF9pbWFnZXtpfHVpfSBjYWxscyBzdXBwb3J0IGEgbmVhcmVzdCBmaWx0ZXIKICogb25seS4gVGhlIGZpbHRlcl9tb2RlIHNwZWNpZmllZCBpbiBzYW1wbGVyCiAqIG11c3QgYmUgc2V0IHRvIENMS19GSUxURVJfTkVBUkVTVDsgb3RoZXJ3aXNlCiAqIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYXJlIHVuZGVmaW5lZC4KCiAqIFRoZSByZWFkX2ltYWdle2Z8aXx1aX0gY2FsbHMgdGhhdCB0YWtlCiAqIGludGVnZXIgY29vcmRpbmF0ZXMgbXVzdCB1c2UgYSBzYW1wbGVyIHdpdGgKICogbm9ybWFsaXplZCBjb29yZGluYXRlcyBzZXQgdG8KICogQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZBTFNFIGFuZAogKiBhZGRyZXNzaW5nIG1vZGUgc2V0IHRvCiAqIENMS19BRERSRVNTX0NMQU1QX1RPX0VER0UsCiAqIENMS19BRERSRVNTX0NMQU1QIG9yIENMS19BRERSRVNTX05PTkU7CiAqIG90aGVyd2lzZSB0aGUgdmFsdWVzIHJldHVybmVkIGFyZSB1bmRlZmluZWQuCiAqCiAqIFZhbHVlcyByZXR1cm5lZCBieSByZWFkX2ltYWdlZiBmb3IgaW1hZ2Ugb2JqZWN0cwogKiB3aXRoIGltYWdlX2NoYW5uZWxfZGF0YV90eXBlIHZhbHVlcyBub3Qgc3BlY2lmaWVkCiAqIGluIHRoZSBkZXNjcmlwdGlvbiBhYm92ZSBhcmUgdW5kZWZpbmVkLgogKi8KCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQpOwoKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQgY29vcmQpOwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCk7CgppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQpOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQyIGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50NCBjb29yZCk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IHNhbXBsZSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgc2FtcGxlKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTggLSBNaXBtYXBzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmZGVmIGNsX2tocl9taXBtYXBfaW1hZ2UKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0NCBncmFkaWVudFgsIGZsb2F0NCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2UKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgovKioKKiBTYW1wbGVyLWxlc3MgSW1hZ2UgQWNjZXNzCiovCgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwoKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwoKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQoKLy8gSW1hZ2UgcmVhZCBmdW5jdGlvbnMgcmV0dXJuaW5nIGhhbGY0IHR5cGUKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwovKioKICogU2FtcGxlci1sZXNzIEltYWdlIEFjY2VzcwogKi8KaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBJbWFnZSByZWFkIGZ1bmN0aW9ucyBmb3IgcmVhZF93cml0ZSBpbWFnZXMKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSwgaW50NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UsIGludDQgY29vcmQpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCgojaWYgY2xfa2hyX2dsX21zYWFfc2hhcmluZwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmZGVmIGNsX2tocl9taXBtYXBfaW1hZ2UKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0NCBncmFkaWVudFgsIGZsb2F0NCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2UKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBJbWFnZSByZWFkIGZ1bmN0aW9ucyByZXR1cm5pbmcgaGFsZjQgdHlwZQojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBXcml0ZSBjb2xvciB2YWx1ZSB0byBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgY29vcmRpbmF0ZQogKiAoY29vcmQueCwgY29vcmQueSkgaW4gdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqIChjb29yZC54LCBjb29yZC55KSBhcmUgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMKICogYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoIC0gMSwgYW5kIDAKICogLi4uIGltYWdlIGhlaWdodCAtIDEuCgogKiBXcml0ZSBjb2xvciB2YWx1ZSB0byBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgY29vcmRpbmF0ZQogKiAoY29vcmQueCwgY29vcmQueSkgaW4gdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW5kZXgKICogKGNvb3JkLnopIG9mIHRoZSAyRCBpbWFnZSBhcnJheSBvYmplY3QgaW1hZ2VfYXJyYXkuCiAqIChjb29yZC54LCBjb29yZC55KSBhcmUgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQKICogY29vcmRpbmF0ZXMgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoCiAqIC0gMS4KICoKICogV3JpdGUgY29sb3IgdmFsdWUgdG8gbG9jYXRpb24gc3BlY2lmaWVkIGJ5IGNvb3JkaW5hdGUKICogKGNvb3JkKSBpbiB0aGUgMUQgaW1hZ2UgKGJ1ZmZlcikgb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZS4KICogY29vcmQgaXMgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMKICogYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoIC0gMS4KICoKICogV3JpdGUgY29sb3IgdmFsdWUgdG8gbG9jYXRpb24gc3BlY2lmaWVkIGJ5IGNvb3JkaW5hdGUKICogKGNvb3JkLngpIGluIHRoZSAxRCBpbWFnZSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGluZGV4CiAqIChjb29yZC55KSBvZiB0aGUgMUQgaW1hZ2UgYXJyYXkgb2JqZWN0IGltYWdlX2FycmF5LgogKiB4IGlzIGNvbnNpZGVyZWQgdG8gYmUgdW5ub3JtYWxpemVkIGNvb3JkaW5hdGVzCiAqIGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSAwIC4uLiBpbWFnZSB3aWR0aCAtIDEuCiAqCiAqIFdyaXRlIGNvbG9yIHZhbHVlIHRvIGxvY2F0aW9uIHNwZWNpZmllZCBieSBjb29yZGluYXRlCiAqIChjb29yZC54LCBjb29yZC55LCBjb29yZC56KSBpbiB0aGUgM0QgaW1hZ2Ugb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZS4KICogY29vcmQueCAmIGNvb3JkLnkgYXJlIGNvbnNpZGVyZWQgdG8gYmUgdW5ub3JtYWxpemVkIGNvb3JkaW5hdGVzCiAqIGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSAwIC4uLiBpbWFnZSB3aWR0aCAtIDEsIGFuZCAwCiAqIC4uLiBpbWFnZSBoZWlnaHQgLSAxLgogKgogKiBGb3IgbWlwbWFwIGltYWdlcywgdXNlIG1pcC1sZXZlbCBzcGVjaWZpZWQgYnkgbG9kLgogKgogKiBBcHByb3ByaWF0ZSBkYXRhIGZvcm1hdCBjb252ZXJzaW9uIHRvIHRoZSBzcGVjaWZpZWQKICogaW1hZ2UgZm9ybWF0IGlzIGRvbmUgYmVmb3JlIHdyaXRpbmcgdGhlIGNvbG9yIHZhbHVlLgogKgogKiB3cml0ZV9pbWFnZWYgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGltYWdlIG9iamVjdHMKICogY3JlYXRlZCB3aXRoIGltYWdlX2NoYW5uZWxfZGF0YV90eXBlIHNldCB0byBvbmUgb2YKICogdGhlIHByZS1kZWZpbmVkIHBhY2tlZCBmb3JtYXRzIG9yIHNldCB0bwogKiBDTF9TTk9STV9JTlQ4LCBDTF9VTk9STV9JTlQ4LAogKiBDTF9TTk9STV9JTlQxNiwgQ0xfVU5PUk1fSU5UMTYsCiAqIENMX0hBTEZfRkxPQVQgb3IgQ0xfRkxPQVQuIEFwcHJvcHJpYXRlIGRhdGEKICogZm9ybWF0IGNvbnZlcnNpb24gd2lsbCBiZSBkb25lIHRvIGNvbnZlcnQgY2hhbm5lbAogKiBkYXRhIGZyb20gYSBmbG9hdGluZy1wb2ludCB2YWx1ZSB0byBhY3R1YWwgZGF0YSBmb3JtYXQKICogaW4gd2hpY2ggdGhlIGNoYW5uZWxzIGFyZSBzdG9yZWQuCiAqCiAqIHdyaXRlX2ltYWdlaSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfU0lHTkVEX0lOVDgsCiAqIENMX1NJR05FRF9JTlQxNiBhbmQKICogQ0xfU0lHTkVEX0lOVDMyLgogKgogKiB3cml0ZV9pbWFnZXVpIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBpbWFnZSBvYmplY3RzCiAqIGNyZWF0ZWQgd2l0aCBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8gb25lIG9mCiAqIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgogKiBDTF9VTlNJR05FRF9JTlQ4LAogKiBDTF9VTlNJR05FRF9JTlQxNiBhbmQKICogQ0xfVU5TSUdORURfSU5UMzIuCiAqCiAqIFRoZSBiZWhhdmlvciBvZiB3cml0ZV9pbWFnZWYsIHdyaXRlX2ltYWdlaSBhbmQKICogd3JpdGVfaW1hZ2V1aSBmb3IgaW1hZ2Ugb2JqZWN0cyBjcmVhdGVkIHdpdGgKICogaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgdmFsdWVzIG5vdCBzcGVjaWZpZWQgaW4KICogdGhlIGRlc2NyaXB0aW9uIGFib3ZlIG9yIHdpdGggKHgsIHkpIGNvb3JkaW5hdGUKICogdmFsdWVzIHRoYXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2UgKDAgLi4uIGltYWdlIHdpZHRoIC0xLAogKiAwIC4uLiBpbWFnZSBoZWlnaHQgLSAxKSwgcmVzcGVjdGl2ZWx5LCBpcyB1bmRlZmluZWQuCiAqLwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50MiBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50MiBjb29yZCwgdWludDQgY29sb3IpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCB1aW50NCBjb2xvcik7CiNlbmRpZgoKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBmbG9hdCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgZmxvYXQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTggLSBNaXBtYXBzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmIGRlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdCBkZXB0aCk7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQgZGVwdGgpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl8zZF9pbWFnZV93cml0ZXMKCiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciBoYWxmNCB0eXBlCiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CiNlbmRpZgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaCh3cml0ZV9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciByZWFkX3dyaXRlIGltYWdlcwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCB1aW50NCBjb2xvcik7CgojaWZkZWYgY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKI2VuZGlmCgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQsIGZsb2F0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlLCBpbnQ0IGNvb3JkLCBmbG9hdCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmIGRlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQgY29sb3IpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl8zZF9pbWFnZV93cml0ZXMKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2Vfd3JpdGVzCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciBoYWxmNCB0eXBlCiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CiNlbmRpZgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaChyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8vIE5vdGU6IEluIE9wZW5DTCB2MS4wLzEuMS8xLjIsIGltYWdlIGFyZ3VtZW50IG9mIGltYWdlIHF1ZXJ5IGJ1aWx0aW4gZnVuY3Rpb25zIGRvZXMgbm90IGhhdmUKLy8gYWNjZXNzIHF1YWxpZmllciwgd2hpY2ggYnkgZGVmYXVsdCBhc3N1bWUgcmVhZF9vbmx5IGFjY2VzcyBxdWFsaWZpZXIuIEltYWdlIHF1ZXJ5IGJ1aWx0aW4KLy8gZnVuY3Rpb25zIHdpdGggd3JpdGVfb25seSBpbWFnZSBhcmd1bWVudCBzaG91bGQgYWxzbyBiZSBkZWNsYXJlZC4KCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIHdpZHRoIGluIHBpeGVscy4KICoKICAqLwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIGhlaWdodCBpbiBwaXhlbHMuCiAqLwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodChyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQod3JpdGVfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodChyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgaW1hZ2UgZGVwdGggaW4gcGl4ZWxzLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RlcHRoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RlcHRoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kZXB0aChyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gT3BlbkNMIEV4dGVuc2lvbiB2Mi4wIHM5LjE4IC0gTWlwbWFwcwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCiNpZmRlZiBjbF9raHJfbWlwbWFwX2ltYWdlCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIG1pcGxldmVscy4KICovCgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgojZW5kaWYgLy9jbF9raHJfbWlwbWFwX2ltYWdlCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgY2hhbm5lbCBkYXRhIHR5cGUuIFZhbGlkIHZhbHVlcyBhcmU6CiAqIENMS19TTk9STV9JTlQ4CiAqIENMS19TTk9STV9JTlQxNgogKiBDTEtfVU5PUk1fSU5UOAogKiBDTEtfVU5PUk1fSU5UMTYKICogQ0xLX1VOT1JNX1NIT1JUXzU2NQogKiBDTEtfVU5PUk1fU0hPUlRfNTU1CiAqIENMS19VTk9STV9TSE9SVF8xMDEwMTAKICogQ0xLX1NJR05FRF9JTlQ4CiAqIENMS19TSUdORURfSU5UMTYKICogQ0xLX1NJR05FRF9JTlQzMgogKiBDTEtfVU5TSUdORURfSU5UOAogKiBDTEtfVU5TSUdORURfSU5UMTYKICogQ0xLX1VOU0lHTkVEX0lOVDMyCiAqIENMS19IQUxGX0ZMT0FUCiAqIENMS19GTE9BVAogKi8KCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJuIHRoZSBpbWFnZSBjaGFubmVsIG9yZGVyLiBWYWxpZCB2YWx1ZXMgYXJlOgogKiBDTEtfQQogKiBDTEtfUgogKiBDTEtfUngKICogQ0xLX1JHCiAqIENMS19SR3gKICogQ0xLX1JBCiAqIENMS19SR0IKICogQ0xLX1JHQngKICogQ0xLX1JHQkEKICogQ0xLX0FSR0IKICogQ0xLX0JHUkEKICogQ0xLX0lOVEVOU0lUWQogKiBDTEtfTFVNSU5BTkNFCiAqLwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBSZXR1cm4gdGhlIDJEIGltYWdlIHdpZHRoIGFuZCBoZWlnaHQgYXMgYW4gaW50MgogKiB0eXBlLiBUaGUgd2lkdGggaXMgcmV0dXJuZWQgaW4gdGhlIHggY29tcG9uZW50LCBhbmQKICogdGhlIGhlaWdodCBpbiB0aGUgeSBjb21wb25lbnQuCiAqLwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgM0QgaW1hZ2Ugd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIGFzIGFuCiAqIGludDQgdHlwZS4gVGhlIHdpZHRoIGlzIHJldHVybmVkIGluIHRoZSB4CiAqIGNvbXBvbmVudCwgaGVpZ2h0IGluIHRoZSB5IGNvbXBvbmVudCwgZGVwdGggaW4gdGhlIHoKICogY29tcG9uZW50IGFuZCB0aGUgdyBjb21wb25lbnQgaXMgMC4KICovCmludDQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwppbnQ0IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludDQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJuIHRoZSBpbWFnZSBhcnJheSBzaXplLgogKi8KCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5KTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKKiBSZXR1cm4gdGhlIG51bWJlciBvZiBzYW1wbGVzIGFzc29jaWF0ZWQgd2l0aCBpbWFnZQoqLwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMod3JpdGVfb25seSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2VuZGlmCgovLyBPcGVuQ0wgdjIuMCBzNi4xMy4xNSAtIFdvcmstZ3JvdXAgRnVuY3Rpb25zCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX3dvcmtfZ3JvdXBfY29sbGVjdGl2ZV9mdW5jdGlvbnMpCmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYWxsKGludCBwcmVkaWNhdGUpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2FueShpbnQgcHJlZGljYXRlKTsKCiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgbG9jYWxfaWQpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKI2VuZGlmCmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGludCBhLCBzaXplX3QgbG9jYWxfaWQpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChpbnQgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaW50IGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgbG9jYWxfaWQpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IGxvY2FsX2lkKTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IHgsIHNpemVfdCB5LCBzaXplX3Qgeik7CnVsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWxvbmcgYSwgc2l6ZV90IGxvY2FsX2lkKTsKdWxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdCh1bG9uZyBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KHVsb25nIGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGZsb2F0IGEsIHNpemVfdCBsb2NhbF9pZCk7CmZsb2F0IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoZmxvYXQgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKZmxvYXQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChmbG9hdCBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGRvdWJsZSBhLCBzaXplX3QgbG9jYWxfaWQpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChkb3VibGUgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoZG91YmxlIGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9hZGQoaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21pbihoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGhhbGYgeCk7CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4oaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGhhbGYgeCk7CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4oaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGhhbGYgeCk7CiNlbmRpZgppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9hZGQoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4oaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9tYXgoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChpbnQgeCk7CmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGludCB4KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9tYXgoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChpbnQgeCk7CmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGludCB4KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgoaW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4odWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21heCh1aW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQodWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCh1aW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQodWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCh1aW50IHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4obG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21heChsb25nIHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQobG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heChsb25nIHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQobG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heChsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX2FkZCh1bG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4odWxvbmcgeCk7CnVsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KHVsb25nIHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX2FkZChmbG9hdCB4KTsKZmxvYXQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4oZmxvYXQgeCk7CmZsb2F0IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGZsb2F0IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWluKGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY193b3JrX2dyb3VwX2NvbGxlY3RpdmVfZnVuY3Rpb25zKQoKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTYgLSBQaXBlIEZ1bmN0aW9ucwojaWYgZGVmaW5lZChfX29wZW5jbF9jX3BpcGVzKQpib29sIF9fb3ZsZCBpc192YWxpZF9yZXNlcnZlX2lkKHJlc2VydmVfaWRfdCByZXNlcnZlX2lkKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX3BpcGVzKQoKCi8vIE9wZW5DTCB2Mi4wIHM2LjEzLjE3IC0gRW5xdWV1ZSBLZXJuZWxzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8xRChzaXplX3QpOwpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMUQoc2l6ZV90LCBzaXplX3QpOwpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMUQoc2l6ZV90LCBzaXplX3QsIHNpemVfdCk7CgpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMkQoY29uc3Qgc2l6ZV90WzJdKTsKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzJEKGNvbnN0IHNpemVfdFsyXSwgY29uc3Qgc2l6ZV90WzJdKTsKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzJEKGNvbnN0IHNpemVfdFsyXSwgY29uc3Qgc2l6ZV90WzJdLCBjb25zdCBzaXplX3RbMl0pOwoKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzNEKGNvbnN0IHNpemVfdFszXSk7Cm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8zRChjb25zdCBzaXplX3RbM10sIGNvbnN0IHNpemVfdFszXSk7Cm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8zRChjb25zdCBzaXplX3RbM10sIGNvbnN0IHNpemVfdFszXSwgY29uc3Qgc2l6ZV90WzNdKTsKCmludCBfX292bGQgZW5xdWV1ZV9tYXJrZXIocXVldWVfdCwgdWludCwgY29uc3QgY2xrX2V2ZW50X3QqLCBjbGtfZXZlbnRfdCopOwoKdm9pZCBfX292bGQgcmV0YWluX2V2ZW50KGNsa19ldmVudF90KTsKCnZvaWQgX19vdmxkIHJlbGVhc2VfZXZlbnQoY2xrX2V2ZW50X3QpOwoKY2xrX2V2ZW50X3QgX19vdmxkIGNyZWF0ZV91c2VyX2V2ZW50KHZvaWQpOwoKdm9pZCBfX292bGQgc2V0X3VzZXJfZXZlbnRfc3RhdHVzKGNsa19ldmVudF90IGUsIGludCBzdGF0ZSk7Cgpib29sIF9fb3ZsZCBpc192YWxpZF9ldmVudCAoY2xrX2V2ZW50X3QgZXZlbnQpOwoKdm9pZCBfX292bGQgY2FwdHVyZV9ldmVudF9wcm9maWxpbmdfaW5mbyhjbGtfZXZlbnRfdCwgY2xrX3Byb2ZpbGluZ19pbmZvLCBfX2dsb2JhbCB2b2lkKiB2YWx1ZSk7CgpxdWV1ZV90IF9fb3ZsZCBnZXRfZGVmYXVsdF9xdWV1ZSh2b2lkKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTcgLSBTdWItZ3JvdXBzCgojaWYgZGVmaW5lZChjbF9pbnRlbF9zdWJncm91cHMpIHx8IGRlZmluZWQoY2xfa2hyX3N1Ymdyb3VwcykgfHwgZGVmaW5lZChfX29wZW5jbF9jX3N1Ymdyb3VwcykKLy8gU2hhcmVkIFN1YiBHcm91cCBGdW5jdGlvbnMKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9zaXplKHZvaWQpOwp1aW50ICAgIF9fb3ZsZCBnZXRfbWF4X3N1Yl9ncm91cF9zaXplKHZvaWQpOwp1aW50ICAgIF9fb3ZsZCBnZXRfbnVtX3N1Yl9ncm91cHModm9pZCk7CiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdWludCAgICBfX292bGQgZ2V0X2VucXVldWVkX251bV9zdWJfZ3JvdXBzKHZvaWQpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9pZCh2b2lkKTsKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9sb2NhbF9pZCh2b2lkKTsKCnZvaWQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MpOwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9hbGwoaW50IHByZWRpY2F0ZSk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYW55KGludCBwcmVkaWNhdGUpOwoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoaW50ICAgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCh1aW50ICB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkKTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QodWxvbmcgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdChmbG9hdCB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CgppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9hZGQoaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9hZGQodWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZChmbG9hdCB4KTsKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4odWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbihsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oZmxvYXQgeCk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21heChpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21heCh1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGZsb2F0IHgpOwoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQodWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGZsb2F0IHgpOwppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4odWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbih1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4oZmxvYXQgeCk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9tYXgobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heChmbG9hdCB4KTsKCmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChmbG9hdCB4KTsKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4oaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4odWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGZsb2F0IHgpOwppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heChpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgodWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCh1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgoZmxvYXQgeCk7CgojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoaGFsZiB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZChoYWxmIHgpOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oaGFsZiB4KTsKaGFsZiAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGhhbGYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoZG91YmxlIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkKTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbmRpZiAvL2NsX2tocl9zdWJncm91cHMgY2xfaW50ZWxfc3ViZ3JvdXBzIF9fb3BlbmNsX2Nfc3ViZ3JvdXBzCgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfZXh0ZW5kZWRfdHlwZXMpCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBjaGFyIHZhbHVlLCB1aW50IGluZGV4ICk7CmNoYXIyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBjaGFyMyB2YWx1ZSwgdWludCBpbmRleCApOwpjaGFyNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGNoYXI0IHZhbHVlLCB1aW50IGluZGV4ICk7CmNoYXI4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgp1Y2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyMiB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1Y2hhcjMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXI0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWNoYXI0IHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyOCB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWNoYXIxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggc2hvcnQzIHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDggX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDggdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHNob3J0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0MiB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0MyB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0OCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgovLyBzY2FsYXIgaW50IGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKaW50MiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50OCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBpbnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIHVpbnQgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3Vwcwp1aW50MiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVpbnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1aW50NCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50OCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVpbnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIGxvbmcgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3Vwcwpsb25nMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmczIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggbG9uZzMgdmFsdWUsIHVpbnQgaW5kZXggKTsKbG9uZzQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBsb25nNCB2YWx1ZSwgdWludCBpbmRleCApOwpsb25nOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmcxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIHVsb25nIGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKdWxvbmcyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVsb25nMyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZzQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1bG9uZzQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmc4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1bG9uZzE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgovLyBzY2FsYXIgZmxvYXQgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3VwcwpmbG9hdDIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBmbG9hdDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggZmxvYXQzIHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGZsb2F0NCB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDggX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBmbG9hdDggdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGZsb2F0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlICk7CgpjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUgKTsKdWNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbiggc2hvcnQgdmFsdWUgKTsKdXNob3J0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oIHVzaG9ydCB2YWx1ZSApOwoKY2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHVjaGFyIHZhbHVlICk7CnNob3J0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHNob3J0IHZhbHVlICk7CnVzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDE2KQovLyBzY2FsYXIgaGFsZiBicm9hZGNhc3QgaXMgcGFydCBvZiBjbF9raHJfc3ViZ3JvdXBzCmhhbGYyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBoYWxmMyB2YWx1ZSwgdWludCBpbmRleCApOwpoYWxmNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGhhbGY0IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjggdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjE2IHZhbHVlLCB1aW50IGluZGV4ICk7CiNlbmRpZiAgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQovLyBzY2FsYXIgZG91YmxlIGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKZG91YmxlMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTIgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlMyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTMgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTQgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTggdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlMTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBkb3VibGUxNiB2YWx1ZSwgdWludCBpbmRleCApOwojZW5kaWYgIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgIC8vIGNsX2tocl9zdWJncm91cF9leHRlbmRlZF90eXBlcwoKI2lmIGRlZmluZWQoY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX3ZvdGUpCmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9lbGVjdCh2b2lkKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbCggaW50IHByZWRpY2F0ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYW55KCBpbnQgcHJlZGljYXRlICk7CgppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBjaGFyIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVjaGFyIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBpbnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbF9lcXVhbCggdWludCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBsb25nIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVsb25nIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIGZsb2F0IHZhbHVlICk7CgojaWYgZGVmaW5lZChjbF9raHJfZnAxNikKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbF9lcXVhbCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBkb3VibGUgdmFsdWUgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX3ZvdGUKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9iYWxsb3QpCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGNoYXIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjMgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjMgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjQgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjggICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjE2ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhciB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjIgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXIzICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWNoYXIzIHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyNCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVjaGFyNCB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjggIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXIxNiBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWNoYXIxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQyICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0MyAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHNob3J0MyB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBzaG9ydDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQ4ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0MTYgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHNob3J0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQyIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydDMgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVzaG9ydDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdXNob3J0NCBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdXNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ4IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydDE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50IHZhbHVlLCB1aW50IGluZGV4ICk7CmludDIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50MyB2YWx1ZSwgdWludCBpbmRleCApOwppbnQ0ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBpbnQ0IHZhbHVlLCB1aW50IGluZGV4ICk7CmludDggICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MTYgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVpbnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDMgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDggICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDE2ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBsb25nIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmczICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmczIHZhbHVlLCB1aW50IGluZGV4ICk7Cmxvbmc0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmc0IHZhbHVlLCB1aW50IGluZGV4ICk7Cmxvbmc4ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcxNiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmcxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmcgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmcyICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMyAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVsb25nMyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZzQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1bG9uZzQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmc4ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMTYgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVsb25nMTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0IHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0MiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0MiB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDMgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBmbG9hdDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQ0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggZmxvYXQ0IHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0OCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0OCB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBmbG9hdDE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX2Jyb2FkY2FzdF9maXJzdCggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIGZsb2F0IHZhbHVlICk7Cgp1aW50NCAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90KCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIF9fY25mbiBzdWJfZ3JvdXBfaW52ZXJzZV9iYWxsb3QoIHVpbnQ0IHZhbHVlICk7CmludCAgICAgX19vdmxkIF9fY25mbiBzdWJfZ3JvdXBfYmFsbG90X2JpdF9leHRyYWN0KCB1aW50NCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50ICAgIF9fb3ZsZCBfX2NuZm4gc3ViX2dyb3VwX2JhbGxvdF9iaXRfY291bnQoIHVpbnQ0IHZhbHVlICk7Cgp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2luY2x1c2l2ZV9zY2FuKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2V4Y2x1c2l2ZV9zY2FuKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2ZpbmRfbHNiKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2ZpbmRfbXNiKCB1aW50NCB2YWx1ZSApOwoKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZXFfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZ2VfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZ3RfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfbGVfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfbHRfbWFzayh2b2lkKTsKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDE2KQpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBoYWxmIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYyIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYzICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYzIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGY0IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY4ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGY4IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYxNiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX2Jyb2FkY2FzdF9maXJzdCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggZG91YmxlIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTIgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUyIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTMgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUzIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGU0IHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTggIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGU4IHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKZG91YmxlICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIGRvdWJsZSB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwNjQKCiNlbmRpZiAvLyBjbF9raHJfc3ViZ3JvdXBfYmFsbG90CgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfbm9uX3VuaWZvcm1fYXJpdGhtZXRpYykKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX211bCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21pbiggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21heCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYW5kKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FuZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYW5kKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9vciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWNoYXIgdmFsdWUgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV94b3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfeG9yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV94b3IoIGludCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWxvbmcgdmFsdWUgKTsKCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggc2hvcnQgdmFsdWUgKTsKdXNob3J0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGludCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYW5kKCB1aW50IHZhbHVlICk7CmxvbmcgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdWxvbmcgdmFsdWUgKTsKCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfb3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggc2hvcnQgdmFsdWUgKTsKdXNob3J0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCB1aW50IHZhbHVlICk7CmxvbmcgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfb3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX3hvciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FuZCggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX29yKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX29yKCB1bG9uZyB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV94b3IoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1bG9uZyB2YWx1ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9sb2dpY2FsX2FuZCggaW50IHByZWRpY2F0ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2xvZ2ljYWxfb3IoIGludCBwcmVkaWNhdGUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2xvZ2ljYWxfYW5kKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9sb2dpY2FsX29yKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2xvZ2ljYWxfYW5kKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9sb2dpY2FsX29yKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggaGFsZiB2YWx1ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggaGFsZiB2YWx1ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FkZCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21heCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBkb3VibGUgdmFsdWUgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX2FyaXRobWV0aWMKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9zaHVmZmxlKQpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggY2hhciB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWNoYXIgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0IHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGludCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWludCB2YWx1ZSwgdWludCBpbmRleCApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggbG9uZyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWxvbmcgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0IHZhbHVlLCB1aW50IGluZGV4ICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGNoYXIgdmFsdWUsIHVpbnQgbWFzayApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVjaGFyIHZhbHVlLCB1aW50IG1hc2sgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydCB2YWx1ZSwgdWludCBtYXNrICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0IHZhbHVlLCB1aW50IG1hc2sgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBpbnQgdmFsdWUsIHVpbnQgbWFzayApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQgdmFsdWUsIHVpbnQgbWFzayApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGxvbmcgdmFsdWUsIHVpbnQgbWFzayApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVsb25nIHZhbHVlLCB1aW50IG1hc2sgKTsKZmxvYXQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdCB2YWx1ZSwgdWludCBtYXNrICk7CgojaWYgZGVmaW5lZChjbF9raHJfZnAxNikKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGhhbGYgdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBoYWxmIHZhbHVlLCB1aW50IG1hc2sgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgojaWYgZGVmaW5lZChjbF9raHJfZnA2NCkKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGRvdWJsZSB2YWx1ZSwgdWludCBpbmRleCApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGRvdWJsZSB2YWx1ZSwgdWludCBtYXNrICk7CiNlbmRpZiAvLyBjbF9raHJfZnA2NAoKI2VuZGlmIC8vIGNsX2tocl9zdWJncm91cF9zaHVmZmxlCgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfc2h1ZmZsZV9yZWxhdGl2ZSkKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGNoYXIgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVjaGFyIHZhbHVlLCB1aW50IGRlbHRhICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydCB2YWx1ZSwgdWludCBkZWx0YSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV91cCggdXNob3J0IHZhbHVlLCB1aW50IGRlbHRhICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGxvbmcgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVsb25nIHZhbHVlLCB1aW50IGRlbHRhICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdCB2YWx1ZSwgdWludCBkZWx0YSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggY2hhciB2YWx1ZSwgdWludCBkZWx0YSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1Y2hhciB2YWx1ZSwgdWludCBkZWx0YSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBzaG9ydCB2YWx1ZSwgdWludCBkZWx0YSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50IHZhbHVlLCB1aW50IGRlbHRhICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggbG9uZyB2YWx1ZSwgdWludCBkZWx0YSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1bG9uZyB2YWx1ZSwgdWludCBkZWx0YSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdCB2YWx1ZSwgdWludCBkZWx0YSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBoYWxmIHZhbHVlLCB1aW50IGRlbHRhICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGhhbGYgdmFsdWUsIHVpbnQgZGVsdGEgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgojaWYgZGVmaW5lZChjbF9raHJfZnA2NCkKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGRvdWJsZSB2YWx1ZSwgdWludCBkZWx0YSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBkb3VibGUgdmFsdWUsIHVpbnQgZGVsdGEgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX3NodWZmbGVfcmVsYXRpdmUKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9jbHVzdGVyZWRfcmVkdWNlKQpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYWRkKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYWRkKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbXVsKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbXVsKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWF4KCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWF4KCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYW5kKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYW5kKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVjaGFyIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX29yKCBzaG9ydCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9vciggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX29yKCBpbnQgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVpbnQgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVsb25nIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfeG9yKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfeG9yKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbG9naWNhbF9hbmQoIGludCBwcmVkaWNhdGUsIHVpbnQgY2x1c3RlcnNpemUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbG9naWNhbF9vciggaW50IHByZWRpY2F0ZSwgdWludCBjbHVzdGVyc2l6ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggaGFsZiB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGhhbGYgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCBoYWxmIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggaGFsZiB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwNjQKCiNlbmRpZiAvLyBjbF9raHJfc3ViZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZQoKI2lmIGRlZmluZWQoY2xfa2hyX2V4dGVuZGVkX2JpdF9vcHMpCmNoYXIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoY2hhciwgY2hhciwgdWludCwgdWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVjaGFyLCB1Y2hhciwgdWludCwgdWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHNob3J0LCBzaG9ydCwgdWludCwgdWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1c2hvcnQsIHVzaG9ydCwgdWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChpbnQsIGludCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWludCwgdWludCwgdWludCwgdWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQobG9uZywgbG9uZywgdWludCwgdWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVsb25nLCB1bG9uZywgdWludCwgdWludCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXIyLCBjaGFyMiwgdWludCwgdWludCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjIsIHVjaGFyMiwgdWludCwgdWludCk7CnNob3J0MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDIsIHNob3J0MiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0MiwgdXNob3J0MiwgdWludCwgdWludCk7CmludDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50MiwgaW50MiwgdWludCwgdWludCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQyLCB1aW50MiwgdWludCwgdWludCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmcyLCBsb25nMiwgdWludCwgdWludCk7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzIsIHVsb25nMiwgdWludCwgdWludCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXIzLCBjaGFyMywgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjMsIHVjaGFyMywgdWludCwgdWludCk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDMsIHNob3J0MywgdWludCwgdWludCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0MywgdXNob3J0MywgdWludCwgdWludCk7CmludDMgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50MywgaW50MywgdWludCwgdWludCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQzLCB1aW50MywgdWludCwgdWludCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmczLCBsb25nMywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzMsIHVsb25nMywgdWludCwgdWludCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXI0LCBjaGFyNCwgdWludCwgdWludCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjQsIHVjaGFyNCwgdWludCwgdWludCk7CnNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDQsIHNob3J0NCwgdWludCwgdWludCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0NCwgdXNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50NCwgaW50NCwgdWludCwgdWludCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQ0LCB1aW50NCwgdWludCwgdWludCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmc0LCBsb25nNCwgdWludCwgdWludCk7CnVsb25nNCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzQsIHVsb25nNCwgdWludCwgdWludCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXI4LCBjaGFyOCwgdWludCwgdWludCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjgsIHVjaGFyOCwgdWludCwgdWludCk7CnNob3J0OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDgsIHNob3J0OCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0OCwgdXNob3J0OCwgdWludCwgdWludCk7CmludDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50OCwgaW50OCwgdWludCwgdWludCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQ4LCB1aW50OCwgdWludCwgdWludCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmc4LCBsb25nOCwgdWludCwgdWludCk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzgsIHVsb25nOCwgdWludCwgdWludCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChjaGFyMTYsIGNoYXIxNiwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWNoYXIxNiwgdWNoYXIxNiwgdWludCwgdWludCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoc2hvcnQxNiwgc2hvcnQxNiwgdWludCwgdWludCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVzaG9ydDE2LCB1c2hvcnQxNiwgdWludCwgdWludCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGludDE2LCBpbnQxNiwgdWludCwgdWludCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1aW50MTYsIHVpbnQxNiwgdWludCwgdWludCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChsb25nMTYsIGxvbmcxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWxvbmcxNiwgdWxvbmcxNiwgdWludCwgdWludCk7CgpjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhciwgdWludCwgdWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQsIHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChpbnQsIHVpbnQsIHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZywgdWludCwgdWludCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhcjIsIHVpbnQsIHVpbnQpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChzaG9ydDIsIHVpbnQsIHVpbnQpOwppbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50MiwgdWludCwgdWludCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZzIsIHVpbnQsIHVpbnQpOwpjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGNoYXIzLCB1aW50LCB1aW50KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQzLCB1aW50LCB1aW50KTsKaW50MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGludDMsIHVpbnQsIHVpbnQpOwpsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGxvbmczLCB1aW50LCB1aW50KTsKY2hhcjQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChjaGFyNCwgdWludCwgdWludCk7CnNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChpbnQ0LCB1aW50LCB1aW50KTsKbG9uZzQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChsb25nNCwgdWludCwgdWludCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhcjgsIHVpbnQsIHVpbnQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChzaG9ydDgsIHVpbnQsIHVpbnQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50OCwgdWludCwgdWludCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZzgsIHVpbnQsIHVpbnQpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChjaGFyMTYsIHVpbnQsIHVpbnQpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQxNiwgdWludCwgdWludCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50MTYsIHVpbnQsIHVpbnQpOwpsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChsb25nMTYsIHVpbnQsIHVpbnQpOwoKY2hhciBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVjaGFyLCB1aW50LCB1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQsIHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50LCB1aW50LCB1aW50KTsKbG9uZyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVsb25nLCB1aW50LCB1aW50KTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjIsIHVpbnQsIHVpbnQpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQyLCB1aW50LCB1aW50KTsKaW50MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVpbnQyLCB1aW50LCB1aW50KTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzIsIHVpbnQsIHVpbnQpOwpjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVjaGFyMywgdWludCwgdWludCk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVzaG9ydDMsIHVpbnQsIHVpbnQpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWludDMsIHVpbnQsIHVpbnQpOwpsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVsb25nMywgdWludCwgdWludCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWNoYXI0LCB1aW50LCB1aW50KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodXNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50NCwgdWludCwgdWludCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWxvbmc0LCB1aW50LCB1aW50KTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjgsIHVpbnQsIHVpbnQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQ4LCB1aW50LCB1aW50KTsKaW50OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVpbnQ4LCB1aW50LCB1aW50KTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzgsIHVpbnQsIHVpbnQpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjE2LCB1aW50LCB1aW50KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVzaG9ydDE2LCB1aW50LCB1aW50KTsKaW50MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50MTYsIHVpbnQsIHVpbnQpOwpsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzE2LCB1aW50LCB1aW50KTsKCnVjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyLCB1aW50LCB1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGludCwgdWludCwgdWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nLCB1aW50LCB1aW50KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyMiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHNob3J0MiwgdWludCwgdWludCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQyLCB1aW50LCB1aW50KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nMiwgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoY2hhcjMsIHVpbnQsIHVpbnQpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydDMsIHVpbnQsIHVpbnQpOwp1aW50MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoaW50MywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQobG9uZzMsIHVpbnQsIHVpbnQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGNoYXI0LCB1aW50LCB1aW50KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoc2hvcnQ0LCB1aW50LCB1aW50KTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGludDQsIHVpbnQsIHVpbnQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGxvbmc0LCB1aW50LCB1aW50KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyOCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHNob3J0OCwgdWludCwgdWludCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQ4LCB1aW50LCB1aW50KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nOCwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGNoYXIxNiwgdWludCwgdWludCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydDE2LCB1aW50LCB1aW50KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGxvbmcxNiwgdWludCwgdWludCk7Cgp1Y2hhciBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWNoYXIsIHVpbnQsIHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQsIHVpbnQsIHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWxvbmcsIHVpbnQsIHVpbnQpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyMiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydDIsIHVpbnQsIHVpbnQpOwp1aW50MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWludDIsIHVpbnQsIHVpbnQpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nMiwgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWNoYXIzLCB1aW50LCB1aW50KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodXNob3J0MywgdWludCwgdWludCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1aW50MywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWxvbmczLCB1aW50LCB1aW50KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1Y2hhcjQsIHVpbnQsIHVpbnQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1c2hvcnQ0LCB1aW50LCB1aW50KTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQ0LCB1aW50LCB1aW50KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1bG9uZzQsIHVpbnQsIHVpbnQpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyOCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydDgsIHVpbnQsIHVpbnQpOwp1aW50OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWludDgsIHVpbnQsIHVpbnQpOwp1bG9uZzggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nOCwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyMTYsIHVpbnQsIHVpbnQpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodXNob3J0MTYsIHVpbnQsIHVpbnQpOwp1aW50MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nMTYsIHVpbnQsIHVpbnQpOwoKY2hhciBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1aW50KTsKbG9uZyBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nKTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nMik7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1aW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1bG9uZzMpOwpjaGFyNCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2Uoc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UoaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWxvbmc0KTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nOCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1Y2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1bG9uZzE2KTsKI2VuZGlmIC8vIGNsX2tocl9leHRlbmRlZF9iaXRfb3BzCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0KQp1aW50IF9fb3ZsZCBfX2NuZm4gZG90KHVjaGFyNCwgdWNoYXI0KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90KGNoYXI0LCBjaGFyNCk7CmludCBfX292bGQgX19jbmZuIGRvdCh1Y2hhcjQsIGNoYXI0KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90KGNoYXI0LCB1Y2hhcjQpOwoKdWludCBfX292bGQgX19jbmZuIGRvdF9hY2Nfc2F0KHVjaGFyNCwgdWNoYXI0LCB1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXQoY2hhcjQsIGNoYXI0LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdCh1Y2hhcjQsIGNoYXI0LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdChjaGFyNCwgdWNoYXI0LCBpbnQpOwojZW5kaWYgLy8gX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdAoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdF9wYWNrZWQpCnVpbnQgX19vdmxkIF9fY25mbiBkb3RfNHg4cGFja2VkX3V1X3VpbnQodWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGRvdF80eDhwYWNrZWRfc3NfaW50KHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfNHg4cGFja2VkX3VzX2ludCh1aW50LCB1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90XzR4OHBhY2tlZF9zdV9pbnQodWludCwgdWludCk7Cgp1aW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXRfNHg4cGFja2VkX3V1X3VpbnQodWludCwgdWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGRvdF9hY2Nfc2F0XzR4OHBhY2tlZF9zc19pbnQodWludCwgdWludCwgaW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXRfNHg4cGFja2VkX3VzX2ludCh1aW50LCB1aW50LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdF80eDhwYWNrZWRfc3VfaW50KHVpbnQsIHVpbnQsIGludCk7CiNlbmRpZiAvLyBfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0X3BhY2tlZAoKI2lmIGRlZmluZWQoY2xfaW50ZWxfc3ViZ3JvdXBzKQovLyBJbnRlbC1TcGVjaWZpYyBTdWIgR3JvdXAgRnVuY3Rpb25zCmZsb2F0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggZmxvYXQgIHgsIHVpbnQgYyApOwpmbG9hdDIgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0MiB4LCB1aW50IGMgKTsKZmxvYXQzICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBmbG9hdDMgeCwgdWludCBjICk7CmZsb2F0NCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggZmxvYXQ0IHgsIHVpbnQgYyApOwpmbG9hdDggIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0OCB4LCB1aW50IGMgKTsKZmxvYXQxNiBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBmbG9hdDE2IHgsIHVpbnQgYyApOwoKaW50ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBpbnQgIHgsIHVpbnQgYyApOwppbnQyICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGludDIgeCwgdWludCBjICk7CmludDMgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaW50MyB4LCB1aW50IGMgKTsKaW50NCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBpbnQ0IHgsIHVpbnQgYyApOwppbnQ4ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGludDggeCwgdWludCBjICk7CmludDE2ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaW50MTYgeCwgdWludCBjICk7Cgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQgIHgsIHVpbnQgYyApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQyIHgsIHVpbnQgYyApOwp1aW50MyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQzIHgsIHVpbnQgYyApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQ0IHgsIHVpbnQgYyApOwp1aW50OCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQ4IHgsIHVpbnQgYyApOwp1aW50MTYgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQxNiB4LCB1aW50IGMgKTsKCmxvbmcgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggbG9uZyB4LCB1aW50IGMgKTsKdWxvbmcgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1bG9uZyB4LCB1aW50IGMgKTsKCmZsb2F0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdCAgY3VyLCBmbG9hdCAgbmV4dCwgdWludCBjICk7CmZsb2F0MiAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDIgY3VyLCBmbG9hdDIgbmV4dCwgdWludCBjICk7CmZsb2F0MyAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDMgY3VyLCBmbG9hdDMgbmV4dCwgdWludCBjICk7CmZsb2F0NCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDQgY3VyLCBmbG9hdDQgbmV4dCwgdWludCBjICk7CmZsb2F0OCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDggY3VyLCBmbG9hdDggbmV4dCwgdWludCBjICk7CmZsb2F0MTYgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDE2IGN1ciwgZmxvYXQxNiBuZXh0LCB1aW50IGMgKTsKCmludCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBpbnQgIGN1ciwgaW50ICBuZXh0LCB1aW50IGMgKTsKaW50MiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGludDIgY3VyLCBpbnQyIG5leHQsIHVpbnQgYyApOwppbnQzICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50MyBjdXIsIGludDMgbmV4dCwgdWludCBjICk7CmludDQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBpbnQ0IGN1ciwgaW50NCBuZXh0LCB1aW50IGMgKTsKaW50OCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGludDggY3VyLCBpbnQ4IG5leHQsIHVpbnQgYyApOwppbnQxNiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50MTYgY3VyLCBpbnQxNiBuZXh0LCB1aW50IGMgKTsKCnVpbnQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1aW50ICBjdXIsIHVpbnQgIG5leHQsIHVpbnQgYyApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdWludDIgY3VyLCB1aW50MiBuZXh0LCB1aW50IGMgKTsKdWludDMgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQzIGN1ciwgdWludDMgbmV4dCwgdWludCBjICk7CnVpbnQ0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1aW50NCBjdXIsIHVpbnQ0IG5leHQsIHVpbnQgYyApOwp1aW50OCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdWludDggY3VyLCB1aW50OCBuZXh0LCB1aW50IGMgKTsKdWludDE2ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQxNiBjdXIsIHVpbnQxNiBuZXh0LCB1aW50IGMgKTsKCmxvbmcgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBsb25nIHByZXYsIGxvbmcgY3VyLCB1aW50IGMgKTsKdWxvbmcgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVsb25nIHByZXYsIHVsb25nIGN1ciwgdWludCBjICk7CgpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGZsb2F0ICBwcmV2LCBmbG9hdCAgY3VyLCB1aW50IGMgKTsKZmxvYXQyICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdDIgcHJldiwgZmxvYXQyIGN1ciwgdWludCBjICk7CmZsb2F0MyAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggZmxvYXQzIHByZXYsIGZsb2F0MyBjdXIsIHVpbnQgYyApOwpmbG9hdDQgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGZsb2F0NCBwcmV2LCBmbG9hdDQgY3VyLCB1aW50IGMgKTsKZmxvYXQ4ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdDggcHJldiwgZmxvYXQ4IGN1ciwgdWludCBjICk7CmZsb2F0MTYgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggZmxvYXQxNiBwcmV2LCBmbG9hdDE2IGN1ciwgdWludCBjICk7CgppbnQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludCAgcHJldiwgaW50ICBjdXIsIHVpbnQgYyApOwppbnQyICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDIgcHJldiwgaW50MiBjdXIsIHVpbnQgYyApOwppbnQzICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDMgcHJldiwgaW50MyBjdXIsIHVpbnQgYyApOwppbnQ0ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDQgcHJldiwgaW50NCBjdXIsIHVpbnQgYyApOwppbnQ4ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDggcHJldiwgaW50OCBjdXIsIHVpbnQgYyApOwppbnQxNiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDE2IHByZXYsIGludDE2IGN1ciwgdWludCBjICk7Cgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQgIHByZXYsIHVpbnQgIGN1ciwgdWludCBjICk7CnVpbnQyICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggdWludDIgcHJldiwgdWludDIgY3VyLCB1aW50IGMgKTsKdWludDMgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1aW50MyBwcmV2LCB1aW50MyBjdXIsIHVpbnQgYyApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQ0IHByZXYsIHVpbnQ0IGN1ciwgdWludCBjICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggdWludDggcHJldiwgdWludDggY3VyLCB1aW50IGMgKTsKdWludDE2ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1aW50MTYgcHJldiwgdWludDE2IGN1ciwgdWludCBjICk7Cgpsb25nICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGxvbmcgcHJldiwgbG9uZyBjdXIsIHVpbnQgYyApOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVsb25nIHByZXYsIHVsb25nIGN1ciwgdWludCBjICk7CgpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdCAgeCwgdWludCBjICk7CmZsb2F0MiAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGZsb2F0MiB4LCB1aW50IGMgKTsKZmxvYXQzICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggZmxvYXQzIHgsIHVpbnQgYyApOwpmbG9hdDQgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdDQgeCwgdWludCBjICk7CmZsb2F0OCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGZsb2F0OCB4LCB1aW50IGMgKTsKZmxvYXQxNiBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggZmxvYXQxNiB4LCB1aW50IGMgKTsKCmludCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludCAgeCwgdWludCBjICk7CmludDIgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDIgeCwgdWludCBjICk7CmludDMgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDMgeCwgdWludCBjICk7CmludDQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDQgeCwgdWludCBjICk7CmludDggICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDggeCwgdWludCBjICk7CmludDE2ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDE2IHgsIHVpbnQgYyApOwoKdWludCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdWludCAgeCwgdWludCBjICk7CnVpbnQyICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQyIHgsIHVpbnQgYyApOwp1aW50MyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1aW50MyB4LCB1aW50IGMgKTsKdWludDQgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdWludDQgeCwgdWludCBjICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQ4IHgsIHVpbnQgYyApOwp1aW50MTYgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1aW50MTYgeCwgdWludCBjICk7Cgpsb25nICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBsb25nIHgsIHVpbnQgYyApOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1bG9uZyB4LCB1aW50IGMgKTsKCnVpbnQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVpbnQ0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDQoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQgKTsKdWludDggICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkOCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQyKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkNChyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKdWludDIgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkMiggY29uc3QgX19nbG9iYWwgdWludCogcCApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQ0KCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDgoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQgZGF0YSk7CnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1aW50MiBkYXRhKTsKdm9pZCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZTQod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGRhdGEpOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDggZGF0YSk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQgZGF0YSk7CnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUyKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1aW50MiBkYXRhKTsKdm9pZCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZTQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGRhdGEpOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOChyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDggZGF0YSk7CiNlbmRpZiAvLyBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUoIF9fZ2xvYmFsIHVpbnQqIHAsIHVpbnQgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlMiggX19nbG9iYWwgdWludCogcCwgdWludDIgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlNCggX19nbG9iYWwgdWludCogcCwgdWludDQgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOCggX19nbG9iYWwgdWludCogcCwgdWludDggZGF0YSApOwoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaGFsZiB4LCB1aW50IGMgKTsKaGFsZiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGhhbGYgcHJldiwgaGFsZiBjdXIsIHVpbnQgYyApOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGhhbGYgcHJldiwgaGFsZiBjdXIsIHVpbnQgYyApOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBoYWxmIHgsIHVpbnQgYyApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGRvdWJsZSB4LCB1aW50IGMgKTsKZG91YmxlICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGRvdWJsZSBwcmV2LCBkb3VibGUgY3VyLCB1aW50IGMgKTsKZG91YmxlICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBkb3VibGUgcHJldiwgZG91YmxlIGN1ciwgdWludCBjICk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGRvdWJsZSB4LCB1aW50IGMgKTsKI2VuZGlmCgojZW5kaWYgLy9jbF9pbnRlbF9zdWJncm91cHMKCiNpZiBkZWZpbmVkKGNsX2ludGVsX3N1Ymdyb3Vwc19zaG9ydCkKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydCAgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQyICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDIgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQzICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDMgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQ0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDQgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDggeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0ICB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDIgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKdXNob3J0MyAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCB1c2hvcnQzIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0NCB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDggeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0ICAgeCwgdWludCBjICk7CnNob3J0MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MiAgeCwgdWludCBjICk7CnNob3J0MyAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MyAgeCwgdWludCBjICk7CnNob3J0NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0NCAgeCwgdWludCBjICk7CnNob3J0OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0OCAgeCwgdWludCBjICk7CnNob3J0MTYgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MTYgeCwgdWludCBjKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVzaG9ydCAgIHgsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQyICB4LCB1aW50IGMgKTsKdXNob3J0MyAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggdXNob3J0MyAgeCwgdWludCBjICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVzaG9ydDQgIHgsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQ4ICB4LCB1aW50IGMgKTsKdXNob3J0MTYgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggdXNob3J0MTYgeCwgdWludCBjICk7CgpzaG9ydCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0ICAgY3VyLCBzaG9ydCAgIG5leHQsIHVpbnQgYyApOwpzaG9ydDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MiAgY3VyLCBzaG9ydDIgIG5leHQsIHVpbnQgYyApOwpzaG9ydDMgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MyAgY3VyLCBzaG9ydDMgIG5leHQsIHVpbnQgYyApOwpzaG9ydDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0NCAgY3VyLCBzaG9ydDQgIG5leHQsIHVpbnQgYyApOwpzaG9ydDggICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0OCAgY3VyLCBzaG9ydDggIG5leHQsIHVpbnQgYyApOwpzaG9ydDE2ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MTYgY3VyLCBzaG9ydDE2IG5leHQsIHVpbnQgYyApOwoKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQgICBjdXIsIHVzaG9ydCAgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVzaG9ydDIgIGN1ciwgdXNob3J0MiAgbmV4dCwgdWludCBjICk7CnVzaG9ydDMgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdXNob3J0MyAgY3VyLCB1c2hvcnQzICBuZXh0LCB1aW50IGMgKTsKdXNob3J0NCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQ0ICBjdXIsIHVzaG9ydDQgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVzaG9ydDggIGN1ciwgdXNob3J0OCAgbmV4dCwgdWludCBjICk7CnVzaG9ydDE2ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdXNob3J0MTYgY3VyLCB1c2hvcnQxNiBuZXh0LCB1aW50IGMgKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHNob3J0ICAgY3VyLCBzaG9ydCAgIG5leHQsIHVpbnQgYyApOwpzaG9ydDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydDIgIGN1ciwgc2hvcnQyICBuZXh0LCB1aW50IGMgKTsKc2hvcnQzICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggc2hvcnQzICBjdXIsIHNob3J0MyAgbmV4dCwgdWludCBjICk7CnNob3J0NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHNob3J0NCAgY3VyLCBzaG9ydDQgIG5leHQsIHVpbnQgYyApOwpzaG9ydDggICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydDggIGN1ciwgc2hvcnQ4ICBuZXh0LCB1aW50IGMgKTsKc2hvcnQxNiAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggc2hvcnQxNiBjdXIsIHNob3J0MTYgbmV4dCwgdWludCBjICk7Cgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQgICBjdXIsIHVzaG9ydCAgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQyICBjdXIsIHVzaG9ydDIgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQzICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQzICBjdXIsIHVzaG9ydDMgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ0ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQ0ICBjdXIsIHVzaG9ydDQgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQ4ICBjdXIsIHVzaG9ydDggIG5leHQsIHVpbnQgYyApOwp1c2hvcnQxNiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQxNiBjdXIsIHVzaG9ydDE2IG5leHQsIHVpbnQgYyApOwoKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHNob3J0ICAgeCwgdWludCBjICk7CnNob3J0MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydDIgIHgsIHVpbnQgYyApOwpzaG9ydDMgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggc2hvcnQzICB4LCB1aW50IGMgKTsKc2hvcnQ0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHNob3J0NCAgeCwgdWludCBjICk7CnNob3J0OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydDggIHgsIHVpbnQgYyApOwpzaG9ydDE2ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggc2hvcnQxNiB4LCB1aW50IGMgKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1c2hvcnQgICB4LCB1aW50IGMgKTsKdXNob3J0MiAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVzaG9ydDIgIHgsIHVpbnQgYyApOwp1c2hvcnQzICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0MyAgeCwgdWludCBjICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1c2hvcnQ0ICB4LCB1aW50IGMgKTsKdXNob3J0OCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVzaG9ydDggIHgsIHVpbnQgYyApOwp1c2hvcnQxNiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0MTYgeCwgdWludCBjICk7CgpzaG9ydCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9yZWR1Y2VfYWRkKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfcmVkdWNlX2FkZCggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3JlZHVjZV9taW4oIHNob3J0ICAgeCApOwp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9yZWR1Y2VfbWluKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfcmVkdWNlX21heCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHVzaG9ydCAgeCApOwoKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgIHggKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggdXNob3J0ICB4ICk7Cgp1aW50ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwp1aW50MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKdWludDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpNCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkICk7CnVpbnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTgoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp1aW50ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKdWludDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpMiggcmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwp1aW50NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWk0KCByZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkICk7CnVpbnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTgoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKdWludCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpKCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7CnVpbnQyICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTIoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKdWludDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpNCggY29uc3QgX19nbG9iYWwgdWludCogcCApOwp1aW50OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWk4KCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7Cgp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQgZGF0YSApOwp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpMiggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkLCB1aW50MiBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk0KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ0IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTgoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCwgdWludDggZGF0YSApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpKCByZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkLCB1aW50IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTIoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQyIGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTQoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ0IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTgoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ4IGRhdGEgKTsKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aSggX19nbG9iYWwgdWludCogcCwgdWludCBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWkyKCBfX2dsb2JhbCB1aW50KiBwLCB1aW50MiBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk0KCBfX2dsb2JhbCB1aW50KiBwLCB1aW50NCBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk4KCBfX2dsb2JhbCB1aW50KiBwLCB1aW50OCBkYXRhICk7Cgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDIgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM0KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDggICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM4KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzMihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM0KHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdXNob3J0OCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91czgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzKCAgY29uc3QgX19nbG9iYWwgdXNob3J0KiBwICk7CnVzaG9ydDIgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMyKCBjb25zdCBfX2dsb2JhbCB1c2hvcnQqIHAgKTsKdXNob3J0NCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91czQoIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCogcCApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzOCggY29uc3QgX19nbG9iYWwgdXNob3J0KiBwICk7Cgp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91cyh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0ICBkYXRhKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1c2hvcnQyIGRhdGEpOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czQod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydDQgZGF0YSk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzOCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0OCBkYXRhKTsKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydCAgZGF0YSk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzMihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0MiBkYXRhKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXM0KHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1c2hvcnQ0IGRhdGEpOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydDggZGF0YSk7CiNlbmRpZiAvLyBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzKCAgX19nbG9iYWwgdXNob3J0KiBwLCB1c2hvcnQgIGRhdGEgKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMyKCBfX2dsb2JhbCB1c2hvcnQqIHAsIHVzaG9ydDIgZGF0YSApOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czQoIF9fZ2xvYmFsIHVzaG9ydCogcCwgdXNob3J0NCBkYXRhICk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzOCggX19nbG9iYWwgdXNob3J0KiBwLCB1c2hvcnQ4IGRhdGEgKTsKI2VuZGlmIC8vIGNsX2ludGVsX3N1Ymdyb3Vwc19zaG9ydAoKI2lmZGVmIGNsX2ludGVsX2RldmljZV9zaWRlX2F2Y19tb3Rpb25fZXN0aW1hdGlvbgojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uIDogYmVnaW4KCi8vIE1DRSBidWlsdC1pbiBmdW5jdGlvbnMKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludGVyX2Jhc2VfbXVsdGlfcmVmZXJlbmNlX3BlbmFsdHkoCiAgICB1Y2hhciBzbGljZV90eXBlLCB1Y2hhciBxcCk7CnVsb25nIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9pbnRlcl9zaGFwZV9wZW5hbHR5KAogICAgdWNoYXIgc2xpY2VfdHlwZSwgdWNoYXIgcXApOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2RlZmF1bHRfaW50ZXJfZGlyZWN0aW9uX3BlbmFsdHkoCiAgICB1Y2hhciBzbGljZV90eXBlLCB1Y2hhciBxcCk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2x1bWFfc2hhcGVfcGVuYWx0eSgKICAgIHVjaGFyIHNsaWNlX3R5cGUsIHVjaGFyIHFwKTsKdWludDIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludGVyX21vdGlvbl92ZWN0b3JfY29zdF90YWJsZSgKICAgIHVjaGFyIHNsaWNlX3R5cGUsIHVjaGFyIHFwKTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2x1bWFfbW9kZV9wZW5hbHR5KAogICAgdWNoYXIgc2xpY2VfdHlwZSwgdWNoYXIgcXApOwoKdWludDIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2hpZ2hfcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9tZWRpdW1fcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9sb3dfcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X25vbl9kY19sdW1hX2ludHJhX3BlbmFsdHkoKTsKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2Nocm9tYV9tb2RlX2Jhc2VfcGVuYWx0eSgpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfaW50ZXJfc2hhcGVfcGVuYWx0eSgKICAgIHVsb25nIHBhY2tlZF9zaGFwZV9wZW5hbHR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2ludGVyX2RpcmVjdGlvbl9wZW5hbHR5KAogICAgdWNoYXIgZGlyZWN0aW9uX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfbW90aW9uX3ZlY3Rvcl9jb3N0X2Z1bmN0aW9uKAogICAgdWxvbmcgcGFja2VkX2Nvc3RfY2VudGVyX2RlbHRhLCB1aW50MiBwYWNrZWRfY29zdF90YWJsZSwKICAgIHVjaGFyIGNvc3RfcHJlY2lzaW9uLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2FjX29ubHlfaGFhcigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfc291cmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdHkoCiAgICB1Y2hhciBzcmNfZmllbGRfcG9sYXJpdHksIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfc2luZ2xlX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgcmVmX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2R1YWxfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdGllcygKICAgIHVjaGFyIGZ3ZF9yZWZfZmllbGRfcG9sYXJpdHksIHVjaGFyIGJ3ZF9yZWZfZmllbGRfcG9sYXJpdHksCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7Cgp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX21ham9yX3NoYXBlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9pbnRlcl9taW5vcl9zaGFwZXMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX2RpcmVjdGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdGllcygKICAgIHVpbnQgcGFja2VkX3JlZmVyZW5jZV9pZHMsIHVpbnQgcGFja2VkX3JlZmVyZW5jZV9wYXJhbWV0ZXJfZmllbGRfcG9sYXJpdGllcywKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CgovLyBJTUUgYnVpbHQtaW4gZnVuY3Rpb25zCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfaW5pdGlhbGl6ZSgKICAgIHVzaG9ydDIgc3JjX2Nvb3JkLCB1Y2hhciBwYXJ0aXRpb25fbWFzaywgdWNoYXIgc2FkX2FkanVzdG1lbnQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9zaW5nbGVfcmVmZXJlbmNlKAogICAgc2hvcnQyIHJlZl9vZmZzZXQsIHVjaGFyIHNlYXJjaF93aW5kb3dfY29uZmlnLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9kdWFsX3JlZmVyZW5jZSgKICAgIHNob3J0MiBmd2RfcmVmX29mZnNldCwgc2hvcnQyIGJ3ZF9yZWZfb2Zmc2V0LCB1Y2hhciBzZWFyY2hfd2luZG93X2NvbmZpZywKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfbWF4X21vdGlvbl92ZWN0b3JfY291bnQoCiAgICB1Y2hhciBtYXhfbW90aW9uX3ZlY3Rvcl9jb3VudCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF91bmlkaXJlY3Rpb25hbF9taXhfZGlzYWJsZSgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfZWFybHlfc2VhcmNoX3Rlcm1pbmF0aW9uX3RocmVzaG9sZCgKICAgIHVjaGFyIHRocmVzaG9sZCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF93ZWlnaHRlZF9zYWQoCiAgICB1aW50IHBhY2tlZF9zYWRfd2VpZ2h0cywgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwoKX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgiSWYgeW91IHVzZSB0aGUgbGF0ZXN0IEludGVsIGRyaXZlciwgcGxlYXNlIHVzZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3JlZl93aW5kb3dfc2l6ZSBpbnN0ZWFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVmX3dpbmRvd19zaXplIikpKQp1c2hvcnQyIF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfaW1lX3JlZl93aW5kb3dfc2l6ZSh1Y2hhciBzZWFyY2hfd2luZG93X2NvbmZpZywgY2hhciBkdWFsX3JlZik7CnVzaG9ydDIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3JlZl93aW5kb3dfc2l6ZSgKICAgIHVjaGFyIHNlYXJjaF93aW5kb3dfY29uZmlnLCBjaGFyIGR1YWxfcmVmKTsKc2hvcnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9hZGp1c3RfcmVmX29mZnNldCgKICAgIHNob3J0MiByZWZfb2Zmc2V0LCB1c2hvcnQyIHNyY19jb29yZCwgdXNob3J0MiByZWZfd2luZG93X3NpemUsCiAgICB1c2hvcnQyIGltYWdlX3NpemUpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IHJlZl9pbWFnZSwKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZXZhbHVhdGVfd2l0aF9kdWFsX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IGZ3ZF9yZWZfaW1hZ2UsCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IGJ3ZF9yZWZfaW1hZ2UsIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXQoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCByZWZfaW1hZ2UsCiAgICBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dCgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IGZ3ZF9yZWZfaW1hZ2UsCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IGJ3ZF9yZWZfaW1hZ2UsIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IHJlZl9pbWFnZSwKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbWluX3Qgc3RyZWFtaW5fY29tcG9uZW50cyk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWluKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbl90IHN0cmVhbWluX2NvbXBvbmVudHMpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZXZhbHVhdGVfd2l0aF9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbWlub3V0KAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgcmVmX2ltYWdlLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtaW5fdCBzdHJlYW1pbl9jb21wb25lbnRzKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWlub3V0KAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbl90IHN0cmVhbWluX2NvbXBvbmVudHMpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbl90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbW91dF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWluX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc3RyaXBfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc3RyaXBfZHVhbF9yZWZlcmVuY2Vfc3RyZWFtb3V0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IHJlc3VsdCk7Cgp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc3RyZWFtb3V0X21ham9yX3NoYXBlX21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgcmVzdWx0LAogICAgdWNoYXIgbWFqb3Jfc2hhcGUpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc3RyZWFtb3V0X21ham9yX3NoYXBlX3JlZmVyZW5jZV9pZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfbW90aW9uX3ZlY3RvcnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfZHVhbF9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgcmVzdWx0LAogICAgdWNoYXIgbWFqb3Jfc2hhcGUsIHVjaGFyIGRpcmVjdGlvbik7CnVzaG9ydCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X3N0cmVhbW91dF9tYWpvcl9zaGFwZV9kaXN0b3J0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSwgdWNoYXIgZGlyZWN0aW9uKTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSwgdWNoYXIgZGlyZWN0aW9uKTsKCnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfYm9yZGVyX3JlYWNoZWQoCiAgICB1Y2hhciBpbWFnZV9zZWxlY3QsIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfdHJ1bmNhdGVkX3NlYXJjaF9pbmRpY2F0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF91bmlkaXJlY3Rpb25hbF9lYXJseV9zZWFyY2hfdGVybWluYXRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfd2VpZ2h0aW5nX3BhdHRlcm5fbWluaW11bV9tb3Rpb25fdmVjdG9yKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfd2VpZ2h0aW5nX3BhdHRlcm5fbWluaW11bV9kaXN0b3J0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKCi8vIFJFRiBidWlsdC1pbiBmdW5jdGlvbnMKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ZtZV9pbml0aWFsaXplKAogICAgdXNob3J0MiBzcmNfY29vcmQsIHVsb25nIG1vdGlvbl92ZWN0b3JzLCB1Y2hhciBtYWpvcl9zaGFwZXMsCiAgICB1Y2hhciBtaW5vcl9zaGFwZXMsIHVjaGFyIGRpcmVjdGlvbnMsIHVjaGFyIHBpeGVsX3Jlc29sdXRpb24sCiAgICB1Y2hhciBzYWRfYWRqdXN0bWVudCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19ibWVfaW5pdGlhbGl6ZSgKICAgIHVzaG9ydDIgc3JjX2Nvb3JkLCB1bG9uZyBtb3Rpb25fdmVjdG9ycywgdWNoYXIgbWFqb3Jfc2hhcGVzLAogICAgdWNoYXIgbWlub3Jfc2hhcGVzLCB1Y2hhciBkaXJlY3Rpb25zLCB1Y2hhciBwaXhlbF9yZXNvbHV0aW9uLAogICAgdWNoYXIgYmlkaXJlY3Rpb25hbF93ZWlnaHQsIHVjaGFyIHNhZF9hZGp1c3RtZW50KTsKCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2JpZGlyZWN0aW9uYWxfbWl4X2Rpc2FibGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2JpbGluZWFyX2ZpbHRlcl9lbmFibGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9zaW5nbGVfcmVmZXJlbmNlKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgcmVmX2ltYWdlLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9tdWx0aV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgdWludCBwYWNrZWRfcmVmZXJlbmNlX2lkcywKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9tdWx0aV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgdWludCBwYWNrZWRfcmVmZXJlbmNlX2lkcywKICAgIHVjaGFyIHBhY2tlZF9yZWZlcmVuY2VfZmllbGRfcG9sYXJpdGllcywgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwoKLy8gU0lDIGJ1aWx0LWluIGZ1bmN0aW9ucwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2luaXRpYWxpemUoCiAgICB1c2hvcnQyIHNyY19jb29yZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29uZmlndXJlX3NrYygKICAgIHVpbnQgc2tpcF9ibG9ja19wYXJ0aXRpb25fdHlwZSwgdWludCBza2lwX21vdGlvbl92ZWN0b3JfbWFzaywKICAgIHVsb25nIG1vdGlvbl92ZWN0b3JzLCB1Y2hhciBiaWRpcmVjdGlvbmFsX3dlaWdodCwgdWNoYXIgc2tpcF9zYWRfYWRqdXN0bWVudCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19jb25maWd1cmVfaXBlKAogICAgdWNoYXIgbHVtYV9pbnRyYV9wYXJ0aXRpb25fbWFzaywgdWNoYXIgaW50cmFfbmVpZ2hib3VyX2F2YWlsYWJpbHR5LAogICAgdWNoYXIgbGVmdF9lZGdlX2x1bWFfcGl4ZWxzLCB1Y2hhciB1cHBlcl9sZWZ0X2Nvcm5lcl9sdW1hX3BpeGVsLAogICAgdWNoYXIgdXBwZXJfZWRnZV9sdW1hX3BpeGVscywgdWNoYXIgdXBwZXJfcmlnaHRfZWRnZV9sdW1hX3BpeGVscywKICAgIHVjaGFyIGludHJhX3NhZF9hZGp1c3RtZW50LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29uZmlndXJlX2lwZSgKICAgIHVjaGFyIGx1bWFfaW50cmFfcGFydGl0aW9uX21hc2ssIHVjaGFyIGludHJhX25laWdoYm91cl9hdmFpbGFiaWx0eSwKICAgIHVjaGFyIGxlZnRfZWRnZV9sdW1hX3BpeGVscywgdWNoYXIgdXBwZXJfbGVmdF9jb3JuZXJfbHVtYV9waXhlbCwKICAgIHVjaGFyIHVwcGVyX2VkZ2VfbHVtYV9waXhlbHMsIHVjaGFyIHVwcGVyX3JpZ2h0X2VkZ2VfbHVtYV9waXhlbHMsCiAgICB1c2hvcnQgbGVmdF9lZGdlX2Nocm9tYV9waXhlbHMsIHVzaG9ydCB1cHBlcl9sZWZ0X2Nvcm5lcl9jaHJvbWFfcGl4ZWwsCiAgICB1c2hvcnQgdXBwZXJfZWRnZV9jaHJvbWFfcGl4ZWxzLCB1Y2hhciBpbnRyYV9zYWRfYWRqdXN0bWVudCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKdWludCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X21vdGlvbl92ZWN0b3JfbWFzaygKICAgIHVpbnQgc2tpcF9ibG9ja19wYXJ0aXRpb25fdHlwZSwgdWNoYXIgZGlyZWN0aW9uKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X2ludHJhX2x1bWFfc2hhcGVfcGVuYWx0eSgKICAgIHVpbnQgcGFja2VkX3NoYXBlX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50cmFfbHVtYV9tb2RlX2Nvc3RfZnVuY3Rpb24oCiAgICB1Y2hhciBsdW1hX21vZGVfcGVuYWx0eSwgdWludCBsdW1hX3BhY2tlZF9uZWlnaGJvcl9tb2RlcywKICAgIHVpbnQgbHVtYV9wYWNrZWRfbm9uX2RjX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50cmFfY2hyb21hX21vZGVfY29zdF9mdW5jdGlvbigKICAgIHVjaGFyIGNocm9tYV9tb2RlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NrY19iaWxpbmVhcl9maWx0ZXJfZW5hYmxlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9za2NfZm9yd2FyZF90cmFuc2Zvcm1fZW5hYmxlKAogICAgdWxvbmcgcGFja2VkX3NhZF9jb2VmZmljaWVudHMsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfYmxvY2tfYmFzZWRfcmF3X3NraXBfc2FkKAogICAgdWNoYXIgYmxvY2tfYmFzZWRfc2tpcF90eXBlLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2V2YWx1YXRlX2lwZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX3NpbmdsZV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCByZWZfaW1hZ2UsCiAgICBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2V2YWx1YXRlX3dpdGhfZHVhbF9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCBmd2RfcmVmX2ltYWdlLAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBid2RfcmVmX2ltYWdlLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX211bHRpX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX211bHRpX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLAogICAgdWNoYXIgcGFja2VkX3JlZmVyZW5jZV9maWVsZF9wb2xhcml0aWVzLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7Cgp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X2lwZV9sdW1hX3NoYXBlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfYmVzdF9pcGVfbHVtYV9kaXN0b3J0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfYmVzdF9pcGVfY2hyb21hX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9pcGVfbHVtYV9tb2RlcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfaXBlX2Nocm9tYV9tb2RlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdWludCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9za2NfbHVtYV9jb3VudF90aHJlc2hvbGQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9za2NfbHVtYV9zdW1fdGhyZXNob2xkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfaW50ZXJfcmF3X3NhZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwoKLy8gV3JhcHBlcnMKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2V0X2ludGVyX3NoYXBlX3BlbmFsdHkoCiAgICB1bG9uZyBwYWNrZWRfc2hhcGVfY29zdCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9pbnRlcl9zaGFwZV9wZW5hbHR5KAogICAgdWxvbmcgcGFja2VkX3NoYXBlX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfc2hhcGVfcGVuYWx0eSgKICAgIHVsb25nIHBhY2tlZF9zaGFwZV9jb3N0LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9pbnRlcl9kaXJlY3Rpb25fcGVuYWx0eSgKICAgIHVjaGFyIGRpcmVjdGlvbl9jb3N0LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2ludGVyX2RpcmVjdGlvbl9wZW5hbHR5KAogICAgdWNoYXIgZGlyZWN0aW9uX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfZGlyZWN0aW9uX3BlbmFsdHkoCiAgICB1Y2hhciBkaXJlY3Rpb25fY29zdCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfbW90aW9uX3ZlY3Rvcl9jb3N0X2Z1bmN0aW9uKAogICAgdWxvbmcgcGFja2VkX2Nvc3RfY2VudGVyX2RlbHRhLCB1aW50MiBwYWNrZWRfY29zdF90YWJsZSwKICAgIHVjaGFyIGNvc3RfcHJlY2lzaW9uLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X21vdGlvbl92ZWN0b3JfY29zdF9mdW5jdGlvbigKICAgIHVsb25nIHBhY2tlZF9jb3N0X2NlbnRlcl9kZWx0YSwgdWludDIgcGFja2VkX2Nvc3RfdGFibGUsCiAgICB1Y2hhciBjb3N0X3ByZWNpc2lvbiwgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9tb3Rpb25fdmVjdG9yX2Nvc3RfZnVuY3Rpb24oCiAgICB1bG9uZyBwYWNrZWRfY29zdF9jZW50ZXJfZGVsdGEsIHVpbnQyIHBhY2tlZF9jb3N0X3RhYmxlLAogICAgdWNoYXIgY29zdF9wcmVjaXNpb24sIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9zaW5nbGVfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdHkoCiAgICB1Y2hhciByZWZfZmllbGRfcG9sYXJpdHksIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9zZXRfc2luZ2xlX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgcmVmX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NpbmdsZV9yZWZlcmVuY2VfaW50ZXJsYWNlZF9maWVsZF9wb2xhcml0eSgKICAgIHVjaGFyIHJlZl9maWVsZF9wb2xhcml0eSwgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfYWNfb25seV9oYWFyKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9hY19vbmx5X2hhYXIoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X2FjX29ubHlfaGFhcigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCnVsb25nIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfbW90aW9uX3ZlY3RvcnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKCnVzaG9ydCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX2Rpc3RvcnRpb25zKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2dldF9pbnRlcl9kaXN0b3J0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IHJlc3VsdCk7Cgp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9pbnRlcl9tYWpvcl9zaGFwZSgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfbWFqb3Jfc2hhcGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX21pbm9yX3NoYXBlcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfbWlub3Jfc2hhcGVzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKCnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfaW50ZXJfZGlyZWN0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfZGlyZWN0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IHJlc3VsdCk7Cgp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKdWludCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX3JlZmVyZW5jZV9pZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IHJlc3VsdCk7Cgp1Y2hhciBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfcGFyYW1ldGVyX2ZpZWxkX3BvbGFyaXRpZXMsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X2ludGVyX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfcGFyYW1ldGVyX2ZpZWxkX3BvbGFyaXRpZXMsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKLy8gVHlwZSBjb252ZXJzaW9uIGZ1bmN0aW9ucwppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2NvbnZlcnRfdG9fbWNlX3BheWxvYWQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfY29udmVydF90b19pbWVfcGF5bG9hZCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9jb252ZXJ0X3RvX21jZV9wYXlsb2FkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2NvbnZlcnRfdG9fcmVmX3BheWxvYWQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29udmVydF90b19tY2VfcGF5bG9hZCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9jb252ZXJ0X3RvX3NpY19wYXlsb2FkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2NvbnZlcnRfdG9fbWNlX3Jlc3VsdCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9jb252ZXJ0X3RvX2ltZV9yZXN1bHQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfY29udmVydF90b19tY2VfcmVzdWx0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2NvbnZlcnRfdG9fcmVmX3Jlc3VsdCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19jb252ZXJ0X3RvX21jZV9yZXN1bHQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfY29udmVydF90b19zaWNfcmVzdWx0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2ludGVsX2RldmljZV9zaWRlX2F2Y19tb3Rpb25fZXN0aW1hdGlvbiA6IGVuZAojZW5kaWYgLy8gY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uCgojaWZkZWYgY2xfYW1kX21lZGlhX29wcwp1aW50IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludCBhLCB1aW50IGIsIHVpbnQgYyk7CnVpbnQyIF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDMgYSwgdWludDMgYiwgdWludDMgYyk7CnVpbnQ0IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CnVpbnQ4IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2JpdGFsaWduKHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwoKdWludCBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50IGEsIHVpbnQgYiwgdWludCBjKTsKdWludDIgX19vdmxkIGFtZF9ieXRlYWxpZ24odWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfYnl0ZWFsaWduKHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwp1aW50NCBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50NCBhLCB1aW50NCBiLCB1aW50NCBjKTsKdWludDggX19vdmxkIGFtZF9ieXRlYWxpZ24odWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKCnVpbnQgX19vdmxkIGFtZF9sZXJwKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwp1aW50MiBfX292bGQgYW1kX2xlcnAodWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfbGVycCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKdWludDQgX19vdmxkIGFtZF9sZXJwKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwp1aW50OCBfX292bGQgYW1kX2xlcnAodWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2xlcnAodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7Cgp1aW50IF9fb3ZsZCBhbWRfcGFjayhmbG9hdDQgdik7Cgp1aW50IF9fb3ZsZCBhbWRfc2FkNCh1aW50NCB4LCB1aW50NCB5LCB1aW50IHopOwoKdWludCBfX292bGQgYW1kX3NhZGhpKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwp1aW50MiBfX292bGQgYW1kX3NhZGhpKHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwp1aW50MyBfX292bGQgYW1kX3NhZGhpKHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwp1aW50NCBfX292bGQgYW1kX3NhZGhpKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwp1aW50OCBfX292bGQgYW1kX3NhZGhpKHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50MTYgX19vdmxkIGFtZF9zYWRoaSh1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKCnVpbnQgX19vdmxkIGFtZF9zYWQodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CnVpbnQyIF9fb3ZsZCBhbWRfc2FkKHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwp1aW50MyBfX292bGQgYW1kX3NhZCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKdWludDQgX19vdmxkIGFtZF9zYWQodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CnVpbnQ4IF9fb3ZsZCBhbWRfc2FkKHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50MTYgX19vdmxkIGFtZF9zYWQodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7CgpmbG9hdCBfX292bGQgYW1kX3VucGFjazAodWludCBhKTsKZmxvYXQyIF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50MiBhKTsKZmxvYXQzIF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50MyBhKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50NCBhKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50OCBhKTsKZmxvYXQxNiBfX292bGQgYW1kX3VucGFjazAodWludDE2IGEpOwoKZmxvYXQgX19vdmxkIGFtZF91bnBhY2sxKHVpbnQgYSk7CmZsb2F0MiBfX292bGQgYW1kX3VucGFjazEodWludDIgYSk7CmZsb2F0MyBfX292bGQgYW1kX3VucGFjazEodWludDMgYSk7CmZsb2F0NCBfX292bGQgYW1kX3VucGFjazEodWludDQgYSk7CmZsb2F0OCBfX292bGQgYW1kX3VucGFjazEodWludDggYSk7CmZsb2F0MTYgX19vdmxkIGFtZF91bnBhY2sxKHVpbnQxNiBhKTsKCmZsb2F0IF9fb3ZsZCBhbWRfdW5wYWNrMih1aW50IGEpOwpmbG9hdDIgX19vdmxkIGFtZF91bnBhY2syKHVpbnQyIGEpOwpmbG9hdDMgX19vdmxkIGFtZF91bnBhY2syKHVpbnQzIGEpOwpmbG9hdDQgX19vdmxkIGFtZF91bnBhY2syKHVpbnQ0IGEpOwpmbG9hdDggX19vdmxkIGFtZF91bnBhY2syKHVpbnQ4IGEpOwpmbG9hdDE2IF9fb3ZsZCBhbWRfdW5wYWNrMih1aW50MTYgYSk7CgpmbG9hdCBfX292bGQgYW1kX3VucGFjazModWludCBhKTsKZmxvYXQyIF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50MiBhKTsKZmxvYXQzIF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50MyBhKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50NCBhKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50OCBhKTsKZmxvYXQxNiBfX292bGQgYW1kX3VucGFjazModWludDE2IGEpOwojZW5kaWYgLy8gY2xfYW1kX21lZGlhX29wcwoKI2lmZGVmIGNsX2FtZF9tZWRpYV9vcHMyCmludCBfX292bGQgYW1kX2JmZShpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfYmZlKGludDIgc3JjMCwgdWludDIgc3JjMSwgdWludDIgc3JjMik7CmludDMgX19vdmxkIGFtZF9iZmUoaW50MyBzcmMwLCB1aW50MyBzcmMxLCB1aW50MyBzcmMyKTsKaW50NCBfX292bGQgYW1kX2JmZShpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfYmZlKGludDggc3JjMCwgdWludDggc3JjMSwgdWludDggc3JjMik7CmludDE2IF9fb3ZsZCBhbWRfYmZlKGludDE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1aW50MTYgc3JjMik7Cgp1aW50IF9fb3ZsZCBhbWRfYmZlKHVpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwp1aW50MiBfX292bGQgYW1kX2JmZSh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9iZmUodWludDMgc3JjMCwgdWludDMgc3JjMSwgdWludDMgc3JjMik7CnVpbnQ0IF9fb3ZsZCBhbWRfYmZlKHVpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwp1aW50OCBfX292bGQgYW1kX2JmZSh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfYmZlKHVpbnQxNiBzcmMwLCB1aW50MTYgc3JjMSwgdWludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX2JmbSh1aW50IHNyYzAsIHVpbnQgc3JjMSk7CnVpbnQyIF9fb3ZsZCBhbWRfYmZtKHVpbnQyIHNyYzAsIHVpbnQyIHNyYzEpOwp1aW50MyBfX292bGQgYW1kX2JmbSh1aW50MyBzcmMwLCB1aW50MyBzcmMxKTsKdWludDQgX19vdmxkIGFtZF9iZm0odWludDQgc3JjMCwgdWludDQgc3JjMSk7CnVpbnQ4IF9fb3ZsZCBhbWRfYmZtKHVpbnQ4IHNyYzAsIHVpbnQ4IHNyYzEpOwp1aW50MTYgX19vdmxkIGFtZF9iZm0odWludDE2IHNyYzAsIHVpbnQxNiBzcmMxKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMyKTsKZmxvYXQyIF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDIgc3JjMCwgZmxvYXQyIHNyYzEsIGZsb2F0MiBzcmMyKTsKZmxvYXQzIF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDMgc3JjMCwgZmxvYXQzIHNyYzEsIGZsb2F0MyBzcmMyKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMyKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDggc3JjMCwgZmxvYXQ4IHNyYzEsIGZsb2F0OCBzcmMyKTsKZmxvYXQxNiBfX292bGQgYW1kX21heDMoZmxvYXQxNiBzcmMwLCBmbG9hdDE2IHNyYzEsIGZsb2F0MTYgc3JjMik7CgppbnQgX19vdmxkIGFtZF9tYXgzKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWF4MyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21heDMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9tYXgzKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWF4MyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9tYXgzKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21heDModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWF4Myh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tYXgzKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21heDModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWF4Myh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWF4Myh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMyKTsKZmxvYXQyIF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDIgc3JjMCwgZmxvYXQyIHNyYzEsIGZsb2F0MiBzcmMyKTsKZmxvYXQzIF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDMgc3JjMCwgZmxvYXQzIHNyYzEsIGZsb2F0MyBzcmMyKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMyKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDggc3JjMCwgZmxvYXQ4IHNyYzEsIGZsb2F0OCBzcmMyKTsKZmxvYXQxNiBfX292bGQgYW1kX21lZGlhbjMoZmxvYXQxNiBzcmMwLCBmbG9hdDE2IHNyYzEsIGZsb2F0MTYgc3JjMik7CgppbnQgX19vdmxkIGFtZF9tZWRpYW4zKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWVkaWFuMyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21lZGlhbjMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9tZWRpYW4zKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9tZWRpYW4zKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21lZGlhbjModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tZWRpYW4zKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21lZGlhbjModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWluMyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMpOwpmbG9hdDIgX19vdmxkIGFtZF9taW4zKGZsb2F0MiBzcmMwLCBmbG9hdDIgc3JjMSwgZmxvYXQyIHNyYyk7CmZsb2F0MyBfX292bGQgYW1kX21pbjMoZmxvYXQzIHNyYzAsIGZsb2F0MyBzcmMxLCBmbG9hdDMgc3JjKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWluMyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMpOwpmbG9hdDggX19vdmxkIGFtZF9taW4zKGZsb2F0OCBzcmMwLCBmbG9hdDggc3JjMSwgZmxvYXQ4IHNyYyk7CmZsb2F0MTYgX19vdmxkIGFtZF9taW4zKGZsb2F0MTYgc3JjMCwgZmxvYXQxNiBzcmMxLCBmbG9hdDE2IHNyYyk7CgppbnQgX19vdmxkIGFtZF9taW4zKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWluMyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21pbjMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9taW4zKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWluMyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9taW4zKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21pbjModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWluMyh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9taW4zKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21pbjModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWluMyh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWluMyh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCnVsb25nIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmcgc3JjMCwgdWludCBzcmMxLCB1bG9uZyBzcmMyKTsKdWxvbmcyIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmcyIHNyYzAsIHVpbnQyIHNyYzEsIHVsb25nMiBzcmMyKTsKdWxvbmczIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmczIHNyYzAsIHVpbnQzIHNyYzEsIHVsb25nMyBzcmMyKTsKdWxvbmc0IF9fb3ZsZCBhbWRfbXFzYWQodWxvbmc0IHNyYzAsIHVpbnQ0IHNyYzEsIHVsb25nNCBzcmMyKTsKdWxvbmc4IF9fb3ZsZCBhbWRfbXFzYWQodWxvbmc4IHNyYzAsIHVpbnQ4IHNyYzEsIHVsb25nOCBzcmMyKTsKdWxvbmcxNiBfX292bGQgYW1kX21xc2FkKHVsb25nMTYgc3JjMCwgdWludDE2IHNyYzEsIHVsb25nMTYgc3JjMik7Cgp1bG9uZyBfX292bGQgYW1kX3FzYWQodWxvbmcgc3JjMCwgdWludCBzcmMxLCB1bG9uZyBzcmMyKTsKdWxvbmcyIF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzIgc3JjMCwgdWludDIgc3JjMSwgdWxvbmcyIHNyYzIpOwp1bG9uZzMgX19vdmxkIGFtZF9xc2FkKHVsb25nMyBzcmMwLCB1aW50MyBzcmMxLCB1bG9uZzMgc3JjMik7CnVsb25nNCBfX292bGQgYW1kX3FzYWQodWxvbmc0IHNyYzAsIHVpbnQ0IHNyYzEsIHVsb25nNCBzcmMyKTsKdWxvbmc4IF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzggc3JjMCwgdWludDggc3JjMSwgdWxvbmc4IHNyYzIpOwp1bG9uZzE2IF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1bG9uZzE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21zYWQodWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbXNhZCh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tc2FkKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21zYWQodWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbXNhZCh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbXNhZCh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCnVpbnQgX19vdmxkIGFtZF9zYWRkKHVpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwp1aW50MiBfX292bGQgYW1kX3NhZGQodWludDIgc3JjMCwgdWludDIgc3JjMSwgdWludDIgc3JjMik7CnVpbnQzIF9fb3ZsZCBhbWRfc2FkZCh1aW50MyBzcmMwLCB1aW50MyBzcmMxLCB1aW50MyBzcmMyKTsKdWludDQgX19vdmxkIGFtZF9zYWRkKHVpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwp1aW50OCBfX292bGQgYW1kX3NhZGQodWludDggc3JjMCwgdWludDggc3JjMSwgdWludDggc3JjMik7CnVpbnQxNiBfX292bGQgYW1kX3NhZGQodWludDE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1aW50MTYgc3JjMik7Cgp1aW50IF9fb3ZsZCBhbWRfc2Fkdyh1aW50IHNyYzAsIHVpbnQgc3JjMSwgdWludCBzcmMyKTsKdWludDIgX19vdmxkIGFtZF9zYWR3KHVpbnQyIHNyYzAsIHVpbnQyIHNyYzEsIHVpbnQyIHNyYzIpOwp1aW50MyBfX292bGQgYW1kX3NhZHcodWludDMgc3JjMCwgdWludDMgc3JjMSwgdWludDMgc3JjMik7CnVpbnQ0IF9fb3ZsZCBhbWRfc2Fkdyh1aW50NCBzcmMwLCB1aW50NCBzcmMxLCB1aW50NCBzcmMyKTsKdWludDggX19vdmxkIGFtZF9zYWR3KHVpbnQ4IHNyYzAsIHVpbnQ4IHNyYzEsIHVpbnQ4IHNyYzIpOwp1aW50MTYgX19vdmxkIGFtZF9zYWR3KHVpbnQxNiBzcmMwLCB1aW50MTYgc3JjMSwgdWludDE2IHNyYzIpOwojZW5kaWYgLy8gY2xfYW1kX21lZGlhX29wczIKCiNpZiBkZWZpbmVkKGNsX2FybV9pbnRlZ2VyX2RvdF9wcm9kdWN0X2ludDgpCnVpbnQgX19vdmxkIGFybV9kb3QodWNoYXI0IGEsIHVjaGFyNCBiKTsKaW50IF9fb3ZsZCBhcm1fZG90KGNoYXI0IGEsIGNoYXI0IGIpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9pbnQ4KQoKI2lmIGRlZmluZWQoY2xfYXJtX2ludGVnZXJfZG90X3Byb2R1Y3RfYWNjdW11bGF0ZV9pbnQ4KQp1aW50IF9fb3ZsZCBhcm1fZG90X2FjYyh1Y2hhcjQgYSwgdWNoYXI0IGIsIHVpbnQgYyk7CmludCBfX292bGQgYXJtX2RvdF9hY2MoY2hhcjQgYSwgY2hhcjQgYiwgaW50IGMpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX2ludDgpCgojaWYgZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX2ludDE2KQp1aW50IF9fb3ZsZCBhcm1fZG90X2FjYyh1c2hvcnQyIGEsIHVzaG9ydDIgYiwgdWludCBjKTsKaW50IF9fb3ZsZCBhcm1fZG90X2FjYyhzaG9ydDIgYSwgc2hvcnQyIGIsIGludCBjKTsKI2VuZGlmIC8vIGRlZmluZWQoY2xfYXJtX2ludGVnZXJfZG90X3Byb2R1Y3RfYWNjdW11bGF0ZV9pbnQxNikKCiNpZiBkZWZpbmVkKGNsX2FybV9pbnRlZ2VyX2RvdF9wcm9kdWN0X2FjY3VtdWxhdGVfc2F0dXJhdGVfaW50OCkKdWludCBfX292bGQgYXJtX2RvdF9hY2Nfc2F0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgdWludCBjKTsKaW50IF9fb3ZsZCBhcm1fZG90X2FjY19zYXQoY2hhcjQgYSwgY2hhcjQgYiwgaW50IGMpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX3NhdHVyYXRlX2ludDgpCgovLyBEaXNhYmxlIGFueSBleHRlbnNpb25zIHdlIG1heSBoYXZlIGVuYWJsZWQgcHJldmlvdXNseS4KI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGFsbCA6IGRpc2FibGUKCiN1bmRlZiBfX2NuZm4KI3VuZGVmIF9fb3ZsZAojZW5kaWYgLy9fT1BFTkNMX0hfCgBDb3VsZG4ndCByZWFkIAAgKGZjbG9zZShoYW5kbGUpPQBGYWlsdXJlIHNlcmlhbGl6aW5nIGNvbXBpbGF0aW9uIHVuaXQAcm9vdC8ALi4Ac3RhcnRwb3M6IABOdW1DYXB0dXJlc1dhbGtlcjo6U2hvcnRWaXNpdCBjYWxsZWQAKD86ACg/OikASGVicmV3AEwATG8AU3lsb3RpX05hZ3JpAH9FTEYAYXJlbmEgIT0gbnVsbHB0ciAmJiBhcmVuYSAhPSBEZWZhdWx0QXJlbmEoKSAmJiBhcmVuYSAhPSBVbmhvb2tlZEFyZW5hKCkAcmVnaW9uLT5oZWFkZXIubWFnaWMgPT0gTWFnaWMoa01hZ2ljVW5hbGxvY2F0ZWQsICZyZWdpb24tPmhlYWRlcikAbm90aGluZyBpbiBhcmVuYSB0byBmcmVlAHZvaWQAZmxvYXQAZGVjaW1hbDEyOABvcGVyYXRvciAAYmFzaWNfc3RyaW5nAENoZWNrIG5vZGUtPmxlbmd0aCAhPSAwdSBmYWlsZWQ6IAAgZnJvbSBiZWdpbl9wb3MgAG5mAC9ldGMvbG9jYWx0aW1lAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZGlnZXN0L2RpZ2VzdC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWMuYwBub3QgYXZhaWxhYmxlACVsdQBreXRoZS5wcm90by5BbmFseXNpc1Jlc3VsdC5zdW1tYXJ5AGt5dGhlLnByb3RvLmNvbW1vbi5Ob2RlSW5mby5GYWN0c0VudHJ5LmtleQBreXRoZS5wcm90by5jb21tb24uT3JpZ2luLmNvcnB1cwBvdXQvc29vbmcvLmludGVybWVkaWF0ZXMvZXh0ZXJuYWwva3l0aGUvY3h4X2V4dHJhY3Rvci9saW51eF9nbGliY194ODZfNjQvZ2VuL3Byb3RvL2t5dGhlL3Byb3RvL21ldGFkYXRhLnBiLmNjAGt5dGhlLnByb3RvLlZOYW1lLnNpZ25hdHVyZQBreXRoZS5wcm90by5WTmFtZS5wYXRoAGt5dGhlLnByb3RvLlJlYWRSZXF1ZXN0LmVkZ2Vfa2luZAAtc3RhdGljADxzdGRpbj4AQ2hlY2sgZmFpbGVkOiBhYnNsOjpFbmRzV2l0aChvdXRwdXRfZmlsZV8sICIua3ppcCIpAENYWFN5c3RlbQApAF9fY2xhbmdfaGlwX3J1bnRpbWVfd3JhcHBlci5oAGFybV9uZW9uLmgALyo9PT0tLS0tIGFybV9uZW9uLmggLSBBUk0gTmVvbiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiAqIFRIRSBTT0ZUV0FSRS4KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19BUk1fTkVPTl9ICiNkZWZpbmUgX19BUk1fTkVPTl9ICgojaWZuZGVmIF9fQVJNX0ZQCiNlcnJvciAiTkVPTiBpbnRyaW5zaWNzIG5vdCBhdmFpbGFibGUgd2l0aCB0aGUgc29mdC1mbG9hdCBBQkkuIFBsZWFzZSB1c2UgLW1mbG9hdC1hYmk9c29mdGZwIG9yIC1tZmxvYXQtYWJpPWhhcmQiCiNlbHNlCgojaWYgIWRlZmluZWQoX19BUk1fTkVPTikKI2Vycm9yICJORU9OIHN1cHBvcnQgbm90IGVuYWJsZWQiCiNlbHNlCgojaW5jbHVkZSA8c3RkaW50Lmg+CgojaWZkZWYgX19BUk1fRkVBVFVSRV9CRjE2CiNpbmNsdWRlIDxhcm1fYmYxNi5oPgp0eXBlZGVmIF9fYmYxNiBiZmxvYXQxNl90OwojZW5kaWYKCnR5cGVkZWYgZmxvYXQgZmxvYXQzMl90Owp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CiNpZmRlZiBfX2FhcmNoNjRfXwp0eXBlZGVmIGRvdWJsZSBmbG9hdDY0X3Q7CiNlbmRpZgoKI2lmZGVmIF9fYWFyY2g2NF9fCnR5cGVkZWYgdWludDhfdCBwb2x5OF90Owp0eXBlZGVmIHVpbnQxNl90IHBvbHkxNl90Owp0eXBlZGVmIHVpbnQ2NF90IHBvbHk2NF90Owp0eXBlZGVmIF9fdWludDEyOF90IHBvbHkxMjhfdDsKI2Vsc2UKdHlwZWRlZiBpbnQ4X3QgcG9seThfdDsKdHlwZWRlZiBpbnQxNl90IHBvbHkxNl90Owp0eXBlZGVmIGludDY0X3QgcG9seTY0X3Q7CiNlbmRpZgp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSBpbnQ4X3QgaW50OHg4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgxNikpKSBpbnQ4X3QgaW50OHgxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoNCkpKSBpbnQxNl90IGludDE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDgpKSkgaW50MTZfdCBpbnQxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGludDMyX3QgaW50MzJ4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoNCkpKSBpbnQzMl90IGludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgaW50NjRfdCBpbnQ2NHgxX3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGludDY0X3QgaW50NjR4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSB1aW50OF90IHVpbnQ4eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDE2KSkpIHVpbnQ4X3QgdWludDh4MTZfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgdWludDE2X3QgdWludDE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDgpKSkgdWludDE2X3QgdWludDE2eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDIpKSkgdWludDMyX3QgdWludDMyeDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgdWludDMyX3QgdWludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgdWludDY0X3QgdWludDY0eDFfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDIpKSkgdWludDY0X3QgdWludDY0eDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgZmxvYXQxNl90IGZsb2F0MTZ4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSBmbG9hdDE2X3QgZmxvYXQxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGZsb2F0MzJfdCBmbG9hdDMyeDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgZmxvYXQzMl90IGZsb2F0MzJ4NF90OwojaWZkZWYgX19hYXJjaDY0X18KdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgZmxvYXQ2NF90IGZsb2F0NjR4MV90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoMikpKSBmbG9hdDY0X3QgZmxvYXQ2NHgyX3Q7CiNlbmRpZgp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDgpKSkgcG9seThfdCBwb2x5OHg4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl9wb2x5dmVjdG9yX3R5cGUoMTYpKSkgcG9seThfdCBwb2x5OHgxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDQpKSkgcG9seTE2X3QgcG9seTE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3BvbHl2ZWN0b3JfdHlwZSg4KSkpIHBvbHkxNl90IHBvbHkxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl9wb2x5dmVjdG9yX3R5cGUoMSkpKSBwb2x5NjRfdCBwb2x5NjR4MV90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDIpKSkgcG9seTY0X3QgcG9seTY0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDh4OHgyX3QgewogIGludDh4OF90IHZhbFsyXTsKfSBpbnQ4eDh4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50OHgxNngyX3QgewogIGludDh4MTZfdCB2YWxbMl07Cn0gaW50OHgxNngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQxNng0eDJfdCB7CiAgaW50MTZ4NF90IHZhbFsyXTsKfSBpbnQxNng0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDE2eDh4Ml90IHsKICBpbnQxNng4X3QgdmFsWzJdOwp9IGludDE2eDh4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4MngyX3QgewogIGludDMyeDJfdCB2YWxbMl07Cn0gaW50MzJ4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQzMng0eDJfdCB7CiAgaW50MzJ4NF90IHZhbFsyXTsKfSBpbnQzMng0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDY0eDF4Ml90IHsKICBpbnQ2NHgxX3QgdmFsWzJdOwp9IGludDY0eDF4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50NjR4MngyX3QgewogIGludDY0eDJfdCB2YWxbMl07Cn0gaW50NjR4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50OHg4eDJfdCB7CiAgdWludDh4OF90IHZhbFsyXTsKfSB1aW50OHg4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ4eDE2eDJfdCB7CiAgdWludDh4MTZfdCB2YWxbMl07Cn0gdWludDh4MTZ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDR4Ml90IHsKICB1aW50MTZ4NF90IHZhbFsyXTsKfSB1aW50MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MTZ4OHgyX3QgewogIHVpbnQxNng4X3QgdmFsWzJdOwp9IHVpbnQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQzMngyeDJfdCB7CiAgdWludDMyeDJfdCB2YWxbMl07Cn0gdWludDMyeDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDMyeDR4Ml90IHsKICB1aW50MzJ4NF90IHZhbFsyXTsKfSB1aW50MzJ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50NjR4MXgyX3QgewogIHVpbnQ2NHgxX3QgdmFsWzJdOwp9IHVpbnQ2NHgxeDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ2NHgyeDJfdCB7CiAgdWludDY0eDJfdCB2YWxbMl07Cn0gdWludDY0eDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQxNng0eDJfdCB7CiAgZmxvYXQxNng0X3QgdmFsWzJdOwp9IGZsb2F0MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDE2eDh4Ml90IHsKICBmbG9hdDE2eDhfdCB2YWxbMl07Cn0gZmxvYXQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MzJ4MngyX3QgewogIGZsb2F0MzJ4Ml90IHZhbFsyXTsKfSBmbG9hdDMyeDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQzMng0eDJfdCB7CiAgZmxvYXQzMng0X3QgdmFsWzJdOwp9IGZsb2F0MzJ4NHgyX3Q7CgojaWZkZWYgX19hYXJjaDY0X18KdHlwZWRlZiBzdHJ1Y3QgZmxvYXQ2NHgxeDJfdCB7CiAgZmxvYXQ2NHgxX3QgdmFsWzJdOwp9IGZsb2F0NjR4MXgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDY0eDJ4Ml90IHsKICBmbG9hdDY0eDJfdCB2YWxbMl07Cn0gZmxvYXQ2NHgyeDJfdDsKCiNlbmRpZgp0eXBlZGVmIHN0cnVjdCBwb2x5OHg4eDJfdCB7CiAgcG9seTh4OF90IHZhbFsyXTsKfSBwb2x5OHg4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk4eDE2eDJfdCB7CiAgcG9seTh4MTZfdCB2YWxbMl07Cn0gcG9seTh4MTZ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTE2eDR4Ml90IHsKICBwb2x5MTZ4NF90IHZhbFsyXTsKfSBwb2x5MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4OHgyX3QgewogIHBvbHkxNng4X3QgdmFsWzJdOwp9IHBvbHkxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk2NHgxeDJfdCB7CiAgcG9seTY0eDFfdCB2YWxbMl07Cn0gcG9seTY0eDF4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDJ4Ml90IHsKICBwb2x5NjR4Ml90IHZhbFsyXTsKfSBwb2x5NjR4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ4eDh4M190IHsKICBpbnQ4eDhfdCB2YWxbM107Cn0gaW50OHg4eDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDh4MTZ4M190IHsKICBpbnQ4eDE2X3QgdmFsWzNdOwp9IGludDh4MTZ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MTZ4NHgzX3QgewogIGludDE2eDRfdCB2YWxbM107Cn0gaW50MTZ4NHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQxNng4eDNfdCB7CiAgaW50MTZ4OF90IHZhbFszXTsKfSBpbnQxNng4eDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDMyeDJ4M190IHsKICBpbnQzMngyX3QgdmFsWzNdOwp9IGludDMyeDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4NHgzX3QgewogIGludDMyeDRfdCB2YWxbM107Cn0gaW50MzJ4NHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ2NHgxeDNfdCB7CiAgaW50NjR4MV90IHZhbFszXTsKfSBpbnQ2NHgxeDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDY0eDJ4M190IHsKICBpbnQ2NHgyX3QgdmFsWzNdOwp9IGludDY0eDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDh4OHgzX3QgewogIHVpbnQ4eDhfdCB2YWxbM107Cn0gdWludDh4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50OHgxNngzX3QgewogIHVpbnQ4eDE2X3QgdmFsWzNdOwp9IHVpbnQ4eDE2eDNfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQxNng0eDNfdCB7CiAgdWludDE2eDRfdCB2YWxbM107Cn0gdWludDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDh4M190IHsKICB1aW50MTZ4OF90IHZhbFszXTsKfSB1aW50MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MzJ4MngzX3QgewogIHVpbnQzMngyX3QgdmFsWzNdOwp9IHVpbnQzMngyeDNfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQzMng0eDNfdCB7CiAgdWludDMyeDRfdCB2YWxbM107Cn0gdWludDMyeDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDF4M190IHsKICB1aW50NjR4MV90IHZhbFszXTsKfSB1aW50NjR4MXgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50NjR4MngzX3QgewogIHVpbnQ2NHgyX3QgdmFsWzNdOwp9IHVpbnQ2NHgyeDNfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MTZ4NHgzX3QgewogIGZsb2F0MTZ4NF90IHZhbFszXTsKfSBmbG9hdDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQxNng4eDNfdCB7CiAgZmxvYXQxNng4X3QgdmFsWzNdOwp9IGZsb2F0MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDJ4M190IHsKICBmbG9hdDMyeDJfdCB2YWxbM107Cn0gZmxvYXQzMngyeDNfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MzJ4NHgzX3QgewogIGZsb2F0MzJ4NF90IHZhbFszXTsKfSBmbG9hdDMyeDR4M190OwoKI2lmZGVmIF9fYWFyY2g2NF9fCnR5cGVkZWYgc3RydWN0IGZsb2F0NjR4MXgzX3QgewogIGZsb2F0NjR4MV90IHZhbFszXTsKfSBmbG9hdDY0eDF4M190OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQ2NHgyeDNfdCB7CiAgZmxvYXQ2NHgyX3QgdmFsWzNdOwp9IGZsb2F0NjR4MngzX3Q7CgojZW5kaWYKdHlwZWRlZiBzdHJ1Y3QgcG9seTh4OHgzX3QgewogIHBvbHk4eDhfdCB2YWxbM107Cn0gcG9seTh4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5OHgxNngzX3QgewogIHBvbHk4eDE2X3QgdmFsWzNdOwp9IHBvbHk4eDE2eDNfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHkxNng0eDNfdCB7CiAgcG9seTE2eDRfdCB2YWxbM107Cn0gcG9seTE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTE2eDh4M190IHsKICBwb2x5MTZ4OF90IHZhbFszXTsKfSBwb2x5MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5NjR4MXgzX3QgewogIHBvbHk2NHgxX3QgdmFsWzNdOwp9IHBvbHk2NHgxeDNfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk2NHgyeDNfdCB7CiAgcG9seTY0eDJfdCB2YWxbM107Cn0gcG9seTY0eDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50OHg4eDRfdCB7CiAgaW50OHg4X3QgdmFsWzRdOwp9IGludDh4OHg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ4eDE2eDRfdCB7CiAgaW50OHgxNl90IHZhbFs0XTsKfSBpbnQ4eDE2eDRfdDsKCnR5cGVkZWYgc3RydWN0IGludDE2eDR4NF90IHsKICBpbnQxNng0X3QgdmFsWzRdOwp9IGludDE2eDR4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MTZ4OHg0X3QgewogIGludDE2eDhfdCB2YWxbNF07Cn0gaW50MTZ4OHg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQzMngyeDRfdCB7CiAgaW50MzJ4Ml90IHZhbFs0XTsKfSBpbnQzMngyeDRfdDsKCnR5cGVkZWYgc3RydWN0IGludDMyeDR4NF90IHsKICBpbnQzMng0X3QgdmFsWzRdOwp9IGludDMyeDR4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50NjR4MXg0X3QgewogIGludDY0eDFfdCB2YWxbNF07Cn0gaW50NjR4MXg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ2NHgyeDRfdCB7CiAgaW50NjR4Ml90IHZhbFs0XTsKfSBpbnQ2NHgyeDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ4eDh4NF90IHsKICB1aW50OHg4X3QgdmFsWzRdOwp9IHVpbnQ4eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDh4MTZ4NF90IHsKICB1aW50OHgxNl90IHZhbFs0XTsKfSB1aW50OHgxNng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MTZ4NHg0X3QgewogIHVpbnQxNng0X3QgdmFsWzRdOwp9IHVpbnQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQxNng4eDRfdCB7CiAgdWludDE2eDhfdCB2YWxbNF07Cn0gdWludDE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDMyeDJ4NF90IHsKICB1aW50MzJ4Ml90IHZhbFs0XTsKfSB1aW50MzJ4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MzJ4NHg0X3QgewogIHVpbnQzMng0X3QgdmFsWzRdOwp9IHVpbnQzMng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ2NHgxeDRfdCB7CiAgdWludDY0eDFfdCB2YWxbNF07Cn0gdWludDY0eDF4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDJ4NF90IHsKICB1aW50NjR4Ml90IHZhbFs0XTsKfSB1aW50NjR4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDE2eDR4NF90IHsKICBmbG9hdDE2eDRfdCB2YWxbNF07Cn0gZmxvYXQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MTZ4OHg0X3QgewogIGZsb2F0MTZ4OF90IHZhbFs0XTsKfSBmbG9hdDE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQzMngyeDRfdCB7CiAgZmxvYXQzMngyX3QgdmFsWzRdOwp9IGZsb2F0MzJ4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDR4NF90IHsKICBmbG9hdDMyeDRfdCB2YWxbNF07Cn0gZmxvYXQzMng0eDRfdDsKCiNpZmRlZiBfX2FhcmNoNjRfXwp0eXBlZGVmIHN0cnVjdCBmbG9hdDY0eDF4NF90IHsKICBmbG9hdDY0eDFfdCB2YWxbNF07Cn0gZmxvYXQ2NHgxeDRfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0NjR4Mng0X3QgewogIGZsb2F0NjR4Ml90IHZhbFs0XTsKfSBmbG9hdDY0eDJ4NF90OwoKI2VuZGlmCnR5cGVkZWYgc3RydWN0IHBvbHk4eDh4NF90IHsKICBwb2x5OHg4X3QgdmFsWzRdOwp9IHBvbHk4eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTh4MTZ4NF90IHsKICBwb2x5OHgxNl90IHZhbFs0XTsKfSBwb2x5OHgxNng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4NHg0X3QgewogIHBvbHkxNng0X3QgdmFsWzRdOwp9IHBvbHkxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHkxNng4eDRfdCB7CiAgcG9seTE2eDhfdCB2YWxbNF07Cn0gcG9seTE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDF4NF90IHsKICBwb2x5NjR4MV90IHZhbFs0XTsKfSBwb2x5NjR4MXg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5NjR4Mng0X3QgewogIHBvbHk2NHgyX3QgdmFsWzRdOwp9IHBvbHk2NHgyeDRfdDsKCiNpZmRlZiBfX0FSTV9GRUFUVVJFX0JGMTYKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgYmZsb2F0MTZfdCBiZmxvYXQxNng0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSg4KSkpIGJmbG9hdDE2X3QgYmZsb2F0MTZ4OF90OwoKdHlwZWRlZiBzdHJ1Y3QgYmZsb2F0MTZ4NHgyX3QgewogIGJmbG9hdDE2eDRfdCB2YWxbMl07Cn0gYmZsb2F0MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBiZmxvYXQxNng4eDJfdCB7CiAgYmZsb2F0MTZ4OF90IHZhbFsyXTsKfSBiZmxvYXQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IGJmbG9hdDE2eDR4M190IHsKICBiZmxvYXQxNng0X3QgdmFsWzNdOwp9IGJmbG9hdDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgYmZsb2F0MTZ4OHgzX3QgewogIGJmbG9hdDE2eDhfdCB2YWxbM107Cn0gYmZsb2F0MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBiZmxvYXQxNng0eDRfdCB7CiAgYmZsb2F0MTZ4NF90IHZhbFs0XTsKfSBiZmxvYXQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IGJmbG9hdDE2eDh4NF90IHsKICBiZmxvYXQxNng4X3QgdmFsWzRdOwp9IGJmbG9hdDE2eDh4NF90OwoKI2VuZGlmCgojZGVmaW5lIF9fYWkgc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSBzcGxhdF9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSBzcGxhdF9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgc3BsYXRfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHNwbGF0X2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmFiZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhYmRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCBfX25vc3dhcF92YWJkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFiZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3ZhYmRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFiZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWJkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZhYmRxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJkcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhYmRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IF9fbm9zd2FwX3ZhYmRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2YWJkcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmFiZHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhYmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhYmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92YWJkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdmFiZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmFiZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZhYmRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmFiZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWJkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFiZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZhYmRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWJkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFiZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZhYmRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFiZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZhYmRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IF9fbm9zd2FwX3ZhYmRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2YWJkX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhYmRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmFiZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZhYmRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdmFiZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZhYmRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWJkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZhYmRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhYnNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmFic3FfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YWJzcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJzcV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJzcV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmFic19mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhYnNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmFic19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YWJzX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWJzX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZhYnNfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2YWRkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWRkcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YWRkcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmFkZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmFkZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2YWRkX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWRkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFkZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmFkZF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmFkZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2YWRkX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2YWRkX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHBvbHk2NHgxX3QgdmFkZF9wNjQocG9seTY0eDFfdCBfX3AwLCBwb2x5NjR4MV90IF9fcDEpIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDYpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZhZGRfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZhZGRfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZhZGRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2YWRkcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmFkZHFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2YWRkcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZhZGRxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmFkZHFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWRkaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFkZGhuX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWRkaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFkZGhuX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZhZGRobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YWRkaG5fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWRkaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2YWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmFkZGhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92YWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2YWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFkZGhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92YWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2YW5kcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhbmRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFuZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFuZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFuZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFuZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFuZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFuZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YW5kcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmFuZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YW5kcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhbmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhbmRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFuZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmFuZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YW5kcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2YW5kX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YW5kX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZhbmRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFuZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZhbmRfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZhbmRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFuZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFuZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2YW5kX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhbmRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YW5kX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmFuZF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YW5kX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmFuZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmJpY3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmJpY3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmJpY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZiaWNxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YmljcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmJpY3FfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZiaWNxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YmljcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YmljcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZiaWNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZiaWNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZiaWNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YmljcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2YmljcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmJpY3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmJpY3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZiaWNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YmljX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YmljX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2YmljX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZiaWNfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YmljX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2YmljX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmJpY19zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmJpY19zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmJpY19zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YmljX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZiaWNfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZiaWNfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmJpY19zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdmJzbF9wOCh1aW50OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEsIHBvbHk4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2YnNsX3A4KHVpbnQ4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSwgcG9seTh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmJzbF9wMTYodWludDE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEsIHBvbHkxNng0X3QgX19wMikgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdmJzbF9wMTYodWludDE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEsIHBvbHkxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZic2xxX3A4KHVpbnQ4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCBwb2x5OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdmJzbHFfcDgodWludDh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEsIHBvbHk4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdmJzbHFfcDE2KHVpbnQxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxLCBwb2x5MTZ4OF90IF9fcDIpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmJzbHFfcDE2KHVpbnQxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxLCBwb2x5MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZic2xxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmJzbHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmJzbHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmJzbHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZic2xxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZic2xxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YnNscV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YnNscV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YnNscV9zOCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2YnNscV9zOCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmJzbHFfZjMyKHVpbnQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YnNscV9mMzIodWludDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YnNscV9zMzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmJzbHFfczMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmJzbHFfczY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEsIGludDY0eDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZic2xxX3M2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZic2xxX3MxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YnNscV9zMTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2YnNsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YnNsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZic2xfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2YnNsX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmJzbF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEsIHVpbnQ2NHgxX3QgX19wMikgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YnNsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmJzbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmJzbF9zOCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmJzbF9zOCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2YnNsX2YzMih1aW50MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZic2xfZjMyKHVpbnQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZic2xfczMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YnNsX3MzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZic2xfczY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEsIGludDY0eDFfdCBfX3AyKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmJzbF9zMTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZic2xfczE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2FnZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2FnZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjYWdlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FnZV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNhZ2VfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjYWd0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjYWd0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNhZ3RfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWd0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2FndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhZ3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNhbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNhbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2FsZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhbGVfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjYWxlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2FsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2FsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjYWx0X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FsdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNhbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNlcV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2VxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNlcXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNlcXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2VxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2VxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2VxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2VxcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZXFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2VxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZXFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2VxX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2VxX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNlcV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNlcV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNlcV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZXFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2VxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2VxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNnZXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2dlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ2VxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2VxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ2VxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2VxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZ2VxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZ2VxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2VxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNnZXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2dlcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNnZXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ2VfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNnZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZ2VfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ2VfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2dlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2dlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2dlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNnZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ2VfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ2VfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2d0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNndHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2d0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3RxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNndHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2d0cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2d0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNndHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ3RfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2d0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ3RfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2d0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2d0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZ3RfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ3RfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ3RfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNndF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNsZXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPD0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2xlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbGVxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGVxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbGVxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbGVxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2xlcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2xlcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNsZXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2xlcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNsZXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbGVfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNsZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbGVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbGVfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2xlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2xlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2xlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjbGVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbGVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZjbHNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbHNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsc3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNsc3FfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjbHNxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjbHNxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y2xzcV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2Y2xzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbHNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjbHNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjbHNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y2xzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y2xzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsc3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y2xzX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmNsc191OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmNsc191MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmNsc191MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y2xzX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y2xzX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmNsc19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmNsc19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZjbHNfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmNsc19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmNsc19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y2xzX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNsdHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbHRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2x0cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsdHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNsdHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbHRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2x0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNsdF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsdF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNsdF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2x0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2x0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbHpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2x6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsenFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHpxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHpxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x6cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZjbHpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmNsenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNsenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmNsenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjbHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZjbHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6cV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2x6X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjbHpfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2x6X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsel91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHpfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y2x6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2Y2x6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmNsel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Y2x6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y2x6X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjbHpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZjbnRfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcDAsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2Y250X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRfdigoaW50OHg4X3QpX19yZXYwLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2Y250cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3AwLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2Y250cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmNudHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbnRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNudHFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbnRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y250cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2Y250cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbnRxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbnRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNudF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y250X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNudF92KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2Y250X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNudF92KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZjb21iaW5lX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZjb21iaW5lX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2Y29tYmluZV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2Y29tYmluZV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y29tYmluZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y29tYmluZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgX19ub3N3YXBfdmNvbWJpbmVfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgX19ub3N3YXBfdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNvbWJpbmVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNvbWJpbmVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmNvbWJpbmVfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2Y29tYmluZV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgX19ub3N3YXBfdmNvbWJpbmVfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjb21iaW5lX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y29tYmluZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Y29tYmluZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmNvbWJpbmVfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjb21iaW5lX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNvbWJpbmVfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y29tYmluZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92Y29tYmluZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjb21iaW5lX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmNvbWJpbmVfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmNvbWJpbmVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y29tYmluZV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92Y29tYmluZV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Y3JlYXRlX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAodWludDh4OF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKGludDh4OF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mMzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRxX2YzMl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjMyX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dHFfZjMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjMyX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y3Z0X2YzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9mMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX2YzMl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjMyX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mMzJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YzMl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl9mMzJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dF9uX2YzMl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0X25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fczMyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfbl9zMzJfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dHFfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX3MzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zMzJfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zMzJfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl91MzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fdTMyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX3UzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9uX3UzMl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl91MzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9uX3UzMl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjdnRxX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zMzJfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmN2dF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3MzMl92KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmN2dF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRxX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfdTMyX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y3Z0cV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3UzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmN2dF91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3UzMl92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX3A4KF9fcDBfMCwgX19wMV8wKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8wID0gX19wMF8wOyBcCiAgcG9seTh4OF90IF9fcmV0XzA7IFwKICBfX3JldF8wID0gc3BsYXRfbGFuZV9wOChfX3MwXzAsIF9fcDFfMCk7IFwKICBfX3JldF8wOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3A4KF9fcDBfMSwgX19wMV8xKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8xID0gX19wMF8xOyBcCiAgcG9seTh4OF90IF9fcmV2MF8xOyAgX19yZXYwXzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEsIF9fczBfMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXRfMTsgXAogIF9fcmV0XzEgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3A4KF9fcmV2MF8xLCBfX3AxXzEpOyBcCiAgX19yZXRfMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEsIF9fcmV0XzEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9wMTYoX19wMF8yLCBfX3AxXzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF8yID0gX19wMF8yOyBcCiAgcG9seTE2eDRfdCBfX3JldF8yOyBcCiAgX19yZXRfMiA9IHNwbGF0X2xhbmVfcDE2KF9fczBfMiwgX19wMV8yKTsgXAogIF9fcmV0XzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfcDE2KF9fcDBfMywgX19wMV8zKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfMyA9IF9fcDBfMzsgXAogIHBvbHkxNng0X3QgX19yZXYwXzM7ICBfX3JldjBfMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMywgX19zMF8zLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXRfMzsgXAogIF9fcmV0XzMgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3AxNihfX3JldjBfMywgX19wMV8zKTsgXAogIF9fcmV0XzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zLCBfX3JldF8zLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3A4KF9fcDBfNCwgX19wMV80KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF80ID0gX19wMF80OyBcCiAgcG9seTh4MTZfdCBfX3JldF80OyBcCiAgX19yZXRfNCA9IHNwbGF0cV9sYW5lX3A4KF9fczBfNCwgX19wMV80KTsgXAogIF9fcmV0XzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3A4KF9fcDBfNSwgX19wMV81KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF81ID0gX19wMF81OyBcCiAgcG9seTh4OF90IF9fcmV2MF81OyAgX19yZXYwXzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUsIF9fczBfNSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0XzU7IFwKICBfX3JldF81ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfcDgoX19yZXYwXzUsIF9fcDFfNSk7IFwKICBfX3JldF81ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNSwgX19yZXRfNSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9wMTYoX19wMF82LCBfX3AxXzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF82ID0gX19wMF82OyBcCiAgcG9seTE2eDhfdCBfX3JldF82OyBcCiAgX19yZXRfNiA9IHNwbGF0cV9sYW5lX3AxNihfX3MwXzYsIF9fcDFfNik7IFwKICBfX3JldF82OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9wMTYoX19wMF83LCBfX3AxXzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF83ID0gX19wMF83OyBcCiAgcG9seTE2eDRfdCBfX3JldjBfNzsgIF9fcmV2MF83ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83LCBfX3MwXzcsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldF83OyBcCiAgX19yZXRfNyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX3AxNihfX3JldjBfNywgX19wMV83KTsgXAogIF9fcmV0XzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83LCBfX3JldF83LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3U4KF9fcDBfOCwgX19wMV84KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF84ID0gX19wMF84OyBcCiAgdWludDh4MTZfdCBfX3JldF84OyBcCiAgX19yZXRfOCA9IHNwbGF0cV9sYW5lX3U4KF9fczBfOCwgX19wMV84KTsgXAogIF9fcmV0Xzg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3U4KF9fcDBfOSwgX19wMV85KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF85ID0gX19wMF85OyBcCiAgdWludDh4OF90IF9fcmV2MF85OyAgX19yZXYwXzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzksIF9fczBfOSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzk7IFwKICBfX3JldF85ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfdTgoX19yZXYwXzksIF9fcDFfOSk7IFwKICBfX3JldF85ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOSwgX19yZXRfOSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF85OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91MzIoX19wMF8xMCwgX19wMV8xMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzEwID0gX19wMF8xMDsgXAogIHVpbnQzMng0X3QgX19yZXRfMTA7IFwKICBfX3JldF8xMCA9IHNwbGF0cV9sYW5lX3UzMihfX3MwXzEwLCBfX3AxXzEwKTsgXAogIF9fcmV0XzEwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91MzIoX19wMF8xMSwgX19wMV8xMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzExID0gX19wMF8xMTsgXAogIHVpbnQzMngyX3QgX19yZXYwXzExOyAgX19yZXYwXzExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMSwgX19zMF8xMSwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzExOyBcCiAgX19yZXRfMTEgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoX19yZXYwXzExLCBfX3AxXzExKTsgXAogIF9fcmV0XzExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTEsIF9fcmV0XzExLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzExOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91NjQoX19wMF8xMiwgX19wMV8xMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzEyID0gX19wMF8xMjsgXAogIHVpbnQ2NHgyX3QgX19yZXRfMTI7IFwKICBfX3JldF8xMiA9IHNwbGF0cV9sYW5lX3U2NChfX3MwXzEyLCBfX3AxXzEyKTsgXAogIF9fcmV0XzEyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91NjQoX19wMF8xMywgX19wMV8xMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzEzID0gX19wMF8xMzsgXAogIHVpbnQ2NHgyX3QgX19yZXRfMTM7IFwKICBfX3JldF8xMyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX3U2NChfX3MwXzEzLCBfX3AxXzEzKTsgXAogIF9fcmV0XzEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTMsIF9fcmV0XzEzLCAxLCAwKTsgXAogIF9fcmV0XzEzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91MTYoX19wMF8xNCwgX19wMV8xNCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzE0ID0gX19wMF8xNDsgXAogIHVpbnQxNng4X3QgX19yZXRfMTQ7IFwKICBfX3JldF8xNCA9IHNwbGF0cV9sYW5lX3UxNihfX3MwXzE0LCBfX3AxXzE0KTsgXAogIF9fcmV0XzE0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91MTYoX19wMF8xNSwgX19wMV8xNSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzE1ID0gX19wMF8xNTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzE1OyAgX19yZXYwXzE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNSwgX19zMF8xNSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzE1OyBcCiAgX19yZXRfMTUgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MTYoX19yZXYwXzE1LCBfX3AxXzE1KTsgXAogIF9fcmV0XzE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTUsIF9fcmV0XzE1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9zOChfX3AwXzE2LCBfX3AxXzE2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzE2ID0gX19wMF8xNjsgXAogIGludDh4MTZfdCBfX3JldF8xNjsgXAogIF9fcmV0XzE2ID0gc3BsYXRxX2xhbmVfczgoX19zMF8xNiwgX19wMV8xNik7IFwKICBfX3JldF8xNjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfczgoX19wMF8xNywgX19wMV8xNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8xNyA9IF9fcDBfMTc7IFwKICBpbnQ4eDhfdCBfX3JldjBfMTc7ICBfX3JldjBfMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE3LCBfX3MwXzE3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF8xNzsgXAogIF9fcmV0XzE3ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfczgoX19yZXYwXzE3LCBfX3AxXzE3KTsgXAogIF9fcmV0XzE3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTcsIF9fcmV0XzE3LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9mMzIoX19wMF8xOCwgX19wMV8xOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xOCA9IF9fcDBfMTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODsgXAogIF9fcmV0XzE4ID0gc3BsYXRxX2xhbmVfZjMyKF9fczBfMTgsIF9fcDFfMTgpOyBcCiAgX19yZXRfMTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2YzMihfX3AwXzE5LCBfX3AxXzE5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5ID0gX19wMF8xOTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTsgIF9fcmV2MF8xOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTksIF9fczBfMTksIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTk7IFwKICBfX3JldF8xOSA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3JldjBfMTksIF9fcDFfMTkpOyBcCiAgX19yZXRfMTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xOSwgX19yZXRfMTksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3MzMihfX3AwXzIwLCBfX3AxXzIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yMCA9IF9fcDBfMjA7IFwKICBpbnQzMng0X3QgX19yZXRfMjA7IFwKICBfX3JldF8yMCA9IHNwbGF0cV9sYW5lX3MzMihfX3MwXzIwLCBfX3AxXzIwKTsgXAogIF9fcmV0XzIwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9zMzIoX19wMF8yMSwgX19wMV8yMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMjEgPSBfX3AwXzIxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8yMTsgIF9fcmV2MF8yMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjEsIF9fczBfMjEsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzIxOyBcCiAgX19yZXRfMjEgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYwXzIxLCBfX3AxXzIxKTsgXAogIF9fcmV0XzIxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjEsIF9fcmV0XzIxLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9zNjQoX19wMF8yMiwgX19wMV8yMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMjIgPSBfX3AwXzIyOyBcCiAgaW50NjR4Ml90IF9fcmV0XzIyOyBcCiAgX19yZXRfMjIgPSBzcGxhdHFfbGFuZV9zNjQoX19zMF8yMiwgX19wMV8yMik7IFwKICBfX3JldF8yMjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfczY0KF9fcDBfMjMsIF9fcDFfMjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwXzIzID0gX19wMF8yMzsgXAogIGludDY0eDJfdCBfX3JldF8yMzsgXAogIF9fcmV0XzIzID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfczY0KF9fczBfMjMsIF9fcDFfMjMpOyBcCiAgX19yZXRfMjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMywgX19yZXRfMjMsIDEsIDApOyBcCiAgX19yZXRfMjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3MxNihfX3AwXzI0LCBfX3AxXzI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8yNCA9IF9fcDBfMjQ7IFwKICBpbnQxNng4X3QgX19yZXRfMjQ7IFwKICBfX3JldF8yNCA9IHNwbGF0cV9sYW5lX3MxNihfX3MwXzI0LCBfX3AxXzI0KTsgXAogIF9fcmV0XzI0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9zMTYoX19wMF8yNSwgX19wMV8yNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMjUgPSBfX3AwXzI1OyBcCiAgaW50MTZ4NF90IF9fcmV2MF8yNTsgIF9fcmV2MF8yNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjUsIF9fczBfMjUsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzI1OyBcCiAgX19yZXRfMjUgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYwXzI1LCBfX3AxXzI1KTsgXAogIF9fcmV0XzI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjUsIF9fcmV0XzI1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX3U4KF9fcDBfMjYsIF9fcDFfMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzI2ID0gX19wMF8yNjsgXAogIHVpbnQ4eDhfdCBfX3JldF8yNjsgXAogIF9fcmV0XzI2ID0gc3BsYXRfbGFuZV91OChfX3MwXzI2LCBfX3AxXzI2KTsgXAogIF9fcmV0XzI2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3U4KF9fcDBfMjcsIF9fcDFfMjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzI3ID0gX19wMF8yNzsgXAogIHVpbnQ4eDhfdCBfX3JldjBfMjc7ICBfX3JldjBfMjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI3LCBfX3MwXzI3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldF8yNzsgXAogIF9fcmV0XzI3ID0gX19ub3N3YXBfc3BsYXRfbGFuZV91OChfX3JldjBfMjcsIF9fcDFfMjcpOyBcCiAgX19yZXRfMjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNywgX19yZXRfMjcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfdTMyKF9fcDBfMjgsIF9fcDFfMjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF8yOCA9IF9fcDBfMjg7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI4OyBcCiAgX19yZXRfMjggPSBzcGxhdF9sYW5lX3UzMihfX3MwXzI4LCBfX3AxXzI4KTsgXAogIF9fcmV0XzI4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3UzMihfX3AwXzI5LCBfX3AxXzI5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjkgPSBfX3AwXzI5OyBcCiAgdWludDMyeDJfdCBfX3JldjBfMjk7ICBfX3JldjBfMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5LCBfX3MwXzI5LCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfMjk7IFwKICBfX3JldF8yOSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2MF8yOSwgX19wMV8yOSk7IFwKICBfX3JldF8yOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5LCBfX3JldF8yOSwgMSwgMCk7IFwKICBfX3JldF8yOTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmR1cF9sYW5lX3U2NChfX3AwXzMwLCBfX3AxXzMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczBfMzAgPSBfX3AwXzMwOyBcCiAgdWludDY0eDFfdCBfX3JldF8zMDsgXAogIF9fcmV0XzMwID0gc3BsYXRfbGFuZV91NjQoX19zMF8zMCwgX19wMV8zMCk7IFwKICBfX3JldF8zMDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfdTE2KF9fcDBfMzEsIF9fcDFfMzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8zMSA9IF9fcDBfMzE7IFwKICB1aW50MTZ4NF90IF9fcmV0XzMxOyBcCiAgX19yZXRfMzEgPSBzcGxhdF9sYW5lX3UxNihfX3MwXzMxLCBfX3AxXzMxKTsgXAogIF9fcmV0XzMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3UxNihfX3AwXzMyLCBfX3AxXzMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfMzIgPSBfX3AwXzMyOyBcCiAgdWludDE2eDRfdCBfX3JldjBfMzI7ICBfX3JldjBfMzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyLCBfX3MwXzMyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXRfMzI7IFwKICBfX3JldF8zMiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2MF8zMiwgX19wMV8zMik7IFwKICBfX3JldF8zMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyLCBfX3JldF8zMiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9zOChfX3AwXzMzLCBfX3AxXzMzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzMzID0gX19wMF8zMzsgXAogIGludDh4OF90IF9fcmV0XzMzOyBcCiAgX19yZXRfMzMgPSBzcGxhdF9sYW5lX3M4KF9fczBfMzMsIF9fcDFfMzMpOyBcCiAgX19yZXRfMzM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfczgoX19wMF8zNCwgX19wMV8zNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8zNCA9IF9fcDBfMzQ7IFwKICBpbnQ4eDhfdCBfX3JldjBfMzQ7ICBfX3JldjBfMzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM0LCBfX3MwXzM0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0XzM0OyBcCiAgX19yZXRfMzQgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3M4KF9fcmV2MF8zNCwgX19wMV8zNCk7IFwKICBfX3JldF8zNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM0LCBfX3JldF8zNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9mMzIoX19wMF8zNSwgX19wMV8zNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNSA9IF9fcDBfMzU7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8zNTsgXAogIF9fcmV0XzM1ID0gc3BsYXRfbGFuZV9mMzIoX19zMF8zNSwgX19wMV8zNSk7IFwKICBfX3JldF8zNTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZV9mMzIoX19wMF8zNiwgX19wMV8zNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNiA9IF9fcDBfMzY7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMzY7ICBfX3JldjBfMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2LCBfX3MwXzM2LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzM2OyBcCiAgX19yZXRfMzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjBfMzYsIF9fcDFfMzYpOyBcCiAgX19yZXRfMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNiwgX19yZXRfMzYsIDEsIDApOyBcCiAgX19yZXRfMzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfczMyKF9fcDBfMzcsIF9fcDFfMzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzM3ID0gX19wMF8zNzsgXAogIGludDMyeDJfdCBfX3JldF8zNzsgXAogIF9fcmV0XzM3ID0gc3BsYXRfbGFuZV9zMzIoX19zMF8zNywgX19wMV8zNyk7IFwKICBfX3JldF8zNzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZV9zMzIoX19wMF8zOCwgX19wMV8zOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzggPSBfX3AwXzM4OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zODsgIF9fcmV2MF8zOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzgsIF9fczBfMzgsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzM4OyBcCiAgX19yZXRfMzggPSBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjBfMzgsIF9fcDFfMzgpOyBcCiAgX19yZXRfMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zOCwgX19yZXRfMzgsIDEsIDApOyBcCiAgX19yZXRfMzg7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZkdXBfbGFuZV9zNjQoX19wMF8zOSwgX19wMV8zOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMzkgPSBfX3AwXzM5OyBcCiAgaW50NjR4MV90IF9fcmV0XzM5OyBcCiAgX19yZXRfMzkgPSBzcGxhdF9sYW5lX3M2NChfX3MwXzM5LCBfX3AxXzM5KTsgXAogIF9fcmV0XzM5OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9zMTYoX19wMF80MCwgX19wMV80MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNDAgPSBfX3AwXzQwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQwOyBcCiAgX19yZXRfNDAgPSBzcGxhdF9sYW5lX3MxNihfX3MwXzQwLCBfX3AxXzQwKTsgXAogIF9fcmV0XzQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3MxNihfX3AwXzQxLCBfX3AxXzQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF80MSA9IF9fcDBfNDE7IFwKICBpbnQxNng0X3QgX19yZXYwXzQxOyAgX19yZXYwXzQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MSwgX19zMF80MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNDE7IFwKICBfX3JldF80MSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2MF80MSwgX19wMV80MSk7IFwKICBfX3JldF80MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQxLCBfX3JldF80MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2ZHVwX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2ZHVwX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZkdXBfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdmR1cF9uX3AxNihwb2x5MTZfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdmR1cHFfbl9wOChwb2x5OF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZkdXBxX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdmR1cHFfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmR1cHFfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZkdXBxX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2ZHVwcV9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZkdXBxX25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZkdXBxX25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2ZHVwcV9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZHVwcV9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmR1cHFfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmR1cHFfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmR1cHFfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmR1cHFfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmR1cHFfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZkdXBxX25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2ZHVwcV9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZkdXBxX25fczMyKGludDMyX3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZkdXBxX25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmR1cHFfbl9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmR1cHFfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2ZHVwcV9uX3MxNihpbnQxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2ZHVwX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2ZHVwX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZkdXBfbl91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmR1cF9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2ZHVwX25fdTY0KHVpbnQ2NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2ZHVwX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZkdXBfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2ZHVwX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZkdXBfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZkdXBfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZkdXBfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2ZHVwX25fczMyKGludDMyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmR1cF9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZkdXBfbl9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkge19fcDB9OwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmR1cF9uX3MxNihpbnQxNl90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZkdXBfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZlb3JxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmVvcnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2ZW9ycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2ZW9ycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2ZW9ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZW9ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2ZW9ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2ZW9ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZlb3JxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2ZW9ycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZlb3JxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIF4gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmVvcnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmVvcnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2ZW9ycV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgXiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2ZW9ycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZlb3JxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZlb3JfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZlb3JfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgXiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmVvcl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2ZW9yX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmVvcl91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmVvcl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2ZW9yX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2ZW9yX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZlb3JfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmVvcl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZlb3JfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2ZW9yX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIF4gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZlb3JfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2ZW9yX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHg4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dF9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRxX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0cV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0cV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZXh0X3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dF9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZleHRfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZnZXRfaGlnaF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdmdldF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgX19ub3N3YXBfdmdldF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmdldF9oaWdoX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2Z2V0X2hpZ2hfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZnZXRfaGlnaF91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmdldF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmdldF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmdldF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Z2V0X2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4MV90IHZnZXRfaGlnaF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgxX3QgdmdldF9oaWdoX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Z2V0X2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZnZXRfaGlnaF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZnZXRfaGlnaF9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmdldF9oaWdoX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92Z2V0X2hpZ2hfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZnZXRfaGlnaF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmdldF9oaWdoX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZnZXRfaGlnaF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmdldF9oaWdoX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Z2V0X2hpZ2hfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmdldF9oaWdoX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmdldF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Z2V0X2hpZ2hfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgxX3QgdmdldF9oaWdoX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2Z2V0X2hpZ2hfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmdldF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Z2V0X2hpZ2hfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgocG9seTh4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgocG9seTh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seThfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChwb2x5OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChwb2x5MTZ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChwb2x5OHgxNl90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKHBvbHk4eDE2X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKHBvbHk4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigocG9seTE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigocG9seTE2eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMTYoKHBvbHkxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pOCgoaW50OHgxNl90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTMyKChpbnQzMng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTMyKChpbnQzMng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigoaW50MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKGludDh4MTZfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfZjMyKChmbG9hdDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9mMzIoKGZsb2F0MzJ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2YzMigoZmxvYXQzMng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMzIoKGludDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMTYoKGludDE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldF9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChpbnQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kxNigoaW50MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldF9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChpbnQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKGludDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2Z2V0X2xvd19wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdmdldF9sb3dfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmdldF9sb3dfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZnZXRfbG93X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Z2V0X2xvd191OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmdldF9sb3dfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmdldF9sb3dfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZnZXRfbG93X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgxX3QgdmdldF9sb3dfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZnZXRfbG93X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Z2V0X2xvd191MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmdldF9sb3dfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmdldF9sb3dfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZnZXRfbG93X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Z2V0X2xvd19mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmdldF9sb3dfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmdldF9sb3dfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZnZXRfbG93X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Z2V0X2xvd19zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmdldF9sb3dfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4MV90IHZnZXRfbG93X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2Z2V0X2xvd19zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Z2V0X2xvd19zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmdldF9sb3dfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2aGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2aGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2aGFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmhhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2aGFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2aGFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2aGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZoYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZoYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmhhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2aGFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2aGFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2aGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2aGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmhhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmhhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmhzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmhzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmhzdWJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZoc3VicV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2aHN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmhzdWJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmhzdWJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZoc3VicV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmhzdWJxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2aHN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2aHN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZoc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZoc3ViX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZoc3ViX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmhzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmhzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmhzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmhzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZoc3ViX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZoc3ViX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZoc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZoc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3ViX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2aHN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2aHN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3A4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfcDhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9wMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfcDE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wOF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wOF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91MzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91MTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mMzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2YzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91OF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91OF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91MzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV91NjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91MTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3M4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9mMzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2YzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9zNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfcDhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9wOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3AxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9wMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3AxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdThfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdThfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91NjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91MTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3U4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3U4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3UzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdTMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3U2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3UxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdTE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3M2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9wOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3A4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfcDE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3AxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDhfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDhfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3AxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91OF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91OF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91MzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91NjRfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdThfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdThfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91MzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfdTY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91MTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3M4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfczY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMl9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMl9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM191OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM191NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM19zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQzX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQzX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIHVpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDRfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDRfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bWF4cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1heHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWF4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtYXhxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1heHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZtYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm1heHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1heHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWF4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bWF4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1heF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtYXhfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWF4X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtYXhfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1heF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtYXhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1heF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1heF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bWF4X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm1pbnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZtaW5xX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWlucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtaW5xX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1pbnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWlucV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1pbnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bWlucV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtaW5xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bWlucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bWluX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm1pbl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtaW5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWluX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2bWluX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm1pbl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1pbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWluX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtaW5fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtaW5fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWluX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bWxhcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZtbGFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2bWxhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bWxhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtbGFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1sYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxhcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bWxhX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtbGFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bWxhX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtbGFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZtbGFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1sYV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZtbGFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZtbGFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bWxhX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1sYV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1sYV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtbGFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZtbGFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVfdTMyKF9fcDBfNDIsIF9fcDFfNDIsIF9fcDJfNDIsIF9fcDNfNDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF80MiA9IF9fcDBfNDI7IFwKICB1aW50MzJ4NF90IF9fczFfNDIgPSBfX3AxXzQyOyBcCiAgdWludDMyeDJfdCBfX3MyXzQyID0gX19wMl80MjsgXAogIHVpbnQzMng0X3QgX19yZXRfNDI7IFwKICBfX3JldF80MiA9IF9fczBfNDIgKyBfX3MxXzQyICogc3BsYXRxX2xhbmVfdTMyKF9fczJfNDIsIF9fcDNfNDIpOyBcCiAgX19yZXRfNDI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lX3UzMihfX3AwXzQzLCBfX3AxXzQzLCBfX3AyXzQzLCBfX3AzXzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDMgPSBfX3AwXzQzOyBcCiAgdWludDMyeDRfdCBfX3MxXzQzID0gX19wMV80MzsgXAogIHVpbnQzMngyX3QgX19zMl80MyA9IF9fcDJfNDM7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80MzsgIF9fcmV2MF80MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDMsIF9fczBfNDMsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNDM7ICBfX3JldjFfNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzQzLCBfX3MxXzQzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzQzOyAgX19yZXYyXzQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MywgX19zMl80MywgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzQzOyBcCiAgX19yZXRfNDMgPSBfX3JldjBfNDMgKyBfX3JldjFfNDMgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoX19yZXYyXzQzLCBfX3AzXzQzKTsgXAogIF9fcmV0XzQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMsIF9fcmV0XzQzLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV91MTYoX19wMF80NCwgX19wMV80NCwgX19wMl80NCwgX19wM180NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzQ0ID0gX19wMF80NDsgXAogIHVpbnQxNng4X3QgX19zMV80NCA9IF9fcDFfNDQ7IFwKICB1aW50MTZ4NF90IF9fczJfNDQgPSBfX3AyXzQ0OyBcCiAgdWludDE2eDhfdCBfX3JldF80NDsgXAogIF9fcmV0XzQ0ID0gX19zMF80NCArIF9fczFfNDQgKiBzcGxhdHFfbGFuZV91MTYoX19zMl80NCwgX19wM180NCk7IFwKICBfX3JldF80NDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFxX2xhbmVfdTE2KF9fcDBfNDUsIF9fcDFfNDUsIF9fcDJfNDUsIF9fcDNfNDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NSA9IF9fcDBfNDU7IFwKICB1aW50MTZ4OF90IF9fczFfNDUgPSBfX3AxXzQ1OyBcCiAgdWludDE2eDRfdCBfX3MyXzQ1ID0gX19wMl80NTsgXAogIHVpbnQxNng4X3QgX19yZXYwXzQ1OyAgX19yZXYwXzQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NSwgX19zMF80NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV80NTsgIF9fcmV2MV80NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDUsIF9fczFfNDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjJfNDU7ICBfX3JldjJfNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQ1LCBfX3MyXzQ1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNDU7IFwKICBfX3JldF80NSA9IF9fcmV2MF80NSArIF9fcmV2MV80NSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3JldjJfNDUsIF9fcDNfNDUpOyBcCiAgX19yZXRfNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NSwgX19yZXRfNDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lX2YzMihfX3AwXzQ2LCBfX3AxXzQ2LCBfX3AyXzQ2LCBfX3AzXzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzQ2ID0gX19wMF80NjsgXAogIGZsb2F0MzJ4NF90IF9fczFfNDYgPSBfX3AxXzQ2OyBcCiAgZmxvYXQzMngyX3QgX19zMl80NiA9IF9fcDJfNDY7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80NjsgXAogIF9fcmV0XzQ2ID0gX19zMF80NiArIF9fczFfNDYgKiBzcGxhdHFfbGFuZV9mMzIoX19zMl80NiwgX19wM180Nik7IFwKICBfX3JldF80NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFxX2xhbmVfZjMyKF9fcDBfNDcsIF9fcDFfNDcsIF9fcDJfNDcsIF9fcDNfNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDcgPSBfX3AwXzQ3OyBcCiAgZmxvYXQzMng0X3QgX19zMV80NyA9IF9fcDFfNDc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzQ3ID0gX19wMl80NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80NzsgIF9fcmV2MF80NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcsIF9fczBfNDcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzQ3OyAgX19yZXYxXzQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV80NywgX19zMV80NywgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNDc7ICBfX3JldjJfNDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQ3LCBfX3MyXzQ3LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ3OyBcCiAgX19yZXRfNDcgPSBfX3JldjBfNDcgKyBfX3JldjFfNDcgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMzIoX19yZXYyXzQ3LCBfX3AzXzQ3KTsgXAogIF9fcmV0XzQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDcsIF9fcmV0XzQ3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV9zMzIoX19wMF80OCwgX19wMV80OCwgX19wMl80OCwgX19wM180OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNDggPSBfX3AwXzQ4OyBcCiAgaW50MzJ4NF90IF9fczFfNDggPSBfX3AxXzQ4OyBcCiAgaW50MzJ4Ml90IF9fczJfNDggPSBfX3AyXzQ4OyBcCiAgaW50MzJ4NF90IF9fcmV0XzQ4OyBcCiAgX19yZXRfNDggPSBfX3MwXzQ4ICsgX19zMV80OCAqIHNwbGF0cV9sYW5lX3MzMihfX3MyXzQ4LCBfX3AzXzQ4KTsgXAogIF9fcmV0XzQ4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZV9zMzIoX19wMF80OSwgX19wMV80OSwgX19wMl80OSwgX19wM180OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNDkgPSBfX3AwXzQ5OyBcCiAgaW50MzJ4NF90IF9fczFfNDkgPSBfX3AxXzQ5OyBcCiAgaW50MzJ4Ml90IF9fczJfNDkgPSBfX3AyXzQ5OyBcCiAgaW50MzJ4NF90IF9fcmV2MF80OTsgIF9fcmV2MF80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDksIF9fczBfNDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV80OTsgIF9fcmV2MV80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDksIF9fczFfNDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml80OTsgIF9fcmV2Ml80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDksIF9fczJfNDksIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzQ5OyBcCiAgX19yZXRfNDkgPSBfX3JldjBfNDkgKyBfX3JldjFfNDkgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYyXzQ5LCBfX3AzXzQ5KTsgXAogIF9fcmV0XzQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDksIF9fcmV0XzQ5LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV9zMTYoX19wMF81MCwgX19wMV81MCwgX19wMl81MCwgX19wM181MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTAgPSBfX3AwXzUwOyBcCiAgaW50MTZ4OF90IF9fczFfNTAgPSBfX3AxXzUwOyBcCiAgaW50MTZ4NF90IF9fczJfNTAgPSBfX3AyXzUwOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUwOyBcCiAgX19yZXRfNTAgPSBfX3MwXzUwICsgX19zMV81MCAqIHNwbGF0cV9sYW5lX3MxNihfX3MyXzUwLCBfX3AzXzUwKTsgXAogIF9fcmV0XzUwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZV9zMTYoX19wMF81MSwgX19wMV81MSwgX19wMl81MSwgX19wM181MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTEgPSBfX3AwXzUxOyBcCiAgaW50MTZ4OF90IF9fczFfNTEgPSBfX3AxXzUxOyBcCiAgaW50MTZ4NF90IF9fczJfNTEgPSBfX3AyXzUxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF81MTsgIF9fcmV2MF81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTEsIF9fczBfNTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81MTsgIF9fcmV2MV81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTEsIF9fczFfNTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml81MTsgIF9fcmV2Ml81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTEsIF9fczJfNTEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUxOyBcCiAgX19yZXRfNTEgPSBfX3JldjBfNTEgKyBfX3JldjFfNTEgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYyXzUxLCBfX3AzXzUxKTsgXAogIF9fcmV0XzUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTEsIF9fcmV0XzUxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lX3UzMihfX3AwXzUyLCBfX3AxXzUyLCBfX3AyXzUyLCBfX3AzXzUyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNTIgPSBfX3AwXzUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzUyID0gX19wMV81MjsgXAogIHVpbnQzMngyX3QgX19zMl81MiA9IF9fcDJfNTI7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzUyOyBcCiAgX19yZXRfNTIgPSBfX3MwXzUyICsgX19zMV81MiAqIHNwbGF0X2xhbmVfdTMyKF9fczJfNTIsIF9fcDNfNTIpOyBcCiAgX19yZXRfNTI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfdTMyKF9fcDBfNTMsIF9fcDFfNTMsIF9fcDJfNTMsIF9fcDNfNTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MyA9IF9fcDBfNTM7IFwKICB1aW50MzJ4Ml90IF9fczFfNTMgPSBfX3AxXzUzOyBcCiAgdWludDMyeDJfdCBfX3MyXzUzID0gX19wMl81MzsgXAogIHVpbnQzMngyX3QgX19yZXYwXzUzOyAgX19yZXYwXzUzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MywgX19zMF81MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81MzsgIF9fcmV2MV81MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTMsIF9fczFfNTMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjJfNTM7ICBfX3JldjJfNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzLCBfX3MyXzUzLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTM7IFwKICBfX3JldF81MyA9IF9fcmV2MF81MyArIF9fcmV2MV81MyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml81MywgX19wM181Myk7IFwKICBfX3JldF81MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUzLCBfX3JldF81MywgMSwgMCk7IFwKICBfX3JldF81MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFfbGFuZV91MTYoX19wMF81NCwgX19wMV81NCwgX19wMl81NCwgX19wM181NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU0ID0gX19wMF81NDsgXAogIHVpbnQxNng0X3QgX19zMV81NCA9IF9fcDFfNTQ7IFwKICB1aW50MTZ4NF90IF9fczJfNTQgPSBfX3AyXzU0OyBcCiAgdWludDE2eDRfdCBfX3JldF81NDsgXAogIF9fcmV0XzU0ID0gX19zMF81NCArIF9fczFfNTQgKiBzcGxhdF9sYW5lX3UxNihfX3MyXzU0LCBfX3AzXzU0KTsgXAogIF9fcmV0XzU0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lX3UxNihfX3AwXzU1LCBfX3AxXzU1LCBfX3AyXzU1LCBfX3AzXzU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNTUgPSBfX3AwXzU1OyBcCiAgdWludDE2eDRfdCBfX3MxXzU1ID0gX19wMV81NTsgXAogIHVpbnQxNng0X3QgX19zMl81NSA9IF9fcDJfNTU7IFwKICB1aW50MTZ4NF90IF9fcmV2MF81NTsgIF9fcmV2MF81NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTUsIF9fczBfNTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTU7ICBfX3JldjFfNTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU1LCBfX3MxXzU1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzU1OyAgX19yZXYyXzU1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NSwgX19zMl81NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzU1OyBcCiAgX19yZXRfNTUgPSBfX3JldjBfNTUgKyBfX3JldjFfNTUgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjJfNTUsIF9fcDNfNTUpOyBcCiAgX19yZXRfNTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NSwgX19yZXRfNTUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVfZjMyKF9fcDBfNTYsIF9fcDFfNTYsIF9fcDJfNTYsIF9fcDNfNTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTYgPSBfX3AwXzU2OyBcCiAgZmxvYXQzMngyX3QgX19zMV81NiA9IF9fcDFfNTY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzU2ID0gX19wMl81NjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU2OyBcCiAgX19yZXRfNTYgPSBfX3MwXzU2ICsgX19zMV81NiAqIHNwbGF0X2xhbmVfZjMyKF9fczJfNTYsIF9fcDNfNTYpOyBcCiAgX19yZXRfNTY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfZjMyKF9fcDBfNTcsIF9fcDFfNTcsIF9fcDJfNTcsIF9fcDNfNTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTcgPSBfX3AwXzU3OyBcCiAgZmxvYXQzMngyX3QgX19zMV81NyA9IF9fcDFfNTc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzU3ID0gX19wMl81NzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF81NzsgIF9fcmV2MF81NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcsIF9fczBfNTcsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzU3OyAgX19yZXYxXzU3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NywgX19zMV81NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNTc7ICBfX3JldjJfNTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3LCBfX3MyXzU3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU3OyBcCiAgX19yZXRfNTcgPSBfX3JldjBfNTcgKyBfX3JldjFfNTcgKiBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjJfNTcsIF9fcDNfNTcpOyBcCiAgX19yZXRfNTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NywgX19yZXRfNTcsIDEsIDApOyBcCiAgX19yZXRfNTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVfczMyKF9fcDBfNTgsIF9fcDFfNTgsIF9fcDJfNTgsIF9fcDNfNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzU4ID0gX19wMF81ODsgXAogIGludDMyeDJfdCBfX3MxXzU4ID0gX19wMV81ODsgXAogIGludDMyeDJfdCBfX3MyXzU4ID0gX19wMl81ODsgXAogIGludDMyeDJfdCBfX3JldF81ODsgXAogIF9fcmV0XzU4ID0gX19zMF81OCArIF9fczFfNTggKiBzcGxhdF9sYW5lX3MzMihfX3MyXzU4LCBfX3AzXzU4KTsgXAogIF9fcmV0XzU4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lX3MzMihfX3AwXzU5LCBfX3AxXzU5LCBfX3AyXzU5LCBfX3AzXzU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81OSA9IF9fcDBfNTk7IFwKICBpbnQzMngyX3QgX19zMV81OSA9IF9fcDFfNTk7IFwKICBpbnQzMngyX3QgX19zMl81OSA9IF9fcDJfNTk7IFwKICBpbnQzMngyX3QgX19yZXYwXzU5OyAgX19yZXYwXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81OSwgX19zMF81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU5OyAgX19yZXYxXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OSwgX19zMV81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzU5OyAgX19yZXYyXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81OSwgX19zMl81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNTk7IFwKICBfX3JldF81OSA9IF9fcmV2MF81OSArIF9fcmV2MV81OSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml81OSwgX19wM181OSk7IFwKICBfX3JldF81OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5LCBfX3JldF81OSwgMSwgMCk7IFwKICBfX3JldF81OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFfbGFuZV9zMTYoX19wMF82MCwgX19wMV82MCwgX19wMl82MCwgX19wM182MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNjAgPSBfX3AwXzYwOyBcCiAgaW50MTZ4NF90IF9fczFfNjAgPSBfX3AxXzYwOyBcCiAgaW50MTZ4NF90IF9fczJfNjAgPSBfX3AyXzYwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzYwOyBcCiAgX19yZXRfNjAgPSBfX3MwXzYwICsgX19zMV82MCAqIHNwbGF0X2xhbmVfczE2KF9fczJfNjAsIF9fcDNfNjApOyBcCiAgX19yZXRfNjA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfczE2KF9fcDBfNjEsIF9fcDFfNjEsIF9fcDJfNjEsIF9fcDNfNjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzYxID0gX19wMF82MTsgXAogIGludDE2eDRfdCBfX3MxXzYxID0gX19wMV82MTsgXAogIGludDE2eDRfdCBfX3MyXzYxID0gX19wMl82MTsgXAogIGludDE2eDRfdCBfX3JldjBfNjE7ICBfX3JldjBfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYxLCBfX3MwXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNjE7ICBfX3JldjFfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYxLCBfX3MxXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNjE7ICBfX3JldjJfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzYxLCBfX3MyXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF82MTsgXAogIF9fcmV0XzYxID0gX19yZXYwXzYxICsgX19yZXYxXzYxICogX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzYxLCBfX3AzXzYxKTsgXAogIF9fcmV0XzYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjEsIF9fcmV0XzYxLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhcV9uX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxhcV9uX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhcV9uX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhcV9uX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQxNng4X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm1sYXFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1sYXFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sYXFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIChpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1sYXFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIChpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtbGFxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAoaW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbGFxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoaW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1sYV9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWxhX25fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZtbGFfbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1sYV9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1sYV9uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWxhX25fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtbGFfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1sYV9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKGludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm1sYV9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWxhX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm1sc3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bWxzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1sc3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1sc3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm1sc3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm1sc3FfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bWxzcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc3FfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1sc3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbHNxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1sc191OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2bWxzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1sc191MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWxzX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWxzX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtbHNfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2bWxzX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bWxzX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1sc19mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtbHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtbHNfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtbHNfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bWxzX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWxzX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzcV9sYW5lX3UzMihfX3AwXzYyLCBfX3AxXzYyLCBfX3AyXzYyLCBfX3AzXzYyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNjIgPSBfX3AwXzYyOyBcCiAgdWludDMyeDRfdCBfX3MxXzYyID0gX19wMV82MjsgXAogIHVpbnQzMngyX3QgX19zMl82MiA9IF9fcDJfNjI7IFwKICB1aW50MzJ4NF90IF9fcmV0XzYyOyBcCiAgX19yZXRfNjIgPSBfX3MwXzYyIC0gX19zMV82MiAqIHNwbGF0cV9sYW5lX3UzMihfX3MyXzYyLCBfX3AzXzYyKTsgXAogIF9fcmV0XzYyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc3FfbGFuZV91MzIoX19wMF82MywgX19wMV82MywgX19wMl82MywgX19wM182MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzYzID0gX19wMF82MzsgXAogIHVpbnQzMng0X3QgX19zMV82MyA9IF9fcDFfNjM7IFwKICB1aW50MzJ4Ml90IF9fczJfNjMgPSBfX3AyXzYzOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNjM7ICBfX3JldjBfNjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYzLCBfX3MwXzYzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzYzOyAgX19yZXYxXzYzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MywgX19zMV82MywgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2Ml82MzsgIF9fcmV2Ml82MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjMsIF9fczJfNjMsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82MzsgXAogIF9fcmV0XzYzID0gX19yZXYwXzYzIC0gX19yZXYxXzYzICogX19ub3N3YXBfc3BsYXRxX2xhbmVfdTMyKF9fcmV2Ml82MywgX19wM182Myk7IFwKICBfX3JldF82MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYzLCBfX3JldF82MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfdTE2KF9fcDBfNjQsIF9fcDFfNjQsIF9fcDJfNjQsIF9fcDNfNjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82NCA9IF9fcDBfNjQ7IFwKICB1aW50MTZ4OF90IF9fczFfNjQgPSBfX3AxXzY0OyBcCiAgdWludDE2eDRfdCBfX3MyXzY0ID0gX19wMl82NDsgXAogIHVpbnQxNng4X3QgX19yZXRfNjQ7IFwKICBfX3JldF82NCA9IF9fczBfNjQgLSBfX3MxXzY0ICogc3BsYXRxX2xhbmVfdTE2KF9fczJfNjQsIF9fcDNfNjQpOyBcCiAgX19yZXRfNjQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lX3UxNihfX3AwXzY1LCBfX3AxXzY1LCBfX3AyXzY1LCBfX3AzXzY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjUgPSBfX3AwXzY1OyBcCiAgdWludDE2eDhfdCBfX3MxXzY1ID0gX19wMV82NTsgXAogIHVpbnQxNng0X3QgX19zMl82NSA9IF9fcDJfNjU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NTsgIF9fcmV2MF82NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjUsIF9fczBfNjUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNjU7ICBfX3JldjFfNjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1LCBfX3MxXzY1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzY1OyAgX19yZXYyXzY1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl82NSwgX19zMl82NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzY1OyBcCiAgX19yZXRfNjUgPSBfX3JldjBfNjUgLSBfX3JldjFfNjUgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV91MTYoX19yZXYyXzY1LCBfX3AzXzY1KTsgXAogIF9fcmV0XzY1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjUsIF9fcmV0XzY1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZV9mMzIoX19wMF82NiwgX19wMV82NiwgX19wMl82NiwgX19wM182NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82NiA9IF9fcDBfNjY7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY2ID0gX19wMV82NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNjYgPSBfX3AyXzY2OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjY7IFwKICBfX3JldF82NiA9IF9fczBfNjYgLSBfX3MxXzY2ICogc3BsYXRxX2xhbmVfZjMyKF9fczJfNjYsIF9fcDNfNjYpOyBcCiAgX19yZXRfNjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lX2YzMihfX3AwXzY3LCBfX3AxXzY3LCBfX3AyXzY3LCBfX3AzXzY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzY3ID0gX19wMF82NzsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjcgPSBfX3AxXzY3OyBcCiAgZmxvYXQzMngyX3QgX19zMl82NyA9IF9fcDJfNjc7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfNjc7ICBfX3JldjBfNjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY3LCBfX3MwXzY3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82NzsgIF9fcmV2MV82NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjcsIF9fczFfNjcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzY3OyAgX19yZXYyXzY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl82NywgX19zMl82NywgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82NzsgXAogIF9fcmV0XzY3ID0gX19yZXYwXzY3IC0gX19yZXYxXzY3ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfZjMyKF9fcmV2Ml82NywgX19wM182Nyk7IFwKICBfX3JldF82NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY3LCBfX3JldF82NywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfczMyKF9fcDBfNjgsIF9fcDFfNjgsIF9fcDJfNjgsIF9fcDNfNjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY4ID0gX19wMF82ODsgXAogIGludDMyeDRfdCBfX3MxXzY4ID0gX19wMV82ODsgXAogIGludDMyeDJfdCBfX3MyXzY4ID0gX19wMl82ODsgXAogIGludDMyeDRfdCBfX3JldF82ODsgXAogIF9fcmV0XzY4ID0gX19zMF82OCAtIF9fczFfNjggKiBzcGxhdHFfbGFuZV9zMzIoX19zMl82OCwgX19wM182OCk7IFwKICBfX3JldF82ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVfczMyKF9fcDBfNjksIF9fcDFfNjksIF9fcDJfNjksIF9fcDNfNjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY5ID0gX19wMF82OTsgXAogIGludDMyeDRfdCBfX3MxXzY5ID0gX19wMV82OTsgXAogIGludDMyeDJfdCBfX3MyXzY5ID0gX19wMl82OTsgXAogIGludDMyeDRfdCBfX3JldjBfNjk7ICBfX3JldjBfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY5LCBfX3MwXzY5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjk7ICBfX3JldjFfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY5LCBfX3MxXzY5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfNjk7ICBfX3JldjJfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzY5LCBfX3MyXzY5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82OTsgXAogIF9fcmV0XzY5ID0gX19yZXYwXzY5IC0gX19yZXYxXzY5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2Ml82OSwgX19wM182OSk7IFwKICBfX3JldF82OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5LCBfX3JldF82OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfczE2KF9fcDBfNzAsIF9fcDFfNzAsIF9fcDJfNzAsIF9fcDNfNzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzcwID0gX19wMF83MDsgXAogIGludDE2eDhfdCBfX3MxXzcwID0gX19wMV83MDsgXAogIGludDE2eDRfdCBfX3MyXzcwID0gX19wMl83MDsgXAogIGludDE2eDhfdCBfX3JldF83MDsgXAogIF9fcmV0XzcwID0gX19zMF83MCAtIF9fczFfNzAgKiBzcGxhdHFfbGFuZV9zMTYoX19zMl83MCwgX19wM183MCk7IFwKICBfX3JldF83MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVfczE2KF9fcDBfNzEsIF9fcDFfNzEsIF9fcDJfNzEsIF9fcDNfNzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzcxID0gX19wMF83MTsgXAogIGludDE2eDhfdCBfX3MxXzcxID0gX19wMV83MTsgXAogIGludDE2eDRfdCBfX3MyXzcxID0gX19wMl83MTsgXAogIGludDE2eDhfdCBfX3JldjBfNzE7ICBfX3JldjBfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxLCBfX3MwXzcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzE7ICBfX3JldjFfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxLCBfX3MxXzcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNzE7ICBfX3JldjJfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzcxLCBfX3MyXzcxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF83MTsgXAogIF9fcmV0XzcxID0gX19yZXYwXzcxIC0gX19yZXYxXzcxICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcmV2Ml83MSwgX19wM183MSk7IFwKICBfX3JldF83MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxLCBfX3JldF83MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNfbGFuZV91MzIoX19wMF83MiwgX19wMV83MiwgX19wMl83MiwgX19wM183MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzcyID0gX19wMF83MjsgXAogIHVpbnQzMngyX3QgX19zMV83MiA9IF9fcDFfNzI7IFwKICB1aW50MzJ4Ml90IF9fczJfNzIgPSBfX3AyXzcyOyBcCiAgdWludDMyeDJfdCBfX3JldF83MjsgXAogIF9fcmV0XzcyID0gX19zMF83MiAtIF9fczFfNzIgKiBzcGxhdF9sYW5lX3UzMihfX3MyXzcyLCBfX3AzXzcyKTsgXAogIF9fcmV0XzcyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX3UzMihfX3AwXzczLCBfX3AxXzczLCBfX3AyXzczLCBfX3AzXzczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzMgPSBfX3AwXzczOyBcCiAgdWludDMyeDJfdCBfX3MxXzczID0gX19wMV83MzsgXAogIHVpbnQzMngyX3QgX19zMl83MyA9IF9fcDJfNzM7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF83MzsgIF9fcmV2MF83MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzMsIF9fczBfNzMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjFfNzM7ICBfX3JldjFfNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzczLCBfX3MxXzczLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzczOyAgX19yZXYyXzczID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MywgX19zMl83MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzczOyBcCiAgX19yZXRfNzMgPSBfX3JldjBfNzMgLSBfX3JldjFfNzMgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3UzMihfX3JldjJfNzMsIF9fcDNfNzMpOyBcCiAgX19yZXRfNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MywgX19yZXRfNzMsIDEsIDApOyBcCiAgX19yZXRfNzM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVfdTE2KF9fcDBfNzQsIF9fcDFfNzQsIF9fcDJfNzQsIF9fcDNfNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF83NCA9IF9fcDBfNzQ7IFwKICB1aW50MTZ4NF90IF9fczFfNzQgPSBfX3AxXzc0OyBcCiAgdWludDE2eDRfdCBfX3MyXzc0ID0gX19wMl83NDsgXAogIHVpbnQxNng0X3QgX19yZXRfNzQ7IFwKICBfX3JldF83NCA9IF9fczBfNzQgLSBfX3MxXzc0ICogc3BsYXRfbGFuZV91MTYoX19zMl83NCwgX19wM183NCk7IFwKICBfX3JldF83NDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZV91MTYoX19wMF83NSwgX19wMV83NSwgX19wMl83NSwgX19wM183NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1ID0gX19wMF83NTsgXAogIHVpbnQxNng0X3QgX19zMV83NSA9IF9fcDFfNzU7IFwKICB1aW50MTZ4NF90IF9fczJfNzUgPSBfX3AyXzc1OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzU7ICBfX3JldjBfNzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc1LCBfX3MwXzc1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxXzc1OyAgX19yZXYxXzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NSwgX19zMV83NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml83NTsgIF9fcmV2Ml83NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzUsIF9fczJfNzUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF83NTsgXAogIF9fcmV0Xzc1ID0gX19yZXYwXzc1IC0gX19yZXYxXzc1ICogX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYyXzc1LCBfX3AzXzc1KTsgXAogIF9fcmV0Xzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzUsIF9fcmV0Xzc1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc19sYW5lX2YzMihfX3AwXzc2LCBfX3AxXzc2LCBfX3AyXzc2LCBfX3AzXzc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzc2ID0gX19wMF83NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNzYgPSBfX3AxXzc2OyBcCiAgZmxvYXQzMngyX3QgX19zMl83NiA9IF9fcDJfNzY7IFwKICBmbG9hdDMyeDJfdCBfX3JldF83NjsgXAogIF9fcmV0Xzc2ID0gX19zMF83NiAtIF9fczFfNzYgKiBzcGxhdF9sYW5lX2YzMihfX3MyXzc2LCBfX3AzXzc2KTsgXAogIF9fcmV0Xzc2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX2YzMihfX3AwXzc3LCBfX3AxXzc3LCBfX3AyXzc3LCBfX3AzXzc3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzc3ID0gX19wMF83NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNzcgPSBfX3AxXzc3OyBcCiAgZmxvYXQzMngyX3QgX19zMl83NyA9IF9fcDJfNzc7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNzc7ICBfX3JldjBfNzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3LCBfX3MwXzc3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV83NzsgIF9fcmV2MV83NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzcsIF9fczFfNzcsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzc3OyAgX19yZXYyXzc3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83NywgX19zMl83NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF83NzsgXAogIF9fcmV0Xzc3ID0gX19yZXYwXzc3IC0gX19yZXYxXzc3ICogX19ub3N3YXBfc3BsYXRfbGFuZV9mMzIoX19yZXYyXzc3LCBfX3AzXzc3KTsgXAogIF9fcmV0Xzc3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzcsIF9fcmV0Xzc3LCAxLCAwKTsgXAogIF9fcmV0Xzc3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc19sYW5lX3MzMihfX3AwXzc4LCBfX3AxXzc4LCBfX3AyXzc4LCBfX3AzXzc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83OCA9IF9fcDBfNzg7IFwKICBpbnQzMngyX3QgX19zMV83OCA9IF9fcDFfNzg7IFwKICBpbnQzMngyX3QgX19zMl83OCA9IF9fcDJfNzg7IFwKICBpbnQzMngyX3QgX19yZXRfNzg7IFwKICBfX3JldF83OCA9IF9fczBfNzggLSBfX3MxXzc4ICogc3BsYXRfbGFuZV9zMzIoX19zMl83OCwgX19wM183OCk7IFwKICBfX3JldF83ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZV9zMzIoX19wMF83OSwgX19wMV83OSwgX19wMl83OSwgX19wM183OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzkgPSBfX3AwXzc5OyBcCiAgaW50MzJ4Ml90IF9fczFfNzkgPSBfX3AxXzc5OyBcCiAgaW50MzJ4Ml90IF9fczJfNzkgPSBfX3AyXzc5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83OTsgIF9fcmV2MF83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzksIF9fczBfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83OTsgIF9fcmV2MV83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzksIF9fczFfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml83OTsgIF9fcmV2Ml83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzksIF9fczJfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0Xzc5OyBcCiAgX19yZXRfNzkgPSBfX3JldjBfNzkgLSBfX3JldjFfNzkgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfNzksIF9fcDNfNzkpOyBcCiAgX19yZXRfNzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83OSwgX19yZXRfNzksIDEsIDApOyBcCiAgX19yZXRfNzk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVfczE2KF9fcDBfODAsIF9fcDFfODAsIF9fcDJfODAsIF9fcDNfODApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzgwID0gX19wMF84MDsgXAogIGludDE2eDRfdCBfX3MxXzgwID0gX19wMV84MDsgXAogIGludDE2eDRfdCBfX3MyXzgwID0gX19wMl84MDsgXAogIGludDE2eDRfdCBfX3JldF84MDsgXAogIF9fcmV0XzgwID0gX19zMF84MCAtIF9fczFfODAgKiBzcGxhdF9sYW5lX3MxNihfX3MyXzgwLCBfX3AzXzgwKTsgXAogIF9fcmV0XzgwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX3MxNihfX3AwXzgxLCBfX3AxXzgxLCBfX3AyXzgxLCBfX3AzXzgxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF84MSA9IF9fcDBfODE7IFwKICBpbnQxNng0X3QgX19zMV84MSA9IF9fcDFfODE7IFwKICBpbnQxNng0X3QgX19zMl84MSA9IF9fcDJfODE7IFwKICBpbnQxNng0X3QgX19yZXYwXzgxOyAgX19yZXYwXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MSwgX19zMF84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzgxOyAgX19yZXYxXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MSwgX19zMV84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzgxOyAgX19yZXYyXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84MSwgX19zMl84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfODE7IFwKICBfX3JldF84MSA9IF9fcmV2MF84MSAtIF9fcmV2MV84MSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml84MSwgX19wM184MSk7IFwKICBfX3JldF84MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgxLCBfX3JldF84MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc3Ffbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc3Ffbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1sc3Ffbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc3Ffbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtbHNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtbHNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiAoZmxvYXQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtbHNxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAoaW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiAoaW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzcV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKGludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bWxzcV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtbHNfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm1sc19uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKHVpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWxzX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKHVpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtbHNfbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtbHNfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1sc19uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bWxzX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtbHNfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtbHNfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm1sc19uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3Qgdm1vdl9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3Qgdm1vdl9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2bW92X25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZtb3Zfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZtb3ZxX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2bW92cV9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZtb3ZxX25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtb3ZxX25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bW92cV9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3Qgdm1vdnFfbl91OCh1aW50OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bW92cV9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92cV9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdnFfbl91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1vdnFfbl91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtb3ZxX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtb3ZxX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZtb3ZxX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZtb3ZxX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtb3ZxX25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bW92cV9uX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtb3ZxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdnFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdnFfbl9zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bW92cV9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bW92cV9uX3M2NChpbnQ2NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtb3ZxX25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtb3ZxX25fczE2KGludDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1vdnFfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1vdl9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm1vdl9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bW92X25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtb3Zfbl91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3Qgdm1vdl9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1vdl9uX3UxNih1aW50MTZfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2bW92X25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1vdl9uX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bW92X25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bW92X25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bW92X25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1vdl9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtb3Zfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkge19fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1vdl9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtb3Zfbl9zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2bW92X25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtb3Zfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bW92X25fczE2KGludDE2X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bW92bF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1vdmxfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92bW92bF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bW92bF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bW92bF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92bF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3Ztb3ZsX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1vdmxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bW92bF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bW92bF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtb3ZsX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1vdmxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1vdmxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1vdm5fdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3Ztb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bW92bl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdm1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1vdm5fdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3Ztb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bW92bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZtb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3Ztb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1vdm5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92bW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1vdm5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92bW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm11bHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bXVscV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtdWxxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtdWxxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm11bHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZtdWxxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bXVscV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm11bHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdWxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm11bHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bXVscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bXVsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2bXVsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtdWxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm11bF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bXVsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtdWxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZtdWxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm11bF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtdWxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bXVsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtdWxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bXVsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZtdWxfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdm11bF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZtdWxfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3Qgdm11bHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZtdWxxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdm11bHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZV91MzIoX19wMF84MiwgX19wMV84MiwgX19wMl84MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzgyID0gX19wMF84MjsgXAogIHVpbnQzMngyX3QgX19zMV84MiA9IF9fcDFfODI7IFwKICB1aW50MzJ4NF90IF9fcmV0XzgyOyBcCiAgX19yZXRfODIgPSBfX3MwXzgyICogc3BsYXRxX2xhbmVfdTMyKF9fczFfODIsIF9fcDJfODIpOyBcCiAgX19yZXRfODI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lX3UzMihfX3AwXzgzLCBfX3AxXzgzLCBfX3AyXzgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfODMgPSBfX3AwXzgzOyBcCiAgdWludDMyeDJfdCBfX3MxXzgzID0gX19wMV84MzsgXAogIHVpbnQzMng0X3QgX19yZXYwXzgzOyAgX19yZXYwXzgzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MywgX19zMF84MywgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84MzsgIF9fcmV2MV84MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODMsIF9fczFfODMsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84MzsgXAogIF9fcmV0XzgzID0gX19yZXYwXzgzICogX19ub3N3YXBfc3BsYXRxX2xhbmVfdTMyKF9fcmV2MV84MywgX19wMl84Myk7IFwKICBfX3JldF84MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgzLCBfX3JldF84MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfdTE2KF9fcDBfODQsIF9fcDFfODQsIF9fcDJfODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF84NCA9IF9fcDBfODQ7IFwKICB1aW50MTZ4NF90IF9fczFfODQgPSBfX3AxXzg0OyBcCiAgdWludDE2eDhfdCBfX3JldF84NDsgXAogIF9fcmV0Xzg0ID0gX19zMF84NCAqIHNwbGF0cV9sYW5lX3UxNihfX3MxXzg0LCBfX3AyXzg0KTsgXAogIF9fcmV0Xzg0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZV91MTYoX19wMF84NSwgX19wMV84NSwgX19wMl84NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzg1ID0gX19wMF84NTsgXAogIHVpbnQxNng0X3QgX19zMV84NSA9IF9fcDFfODU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF84NTsgIF9fcmV2MF84NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUsIF9fczBfODUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfODU7ICBfX3JldjFfODUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg1LCBfX3MxXzg1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODU7IFwKICBfX3JldF84NSA9IF9fcmV2MF84NSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3JldjFfODUsIF9fcDJfODUpOyBcCiAgX19yZXRfODUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NSwgX19yZXRfODUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX2YzMihfX3AwXzg2LCBfX3AxXzg2LCBfX3AyXzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2ID0gX19wMF84NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfODYgPSBfX3AxXzg2OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY7IFwKICBfX3JldF84NiA9IF9fczBfODYgKiBzcGxhdHFfbGFuZV9mMzIoX19zMV84NiwgX19wMl84Nik7IFwKICBfX3JldF84NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfZjMyKF9fcDBfODcsIF9fcDFfODcsIF9fcDJfODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODcgPSBfX3AwXzg3OyBcCiAgZmxvYXQzMngyX3QgX19zMV84NyA9IF9fcDFfODc7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc7ICBfX3JldjBfODcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3LCBfX3MwXzg3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV84NzsgIF9fcmV2MV84NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODcsIF9fczFfODcsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODc7IFwKICBfX3JldF84NyA9IF9fcmV2MF84NyAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3JldjFfODcsIF9fcDJfODcpOyBcCiAgX19yZXRfODcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NywgX19yZXRfODcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX3MzMihfX3AwXzg4LCBfX3AxXzg4LCBfX3AyXzg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84OCA9IF9fcDBfODg7IFwKICBpbnQzMngyX3QgX19zMV84OCA9IF9fcDFfODg7IFwKICBpbnQzMng0X3QgX19yZXRfODg7IFwKICBfX3JldF84OCA9IF9fczBfODggKiBzcGxhdHFfbGFuZV9zMzIoX19zMV84OCwgX19wMl84OCk7IFwKICBfX3JldF84ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfczMyKF9fcDBfODksIF9fcDFfODksIF9fcDJfODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg5ID0gX19wMF84OTsgXAogIGludDMyeDJfdCBfX3MxXzg5ID0gX19wMV84OTsgXAogIGludDMyeDRfdCBfX3JldjBfODk7ICBfX3JldjBfODkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg5LCBfX3MwXzg5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfODk7ICBfX3JldjFfODkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg5LCBfX3MxXzg5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84OTsgXAogIF9fcmV0Xzg5ID0gX19yZXYwXzg5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2MV84OSwgX19wMl84OSk7IFwKICBfX3JldF84OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5LCBfX3JldF84OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfczE2KF9fcDBfOTAsIF9fcDFfOTAsIF9fcDJfOTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzkwID0gX19wMF85MDsgXAogIGludDE2eDRfdCBfX3MxXzkwID0gX19wMV85MDsgXAogIGludDE2eDhfdCBfX3JldF85MDsgXAogIF9fcmV0XzkwID0gX19zMF85MCAqIHNwbGF0cV9sYW5lX3MxNihfX3MxXzkwLCBfX3AyXzkwKTsgXAogIF9fcmV0XzkwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZV9zMTYoX19wMF85MSwgX19wMV85MSwgX19wMl85MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfOTEgPSBfX3AwXzkxOyBcCiAgaW50MTZ4NF90IF9fczFfOTEgPSBfX3AxXzkxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF85MTsgIF9fcmV2MF85MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTEsIF9fczBfOTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV85MTsgIF9fcmV2MV85MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTEsIF9fczFfOTEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzkxOyBcCiAgX19yZXRfOTEgPSBfX3JldjBfOTEgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYxXzkxLCBfX3AyXzkxKTsgXAogIF9fcmV0XzkxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTEsIF9fcmV0XzkxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzkxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3UzMihfX3AwXzkyLCBfX3AxXzkyLCBfX3AyXzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfOTIgPSBfX3AwXzkyOyBcCiAgdWludDMyeDJfdCBfX3MxXzkyID0gX19wMV85MjsgXAogIHVpbnQzMngyX3QgX19yZXRfOTI7IFwKICBfX3JldF85MiA9IF9fczBfOTIgKiBzcGxhdF9sYW5lX3UzMihfX3MxXzkyLCBfX3AyXzkyKTsgXAogIF9fcmV0XzkyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX3UzMihfX3AwXzkzLCBfX3AxXzkzLCBfX3AyXzkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfOTMgPSBfX3AwXzkzOyBcCiAgdWludDMyeDJfdCBfX3MxXzkzID0gX19wMV85MzsgXAogIHVpbnQzMngyX3QgX19yZXYwXzkzOyAgX19yZXYwXzkzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MywgX19zMF85MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV85MzsgIF9fcmV2MV85MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTMsIF9fczFfOTMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF85MzsgXAogIF9fcmV0XzkzID0gX19yZXYwXzkzICogX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzkzLCBfX3AyXzkzKTsgXAogIF9fcmV0XzkzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTMsIF9fcmV0XzkzLCAxLCAwKTsgXAogIF9fcmV0XzkzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3UxNihfX3AwXzk0LCBfX3AxXzk0LCBfX3AyXzk0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfOTQgPSBfX3AwXzk0OyBcCiAgdWludDE2eDRfdCBfX3MxXzk0ID0gX19wMV85NDsgXAogIHVpbnQxNng0X3QgX19yZXRfOTQ7IFwKICBfX3JldF85NCA9IF9fczBfOTQgKiBzcGxhdF9sYW5lX3UxNihfX3MxXzk0LCBfX3AyXzk0KTsgXAogIF9fcmV0Xzk0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX3UxNihfX3AwXzk1LCBfX3AxXzk1LCBfX3AyXzk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfOTUgPSBfX3AwXzk1OyBcCiAgdWludDE2eDRfdCBfX3MxXzk1ID0gX19wMV85NTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzk1OyAgX19yZXYwXzk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85NSwgX19zMF85NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV85NTsgIF9fcmV2MV85NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTUsIF9fczFfOTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF85NTsgXAogIF9fcmV0Xzk1ID0gX19yZXYwXzk1ICogX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYxXzk1LCBfX3AyXzk1KTsgXAogIF9fcmV0Xzk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTUsIF9fcmV0Xzk1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzk1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX2YzMihfX3AwXzk2LCBfX3AxXzk2LCBfX3AyXzk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzk2ID0gX19wMF85NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfOTYgPSBfX3AxXzk2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfOTY7IFwKICBfX3JldF85NiA9IF9fczBfOTYgKiBzcGxhdF9sYW5lX2YzMihfX3MxXzk2LCBfX3AyXzk2KTsgXAogIF9fcmV0Xzk2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX2YzMihfX3AwXzk3LCBfX3AxXzk3LCBfX3AyXzk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzk3ID0gX19wMF85NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfOTcgPSBfX3AxXzk3OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzk3OyAgX19yZXYwXzk3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85NywgX19zMF85NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfOTc7ICBfX3JldjFfOTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk3LCBfX3MxXzk3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzk3OyBcCiAgX19yZXRfOTcgPSBfX3JldjBfOTcgKiBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjFfOTcsIF9fcDJfOTcpOyBcCiAgX19yZXRfOTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85NywgX19yZXRfOTcsIDEsIDApOyBcCiAgX19yZXRfOTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVfczMyKF9fcDBfOTgsIF9fcDFfOTgsIF9fcDJfOTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzk4ID0gX19wMF85ODsgXAogIGludDMyeDJfdCBfX3MxXzk4ID0gX19wMV85ODsgXAogIGludDMyeDJfdCBfX3JldF85ODsgXAogIF9fcmV0Xzk4ID0gX19zMF85OCAqIHNwbGF0X2xhbmVfczMyKF9fczFfOTgsIF9fcDJfOTgpOyBcCiAgX19yZXRfOTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVfczMyKF9fcDBfOTksIF9fcDFfOTksIF9fcDJfOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzk5ID0gX19wMF85OTsgXAogIGludDMyeDJfdCBfX3MxXzk5ID0gX19wMV85OTsgXAogIGludDMyeDJfdCBfX3JldjBfOTk7ICBfX3JldjBfOTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzk5LCBfX3MwXzk5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfOTk7ICBfX3JldjFfOTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk5LCBfX3MxXzk5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldF85OTsgXAogIF9fcmV0Xzk5ID0gX19yZXYwXzk5ICogX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzk5LCBfX3AyXzk5KTsgXAogIF9fcmV0Xzk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTksIF9fcmV0Xzk5LCAxLCAwKTsgXAogIF9fcmV0Xzk5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3MxNihfX3AwXzEwMCwgX19wMV8xMDAsIF9fcDJfMTAwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8xMDAgPSBfX3AwXzEwMDsgXAogIGludDE2eDRfdCBfX3MxXzEwMCA9IF9fcDFfMTAwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzEwMDsgXAogIF9fcmV0XzEwMCA9IF9fczBfMTAwICogc3BsYXRfbGFuZV9zMTYoX19zMV8xMDAsIF9fcDJfMTAwKTsgXAogIF9fcmV0XzEwMDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZV9zMTYoX19wMF8xMDEsIF9fcDFfMTAxLCBfX3AyXzEwMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTAxID0gX19wMF8xMDE7IFwKICBpbnQxNng0X3QgX19zMV8xMDEgPSBfX3AxXzEwMTsgXAogIGludDE2eDRfdCBfX3JldjBfMTAxOyAgX19yZXYwXzEwMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTAxLCBfX3MwXzEwMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEwMTsgIF9fcmV2MV8xMDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwMSwgX19zMV8xMDEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzEwMTsgXAogIF9fcmV0XzEwMSA9IF9fcmV2MF8xMDEgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTAxLCBfX3AyXzEwMSk7IFwKICBfX3JldF8xMDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMDEsIF9fcmV0XzEwMSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMDE7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxxX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKHVpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxxX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm11bHFfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAodWludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm11bHFfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKHVpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm11bHFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoZmxvYXQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bXVscV9uX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKGZsb2F0MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVscV9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bXVscV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm11bHFfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MTZ4OF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm11bF9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMl90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bXVsX25fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm11bF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2bXVsX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoZmxvYXQzMngyX3QpIHtfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bXVsX25fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoZmxvYXQzMngyX3QpIHtfX3AxLCBfX3AxfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtdWxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoaW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtdWxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bXVsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bXVsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZtdWxsX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtdWxsX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDM3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCBfX25vc3dhcF92bXVsbF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bXVsbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bXVsbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgX19ub3N3YXBfdm11bGxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgX19ub3N3YXBfdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgX19ub3N3YXBfdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bXVsbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm11bGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm11bGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9sYW5lX3UzMihfX3AwXzEwMiwgX19wMV8xMDIsIF9fcDJfMTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMTAyID0gX19wMF8xMDI7IFwKICB1aW50MzJ4Ml90IF9fczFfMTAyID0gX19wMV8xMDI7IFwKICB1aW50NjR4Ml90IF9fcmV0XzEwMjsgXAogIF9fcmV0XzEwMiA9IHZtdWxsX3UzMihfX3MwXzEwMiwgc3BsYXRfbGFuZV91MzIoX19zMV8xMDIsIF9fcDJfMTAyKSk7IFwKICBfX3JldF8xMDI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lX3UzMihfX3AwXzEwMywgX19wMV8xMDMsIF9fcDJfMTAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMTAzID0gX19wMF8xMDM7IFwKICB1aW50MzJ4Ml90IF9fczFfMTAzID0gX19wMV8xMDM7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF8xMDM7ICBfX3JldjBfMTAzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMDMsIF9fczBfMTAzLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzEwMzsgIF9fcmV2MV8xMDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwMywgX19zMV8xMDMsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF8xMDM7IFwKICBfX3JldF8xMDMgPSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYwXzEwMywgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzEwMywgX19wMl8xMDMpKTsgXAogIF9fcmV0XzEwMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEwMywgX19yZXRfMTAzLCAxLCAwKTsgXAogIF9fcmV0XzEwMzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2xhbmVfdTE2KF9fcDBfMTA0LCBfX3AxXzEwNCwgX19wMl8xMDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8xMDQgPSBfX3AwXzEwNDsgXAogIHVpbnQxNng0X3QgX19zMV8xMDQgPSBfX3AxXzEwNDsgXAogIHVpbnQzMng0X3QgX19yZXRfMTA0OyBcCiAgX19yZXRfMTA0ID0gdm11bGxfdTE2KF9fczBfMTA0LCBzcGxhdF9sYW5lX3UxNihfX3MxXzEwNCwgX19wMl8xMDQpKTsgXAogIF9fcmV0XzEwNDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2xhbmVfdTE2KF9fcDBfMTA1LCBfX3AxXzEwNSwgX19wMl8xMDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8xMDUgPSBfX3AwXzEwNTsgXAogIHVpbnQxNng0X3QgX19zMV8xMDUgPSBfX3AxXzEwNTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzEwNTsgIF9fcmV2MF8xMDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEwNSwgX19zMF8xMDUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfMTA1OyAgX19yZXYxXzEwNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTA1LCBfX3MxXzEwNSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzEwNTsgXAogIF9fcmV0XzEwNSA9IF9fbm9zd2FwX3ZtdWxsX3UxNihfX3JldjBfMTA1LCBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjFfMTA1LCBfX3AyXzEwNSkpOyBcCiAgX19yZXRfMTA1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA1LCBfX3JldF8xMDUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTA1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZV9zMzIoX19wMF8xMDYsIF9fcDFfMTA2LCBfX3AyXzEwNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTA2ID0gX19wMF8xMDY7IFwKICBpbnQzMngyX3QgX19zMV8xMDYgPSBfX3AxXzEwNjsgXAogIGludDY0eDJfdCBfX3JldF8xMDY7IFwKICBfX3JldF8xMDYgPSB2bXVsbF9zMzIoX19zMF8xMDYsIHNwbGF0X2xhbmVfczMyKF9fczFfMTA2LCBfX3AyXzEwNikpOyBcCiAgX19yZXRfMTA2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZV9zMzIoX19wMF8xMDcsIF9fcDFfMTA3LCBfX3AyXzEwNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTA3ID0gX19wMF8xMDc7IFwKICBpbnQzMngyX3QgX19zMV8xMDcgPSBfX3AxXzEwNzsgXAogIGludDMyeDJfdCBfX3JldjBfMTA3OyAgX19yZXYwXzEwNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTA3LCBfX3MwXzEwNywgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzEwNzsgIF9fcmV2MV8xMDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwNywgX19zMV8xMDcsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzEwNzsgXAogIF9fcmV0XzEwNyA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjBfMTA3LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTA3LCBfX3AyXzEwNykpOyBcCiAgX19yZXRfMTA3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA3LCBfX3JldF8xMDcsIDEsIDApOyBcCiAgX19yZXRfMTA3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZV9zMTYoX19wMF8xMDgsIF9fcDFfMTA4LCBfX3AyXzEwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTA4ID0gX19wMF8xMDg7IFwKICBpbnQxNng0X3QgX19zMV8xMDggPSBfX3AxXzEwODsgXAogIGludDMyeDRfdCBfX3JldF8xMDg7IFwKICBfX3JldF8xMDggPSB2bXVsbF9zMTYoX19zMF8xMDgsIHNwbGF0X2xhbmVfczE2KF9fczFfMTA4LCBfX3AyXzEwOCkpOyBcCiAgX19yZXRfMTA4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZV9zMTYoX19wMF8xMDksIF9fcDFfMTA5LCBfX3AyXzEwOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTA5ID0gX19wMF8xMDk7IFwKICBpbnQxNng0X3QgX19zMV8xMDkgPSBfX3AxXzEwOTsgXAogIGludDE2eDRfdCBfX3JldjBfMTA5OyAgX19yZXYwXzEwOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTA5LCBfX3MwXzEwOSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEwOTsgIF9fcmV2MV8xMDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwOSwgX19zMV8xMDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEwOTsgXAogIF9fcmV0XzEwOSA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjBfMTA5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTA5LCBfX3AyXzEwOSkpOyBcCiAgX19yZXRfMTA5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA5LCBfX3JldF8xMDksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTA5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bXVsbF9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMl90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfdTMyKF9fcDAsICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MCwgKHVpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgX19ub3N3YXBfdm11bGxfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3UzMihfX3AwLCAodWludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxsX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF91MTYoX19wMCwgKHVpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bXVsbF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MTYoX19yZXYwLCAodWludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bXVsbF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDAsICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtdWxsX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZtdWxsX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF9zMzIoX19wMCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXVsbF9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bXVsbF9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczE2KF9fcDAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZtdm5fcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3Qgdm12bl9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZtdm5xX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZtdm5xX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm12bnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3Qgdm12bnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bXZucV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm12bnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm12bnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtdm5xX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm12bnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm12bnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdm5xX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXZucV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtdm5xX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bXZucV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZtdm5fdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm12bl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtdm5fdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtdm5fdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm12bl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm12bl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm12bl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bXZuX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bXZuX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bXZuX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm12bl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm12bl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZuZWdxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bmVncV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZuZWdxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bmVncV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZuZWdxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bmVncV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm5lZ19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bmVnX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZuZWdfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZuZWdfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAtX19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2b3JucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2b3JucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2b3JucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm9ybnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZvcm5xX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2b3JucV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm9ybnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZvcm5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZvcm5xX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm9ybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm9ybnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm9ybnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZvcm5xX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZvcm5xX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2b3JucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2b3JucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm9ybl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZvcm5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZvcm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZvcm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3Qgdm9ybl91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZvcm5fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZvcm5fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2b3JuX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2b3JuX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2b3JuX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZvcm5fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3Qgdm9ybl9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm9ybl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2b3JuX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm9ycnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2b3JycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZvcnJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZvcnJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZvcnJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZvcnJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZvcnJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZvcnJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm9ycnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZvcnJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm9ycnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2b3JycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2b3JycV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZvcnJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZvcnJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm9ycnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm9ycl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm9ycl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2b3JyX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZvcnJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2b3JyX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2b3JyX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZvcnJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZvcnJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm9ycl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2b3JyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm9ycl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZvcnJfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCBfX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm9ycl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZvcnJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZwYWRhbHFfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBhZGFscV91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cGFkYWxxX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cGFkYWxxX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cGFkYWxxX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cGFkYWxxX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwYWRhbHFfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZwYWRhbHFfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cGFkYWxxX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnBhZGFscV9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cGFkYWxxX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnBhZGFscV9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnBhZGFsX3U4KHVpbnQxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnBhZGFsX3U4KHVpbnQxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDFfdCB2cGFkYWxfdTMyKHVpbnQ2NHgxX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZwYWRhbF91MzIodWludDY0eDFfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZwYWRhbF91MTYodWludDMyeDJfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGFsX3UxNih1aW50MzJ4Ml90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZwYWRhbF9zOChpbnQxNng0X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZwYWRhbF9zOChpbnQxNng0X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4MV90IHZwYWRhbF9zMzIoaW50NjR4MV90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgxX3QgdnBhZGFsX3MzMihpbnQ2NHgxX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkYWxfczE2KGludDMyeDJfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwYWRhbF9zMTYoaW50MzJ4Ml90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZwYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZwYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnBhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnBhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnBhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZwYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZwYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnBhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZwYWRkX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnBhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnBhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cGFkZGxxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBhZGRscV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnBhZGRscV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cGFkZGxxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBhZGRscV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cGFkZGxxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cGFkZGxxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cGFkZGxxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnBhZGRscV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZwYWRkbHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnBhZGRscV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZwYWRkbHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZwYWRkbF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZwYWRkbF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDFfdCB2cGFkZGxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZwYWRkbF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZwYWRkbF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGRsX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnBhZGRsX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZwYWRkbF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDFfdCB2cGFkZGxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2cGFkZGxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkZGxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cGFkZGxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnBtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnBtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cG1heF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cG1heF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cG1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cG1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnBtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnBtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1heF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnBtYXhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZwbWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwbWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cG1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cG1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnBtaW5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnBtaW5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cG1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cG1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cG1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cG1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnBtaW5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnBtaW5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1pbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnBtaW5fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZwbWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwbWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cG1pbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cG1pbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnFhYnNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxYWJzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFhYnNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWFic3FfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxYWJzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFhYnNfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cWFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cWFic19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFhYnNfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWFic19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFhYnNfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnFhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cWFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnFhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cWFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cWFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cWFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFhZGRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWFkZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cWFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cWFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZxYWRkX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cWFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cWFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxYWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFhZGRfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cWFkZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbGFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9sYW5lX3MzMihfX3AwXzExMCwgX19wMV8xMTAsIF9fcDJfMTEwLCBfX3AzXzExMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfMTEwID0gX19wMF8xMTA7IFwKICBpbnQzMngyX3QgX19zMV8xMTAgPSBfX3AxXzExMDsgXAogIGludDMyeDJfdCBfX3MyXzExMCA9IF9fcDJfMTEwOyBcCiAgaW50NjR4Ml90IF9fcmV0XzExMDsgXAogIF9fcmV0XzExMCA9IHZxZG1sYWxfczMyKF9fczBfMTEwLCBfX3MxXzExMCwgc3BsYXRfbGFuZV9zMzIoX19zMl8xMTAsIF9fcDNfMTEwKSk7IFwKICBfX3JldF8xMTA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsX2xhbmVfczMyKF9fcDBfMTExLCBfX3AxXzExMSwgX19wMl8xMTEsIF9fcDNfMTExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8xMTEgPSBfX3AwXzExMTsgXAogIGludDMyeDJfdCBfX3MxXzExMSA9IF9fcDFfMTExOyBcCiAgaW50MzJ4Ml90IF9fczJfMTExID0gX19wMl8xMTE7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzExMTsgIF9fcmV2MF8xMTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExMSwgX19zMF8xMTEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTE7ICBfX3JldjFfMTExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTEsIF9fczFfMTExLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMTExOyAgX19yZXYyXzExMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTExLCBfX3MyXzExMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMTExOyBcCiAgX19yZXRfMTExID0gX19ub3N3YXBfdnFkbWxhbF9zMzIoX19yZXYwXzExMSwgX19yZXYxXzExMSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzExMSwgX19wM18xMTEpKTsgXAogIF9fcmV0XzExMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzExMSwgX19yZXRfMTExLCAxLCAwKTsgXAogIF9fcmV0XzExMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfbGFuZV9zMTYoX19wMF8xMTIsIF9fcDFfMTEyLCBfX3AyXzExMiwgX19wM18xMTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzExMiA9IF9fcDBfMTEyOyBcCiAgaW50MTZ4NF90IF9fczFfMTEyID0gX19wMV8xMTI7IFwKICBpbnQxNng0X3QgX19zMl8xMTIgPSBfX3AyXzExMjsgXAogIGludDMyeDRfdCBfX3JldF8xMTI7IFwKICBfX3JldF8xMTIgPSB2cWRtbGFsX3MxNihfX3MwXzExMiwgX19zMV8xMTIsIHNwbGF0X2xhbmVfczE2KF9fczJfMTEyLCBfX3AzXzExMikpOyBcCiAgX19yZXRfMTEyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9sYW5lX3MxNihfX3AwXzExMywgX19wMV8xMTMsIF9fcDJfMTEzLCBfX3AzXzExMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMTEzID0gX19wMF8xMTM7IFwKICBpbnQxNng0X3QgX19zMV8xMTMgPSBfX3AxXzExMzsgXAogIGludDE2eDRfdCBfX3MyXzExMyA9IF9fcDJfMTEzOyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMTM7ICBfX3JldjBfMTEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMTMsIF9fczBfMTEzLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMTEzOyAgX19yZXYxXzExMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTEzLCBfX3MxXzExMywgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzExMzsgIF9fcmV2Ml8xMTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzExMywgX19zMl8xMTMsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzExMzsgXAogIF9fcmV0XzExMyA9IF9fbm9zd2FwX3ZxZG1sYWxfczE2KF9fcmV2MF8xMTMsIF9fcmV2MV8xMTMsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml8xMTMsIF9fcDNfMTEzKSk7IFwKICBfX3JldF8xMTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMTMsIF9fcmV0XzExMywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMTM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcmV2MCwgX19yZXYxLCAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdnFkbWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbGFsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjAsIF9fcmV2MSwgKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxZG1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbHNsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxzbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9sYW5lX3MzMihfX3AwXzExNCwgX19wMV8xMTQsIF9fcDJfMTE0LCBfX3AzXzExNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfMTE0ID0gX19wMF8xMTQ7IFwKICBpbnQzMngyX3QgX19zMV8xMTQgPSBfX3AxXzExNDsgXAogIGludDMyeDJfdCBfX3MyXzExNCA9IF9fcDJfMTE0OyBcCiAgaW50NjR4Ml90IF9fcmV0XzExNDsgXAogIF9fcmV0XzExNCA9IHZxZG1sc2xfczMyKF9fczBfMTE0LCBfX3MxXzExNCwgc3BsYXRfbGFuZV9zMzIoX19zMl8xMTQsIF9fcDNfMTE0KSk7IFwKICBfX3JldF8xMTQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsX2xhbmVfczMyKF9fcDBfMTE1LCBfX3AxXzExNSwgX19wMl8xMTUsIF9fcDNfMTE1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8xMTUgPSBfX3AwXzExNTsgXAogIGludDMyeDJfdCBfX3MxXzExNSA9IF9fcDFfMTE1OyBcCiAgaW50MzJ4Ml90IF9fczJfMTE1ID0gX19wMl8xMTU7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzExNTsgIF9fcmV2MF8xMTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExNSwgX19zMF8xMTUsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTU7ICBfX3JldjFfMTE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTUsIF9fczFfMTE1LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMTE1OyAgX19yZXYyXzExNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTE1LCBfX3MyXzExNSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMTE1OyBcCiAgX19yZXRfMTE1ID0gX19ub3N3YXBfdnFkbWxzbF9zMzIoX19yZXYwXzExNSwgX19yZXYxXzExNSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzExNSwgX19wM18xMTUpKTsgXAogIF9fcmV0XzExNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzExNSwgX19yZXRfMTE1LCAxLCAwKTsgXAogIF9fcmV0XzExNTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfbGFuZV9zMTYoX19wMF8xMTYsIF9fcDFfMTE2LCBfX3AyXzExNiwgX19wM18xMTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzExNiA9IF9fcDBfMTE2OyBcCiAgaW50MTZ4NF90IF9fczFfMTE2ID0gX19wMV8xMTY7IFwKICBpbnQxNng0X3QgX19zMl8xMTYgPSBfX3AyXzExNjsgXAogIGludDMyeDRfdCBfX3JldF8xMTY7IFwKICBfX3JldF8xMTYgPSB2cWRtbHNsX3MxNihfX3MwXzExNiwgX19zMV8xMTYsIHNwbGF0X2xhbmVfczE2KF9fczJfMTE2LCBfX3AzXzExNikpOyBcCiAgX19yZXRfMTE2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9sYW5lX3MxNihfX3AwXzExNywgX19wMV8xMTcsIF9fcDJfMTE3LCBfX3AzXzExNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMTE3ID0gX19wMF8xMTc7IFwKICBpbnQxNng0X3QgX19zMV8xMTcgPSBfX3AxXzExNzsgXAogIGludDE2eDRfdCBfX3MyXzExNyA9IF9fcDJfMTE3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMTc7ICBfX3JldjBfMTE3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMTcsIF9fczBfMTE3LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMTE3OyAgX19yZXYxXzExNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTE3LCBfX3MxXzExNywgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzExNzsgIF9fcmV2Ml8xMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzExNywgX19zMl8xMTcsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzExNzsgXAogIF9fcmV0XzExNyA9IF9fbm9zd2FwX3ZxZG1sc2xfczE2KF9fcmV2MF8xMTcsIF9fcmV2MV8xMTcsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml8xMTcsIF9fcDNfMTE3KSk7IFwKICBfX3JldF8xMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMTcsIF9fcmV0XzExNywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcmV2MCwgX19yZXYxLCAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdnFkbWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbHNsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjAsIF9fcmV2MSwgKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxZG1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFkbXVsaHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnFkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxZG11bGhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cWRtdWxoX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFkbXVsaF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cWRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbXVsaHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGhxX3MzMihfX3AwLCAoaW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGhxX3MzMihfX3JldjAsIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWRtdWxocV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsaHFfczE2KF9fcDAsIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxZG11bGhxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsaHFfczE2KF9fcmV2MCwgKGludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGhfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxoX3MzMihfX3JldjAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxoX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cWRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsaF9zMTYoX19yZXYwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92cWRtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFkbXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfbGFuZV9zMzIoX19wMF8xMTgsIF9fcDFfMTE4LCBfX3AyXzExOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTE4ID0gX19wMF8xMTg7IFwKICBpbnQzMngyX3QgX19zMV8xMTggPSBfX3AxXzExODsgXAogIGludDY0eDJfdCBfX3JldF8xMTg7IFwKICBfX3JldF8xMTggPSB2cWRtdWxsX3MzMihfX3MwXzExOCwgc3BsYXRfbGFuZV9zMzIoX19zMV8xMTgsIF9fcDJfMTE4KSk7IFwKICBfX3JldF8xMTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVfczMyKF9fcDBfMTE5LCBfX3AxXzExOSwgX19wMl8xMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzExOSA9IF9fcDBfMTE5OyBcCiAgaW50MzJ4Ml90IF9fczFfMTE5ID0gX19wMV8xMTk7IFwKICBpbnQzMngyX3QgX19yZXYwXzExOTsgIF9fcmV2MF8xMTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExOSwgX19zMF8xMTksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTk7ICBfX3JldjFfMTE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTksIF9fczFfMTE5LCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF8xMTk7IFwKICBfX3JldF8xMTkgPSBfX25vc3dhcF92cWRtdWxsX3MzMihfX3JldjBfMTE5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTE5LCBfX3AyXzExOSkpOyBcCiAgX19yZXRfMTE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTE5LCBfX3JldF8xMTksIDEsIDApOyBcCiAgX19yZXRfMTE5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsbF9sYW5lX3MxNihfX3AwXzEyMCwgX19wMV8xMjAsIF9fcDJfMTIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8xMjAgPSBfX3AwXzEyMDsgXAogIGludDE2eDRfdCBfX3MxXzEyMCA9IF9fcDFfMTIwOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEyMDsgXAogIF9fcmV0XzEyMCA9IHZxZG11bGxfczE2KF9fczBfMTIwLCBzcGxhdF9sYW5lX3MxNihfX3MxXzEyMCwgX19wMl8xMjApKTsgXAogIF9fcmV0XzEyMDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfbGFuZV9zMTYoX19wMF8xMjEsIF9fcDFfMTIxLCBfX3AyXzEyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTIxID0gX19wMF8xMjE7IFwKICBpbnQxNng0X3QgX19zMV8xMjEgPSBfX3AxXzEyMTsgXAogIGludDE2eDRfdCBfX3JldjBfMTIxOyAgX19yZXYwXzEyMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTIxLCBfX3MwXzEyMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEyMTsgIF9fcmV2MV8xMjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEyMSwgX19zMV8xMjEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEyMTsgXAogIF9fcmV0XzEyMSA9IF9fbm9zd2FwX3ZxZG11bGxfczE2KF9fcmV2MF8xMjEsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2MV8xMjEsIF9fcDJfMTIxKSk7IFwKICBfX3JldF8xMjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjEsIF9fcmV0XzEyMSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjE7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9zMzIoX19wMCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG11bGxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGxfczE2KF9fcDAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX3JldjAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtdWxsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnFtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnFtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCBfX25vc3dhcF92cW1vdm5fdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cW1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cW1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZxbW92bl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCBfX25vc3dhcF92cW1vdm5fdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cW1vdm5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFtb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cW1vdm5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFtb3ZuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxbW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnFtb3ZuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFtb3ZuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZxbW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgX19ub3N3YXBfdnFtb3ZuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnFtb3Z1bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZxbW92dW5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgX19ub3N3YXBfdnFtb3Z1bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZxbW92dW5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cW1vdnVuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZxbW92dW5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxbW92dW5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cW1vdnVuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3ZxbW92dW5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cW5lZ3FfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVncV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cW5lZ3FfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFuZWdxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxbmVncV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFuZWdxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxbmVncV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFuZWdxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cW5lZ19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZxbmVnX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxbmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cW5lZ19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxbmVnX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cW5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxcmRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG11bGhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFyZG11bGhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxcmRtdWxocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxcmRtdWxocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFyZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cXJkbXVsaF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXJkbXVsaHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxcmRtdWxocV9zMzIoX19wMCwgKGludDMyeDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG11bGhxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhxX3MzMihfX3JldjAsIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbXVsaHFfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZxcmRtdWxocV9zMTYoX19wMCwgKGludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFyZG11bGhxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjAsIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cXJkbXVsaF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFyZG11bGhfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxcmRtdWxoX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cXJkbXVsaF9zMTYoX19wMCwgKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFyZG11bGhfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZxcnNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXJzaGxxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cXJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxcnNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cXJzaGxxX3U2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZxcnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cXJzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZxcnNobHFfdTE2KHVpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxcnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxcnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXJzaGxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cXJzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFyc2hscV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFyc2hscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXJzaGxfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFyc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cXJzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnFyc2hsX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2cXJzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZxcnNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cXJzaGxfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXJzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxcnNobF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cXJzaGxfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cXJzaGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXJzaHJ1bl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocnVuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJ1bl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXJzaHJ1bl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cXNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZxc2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cXNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cXNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZxc2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZxc2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnFzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnFzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxc2hscV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFzaGxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cXNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXNobHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxc2hscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFzaGxfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnFzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cXNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2cXNobF91NjQodWludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cXNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZxc2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFzaGxfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxc2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxc2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hscV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hscV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGxxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdXFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdXFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1cV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdXFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdXFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdXFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHVxX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHVxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGx1cV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1X25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdV9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGx1X25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHVfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdV9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsdV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1X25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocnVuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXNocnVuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hydW5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnFzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFzdWJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxc3VicV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cXN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnFzdWJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxc3VicV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cXN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXN1YnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFzdWJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxc3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3Zxc3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFzdWJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cXN1YnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3Zxc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFzdWJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFzdWJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cXN1Yl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cXN1Yl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZxc3ViX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cXN1Yl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cXN1Yl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3Zxc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFzdWJfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxc3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxc3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cXN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgX19ub3N3YXBfdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCBfX25vc3dhcF92cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cmFkZGhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmFkZGhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgX19ub3N3YXBfdnJhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnJhZGRobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnJhZGRobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZyYWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJhZGRobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnJhZGRobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IF9fbm9zd2FwX3ZyYWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJlY3BlcV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cmVjcGVxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJlY3BlX3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cmVjcGVfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZyZWNwZV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJlY3BlX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cmVjcHNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwc3FfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cmVjcHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cmVjcHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmV2MTZfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnJldjE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cmV2MTZxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2LCA5LCA4LCAxMSwgMTAsIDEzLCAxMiwgMTUsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZyZXYxNnFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyZXYxNnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJldjE2cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cmV2MTZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyZXYxNnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJldjE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyZXYxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyZXYxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cmV2MTZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnJldjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZyZXYzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdnJldjMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2cmV2MzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cmV2MzJxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZyZXYzMnFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZyZXYzMnFfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZyZXYzMnFfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmV2MzJxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyZXYzMnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyZXYzMnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyZXYzMnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZyZXYzMnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJldjMycV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCwgMTEsIDEwLCA5LCA4LCAxNSwgMTQsIDEzLCAxMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cmV2MzJxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cmV2MzJxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cmV2MzJfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnJldjMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cmV2MzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZyZXYzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cmV2MzJfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnJldjMyX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZyZXYzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnJldjMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmV2NjRfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnJldjY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2cmV2NjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZyZXY2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZyZXY2NHFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnJldjY0cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdnJldjY0cV9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnJldjY0cV9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyZXY2NHFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJldjY0cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJldjY0cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJldjY0cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyZXY2NHFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyZXY2NHFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZyZXY2NHFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJldjY0cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZyZXY2NHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyZXY2NHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZyZXY2NHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyZXY2NHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZyZXY2NF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmV2NjRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyZXY2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJldjY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJldjY0X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cmV2NjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJldjY0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyZXY2NF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZyZXY2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJldjY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cmV2NjRfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyZXY2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJldjY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmV2NjRfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmhhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyaGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJoYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJoYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnJoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnJoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnJoYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyaGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJoYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyaGFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJoYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJoYWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cmhhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZyaGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnJoYWRkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJoYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyaGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnJoYWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmhhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnJzaGxxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cnNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyc2hscV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyc2hscV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJzaGxxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cnNobHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZyc2hscV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnJzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cnNobHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cnNobF91OCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyc2hsX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdnJzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJzaGxfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cnNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZyc2hsX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocnFfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocnFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hycV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hycV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocl9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2cnNocl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hyX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2cnNocl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hyX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZyc3FydGVxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cnNxcnRlcV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJzcXJ0ZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cnNxcnRlcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJzcXJ0ZV91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZyc3FydGVfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cnNxcnRlX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJzcXJ0ZV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyc3FydHNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cnNxcnRzcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cnNxcnRzX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZyc3FydHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNyYXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZyc3JhX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnJzcmFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3Zyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3Zyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJzdWJobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnJzdWJobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3Zyc3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyc3ViaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyc3ViaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92cnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyc3ViaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyc3ViaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92cnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChwb2x5OHg4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKHBvbHk4eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChwb2x5OHg4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChwb2x5MTZ4NF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAocG9seTh4MTZfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAocG9seTh4MTZfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTgoX19zMCwgKHBvbHk4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAocG9seTE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAocG9seTE2eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kzMihfX3MwLCAoaW50MzJ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAoaW50NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChpbnQ2NHgyX3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChpbnQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTgoX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pMzIoX19zMCwgKGludDMyeDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pNjQoX19zMCwgKGludDY0eDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pNjQoX19zMCwgKGludDY0eDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAoaW50NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTY0KF9fczAsIChpbnQ2NHgxX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChpbnQxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChpbnQxNng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kxNihfX3MwLCAoaW50MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pOChfX3MwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9mMzIoX19zMCwgKGZsb2F0MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfZjMyKF9fczAsIChmbG9hdDMyeDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMngyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pNjQoX19zMCwgKGludDY0eDFfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kxNihfX3MwLCAoaW50MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKGludDE2eDRfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKGludDE2eDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2c2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hscV91MzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnNobHFfdTE2KHVpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2c2hscV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2c2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2c2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2c2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2c2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2c2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnNobF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2c2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnNobF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hscV9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hscV9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hscV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobHFfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnNobF9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaGxfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2hsbF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2hsbF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocnFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocnFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocnFfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaHJfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hyX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2hyX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNocm5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpcV9uX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhcV9uX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzcmFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzcmFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlfbl9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3JpX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3JpX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCA1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCAzNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNTApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDMpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3A4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdThfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91OF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3U2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mMzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zMzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3MzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3MxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3U4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3U4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3M4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3M2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3A4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9wOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3AxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3AxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91OF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCA1MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91NjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91NjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgMzIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjMyX3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2YzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczMyX3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgMzUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzMyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdThfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91OF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxOSk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91MTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9mMzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9zNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3AxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3U4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdThfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA1MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91MTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91MTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczMyX3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91OF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfdThfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91MzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3MzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfczY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDJfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QyX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA1MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCA1MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M191MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTgpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QzX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDMpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDE3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA1MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3VicV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnN1YnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnN1YnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2c3VicV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnN1YnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZzdWJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2c3VicV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2c3VicV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZzdWJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnN1Yl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnN1Yl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2c3ViX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2c3ViX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2c3ViX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnN1Yl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZzdWJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZzdWJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2c3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnN1Yl9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnN1YmhuX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZzdWJobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCBfX25vc3dhcF92c3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnN1YmhuX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZzdWJobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCBfX25vc3dhcF92c3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c3ViaG5fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnN1YmhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3ZzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnN1YmhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92c3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZzdWJobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZzdWJobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgX19ub3N3YXBfdnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YmxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3U4KF9fcDApIC0gdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3VibF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91OChfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c3VibF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfdTMyKF9fcDApIC0gdm1vdmxfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnN1YmxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91MzIoX19yZXYwKSAtIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF91MTYoX19wMCkgLSB2bW92bF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c3VibF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3UxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2c3VibF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfczgoX19wMCkgLSB2bW92bF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YmxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3M4KF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnN1YmxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3MzMihfX3AwKSAtIHZtb3ZsX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnN1YmxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfczMyKF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZzdWJsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9zMTYoX19wMCkgLSB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YndfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3Vid191OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3U4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnN1YndfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3Vid191MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJ3X3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfdTE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnN1YndfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJ3X3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtb3ZsX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2c3Vid19zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnN1YndfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZzdWJ3X3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YndfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJ3X3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRibDFfcDgocG9seTh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJsMV9wOChwb2x5OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJsMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsMV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJsMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJsMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJsMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJsMl9wOChwb2x5OHg4eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRibDJfcDgocG9seTh4OHgyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0YmwyX3U4KHVpbnQ4eDh4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDJfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnRibDJfdTgodWludDh4OHgyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ0YmwyX3M4KGludDh4OHgyX3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsMl92KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRibDJfczgoaW50OHg4eDJfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0YmwzX3A4KHBvbHk4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDNfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0YmwzX3A4KHBvbHk4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRibDNfdTgodWludDh4OHgzX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0YmwzX3U4KHVpbnQ4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRibDNfczgoaW50OHg4eDNfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwzX3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AwLnZhbFsyXSwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0YmwzX3M4KGludDh4OHgzX3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRibDRfcDgocG9seTh4OHg0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsNF92KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AwLnZhbFszXSwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJsNF9wOChwb2x5OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJsNF91OCh1aW50OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Ymw0X3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AwLnZhbFsyXSwgKGludDh4OF90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJsNF91OCh1aW50OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJsNF9zOChpbnQ4eDh4NF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMC52YWxbM10sIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJsNF9zOChpbnQ4eDh4NF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJ4MV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRieDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0YngxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4MV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0YngxX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0YngyX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJ4Ml91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OHgyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OHgyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4Ml92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJ4Ml9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDh4Ml90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJ4Ml9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDh4Ml90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDh4Ml90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRieDNfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJ4M19wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OHgzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OHgzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4M192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjIsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRieDNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnRieDNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDh4M190IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYyLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ0YngzX3M4KGludDh4OF90IF9fcDAsIGludDh4OHgzX3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4M192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMiwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHg4eDNfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MiwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJ4NF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OHg0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRieDRfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDh4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDh4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OHg0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0Yng0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4eDRfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Yng0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIChpbnQ4eDhfdClfX3JldjIsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4eDRfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMS52YWxbMl0sIChpbnQ4eDhfdClfX3AxLnZhbFszXSwgKGludDh4OF90KV9fcDIsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0Yng0X3M4KGludDh4OF90IF9fcDAsIGludDh4OHg0X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OHg0X3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFszXSwgX19wMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OHgyX3QgdnRybl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDh4Ml90IHZ0cm5fcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NHgyX3QgdnRybl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NHgyX3QgdnRybl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDUpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2eDJfdCB2dHJucV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNngyX3QgdnRybnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM2KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OHgyX3QgdnRybnFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4eDJfdCB2dHJucV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM3KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNngyX3QgdnRybnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZ4Ml90IHZ0cm5xX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDR4Ml90IHZ0cm5xX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NHgyX3QgdnRybnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDh4Ml90IHZ0cm5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OHgyX3QgdnRybnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNngyX3QgdnRybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNngyX3QgdnRybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0eDJfdCB2dHJucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0eDJfdCB2dHJucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDR4Ml90IHZ0cm5xX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0eDJfdCB2dHJucV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OHgyX3QgdnRybnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDh4Ml90IHZ0cm5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4eDJfdCB2dHJuX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDh4Ml90IHZ0cm5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJ4Ml90IHZ0cm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyeDJfdCB2dHJuX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0eDJfdCB2dHJuX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NHgyX3QgdnRybl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDh4Ml90IHZ0cm5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDh4Ml90IHZ0cm5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyeDJfdCB2dHJuX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4MngyX3QgdnRybl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4MngyX3QgdnRybl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyeDJfdCB2dHJuX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDR4Ml90IHZ0cm5fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NHgyX3QgdnRybl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRzdF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0c3RfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0c3RfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHN0X3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ0c3RxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2dHN0cV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0c3RxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ0c3RxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dHN0cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ0c3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnRzdHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2dHN0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ0c3RxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnRzdHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnRzdHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ0c3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0c3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0c3RfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dHN0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dHN0X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnRzdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0c3RfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHN0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dHN0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0c3RfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnRzdF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dHN0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dHN0X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZ0c3RfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4eDJfdCB2dXpwX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OHgyX3QgdnV6cF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDQpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0eDJfdCB2dXpwX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0eDJfdCB2dXpwX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZ4Ml90IHZ1enBxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2eDJfdCB2dXpwcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzYpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4eDJfdCB2dXpwcV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDh4Ml90IHZ1enBxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzcpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2eDJfdCB2dXpwcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNngyX3QgdnV6cHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NHgyX3QgdnV6cHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0eDJfdCB2dXpwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OHgyX3QgdnV6cHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4eDJfdCB2dXpwcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2eDJfdCB2dXpwcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2eDJfdCB2dXpwcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDR4Ml90IHZ1enBxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDR4Ml90IHZ1enBxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NHgyX3QgdnV6cHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDR4Ml90IHZ1enBxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4eDJfdCB2dXpwcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OHgyX3QgdnV6cHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDh4Ml90IHZ1enBfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OHgyX3QgdnV6cF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4MngyX3QgdnV6cF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJ4Ml90IHZ1enBfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDR4Ml90IHZ1enBfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0eDJfdCB2dXpwX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OHgyX3QgdnV6cF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OHgyX3QgdnV6cF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJ4Ml90IHZ1enBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyeDJfdCB2dXpwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyeDJfdCB2dXpwX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJ4Ml90IHZ1enBfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NHgyX3QgdnV6cF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0eDJfdCB2dXpwX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDh4Ml90IHZ6aXBfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4eDJfdCB2emlwX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDR4Ml90IHZ6aXBfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDR4Ml90IHZ6aXBfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNngyX3QgdnppcHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZ4Ml90IHZ6aXBxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDh4Ml90IHZ6aXBxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OHgyX3QgdnppcHFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZ4Ml90IHZ6aXBxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2eDJfdCB2emlwcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0eDJfdCB2emlwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDR4Ml90IHZ6aXBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4eDJfdCB2emlwcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDh4Ml90IHZ6aXBxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZ4Ml90IHZ6aXBxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZ4Ml90IHZ6aXBxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NHgyX3QgdnppcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NHgyX3QgdnppcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0eDJfdCB2emlwcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NHgyX3QgdnppcHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDh4Ml90IHZ6aXBxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4eDJfdCB2emlwcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OHgyX3QgdnppcF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4eDJfdCB2emlwX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyeDJfdCB2emlwX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4MngyX3QgdnppcF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NHgyX3QgdnppcF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDR4Ml90IHZ6aXBfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4eDJfdCB2emlwX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4eDJfdCB2emlwX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4MngyX3QgdnppcF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJ4Ml90IHZ6aXBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJ4Ml90IHZ6aXBfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4MngyX3QgdnppcF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0eDJfdCB2emlwX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDR4Ml90IHZ6aXBfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2YxNihfX3AwXzEyMiwgX19wMV8xMjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMTIyID0gX19wMF8xMjI7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8xMjI7IFwKICBfX3JldF8xMjIgPSBzcGxhdHFfbGFuZV9mMTYoX19zMF8xMjIsIF9fcDFfMTIyKTsgXAogIF9fcmV0XzEyMjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfZjE2KF9fcDBfMTIzLCBfX3AxXzEyMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjMgPSBfX3AwXzEyMzsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8xMjM7ICBfX3JldjBfMTIzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjMsIF9fczBfMTIzLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzEyMzsgXAogIF9fcmV0XzEyMyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YxNihfX3JldjBfMTIzLCBfX3AxXzEyMyk7IFwKICBfX3JldF8xMjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjMsIF9fcmV0XzEyMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfZjE2KF9fcDBfMTI0LCBfX3AxXzEyNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjQgPSBfX3AwXzEyNDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzEyNDsgXAogIF9fcmV0XzEyNCA9IHNwbGF0X2xhbmVfZjE2KF9fczBfMTI0LCBfX3AxXzEyNCk7IFwKICBfX3JldF8xMjQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfZjE2KF9fcDBfMTI1LCBfX3AxXzEyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjUgPSBfX3AwXzEyNTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8xMjU7ICBfX3JldjBfMTI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjUsIF9fczBfMTI1LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzEyNTsgXAogIF9fcmV0XzEyNSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfZjE2KF9fcmV2MF8xMjUsIF9fcDFfMTI1KTsgXAogIF9fcmV0XzEyNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEyNSwgX19yZXRfMTI1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzEyNTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtb3ZxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdnFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bW92X25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdl9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhxX2xhbmVfczMyKF9fcDBfMTI2LCBfX3AxXzEyNiwgX19wMl8xMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEyNiA9IF9fcDBfMTI2OyBcCiAgaW50MzJ4Ml90IF9fczFfMTI2ID0gX19wMV8xMjY7IFwKICBpbnQzMng0X3QgX19yZXRfMTI2OyBcCiAgX19yZXRfMTI2ID0gdnFkbXVsaHFfczMyKF9fczBfMTI2LCBzcGxhdHFfbGFuZV9zMzIoX19zMV8xMjYsIF9fcDJfMTI2KSk7IFwKICBfX3JldF8xMjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxocV9sYW5lX3MzMihfX3AwXzEyNywgX19wMV8xMjcsIF9fcDJfMTI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8xMjcgPSBfX3AwXzEyNzsgXAogIGludDMyeDJfdCBfX3MxXzEyNyA9IF9fcDFfMTI3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMjc7ICBfX3JldjBfMTI3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjcsIF9fczBfMTI3LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMTI3OyAgX19yZXYxXzEyNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTI3LCBfX3MxXzEyNywgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfMTI3OyBcCiAgX19yZXRfMTI3ID0gX19ub3N3YXBfdnFkbXVsaHFfczMyKF9fcmV2MF8xMjcsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3JldjFfMTI3LCBfX3AyXzEyNykpOyBcCiAgX19yZXRfMTI3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTI3LCBfX3JldF8xMjcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTI3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMTYoX19wMF8xMjgsIF9fcDFfMTI4LCBfX3AyXzEyOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMTI4ID0gX19wMF8xMjg7IFwKICBpbnQxNng0X3QgX19zMV8xMjggPSBfX3AxXzEyODsgXAogIGludDE2eDhfdCBfX3JldF8xMjg7IFwKICBfX3JldF8xMjggPSB2cWRtdWxocV9zMTYoX19zMF8xMjgsIHNwbGF0cV9sYW5lX3MxNihfX3MxXzEyOCwgX19wMl8xMjgpKTsgXAogIF9fcmV0XzEyODsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGhxX2xhbmVfczE2KF9fcDBfMTI5LCBfX3AxXzEyOSwgX19wMl8xMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEyOSA9IF9fcDBfMTI5OyBcCiAgaW50MTZ4NF90IF9fczFfMTI5ID0gX19wMV8xMjk7IFwKICBpbnQxNng4X3QgX19yZXYwXzEyOTsgIF9fcmV2MF8xMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEyOSwgX19zMF8xMjksIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMjk7ICBfX3JldjFfMTI5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMjksIF9fczFfMTI5LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8xMjk7IFwKICBfX3JldF8xMjkgPSBfX25vc3dhcF92cWRtdWxocV9zMTYoX19yZXYwXzEyOSwgX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcmV2MV8xMjksIF9fcDJfMTI5KSk7IFwKICBfX3JldF8xMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjksIF9fcmV0XzEyOSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczMyKF9fcDBfMTMwLCBfX3AxXzEzMCwgX19wMl8xMzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzEzMCA9IF9fcDBfMTMwOyBcCiAgaW50MzJ4Ml90IF9fczFfMTMwID0gX19wMV8xMzA7IFwKICBpbnQzMngyX3QgX19yZXRfMTMwOyBcCiAgX19yZXRfMTMwID0gdnFkbXVsaF9zMzIoX19zMF8xMzAsIHNwbGF0X2xhbmVfczMyKF9fczFfMTMwLCBfX3AyXzEzMCkpOyBcCiAgX19yZXRfMTMwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MzMihfX3AwXzEzMSwgX19wMV8xMzEsIF9fcDJfMTMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8xMzEgPSBfX3AwXzEzMTsgXAogIGludDMyeDJfdCBfX3MxXzEzMSA9IF9fcDFfMTMxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8xMzE7ICBfX3JldjBfMTMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMzEsIF9fczBfMTMxLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMTMxOyAgX19yZXYxXzEzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTMxLCBfX3MxXzEzMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMTMxOyBcCiAgX19yZXRfMTMxID0gX19ub3N3YXBfdnFkbXVsaF9zMzIoX19yZXYwXzEzMSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzEzMSwgX19wMl8xMzEpKTsgXAogIF9fcmV0XzEzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEzMSwgX19yZXRfMTMxLCAxLCAwKTsgXAogIF9fcmV0XzEzMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZV9zMTYoX19wMF8xMzIsIF9fcDFfMTMyLCBfX3AyXzEzMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTMyID0gX19wMF8xMzI7IFwKICBpbnQxNng0X3QgX19zMV8xMzIgPSBfX3AxXzEzMjsgXAogIGludDE2eDRfdCBfX3JldF8xMzI7IFwKICBfX3JldF8xMzIgPSB2cWRtdWxoX3MxNihfX3MwXzEzMiwgc3BsYXRfbGFuZV9zMTYoX19zMV8xMzIsIF9fcDJfMTMyKSk7IFwKICBfX3JldF8xMzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVfczE2KF9fcDBfMTMzLCBfX3AxXzEzMywgX19wMl8xMzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzEzMyA9IF9fcDBfMTMzOyBcCiAgaW50MTZ4NF90IF9fczFfMTMzID0gX19wMV8xMzM7IFwKICBpbnQxNng0X3QgX19yZXYwXzEzMzsgIF9fcmV2MF8xMzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzMywgX19zMF8xMzMsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMzM7ICBfX3JldjFfMTMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzMsIF9fczFfMTMzLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF8xMzM7IFwKICBfX3JldF8xMzMgPSBfX25vc3dhcF92cWRtdWxoX3MxNihfX3JldjBfMTMzLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTMzLCBfX3AyXzEzMykpOyBcCiAgX19yZXRfMTMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTMzLCBfX3JldF8xMzMsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTMzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczMyKF9fcDBfMTM0LCBfX3AxXzEzNCwgX19wMl8xMzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEzNCA9IF9fcDBfMTM0OyBcCiAgaW50MzJ4Ml90IF9fczFfMTM0ID0gX19wMV8xMzQ7IFwKICBpbnQzMng0X3QgX19yZXRfMTM0OyBcCiAgX19yZXRfMTM0ID0gdnFyZG11bGhxX3MzMihfX3MwXzEzNCwgc3BsYXRxX2xhbmVfczMyKF9fczFfMTM0LCBfX3AyXzEzNCkpOyBcCiAgX19yZXRfMTM0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczMyKF9fcDBfMTM1LCBfX3AxXzEzNSwgX19wMl8xMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEzNSA9IF9fcDBfMTM1OyBcCiAgaW50MzJ4Ml90IF9fczFfMTM1ID0gX19wMV8xMzU7IFwKICBpbnQzMng0X3QgX19yZXYwXzEzNTsgIF9fcmV2MF8xMzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzNSwgX19zMF8xMzUsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMzU7ICBfX3JldjFfMTM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzUsIF9fczFfMTM1LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8xMzU7IFwKICBfX3JldF8xMzUgPSBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MF8xMzUsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3JldjFfMTM1LCBfX3AyXzEzNSkpOyBcCiAgX19yZXRfMTM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM1LCBfX3JldF8xMzUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTM1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczE2KF9fcDBfMTM2LCBfX3AxXzEzNiwgX19wMl8xMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEzNiA9IF9fcDBfMTM2OyBcCiAgaW50MTZ4NF90IF9fczFfMTM2ID0gX19wMV8xMzY7IFwKICBpbnQxNng4X3QgX19yZXRfMTM2OyBcCiAgX19yZXRfMTM2ID0gdnFyZG11bGhxX3MxNihfX3MwXzEzNiwgc3BsYXRxX2xhbmVfczE2KF9fczFfMTM2LCBfX3AyXzEzNikpOyBcCiAgX19yZXRfMTM2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczE2KF9fcDBfMTM3LCBfX3AxXzEzNywgX19wMl8xMzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEzNyA9IF9fcDBfMTM3OyBcCiAgaW50MTZ4NF90IF9fczFfMTM3ID0gX19wMV8xMzc7IFwKICBpbnQxNng4X3QgX19yZXYwXzEzNzsgIF9fcmV2MF8xMzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzNywgX19zMF8xMzcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMzc7ICBfX3JldjFfMTM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzcsIF9fczFfMTM3LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8xMzc7IFwKICBfX3JldF8xMzcgPSBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MF8xMzcsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MxNihfX3JldjFfMTM3LCBfX3AyXzEzNykpOyBcCiAgX19yZXRfMTM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM3LCBfX3JldF8xMzcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTM3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMF8xMzgsIF9fcDFfMTM4LCBfX3AyXzEzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTM4ID0gX19wMF8xMzg7IFwKICBpbnQzMngyX3QgX19zMV8xMzggPSBfX3AxXzEzODsgXAogIGludDMyeDJfdCBfX3JldF8xMzg7IFwKICBfX3JldF8xMzggPSB2cXJkbXVsaF9zMzIoX19zMF8xMzgsIHNwbGF0X2xhbmVfczMyKF9fczFfMTM4LCBfX3AyXzEzOCkpOyBcCiAgX19yZXRfMTM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMF8xMzksIF9fcDFfMTM5LCBfX3AyXzEzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTM5ID0gX19wMF8xMzk7IFwKICBpbnQzMngyX3QgX19zMV8xMzkgPSBfX3AxXzEzOTsgXAogIGludDMyeDJfdCBfX3JldjBfMTM5OyAgX19yZXYwXzEzOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTM5LCBfX3MwXzEzOSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzEzOTsgIF9fcmV2MV8xMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEzOSwgX19zMV8xMzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzEzOTsgXAogIF9fcmV0XzEzOSA9IF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjBfMTM5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTM5LCBfX3AyXzEzOSkpOyBcCiAgX19yZXRfMTM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM5LCBfX3JldF8xMzksIDEsIDApOyBcCiAgX19yZXRfMTM5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMTYoX19wMF8xNDAsIF9fcDFfMTQwLCBfX3AyXzE0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTQwID0gX19wMF8xNDA7IFwKICBpbnQxNng0X3QgX19zMV8xNDAgPSBfX3AxXzE0MDsgXAogIGludDE2eDRfdCBfX3JldF8xNDA7IFwKICBfX3JldF8xNDAgPSB2cXJkbXVsaF9zMTYoX19zMF8xNDAsIHNwbGF0X2xhbmVfczE2KF9fczFfMTQwLCBfX3AyXzE0MCkpOyBcCiAgX19yZXRfMTQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMTYoX19wMF8xNDEsIF9fcDFfMTQxLCBfX3AyXzE0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTQxID0gX19wMF8xNDE7IFwKICBpbnQxNng0X3QgX19zMV8xNDEgPSBfX3AxXzE0MTsgXAogIGludDE2eDRfdCBfX3JldjBfMTQxOyAgX19yZXYwXzE0MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQxLCBfX3MwXzE0MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzE0MTsgIF9fcmV2MV8xNDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0MSwgX19zMV8xNDEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzE0MTsgXAogIF9fcmV0XzE0MSA9IF9fbm9zd2FwX3ZxcmRtdWxoX3MxNihfX3JldjBfMTQxLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTQxLCBfX3AyXzE0MSkpOyBcCiAgX19yZXRfMTQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTQxLCBfX3JldF8xNDEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTQxOyBcCn0pCiNlbmRpZgoKX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3M4KGludDh4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3MzMihpbnQzMng0X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczgoaW50OHgxNl90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3MzMihpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDgocG9seTh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczgoaW50OHg4X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTgodWludDh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDgocG9seTh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfczgoaW50OHg4X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91OCh1aW50OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgKF9fQVJNX0ZQICYgMikKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmN2dF9mMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfZjMyKChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjE2X2YzMigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Y3Z0X2YxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YxNl9mMzIoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9mMzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMzJfZjE2KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0X2YzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl9mMTYoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjdnRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2YxNigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2YxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9mMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2YxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9mMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2YxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2YxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCA4KTsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2Y3Z0YXFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0YXFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MzMl92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Y3Z0YV9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YV9zMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZjdnRhX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRhcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjdnRhcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MzJfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjdnRhX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRhX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMzJfdigoaW50OHgxNl90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMzJfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmN2dG1fczMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dG1fczMyX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Y3Z0bV9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV9zMzJfdigoaW50OHg4X3QpX19yZXYwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y3Z0bXFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTMyX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y3Z0bXFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTMyX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y3Z0bV91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UzMl92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y3Z0bV91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UzMl92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczMyX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczMyX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZjdnRuX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3MzMl92KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmN2dG5fczMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dG5fczMyX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmN2dG5xX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UzMl92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmN2dG5xX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmN2dG5fdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MzJfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmN2dG5fdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MzJfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MzMl92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Y3Z0cF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cF9zMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZjdnRwX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRwcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjdnRwcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MzJfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjdnRwX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRwX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQUVTKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNpbWNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2ltY3FfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNpbWNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWVzaW1jcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmFlc21jcV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNtY3FfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNtY3FfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNtY3FfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRElSRUNURURfUk9VTkRJTkcpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRxX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnJuZHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5kX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRhcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kYXFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZGFxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZGFfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZGFfdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJuZGlxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmRpcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5kaV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cm5kaV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kbXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZG1xX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnJuZG1xX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZybmRtX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmRtX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRucV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZG5xX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZG5fZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZG5fdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZG5fZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZG5fdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDMyX3QgdnJuZG5zX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRuc19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRwcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kcHFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZHBxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZHBfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZHBfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZHBfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZHBfdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJuZHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmR4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5keF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keF92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cm5keF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRElSRUNURURfUk9VTkRJTkcpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRxX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZF92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZGFxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnJuZGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZybmRhX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRhX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZybmRtcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbXFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cm5kbXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZG1xX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZG1fZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZG1fdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJuZG1fZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZG1fdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJuZG5xX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRucV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRucV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcmV2MCwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cm5kbl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbl92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cm5kbl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbl92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kcHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZHBxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnJuZHBxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZybmRwX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRwX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZybmR4cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cm5keHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZHhxX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZHhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZHhfdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJuZHhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZHhfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX05VTUVSSUNfTUFYTUlOKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWF4bm1xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtYXhubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1heG5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heG5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heG5tX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtaW5ubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1pbm5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX05VTUVSSUNfTUFYTUlOKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRlAxNl9WRUNUT1JfQVJJVEhNRVRJQykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3Qgdm1heG5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2bWF4bm1xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bWlubm1xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtaW5ubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2bWlubm1fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2bWlubm1fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEEyKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMWNxX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFjcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQzMl90IHZzaGExaF91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92c2hhMWhfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExbXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMW1xX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExbXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFtcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExcHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXBxX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExcHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFwcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExc3UwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFzdTBxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNoYTFzdTBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXN1MHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNoYTFzdTFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFzdTFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExc3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXN1MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2aHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGEyNTZocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGEyNTZocV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NmhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGEyNTZoMnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGEyNTZoMnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2aDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMjU2aDJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGEyNTZzdTBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNoYTI1NnN1MHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2c3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2c3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEEzKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZiY2F4cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2YmNheHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZiY2F4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmJjYXhxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmJjYXhxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YmNheHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YmNheHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZiY2F4cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmJjYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZiY2F4cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmJjYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YmNheHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YmNheHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZiY2F4cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZiY2F4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmJjYXhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZlb3IzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2ZW9yM3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZlb3IzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmVvcjNxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmVvcjNxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZW9yM3FfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2ZW9yM3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZlb3IzcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmVvcjNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZlb3IzcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmVvcjNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2ZW9yM3FfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2ZW9yM3FfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZlb3IzcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZlb3IzcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmVvcjNxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZyYXgxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYXgxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cmF4MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJheDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ4YXJxX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92eGFycV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZ4YXJxX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z4YXJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEE1MTIpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMmhxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hhNTEyaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyaHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyaDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hhNTEyaDJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMmgycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEsIHVpbnQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNoYTUxMmgycV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyc3UwcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTBxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZzaGE1MTJzdTBxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTBxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU00zKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzbTNwYXJ0dzFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zcGFydHcxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzbTNwYXJ0dzFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zcGFydHcxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c20zcGFydHcycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3BhcnR3MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c20zcGFydHcycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3BhcnR3MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNtM3NzMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTNzczFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNtM3NzMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTNzczFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c20zdHQxYXFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQxYXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbTN0dDFhcV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDFhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNtM3R0MWJxX3UzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3R0MWJxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c20zdHQxYnFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQxYnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbTN0dDJhcV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDJhcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNtM3R0MmFxX3UzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3R0MmFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgX19wMywgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c20zdHQyYnFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQyYnFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbTN0dDJicV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDJicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NNNCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c200ZXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c200ZXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNtNGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzbTRla2V5cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTRla2V5cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c200ZWtleXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtNGVrZXlxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2Y3Z0YXFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0YXFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZjdnRhX3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3M2NF92KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y3Z0YXFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YXFfdTY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y3Z0YXFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YXFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRhX3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTY0X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjdnRtcV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfczY0X3YoKGludDh4MTZfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZjdnRtcV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfczY0X3YoKGludDh4MTZfdClfX3JldjAsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmN2dG1fczY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dG1fczY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjdnRtcV91NjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV91NjRfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjdnRtcV91NjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV91NjRfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmN2dG1fdTY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV91NjRfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmN2dG5xX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRucV9zNjRfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmN2dG5xX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRucV9zNjRfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2Y3Z0bl9zNjRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl9zNjRfdigoaW50OHg4X3QpX19wMCwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmN2dG5xX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3U2NF92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmN2dG5xX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3U2NF92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y3Z0bl91NjRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3U2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2Y3Z0cHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0cHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZjdnRwX3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3M2NF92KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y3Z0cHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cHFfdTY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y3Z0cHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cHFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRwX3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTY0X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfczgoaW50OHg4X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczgoaW50OHg4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTEyOF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTEyOF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF91OCh1aW50OHgxNl90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfczgoaW50OHgxNl90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9zOChpbnQ4eDE2X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3M4KGludDh4OF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfdTgodWludDh4OF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3MzMihpbnQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91OCh1aW50OHg4X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3M4KGludDh4OF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfczgoaW50OHg4X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDgocG9seTh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfczgoaW50OHg4X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91OCh1aW50OHg4X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19hYXJjaDY0X18pICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9ESVJFQ1RFRF9ST1VORElORykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJuZHFfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cm5kcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnJuZF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZGFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kYXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRhX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZGlxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRpcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRpX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZG1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRtcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kbXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRtX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZG5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRucV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRucV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRuX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRuX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHBxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRwcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kcHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRwX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHhxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmR4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmR4X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4X3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZSSU5UKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kMzJ4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQzMnhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQzMnhxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDMyeF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ4X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQzMnhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDMyeF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kMzJ6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ6cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQzMnpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQzMnpxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDMyel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ6X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQzMnpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDMyel92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kNjR4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQ2NHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQ2NHhxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDY0eF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR4X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQ2NHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDY0eF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kNjR6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR6cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQ2NHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQ2NHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDY0el9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR6X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQ2NHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDY0el92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfTlVNRVJJQ19NQVhNSU4pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtYXhubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1heG5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm1heG5tcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1heG5tX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWlubm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtaW5ubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtaW5ubV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNikgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTgodWludDh4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczgoaW50OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2KSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91OCh1aW50OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0JGMTZfVkVDVE9SX0FSSVRITUVUSUMpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDExKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJmZG90X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmZkb3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJmZG90X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmJmZG90cV9sYW5lX2YzMihfX3AwXzE0MiwgX19wMV8xNDIsIF9fcDJfMTQyLCBfX3AzXzE0MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNDIgPSBfX3AwXzE0MjsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzE0MiA9IF9fcDFfMTQyOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfMTQyID0gX19wMl8xNDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNDI7IFwKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTQyID0gX19zMl8xNDI7IFwKZmxvYXQzMng0X3QgX19yZWludDFfMTQyID0gc3BsYXRxX2xhbmVfZjMyKCooZmxvYXQzMngyX3QgKikgJl9fcmVpbnRfMTQyLCBfX3AzXzE0Mik7IFwKICBfX3JldF8xNDIgPSB2YmZkb3RxX2YzMihfX3MwXzE0MiwgX19zMV8xNDIsICooYmZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8xNDIpOyBcCiAgX19yZXRfMTQyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90cV9sYW5lX2YzMihfX3AwXzE0MywgX19wMV8xNDMsIF9fcDJfMTQzLCBfX3AzXzE0MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNDMgPSBfX3AwXzE0MzsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzE0MyA9IF9fcDFfMTQzOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfMTQzID0gX19wMl8xNDM7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTQzOyAgX19yZXYwXzE0MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQzLCBfX3MwXzE0MywgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxXzE0MzsgIF9fcmV2MV8xNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0MywgX19zMV8xNDMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2Ml8xNDM7ICBfX3JldjJfMTQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xNDMsIF9fczJfMTQzLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE0MzsgXApiZmxvYXQxNng0X3QgX19yZWludF8xNDMgPSBfX3JldjJfMTQzOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnQxXzE0MyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMigqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50XzE0MywgX19wM18xNDMpOyBcCiAgX19yZXRfMTQzID0gX19ub3N3YXBfdmJmZG90cV9mMzIoX19yZXYwXzE0MywgX19yZXYxXzE0MywgKihiZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzE0Myk7IFwKICBfX3JldF8xNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNDMsIF9fcmV0XzE0MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNDM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2YmZkb3RfbGFuZV9mMzIoX19wMF8xNDQsIF9fcDFfMTQ0LCBfX3AyXzE0NCwgX19wM18xNDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ0ID0gX19wMF8xNDQ7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDQgPSBfX3AxXzE0NDsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE0NCA9IF9fcDJfMTQ0OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTQ0OyBcCmJmbG9hdDE2eDRfdCBfX3JlaW50XzE0NCA9IF9fczJfMTQ0OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0NCA9IHNwbGF0X2xhbmVfZjMyKCooZmxvYXQzMngyX3QgKikgJl9fcmVpbnRfMTQ0LCBfX3AzXzE0NCk7IFwKICBfX3JldF8xNDQgPSB2YmZkb3RfZjMyKF9fczBfMTQ0LCBfX3MxXzE0NCwgKihiZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzE0NCk7IFwKICBfX3JldF8xNDQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2YmZkb3RfbGFuZV9mMzIoX19wMF8xNDUsIF9fcDFfMTQ1LCBfX3AyXzE0NSwgX19wM18xNDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ1ID0gX19wMF8xNDU7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDUgPSBfX3AxXzE0NTsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE0NSA9IF9fcDJfMTQ1OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzE0NTsgIF9fcmV2MF8xNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE0NSwgX19zMF8xNDUsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MV8xNDU7ICBfX3JldjFfMTQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xNDUsIF9fczFfMTQ1LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjJfMTQ1OyAgX19yZXYyXzE0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTQ1LCBfX3MyXzE0NSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNDU7IFwKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTQ1ID0gX19yZXYyXzE0NTsgXApmbG9hdDMyeDJfdCBfX3JlaW50MV8xNDUgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMigqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50XzE0NSwgX19wM18xNDUpOyBcCiAgX19yZXRfMTQ1ID0gX19ub3N3YXBfdmJmZG90X2YzMihfX3JldjBfMTQ1LCBfX3JldjFfMTQ1LCAqKGJmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMTQ1KTsgXAogIF9fcmV0XzE0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0NSwgX19yZXRfMTQ1LCAxLCAwKTsgXAogIF9fcmV0XzE0NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZmRvdHFfbGFuZXFfZjMyKF9fcDBfMTQ2LCBfX3AxXzE0NiwgX19wMl8xNDYsIF9fcDNfMTQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE0NiA9IF9fcDBfMTQ2OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfMTQ2ID0gX19wMV8xNDY7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNDYgPSBfX3AyXzE0NjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE0NjsgXApiZmxvYXQxNng4X3QgX19yZWludF8xNDYgPSBfX3MyXzE0NjsgXApmbG9hdDMyeDRfdCBfX3JlaW50MV8xNDYgPSBzcGxhdHFfbGFuZXFfZjMyKCooZmxvYXQzMng0X3QgKikgJl9fcmVpbnRfMTQ2LCBfX3AzXzE0Nik7IFwKICBfX3JldF8xNDYgPSB2YmZkb3RxX2YzMihfX3MwXzE0NiwgX19zMV8xNDYsICooYmZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8xNDYpOyBcCiAgX19yZXRfMTQ2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90cV9sYW5lcV9mMzIoX19wMF8xNDcsIF9fcDFfMTQ3LCBfX3AyXzE0NywgX19wM18xNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTQ3ID0gX19wMF8xNDc7IFwKICBiZmxvYXQxNng4X3QgX19zMV8xNDcgPSBfX3AxXzE0NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE0NyA9IF9fcDJfMTQ3OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE0NzsgIF9fcmV2MF8xNDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE0NywgX19zMF8xNDcsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MV8xNDc7ICBfX3JldjFfMTQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xNDcsIF9fczFfMTQ3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjJfMTQ3OyAgX19yZXYyXzE0NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTQ3LCBfX3MyXzE0NywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNDc7IFwKYmZsb2F0MTZ4OF90IF9fcmVpbnRfMTQ3ID0gX19yZXYyXzE0NzsgXApmbG9hdDMyeDRfdCBfX3JlaW50MV8xNDcgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKCooZmxvYXQzMng0X3QgKikgJl9fcmVpbnRfMTQ3LCBfX3AzXzE0Nyk7IFwKICBfX3JldF8xNDcgPSBfX25vc3dhcF92YmZkb3RxX2YzMihfX3JldjBfMTQ3LCBfX3JldjFfMTQ3LCAqKGJmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMTQ3KTsgXAogIF9fcmV0XzE0NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0NywgX19yZXRfMTQ3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE0NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZmRvdF9sYW5lcV9mMzIoX19wMF8xNDgsIF9fcDFfMTQ4LCBfX3AyXzE0OCwgX19wM18xNDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ4ID0gX19wMF8xNDg7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDggPSBfX3AxXzE0ODsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE0OCA9IF9fcDJfMTQ4OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTQ4OyBcCmJmbG9hdDE2eDhfdCBfX3JlaW50XzE0OCA9IF9fczJfMTQ4OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0OCA9IHNwbGF0X2xhbmVxX2YzMigqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50XzE0OCwgX19wM18xNDgpOyBcCiAgX19yZXRfMTQ4ID0gdmJmZG90X2YzMihfX3MwXzE0OCwgX19zMV8xNDgsICooYmZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8xNDgpOyBcCiAgX19yZXRfMTQ4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90X2xhbmVxX2YzMihfX3AwXzE0OSwgX19wMV8xNDksIF9fcDJfMTQ5LCBfX3AzXzE0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNDkgPSBfX3AwXzE0OTsgXAogIGJmbG9hdDE2eDRfdCBfX3MxXzE0OSA9IF9fcDFfMTQ5OyBcCiAgYmZsb2F0MTZ4OF90IF9fczJfMTQ5ID0gX19wMl8xNDk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTQ5OyAgX19yZXYwXzE0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQ5LCBfX3MwXzE0OSwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxXzE0OTsgIF9fcmV2MV8xNDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0OSwgX19zMV8xNDksIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2Ml8xNDk7ICBfX3JldjJfMTQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xNDksIF9fczJfMTQ5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE0OTsgXApiZmxvYXQxNng4X3QgX19yZWludF8xNDkgPSBfX3JldjJfMTQ5OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0OSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMigqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50XzE0OSwgX19wM18xNDkpOyBcCiAgX19yZXRfMTQ5ID0gX19ub3N3YXBfdmJmZG90X2YzMihfX3JldjBfMTQ5LCBfX3JldjFfMTQ5LCAqKGJmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMTQ5KTsgXAogIF9fcmV0XzE0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0OSwgX19yZXRfMTQ5LCAxLCAwKTsgXAogIF9fcmV0XzE0OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1sYWxicV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWxicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YmZtbGFsYnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWxicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmbWxhbGJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbWxhbGJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1sYWx0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWx0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YmZtbGFsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWx0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmbWxhbHRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbWxhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1tbGFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbW1sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmJmbW1sYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1tbGFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmNvbWJpbmVfYmYxNihiZmxvYXQxNng0X3QgX19wMCwgYmZsb2F0MTZ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmNvbWJpbmVfYmYxNihiZmxvYXQxNng0X3QgX19wMCwgYmZsb2F0MTZ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDAsIGJmbG9hdDE2eDRfdCBfX3AxKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Y3JlYXRlX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDBfMTUwKSB7CiAgZmxvYXQzMng0X3QgX19yZXRfMTUwOwpiZmxvYXQxNng0X3QgX19yZWludF8xNTAgPSBfX3AwXzE1MDsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MCA9IHZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MCwgMTYpOwogIF9fcmV0XzE1MCA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MDsKICByZXR1cm4gX19yZXRfMTUwOwp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9mMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMF8xNTEpIHsKICBiZmxvYXQxNng0X3QgX19yZXYwXzE1MTsgIF9fcmV2MF8xNTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwXzE1MSwgX19wMF8xNTEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0XzE1MTsKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTUxID0gX19yZXYwXzE1MTsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MSA9IF9fbm9zd2FwX3ZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MSwgMTYpOwogIF9fcmV0XzE1MSA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MTsKICBfX3JldF8xNTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTEsIF9fcmV0XzE1MSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzE1MTsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjdnRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDBfMTUyKSB7CiAgZmxvYXQzMng0X3QgX19yZXRfMTUyOwpiZmxvYXQxNng0X3QgX19yZWludF8xNTIgPSBfX3AwXzE1MjsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MiA9IF9fbm9zd2FwX3ZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MiwgMTYpOwogIF9fcmV0XzE1MiA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MjsKICByZXR1cm4gX19yZXRfMTUyOwp9CiNlbmRpZgoKX19haSBmbG9hdDMyX3QgdmN2dGFoX2YzMl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKYmZsb2F0MTZfdCBfX3JlaW50ID0gX19wMDsKaW50MzJfdCBfX3JlaW50MSA9ICooaW50MzJfdCAqKSAmX19yZWludCA8PCAxNjsKICBfX3JldCA9ICooZmxvYXQzMl90ICopICZfX3JlaW50MTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNl90IHZjdnRoX2JmMTZfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgYmZsb2F0MTZfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9iZjE2X2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGhfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2JmMTYoX19wMF8xNTMsIF9fcDFfMTUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTMgPSBfX3AwXzE1MzsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTM7IFwKICBfX3JldF8xNTMgPSBzcGxhdHFfbGFuZV9iZjE2KF9fczBfMTUzLCBfX3AxXzE1Myk7IFwKICBfX3JldF8xNTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2JmMTYoX19wMF8xNTQsIF9fcDFfMTU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTQgPSBfX3AwXzE1NDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTU0OyAgX19yZXYwXzE1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTU0LCBfX3MwXzE1NCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXRfMTU0OyBcCiAgX19yZXRfMTU0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfYmYxNihfX3JldjBfMTU0LCBfX3AxXzE1NCk7IFwKICBfX3JldF8xNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTQsIF9fcmV0XzE1NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfYmYxNihfX3AwXzE1NSwgX19wMV8xNTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwXzE1NSA9IF9fcDBfMTU1OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE1NTsgXAogIF9fcmV0XzE1NSA9IHNwbGF0X2xhbmVfYmYxNihfX3MwXzE1NSwgX19wMV8xNTUpOyBcCiAgX19yZXRfMTU1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX2JmMTYoX19wMF8xNTYsIF9fcDFfMTU2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTYgPSBfX3AwXzE1NjsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTU2OyAgX19yZXYwXzE1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTU2LCBfX3MwXzE1NiwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTU2OyBcCiAgX19yZXRfMTU2ID0gX19ub3N3YXBfc3BsYXRfbGFuZV9iZjE2KF9fcmV2MF8xNTYsIF9fcDFfMTU2KTsgXAogIF9fcmV0XzE1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE1NiwgX19yZXRfMTU2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2JmMTYoKGJmbG9hdDE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfYmYxNigoYmZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX2JmMTYoX19wMF8xNTcsIF9fcDFfMTU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNTcgPSBfX3AwXzE1NzsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTc7IFwKICBfX3JldF8xNTcgPSBzcGxhdHFfbGFuZXFfYmYxNihfX3MwXzE1NywgX19wMV8xNTcpOyBcCiAgX19yZXRfMTU3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfYmYxNihfX3AwXzE1OCwgX19wMV8xNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwXzE1OCA9IF9fcDBfMTU4OyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MF8xNTg7ICBfX3JldjBfMTU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNTgsIF9fczBfMTU4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTg7IFwKICBfX3JldF8xNTggPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfYmYxNihfX3JldjBfMTU4LCBfX3AxXzE1OCk7IFwKICBfX3JldF8xNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTgsIF9fcmV0XzE1OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2JmMTYoX19wMF8xNTksIF9fcDFfMTU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNTkgPSBfX3AwXzE1OTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldF8xNTk7IFwKICBfX3JldF8xNTkgPSBzcGxhdF9sYW5lcV9iZjE2KF9fczBfMTU5LCBfX3AxXzE1OSk7IFwKICBfX3JldF8xNTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX2JmMTYoX19wMF8xNjAsIF9fcDFfMTYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNjAgPSBfX3AwXzE2MDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTYwOyAgX19yZXYwXzE2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTYwLCBfX3MwXzE2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTYwOyBcCiAgX19yZXRfMTYwID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfYmYxNihfX3JldjBfMTYwLCBfX3AxXzE2MCk7IFwKICBfX3JldF8xNjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjAsIF9fcmV0XzE2MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmR1cHFfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmR1cHFfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZkdXBfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmR1cF9uX2JmMTYoYmZsb2F0MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng0X3QgdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgX19ub3N3YXBfdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfYmYxNigoYmZsb2F0MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfYmYxNigoYmZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9iZjE2KChiZmxvYXQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfYmYxNigoYmZsb2F0MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZnZXRfbG93X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmdldF9sb3dfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCBfX25vc3dhcF92Z2V0X2xvd19iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfYmYxNihfX3MwLCAoYmZsb2F0MTZ4OF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDRfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfYmYxNihfX3MwLCAoYmZsb2F0MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxMSk7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IF9fYTMyX3ZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX19fYTMyX3ZjdnRfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgMTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDRfdCBfX2EzMl92Y3Z0X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9fX2EzMl92Y3Z0X2JmMTZfdigoaW50OHgxNl90KV9fcmV2MCwgMTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgX19ub3N3YXBfX19hMzJfdmN2dF9iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fX19hMzJfdmN2dF9iZjE2X3YoKGludDh4MTZfdClfX3AwLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYTMyX3ZjdnRfYmYxNl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX19fYTMyX3ZjdnRfYmYxNl9mMzIoX19yZXYwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4OF90IHZjdnRxX2hpZ2hfYmYxNl9mMzIoYmZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9iZjE2KF9fYTMyX3ZjdnRfYmYxNl9mMzIoX19wMSksIHZnZXRfbG93X2JmMTYoX19wMCkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDhfdCB2Y3Z0cV9oaWdoX2JmMTZfZjMyKGJmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX2JmMTYoX19ub3N3YXBfX19hMzJfdmN2dF9iZjE2X2YzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2xvd19iZjE2KF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9iZjE2KChiZmxvYXQxNng0X3QpKDBVTEwpLCBfX2EzMl92Y3Z0X2JmMTZfZjMyKF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9iZjE2KChiZmxvYXQxNng0X3QpKDBVTEwpLCBfX25vc3dhcF9fX2EzMl92Y3Z0X2JmMTZfZjMyKF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgX19hNjRfdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9fX2E2NF92Y3Z0cV9sb3dfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgNDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDhfdCBfX2E2NF92Y3Z0cV9sb3dfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX19fYTY0X3ZjdnRxX2xvd19iZjE2X3YoKGludDh4MTZfdClfX3JldjAsIDQzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IF9fbm9zd2FwX19fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fX19hNjRfdmN2dHFfbG93X2JmMTZfdigoaW50OHgxNl90KV9fcDAsIDQzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9iZjE2KF9fcDBfMTYxLCBfX3AxXzE2MSwgX19wMl8xNjEsIF9fcDNfMTYxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNjEgPSBfX3AwXzE2MTsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE2MSA9IF9fcDJfMTYxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2MTsgXAogIF9fcmV0XzE2MSA9IHZzZXRxX2xhbmVfYmYxNih2Z2V0X2xhbmVfYmYxNihfX3MyXzE2MSwgX19wM18xNjEpLCBfX3MwXzE2MSwgX19wMV8xNjEpOyBcCiAgX19yZXRfMTYxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfYmYxNihfX3AwXzE2MiwgX19wMV8xNjIsIF9fcDJfMTYyLCBfX3AzXzE2MikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTYyID0gX19wMF8xNjI7IFwKICBiZmxvYXQxNng0X3QgX19zMl8xNjIgPSBfX3AyXzE2MjsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTYyOyAgX19yZXYwXzE2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTYyLCBfX3MwXzE2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYyXzE2MjsgIF9fcmV2Ml8xNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2MiwgX19zMl8xNjIsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2MjsgXAogIF9fcmV0XzE2MiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfMTYyLCBfX3AzXzE2MiksIF9fcmV2MF8xNjIsIF9fcDFfMTYyKTsgXAogIF9fcmV0XzE2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE2MiwgX19yZXRfMTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfYmYxNihfX3AwXzE2MywgX19wMV8xNjMsIF9fcDJfMTYzLCBfX3AzXzE2MykgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczBfMTYzID0gX19wMF8xNjM7IFwKICBiZmxvYXQxNng0X3QgX19zMl8xNjMgPSBfX3AyXzE2MzsgXAogIGJmbG9hdDE2eDRfdCBfX3JldF8xNjM7IFwKICBfX3JldF8xNjMgPSB2c2V0X2xhbmVfYmYxNih2Z2V0X2xhbmVfYmYxNihfX3MyXzE2MywgX19wM18xNjMpLCBfX3MwXzE2MywgX19wMV8xNjMpOyBcCiAgX19yZXRfMTYzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9iZjE2KF9fcDBfMTY0LCBfX3AxXzE2NCwgX19wMl8xNjQsIF9fcDNfMTY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNjQgPSBfX3AwXzE2NDsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE2NCA9IF9fcDJfMTY0OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MF8xNjQ7ICBfX3JldjBfMTY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNjQsIF9fczBfMTY0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjJfMTY0OyAgX19yZXYyXzE2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTY0LCBfX3MyXzE2NCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTY0OyBcCiAgX19yZXRfMTY0ID0gX19ub3N3YXBfdnNldF9sYW5lX2JmMTYoX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzE2NCwgX19wM18xNjQpLCBfX3JldjBfMTY0LCBfX3AxXzE2NCk7IFwKICBfX3JldF8xNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjQsIF9fcmV0XzE2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfYmYxNihfX3AwXzE2NSwgX19wMV8xNjUsIF9fcDJfMTY1LCBfX3AzXzE2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTY1ID0gX19wMF8xNjU7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjUgPSBfX3AyXzE2NTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNjU7IFwKICBfX3JldF8xNjUgPSB2c2V0cV9sYW5lX2JmMTYodmdldHFfbGFuZV9iZjE2KF9fczJfMTY1LCBfX3AzXzE2NSksIF9fczBfMTY1LCBfX3AxXzE2NSk7IFwKICBfX3JldF8xNjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfYmYxNihfX3AwXzE2NiwgX19wMV8xNjYsIF9fcDJfMTY2LCBfX3AzXzE2NikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTY2ID0gX19wMF8xNjY7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjYgPSBfX3AyXzE2NjsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTY2OyAgX19yZXYwXzE2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTY2LCBfX3MwXzE2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzE2NjsgIF9fcmV2Ml8xNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2NiwgX19zMl8xNjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2NjsgXAogIF9fcmV0XzE2NiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzE2NiwgX19wM18xNjYpLCBfX3JldjBfMTY2LCBfX3AxXzE2Nik7IFwKICBfX3JldF8xNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjYsIF9fcmV0XzE2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9iZjE2KF9fcDBfMTY3LCBfX3AxXzE2NywgX19wMl8xNjcsIF9fcDNfMTY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNjcgPSBfX3AwXzE2NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE2NyA9IF9fcDJfMTY3OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE2NzsgXAogIF9fcmV0XzE2NyA9IHZzZXRfbGFuZV9iZjE2KHZnZXRxX2xhbmVfYmYxNihfX3MyXzE2NywgX19wM18xNjcpLCBfX3MwXzE2NywgX19wMV8xNjcpOyBcCiAgX19yZXRfMTY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfYmYxNihfX3AwXzE2OCwgX19wMV8xNjgsIF9fcDJfMTY4LCBfX3AzXzE2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczBfMTY4ID0gX19wMF8xNjg7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjggPSBfX3AyXzE2ODsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTY4OyAgX19yZXYwXzE2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTY4LCBfX3MwXzE2OCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzE2ODsgIF9fcmV2Ml8xNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2OCwgX19zMl8xNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE2ODsgXAogIF9fcmV0XzE2OCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9iZjE2KF9fbm9zd2FwX3ZnZXRxX2xhbmVfYmYxNihfX3JldjJfMTY4LCBfX3AzXzE2OCksIF9fcmV2MF8xNjgsIF9fcDFfMTY4KTsgXAogIF9fcmV0XzE2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE2OCwgX19yZXRfMTY4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE2ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGJmbG9hdDE2eDRfdCB2Y3Z0X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Z2V0X2xvd19iZjE2KF9fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihfX3AwKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZnZXRfbG93X2JmMTYoX19ub3N3YXBfX19hNjRfdmN2dHFfbG93X2JmMTZfZjMyKF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmN2dHFfaGlnaF9iZjE2X2YzMihiZmxvYXQxNng4X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2hpZ2hfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Myk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4OF90IHZjdnRxX2hpZ2hfYmYxNl9mMzIoYmZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfaGlnaF9iZjE2X3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Myk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGJmbG9hdDE2eDhfdCB2Y3Z0cV9sb3dfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF9fX2E2NF92Y3Z0cV9sb3dfYmYxNl9mMzIoX19yZXYwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQ09NUExFWCkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90MjcwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90MjcwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDI3MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y2FkZF9yb3Q5MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZF9yb3Q5MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90OTBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90OTBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZHFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y21sYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjbWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNtbGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNtbGFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y21sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCBfX25vc3dhcF92Y21sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX2xhbmVfZjMyKF9fcDBfMTY5LCBfX3AxXzE2OSwgX19wMl8xNjksIF9fcDNfMTY5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE2OSA9IF9fcDBfMTY5OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNjkgPSBfX3AxXzE2OTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTY5ID0gX19wMl8xNjk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNjk7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNjkgPSBfX3MyXzE2OTsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE2OSA9ICh1aW50NjR4MV90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTY5LCBfX3AzXzE2OSl9OyBcCiAgX19yZXRfMTY5ID0gdmNtbGFfZjMyKF9fczBfMTY5LCBfX3MxXzE2OSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTY5KTsgXAogIF9fcmV0XzE2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVfZjMyKF9fcDBfMTcwLCBfX3AxXzE3MCwgX19wMl8xNzAsIF9fcDNfMTcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3MCA9IF9fcDBfMTcwOyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzAgPSBfX3AxXzE3MDsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTcwID0gX19wMl8xNzA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTcwOyAgX19yZXYwXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTcwLCBfX3MwXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTcwOyAgX19yZXYxXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTcwLCBfX3MxXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTcwOyAgX19yZXYyXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTcwLCBfX3MyXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzA7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzAgPSBfX3JldjJfMTcwOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTcwID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzAsIF9fcDNfMTcwKX07IFwKICBfX3JldF8xNzAgPSBfX25vc3dhcF92Y21sYV9mMzIoX19yZXYwXzE3MCwgX19yZXYxXzE3MCwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTcwKTsgXAogIF9fcmV0XzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE3MCwgX19yZXRfMTcwLCAxLCAwKTsgXAogIF9fcmV0XzE3MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9sYW5lX2YzMihfX3AwXzE3MSwgX19wMV8xNzEsIF9fcDJfMTcxLCBfX3AzXzE3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNzEgPSBfX3AwXzE3MTsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTcxID0gX19wMV8xNzE7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3MSA9IF9fcDJfMTcxOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTcxOyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTcxID0gX19zMl8xNzE7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xNzEgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3MSwgX19wM18xNzEpLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzEsIF9fcDNfMTcxKX07IFwKICBfX3JldF8xNzEgPSB2Y21sYXFfZjMyKF9fczBfMTcxLCBfX3MxXzE3MSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTcxKTsgXAogIF9fcmV0XzE3MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9sYW5lX2YzMihfX3AwXzE3MiwgX19wMV8xNzIsIF9fcDJfMTcyLCBfX3AzXzE3MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNzIgPSBfX3AwXzE3MjsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTcyID0gX19wMV8xNzI7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3MiA9IF9fcDJfMTcyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE3MjsgIF9fcmV2MF8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE3MiwgX19zMF8xNzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzE3MjsgIF9fcmV2MV8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE3MiwgX19zMV8xNzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzE3MjsgIF9fcmV2Ml8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE3MiwgX19zMl8xNzIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTcyOyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTcyID0gX19yZXYyXzE3MjsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3MiA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTcyLCBfX3AzXzE3MiksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3MiwgX19wM18xNzIpfTsgXAogIF9fcmV0XzE3MiA9IF9fbm9zd2FwX3ZjbWxhcV9mMzIoX19yZXYwXzE3MiwgX19yZXYxXzE3MiwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTcyKTsgXAogIF9fcmV0XzE3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE3MiwgX19yZXRfMTcyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE3MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX2xhbmVxX2YzMihfX3AwXzE3MywgX19wMV8xNzMsIF9fcDJfMTczLCBfX3AzXzE3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNzMgPSBfX3AwXzE3MzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTczID0gX19wMV8xNzM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE3MyA9IF9fcDJfMTczOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTczOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTczID0gX19zMl8xNzM7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xNzMgPSAodWludDY0eDFfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xNzMsIF9fcDNfMTczKX07IFwKICBfX3JldF8xNzMgPSB2Y21sYV9mMzIoX19zMF8xNzMsIF9fczFfMTczLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xNzMpOyBcCiAgX19yZXRfMTczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjMyKF9fcDBfMTc0LCBfX3AxXzE3NCwgX19wMl8xNzQsIF9fcDNfMTc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3NCA9IF9fcDBfMTc0OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzQgPSBfX3AxXzE3NDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc0ID0gX19wMl8xNzQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTc0OyAgX19yZXYwXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc0LCBfX3MwXzE3NCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTc0OyAgX19yZXYxXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc0LCBfX3MxXzE3NCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTc0OyAgX19yZXYyXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc0LCBfX3MyXzE3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzQ7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzQgPSBfX3JldjJfMTc0OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTc0ID0gKHVpbnQ2NHgxX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc0LCBfX3AzXzE3NCl9OyBcCiAgX19yZXRfMTc0ID0gX19ub3N3YXBfdmNtbGFfZjMyKF9fcmV2MF8xNzQsIF9fcmV2MV8xNzQsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE3NCk7IFwKICBfX3JldF8xNzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzQsIF9fcmV0XzE3NCwgMSwgMCk7IFwKICBfX3JldF8xNzQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZXFfZjMyKF9fcDBfMTc1LCBfX3AxXzE3NSwgX19wMl8xNzUsIF9fcDNfMTc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3NSA9IF9fcDBfMTc1OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzUgPSBfX3AxXzE3NTsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc1ID0gX19wMl8xNzU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzU7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzUgPSBfX3MyXzE3NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3NSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE3NSwgX19wM18xNzUpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc1LCBfX3AzXzE3NSl9OyBcCiAgX19yZXRfMTc1ID0gdmNtbGFxX2YzMihfX3MwXzE3NSwgX19zMV8xNzUsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE3NSk7IFwKICBfX3JldF8xNzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfbGFuZXFfZjMyKF9fcDBfMTc2LCBfX3AxXzE3NiwgX19wMl8xNzYsIF9fcDNfMTc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3NiA9IF9fcDBfMTc2OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzYgPSBfX3AxXzE3NjsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc2ID0gX19wMl8xNzY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTc2OyAgX19yZXYwXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc2LCBfX3MwXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTc2OyAgX19yZXYxXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc2LCBfX3MxXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTc2OyAgX19yZXYyXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc2LCBfX3MyXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzY7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzYgPSBfX3JldjJfMTc2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTc2ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc2LCBfX3AzXzE3NiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xNzYsIF9fcDNfMTc2KX07IFwKICBfX3JldF8xNzYgPSBfX25vc3dhcF92Y21sYXFfZjMyKF9fcmV2MF8xNzYsIF9fcmV2MV8xNzYsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE3Nik7IFwKICBfX3JldF8xNzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzYsIF9fcmV0XzE3NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDE4MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNtbGFfcm90MTgwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDE4MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QxODBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmNtbGFfcm90MTgwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDE4MF9sYW5lX2YzMihfX3AwXzE3NywgX19wMV8xNzcsIF9fcDJfMTc3LCBfX3AzXzE3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNzcgPSBfX3AwXzE3NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTc3ID0gX19wMV8xNzc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3NyA9IF9fcDJfMTc3OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTc3OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTc3ID0gX19zMl8xNzc7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xNzcgPSAodWludDY0eDFfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3NywgX19wM18xNzcpfTsgXAogIF9fcmV0XzE3NyA9IHZjbWxhX3JvdDE4MF9mMzIoX19zMF8xNzcsIF9fczFfMTc3LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xNzcpOyBcCiAgX19yZXRfMTc3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjMyKF9fcDBfMTc4LCBfX3AxXzE3OCwgX19wMl8xNzgsIF9fcDNfMTc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3OCA9IF9fcDBfMTc4OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzggPSBfX3AxXzE3ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTc4ID0gX19wMl8xNzg7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTc4OyAgX19yZXYwXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc4LCBfX3MwXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTc4OyAgX19yZXYxXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc4LCBfX3MxXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTc4OyAgX19yZXYyXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc4LCBfX3MyXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzg7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzggPSBfX3JldjJfMTc4OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTc4ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzgsIF9fcDNfMTc4KX07IFwKICBfX3JldF8xNzggPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjMyKF9fcmV2MF8xNzgsIF9fcmV2MV8xNzgsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE3OCk7IFwKICBfX3JldF8xNzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzgsIF9fcmV0XzE3OCwgMSwgMCk7IFwKICBfX3JldF8xNzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVfZjMyKF9fcDBfMTc5LCBfX3AxXzE3OSwgX19wMl8xNzksIF9fcDNfMTc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3OSA9IF9fcDBfMTc5OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzkgPSBfX3AxXzE3OTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTc5ID0gX19wMl8xNzk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzk7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzkgPSBfX3MyXzE3OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3OSA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTc5LCBfX3AzXzE3OSksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3OSwgX19wM18xNzkpfTsgXAogIF9fcmV0XzE3OSA9IHZjbWxhcV9yb3QxODBfZjMyKF9fczBfMTc5LCBfX3MxXzE3OSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTc5KTsgXAogIF9fcmV0XzE3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZV9mMzIoX19wMF8xODAsIF9fcDFfMTgwLCBfX3AyXzE4MCwgX19wM18xODApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTgwID0gX19wMF8xODA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE4MCA9IF9fcDFfMTgwOyBcCiAgZmxvYXQzMngyX3QgX19zMl8xODAgPSBfX3AyXzE4MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF8xODA7ICBfX3JldjBfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xODAsIF9fczBfMTgwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV8xODA7ICBfX3JldjFfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xODAsIF9fczFfMTgwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml8xODA7ICBfX3JldjJfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xODAsIF9fczJfMTgwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE4MDsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE4MCA9IF9fcmV2Ml8xODA7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODAgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE4MCwgX19wM18xODApLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODAsIF9fcDNfMTgwKX07IFwKICBfX3JldF8xODAgPSBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihfX3JldjBfMTgwLCBfX3JldjFfMTgwLCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xODApOyBcCiAgX19yZXRfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTgwLCBfX3JldF8xODAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVxX2YzMihfX3AwXzE4MSwgX19wMV8xODEsIF9fcDJfMTgxLCBfX3AzXzE4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xODEgPSBfX3AwXzE4MTsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTgxID0gX19wMV8xODE7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE4MSA9IF9fcDJfMTgxOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTgxOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTgxID0gX19zMl8xODE7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xODEgPSAodWludDY0eDFfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODEsIF9fcDNfMTgxKX07IFwKICBfX3JldF8xODEgPSB2Y21sYV9yb3QxODBfZjMyKF9fczBfMTgxLCBfX3MxXzE4MSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTgxKTsgXAogIF9fcmV0XzE4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDE4MF9sYW5lcV9mMzIoX19wMF8xODIsIF9fcDFfMTgyLCBfX3AyXzE4MiwgX19wM18xODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTgyID0gX19wMF8xODI7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4MiA9IF9fcDFfMTgyOyBcCiAgZmxvYXQzMng0X3QgX19zMl8xODIgPSBfX3AyXzE4MjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xODI7ICBfX3JldjBfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xODIsIF9fczBfMTgyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xODI7ICBfX3JldjFfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xODIsIF9fczFfMTgyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8xODI7ICBfX3JldjJfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xODIsIF9fczJfMTgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4MjsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE4MiA9IF9fcmV2Ml8xODI7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xODIgPSAodWludDY0eDFfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODIsIF9fcDNfMTgyKX07IFwKICBfX3JldF8xODIgPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjMyKF9fcmV2MF8xODIsIF9fcmV2MV8xODIsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE4Mik7IFwKICBfX3JldF8xODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xODIsIF9fcmV0XzE4MiwgMSwgMCk7IFwKICBfX3JldF8xODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YzMihfX3AwXzE4MywgX19wMV8xODMsIF9fcDJfMTgzLCBfX3AzXzE4MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xODMgPSBfX3AwXzE4MzsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTgzID0gX19wMV8xODM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE4MyA9IF9fcDJfMTgzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTgzOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTgzID0gX19zMl8xODM7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODMgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODMsIF9fcDNfMTgzKSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE4MywgX19wM18xODMpfTsgXAogIF9fcmV0XzE4MyA9IHZjbWxhcV9yb3QxODBfZjMyKF9fczBfMTgzLCBfX3MxXzE4MywgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTgzKTsgXAogIF9fcmV0XzE4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZXFfZjMyKF9fcDBfMTg0LCBfX3AxXzE4NCwgX19wMl8xODQsIF9fcDNfMTg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE4NCA9IF9fcDBfMTg0OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xODQgPSBfX3AxXzE4NDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTg0ID0gX19wMl8xODQ7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTg0OyAgX19yZXYwXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTg0LCBfX3MwXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTg0OyAgX19yZXYxXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTg0LCBfX3MxXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTg0OyAgX19yZXYyXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTg0LCBfX3MyXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODQ7IFwKZmxvYXQzMng0X3QgX19yZWludF8xODQgPSBfX3JldjJfMTg0OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTg0ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTg0LCBfX3AzXzE4NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODQsIF9fcDNfMTg0KX07IFwKICBfX3JldF8xODQgPSBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihfX3JldjBfMTg0LCBfX3JldjFfMTg0LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xODQpOyBcCiAgX19yZXRfMTg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTg0LCBfX3JldF8xODQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzBfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDI3MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDI3MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y21sYV9yb3QyNzBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MjcwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjbWxhX3JvdDI3MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QyNzBfbGFuZV9mMzIoX19wMF8xODUsIF9fcDFfMTg1LCBfX3AyXzE4NSwgX19wM18xODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTg1ID0gX19wMF8xODU7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4NSA9IF9fcDFfMTg1OyBcCiAgZmxvYXQzMngyX3QgX19zMl8xODUgPSBfX3AyXzE4NTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4NTsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE4NSA9IF9fczJfMTg1OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTg1ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODUsIF9fcDNfMTg1KX07IFwKICBfX3JldF8xODUgPSB2Y21sYV9yb3QyNzBfZjMyKF9fczBfMTg1LCBfX3MxXzE4NSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTg1KTsgXAogIF9fcmV0XzE4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YzMihfX3AwXzE4NiwgX19wMV8xODYsIF9fcDJfMTg2LCBfX3AzXzE4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xODYgPSBfX3AwXzE4NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTg2ID0gX19wMV8xODY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE4NiA9IF9fcDJfMTg2OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzE4NjsgIF9fcmV2MF8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE4NiwgX19zMF8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzE4NjsgIF9fcmV2MV8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE4NiwgX19zMV8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzE4NjsgIF9fcmV2Ml8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE4NiwgX19zMl8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTg2OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTg2ID0gX19yZXYyXzE4NjsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE4NiA9ICh1aW50NjR4MV90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTg2LCBfX3AzXzE4Nil9OyBcCiAgX19yZXRfMTg2ID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YzMihfX3JldjBfMTg2LCBfX3JldjFfMTg2LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xODYpOyBcCiAgX19yZXRfMTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTg2LCBfX3JldF8xODYsIDEsIDApOyBcCiAgX19yZXRfMTg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lX2YzMihfX3AwXzE4NywgX19wMV8xODcsIF9fcDJfMTg3LCBfX3AzXzE4NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xODcgPSBfX3AwXzE4NzsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTg3ID0gX19wMV8xODc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE4NyA9IF9fcDJfMTg3OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTg3OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTg3ID0gX19zMl8xODc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODcgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE4NywgX19wM18xODcpLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODcsIF9fcDNfMTg3KX07IFwKICBfX3JldF8xODcgPSB2Y21sYXFfcm90MjcwX2YzMihfX3MwXzE4NywgX19zMV8xODcsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE4Nyk7IFwKICBfX3JldF8xODc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjMyKF9fcDBfMTg4LCBfX3AxXzE4OCwgX19wMl8xODgsIF9fcDNfMTg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE4OCA9IF9fcDBfMTg4OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xODggPSBfX3AxXzE4ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTg4ID0gX19wMl8xODg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTg4OyAgX19yZXYwXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTg4LCBfX3MwXzE4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTg4OyAgX19yZXYxXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTg4LCBfX3MxXzE4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTg4OyAgX19yZXYyXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTg4LCBfX3MyXzE4OCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODg7IFwKZmxvYXQzMngyX3QgX19yZWludF8xODggPSBfX3JldjJfMTg4OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTg4ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODgsIF9fcDNfMTg4KSwgdmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTg4LCBfX3AzXzE4OCl9OyBcCiAgX19yZXRfMTg4ID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoX19yZXYwXzE4OCwgX19yZXYxXzE4OCwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTg4KTsgXAogIF9fcmV0XzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE4OCwgX19yZXRfMTg4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mMzIoX19wMF8xODksIF9fcDFfMTg5LCBfX3AyXzE4OSwgX19wM18xODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTg5ID0gX19wMF8xODk7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4OSA9IF9fcDFfMTg5OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xODkgPSBfX3AyXzE4OTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4OTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE4OSA9IF9fczJfMTg5OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTg5ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTg5LCBfX3AzXzE4OSl9OyBcCiAgX19yZXRfMTg5ID0gdmNtbGFfcm90MjcwX2YzMihfX3MwXzE4OSwgX19zMV8xODksICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE4OSk7IFwKICBfX3JldF8xODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QyNzBfbGFuZXFfZjMyKF9fcDBfMTkwLCBfX3AxXzE5MCwgX19wMl8xOTAsIF9fcDNfMTkwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5MCA9IF9fcDBfMTkwOyBcCiAgZmxvYXQzMngyX3QgX19zMV8xOTAgPSBfX3AxXzE5MDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTkwID0gX19wMl8xOTA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTkwOyAgX19yZXYwXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTkwLCBfX3MwXzE5MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTkwOyAgX19yZXYxXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTkwLCBfX3MxXzE5MCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTkwOyAgX19yZXYyXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTkwLCBfX3MyXzE5MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xOTA7IFwKZmxvYXQzMng0X3QgX19yZWludF8xOTAgPSBfX3JldjJfMTkwOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTkwID0gKHVpbnQ2NHgxX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkwLCBfX3AzXzE5MCl9OyBcCiAgX19yZXRfMTkwID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YzMihfX3JldjBfMTkwLCBfX3JldjFfMTkwLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTApOyBcCiAgX19yZXRfMTkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTkwLCBfX3JldF8xOTAsIDEsIDApOyBcCiAgX19yZXRfMTkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMzIoX19wMF8xOTEsIF9fcDFfMTkxLCBfX3AyXzE5MSwgX19wM18xOTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTkxID0gX19wMF8xOTE7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE5MSA9IF9fcDFfMTkxOyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTEgPSBfX3AyXzE5MTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE5MTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5MSA9IF9fczJfMTkxOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTkxID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkxLCBfX3AzXzE5MSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTEsIF9fcDNfMTkxKX07IFwKICBfX3JldF8xOTEgPSB2Y21sYXFfcm90MjcwX2YzMihfX3MwXzE5MSwgX19zMV8xOTEsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE5MSk7IFwKICBfX3JldF8xOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVxX2YzMihfX3AwXzE5MiwgX19wMV8xOTIsIF9fcDJfMTkyLCBfX3AzXzE5MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xOTIgPSBfX3AwXzE5MjsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTkyID0gX19wMV8xOTI7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE5MiA9IF9fcDJfMTkyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE5MjsgIF9fcmV2MF8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE5MiwgX19zMF8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzE5MjsgIF9fcmV2MV8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE5MiwgX19zMV8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzE5MjsgIF9fcmV2Ml8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE5MiwgX19zMl8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTkyOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTkyID0gX19yZXYyXzE5MjsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE5MiA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE5MiwgX19wM18xOTIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkyLCBfX3AzXzE5Mil9OyBcCiAgX19yZXRfMTkyID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoX19yZXYwXzE5MiwgX19yZXYxXzE5MiwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTkyKTsgXAogIF9fcmV0XzE5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE5MiwgX19yZXRfMTkyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90OTBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y21sYV9yb3Q5MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3Q5MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDkwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjbWxhX3JvdDkwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMzIoX19wMF8xOTMsIF9fcDFfMTkzLCBfX3AyXzE5MywgX19wM18xOTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTkzID0gX19wMF8xOTM7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5MyA9IF9fcDFfMTkzOyBcCiAgZmxvYXQzMngyX3QgX19zMl8xOTMgPSBfX3AyXzE5MzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5MzsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE5MyA9IF9fczJfMTkzOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTkzID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xOTMsIF9fcDNfMTkzKX07IFwKICBfX3JldF8xOTMgPSB2Y21sYV9yb3Q5MF9mMzIoX19zMF8xOTMsIF9fczFfMTkzLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTMpOyBcCiAgX19yZXRfMTkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMzIoX19wMF8xOTQsIF9fcDFfMTk0LCBfX3AyXzE5NCwgX19wM18xOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTk0ID0gX19wMF8xOTQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5NCA9IF9fcDFfMTk0OyBcCiAgZmxvYXQzMngyX3QgX19zMl8xOTQgPSBfX3AyXzE5NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTQ7ICBfX3JldjBfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xOTQsIF9fczBfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xOTQ7ICBfX3JldjFfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xOTQsIF9fczFfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml8xOTQ7ICBfX3JldjJfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xOTQsIF9fczJfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5NDsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE5NCA9IF9fcmV2Ml8xOTQ7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xOTQgPSAodWludDY0eDFfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE5NCwgX19wM18xOTQpfTsgXAogIF9fcmV0XzE5NCA9IF9fbm9zd2FwX3ZjbWxhX3JvdDkwX2YzMihfX3JldjBfMTk0LCBfX3JldjFfMTk0LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTQpOyBcCiAgX19yZXRfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTk0LCBfX3JldF8xOTQsIDEsIDApOyBcCiAgX19yZXRfMTk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjMyKF9fcDBfMTk1LCBfX3AxXzE5NSwgX19wMl8xOTUsIF9fcDNfMTk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE5NSA9IF9fcDBfMTk1OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xOTUgPSBfX3AxXzE5NTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTk1ID0gX19wMl8xOTU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xOTU7IFwKZmxvYXQzMngyX3QgX19yZWludF8xOTUgPSBfX3MyXzE5NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE5NSA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTk1LCBfX3AzXzE5NSksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE5NSwgX19wM18xOTUpfTsgXAogIF9fcmV0XzE5NSA9IHZjbWxhcV9yb3Q5MF9mMzIoX19zMF8xOTUsIF9fczFfMTk1LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xOTUpOyBcCiAgX19yZXRfMTk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjMyKF9fcDBfMTk2LCBfX3AxXzE5NiwgX19wMl8xOTYsIF9fcDNfMTk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE5NiA9IF9fcDBfMTk2OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xOTYgPSBfX3AxXzE5NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTk2ID0gX19wMl8xOTY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTk2OyAgX19yZXYwXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTk2LCBfX3MwXzE5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTk2OyAgX19yZXYxXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTk2LCBfX3MxXzE5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTk2OyAgX19yZXYyXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTk2LCBfX3MyXzE5NiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xOTY7IFwKZmxvYXQzMngyX3QgX19yZWludF8xOTYgPSBfX3JldjJfMTk2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTk2ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xOTYsIF9fcDNfMTk2KSwgdmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTk2LCBfX3AzXzE5Nil9OyBcCiAgX19yZXRfMTk2ID0gX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YzMihfX3JldjBfMTk2LCBfX3JldjFfMTk2LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xOTYpOyBcCiAgX19yZXRfMTk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTk2LCBfX3JldF8xOTYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTk2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZXFfZjMyKF9fcDBfMTk3LCBfX3AxXzE5NywgX19wMl8xOTcsIF9fcDNfMTk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5NyA9IF9fcDBfMTk3OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xOTcgPSBfX3AxXzE5NzsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTk3ID0gX19wMl8xOTc7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xOTc7IFwKZmxvYXQzMng0X3QgX19yZWludF8xOTcgPSBfX3MyXzE5NzsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE5NyA9ICh1aW50NjR4MV90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE5NywgX19wM18xOTcpfTsgXAogIF9fcmV0XzE5NyA9IHZjbWxhX3JvdDkwX2YzMihfX3MwXzE5NywgX19zMV8xOTcsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE5Nyk7IFwKICBfX3JldF8xOTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8xOTgsIF9fcDFfMTk4LCBfX3AyXzE5OCwgX19wM18xOTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTk4ID0gX19wMF8xOTg7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5OCA9IF9fcDFfMTk4OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTggPSBfX3AyXzE5ODsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTg7ICBfX3JldjBfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xOTgsIF9fczBfMTk4LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xOTg7ICBfX3JldjFfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xOTgsIF9fczFfMTk4LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8xOTg7ICBfX3JldjJfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xOTgsIF9fczJfMTk4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5ODsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5OCA9IF9fcmV2Ml8xOTg7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xOTggPSAodWludDY0eDFfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTgsIF9fcDNfMTk4KX07IFwKICBfX3JldF8xOTggPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMzIoX19yZXYwXzE5OCwgX19yZXYxXzE5OCwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTk4KTsgXAogIF9fcmV0XzE5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE5OCwgX19yZXRfMTk4LCAxLCAwKTsgXAogIF9fcmV0XzE5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8xOTksIF9fcDFfMTk5LCBfX3AyXzE5OSwgX19wM18xOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTk5ID0gX19wMF8xOTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE5OSA9IF9fcDFfMTk5OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTkgPSBfX3AyXzE5OTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE5OTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5OSA9IF9fczJfMTk5OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTk5ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTk5LCBfX3AzXzE5OSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTksIF9fcDNfMTk5KX07IFwKICBfX3JldF8xOTkgPSB2Y21sYXFfcm90OTBfZjMyKF9fczBfMTk5LCBfX3MxXzE5OSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTk5KTsgXAogIF9fcmV0XzE5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8yMDAsIF9fcDFfMjAwLCBfX3AyXzIwMCwgX19wM18yMDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMjAwID0gX19wMF8yMDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzIwMCA9IF9fcDFfMjAwOyBcCiAgZmxvYXQzMng0X3QgX19zMl8yMDAgPSBfX3AyXzIwMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF8yMDA7ICBfX3JldjBfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMDAsIF9fczBfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV8yMDA7ICBfX3JldjFfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMDAsIF9fczFfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8yMDA7ICBfX3JldjJfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMDAsIF9fczJfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzIwMDsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzIwMCA9IF9fcmV2Ml8yMDA7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMDAgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMDAsIF9fcDNfMjAwKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIwMCwgX19wM18yMDApfTsgXAogIF9fcmV0XzIwMCA9IF9fbm9zd2FwX3ZjbWxhcV9yb3Q5MF9mMzIoX19yZXYwXzIwMCwgX19yZXYxXzIwMCwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMjAwKTsgXAogIF9fcmV0XzIwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIwMCwgX19yZXRfMjAwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIwMDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0NPTVBMRVgpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3QyNzBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90MjcwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3QyNzBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90MjcwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjYWRkX3JvdDkwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3Q5MF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZF9yb3Q5MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDI3MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDkwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDkwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZjbWxhcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgX19ub3N3YXBfdmNtbGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y21sYV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IF9fbm9zd2FwX3ZjbWxhX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfbGFuZV9mMTYoX19wMF8yMDEsIF9fcDFfMjAxLCBfX3AyXzIwMSwgX19wM18yMDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjAxID0gX19wMF8yMDE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIwMSA9IF9fcDFfMjAxOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMDEgPSBfX3AyXzIwMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIwMTsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIwMSA9IF9fczJfMjAxOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjAxID0gKHVpbnQzMngyX3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDEsIF9fcDNfMjAxKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAxLCBfX3AzXzIwMSl9OyBcCiAgX19yZXRfMjAxID0gdmNtbGFfZjE2KF9fczBfMjAxLCBfX3MxXzIwMSwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjAxKTsgXAogIF9fcmV0XzIwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVfZjE2KF9fcDBfMjAyLCBfX3AxXzIwMiwgX19wMl8yMDIsIF9fcDNfMjAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwMiA9IF9fcDBfMjAyOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDIgPSBfX3AxXzIwMjsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjAyID0gX19wMl8yMDI7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjAyOyAgX19yZXYwXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjAyLCBfX3MwXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjAyOyAgX19yZXYxXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjAyLCBfX3MxXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjAyOyAgX19yZXYyXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjAyLCBfX3MyXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDI7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMDIgPSBfX3JldjJfMjAyOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjAyID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDIsIF9fcDNfMjAyKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAyLCBfX3AzXzIwMil9OyBcCiAgX19yZXRfMjAyID0gX19ub3N3YXBfdmNtbGFfZjE2KF9fcmV2MF8yMDIsIF9fcmV2MV8yMDIsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIwMik7IFwKICBfX3JldF8yMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMDIsIF9fcmV0XzIwMiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZV9mMTYoX19wMF8yMDMsIF9fcDFfMjAzLCBfX3AyXzIwMywgX19wM18yMDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjAzID0gX19wMF8yMDM7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIwMyA9IF9fcDFfMjAzOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMDMgPSBfX3AyXzIwMzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIwMzsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIwMyA9IF9fczJfMjAzOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjAzID0gKHVpbnQzMng0X3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDMsIF9fcDNfMjAzKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAzLCBfX3AzXzIwMyksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwMywgX19wM18yMDMpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDMsIF9fcDNfMjAzKX07IFwKICBfX3JldF8yMDMgPSB2Y21sYXFfZjE2KF9fczBfMjAzLCBfX3MxXzIwMywgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjAzKTsgXAogIF9fcmV0XzIwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9sYW5lX2YxNihfX3AwXzIwNCwgX19wMV8yMDQsIF9fcDJfMjA0LCBfX3AzXzIwNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMDQgPSBfX3AwXzIwNDsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjA0ID0gX19wMV8yMDQ7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIwNCA9IF9fcDJfMjA0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIwNDsgIF9fcmV2MF8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwNCwgX19zMF8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIwNDsgIF9fcmV2MV8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwNCwgX19zMV8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzIwNDsgIF9fcmV2Ml8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwNCwgX19zMl8yMDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjA0OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjA0ID0gX19yZXYyXzIwNDsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwNCA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA0LCBfX3AzXzIwNCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwNCwgX19wM18yMDQpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDQsIF9fcDNfMjA0KSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA0LCBfX3AzXzIwNCl9OyBcCiAgX19yZXRfMjA0ID0gX19ub3N3YXBfdmNtbGFxX2YxNihfX3JldjBfMjA0LCBfX3JldjFfMjA0LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMDQpOyBcCiAgX19yZXRfMjA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjA0LCBfX3JldF8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjE2KF9fcDBfMjA1LCBfX3AxXzIwNSwgX19wMl8yMDUsIF9fcDNfMjA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwNSA9IF9fcDBfMjA1OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDUgPSBfX3AxXzIwNTsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjA1ID0gX19wMl8yMDU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDU7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMDUgPSBfX3MyXzIwNTsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwNSA9ICh1aW50MzJ4Ml90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNSwgX19wM18yMDUpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA1LCBfX3AzXzIwNSl9OyBcCiAgX19yZXRfMjA1ID0gdmNtbGFfZjE2KF9fczBfMjA1LCBfX3MxXzIwNSwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjA1KTsgXAogIF9fcmV0XzIwNTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVxX2YxNihfX3AwXzIwNiwgX19wMV8yMDYsIF9fcDJfMjA2LCBfX3AzXzIwNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMDYgPSBfX3AwXzIwNjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjA2ID0gX19wMV8yMDY7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIwNiA9IF9fcDJfMjA2OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIwNjsgIF9fcmV2MF8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwNiwgX19zMF8yMDYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIwNjsgIF9fcmV2MV8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwNiwgX19zMV8yMDYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIwNjsgIF9fcmV2Ml8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwNiwgX19zMl8yMDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjA2OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjA2ID0gX19yZXYyXzIwNjsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwNiA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNiwgX19wM18yMDYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA2LCBfX3AzXzIwNil9OyBcCiAgX19yZXRfMjA2ID0gX19ub3N3YXBfdmNtbGFfZjE2KF9fcmV2MF8yMDYsIF9fcmV2MV8yMDYsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIwNik7IFwKICBfX3JldF8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMDYsIF9fcmV0XzIwNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZXFfZjE2KF9fcDBfMjA3LCBfX3AxXzIwNywgX19wMl8yMDcsIF9fcDNfMjA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIwNyA9IF9fcDBfMjA3OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMDcgPSBfX3AxXzIwNzsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjA3ID0gX19wMl8yMDc7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMDc7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMDcgPSBfX3MyXzIwNzsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwNyA9ICh1aW50MzJ4NF90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNywgX19wM18yMDcpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA3LCBfX3AzXzIwNyksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMDcsIF9fcDNfMjA3KSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNywgX19wM18yMDcpfTsgXAogIF9fcmV0XzIwNyA9IHZjbWxhcV9mMTYoX19zMF8yMDcsIF9fczFfMjA3LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMDcpOyBcCiAgX19yZXRfMjA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2YxNihfX3AwXzIwOCwgX19wMV8yMDgsIF9fcDJfMjA4LCBfX3AzXzIwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMDggPSBfX3AwXzIwODsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjA4ID0gX19wMV8yMDg7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIwOCA9IF9fcDJfMjA4OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIwODsgIF9fcmV2MF8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwOCwgX19zMF8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIwODsgIF9fcmV2MV8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwOCwgX19zMV8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIwODsgIF9fcmV2Ml8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwOCwgX19zMl8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjA4OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjA4ID0gX19yZXYyXzIwODsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwOCA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwOCwgX19wM18yMDgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA4LCBfX3AzXzIwOCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMDgsIF9fcDNfMjA4KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwOCwgX19wM18yMDgpfTsgXAogIF9fcmV0XzIwOCA9IF9fbm9zd2FwX3ZjbWxhcV9mMTYoX19yZXYwXzIwOCwgX19yZXYxXzIwOCwgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjA4KTsgXAogIF9fcmV0XzIwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIwOCwgX19yZXRfMjA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZjbWxhcV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y21sYV9yb3QxODBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MTgwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90MTgwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Y21sYV9yb3QxODBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MTgwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjE2KF9fcDBfMjA5LCBfX3AxXzIwOSwgX19wMl8yMDksIF9fcDNfMjA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwOSA9IF9fcDBfMjA5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDkgPSBfX3AxXzIwOTsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjA5ID0gX19wMl8yMDk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDk7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMDkgPSBfX3MyXzIwOTsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwOSA9ICh1aW50MzJ4Ml90KSB7dmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA5LCBfX3AzXzIwOSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwOSwgX19wM18yMDkpfTsgXAogIF9fcmV0XzIwOSA9IHZjbWxhX3JvdDE4MF9mMTYoX19zMF8yMDksIF9fczFfMjA5LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMDkpOyBcCiAgX19yZXRfMjA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjE2KF9fcDBfMjEwLCBfX3AxXzIxMCwgX19wMl8yMTAsIF9fcDNfMjEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxMCA9IF9fcDBfMjEwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTAgPSBfX3AxXzIxMDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjEwID0gX19wMl8yMTA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjEwOyAgX19yZXYwXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjEwLCBfX3MwXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjEwOyAgX19yZXYxXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjEwLCBfX3MxXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjEwOyAgX19yZXYyXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjEwLCBfX3MyXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTA7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMTAgPSBfX3JldjJfMjEwOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjEwID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTAsIF9fcDNfMjEwKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjEwLCBfX3AzXzIxMCl9OyBcCiAgX19yZXRfMjEwID0gX19ub3N3YXBfdmNtbGFfcm90MTgwX2YxNihfX3JldjBfMjEwLCBfX3JldjFfMjEwLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMTApOyBcCiAgX19yZXRfMjEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjEwLCBfX3JldF8yMTAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lX2YxNihfX3AwXzIxMSwgX19wMV8yMTEsIF9fcDJfMjExLCBfX3AzXzIxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTEgPSBfX3AwXzIxMTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjExID0gX19wMV8yMTE7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxMSA9IF9fcDJfMjExOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjExOyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjExID0gX19zMl8yMTE7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTEgPSAodWludDMyeDRfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMSwgX19wM18yMTEpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTEsIF9fcDNfMjExKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjExLCBfX3AzXzIxMSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMSwgX19wM18yMTEpfTsgXAogIF9fcmV0XzIxMSA9IHZjbWxhcV9yb3QxODBfZjE2KF9fczBfMjExLCBfX3MxXzIxMSwgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjExKTsgXAogIF9fcmV0XzIxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZV9mMTYoX19wMF8yMTIsIF9fcDFfMjEyLCBfX3AyXzIxMiwgX19wM18yMTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjEyID0gX19wMF8yMTI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIxMiA9IF9fcDFfMjEyOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMTIgPSBfX3AyXzIxMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yMTI7ICBfX3JldjBfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMTIsIF9fczBfMjEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yMTI7ICBfX3JldjFfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMTIsIF9fczFfMjEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yMTI7ICBfX3JldjJfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMTIsIF9fczJfMjEyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIxMjsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIxMiA9IF9fcmV2Ml8yMTI7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTIgPSAodWludDMyeDRfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMiwgX19wM18yMTIpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTIsIF9fcDNfMjEyKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjEyLCBfX3AzXzIxMiksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMiwgX19wM18yMTIpfTsgXAogIF9fcmV0XzIxMiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KF9fcmV2MF8yMTIsIF9fcmV2MV8yMTIsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxMik7IFwKICBfX3JldF8yMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTIsIF9fcmV0XzIxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjE2KF9fcDBfMjEzLCBfX3AxXzIxMywgX19wMl8yMTMsIF9fcDNfMjEzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxMyA9IF9fcDBfMjEzOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTMgPSBfX3AxXzIxMzsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjEzID0gX19wMl8yMTM7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTM7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMTMgPSBfX3MyXzIxMzsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIxMyA9ICh1aW50MzJ4Ml90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxMywgX19wM18yMTMpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjEzLCBfX3AzXzIxMyl9OyBcCiAgX19yZXRfMjEzID0gdmNtbGFfcm90MTgwX2YxNihfX3MwXzIxMywgX19zMV8yMTMsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIxMyk7IFwKICBfX3JldF8yMTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjE2KF9fcDBfMjE0LCBfX3AxXzIxNCwgX19wMl8yMTQsIF9fcDNfMjE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxNCA9IF9fcDBfMjE0OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTQgPSBfX3AxXzIxNDsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjE0ID0gX19wMl8yMTQ7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjE0OyAgX19yZXYwXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjE0LCBfX3MwXzIxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjE0OyAgX19yZXYxXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjE0LCBfX3MxXzIxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjE0OyAgX19yZXYyXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjE0LCBfX3MyXzIxNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTQ7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMTQgPSBfX3JldjJfMjE0OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjE0ID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE0LCBfX3AzXzIxNCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTQsIF9fcDNfMjE0KX07IFwKICBfX3JldF8yMTQgPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjE2KF9fcmV2MF8yMTQsIF9fcmV2MV8yMTQsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIxNCk7IFwKICBfX3JldF8yMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTQsIF9fcmV0XzIxNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YxNihfX3AwXzIxNSwgX19wMV8yMTUsIF9fcDJfMjE1LCBfX3AzXzIxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTUgPSBfX3AwXzIxNTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjE1ID0gX19wMV8yMTU7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIxNSA9IF9fcDJfMjE1OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjE1OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjE1ID0gX19zMl8yMTU7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTUgPSAodWludDMyeDRfdCkge3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTUsIF9fcDNfMjE1KSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNSwgX19wM18yMTUpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE1LCBfX3AzXzIxNSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTUsIF9fcDNfMjE1KX07IFwKICBfX3JldF8yMTUgPSB2Y21sYXFfcm90MTgwX2YxNihfX3MwXzIxNSwgX19zMV8yMTUsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxNSk7IFwKICBfX3JldF8yMTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YxNihfX3AwXzIxNiwgX19wMV8yMTYsIF9fcDJfMjE2LCBfX3AzXzIxNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTYgPSBfX3AwXzIxNjsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjE2ID0gX19wMV8yMTY7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIxNiA9IF9fcDJfMjE2OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIxNjsgIF9fcmV2MF8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIxNiwgX19zMF8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIxNjsgIF9fcmV2MV8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIxNiwgX19zMV8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIxNjsgIF9fcmV2Ml8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIxNiwgX19zMl8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjE2OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjE2ID0gX19yZXYyXzIxNjsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIxNiA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNiwgX19wM18yMTYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE2LCBfX3AzXzIxNiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTYsIF9fcDNfMjE2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNiwgX19wM18yMTYpfTsgXAogIF9fcmV0XzIxNiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KF9fcmV2MF8yMTYsIF9fcmV2MV8yMTYsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxNik7IFwKICBfX3JldF8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTYsIF9fcmV0XzIxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX3JvdDI3MF9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90MjcwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX3JvdDI3MF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmNtbGFfcm90MjcwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YxNihfX3AwXzIxNywgX19wMV8yMTcsIF9fcDJfMjE3LCBfX3AzXzIxNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMTcgPSBfX3AwXzIxNzsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjE3ID0gX19wMV8yMTc7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxNyA9IF9fcDJfMjE3OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjE3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjE3ID0gX19zMl8yMTc7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMTcgPSAodWludDMyeDJfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxNywgX19wM18yMTcpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTcsIF9fcDNfMjE3KX07IFwKICBfX3JldF8yMTcgPSB2Y21sYV9yb3QyNzBfZjE2KF9fczBfMjE3LCBfX3MxXzIxNywgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjE3KTsgXAogIF9fcmV0XzIxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YxNihfX3AwXzIxOCwgX19wMV8yMTgsIF9fcDJfMjE4LCBfX3AzXzIxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMTggPSBfX3AwXzIxODsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjE4ID0gX19wMV8yMTg7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxOCA9IF9fcDJfMjE4OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIxODsgIF9fcmV2MF8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIxOCwgX19zMF8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIxODsgIF9fcmV2MV8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIxOCwgX19zMV8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzIxODsgIF9fcmV2Ml8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIxOCwgX19zMl8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjE4OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjE4ID0gX19yZXYyXzIxODsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIxOCA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjE4LCBfX3AzXzIxOCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxOCwgX19wM18yMTgpfTsgXAogIF9fcmV0XzIxOCA9IF9fbm9zd2FwX3ZjbWxhX3JvdDI3MF9mMTYoX19yZXYwXzIxOCwgX19yZXYxXzIxOCwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjE4KTsgXAogIF9fcmV0XzIxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIxOCwgX19yZXRfMjE4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIxODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QyNzBfbGFuZV9mMTYoX19wMF8yMTksIF9fcDFfMjE5LCBfX3AyXzIxOSwgX19wM18yMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjE5ID0gX19wMF8yMTk7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIxOSA9IF9fcDFfMjE5OyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMTkgPSBfX3AyXzIxOTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIxOTsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIxOSA9IF9fczJfMjE5OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjE5ID0gKHVpbnQzMng0X3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTksIF9fcDNfMjE5KSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjE5LCBfX3AzXzIxOSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxOSwgX19wM18yMTkpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTksIF9fcDNfMjE5KX07IFwKICBfX3JldF8yMTkgPSB2Y21sYXFfcm90MjcwX2YxNihfX3MwXzIxOSwgX19zMV8yMTksICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxOSk7IFwKICBfX3JldF8yMTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjE2KF9fcDBfMjIwLCBfX3AxXzIyMCwgX19wMl8yMjAsIF9fcDNfMjIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIyMCA9IF9fcDBfMjIwOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMjAgPSBfX3AxXzIyMDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjIwID0gX19wMl8yMjA7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjIwOyAgX19yZXYwXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjIwLCBfX3MwXzIyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjIwOyAgX19yZXYxXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjIwLCBfX3MxXzIyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjIwOyAgX19yZXYyXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjIwLCBfX3MyXzIyMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMjA7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMjAgPSBfX3JldjJfMjIwOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjIwID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjAsIF9fcDNfMjIwKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjIwLCBfX3AzXzIyMCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyMCwgX19wM18yMjApLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjAsIF9fcDNfMjIwKX07IFwKICBfX3JldF8yMjAgPSBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihfX3JldjBfMjIwLCBfX3JldjFfMjIwLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjApOyBcCiAgX19yZXRfMjIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjIwLCBfX3JldF8yMjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjIwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MjcwX2xhbmVxX2YxNihfX3AwXzIyMSwgX19wMV8yMjEsIF9fcDJfMjIxLCBfX3AzXzIyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjEgPSBfX3AwXzIyMTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjIxID0gX19wMV8yMjE7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIyMSA9IF9fcDJfMjIxOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjIxOyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjIxID0gX19zMl8yMjE7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjEgPSAodWludDMyeDJfdCkge3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjEsIF9fcDNfMjIxKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMSwgX19wM18yMjEpfTsgXAogIF9fcmV0XzIyMSA9IHZjbWxhX3JvdDI3MF9mMTYoX19zMF8yMjEsIF9fczFfMjIxLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjEpOyBcCiAgX19yZXRfMjIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MjcwX2xhbmVxX2YxNihfX3AwXzIyMiwgX19wMV8yMjIsIF9fcDJfMjIyLCBfX3AzXzIyMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjIgPSBfX3AwXzIyMjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjIyID0gX19wMV8yMjI7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIyMiA9IF9fcDJfMjIyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIyMjsgIF9fcmV2MF8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIyMiwgX19zMF8yMjIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIyMjsgIF9fcmV2MV8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIyMiwgX19zMV8yMjIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIyMjsgIF9fcmV2Ml8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIyMiwgX19zMl8yMjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjIyOyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjIyID0gX19yZXYyXzIyMjsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIyMiA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMiwgX19wM18yMjIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIyLCBfX3AzXzIyMil9OyBcCiAgX19yZXRfMjIyID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YxNihfX3JldjBfMjIyLCBfX3JldjFfMjIyLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjIpOyBcCiAgX19yZXRfMjIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjIyLCBfX3JldF8yMjIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMTYoX19wMF8yMjMsIF9fcDFfMjIzLCBfX3AyXzIyMywgX19wM18yMjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjIzID0gX19wMF8yMjM7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIyMyA9IF9fcDFfMjIzOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjMgPSBfX3AyXzIyMzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIyMzsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyMyA9IF9fczJfMjIzOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjIzID0gKHVpbnQzMng0X3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIzLCBfX3AzXzIyMyksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjMsIF9fcDNfMjIzKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMywgX19wM18yMjMpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIzLCBfX3AzXzIyMyl9OyBcCiAgX19yZXRfMjIzID0gdmNtbGFxX3JvdDI3MF9mMTYoX19zMF8yMjMsIF9fczFfMjIzLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjMpOyBcCiAgX19yZXRfMjIzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMTYoX19wMF8yMjQsIF9fcDFfMjI0LCBfX3AyXzIyNCwgX19wM18yMjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjI0ID0gX19wMF8yMjQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIyNCA9IF9fcDFfMjI0OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjQgPSBfX3AyXzIyNDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yMjQ7ICBfX3JldjBfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMjQsIF9fczBfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yMjQ7ICBfX3JldjFfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMjQsIF9fczFfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml8yMjQ7ICBfX3JldjJfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMjQsIF9fczJfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIyNDsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyNCA9IF9fcmV2Ml8yMjQ7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMjQgPSAodWludDMyeDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjQsIF9fcDNfMjI0KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyNCwgX19wM18yMjQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjI0LCBfX3AzXzIyNCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjQsIF9fcDNfMjI0KX07IFwKICBfX3JldF8yMjQgPSBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihfX3JldjBfMjI0LCBfX3JldjFfMjI0LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjQpOyBcCiAgX19yZXRfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjI0LCBfX3JldF8yMjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX3JvdDkwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDkwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCBfX25vc3dhcF92Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDkwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX3JvdDkwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90OTBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90OTBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmNtbGFfcm90OTBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90OTBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lX2YxNihfX3AwXzIyNSwgX19wMV8yMjUsIF9fcDJfMjI1LCBfX3AzXzIyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjUgPSBfX3AwXzIyNTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjI1ID0gX19wMV8yMjU7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIyNSA9IF9fcDJfMjI1OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjI1OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjI1ID0gX19zMl8yMjU7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjUgPSAodWludDMyeDJfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNSwgX19wM18yMjUpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjUsIF9fcDNfMjI1KX07IFwKICBfX3JldF8yMjUgPSB2Y21sYV9yb3Q5MF9mMTYoX19zMF8yMjUsIF9fczFfMjI1LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjUpOyBcCiAgX19yZXRfMjI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMTYoX19wMF8yMjYsIF9fcDFfMjI2LCBfX3AyXzIyNiwgX19wM18yMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjI2ID0gX19wMF8yMjY7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIyNiA9IF9fcDFfMjI2OyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMjYgPSBfX3AyXzIyNjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8yMjY7ICBfX3JldjBfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMjYsIF9fczBfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yMjY7ICBfX3JldjFfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMjYsIF9fczFfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yMjY7ICBfX3JldjJfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMjYsIF9fczJfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIyNjsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIyNiA9IF9fcmV2Ml8yMjY7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjYgPSAodWludDMyeDJfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNiwgX19wM18yMjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjYsIF9fcDNfMjI2KX07IFwKICBfX3JldF8yMjYgPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMTYoX19yZXYwXzIyNiwgX19yZXYxXzIyNiwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjI2KTsgXAogIF9fcmV0XzIyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIyNiwgX19yZXRfMjI2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIyNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lX2YxNihfX3AwXzIyNywgX19wMV8yMjcsIF9fcDJfMjI3LCBfX3AzXzIyNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMjcgPSBfX3AwXzIyNzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjI3ID0gX19wMV8yMjc7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIyNyA9IF9fcDJfMjI3OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjI3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjI3ID0gX19zMl8yMjc7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMjcgPSAodWludDMyeDRfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNywgX19wM18yMjcpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjcsIF9fcDNfMjI3KSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjI3LCBfX3AzXzIyNyksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNywgX19wM18yMjcpfTsgXAogIF9fcmV0XzIyNyA9IHZjbWxhcV9yb3Q5MF9mMTYoX19zMF8yMjcsIF9fczFfMjI3LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjcpOyBcCiAgX19yZXRfMjI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjE2KF9fcDBfMjI4LCBfX3AxXzIyOCwgX19wMl8yMjgsIF9fcDNfMjI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIyOCA9IF9fcDBfMjI4OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMjggPSBfX3AxXzIyODsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjI4ID0gX19wMl8yMjg7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjI4OyAgX19yZXYwXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjI4LCBfX3MwXzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjI4OyAgX19yZXYxXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjI4LCBfX3MxXzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjI4OyAgX19yZXYyXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjI4LCBfX3MyXzIyOCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMjg7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMjggPSBfX3JldjJfMjI4OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjI4ID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjgsIF9fcDNfMjI4KSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjI4LCBfX3AzXzIyOCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyOCwgX19wM18yMjgpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjgsIF9fcDNfMjI4KX07IFwKICBfX3JldF8yMjggPSBfX25vc3dhcF92Y21sYXFfcm90OTBfZjE2KF9fcmV2MF8yMjgsIF9fcmV2MV8yMjgsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIyOCk7IFwKICBfX3JldF8yMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMjgsIF9fcmV0XzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mMTYoX19wMF8yMjksIF9fcDFfMjI5LCBfX3AyXzIyOSwgX19wM18yMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjI5ID0gX19wMF8yMjk7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIyOSA9IF9fcDFfMjI5OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjkgPSBfX3AyXzIyOTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIyOTsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyOSA9IF9fczJfMjI5OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjI5ID0gKHVpbnQzMngyX3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjI5LCBfX3AzXzIyOSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjksIF9fcDNfMjI5KX07IFwKICBfX3JldF8yMjkgPSB2Y21sYV9yb3Q5MF9mMTYoX19zMF8yMjksIF9fczFfMjI5LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjkpOyBcCiAgX19yZXRfMjI5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZXFfZjE2KF9fcDBfMjMwLCBfX3AxXzIzMCwgX19wMl8yMzAsIF9fcDNfMjMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIzMCA9IF9fcDBfMjMwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMzAgPSBfX3AxXzIzMDsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjMwID0gX19wMl8yMzA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjMwOyAgX19yZXYwXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjMwLCBfX3MwXzIzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjMwOyAgX19yZXYxXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjMwLCBfX3MxXzIzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjMwOyAgX19yZXYyXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjMwLCBfX3MyXzIzMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMzA7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMzAgPSBfX3JldjJfMjMwOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjMwID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMwLCBfX3AzXzIzMCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzAsIF9fcDNfMjMwKX07IFwKICBfX3JldF8yMzAgPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMTYoX19yZXYwXzIzMCwgX19yZXYxXzIzMCwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjMwKTsgXAogIF9fcmV0XzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIzMCwgX19yZXRfMjMwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIzMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMTYoX19wMF8yMzEsIF9fcDFfMjMxLCBfX3AyXzIzMSwgX19wM18yMzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjMxID0gX19wMF8yMzE7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIzMSA9IF9fcDFfMjMxOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMzEgPSBfX3AyXzIzMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIzMTsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIzMSA9IF9fczJfMjMxOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjMxID0gKHVpbnQzMng0X3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMxLCBfX3AzXzIzMSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzEsIF9fcDNfMjMxKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIzMSwgX19wM18yMzEpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMxLCBfX3AzXzIzMSl9OyBcCiAgX19yZXRfMjMxID0gdmNtbGFxX3JvdDkwX2YxNihfX3MwXzIzMSwgX19zMV8yMzEsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIzMSk7IFwKICBfX3JldF8yMzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjE2KF9fcDBfMjMyLCBfX3AxXzIzMiwgX19wMl8yMzIsIF9fcDNfMjMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIzMiA9IF9fcDBfMjMyOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMzIgPSBfX3AxXzIzMjsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjMyID0gX19wMl8yMzI7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjMyOyAgX19yZXYwXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjMyLCBfX3MwXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjMyOyAgX19yZXYxXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjMyLCBfX3MxXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjMyOyAgX19yZXYyXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjMyLCBfX3MyXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMzI7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMzIgPSBfX3JldjJfMjMyOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjMyID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMyLCBfX3AzXzIzMiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzIsIF9fcDNfMjMyKSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIzMiwgX19wM18yMzIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMyLCBfX3AzXzIzMil9OyBcCiAgX19yZXRfMjMyID0gX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YxNihfX3JldjBfMjMyLCBfX3JldjFfMjMyLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMzIpOyBcCiAgX19yZXRfMjMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjMyLCBfX3JldF8yMzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjMyOyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQ09NUExFWCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDI3MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZHFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2Y2FkZHFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y21sYXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IF9fbm9zd2FwX3ZjbWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Y21sYV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Y21sYV9sYW5lX2Y2NChfX3AwXzIzMywgX19wMV8yMzMsIF9fcDJfMjMzLCBfX3AzXzIzMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yMzMgPSBfX3AwXzIzMzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjMzID0gX19wMV8yMzM7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzIzMyA9IF9fcDJfMjMzOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjMzOyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjMzID0gX19zMl8yMzM7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMzMgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzMsIF9fcDNfMjMzKSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzMywgX19wM18yMzMpfTsgXAogIF9fcmV0XzIzMyA9IHZjbWxhX2Y2NChfX3MwXzIzMywgX19zMV8yMzMsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzIzMyk7IFwKICBfX3JldF8yMzM7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX2xhbmVfZjY0KF9fcDBfMjM0LCBfX3AxXzIzNCwgX19wMl8yMzQsIF9fcDNfMjM0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzIzNCA9IF9fcDBfMjM0OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yMzQgPSBfX3AxXzIzNDsgXAogIGZsb2F0NjR4MV90IF9fczJfMjM0ID0gX19wMl8yMzQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yMzQ7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yMzQgPSBfX3MyXzIzNDsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzIzNCA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzNCwgX19wM18yMzQpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM0LCBfX3AzXzIzNCl9OyBcCiAgX19yZXRfMjM0ID0gdmNtbGFxX2Y2NChfX3MwXzIzNCwgX19zMV8yMzQsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzIzNCk7IFwKICBfX3JldF8yMzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfbGFuZV9mNjQoX19wMF8yMzUsIF9fcDFfMjM1LCBfX3AyXzIzNSwgX19wM18yMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjM1ID0gX19wMF8yMzU7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzIzNSA9IF9fcDFfMjM1OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yMzUgPSBfX3AyXzIzNTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF8yMzU7ICBfX3JldjBfMjM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMzUsIF9fczBfMjM1LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV8yMzU7ICBfX3JldjFfMjM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMzUsIF9fczFfMjM1LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzIzNTsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzIzNSA9IF9fczJfMjM1OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM1ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM1LCBfX3AzXzIzNSksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzUsIF9fcDNfMjM1KX07IFwKICBfX3JldF8yMzUgPSBfX25vc3dhcF92Y21sYXFfZjY0KF9fcmV2MF8yMzUsIF9fcmV2MV8yMzUsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzIzNSk7IFwKICBfX3JldF8yMzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMzUsIF9fcmV0XzIzNSwgMSwgMCk7IFwKICBfX3JldF8yMzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9sYW5lcV9mNjQoX19wMF8yMzYsIF9fcDFfMjM2LCBfX3AyXzIzNiwgX19wM18yMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjM2ID0gX19wMF8yMzY7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzIzNiA9IF9fcDFfMjM2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yMzYgPSBfX3AyXzIzNjsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzIzNjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzIzNiA9IF9fczJfMjM2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM2ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM2LCBfX3AzXzIzNiksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzYsIF9fcDNfMjM2KX07IFwKICBfX3JldF8yMzYgPSB2Y21sYV9mNjQoX19zMF8yMzYsIF9fczFfMjM2LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yMzYpOyBcCiAgX19yZXRfMjM2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjY0KF9fcDBfMjM3LCBfX3AxXzIzNywgX19wMl8yMzcsIF9fcDNfMjM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzIzNyA9IF9fcDBfMjM3OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yMzcgPSBfX3AxXzIzNzsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjM3ID0gX19wMl8yMzc7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjM3OyAgX19yZXYyXzIzNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjM3LCBfX3MyXzIzNywgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yMzc7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yMzcgPSBfX3JldjJfMjM3OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM3ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM3LCBfX3AzXzIzNyksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzcsIF9fcDNfMjM3KX07IFwKICBfX3JldF8yMzcgPSB2Y21sYV9mNjQoX19zMF8yMzcsIF9fczFfMjM3LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yMzcpOyBcCiAgX19yZXRfMjM3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2Y2NChfX3AwXzIzOCwgX19wMV8yMzgsIF9fcDJfMjM4LCBfX3AzXzIzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yMzggPSBfX3AwXzIzODsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjM4ID0gX19wMV8yMzg7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzIzOCA9IF9fcDJfMjM4OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjM4OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjM4ID0gX19zMl8yMzg7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMzggPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzgsIF9fcDNfMjM4KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzOCwgX19wM18yMzgpfTsgXAogIF9fcmV0XzIzOCA9IHZjbWxhcV9mNjQoX19zMF8yMzgsIF9fczFfMjM4LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yMzgpOyBcCiAgX19yZXRfMjM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2Y2NChfX3AwXzIzOSwgX19wMV8yMzksIF9fcDJfMjM5LCBfX3AzXzIzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yMzkgPSBfX3AwXzIzOTsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjM5ID0gX19wMV8yMzk7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzIzOSA9IF9fcDJfMjM5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzIzOTsgIF9fcmV2MF8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIzOSwgX19zMF8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzIzOTsgIF9fcmV2MV8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIzOSwgX19zMV8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzIzOTsgIF9fcmV2Ml8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIzOSwgX19zMl8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjM5OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjM5ID0gX19yZXYyXzIzOTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzIzOSA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzOSwgX19wM18yMzkpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM5LCBfX3AzXzIzOSl9OyBcCiAgX19yZXRfMjM5ID0gX19ub3N3YXBfdmNtbGFxX2Y2NChfX3JldjBfMjM5LCBfX3JldjFfMjM5LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yMzkpOyBcCiAgX19yZXRfMjM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjM5LCBfX3JldF8yMzksIDEsIDApOyBcCiAgX19yZXRfMjM5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDE4MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9yb3QxODBfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgX19ub3N3YXBfdmNtbGFxX3JvdDE4MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmNtbGFfcm90MTgwX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxLCBmbG9hdDY0eDFfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZV9mNjQoX19wMF8yNDAsIF9fcDFfMjQwLCBfX3AyXzI0MCwgX19wM18yNDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjQwID0gX19wMF8yNDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI0MCA9IF9fcDFfMjQwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNDAgPSBfX3AyXzI0MDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI0MDsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI0MCA9IF9fczJfMjQwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQwID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQwLCBfX3AzXzI0MCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDAsIF9fcDNfMjQwKX07IFwKICBfX3JldF8yNDAgPSB2Y21sYV9yb3QxODBfZjY0KF9fczBfMjQwLCBfX3MxXzI0MCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjQwKTsgXAogIF9fcmV0XzI0MDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVfZjY0KF9fcDBfMjQxLCBfX3AxXzI0MSwgX19wMl8yNDEsIF9fcDNfMjQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0MSA9IF9fcDBfMjQxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDEgPSBfX3AxXzI0MTsgXAogIGZsb2F0NjR4MV90IF9fczJfMjQxID0gX19wMl8yNDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDE7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNDEgPSBfX3MyXzI0MTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0MSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MSwgX19wM18yNDEpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQxLCBfX3AzXzI0MSl9OyBcCiAgX19yZXRfMjQxID0gdmNtbGFxX3JvdDE4MF9mNjQoX19zMF8yNDEsIF9fczFfMjQxLCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yNDEpOyBcCiAgX19yZXRfMjQxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lX2Y2NChfX3AwXzI0MiwgX19wMV8yNDIsIF9fcDJfMjQyLCBfX3AzXzI0MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNDIgPSBfX3AwXzI0MjsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjQyID0gX19wMV8yNDI7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI0MiA9IF9fcDJfMjQyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI0MjsgIF9fcmV2MF8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI0MiwgX19zMF8yNDIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI0MjsgIF9fcmV2MV8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI0MiwgX19zMV8yNDIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjQyOyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjQyID0gX19zMl8yNDI7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDIgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDIsIF9fcDNfMjQyKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MiwgX19wM18yNDIpfTsgXAogIF9fcmV0XzI0MiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjY0KF9fcmV2MF8yNDIsIF9fcmV2MV8yNDIsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0Mik7IFwKICBfX3JldF8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNDIsIF9fcmV0XzI0MiwgMSwgMCk7IFwKICBfX3JldF8yNDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQzLCBfX3AxXzI0MywgX19wMl8yNDMsIF9fcDNfMjQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI0MyA9IF9fcDBfMjQzOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNDMgPSBfX3AxXzI0MzsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQzID0gX19wMl8yNDM7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNDM7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDMgPSBfX3MyXzI0MzsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0MyA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MywgX19wM18yNDMpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQzLCBfX3AzXzI0Myl9OyBcCiAgX19yZXRfMjQzID0gdmNtbGFfcm90MTgwX2Y2NChfX3MwXzI0MywgX19zMV8yNDMsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI0Myk7IFwKICBfX3JldF8yNDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQ0LCBfX3AxXzI0NCwgX19wMl8yNDQsIF9fcDNfMjQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI0NCA9IF9fcDBfMjQ0OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNDQgPSBfX3AxXzI0NDsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQ0ID0gX19wMl8yNDQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjQ0OyAgX19yZXYyXzI0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjQ0LCBfX3MyXzI0NCwgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNDQ7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDQgPSBfX3JldjJfMjQ0OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQ0ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ0LCBfX3AzXzI0NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDQsIF9fcDNfMjQ0KX07IFwKICBfX3JldF8yNDQgPSB2Y21sYV9yb3QxODBfZjY0KF9fczBfMjQ0LCBfX3MxXzI0NCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjQ0KTsgXAogIF9fcmV0XzI0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQ1LCBfX3AxXzI0NSwgX19wMl8yNDUsIF9fcDNfMjQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0NSA9IF9fcDBfMjQ1OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDUgPSBfX3AxXzI0NTsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQ1ID0gX19wMl8yNDU7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDU7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDUgPSBfX3MyXzI0NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0NSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NSwgX19wM18yNDUpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ1LCBfX3AzXzI0NSl9OyBcCiAgX19yZXRfMjQ1ID0gdmNtbGFxX3JvdDE4MF9mNjQoX19zMF8yNDUsIF9fczFfMjQ1LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yNDUpOyBcCiAgX19yZXRfMjQ1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lcV9mNjQoX19wMF8yNDYsIF9fcDFfMjQ2LCBfX3AyXzI0NiwgX19wM18yNDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjQ2ID0gX19wMF8yNDY7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI0NiA9IF9fcDFfMjQ2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNDYgPSBfX3AyXzI0NjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF8yNDY7ICBfX3JldjBfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNDYsIF9fczBfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV8yNDY7ICBfX3JldjFfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNDYsIF9fczFfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNDY7ICBfX3JldjJfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNDYsIF9fczJfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI0NjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI0NiA9IF9fcmV2Ml8yNDY7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDYgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDYsIF9fcDNfMjQ2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NiwgX19wM18yNDYpfTsgXAogIF9fcmV0XzI0NiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjY0KF9fcmV2MF8yNDYsIF9fcmV2MV8yNDYsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0Nik7IFwKICBfX3JldF8yNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNDYsIF9fcmV0XzI0NiwgMSwgMCk7IFwKICBfX3JldF8yNDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y21sYXFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDI3MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Y21sYXFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Y21sYV9yb3QyNzBfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MjcwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2Y2NChfX3AwXzI0NywgX19wMV8yNDcsIF9fcDJfMjQ3LCBfX3AzXzI0NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yNDcgPSBfX3AwXzI0NzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjQ3ID0gX19wMV8yNDc7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI0NyA9IF9fcDJfMjQ3OyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjQ3OyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjQ3ID0gX19zMl8yNDc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDcgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDcsIF9fcDNfMjQ3KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NywgX19wM18yNDcpfTsgXAogIF9fcmV0XzI0NyA9IHZjbWxhX3JvdDI3MF9mNjQoX19zMF8yNDcsIF9fczFfMjQ3LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yNDcpOyBcCiAgX19yZXRfMjQ3OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QyNzBfbGFuZV9mNjQoX19wMF8yNDgsIF9fcDFfMjQ4LCBfX3AyXzI0OCwgX19wM18yNDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjQ4ID0gX19wMF8yNDg7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI0OCA9IF9fcDFfMjQ4OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNDggPSBfX3AyXzI0ODsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI0ODsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI0OCA9IF9fczJfMjQ4OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQ4ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ4LCBfX3AzXzI0OCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDgsIF9fcDNfMjQ4KX07IFwKICBfX3JldF8yNDggPSB2Y21sYXFfcm90MjcwX2Y2NChfX3MwXzI0OCwgX19zMV8yNDgsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0OCk7IFwKICBfX3JldF8yNDg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjY0KF9fcDBfMjQ5LCBfX3AxXzI0OSwgX19wMl8yNDksIF9fcDNfMjQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0OSA9IF9fcDBfMjQ5OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDkgPSBfX3AxXzI0OTsgXAogIGZsb2F0NjR4MV90IF9fczJfMjQ5ID0gX19wMl8yNDk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfMjQ5OyAgX19yZXYwXzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjQ5LCBfX3MwXzI0OSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfMjQ5OyAgX19yZXYxXzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjQ5LCBfX3MxXzI0OSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDk7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNDkgPSBfX3MyXzI0OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0OSA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0OSwgX19wM18yNDkpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ5LCBfX3AzXzI0OSl9OyBcCiAgX19yZXRfMjQ5ID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mNjQoX19yZXYwXzI0OSwgX19yZXYxXzI0OSwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjQ5KTsgXAogIF9fcmV0XzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI0OSwgX19yZXRfMjQ5LCAxLCAwKTsgXAogIF9fcmV0XzI0OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTAsIF9fcDFfMjUwLCBfX3AyXzI1MCwgX19wM18yNTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjUwID0gX19wMF8yNTA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1MCA9IF9fcDFfMjUwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTAgPSBfX3AyXzI1MDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1MDsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MCA9IF9fczJfMjUwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjUwID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUwLCBfX3AzXzI1MCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTAsIF9fcDNfMjUwKX07IFwKICBfX3JldF8yNTAgPSB2Y21sYV9yb3QyNzBfZjY0KF9fczBfMjUwLCBfX3MxXzI1MCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjUwKTsgXAogIF9fcmV0XzI1MDsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTEsIF9fcDFfMjUxLCBfX3AyXzI1MSwgX19wM18yNTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjUxID0gX19wMF8yNTE7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1MSA9IF9fcDFfMjUxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTEgPSBfX3AyXzI1MTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNTE7ICBfX3JldjJfMjUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNTEsIF9fczJfMjUxLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1MTsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MSA9IF9fcmV2Ml8yNTE7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTEgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTEsIF9fcDNfMjUxKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1MSwgX19wM18yNTEpfTsgXAogIF9fcmV0XzI1MSA9IHZjbWxhX3JvdDI3MF9mNjQoX19zMF8yNTEsIF9fczFfMjUxLCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yNTEpOyBcCiAgX19yZXRfMjUxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTIsIF9fcDFfMjUyLCBfX3AyXzI1MiwgX19wM18yNTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjUyID0gX19wMF8yNTI7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI1MiA9IF9fcDFfMjUyOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTIgPSBfX3AyXzI1MjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI1MjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MiA9IF9fczJfMjUyOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjUyID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUyLCBfX3AzXzI1MiksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTIsIF9fcDNfMjUyKX07IFwKICBfX3JldF8yNTIgPSB2Y21sYXFfcm90MjcwX2Y2NChfX3MwXzI1MiwgX19zMV8yNTIsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI1Mik7IFwKICBfX3JldF8yNTI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVxX2Y2NChfX3AwXzI1MywgX19wMV8yNTMsIF9fcDJfMjUzLCBfX3AzXzI1MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNTMgPSBfX3AwXzI1MzsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjUzID0gX19wMV8yNTM7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzI1MyA9IF9fcDJfMjUzOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI1MzsgIF9fcmV2MF8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI1MywgX19zMF8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI1MzsgIF9fcmV2MV8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI1MywgX19zMV8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzI1MzsgIF9fcmV2Ml8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI1MywgX19zMl8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjUzOyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjUzID0gX19yZXYyXzI1MzsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1MyA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1MywgX19wM18yNTMpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUzLCBfX3AzXzI1Myl9OyBcCiAgX19yZXRfMjUzID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mNjQoX19yZXYwXzI1MywgX19yZXYxXzI1MywgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjUzKTsgXAogIF9fcmV0XzI1MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI1MywgX19yZXRfMjUzLCAxLCAwKTsgXAogIF9fcmV0XzI1MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9yb3Q5MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90OTBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgX19ub3N3YXBfdmNtbGFxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZjbWxhX3JvdDkwX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxLCBmbG9hdDY0eDFfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZjbWxhX3JvdDkwX2xhbmVfZjY0KF9fcDBfMjU0LCBfX3AxXzI1NCwgX19wMl8yNTQsIF9fcDNfMjU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI1NCA9IF9fcDBfMjU0OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNTQgPSBfX3AxXzI1NDsgXAogIGZsb2F0NjR4MV90IF9fczJfMjU0ID0gX19wMl8yNTQ7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNTQ7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNTQgPSBfX3MyXzI1NDsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1NCA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NCwgX19wM18yNTQpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU0LCBfX3AzXzI1NCl9OyBcCiAgX19yZXRfMjU0ID0gdmNtbGFfcm90OTBfZjY0KF9fczBfMjU0LCBfX3MxXzI1NCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjU0KTsgXAogIF9fcmV0XzI1NDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZV9mNjQoX19wMF8yNTUsIF9fcDFfMjU1LCBfX3AyXzI1NSwgX19wM18yNTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjU1ID0gX19wMF8yNTU7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI1NSA9IF9fcDFfMjU1OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNTUgPSBfX3AyXzI1NTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI1NTsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI1NSA9IF9fczJfMjU1OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjU1ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU1LCBfX3AzXzI1NSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTUsIF9fcDNfMjU1KX07IFwKICBfX3JldF8yNTUgPSB2Y21sYXFfcm90OTBfZjY0KF9fczBfMjU1LCBfX3MxXzI1NSwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjU1KTsgXAogIF9fcmV0XzI1NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lX2Y2NChfX3AwXzI1NiwgX19wMV8yNTYsIF9fcDJfMjU2LCBfX3AzXzI1NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNTYgPSBfX3AwXzI1NjsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjU2ID0gX19wMV8yNTY7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI1NiA9IF9fcDJfMjU2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI1NjsgIF9fcmV2MF8yNTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI1NiwgX19zMF8yNTYsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI1NjsgIF9fcmV2MV8yNTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI1NiwgX19zMV8yNTYsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjU2OyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjU2ID0gX19zMl8yNTY7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTYgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTYsIF9fcDNfMjU2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NiwgX19wM18yNTYpfTsgXAogIF9fcmV0XzI1NiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3Q5MF9mNjQoX19yZXYwXzI1NiwgX19yZXYxXzI1NiwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjU2KTsgXAogIF9fcmV0XzI1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI1NiwgX19yZXRfMjU2LCAxLCAwKTsgXAogIF9fcmV0XzI1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDkwX2xhbmVxX2Y2NChfX3AwXzI1NywgX19wMV8yNTcsIF9fcDJfMjU3LCBfX3AzXzI1NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yNTcgPSBfX3AwXzI1NzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjU3ID0gX19wMV8yNTc7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzI1NyA9IF9fcDJfMjU3OyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjU3OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjU3ID0gX19zMl8yNTc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTcgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTcsIF9fcDNfMjU3KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NywgX19wM18yNTcpfTsgXAogIF9fcmV0XzI1NyA9IHZjbWxhX3JvdDkwX2Y2NChfX3MwXzI1NywgX19zMV8yNTcsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI1Nyk7IFwKICBfX3JldF8yNTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mNjQoX19wMF8yNTgsIF9fcDFfMjU4LCBfX3AyXzI1OCwgX19wM18yNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjU4ID0gX19wMF8yNTg7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1OCA9IF9fcDFfMjU4OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTggPSBfX3AyXzI1ODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNTg7ICBfX3JldjJfMjU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNTgsIF9fczJfMjU4LCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1ODsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1OCA9IF9fcmV2Ml8yNTg7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTggPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTgsIF9fcDNfMjU4KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1OCwgX19wM18yNTgpfTsgXAogIF9fcmV0XzI1OCA9IHZjbWxhX3JvdDkwX2Y2NChfX3MwXzI1OCwgX19zMV8yNTgsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI1OCk7IFwKICBfX3JldF8yNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjY0KF9fcDBfMjU5LCBfX3AxXzI1OSwgX19wMl8yNTksIF9fcDNfMjU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI1OSA9IF9fcDBfMjU5OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNTkgPSBfX3AxXzI1OTsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjU5ID0gX19wMl8yNTk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNTk7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNTkgPSBfX3MyXzI1OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1OSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1OSwgX19wM18yNTkpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU5LCBfX3AzXzI1OSl9OyBcCiAgX19yZXRfMjU5ID0gdmNtbGFxX3JvdDkwX2Y2NChfX3MwXzI1OSwgX19zMV8yNTksICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI1OSk7IFwKICBfX3JldF8yNTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjY0KF9fcDBfMjYwLCBfX3AxXzI2MCwgX19wMl8yNjAsIF9fcDNfMjYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI2MCA9IF9fcDBfMjYwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNjAgPSBfX3AxXzI2MDsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjYwID0gX19wMl8yNjA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfMjYwOyAgX19yZXYwXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjYwLCBfX3MwXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfMjYwOyAgX19yZXYxXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjYwLCBfX3MxXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjYwOyAgX19yZXYyXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjYwLCBfX3MyXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNjA7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNjAgPSBfX3JldjJfMjYwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjYwID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjYwLCBfX3AzXzI2MCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNjAsIF9fcDNfMjYwKX07IFwKICBfX3JldF8yNjAgPSBfX25vc3dhcF92Y21sYXFfcm90OTBfZjY0KF9fcmV2MF8yNjAsIF9fcmV2MV8yNjAsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI2MCk7IFwKICBfX3JldF8yNjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjAsIF9fcmV0XzI2MCwgMSwgMCk7IFwKICBfX3JldF8yNjA7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9ET1RQUk9EKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZkb3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZkb3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92ZG90cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZkb3RxX3MzMihpbnQzMng0X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZkb3RxX3MzMihpbnQzMng0X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92ZG90cV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmRvdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2ZG90X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdmRvdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZkb3RfczMyKGludDMyeDJfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmRvdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2ZG90X3MzMihpbnQzMngyX3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZG90X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92ZG90X3MzMihpbnQzMngyX3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90cV9sYW5lX3UzMihfX3AwXzI2MSwgX19wMV8yNjEsIF9fcDJfMjYxLCBfX3AzXzI2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2MSA9IF9fcDBfMjYxOyBcCiAgdWludDh4MTZfdCBfX3MxXzI2MSA9IF9fcDFfMjYxOyBcCiAgdWludDh4OF90IF9fczJfMjYxID0gX19wMl8yNjE7IFwKICB1aW50MzJ4NF90IF9fcmV0XzI2MTsgXAp1aW50OHg4X3QgX19yZWludF8yNjEgPSBfX3MyXzI2MTsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzI2MSA9IHNwbGF0cV9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjYxLCBfX3AzXzI2MSk7IFwKICBfX3JldF8yNjEgPSB2ZG90cV91MzIoX19zMF8yNjEsIF9fczFfMjYxLCAqKHVpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2MSk7IFwKICBfX3JldF8yNjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lX3UzMihfX3AwXzI2MiwgX19wMV8yNjIsIF9fcDJfMjYyLCBfX3AzXzI2MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2MiA9IF9fcDBfMjYyOyBcCiAgdWludDh4MTZfdCBfX3MxXzI2MiA9IF9fcDFfMjYyOyBcCiAgdWludDh4OF90IF9fczJfMjYyID0gX19wMl8yNjI7IFwKICB1aW50MzJ4NF90IF9fcmV2MF8yNjI7ICBfX3JldjBfMjYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNjIsIF9fczBfMjYyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxXzI2MjsgIF9fcmV2MV8yNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI2MiwgX19zMV8yNjIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2Ml8yNjI7ICBfX3JldjJfMjYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNjIsIF9fczJfMjYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMjYyOyBcCnVpbnQ4eDhfdCBfX3JlaW50XzI2MiA9IF9fcmV2Ml8yNjI7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yNjIgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzI2MiwgX19wM18yNjIpOyBcCiAgX19yZXRfMjYyID0gX19ub3N3YXBfdmRvdHFfdTMyKF9fcmV2MF8yNjIsIF9fcmV2MV8yNjIsICoodWludDh4MTZfdCAqKSAmX19yZWludDFfMjYyKTsgXAogIF9fcmV0XzI2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI2MiwgX19yZXRfMjYyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RxX2xhbmVfczMyKF9fcDBfMjYzLCBfX3AxXzI2MywgX19wMl8yNjMsIF9fcDNfMjYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8yNjMgPSBfX3AwXzI2MzsgXAogIGludDh4MTZfdCBfX3MxXzI2MyA9IF9fcDFfMjYzOyBcCiAgaW50OHg4X3QgX19zMl8yNjMgPSBfX3AyXzI2MzsgXAogIGludDMyeDRfdCBfX3JldF8yNjM7IFwKaW50OHg4X3QgX19yZWludF8yNjMgPSBfX3MyXzI2MzsgXAppbnQzMng0X3QgX19yZWludDFfMjYzID0gc3BsYXRxX2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzI2MywgX19wM18yNjMpOyBcCiAgX19yZXRfMjYzID0gdmRvdHFfczMyKF9fczBfMjYzLCBfX3MxXzI2MywgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2Myk7IFwKICBfX3JldF8yNjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lX3MzMihfX3AwXzI2NCwgX19wMV8yNjQsIF9fcDJfMjY0LCBfX3AzXzI2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMjY0ID0gX19wMF8yNjQ7IFwKICBpbnQ4eDE2X3QgX19zMV8yNjQgPSBfX3AxXzI2NDsgXAogIGludDh4OF90IF9fczJfMjY0ID0gX19wMl8yNjQ7IFwKICBpbnQzMng0X3QgX19yZXYwXzI2NDsgIF9fcmV2MF8yNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2NCwgX19zMF8yNjQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2MV8yNjQ7ICBfX3JldjFfMjY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNjQsIF9fczFfMjY0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV2Ml8yNjQ7ICBfX3JldjJfMjY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNjQsIF9fczJfMjY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8yNjQ7IFwKaW50OHg4X3QgX19yZWludF8yNjQgPSBfX3JldjJfMjY0OyBcCmludDMyeDRfdCBfX3JlaW50MV8yNjQgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMjY0LCBfX3AzXzI2NCk7IFwKICBfX3JldF8yNjQgPSBfX25vc3dhcF92ZG90cV9zMzIoX19yZXYwXzI2NCwgX19yZXYxXzI2NCwgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2NCk7IFwKICBfX3JldF8yNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjQsIF9fcmV0XzI2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yNjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90X2xhbmVfdTMyKF9fcDBfMjY1LCBfX3AxXzI2NSwgX19wMl8yNjUsIF9fcDNfMjY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjY1ID0gX19wMF8yNjU7IFwKICB1aW50OHg4X3QgX19zMV8yNjUgPSBfX3AxXzI2NTsgXAogIHVpbnQ4eDhfdCBfX3MyXzI2NSA9IF9fcDJfMjY1OyBcCiAgdWludDMyeDJfdCBfX3JldF8yNjU7IFwKdWludDh4OF90IF9fcmVpbnRfMjY1ID0gX19zMl8yNjU7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yNjUgPSBzcGxhdF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjY1LCBfX3AzXzI2NSk7IFwKICBfX3JldF8yNjUgPSB2ZG90X3UzMihfX3MwXzI2NSwgX19zMV8yNjUsICoodWludDh4OF90ICopICZfX3JlaW50MV8yNjUpOyBcCiAgX19yZXRfMjY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmRvdF9sYW5lX3UzMihfX3AwXzI2NiwgX19wMV8yNjYsIF9fcDJfMjY2LCBfX3AzXzI2NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzI2NiA9IF9fcDBfMjY2OyBcCiAgdWludDh4OF90IF9fczFfMjY2ID0gX19wMV8yNjY7IFwKICB1aW50OHg4X3QgX19zMl8yNjYgPSBfX3AyXzI2NjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzI2NjsgIF9fcmV2MF8yNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2NiwgX19zMF8yNjYsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2MV8yNjY7ICBfX3JldjFfMjY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNjYsIF9fczFfMjY2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjJfMjY2OyAgX19yZXYyXzI2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjY2LCBfX3MyXzI2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI2NjsgXAp1aW50OHg4X3QgX19yZWludF8yNjYgPSBfX3JldjJfMjY2OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjY2ID0gX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzI2NiwgX19wM18yNjYpOyBcCiAgX19yZXRfMjY2ID0gX19ub3N3YXBfdmRvdF91MzIoX19yZXYwXzI2NiwgX19yZXYxXzI2NiwgKih1aW50OHg4X3QgKikgJl9fcmVpbnQxXzI2Nik7IFwKICBfX3JldF8yNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjYsIF9fcmV0XzI2NiwgMSwgMCk7IFwKICBfX3JldF8yNjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90X2xhbmVfczMyKF9fcDBfMjY3LCBfX3AxXzI2NywgX19wMl8yNjcsIF9fcDNfMjY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNjcgPSBfX3AwXzI2NzsgXAogIGludDh4OF90IF9fczFfMjY3ID0gX19wMV8yNjc7IFwKICBpbnQ4eDhfdCBfX3MyXzI2NyA9IF9fcDJfMjY3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI2NzsgXAppbnQ4eDhfdCBfX3JlaW50XzI2NyA9IF9fczJfMjY3OyBcCmludDMyeDJfdCBfX3JlaW50MV8yNjcgPSBzcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8yNjcsIF9fcDNfMjY3KTsgXAogIF9fcmV0XzI2NyA9IHZkb3RfczMyKF9fczBfMjY3LCBfX3MxXzI2NywgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjY3KTsgXAogIF9fcmV0XzI2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZkb3RfbGFuZV9zMzIoX19wMF8yNjgsIF9fcDFfMjY4LCBfX3AyXzI2OCwgX19wM18yNjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzI2OCA9IF9fcDBfMjY4OyBcCiAgaW50OHg4X3QgX19zMV8yNjggPSBfX3AxXzI2ODsgXAogIGludDh4OF90IF9fczJfMjY4ID0gX19wMl8yNjg7IFwKICBpbnQzMngyX3QgX19yZXYwXzI2ODsgIF9fcmV2MF8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2OCwgX19zMF8yNjgsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxXzI2ODsgIF9fcmV2MV8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI2OCwgX19zMV8yNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzI2ODsgIF9fcmV2Ml8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI2OCwgX19zMl8yNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI2ODsgXAppbnQ4eDhfdCBfX3JlaW50XzI2OCA9IF9fcmV2Ml8yNjg7IFwKaW50MzJ4Ml90IF9fcmVpbnQxXzI2OCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzI2OCwgX19wM18yNjgpOyBcCiAgX19yZXRfMjY4ID0gX19ub3N3YXBfdmRvdF9zMzIoX19yZXYwXzI2OCwgX19yZXYxXzI2OCwgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjY4KTsgXAogIF9fcmV0XzI2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI2OCwgX19yZXRfMjY4LCAxLCAwKTsgXAogIF9fcmV0XzI2ODsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0RPVFBST0QpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RxX2xhbmVxX3UzMihfX3AwXzI2OSwgX19wMV8yNjksIF9fcDJfMjY5LCBfX3AzXzI2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2OSA9IF9fcDBfMjY5OyBcCiAgdWludDh4MTZfdCBfX3MxXzI2OSA9IF9fcDFfMjY5OyBcCiAgdWludDh4MTZfdCBfX3MyXzI2OSA9IF9fcDJfMjY5OyBcCiAgdWludDMyeDRfdCBfX3JldF8yNjk7IFwKdWludDh4MTZfdCBfX3JlaW50XzI2OSA9IF9fczJfMjY5OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjY5ID0gc3BsYXRxX2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjY5LCBfX3AzXzI2OSk7IFwKICBfX3JldF8yNjkgPSB2ZG90cV91MzIoX19zMF8yNjksIF9fczFfMjY5LCAqKHVpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2OSk7IFwKICBfX3JldF8yNjk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lcV91MzIoX19wMF8yNzAsIF9fcDFfMjcwLCBfX3AyXzI3MCwgX19wM18yNzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF8yNzAgPSBfX3AwXzI3MDsgXAogIHVpbnQ4eDE2X3QgX19zMV8yNzAgPSBfX3AxXzI3MDsgXAogIHVpbnQ4eDE2X3QgX19zMl8yNzAgPSBfX3AyXzI3MDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzI3MDsgIF9fcmV2MF8yNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI3MCwgX19zMF8yNzAsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjFfMjcwOyAgX19yZXYxXzI3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjcwLCBfX3MxXzI3MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2Ml8yNzA7ICBfX3JldjJfMjcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNzAsIF9fczJfMjcwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMjcwOyBcCnVpbnQ4eDE2X3QgX19yZWludF8yNzAgPSBfX3JldjJfMjcwOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjcwID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjcwLCBfX3AzXzI3MCk7IFwKICBfX3JldF8yNzAgPSBfX25vc3dhcF92ZG90cV91MzIoX19yZXYwXzI3MCwgX19yZXYxXzI3MCwgKih1aW50OHgxNl90ICopICZfX3JlaW50MV8yNzApOyBcCiAgX19yZXRfMjcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjcwLCBfX3JldF8yNzAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjcwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmRvdHFfbGFuZXFfczMyKF9fcDBfMjcxLCBfX3AxXzI3MSwgX19wMl8yNzEsIF9fcDNfMjcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8yNzEgPSBfX3AwXzI3MTsgXAogIGludDh4MTZfdCBfX3MxXzI3MSA9IF9fcDFfMjcxOyBcCiAgaW50OHgxNl90IF9fczJfMjcxID0gX19wMl8yNzE7IFwKICBpbnQzMng0X3QgX19yZXRfMjcxOyBcCmludDh4MTZfdCBfX3JlaW50XzI3MSA9IF9fczJfMjcxOyBcCmludDMyeDRfdCBfX3JlaW50MV8yNzEgPSBzcGxhdHFfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzI3MSwgX19wM18yNzEpOyBcCiAgX19yZXRfMjcxID0gdmRvdHFfczMyKF9fczBfMjcxLCBfX3MxXzI3MSwgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI3MSk7IFwKICBfX3JldF8yNzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lcV9zMzIoX19wMF8yNzIsIF9fcDFfMjcyLCBfX3AyXzI3MiwgX19wM18yNzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzI3MiA9IF9fcDBfMjcyOyBcCiAgaW50OHgxNl90IF9fczFfMjcyID0gX19wMV8yNzI7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzIgPSBfX3AyXzI3MjsgXAogIGludDMyeDRfdCBfX3JldjBfMjcyOyAgX19yZXYwXzI3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjcyLCBfX3MwXzI3MiwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxXzI3MjsgIF9fcmV2MV8yNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI3MiwgX19zMV8yNzIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2Ml8yNzI7ICBfX3JldjJfMjcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNzIsIF9fczJfMjcyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8yNzI7IFwKaW50OHgxNl90IF9fcmVpbnRfMjcyID0gX19yZXYyXzI3MjsgXAppbnQzMng0X3QgX19yZWludDFfMjcyID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF8yNzIsIF9fcDNfMjcyKTsgXAogIF9fcmV0XzI3MiA9IF9fbm9zd2FwX3Zkb3RxX3MzMihfX3JldjBfMjcyLCBfX3JldjFfMjcyLCAqKGludDh4MTZfdCAqKSAmX19yZWludDFfMjcyKTsgXAogIF9fcmV0XzI3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI3MiwgX19yZXRfMjcyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI3MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RfbGFuZXFfdTMyKF9fcDBfMjczLCBfX3AxXzI3MywgX19wMl8yNzMsIF9fcDNfMjczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjczID0gX19wMF8yNzM7IFwKICB1aW50OHg4X3QgX19zMV8yNzMgPSBfX3AxXzI3MzsgXAogIHVpbnQ4eDE2X3QgX19zMl8yNzMgPSBfX3AyXzI3MzsgXAogIHVpbnQzMngyX3QgX19yZXRfMjczOyBcCnVpbnQ4eDE2X3QgX19yZWludF8yNzMgPSBfX3MyXzI3MzsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzI3MyA9IHNwbGF0X2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjczLCBfX3AzXzI3Myk7IFwKICBfX3JldF8yNzMgPSB2ZG90X3UzMihfX3MwXzI3MywgX19zMV8yNzMsICoodWludDh4OF90ICopICZfX3JlaW50MV8yNzMpOyBcCiAgX19yZXRfMjczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmRvdF9sYW5lcV91MzIoX19wMF8yNzQsIF9fcDFfMjc0LCBfX3AyXzI3NCwgX19wM18yNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF8yNzQgPSBfX3AwXzI3NDsgXAogIHVpbnQ4eDhfdCBfX3MxXzI3NCA9IF9fcDFfMjc0OyBcCiAgdWludDh4MTZfdCBfX3MyXzI3NCA9IF9fcDJfMjc0OyBcCiAgdWludDMyeDJfdCBfX3JldjBfMjc0OyAgX19yZXYwXzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjc0LCBfX3MwXzI3NCwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxXzI3NDsgIF9fcmV2MV8yNzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI3NCwgX19zMV8yNzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjJfMjc0OyAgX19yZXYyXzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjc0LCBfX3MyXzI3NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI3NDsgXAp1aW50OHgxNl90IF9fcmVpbnRfMjc0ID0gX19yZXYyXzI3NDsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzI3NCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjc0LCBfX3AzXzI3NCk7IFwKICBfX3JldF8yNzQgPSBfX25vc3dhcF92ZG90X3UzMihfX3JldjBfMjc0LCBfX3JldjFfMjc0LCAqKHVpbnQ4eDhfdCAqKSAmX19yZWludDFfMjc0KTsgXAogIF9fcmV0XzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI3NCwgX19yZXRfMjc0LCAxLCAwKTsgXAogIF9fcmV0XzI3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RfbGFuZXFfczMyKF9fcDBfMjc1LCBfX3AxXzI3NSwgX19wMl8yNzUsIF9fcDNfMjc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNzUgPSBfX3AwXzI3NTsgXAogIGludDh4OF90IF9fczFfMjc1ID0gX19wMV8yNzU7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzUgPSBfX3AyXzI3NTsgXAogIGludDMyeDJfdCBfX3JldF8yNzU7IFwKaW50OHgxNl90IF9fcmVpbnRfMjc1ID0gX19zMl8yNzU7IFwKaW50MzJ4Ml90IF9fcmVpbnQxXzI3NSA9IHNwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF8yNzUsIF9fcDNfMjc1KTsgXAogIF9fcmV0XzI3NSA9IHZkb3RfczMyKF9fczBfMjc1LCBfX3MxXzI3NSwgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjc1KTsgXAogIF9fcmV0XzI3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkb3RfbGFuZXFfczMyKF9fcDBfMjc2LCBfX3AxXzI3NiwgX19wMl8yNzYsIF9fcDNfMjc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNzYgPSBfX3AwXzI3NjsgXAogIGludDh4OF90IF9fczFfMjc2ID0gX19wMV8yNzY7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzYgPSBfX3AyXzI3NjsgXAogIGludDMyeDJfdCBfX3JldjBfMjc2OyAgX19yZXYwXzI3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjc2LCBfX3MwXzI3NiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjFfMjc2OyAgX19yZXYxXzI3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjc2LCBfX3MxXzI3NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzI3NjsgIF9fcmV2Ml8yNzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI3NiwgX19zMl8yNzYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI3NjsgXAppbnQ4eDE2X3QgX19yZWludF8yNzYgPSBfX3JldjJfMjc2OyBcCmludDMyeDJfdCBfX3JlaW50MV8yNzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfMjc2LCBfX3AzXzI3Nik7IFwKICBfX3JldF8yNzYgPSBfX25vc3dhcF92ZG90X3MzMihfX3JldjBfMjc2LCBfX3JldjFfMjc2LCAqKGludDh4OF90ICopICZfX3JlaW50MV8yNzYpOyBcCiAgX19yZXRfMjc2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjc2LCBfX3JldF8yNzYsIDEsIDApOyBcCiAgX19yZXRfMjc2OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRk1BKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Zm1hcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1hcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbWFxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgX19wMSwgKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZmbWFxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMzIoX19yZXYwLCBfX3JldjEsIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gdmZtYV9mMzIoX19wMCwgX19wMSwgKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWFfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFfZjMyKF9fcmV2MCwgX19yZXYxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMzIoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Zm1zX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hX2YzMihfX3AwLCAtX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtc19mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMzIoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X0ZNTCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmZtbGFscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxhbHFfaGlnaF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2hpZ2hfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9oaWdoX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Zm1sYWxxX2hpZ2hfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9oaWdoX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxhbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxhbF9oaWdoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2hpZ2hfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2hpZ2hfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2hpZ2hfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2xvd19mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxxX2xvd192KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2xvd19mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxxX2xvd192KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtbGFscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9sb3dfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2xvd19mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxfbG93X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2xvd19mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxfbG93X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWxhbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2xvd192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbWxzbHFfaGlnaF9mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sc2xxX2hpZ2hfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfaGlnaF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtbHNscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfaGlnaF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Zm1sc2xfaGlnaF9mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sc2xfaGlnaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9oaWdoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWxzbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9oaWdoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbHNscV9sb3dfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbHNscV9sb3dfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZmbWxzbHFfbG93X2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfbG93X3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbHNsX2xvd192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbHNsX2xvd192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCBfX25vc3dhcF92Zm1sc2xfbG93X2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9sb3dfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2YWJkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmFiZHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmFiZF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2YWJkX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmFic3FfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2YWJzcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZhYnNfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2YWJzX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmFkZHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZhZGRxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZhZGRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZhZGRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmJzbHFfZjE2KHVpbnQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2YnNscV9mMTYodWludDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZic2xfZjE2KHVpbnQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmJzbF9mMTYodWludDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjYWdlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjYWdlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNhZ2VfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2FnZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZ2VfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNhZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNhZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2FndF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjYWd0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2FsZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2FsZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjYWxlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNhbGVfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjYWx0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjYWx0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNhbHRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2FsdF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhbHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZXF6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXF6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2dlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2VxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNnZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNnZXpxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2V6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlel9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNnZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNnZXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2d0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2d0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2d0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3R6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2d0enFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNndHpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ3R6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2xlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGVxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsZXpxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGV6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlel9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHRxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2x0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHR6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0enFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsdHpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHR6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmN2dHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjE2X3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmN2dHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mMTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y3Z0cV9mMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjdnRxX2YxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YxNl92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmN2dF9mMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjE2X3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mMTZfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX2YxNl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fZjE2X3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfbl9mMTZfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0X25fZjE2X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl9mMTZfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dF9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX3MxNl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczE2X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fczE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl9zMTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fczE2X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fczE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fczE2X3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fdTE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3UxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX3UxNl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3UxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl91MTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl91MTZfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fdTE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl91MTZfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0cV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zMTZfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmN2dHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfczE2X3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZjdnRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9zMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y3Z0cV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3UxNl92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmN2dHFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRfdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3UxNl92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y3Z0X3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF91MTZfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0YXFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y3Z0YXFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y3Z0YV9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YV9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRhX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3MxNl92KChpbnQ4eDhfdClfX3JldjAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjdnRhcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MTZfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjdnRhcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRhX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTE2X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjdnRhX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTE2X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmN2dG1xX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMTZfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmN2dG1xX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMTZfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmN2dG1fczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dG1fczE2X3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y3Z0bV9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV9zMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y3Z0bXFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTE2X3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y3Z0bXFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTE2X3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y3Z0bV91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UxNl92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y3Z0bV91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UxNl92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjdnRucV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczE2X3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZjdnRucV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczE2X3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZjdnRuX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3MxNl92KChpbnQ4eDhfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmN2dG5fczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dG5fczE2X3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmN2dG5xX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UxNl92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmN2dG5xX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UxNl92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmN2dG5fdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MTZfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmN2dG5fdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MTZfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0cHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y3Z0cHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y3Z0cF9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cF9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRwX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3MxNl92KChpbnQ4eDhfdClfX3JldjAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjdnRwcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MTZfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjdnRwcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRwX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTE2X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjdnRwX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTE2X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmZtYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmZtYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3ZmbWFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZmbWFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZmbWFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Zm1hX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Zm1zcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmZtYXFfZjE2KF9fcDAsIC1fX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Zm1zcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYXFfZjE2KF9fcmV2MCwgLV9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmZtc19mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmZtYV9mMTYoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZmbXNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFfZjE2KF9fcmV2MCwgLV9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3Qgdm1heHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZtYXhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm1heF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2bWlucV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2bWluX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZtaW5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bXVscV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3Qgdm11bHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm11bF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm11bF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX2YxNihfX3AwXzI3NywgX19wMV8yNzcsIF9fcDJfMjc3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI3NyA9IF9fcDBfMjc3OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzcgPSBfX3AxXzI3NzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI3NzsgXAogIF9fcmV0XzI3NyA9IF9fczBfMjc3ICogc3BsYXRxX2xhbmVfZjE2KF9fczFfMjc3LCBfX3AyXzI3Nyk7IFwKICBfX3JldF8yNzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lX2YxNihfX3AwXzI3OCwgX19wMV8yNzgsIF9fcDJfMjc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI3OCA9IF9fcDBfMjc4OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzggPSBfX3AxXzI3ODsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yNzg7ICBfX3JldjBfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNzgsIF9fczBfMjc4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yNzg7ICBfX3JldjFfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNzgsIF9fczFfMjc4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI3ODsgXAogIF9fcmV0XzI3OCA9IF9fcmV2MF8yNzggKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19yZXYxXzI3OCwgX19wMl8yNzgpOyBcCiAgX19yZXRfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjc4LCBfX3JldF8yNzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX2YxNihfX3AwXzI3OSwgX19wMV8yNzksIF9fcDJfMjc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzI3OSA9IF9fcDBfMjc5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzkgPSBfX3AxXzI3OTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI3OTsgXAogIF9fcmV0XzI3OSA9IF9fczBfMjc5ICogc3BsYXRfbGFuZV9mMTYoX19zMV8yNzksIF9fcDJfMjc5KTsgXAogIF9fcmV0XzI3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZV9mMTYoX19wMF8yODAsIF9fcDFfMjgwLCBfX3AyXzI4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODAgPSBfX3AwXzI4MDsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjgwID0gX19wMV8yODA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjgwOyAgX19yZXYwXzI4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjgwLCBfX3MwXzI4MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjgwOyAgX19yZXYxXzI4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjgwLCBfX3MxXzI4MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yODA7IFwKICBfX3JldF8yODAgPSBfX3JldjBfMjgwICogX19ub3N3YXBfc3BsYXRfbGFuZV9mMTYoX19yZXYxXzI4MCwgX19wMl8yODApOyBcCiAgX19yZXRfMjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjgwLCBfX3JldF8yODAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gX19zMCAqIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX25fZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fczAgKiAoZmxvYXQxNng0X3QpIHtfX3MxLCBfX3MxLCBfX3MxLCBfX3MxfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDE2eDRfdCkge19fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bmVncV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3Qgdm5lZ3FfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZuZWdfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZuZWdfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZwYWRkX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cGFkZF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cG1heF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnBtYXhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtaW5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZwbWluX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyZWNwZV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJlY3BlX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cmVjcHNxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwc3FfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cmVjcHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cmVjcHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZyZXY2NHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZXY2NHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJldjY0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cmV2NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJzcXJ0ZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cnNxcnRlcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyc3FydGVfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZV92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cnNxcnRlX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJzcXJ0c3FfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyc3FydHNxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyc3FydHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJzcXJ0c19mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZzdWJxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2c3VicV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2c3ViX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2c3ViX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OHgyX3QgdnRybnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OHgyX3QgdnRybnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDR4Ml90IHZ0cm5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0eDJfdCB2dHJuX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDh4Ml90IHZ1enBxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDh4Ml90IHZ1enBxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0eDJfdCB2dXpwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NHgyX3QgdnV6cF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4eDJfdCB2emlwcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4eDJfdCB2emlwcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NHgyX3QgdnppcF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDR4Ml90IHZ6aXBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZQMTZfVkVDVE9SX0FSSVRITUVUSUMpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZkaXZxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2ZGl2cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2ZGl2X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2ZGl2X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2YxNigoZmxvYXQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfZjE2KChmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2YxNigoZmxvYXQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lcV9mMTYoKGZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFoX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1haF9sYW5lX2YxNihfX3MwLCBfX3MxLCAoZmxvYXQxNng0X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFoX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFoX2xhbmVfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDRfdClfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Zm1haF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmZtYWhfbGFuZV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4NF90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDhfdClfX3MyLCBfX3AzLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIF9fcDMsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYXFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIF9fcDMsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1haF9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFoX2xhbmVxX2YxNihfX3MwLCBfX3MxLCAoZmxvYXQxNng4X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1haF9sYW5lcV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4OF90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmZtYWhfbGFuZXFfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDhfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbl9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSB2Zm1hcV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4OF90KSB7X19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMn0pOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMTYoX19yZXYwLCBfX3JldjEsIChmbG9hdDE2eDhfdCkge19fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IHZmbWFfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDRfdCkge19fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92Zm1hX2YxNihfX3JldjAsIF9fcmV2MSwgKGZsb2F0MTZ4NF90KSB7X19zMiwgX19zMiwgX19zMiwgX19zMn0pOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zaF9sYW5lX2YxNihfX3AwXzI4MSwgX19wMV8yODEsIF9fcDJfMjgxLCBfX3AzXzI4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczBfMjgxID0gX19wMF8yODE7IFwKICBmbG9hdDE2X3QgX19zMV8yODEgPSBfX3AxXzI4MTsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjgxID0gX19wMl8yODE7IFwKICBmbG9hdDE2X3QgX19yZXRfMjgxOyBcCiAgX19yZXRfMjgxID0gdmZtYWhfbGFuZV9mMTYoX19zMF8yODEsIC1fX3MxXzI4MSwgX19zMl8yODEsIF9fcDNfMjgxKTsgXAogIF9fcmV0XzI4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNoX2xhbmVfZjE2KF9fcDBfMjgyLCBfX3AxXzI4MiwgX19wMl8yODIsIF9fcDNfMjgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF8yODIgPSBfX3AwXzI4MjsgXAogIGZsb2F0MTZfdCBfX3MxXzI4MiA9IF9fcDFfMjgyOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yODIgPSBfX3AyXzI4MjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yODI7ICBfX3JldjJfMjgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yODIsIF9fczJfMjgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF8yODI7IFwKICBfX3JldF8yODIgPSBfX25vc3dhcF92Zm1haF9sYW5lX2YxNihfX3MwXzI4MiwgLV9fczFfMjgyLCBfX3JldjJfMjgyLCBfX3AzXzI4Mik7IFwKICBfX3JldF8yODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zcV9sYW5lX2YxNihfX3AwXzI4MywgX19wMV8yODMsIF9fcDJfMjgzLCBfX3AzXzI4MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yODMgPSBfX3AwXzI4MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjgzID0gX19wMV8yODM7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4MyA9IF9fcDJfMjgzOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjgzOyBcCiAgX19yZXRfMjgzID0gdmZtYXFfbGFuZV9mMTYoX19zMF8yODMsIC1fX3MxXzI4MywgX19zMl8yODMsIF9fcDNfMjgzKTsgXAogIF9fcmV0XzI4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVfZjE2KF9fcDBfMjg0LCBfX3AxXzI4NCwgX19wMl8yODQsIF9fcDNfMjg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI4NCA9IF9fcDBfMjg0OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yODQgPSBfX3AxXzI4NDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjg0ID0gX19wMl8yODQ7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjg0OyAgX19yZXYwXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjg0LCBfX3MwXzI4NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjg0OyAgX19yZXYxXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjg0LCBfX3MxXzI4NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjg0OyAgX19yZXYyXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjg0LCBfX3MyXzI4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yODQ7IFwKICBfX3JldF8yODQgPSBfX25vc3dhcF92Zm1hcV9sYW5lX2YxNihfX3JldjBfMjg0LCAtX19yZXYxXzI4NCwgX19yZXYyXzI4NCwgX19wM18yODQpOyBcCiAgX19yZXRfMjg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjg0LCBfX3JldF8yODQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19sYW5lX2YxNihfX3AwXzI4NSwgX19wMV8yODUsIF9fcDJfMjg1LCBfX3AzXzI4NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODUgPSBfX3AwXzI4NTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjg1ID0gX19wMV8yODU7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4NSA9IF9fcDJfMjg1OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjg1OyBcCiAgX19yZXRfMjg1ID0gdmZtYV9sYW5lX2YxNihfX3MwXzI4NSwgLV9fczFfMjg1LCBfX3MyXzI4NSwgX19wM18yODUpOyBcCiAgX19yZXRfMjg1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc19sYW5lX2YxNihfX3AwXzI4NiwgX19wMV8yODYsIF9fcDJfMjg2LCBfX3AzXzI4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODYgPSBfX3AwXzI4NjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjg2ID0gX19wMV8yODY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4NiA9IF9fcDJfMjg2OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzI4NjsgIF9fcmV2MF8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI4NiwgX19zMF8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzI4NjsgIF9fcmV2MV8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI4NiwgX19zMV8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzI4NjsgIF9fcmV2Ml8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI4NiwgX19zMl8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjg2OyBcCiAgX19yZXRfMjg2ID0gX19ub3N3YXBfdmZtYV9sYW5lX2YxNihfX3JldjBfMjg2LCAtX19yZXYxXzI4NiwgX19yZXYyXzI4NiwgX19wM18yODYpOyBcCiAgX19yZXRfMjg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjg2LCBfX3JldF8yODYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc2hfbGFuZXFfZjE2KF9fcDBfMjg3LCBfX3AxXzI4NywgX19wMl8yODcsIF9fcDNfMjg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF8yODcgPSBfX3AwXzI4NzsgXAogIGZsb2F0MTZfdCBfX3MxXzI4NyA9IF9fcDFfMjg3OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yODcgPSBfX3AyXzI4NzsgXAogIGZsb2F0MTZfdCBfX3JldF8yODc7IFwKICBfX3JldF8yODcgPSB2Zm1haF9sYW5lcV9mMTYoX19zMF8yODcsIC1fX3MxXzI4NywgX19zMl8yODcsIF9fcDNfMjg3KTsgXAogIF9fcmV0XzI4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNoX2xhbmVxX2YxNihfX3AwXzI4OCwgX19wMV8yODgsIF9fcDJfMjg4LCBfX3AzXzI4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczBfMjg4ID0gX19wMF8yODg7IFwKICBmbG9hdDE2X3QgX19zMV8yODggPSBfX3AxXzI4ODsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjg4ID0gX19wMl8yODg7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjg4OyAgX19yZXYyXzI4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjg4LCBfX3MyXzI4OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfMjg4OyBcCiAgX19yZXRfMjg4ID0gX19ub3N3YXBfdmZtYWhfbGFuZXFfZjE2KF9fczBfMjg4LCAtX19zMV8yODgsIF9fcmV2Ml8yODgsIF9fcDNfMjg4KTsgXAogIF9fcmV0XzI4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVxX2YxNihfX3AwXzI4OSwgX19wMV8yODksIF9fcDJfMjg5LCBfX3AzXzI4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yODkgPSBfX3AwXzI4OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjg5ID0gX19wMV8yODk7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzI4OSA9IF9fcDJfMjg5OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjg5OyBcCiAgX19yZXRfMjg5ID0gdmZtYXFfbGFuZXFfZjE2KF9fczBfMjg5LCAtX19zMV8yODksIF9fczJfMjg5LCBfX3AzXzI4OSk7IFwKICBfX3JldF8yODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zcV9sYW5lcV9mMTYoX19wMF8yOTAsIF9fcDFfMjkwLCBfX3AyXzI5MCwgX19wM18yOTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjkwID0gX19wMF8yOTA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzI5MCA9IF9fcDFfMjkwOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yOTAgPSBfX3AyXzI5MDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yOTA7ICBfX3JldjBfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yOTAsIF9fczBfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yOTA7ICBfX3JldjFfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yOTAsIF9fczFfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml8yOTA7ICBfX3JldjJfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yOTAsIF9fczJfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5MDsgXAogIF9fcmV0XzI5MCA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YxNihfX3JldjBfMjkwLCAtX19yZXYxXzI5MCwgX19yZXYyXzI5MCwgX19wM18yOTApOyBcCiAgX19yZXRfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjkwLCBfX3JldF8yOTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19sYW5lcV9mMTYoX19wMF8yOTEsIF9fcDFfMjkxLCBfX3AyXzI5MSwgX19wM18yOTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjkxID0gX19wMF8yOTE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzI5MSA9IF9fcDFfMjkxOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yOTEgPSBfX3AyXzI5MTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI5MTsgXAogIF9fcmV0XzI5MSA9IHZmbWFfbGFuZXFfZjE2KF9fczBfMjkxLCAtX19zMV8yOTEsIF9fczJfMjkxLCBfX3AzXzI5MSk7IFwKICBfX3JldF8yOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zX2xhbmVxX2YxNihfX3AwXzI5MiwgX19wMV8yOTIsIF9fcDJfMjkyLCBfX3AzXzI5MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTIgPSBfX3AwXzI5MjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjkyID0gX19wMV8yOTI7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzI5MiA9IF9fcDJfMjkyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzI5MjsgIF9fcmV2MF8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5MiwgX19zMF8yOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzI5MjsgIF9fcmV2MV8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI5MiwgX19zMV8yOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzI5MjsgIF9fcmV2Ml8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI5MiwgX19zMl8yOTIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjkyOyBcCiAgX19yZXRfMjkyID0gX19ub3N3YXBfdmZtYV9sYW5lcV9mMTYoX19yZXYwXzI5MiwgLV9fcmV2MV8yOTIsIF9fcmV2Ml8yOTIsIF9fcDNfMjkyKTsgXAogIF9fcmV0XzI5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5MiwgX19yZXRfMjkyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX25fZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gdmZtYXFfZjE2KF9fczAsIC1fX3MxLCAoZmxvYXQxNng4X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX25fZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFxX2YxNihfX3JldjAsIC1fX3JldjEsIChmbG9hdDE2eDhfdCkge19fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IHZmbWFfZjE2KF9fczAsIC1fX3MxLCAoZmxvYXQxNng0X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbl9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMTYoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQxNng0X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtYXhubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjE2KChpbnQ4eDE2X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtYXhubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWF4bm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heG5tdl9mMTYoKGludDh4OF90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWF4bm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12X2YxNigoaW50OHg4X3QpX19yZXYwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1heHZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heHZxX2YxNigoaW50OHgxNl90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWF4dnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWF4dl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X2YxNigoaW50OHg4X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtYXh2X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9mMTYoKGludDh4OF90KV9fcmV2MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtaW5ubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbm5tdnFfZjE2KChpbnQ4eDE2X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtaW5ubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWlubm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbm5tdl9mMTYoKGludDh4OF90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWlubm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12X2YxNigoaW50OHg4X3QpX19yZXYwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1pbnZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2YxNigoaW50OHgxNl90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWludnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWludl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X2YxNigoaW50OHg4X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtaW52X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9mMTYoKGludDh4OF90KV9fcmV2MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVxX2YxNihfX3AwXzI5MywgX19wMV8yOTMsIF9fcDJfMjkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5MyA9IF9fcDBfMjkzOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yOTMgPSBfX3AxXzI5MzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5MzsgXAogIF9fcmV0XzI5MyA9IF9fczBfMjkzICogc3BsYXRxX2xhbmVxX2YxNihfX3MxXzI5MywgX19wMl8yOTMpOyBcCiAgX19yZXRfMjkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZXFfZjE2KF9fcDBfMjk0LCBfX3AxXzI5NCwgX19wMl8yOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjk0ID0gX19wMF8yOTQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzI5NCA9IF9fcDFfMjk0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzI5NDsgIF9fcmV2MF8yOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5NCwgX19zMF8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzI5NDsgIF9fcmV2MV8yOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI5NCwgX19zMV8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjk0OyBcCiAgX19yZXRfMjk0ID0gX19yZXYwXzI5NCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mMTYoX19yZXYxXzI5NCwgX19wMl8yOTQpOyBcCiAgX19yZXRfMjk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjk0LCBfX3JldF8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV9mMTYoX19wMF8yOTUsIF9fcDFfMjk1LCBfX3AyXzI5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTUgPSBfX3AwXzI5NTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjk1ID0gX19wMV8yOTU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yOTU7IFwKICBfX3JldF8yOTUgPSBfX3MwXzI5NSAqIHNwbGF0X2xhbmVxX2YxNihfX3MxXzI5NSwgX19wMl8yOTUpOyBcCiAgX19yZXRfMjk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lcV9mMTYoX19wMF8yOTYsIF9fcDFfMjk2LCBfX3AyXzI5NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTYgPSBfX3AwXzI5NjsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjk2ID0gX19wMV8yOTY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjk2OyAgX19yZXYwXzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjk2LCBfX3MwXzI5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjk2OyAgX19yZXYxXzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjk2LCBfX3MxXzI5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yOTY7IFwKICBfX3JldF8yOTYgPSBfX3JldjBfMjk2ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfZjE2KF9fcmV2MV8yOTYsIF9fcDJfMjk2KTsgXAogIF9fcmV0XzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5NiwgX19yZXRfMjk2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI5NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZtdWx4cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtdWx4cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgX19ub3N3YXBfdm11bHhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm11bHhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZtdWx4X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IF9fbm9zd2FwX3ZtdWx4X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseGhfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4aF9sYW5lX2YxNihfX3MwLCAoZmxvYXQxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4aF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bXVseGhfbGFuZV9mMTYoX19zMCwgKGZsb2F0MTZ4NF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lX2YxNihfX3AwXzI5NywgX19wMV8yOTcsIF9fcDJfMjk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5NyA9IF9fcDBfMjk3OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTcgPSBfX3AxXzI5NzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5NzsgXAogIF9fcmV0XzI5NyA9IHZtdWx4cV9mMTYoX19zMF8yOTcsIHNwbGF0cV9sYW5lX2YxNihfX3MxXzI5NywgX19wMl8yOTcpKTsgXAogIF9fcmV0XzI5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lX2YxNihfX3AwXzI5OCwgX19wMV8yOTgsIF9fcDJfMjk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5OCA9IF9fcDBfMjk4OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTggPSBfX3AxXzI5ODsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yOTg7ICBfX3JldjBfMjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yOTgsIF9fczBfMjk4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yOTg7ICBfX3JldjFfMjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yOTgsIF9fczFfMjk4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5ODsgXAogIF9fcmV0XzI5OCA9IF9fbm9zd2FwX3ZtdWx4cV9mMTYoX19yZXYwXzI5OCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfZjE2KF9fcmV2MV8yOTgsIF9fcDJfMjk4KSk7IFwKICBfX3JldF8yOTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yOTgsIF9fcmV0XzI5OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yOTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseF9sYW5lX2YxNihfX3AwXzI5OSwgX19wMV8yOTksIF9fcDJfMjk5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzI5OSA9IF9fcDBfMjk5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTkgPSBfX3AxXzI5OTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI5OTsgXAogIF9fcmV0XzI5OSA9IHZtdWx4X2YxNihfX3MwXzI5OSwgc3BsYXRfbGFuZV9mMTYoX19zMV8yOTksIF9fcDJfMjk5KSk7IFwKICBfX3JldF8yOTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseF9sYW5lX2YxNihfX3AwXzMwMCwgX19wMV8zMDAsIF9fcDJfMzAwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzMwMCA9IF9fcDBfMzAwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8zMDAgPSBfX3AxXzMwMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8zMDA7ICBfX3JldjBfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDAsIF9fczBfMzAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8zMDA7ICBfX3JldjFfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMDAsIF9fczFfMzAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzMwMDsgXAogIF9fcmV0XzMwMCA9IF9fbm9zd2FwX3ZtdWx4X2YxNihfX3JldjBfMzAwLCBfX25vc3dhcF9zcGxhdF9sYW5lX2YxNihfX3JldjFfMzAwLCBfX3AyXzMwMCkpOyBcCiAgX19yZXRfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzAwLCBfX3JldF8zMDAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzAwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm11bHhoX2xhbmVxX2YxNihfX3MwLCAoZmxvYXQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4aF9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm11bHhoX2xhbmVxX2YxNihfX3MwLCAoZmxvYXQxNng4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhxX2xhbmVxX2YxNihfX3AwXzMwMSwgX19wMV8zMDEsIF9fcDJfMzAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzMwMSA9IF9fcDBfMzAxOyBcCiAgZmxvYXQxNng4X3QgX19zMV8zMDEgPSBfX3AxXzMwMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzMwMTsgXAogIF9fcmV0XzMwMSA9IHZtdWx4cV9mMTYoX19zMF8zMDEsIHNwbGF0cV9sYW5lcV9mMTYoX19zMV8zMDEsIF9fcDJfMzAxKSk7IFwKICBfX3JldF8zMDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseHFfbGFuZXFfZjE2KF9fcDBfMzAyLCBfX3AxXzMwMiwgX19wMl8zMDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMzAyID0gX19wMF8zMDI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzMwMiA9IF9fcDFfMzAyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzMwMjsgIF9fcmV2MF8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMwMiwgX19zMF8zMDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzMwMjsgIF9fcmV2MV8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwMiwgX19zMV8zMDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMzAyOyBcCiAgX19yZXRfMzAyID0gX19ub3N3YXBfdm11bHhxX2YxNihfX3JldjBfMzAyLCBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjE2KF9fcmV2MV8zMDIsIF9fcDJfMzAyKSk7IFwKICBfX3JldF8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMDIsIF9fcmV0XzMwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseF9sYW5lcV9mMTYoX19wMF8zMDMsIF9fcDFfMzAzLCBfX3AyXzMwMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8zMDMgPSBfX3AwXzMwMzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMzAzID0gX19wMV8zMDM7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8zMDM7IFwKICBfX3JldF8zMDMgPSB2bXVseF9mMTYoX19zMF8zMDMsIHNwbGF0X2xhbmVxX2YxNihfX3MxXzMwMywgX19wMl8zMDMpKTsgXAogIF9fcmV0XzMwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4X2xhbmVxX2YxNihfX3AwXzMwNCwgX19wMV8zMDQsIF9fcDJfMzA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzMwNCA9IF9fcDBfMzA0OyBcCiAgZmxvYXQxNng4X3QgX19zMV8zMDQgPSBfX3AxXzMwNDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8zMDQ7ICBfX3JldjBfMzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDQsIF9fczBfMzA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8zMDQ7ICBfX3JldjFfMzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMDQsIF9fczFfMzA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzMwNDsgXAogIF9fcmV0XzMwNCA9IF9fbm9zd2FwX3ZtdWx4X2YxNihfX3JldjBfMzA0LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9mMTYoX19yZXYxXzMwNCwgX19wMl8zMDQpKTsgXAogIF9fcmV0XzMwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwNCwgX19yZXRfMzA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMwNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSB2bXVseHFfZjE2KF9fczAsIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX25fZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gX19ub3N3YXBfdm11bHhxX2YxNihfX3JldjAsIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gdm11bHhfZjE2KF9fczAsIChmbG9hdDE2eDRfdCkge19fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92bXVseF9mMTYoX19yZXYwLCAoZmxvYXQxNng0X3QpIHtfX3MxLCBfX3MxLCBfX3MxLCBfX3MxfSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZwYWRkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZwYWRkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cG1heG5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtYXhubV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cG1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cG1pbm5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5ubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtaW5ubV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cG1pbm5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJuZGlxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRpcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cm5kaV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cm5kaV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2c3FydHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnNxcnRxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnNxcnRxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZzcXJ0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0X3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZzcXJ0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0X3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ0cm4xcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnRybjFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZ0cm4xX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2dHJuMV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2dHJuMnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZ0cm4ycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2dHJuMl9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnRybjJfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnV6cDFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2dXpwMXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnV6cDFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ1enAxX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ1enAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnV6cDJxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZ1enAyX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2dXpwMl9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2emlwMXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnppcDFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnppcDFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ6aXAxX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMSwgNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ6aXAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZ6aXAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnppcDJfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ6aXAyX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX01BVE1VTF9JTlQ4KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbWxhcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1tbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1tbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW1sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bW1sYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW1sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtbWxhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1c2RvdHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVzZG90cV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3Z1c2RvdHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXNkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1c2RvdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXNkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2dXNkb3RxX2xhbmVfczMyKF9fcDBfMzA1LCBfX3AxXzMwNSwgX19wMl8zMDUsIF9fcDNfMzA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMDUgPSBfX3AwXzMwNTsgXAogIHVpbnQ4eDE2X3QgX19zMV8zMDUgPSBfX3AxXzMwNTsgXAogIGludDh4OF90IF9fczJfMzA1ID0gX19wMl8zMDU7IFwKICBpbnQzMng0X3QgX19yZXRfMzA1OyBcCmludDh4OF90IF9fcmVpbnRfMzA1ID0gX19zMl8zMDU7IFwKICBfX3JldF8zMDUgPSB2dXNkb3RxX3MzMihfX3MwXzMwNSwgX19zMV8zMDUsIChpbnQ4eDE2X3QpKHNwbGF0cV9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8zMDUsIF9fcDNfMzA1KSkpOyBcCiAgX19yZXRfMzA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90cV9sYW5lX3MzMihfX3AwXzMwNiwgX19wMV8zMDYsIF9fcDJfMzA2LCBfX3AzXzMwNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzA2ID0gX19wMF8zMDY7IFwKICB1aW50OHgxNl90IF9fczFfMzA2ID0gX19wMV8zMDY7IFwKICBpbnQ4eDhfdCBfX3MyXzMwNiA9IF9fcDJfMzA2OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8zMDY7ICBfX3JldjBfMzA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDYsIF9fczBfMzA2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxXzMwNjsgIF9fcmV2MV8zMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwNiwgX19zMV8zMDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzMwNjsgIF9fcmV2Ml8zMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMwNiwgX19zMl8zMDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzMwNjsgXAppbnQ4eDhfdCBfX3JlaW50XzMwNiA9IF9fcmV2Ml8zMDY7IFwKICBfX3JldF8zMDYgPSBfX25vc3dhcF92dXNkb3RxX3MzMihfX3JldjBfMzA2LCBfX3JldjFfMzA2LCAoaW50OHgxNl90KShfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMzA2LCBfX3AzXzMwNikpKTsgXAogIF9fcmV0XzMwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwNiwgX19yZXRfMzA2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ1c2RvdF9sYW5lX3MzMihfX3AwXzMwNywgX19wMV8zMDcsIF9fcDJfMzA3LCBfX3AzXzMwNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzA3ID0gX19wMF8zMDc7IFwKICB1aW50OHg4X3QgX19zMV8zMDcgPSBfX3AxXzMwNzsgXAogIGludDh4OF90IF9fczJfMzA3ID0gX19wMl8zMDc7IFwKICBpbnQzMngyX3QgX19yZXRfMzA3OyBcCmludDh4OF90IF9fcmVpbnRfMzA3ID0gX19zMl8zMDc7IFwKICBfX3JldF8zMDcgPSB2dXNkb3RfczMyKF9fczBfMzA3LCBfX3MxXzMwNywgKGludDh4OF90KShzcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8zMDcsIF9fcDNfMzA3KSkpOyBcCiAgX19yZXRfMzA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90X2xhbmVfczMyKF9fcDBfMzA4LCBfX3AxXzMwOCwgX19wMl8zMDgsIF9fcDNfMzA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMDggPSBfX3AwXzMwODsgXAogIHVpbnQ4eDhfdCBfX3MxXzMwOCA9IF9fcDFfMzA4OyBcCiAgaW50OHg4X3QgX19zMl8zMDggPSBfX3AyXzMwODsgXAogIGludDMyeDJfdCBfX3JldjBfMzA4OyAgX19yZXYwXzMwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzA4LCBfX3MwXzMwOCwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxXzMwODsgIF9fcmV2MV8zMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwOCwgX19zMV8zMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzMwODsgIF9fcmV2Ml8zMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMwOCwgX19zMl8zMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMwODsgXAppbnQ4eDhfdCBfX3JlaW50XzMwOCA9IF9fcmV2Ml8zMDg7IFwKICBfX3JldF8zMDggPSBfX25vc3dhcF92dXNkb3RfczMyKF9fcmV2MF8zMDgsIF9fcmV2MV8zMDgsIChpbnQ4eDhfdCkoX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMzA4LCBfX3AzXzMwOCkpKTsgXAogIF9fcmV0XzMwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwOCwgX19yZXRfMzA4LCAxLCAwKTsgXAogIF9fcmV0XzMwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2dXNtbWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dXNtbWxhcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVzbW1sYXFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z1c21tbGFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9RUkRNWCkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxcmRtbGFocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxYWRkcV9zMzIoX19wMCwgdnFyZG11bGhxX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxcmRtbGFocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxYWRkcV9zMzIoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbWxhaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZHFfczE2KF9fcDAsIHZxcmRtdWxocV9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cXJkbWxhaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWFkZHFfczE2KF9fcmV2MCwgX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFyZG1sYWhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZF9zMzIoX19wMCwgdnFyZG11bGhfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyZG1sYWhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWFkZF9zMzIoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtbGFoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFhZGRfczE2KF9fcDAsIHZxcmRtdWxoX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcmRtbGFoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFhZGRfczE2KF9fcmV2MCwgX19ub3N3YXBfdnFyZG11bGhfczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbGFocV9sYW5lX3MzMihfX3AwXzMwOSwgX19wMV8zMDksIF9fcDJfMzA5LCBfX3AzXzMwOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzA5ID0gX19wMF8zMDk7IFwKICBpbnQzMng0X3QgX19zMV8zMDkgPSBfX3AxXzMwOTsgXAogIGludDMyeDJfdCBfX3MyXzMwOSA9IF9fcDJfMzA5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzMwOTsgXAogIF9fcmV0XzMwOSA9IHZxYWRkcV9zMzIoX19zMF8zMDksIHZxcmRtdWxocV9zMzIoX19zMV8zMDksIHNwbGF0cV9sYW5lX3MzMihfX3MyXzMwOSwgX19wM18zMDkpKSk7IFwKICBfX3JldF8zMDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZV9zMzIoX19wMF8zMTAsIF9fcDFfMzEwLCBfX3AyXzMxMCwgX19wM18zMTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMxMCA9IF9fcDBfMzEwOyBcCiAgaW50MzJ4NF90IF9fczFfMzEwID0gX19wMV8zMTA7IFwKICBpbnQzMngyX3QgX19zMl8zMTAgPSBfX3AyXzMxMDsgXAogIGludDMyeDRfdCBfX3JldjBfMzEwOyAgX19yZXYwXzMxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzEwLCBfX3MwXzMxMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzMxMDsgIF9fcmV2MV8zMTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMxMCwgX19zMV8zMTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml8zMTA7ICBfX3JldjJfMzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMTAsIF9fczJfMzEwLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8zMTA7IFwKICBfX3JldF8zMTAgPSBfX25vc3dhcF92cWFkZHFfczMyKF9fcmV2MF8zMTAsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxXzMxMCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2Ml8zMTAsIF9fcDNfMzEwKSkpOyBcCiAgX19yZXRfMzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzEwLCBfX3JldF8zMTAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhxX2xhbmVfczE2KF9fcDBfMzExLCBfX3AxXzMxMSwgX19wMl8zMTEsIF9fcDNfMzExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMTEgPSBfX3AwXzMxMTsgXAogIGludDE2eDhfdCBfX3MxXzMxMSA9IF9fcDFfMzExOyBcCiAgaW50MTZ4NF90IF9fczJfMzExID0gX19wMl8zMTE7IFwKICBpbnQxNng4X3QgX19yZXRfMzExOyBcCiAgX19yZXRfMzExID0gdnFhZGRxX3MxNihfX3MwXzMxMSwgdnFyZG11bGhxX3MxNihfX3MxXzMxMSwgc3BsYXRxX2xhbmVfczE2KF9fczJfMzExLCBfX3AzXzMxMSkpKTsgXAogIF9fcmV0XzMxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFocV9sYW5lX3MxNihfX3AwXzMxMiwgX19wMV8zMTIsIF9fcDJfMzEyLCBfX3AzXzMxMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMzEyID0gX19wMF8zMTI7IFwKICBpbnQxNng4X3QgX19zMV8zMTIgPSBfX3AxXzMxMjsgXAogIGludDE2eDRfdCBfX3MyXzMxMiA9IF9fcDJfMzEyOyBcCiAgaW50MTZ4OF90IF9fcmV2MF8zMTI7ICBfX3JldjBfMzEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTIsIF9fczBfMzEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfMzEyOyAgX19yZXYxXzMxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzEyLCBfX3MxXzMxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzMxMjsgIF9fcmV2Ml8zMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxMiwgX19zMl8zMTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzMxMjsgXAogIF9fcmV0XzMxMiA9IF9fbm9zd2FwX3ZxYWRkcV9zMTYoX19yZXYwXzMxMiwgX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjFfMzEyLCBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYyXzMxMiwgX19wM18zMTIpKSk7IFwKICBfX3JldF8zMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTIsIF9fcmV0XzMxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MzMihfX3AwXzMxMywgX19wMV8zMTMsIF9fcDJfMzEzLCBfX3AzXzMxMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzEzID0gX19wMF8zMTM7IFwKICBpbnQzMngyX3QgX19zMV8zMTMgPSBfX3AxXzMxMzsgXAogIGludDMyeDJfdCBfX3MyXzMxMyA9IF9fcDJfMzEzOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMxMzsgXAogIF9fcmV0XzMxMyA9IHZxYWRkX3MzMihfX3MwXzMxMywgdnFyZG11bGhfczMyKF9fczFfMzEzLCBzcGxhdF9sYW5lX3MzMihfX3MyXzMxMywgX19wM18zMTMpKSk7IFwKICBfX3JldF8zMTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MzMihfX3AwXzMxNCwgX19wMV8zMTQsIF9fcDJfMzE0LCBfX3AzXzMxNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzE0ID0gX19wMF8zMTQ7IFwKICBpbnQzMngyX3QgX19zMV8zMTQgPSBfX3AxXzMxNDsgXAogIGludDMyeDJfdCBfX3MyXzMxNCA9IF9fcDJfMzE0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zMTQ7ICBfX3JldjBfMzE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTQsIF9fczBfMzE0LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMzE0OyAgX19yZXYxXzMxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE0LCBfX3MxXzMxNCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzMxNDsgIF9fcmV2Ml8zMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxNCwgX19zMl8zMTQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMxNDsgXAogIF9fcmV0XzMxNCA9IF9fbm9zd2FwX3ZxYWRkX3MzMihfX3JldjBfMzE0LCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxXzMxNCwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzMxNCwgX19wM18zMTQpKSk7IFwKICBfX3JldF8zMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTQsIF9fcmV0XzMxNCwgMSwgMCk7IFwKICBfX3JldF8zMTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MxNihfX3AwXzMxNSwgX19wMV8zMTUsIF9fcDJfMzE1LCBfX3AzXzMxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzE1ID0gX19wMF8zMTU7IFwKICBpbnQxNng0X3QgX19zMV8zMTUgPSBfX3AxXzMxNTsgXAogIGludDE2eDRfdCBfX3MyXzMxNSA9IF9fcDJfMzE1OyBcCiAgaW50MTZ4NF90IF9fcmV0XzMxNTsgXAogIF9fcmV0XzMxNSA9IHZxYWRkX3MxNihfX3MwXzMxNSwgdnFyZG11bGhfczE2KF9fczFfMzE1LCBzcGxhdF9sYW5lX3MxNihfX3MyXzMxNSwgX19wM18zMTUpKSk7IFwKICBfX3JldF8zMTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MxNihfX3AwXzMxNiwgX19wMV8zMTYsIF9fcDJfMzE2LCBfX3AzXzMxNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzE2ID0gX19wMF8zMTY7IFwKICBpbnQxNng0X3QgX19zMV8zMTYgPSBfX3AxXzMxNjsgXAogIGludDE2eDRfdCBfX3MyXzMxNiA9IF9fcDJfMzE2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zMTY7ICBfX3JldjBfMzE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTYsIF9fczBfMzE2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMzE2OyAgX19yZXYxXzMxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE2LCBfX3MxXzMxNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzMxNjsgIF9fcmV2Ml8zMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxNiwgX19zMl8zMTYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzMxNjsgXAogIF9fcmV0XzMxNiA9IF9fbm9zd2FwX3ZxYWRkX3MxNihfX3JldjBfMzE2LCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxXzMxNiwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzMxNiwgX19wM18zMTYpKSk7IFwKICBfX3JldF8zMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTYsIF9fcmV0XzMxNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFyZG1sc2hxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFzdWJxX3MzMihfX3AwLCB2cXJkbXVsaHFfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG1sc2hxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFzdWJxX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxcmRtbHNocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZxc3VicV9zMTYoX19wMCwgdnFyZG11bGhxX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxcmRtbHNocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zxc3VicV9zMTYoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cXJkbWxzaF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZxc3ViX3MzMihfX3AwLCB2cXJkbXVsaF9zMzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cXJkbWxzaF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zxc3ViX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnFyZG1sc2hfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cXN1Yl9zMTYoX19wMCwgdnFyZG11bGhfczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFyZG1sc2hfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cXN1Yl9zMTYoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sc2hxX2xhbmVfczMyKF9fcDBfMzE3LCBfX3AxXzMxNywgX19wMl8zMTcsIF9fcDNfMzE3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMTcgPSBfX3AwXzMxNzsgXAogIGludDMyeDRfdCBfX3MxXzMxNyA9IF9fcDFfMzE3OyBcCiAgaW50MzJ4Ml90IF9fczJfMzE3ID0gX19wMl8zMTc7IFwKICBpbnQzMng0X3QgX19yZXRfMzE3OyBcCiAgX19yZXRfMzE3ID0gdnFzdWJxX3MzMihfX3MwXzMxNywgdnFyZG11bGhxX3MzMihfX3MxXzMxNywgc3BsYXRxX2xhbmVfczMyKF9fczJfMzE3LCBfX3AzXzMxNykpKTsgXAogIF9fcmV0XzMxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lX3MzMihfX3AwXzMxOCwgX19wMV8zMTgsIF9fcDJfMzE4LCBfX3AzXzMxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzE4ID0gX19wMF8zMTg7IFwKICBpbnQzMng0X3QgX19zMV8zMTggPSBfX3AxXzMxODsgXAogIGludDMyeDJfdCBfX3MyXzMxOCA9IF9fcDJfMzE4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8zMTg7ICBfX3JldjBfMzE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTgsIF9fczBfMzE4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfMzE4OyAgX19yZXYxXzMxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE4LCBfX3MxXzMxOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzMxODsgIF9fcmV2Ml8zMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxOCwgX19zMl8zMTgsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzMxODsgXAogIF9fcmV0XzMxOCA9IF9fbm9zd2FwX3Zxc3VicV9zMzIoX19yZXYwXzMxOCwgX19ub3N3YXBfdnFyZG11bGhxX3MzMihfX3JldjFfMzE4LCBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYyXzMxOCwgX19wM18zMTgpKSk7IFwKICBfX3JldF8zMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTgsIF9fcmV0XzMxOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaHFfbGFuZV9zMTYoX19wMF8zMTksIF9fcDFfMzE5LCBfX3AyXzMxOSwgX19wM18zMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMxOSA9IF9fcDBfMzE5OyBcCiAgaW50MTZ4OF90IF9fczFfMzE5ID0gX19wMV8zMTk7IFwKICBpbnQxNng0X3QgX19zMl8zMTkgPSBfX3AyXzMxOTsgXAogIGludDE2eDhfdCBfX3JldF8zMTk7IFwKICBfX3JldF8zMTkgPSB2cXN1YnFfczE2KF9fczBfMzE5LCB2cXJkbXVsaHFfczE2KF9fczFfMzE5LCBzcGxhdHFfbGFuZV9zMTYoX19zMl8zMTksIF9fcDNfMzE5KSkpOyBcCiAgX19yZXRfMzE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hxX2xhbmVfczE2KF9fcDBfMzIwLCBfX3AxXzMyMCwgX19wMl8zMjAsIF9fcDNfMzIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjAgPSBfX3AwXzMyMDsgXAogIGludDE2eDhfdCBfX3MxXzMyMCA9IF9fcDFfMzIwOyBcCiAgaW50MTZ4NF90IF9fczJfMzIwID0gX19wMl8zMjA7IFwKICBpbnQxNng4X3QgX19yZXYwXzMyMDsgIF9fcmV2MF8zMjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyMCwgX19zMF8zMjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV8zMjA7ICBfX3JldjFfMzIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjAsIF9fczFfMzIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzIwOyAgX19yZXYyXzMyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzIwLCBfX3MyXzMyMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfMzIwOyBcCiAgX19yZXRfMzIwID0gX19ub3N3YXBfdnFzdWJxX3MxNihfX3JldjBfMzIwLCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MV8zMjAsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MxNihfX3JldjJfMzIwLCBfX3AzXzMyMCkpKTsgXAogIF9fcmV0XzMyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyMCwgX19yZXRfMzIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMyMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczMyKF9fcDBfMzIxLCBfX3AxXzMyMSwgX19wMl8zMjEsIF9fcDNfMzIxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMjEgPSBfX3AwXzMyMTsgXAogIGludDMyeDJfdCBfX3MxXzMyMSA9IF9fcDFfMzIxOyBcCiAgaW50MzJ4Ml90IF9fczJfMzIxID0gX19wMl8zMjE7IFwKICBpbnQzMngyX3QgX19yZXRfMzIxOyBcCiAgX19yZXRfMzIxID0gdnFzdWJfczMyKF9fczBfMzIxLCB2cXJkbXVsaF9zMzIoX19zMV8zMjEsIHNwbGF0X2xhbmVfczMyKF9fczJfMzIxLCBfX3AzXzMyMSkpKTsgXAogIF9fcmV0XzMyMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczMyKF9fcDBfMzIyLCBfX3AxXzMyMiwgX19wMl8zMjIsIF9fcDNfMzIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMjIgPSBfX3AwXzMyMjsgXAogIGludDMyeDJfdCBfX3MxXzMyMiA9IF9fcDFfMzIyOyBcCiAgaW50MzJ4Ml90IF9fczJfMzIyID0gX19wMl8zMjI7IFwKICBpbnQzMngyX3QgX19yZXYwXzMyMjsgIF9fcmV2MF8zMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyMiwgX19zMF8zMjIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8zMjI7ICBfX3JldjFfMzIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjIsIF9fczFfMzIyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMzIyOyAgX19yZXYyXzMyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzIyLCBfX3MyXzMyMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzIyOyBcCiAgX19yZXRfMzIyID0gX19ub3N3YXBfdnFzdWJfczMyKF9fcmV2MF8zMjIsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjFfMzIyLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfMzIyLCBfX3AzXzMyMikpKTsgXAogIF9fcmV0XzMyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyMiwgX19yZXRfMzIyLCAxLCAwKTsgXAogIF9fcmV0XzMyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczE2KF9fcDBfMzIzLCBfX3AxXzMyMywgX19wMl8zMjMsIF9fcDNfMzIzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMjMgPSBfX3AwXzMyMzsgXAogIGludDE2eDRfdCBfX3MxXzMyMyA9IF9fcDFfMzIzOyBcCiAgaW50MTZ4NF90IF9fczJfMzIzID0gX19wMl8zMjM7IFwKICBpbnQxNng0X3QgX19yZXRfMzIzOyBcCiAgX19yZXRfMzIzID0gdnFzdWJfczE2KF9fczBfMzIzLCB2cXJkbXVsaF9zMTYoX19zMV8zMjMsIHNwbGF0X2xhbmVfczE2KF9fczJfMzIzLCBfX3AzXzMyMykpKTsgXAogIF9fcmV0XzMyMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczE2KF9fcDBfMzI0LCBfX3AxXzMyNCwgX19wMl8zMjQsIF9fcDNfMzI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMjQgPSBfX3AwXzMyNDsgXAogIGludDE2eDRfdCBfX3MxXzMyNCA9IF9fcDFfMzI0OyBcCiAgaW50MTZ4NF90IF9fczJfMzI0ID0gX19wMl8zMjQ7IFwKICBpbnQxNng0X3QgX19yZXYwXzMyNDsgIF9fcmV2MF8zMjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyNCwgX19zMF8zMjQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8zMjQ7ICBfX3JldjFfMzI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjQsIF9fczFfMzI0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzI0OyAgX19yZXYyXzMyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI0LCBfX3MyXzMyNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfMzI0OyBcCiAgX19yZXRfMzI0ID0gX19ub3N3YXBfdnFzdWJfczE2KF9fcmV2MF8zMjQsIF9fbm9zd2FwX3ZxcmRtdWxoX3MxNihfX3JldjFfMzI0LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjJfMzI0LCBfX3AzXzMyNCkpKTsgXAogIF9fcmV0XzMyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyNCwgX19yZXRfMzI0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMyNDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1FSRE1YKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczMyKF9fcDBfMzI1LCBfX3AxXzMyNSwgX19wMl8zMjUsIF9fcDNfMzI1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMjUgPSBfX3AwXzMyNTsgXAogIGludDMyeDRfdCBfX3MxXzMyNSA9IF9fcDFfMzI1OyBcCiAgaW50MzJ4NF90IF9fczJfMzI1ID0gX19wMl8zMjU7IFwKICBpbnQzMng0X3QgX19yZXRfMzI1OyBcCiAgX19yZXRfMzI1ID0gdnFhZGRxX3MzMihfX3MwXzMyNSwgdnFyZG11bGhxX3MzMihfX3MxXzMyNSwgc3BsYXRxX2xhbmVxX3MzMihfX3MyXzMyNSwgX19wM18zMjUpKSk7IFwKICBfX3JldF8zMjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczMyKF9fcDBfMzI2LCBfX3AxXzMyNiwgX19wMl8zMjYsIF9fcDNfMzI2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMjYgPSBfX3AwXzMyNjsgXAogIGludDMyeDRfdCBfX3MxXzMyNiA9IF9fcDFfMzI2OyBcCiAgaW50MzJ4NF90IF9fczJfMzI2ID0gX19wMl8zMjY7IFwKICBpbnQzMng0X3QgX19yZXYwXzMyNjsgIF9fcmV2MF8zMjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyNiwgX19zMF8zMjYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV8zMjY7ICBfX3JldjFfMzI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjYsIF9fczFfMzI2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfMzI2OyAgX19yZXYyXzMyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI2LCBfX3MyXzMyNiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfMzI2OyBcCiAgX19yZXRfMzI2ID0gX19ub3N3YXBfdnFhZGRxX3MzMihfX3JldjBfMzI2LCBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MV8zMjYsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoX19yZXYyXzMyNiwgX19wM18zMjYpKSk7IFwKICBfX3JldF8zMjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMjYsIF9fcmV0XzMyNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczE2KF9fcDBfMzI3LCBfX3AxXzMyNywgX19wMl8zMjcsIF9fcDNfMzI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjcgPSBfX3AwXzMyNzsgXAogIGludDE2eDhfdCBfX3MxXzMyNyA9IF9fcDFfMzI3OyBcCiAgaW50MTZ4OF90IF9fczJfMzI3ID0gX19wMl8zMjc7IFwKICBpbnQxNng4X3QgX19yZXRfMzI3OyBcCiAgX19yZXRfMzI3ID0gdnFhZGRxX3MxNihfX3MwXzMyNywgdnFyZG11bGhxX3MxNihfX3MxXzMyNywgc3BsYXRxX2xhbmVxX3MxNihfX3MyXzMyNywgX19wM18zMjcpKSk7IFwKICBfX3JldF8zMjc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczE2KF9fcDBfMzI4LCBfX3AxXzMyOCwgX19wMl8zMjgsIF9fcDNfMzI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjggPSBfX3AwXzMyODsgXAogIGludDE2eDhfdCBfX3MxXzMyOCA9IF9fcDFfMzI4OyBcCiAgaW50MTZ4OF90IF9fczJfMzI4ID0gX19wMl8zMjg7IFwKICBpbnQxNng4X3QgX19yZXYwXzMyODsgIF9fcmV2MF8zMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyOCwgX19zMF8zMjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV8zMjg7ICBfX3JldjFfMzI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjgsIF9fczFfMzI4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfMzI4OyAgX19yZXYyXzMyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI4LCBfX3MyXzMyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfMzI4OyBcCiAgX19yZXRfMzI4ID0gX19ub3N3YXBfdnFhZGRxX3MxNihfX3JldjBfMzI4LCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MV8zMjgsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYyXzMyOCwgX19wM18zMjgpKSk7IFwKICBfX3JldF8zMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMjgsIF9fcmV0XzMyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lcV9zMzIoX19wMF8zMjksIF9fcDFfMzI5LCBfX3AyXzMyOSwgX19wM18zMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzMyOSA9IF9fcDBfMzI5OyBcCiAgaW50MzJ4Ml90IF9fczFfMzI5ID0gX19wMV8zMjk7IFwKICBpbnQzMng0X3QgX19zMl8zMjkgPSBfX3AyXzMyOTsgXAogIGludDMyeDJfdCBfX3JldF8zMjk7IFwKICBfX3JldF8zMjkgPSB2cWFkZF9zMzIoX19zMF8zMjksIHZxcmRtdWxoX3MzMihfX3MxXzMyOSwgc3BsYXRfbGFuZXFfczMyKF9fczJfMzI5LCBfX3AzXzMyOSkpKTsgXAogIF9fcmV0XzMyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoX2xhbmVxX3MzMihfX3AwXzMzMCwgX19wMV8zMzAsIF9fcDJfMzMwLCBfX3AzXzMzMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzMwID0gX19wMF8zMzA7IFwKICBpbnQzMngyX3QgX19zMV8zMzAgPSBfX3AxXzMzMDsgXAogIGludDMyeDRfdCBfX3MyXzMzMCA9IF9fcDJfMzMwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zMzA7ICBfX3JldjBfMzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMzAsIF9fczBfMzMwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMzMwOyAgX19yZXYxXzMzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzMwLCBfX3MxXzMzMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzMzMDsgIF9fcmV2Ml8zMzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMzMCwgX19zMl8zMzAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMzMDsgXAogIF9fcmV0XzMzMCA9IF9fbm9zd2FwX3ZxYWRkX3MzMihfX3JldjBfMzMwLCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxXzMzMCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml8zMzAsIF9fcDNfMzMwKSkpOyBcCiAgX19yZXRfMzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzMwLCBfX3JldF8zMzAsIDEsIDApOyBcCiAgX19yZXRfMzMwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhfbGFuZXFfczE2KF9fcDBfMzMxLCBfX3AxXzMzMSwgX19wMl8zMzEsIF9fcDNfMzMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMzEgPSBfX3AwXzMzMTsgXAogIGludDE2eDRfdCBfX3MxXzMzMSA9IF9fcDFfMzMxOyBcCiAgaW50MTZ4OF90IF9fczJfMzMxID0gX19wMl8zMzE7IFwKICBpbnQxNng0X3QgX19yZXRfMzMxOyBcCiAgX19yZXRfMzMxID0gdnFhZGRfczE2KF9fczBfMzMxLCB2cXJkbXVsaF9zMTYoX19zMV8zMzEsIHNwbGF0X2xhbmVxX3MxNihfX3MyXzMzMSwgX19wM18zMzEpKSk7IFwKICBfX3JldF8zMzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lcV9zMTYoX19wMF8zMzIsIF9fcDFfMzMyLCBfX3AyXzMzMiwgX19wM18zMzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzMzMiA9IF9fcDBfMzMyOyBcCiAgaW50MTZ4NF90IF9fczFfMzMyID0gX19wMV8zMzI7IFwKICBpbnQxNng4X3QgX19zMl8zMzIgPSBfX3AyXzMzMjsgXAogIGludDE2eDRfdCBfX3JldjBfMzMyOyAgX19yZXYwXzMzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzMyLCBfX3MwXzMzMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzMzMjsgIF9fcmV2MV8zMzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzMiwgX19zMV8zMzIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml8zMzI7ICBfX3JldjJfMzMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzIsIF9fczJfMzMyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF8zMzI7IFwKICBfX3JldF8zMzIgPSBfX25vc3dhcF92cWFkZF9zMTYoX19yZXYwXzMzMiwgX19ub3N3YXBfdnFyZG11bGhfczE2KF9fcmV2MV8zMzIsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjJfMzMyLCBfX3AzXzMzMikpKTsgXAogIF9fcmV0XzMzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzMiwgX19yZXRfMzMyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMzIoX19wMF8zMzMsIF9fcDFfMzMzLCBfX3AyXzMzMywgX19wM18zMzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMzMyA9IF9fcDBfMzMzOyBcCiAgaW50MzJ4NF90IF9fczFfMzMzID0gX19wMV8zMzM7IFwKICBpbnQzMng0X3QgX19zMl8zMzMgPSBfX3AyXzMzMzsgXAogIGludDMyeDRfdCBfX3JldF8zMzM7IFwKICBfX3JldF8zMzMgPSB2cXN1YnFfczMyKF9fczBfMzMzLCB2cXJkbXVsaHFfczMyKF9fczFfMzMzLCBzcGxhdHFfbGFuZXFfczMyKF9fczJfMzMzLCBfX3AzXzMzMykpKTsgXAogIF9fcmV0XzMzMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMzIoX19wMF8zMzQsIF9fcDFfMzM0LCBfX3AyXzMzNCwgX19wM18zMzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMzNCA9IF9fcDBfMzM0OyBcCiAgaW50MzJ4NF90IF9fczFfMzM0ID0gX19wMV8zMzQ7IFwKICBpbnQzMng0X3QgX19zMl8zMzQgPSBfX3AyXzMzNDsgXAogIGludDMyeDRfdCBfX3JldjBfMzM0OyAgX19yZXYwXzMzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzM0LCBfX3MwXzMzNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzMzNDsgIF9fcmV2MV8zMzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzNCwgX19zMV8zMzQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml8zMzQ7ICBfX3JldjJfMzM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzQsIF9fczJfMzM0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8zMzQ7IFwKICBfX3JldF8zMzQgPSBfX25vc3dhcF92cXN1YnFfczMyKF9fcmV2MF8zMzQsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxXzMzNCwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjJfMzM0LCBfX3AzXzMzNCkpKTsgXAogIF9fcmV0XzMzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzNCwgX19yZXRfMzM0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMTYoX19wMF8zMzUsIF9fcDFfMzM1LCBfX3AyXzMzNSwgX19wM18zMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMzNSA9IF9fcDBfMzM1OyBcCiAgaW50MTZ4OF90IF9fczFfMzM1ID0gX19wMV8zMzU7IFwKICBpbnQxNng4X3QgX19zMl8zMzUgPSBfX3AyXzMzNTsgXAogIGludDE2eDhfdCBfX3JldF8zMzU7IFwKICBfX3JldF8zMzUgPSB2cXN1YnFfczE2KF9fczBfMzM1LCB2cXJkbXVsaHFfczE2KF9fczFfMzM1LCBzcGxhdHFfbGFuZXFfczE2KF9fczJfMzM1LCBfX3AzXzMzNSkpKTsgXAogIF9fcmV0XzMzNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMTYoX19wMF8zMzYsIF9fcDFfMzM2LCBfX3AyXzMzNiwgX19wM18zMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMzNiA9IF9fcDBfMzM2OyBcCiAgaW50MTZ4OF90IF9fczFfMzM2ID0gX19wMV8zMzY7IFwKICBpbnQxNng4X3QgX19zMl8zMzYgPSBfX3AyXzMzNjsgXAogIGludDE2eDhfdCBfX3JldjBfMzM2OyAgX19yZXYwXzMzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzM2LCBfX3MwXzMzNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzMzNjsgIF9fcmV2MV8zMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzNiwgX19zMV8zMzYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml8zMzY7ICBfX3JldjJfMzM2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzYsIF9fczJfMzM2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8zMzY7IFwKICBfX3JldF8zMzYgPSBfX25vc3dhcF92cXN1YnFfczE2KF9fcmV2MF8zMzYsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMTYoX19yZXYxXzMzNiwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjJfMzM2LCBfX3AzXzMzNikpKTsgXAogIF9fcmV0XzMzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzNiwgX19yZXRfMzM2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVxX3MzMihfX3AwXzMzNywgX19wMV8zMzcsIF9fcDJfMzM3LCBfX3AzXzMzNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzM3ID0gX19wMF8zMzc7IFwKICBpbnQzMngyX3QgX19zMV8zMzcgPSBfX3AxXzMzNzsgXAogIGludDMyeDRfdCBfX3MyXzMzNyA9IF9fcDJfMzM3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMzNzsgXAogIF9fcmV0XzMzNyA9IHZxc3ViX3MzMihfX3MwXzMzNywgdnFyZG11bGhfczMyKF9fczFfMzM3LCBzcGxhdF9sYW5lcV9zMzIoX19zMl8zMzcsIF9fcDNfMzM3KSkpOyBcCiAgX19yZXRfMzM3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hfbGFuZXFfczMyKF9fcDBfMzM4LCBfX3AxXzMzOCwgX19wMl8zMzgsIF9fcDNfMzM4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMzggPSBfX3AwXzMzODsgXAogIGludDMyeDJfdCBfX3MxXzMzOCA9IF9fcDFfMzM4OyBcCiAgaW50MzJ4NF90IF9fczJfMzM4ID0gX19wMl8zMzg7IFwKICBpbnQzMngyX3QgX19yZXYwXzMzODsgIF9fcmV2MF8zMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMzOCwgX19zMF8zMzgsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8zMzg7ICBfX3JldjFfMzM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMzgsIF9fczFfMzM4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfMzM4OyAgX19yZXYyXzMzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzM4LCBfX3MyXzMzOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzM4OyBcCiAgX19yZXRfMzM4ID0gX19ub3N3YXBfdnFzdWJfczMyKF9fcmV2MF8zMzgsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjFfMzM4LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzMzOCwgX19wM18zMzgpKSk7IFwKICBfX3JldF8zMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMzgsIF9fcmV0XzMzOCwgMSwgMCk7IFwKICBfX3JldF8zMzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaF9sYW5lcV9zMTYoX19wMF8zMzksIF9fcDFfMzM5LCBfX3AyXzMzOSwgX19wM18zMzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzMzOSA9IF9fcDBfMzM5OyBcCiAgaW50MTZ4NF90IF9fczFfMzM5ID0gX19wMV8zMzk7IFwKICBpbnQxNng4X3QgX19zMl8zMzkgPSBfX3AyXzMzOTsgXAogIGludDE2eDRfdCBfX3JldF8zMzk7IFwKICBfX3JldF8zMzkgPSB2cXN1Yl9zMTYoX19zMF8zMzksIHZxcmRtdWxoX3MxNihfX3MxXzMzOSwgc3BsYXRfbGFuZXFfczE2KF9fczJfMzM5LCBfX3AzXzMzOSkpKTsgXAogIF9fcmV0XzMzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVxX3MxNihfX3AwXzM0MCwgX19wMV8zNDAsIF9fcDJfMzQwLCBfX3AzXzM0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzQwID0gX19wMF8zNDA7IFwKICBpbnQxNng0X3QgX19zMV8zNDAgPSBfX3AxXzM0MDsgXAogIGludDE2eDhfdCBfX3MyXzM0MCA9IF9fcDJfMzQwOyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zNDA7ICBfX3JldjBfMzQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDAsIF9fczBfMzQwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMzQwOyAgX19yZXYxXzM0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzQwLCBfX3MxXzM0MCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzM0MDsgIF9fcmV2Ml8zNDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM0MCwgX19zMl8zNDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzM0MDsgXAogIF9fcmV0XzM0MCA9IF9fbm9zd2FwX3Zxc3ViX3MxNihfX3JldjBfMzQwLCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxXzM0MCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml8zNDAsIF9fcDNfMzQwKSkpOyBcCiAgX19yZXRfMzQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQwLCBfX3JldF8zNDAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQwOyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2YWJkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmFiZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2YWJkX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdmFiZGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdmFiZHNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmFic3FfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2YWJzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2YWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZhYnNfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZhYnNfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZhYnNkX3M2NChpbnQ2NF90IF9fcDApIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmFkZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZhZGRxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmFkZF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmFkZGRfdTY0KHVpbnQ2NF90IF9fcDAsIHVpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmFkZGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdmFkZGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZhZGRxX3AxMjgocG9seTEyOF90IF9fcDAsIHBvbHkxMjhfdCBfX3AxKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkgX19idWlsdGluX25lb25fdmFkZHFfcDEyOChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdmFkZGhuX3UzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MTYoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fdTMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTMyKF9fcDAsIHZhZGRobl91NjQoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmFkZGhuX3U2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZGRobl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTgoX19wMCwgdmFkZGhuX3UxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2YWRkaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTgoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fdTE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MxNihfX3AwLCB2YWRkaG5fczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZGhuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMTYoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWRkaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MzMihfX3AwLCB2YWRkaG5fczY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fczY0KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWRkaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczgoX19wMCwgdmFkZGhuX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhZGRobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3M4KF9fcmV2MCwgX19ub3N3YXBfdmFkZGhuX3MxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2YWRkbHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZhZGRsdnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGRsdnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjRfdCB2YWRkbHZxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZhZGRsdnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2YWRkbHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3QgdmFkZGx2cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNl90IHZhZGRsdnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkbHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjRfdCB2YWRkbHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdnFfczMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2YWRkbHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkbHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdnFfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2X3QgdmFkZGx2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91OChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkbHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGRsdl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0X3QgdmFkZGx2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfdTMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3QgdmFkZGx2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2YWRkbHZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGRsdl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfczgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2YWRkbHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkbHZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfczMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdmFkZGx2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMl90IHZhZGRsdl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkbHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3QgdmFkZHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3QgdmFkZHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJfdCB2YWRkdnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZhZGR2cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGR2cV91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV91NjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0X3QgdmFkZHZxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2X3QgdmFkZHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkdnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4X3QgdmFkZHZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDhfdCB2YWRkdnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZhZGR2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZhZGR2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdmFkZHZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdmFkZHZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3QgdmFkZHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMl90IHZhZGR2cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfczMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkdnFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdmFkZHZxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9zNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGR2cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2YWRkdnFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3QgdmFkZHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3QgdmFkZHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZhZGR2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZhZGR2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2YWRkdl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkdl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZhZGR2X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3QgdmFkZHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZhZGR2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2YWRkdl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3QgdmFkZHZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkdl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGR2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2X3QgdmFkZHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBwb2x5NjR4MV90IHZic2xfcDY0KHVpbnQ2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxLCBwb2x5NjR4MV90IF9fcDIpIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2YnNscV9wNjQodWludDY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEsIHBvbHk2NHgyX3QgX19wMikgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2YnNscV9wNjQodWludDY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEsIHBvbHk2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZic2xxX2Y2NCh1aW50NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmJzbHFfZjY0KHVpbnQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZic2xfZjY0KHVpbnQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjYWdlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjYWdlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2FnZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNhZ2VfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2FnZWRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FnZWRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjYWdlc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlc19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNhZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNhZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjYWd0X2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2FndF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjYWd0ZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWd0ZF9mNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNhZ3RzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNhZ3RzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2FsZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2FsZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNhbGVfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNhbGVkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNhbGVkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2FsZXNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjYWx0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjYWx0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2FsdF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNhbHRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2FsdGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsdGRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjYWx0c19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0c19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2Y2VxX3A2NChwb2x5NjR4MV90IF9fcDAsIHBvbHk2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZXFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXFfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNlcV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjZXFfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNlcWRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2Vxc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZXF6X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXF6X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2VxenFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZXF6cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXF6cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNlcXpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZXF6cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXF6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZXF6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2VxenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZXF6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZXF6X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2Vxel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNlcXpfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZXF6X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXF6X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2Vxel9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZXF6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNlcXpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXF6X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZXF6X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNlcXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0X3QgdmNlcXpkX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6ZF91NjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNlcXpkX3M2NChpbnQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNlcXpkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxemRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6ZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNlcXpzX2YzMihmbG9hdDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZ2VxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNnZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2dlcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNnZV91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2Y2dlX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNnZV9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2VkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNnZWRfdTY0KHVpbnQ2NF90IF9fcDAsIHVpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZWRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2VkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZWRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjZ2VzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNnZXNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZ2V6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2dlenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2V6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2dlenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNnZXpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2V6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2V6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2V6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNnZXpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNnZXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2dlenFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ2V6X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZ2V6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZ2V6X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNnZXpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ2V6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2dlel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ2V6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNnZXpfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNnZXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2dlel9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjRfdCB2Y2dlemRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlemRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2V6ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZXpkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2dlenNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6c19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2d0X3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNndF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNndF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3RkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2d0ZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0ZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0ZF9mNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNndHNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0c19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNndHpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZ3R6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHpxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZ3R6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2d0enFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ3R6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHpxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0enFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2d0enFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3R6cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNndHpfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNndHpfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNndHpfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0el9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZ3R6X3MzMihpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndHpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2d0el9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2d0el9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ3R6X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NF90IHZjZ3R6ZF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6ZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndHpkX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0emRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjZ3R6c19mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNndHpzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPD0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2xlcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjbGVxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsZXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbGVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNsZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbGVfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xlZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNsZWRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2xlc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2xlenFfczgoaW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNsZXpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsZXpxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbGV6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2xlenFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsZXpxX3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2xlenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlenFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjbGV6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbGV6cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNsZXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2xlel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2xlel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2xlel9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbGV6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2xlel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsZXpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2xlel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbGV6X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjbGV6X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0X3QgdmNsZXpkX3M2NChpbnQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsZXpkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlemRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6ZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNsZXpzX2YzMihmbG9hdDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2x0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNsdF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbHRfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbHRfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHRkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHRkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2x0ZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHRkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdGRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjbHRzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNsdHNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHR6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2x0enFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHR6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2x0enFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsdHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHR6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2x0enFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHR6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHR6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsdHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0enFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbHR6X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjbHR6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbHR6X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHR6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2x0el9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHR6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNsdHpfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsdHpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2x0el9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjRfdCB2Y2x0emRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0emRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHR6ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdHpkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2x0enNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6c19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmNvbWJpbmVfcDY0KHBvbHk2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdmNvbWJpbmVfcDY0KHBvbHk2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y29tYmluZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNvbWJpbmVfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9wOChfX3AwXzM0MSwgX19wMV8zNDEsIF9fcDJfMzQxLCBfX3AzXzM0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwXzM0MSA9IF9fcDBfMzQxOyBcCiAgcG9seTh4OF90IF9fczJfMzQxID0gX19wMl8zNDE7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM0MTsgXAogIF9fcmV0XzM0MSA9IHZzZXRxX2xhbmVfcDgodmdldF9sYW5lX3A4KF9fczJfMzQxLCBfX3AzXzM0MSksIF9fczBfMzQxLCBfX3AxXzM0MSk7IFwKICBfX3JldF8zNDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZV9wOChfX3AwXzM0MiwgX19wMV8zNDIsIF9fcDJfMzQyLCBfX3AzXzM0MikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwXzM0MiA9IF9fcDBfMzQyOyBcCiAgcG9seTh4OF90IF9fczJfMzQyID0gX19wMl8zNDI7IFwKICBwb2x5OHgxNl90IF9fcmV2MF8zNDI7ICBfX3JldjBfMzQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDIsIF9fczBfMzQyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjJfMzQyOyAgX19yZXYyXzM0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzQyLCBfX3MyXzM0MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM0MjsgXAogIF9fcmV0XzM0MiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDgoX19ub3N3YXBfdmdldF9sYW5lX3A4KF9fcmV2Ml8zNDIsIF9fcDNfMzQyKSwgX19yZXYwXzM0MiwgX19wMV8zNDIpOyBcCiAgX19yZXRfMzQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQyLCBfX3JldF8zNDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfcDE2KF9fcDBfMzQzLCBfX3AxXzM0MywgX19wMl8zNDMsIF9fcDNfMzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzQzID0gX19wMF8zNDM7IFwKICBwb2x5MTZ4NF90IF9fczJfMzQzID0gX19wMl8zNDM7IFwKICBwb2x5MTZ4OF90IF9fcmV0XzM0MzsgXAogIF9fcmV0XzM0MyA9IHZzZXRxX2xhbmVfcDE2KHZnZXRfbGFuZV9wMTYoX19zMl8zNDMsIF9fcDNfMzQzKSwgX19zMF8zNDMsIF9fcDFfMzQzKTsgXAogIF9fcmV0XzM0MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3AxNihfX3AwXzM0NCwgX19wMV8zNDQsIF9fcDJfMzQ0LCBfX3AzXzM0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwXzM0NCA9IF9fcDBfMzQ0OyBcCiAgcG9seTE2eDRfdCBfX3MyXzM0NCA9IF9fcDJfMzQ0OyBcCiAgcG9seTE2eDhfdCBfX3JldjBfMzQ0OyAgX19yZXYwXzM0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzQ0LCBfX3MwXzM0NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV2Ml8zNDQ7ICBfX3JldjJfMzQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNDQsIF9fczJfMzQ0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXRfMzQ0OyBcCiAgX19yZXRfMzQ0ID0gX19ub3N3YXBfdnNldHFfbGFuZV9wMTYoX19ub3N3YXBfdmdldF9sYW5lX3AxNihfX3JldjJfMzQ0LCBfX3AzXzM0NCksIF9fcmV2MF8zNDQsIF9fcDFfMzQ0KTsgXAogIF9fcmV0XzM0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM0NCwgX19yZXRfMzQ0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3U4KF9fcDBfMzQ1LCBfX3AxXzM0NSwgX19wMl8zNDUsIF9fcDNfMzQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfMzQ1ID0gX19wMF8zNDU7IFwKICB1aW50OHg4X3QgX19zMl8zNDUgPSBfX3AyXzM0NTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzQ1OyBcCiAgX19yZXRfMzQ1ID0gdnNldHFfbGFuZV91OCh2Z2V0X2xhbmVfdTgoX19zMl8zNDUsIF9fcDNfMzQ1KSwgX19zMF8zNDUsIF9fcDFfMzQ1KTsgXAogIF9fcmV0XzM0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3U4KF9fcDBfMzQ2LCBfX3AxXzM0NiwgX19wMl8zNDYsIF9fcDNfMzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfMzQ2ID0gX19wMF8zNDY7IFwKICB1aW50OHg4X3QgX19zMl8zNDYgPSBfX3AyXzM0NjsgXAogIHVpbnQ4eDE2X3QgX19yZXYwXzM0NjsgIF9fcmV2MF8zNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM0NiwgX19zMF8zNDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2Ml8zNDY7ICBfX3JldjJfMzQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNDYsIF9fczJfMzQ2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzQ2OyBcCiAgX19yZXRfMzQ2ID0gX19ub3N3YXBfdnNldHFfbGFuZV91OChfX25vc3dhcF92Z2V0X2xhbmVfdTgoX19yZXYyXzM0NiwgX19wM18zNDYpLCBfX3JldjBfMzQ2LCBfX3AxXzM0Nik7IFwKICBfX3JldF8zNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNDYsIF9fcmV0XzM0NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV91MzIoX19wMF8zNDcsIF9fcDFfMzQ3LCBfX3AyXzM0NywgX19wM18zNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF8zNDcgPSBfX3AwXzM0NzsgXAogIHVpbnQzMngyX3QgX19zMl8zNDcgPSBfX3AyXzM0NzsgXAogIHVpbnQzMng0X3QgX19yZXRfMzQ3OyBcCiAgX19yZXRfMzQ3ID0gdnNldHFfbGFuZV91MzIodmdldF9sYW5lX3UzMihfX3MyXzM0NywgX19wM18zNDcpLCBfX3MwXzM0NywgX19wMV8zNDcpOyBcCiAgX19yZXRfMzQ3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTMyKF9fcDBfMzQ4LCBfX3AxXzM0OCwgX19wMl8zNDgsIF9fcDNfMzQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfMzQ4ID0gX19wMF8zNDg7IFwKICB1aW50MzJ4Ml90IF9fczJfMzQ4ID0gX19wMl8zNDg7IFwKICB1aW50MzJ4NF90IF9fcmV2MF8zNDg7ICBfX3JldjBfMzQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDgsIF9fczBfMzQ4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzM0ODsgIF9fcmV2Ml8zNDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM0OCwgX19zMl8zNDgsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF8zNDg7IFwKICBfX3JldF8zNDggPSBfX25vc3dhcF92c2V0cV9sYW5lX3UzMihfX25vc3dhcF92Z2V0X2xhbmVfdTMyKF9fcmV2Ml8zNDgsIF9fcDNfMzQ4KSwgX19yZXYwXzM0OCwgX19wMV8zNDgpOyBcCiAgX19yZXRfMzQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQ4LCBfX3JldF8zNDgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQ4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTY0KF9fcDBfMzQ5LCBfX3AxXzM0OSwgX19wMl8zNDksIF9fcDNfMzQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzQ5ID0gX19wMF8zNDk7IFwKICB1aW50NjR4MV90IF9fczJfMzQ5ID0gX19wMl8zNDk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM0OTsgXAogIF9fcmV0XzM0OSA9IHZzZXRxX2xhbmVfdTY0KHZnZXRfbGFuZV91NjQoX19zMl8zNDksIF9fcDNfMzQ5KSwgX19zMF8zNDksIF9fcDFfMzQ5KTsgXAogIF9fcmV0XzM0OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3U2NChfX3AwXzM1MCwgX19wMV8zNTAsIF9fcDJfMzUwLCBfX3AzXzM1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzM1MCA9IF9fcDBfMzUwOyBcCiAgdWludDY0eDFfdCBfX3MyXzM1MCA9IF9fcDJfMzUwOyBcCiAgdWludDY0eDJfdCBfX3JldjBfMzUwOyAgX19yZXYwXzM1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzUwLCBfX3MwXzM1MCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM1MDsgXAogIF9fcmV0XzM1MCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfdTY0KHZnZXRfbGFuZV91NjQoX19zMl8zNTAsIF9fcDNfMzUwKSwgX19yZXYwXzM1MCwgX19wMV8zNTApOyBcCiAgX19yZXRfMzUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzUwLCBfX3JldF8zNTAsIDEsIDApOyBcCiAgX19yZXRfMzUwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTE2KF9fcDBfMzUxLCBfX3AxXzM1MSwgX19wMl8zNTEsIF9fcDNfMzUxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfMzUxID0gX19wMF8zNTE7IFwKICB1aW50MTZ4NF90IF9fczJfMzUxID0gX19wMl8zNTE7IFwKICB1aW50MTZ4OF90IF9fcmV0XzM1MTsgXAogIF9fcmV0XzM1MSA9IHZzZXRxX2xhbmVfdTE2KHZnZXRfbGFuZV91MTYoX19zMl8zNTEsIF9fcDNfMzUxKSwgX19zMF8zNTEsIF9fcDFfMzUxKTsgXAogIF9fcmV0XzM1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3UxNihfX3AwXzM1MiwgX19wMV8zNTIsIF9fcDJfMzUyLCBfX3AzXzM1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzM1MiA9IF9fcDBfMzUyOyBcCiAgdWludDE2eDRfdCBfX3MyXzM1MiA9IF9fcDJfMzUyOyBcCiAgdWludDE2eDhfdCBfX3JldjBfMzUyOyAgX19yZXYwXzM1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzUyLCBfX3MwXzM1MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml8zNTI7ICBfX3JldjJfMzUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNTIsIF9fczJfMzUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfMzUyOyBcCiAgX19yZXRfMzUyID0gX19ub3N3YXBfdnNldHFfbGFuZV91MTYoX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3JldjJfMzUyLCBfX3AzXzM1MiksIF9fcmV2MF8zNTIsIF9fcDFfMzUyKTsgXAogIF9fcmV0XzM1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM1MiwgX19yZXRfMzUyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM1MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3M4KF9fcDBfMzUzLCBfX3AxXzM1MywgX19wMl8zNTMsIF9fcDNfMzUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zNTMgPSBfX3AwXzM1MzsgXAogIGludDh4OF90IF9fczJfMzUzID0gX19wMl8zNTM7IFwKICBpbnQ4eDE2X3QgX19yZXRfMzUzOyBcCiAgX19yZXRfMzUzID0gdnNldHFfbGFuZV9zOCh2Z2V0X2xhbmVfczgoX19zMl8zNTMsIF9fcDNfMzUzKSwgX19zMF8zNTMsIF9fcDFfMzUzKTsgXAogIF9fcmV0XzM1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3M4KF9fcDBfMzU0LCBfX3AxXzM1NCwgX19wMl8zNTQsIF9fcDNfMzU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zNTQgPSBfX3AwXzM1NDsgXAogIGludDh4OF90IF9fczJfMzU0ID0gX19wMl8zNTQ7IFwKICBpbnQ4eDE2X3QgX19yZXYwXzM1NDsgIF9fcmV2MF8zNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM1NCwgX19zMF8zNTQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzM1NDsgIF9fcmV2Ml8zNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM1NCwgX19zMl8zNTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzM1NDsgXAogIF9fcmV0XzM1NCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfczgoX19ub3N3YXBfdmdldF9sYW5lX3M4KF9fcmV2Ml8zNTQsIF9fcDNfMzU0KSwgX19yZXYwXzM1NCwgX19wMV8zNTQpOyBcCiAgX19yZXRfMzU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzU0LCBfX3JldF8zNTQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzU0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfZjMyKF9fcDBfMzU1LCBfX3AxXzM1NSwgX19wMl8zNTUsIF9fcDNfMzU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzM1NSA9IF9fcDBfMzU1OyBcCiAgZmxvYXQzMngyX3QgX19zMl8zNTUgPSBfX3AyXzM1NTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzM1NTsgXAogIF9fcmV0XzM1NSA9IHZzZXRxX2xhbmVfZjMyKHZnZXRfbGFuZV9mMzIoX19zMl8zNTUsIF9fcDNfMzU1KSwgX19zMF8zNTUsIF9fcDFfMzU1KTsgXAogIF9fcmV0XzM1NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX2YzMihfX3AwXzM1NiwgX19wMV8zNTYsIF9fcDJfMzU2LCBfX3AzXzM1NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zNTYgPSBfX3AwXzM1NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMzU2ID0gX19wMl8zNTY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMzU2OyAgX19yZXYwXzM1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzU2LCBfX3MwXzM1NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMzU2OyAgX19yZXYyXzM1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzU2LCBfX3MyXzM1NiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zNTY7IFwKICBfX3JldF8zNTYgPSBfX25vc3dhcF92c2V0cV9sYW5lX2YzMihfX25vc3dhcF92Z2V0X2xhbmVfZjMyKF9fcmV2Ml8zNTYsIF9fcDNfMzU2KSwgX19yZXYwXzM1NiwgX19wMV8zNTYpOyBcCiAgX19yZXRfMzU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzU2LCBfX3JldF8zNTYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfczMyKF9fcDBfMzU3LCBfX3AxXzM1NywgX19wMl8zNTcsIF9fcDNfMzU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zNTcgPSBfX3AwXzM1NzsgXAogIGludDMyeDJfdCBfX3MyXzM1NyA9IF9fcDJfMzU3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzM1NzsgXAogIF9fcmV0XzM1NyA9IHZzZXRxX2xhbmVfczMyKHZnZXRfbGFuZV9zMzIoX19zMl8zNTcsIF9fcDNfMzU3KSwgX19zMF8zNTcsIF9fcDFfMzU3KTsgXAogIF9fcmV0XzM1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3MzMihfX3AwXzM1OCwgX19wMV8zNTgsIF9fcDJfMzU4LCBfX3AzXzM1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzU4ID0gX19wMF8zNTg7IFwKICBpbnQzMngyX3QgX19zMl8zNTggPSBfX3AyXzM1ODsgXAogIGludDMyeDRfdCBfX3JldjBfMzU4OyAgX19yZXYwXzM1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzU4LCBfX3MwXzM1OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzM1ODsgIF9fcmV2Ml8zNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM1OCwgX19zMl8zNTgsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzM1ODsgXAogIF9fcmV0XzM1OCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfczMyKF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19yZXYyXzM1OCwgX19wM18zNTgpLCBfX3JldjBfMzU4LCBfX3AxXzM1OCk7IFwKICBfX3JldF8zNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNTgsIF9fcmV0XzM1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9zNjQoX19wMF8zNTksIF9fcDFfMzU5LCBfX3AyXzM1OSwgX19wM18zNTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzM1OSA9IF9fcDBfMzU5OyBcCiAgaW50NjR4MV90IF9fczJfMzU5ID0gX19wMl8zNTk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMzU5OyBcCiAgX19yZXRfMzU5ID0gdnNldHFfbGFuZV9zNjQodmdldF9sYW5lX3M2NChfX3MyXzM1OSwgX19wM18zNTkpLCBfX3MwXzM1OSwgX19wMV8zNTkpOyBcCiAgX19yZXRfMzU5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfczY0KF9fcDBfMzYwLCBfX3AxXzM2MCwgX19wMl8zNjAsIF9fcDNfMzYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8zNjAgPSBfX3AwXzM2MDsgXAogIGludDY0eDFfdCBfX3MyXzM2MCA9IF9fcDJfMzYwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF8zNjA7ICBfX3JldjBfMzYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNjAsIF9fczBfMzYwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF8zNjA7IFwKICBfX3JldF8zNjAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NCh2Z2V0X2xhbmVfczY0KF9fczJfMzYwLCBfX3AzXzM2MCksIF9fcmV2MF8zNjAsIF9fcDFfMzYwKTsgXAogIF9fcmV0XzM2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2MCwgX19yZXRfMzYwLCAxLCAwKTsgXAogIF9fcmV0XzM2MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3MxNihfX3AwXzM2MSwgX19wMV8zNjEsIF9fcDJfMzYxLCBfX3AzXzM2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMzYxID0gX19wMF8zNjE7IFwKICBpbnQxNng0X3QgX19zMl8zNjEgPSBfX3AyXzM2MTsgXAogIGludDE2eDhfdCBfX3JldF8zNjE7IFwKICBfX3JldF8zNjEgPSB2c2V0cV9sYW5lX3MxNih2Z2V0X2xhbmVfczE2KF9fczJfMzYxLCBfX3AzXzM2MSksIF9fczBfMzYxLCBfX3AxXzM2MSk7IFwKICBfX3JldF8zNjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZV9zMTYoX19wMF8zNjIsIF9fcDFfMzYyLCBfX3AyXzM2MiwgX19wM18zNjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzM2MiA9IF9fcDBfMzYyOyBcCiAgaW50MTZ4NF90IF9fczJfMzYyID0gX19wMl8zNjI7IFwKICBpbnQxNng4X3QgX19yZXYwXzM2MjsgIF9fcmV2MF8zNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2MiwgX19zMF8zNjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml8zNjI7ICBfX3JldjJfMzYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNjIsIF9fczJfMzYyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8zNjI7IFwKICBfX3JldF8zNjIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNihfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2Ml8zNjIsIF9fcDNfMzYyKSwgX19yZXYwXzM2MiwgX19wMV8zNjIpOyBcCiAgX19yZXRfMzYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzYyLCBfX3JldF8zNjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzYyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZV9wOChfX3AwXzM2MywgX19wMV8zNjMsIF9fcDJfMzYzLCBfX3AzXzM2MykgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczBfMzYzID0gX19wMF8zNjM7IFwKICBwb2x5OHg4X3QgX19zMl8zNjMgPSBfX3AyXzM2MzsgXAogIHBvbHk4eDhfdCBfX3JldF8zNjM7IFwKICBfX3JldF8zNjMgPSB2c2V0X2xhbmVfcDgodmdldF9sYW5lX3A4KF9fczJfMzYzLCBfX3AzXzM2MyksIF9fczBfMzYzLCBfX3AxXzM2Myk7IFwKICBfX3JldF8zNjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lX3A4KF9fcDBfMzY0LCBfX3AxXzM2NCwgX19wMl8zNjQsIF9fcDNfMzY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8zNjQgPSBfX3AwXzM2NDsgXAogIHBvbHk4eDhfdCBfX3MyXzM2NCA9IF9fcDJfMzY0OyBcCiAgcG9seTh4OF90IF9fcmV2MF8zNjQ7ICBfX3JldjBfMzY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNjQsIF9fczBfMzY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjJfMzY0OyAgX19yZXYyXzM2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzY0LCBfX3MyXzM2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXRfMzY0OyBcCiAgX19yZXRfMzY0ID0gX19ub3N3YXBfdnNldF9sYW5lX3A4KF9fbm9zd2FwX3ZnZXRfbGFuZV9wOChfX3JldjJfMzY0LCBfX3AzXzM2NCksIF9fcmV2MF8zNjQsIF9fcDFfMzY0KTsgXAogIF9fcmV0XzM2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2NCwgX19yZXRfMzY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM2NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfcDE2KF9fcDBfMzY1LCBfX3AxXzM2NSwgX19wMl8zNjUsIF9fcDNfMzY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfMzY1ID0gX19wMF8zNjU7IFwKICBwb2x5MTZ4NF90IF9fczJfMzY1ID0gX19wMl8zNjU7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzM2NTsgXAogIF9fcmV0XzM2NSA9IHZzZXRfbGFuZV9wMTYodmdldF9sYW5lX3AxNihfX3MyXzM2NSwgX19wM18zNjUpLCBfX3MwXzM2NSwgX19wMV8zNjUpOyBcCiAgX19yZXRfMzY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9wMTYoX19wMF8zNjYsIF9fcDFfMzY2LCBfX3AyXzM2NiwgX19wM18zNjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF8zNjYgPSBfX3AwXzM2NjsgXAogIHBvbHkxNng0X3QgX19zMl8zNjYgPSBfX3AyXzM2NjsgXAogIHBvbHkxNng0X3QgX19yZXYwXzM2NjsgIF9fcmV2MF8zNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2NiwgX19zMF8zNjYsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldjJfMzY2OyAgX19yZXYyXzM2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzY2LCBfX3MyXzM2NiwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzM2NjsgXAogIF9fcmV0XzM2NiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9wMTYoX19ub3N3YXBfdmdldF9sYW5lX3AxNihfX3JldjJfMzY2LCBfX3AzXzM2NiksIF9fcmV2MF8zNjYsIF9fcDFfMzY2KTsgXAogIF9fcmV0XzM2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2NiwgX19yZXRfMzY2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM2NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfdTgoX19wMF8zNjcsIF9fcDFfMzY3LCBfX3AyXzM2NywgX19wM18zNjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzM2NyA9IF9fcDBfMzY3OyBcCiAgdWludDh4OF90IF9fczJfMzY3ID0gX19wMl8zNjc7IFwKICB1aW50OHg4X3QgX19yZXRfMzY3OyBcCiAgX19yZXRfMzY3ID0gdnNldF9sYW5lX3U4KHZnZXRfbGFuZV91OChfX3MyXzM2NywgX19wM18zNjcpLCBfX3MwXzM2NywgX19wMV8zNjcpOyBcCiAgX19yZXRfMzY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV91OChfX3AwXzM2OCwgX19wMV8zNjgsIF9fcDJfMzY4LCBfX3AzXzM2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfMzY4ID0gX19wMF8zNjg7IFwKICB1aW50OHg4X3QgX19zMl8zNjggPSBfX3AyXzM2ODsgXAogIHVpbnQ4eDhfdCBfX3JldjBfMzY4OyAgX19yZXYwXzM2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzY4LCBfX3MwXzM2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYyXzM2ODsgIF9fcmV2Ml8zNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM2OCwgX19zMl8zNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0XzM2ODsgXAogIF9fcmV0XzM2OCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91OChfX25vc3dhcF92Z2V0X2xhbmVfdTgoX19yZXYyXzM2OCwgX19wM18zNjgpLCBfX3JldjBfMzY4LCBfX3AxXzM2OCk7IFwKICBfX3JldF8zNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNjgsIF9fcmV0XzM2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3UzMihfX3AwXzM2OSwgX19wMV8zNjksIF9fcDJfMzY5LCBfX3AzXzM2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzM2OSA9IF9fcDBfMzY5OyBcCiAgdWludDMyeDJfdCBfX3MyXzM2OSA9IF9fcDJfMzY5OyBcCiAgdWludDMyeDJfdCBfX3JldF8zNjk7IFwKICBfX3JldF8zNjkgPSB2c2V0X2xhbmVfdTMyKHZnZXRfbGFuZV91MzIoX19zMl8zNjksIF9fcDNfMzY5KSwgX19zMF8zNjksIF9fcDFfMzY5KTsgXAogIF9fcmV0XzM2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfdTMyKF9fcDBfMzcwLCBfX3AxXzM3MCwgX19wMl8zNzAsIF9fcDNfMzcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMzcwID0gX19wMF8zNzA7IFwKICB1aW50MzJ4Ml90IF9fczJfMzcwID0gX19wMl8zNzA7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF8zNzA7ICBfX3JldjBfMzcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNzAsIF9fczBfMzcwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzM3MDsgIF9fcmV2Ml8zNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM3MCwgX19zMl8zNzAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF8zNzA7IFwKICBfX3JldF8zNzAgPSBfX25vc3dhcF92c2V0X2xhbmVfdTMyKF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoX19yZXYyXzM3MCwgX19wM18zNzApLCBfX3JldjBfMzcwLCBfX3AxXzM3MCk7IFwKICBfX3JldF8zNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNzAsIF9fcmV0XzM3MCwgMSwgMCk7IFwKICBfX3JldF8zNzA7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZjb3B5X2xhbmVfdTY0KF9fcDBfMzcxLCBfX3AxXzM3MSwgX19wMl8zNzEsIF9fcDNfMzcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczBfMzcxID0gX19wMF8zNzE7IFwKICB1aW50NjR4MV90IF9fczJfMzcxID0gX19wMl8zNzE7IFwKICB1aW50NjR4MV90IF9fcmV0XzM3MTsgXAogIF9fcmV0XzM3MSA9IHZzZXRfbGFuZV91NjQodmdldF9sYW5lX3U2NChfX3MyXzM3MSwgX19wM18zNzEpLCBfX3MwXzM3MSwgX19wMV8zNzEpOyBcCiAgX19yZXRfMzcxOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfdTE2KF9fcDBfMzcyLCBfX3AxXzM3MiwgX19wMl8zNzIsIF9fcDNfMzcyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfMzcyID0gX19wMF8zNzI7IFwKICB1aW50MTZ4NF90IF9fczJfMzcyID0gX19wMl8zNzI7IFwKICB1aW50MTZ4NF90IF9fcmV0XzM3MjsgXAogIF9fcmV0XzM3MiA9IHZzZXRfbGFuZV91MTYodmdldF9sYW5lX3UxNihfX3MyXzM3MiwgX19wM18zNzIpLCBfX3MwXzM3MiwgX19wMV8zNzIpOyBcCiAgX19yZXRfMzcyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV91MTYoX19wMF8zNzMsIF9fcDFfMzczLCBfX3AyXzM3MywgX19wM18zNzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8zNzMgPSBfX3AwXzM3MzsgXAogIHVpbnQxNng0X3QgX19zMl8zNzMgPSBfX3AyXzM3MzsgXAogIHVpbnQxNng0X3QgX19yZXYwXzM3MzsgIF9fcmV2MF8zNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM3MywgX19zMF8zNzMsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjJfMzczOyAgX19yZXYyXzM3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzczLCBfX3MyXzM3MywgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzM3MzsgXAogIF9fcmV0XzM3MyA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91MTYoX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3JldjJfMzczLCBfX3AzXzM3MyksIF9fcmV2MF8zNzMsIF9fcDFfMzczKTsgXAogIF9fcmV0XzM3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM3MywgX19yZXRfMzczLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM3MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfczgoX19wMF8zNzQsIF9fcDFfMzc0LCBfX3AyXzM3NCwgX19wM18zNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfMzc0ID0gX19wMF8zNzQ7IFwKICBpbnQ4eDhfdCBfX3MyXzM3NCA9IF9fcDJfMzc0OyBcCiAgaW50OHg4X3QgX19yZXRfMzc0OyBcCiAgX19yZXRfMzc0ID0gdnNldF9sYW5lX3M4KHZnZXRfbGFuZV9zOChfX3MyXzM3NCwgX19wM18zNzQpLCBfX3MwXzM3NCwgX19wMV8zNzQpOyBcCiAgX19yZXRfMzc0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9zOChfX3AwXzM3NSwgX19wMV8zNzUsIF9fcDJfMzc1LCBfX3AzXzM3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8zNzUgPSBfX3AwXzM3NTsgXAogIGludDh4OF90IF9fczJfMzc1ID0gX19wMl8zNzU7IFwKICBpbnQ4eDhfdCBfX3JldjBfMzc1OyAgX19yZXYwXzM3NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzc1LCBfX3MwXzM3NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjJfMzc1OyAgX19yZXYyXzM3NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc1LCBfX3MyXzM3NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldF8zNzU7IFwKICBfX3JldF8zNzUgPSBfX25vc3dhcF92c2V0X2xhbmVfczgoX19ub3N3YXBfdmdldF9sYW5lX3M4KF9fcmV2Ml8zNzUsIF9fcDNfMzc1KSwgX19yZXYwXzM3NSwgX19wMV8zNzUpOyBcCiAgX19yZXRfMzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzc1LCBfX3JldF8zNzUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzc1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZV9mMzIoX19wMF8zNzYsIF9fcDFfMzc2LCBfX3AyXzM3NiwgX19wM18zNzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMzc2ID0gX19wMF8zNzY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzM3NiA9IF9fcDJfMzc2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMzc2OyBcCiAgX19yZXRfMzc2ID0gdnNldF9sYW5lX2YzMih2Z2V0X2xhbmVfZjMyKF9fczJfMzc2LCBfX3AzXzM3NiksIF9fczBfMzc2LCBfX3AxXzM3Nik7IFwKICBfX3JldF8zNzY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lX2YzMihfX3AwXzM3NywgX19wMV8zNzcsIF9fcDJfMzc3LCBfX3AzXzM3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNzcgPSBfX3AwXzM3NzsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMzc3ID0gX19wMl8zNzc7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMzc3OyAgX19yZXYwXzM3NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzc3LCBfX3MwXzM3NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMzc3OyAgX19yZXYyXzM3NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc3LCBfX3MyXzM3NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8zNzc7IFwKICBfX3JldF8zNzcgPSBfX25vc3dhcF92c2V0X2xhbmVfZjMyKF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYyXzM3NywgX19wM18zNzcpLCBfX3JldjBfMzc3LCBfX3AxXzM3Nyk7IFwKICBfX3JldF8zNzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNzcsIF9fcmV0XzM3NywgMSwgMCk7IFwKICBfX3JldF8zNzc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3MzMihfX3AwXzM3OCwgX19wMV8zNzgsIF9fcDJfMzc4LCBfX3AzXzM3OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzc4ID0gX19wMF8zNzg7IFwKICBpbnQzMngyX3QgX19zMl8zNzggPSBfX3AyXzM3ODsgXAogIGludDMyeDJfdCBfX3JldF8zNzg7IFwKICBfX3JldF8zNzggPSB2c2V0X2xhbmVfczMyKHZnZXRfbGFuZV9zMzIoX19zMl8zNzgsIF9fcDNfMzc4KSwgX19zMF8zNzgsIF9fcDFfMzc4KTsgXAogIF9fcmV0XzM3ODsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfczMyKF9fcDBfMzc5LCBfX3AxXzM3OSwgX19wMl8zNzksIF9fcDNfMzc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zNzkgPSBfX3AwXzM3OTsgXAogIGludDMyeDJfdCBfX3MyXzM3OSA9IF9fcDJfMzc5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zNzk7ICBfX3JldjBfMzc5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNzksIF9fczBfMzc5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMzc5OyAgX19yZXYyXzM3OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc5LCBfX3MyXzM3OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzc5OyBcCiAgX19yZXRfMzc5ID0gX19ub3N3YXBfdnNldF9sYW5lX3MzMihfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2Ml8zNzksIF9fcDNfMzc5KSwgX19yZXYwXzM3OSwgX19wMV8zNzkpOyBcCiAgX19yZXRfMzc5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzc5LCBfX3JldF8zNzksIDEsIDApOyBcCiAgX19yZXRfMzc5OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y29weV9sYW5lX3M2NChfX3AwXzM4MCwgX19wMV8zODAsIF9fcDJfMzgwLCBfX3AzXzM4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMzgwID0gX19wMF8zODA7IFwKICBpbnQ2NHgxX3QgX19zMl8zODAgPSBfX3AyXzM4MDsgXAogIGludDY0eDFfdCBfX3JldF8zODA7IFwKICBfX3JldF8zODAgPSB2c2V0X2xhbmVfczY0KHZnZXRfbGFuZV9zNjQoX19zMl8zODAsIF9fcDNfMzgwKSwgX19zMF8zODAsIF9fcDFfMzgwKTsgXAogIF9fcmV0XzM4MDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3MxNihfX3AwXzM4MSwgX19wMV8zODEsIF9fcDJfMzgxLCBfX3AzXzM4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzgxID0gX19wMF8zODE7IFwKICBpbnQxNng0X3QgX19zMl8zODEgPSBfX3AyXzM4MTsgXAogIGludDE2eDRfdCBfX3JldF8zODE7IFwKICBfX3JldF8zODEgPSB2c2V0X2xhbmVfczE2KHZnZXRfbGFuZV9zMTYoX19zMl8zODEsIF9fcDNfMzgxKSwgX19zMF8zODEsIF9fcDFfMzgxKTsgXAogIF9fcmV0XzM4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfczE2KF9fcDBfMzgyLCBfX3AxXzM4MiwgX19wMl8zODIsIF9fcDNfMzgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zODIgPSBfX3AwXzM4MjsgXAogIGludDE2eDRfdCBfX3MyXzM4MiA9IF9fcDJfMzgyOyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zODI7ICBfX3JldjBfMzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODIsIF9fczBfMzgyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzgyOyAgX19yZXYyXzM4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzgyLCBfX3MyXzM4MiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfMzgyOyBcCiAgX19yZXRfMzgyID0gX19ub3N3YXBfdnNldF9sYW5lX3MxNihfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2Ml8zODIsIF9fcDNfMzgyKSwgX19yZXYwXzM4MiwgX19wMV8zODIpOyBcCiAgX19yZXRfMzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzgyLCBfX3JldF8zODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3A4KF9fcDBfMzgzLCBfX3AxXzM4MywgX19wMl8zODMsIF9fcDNfMzgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfMzgzID0gX19wMF8zODM7IFwKICBwb2x5OHgxNl90IF9fczJfMzgzID0gX19wMl8zODM7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM4MzsgXAogIF9fcmV0XzM4MyA9IHZzZXRxX2xhbmVfcDgodmdldHFfbGFuZV9wOChfX3MyXzM4MywgX19wM18zODMpLCBfX3MwXzM4MywgX19wMV8zODMpOyBcCiAgX19yZXRfMzgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3A4KF9fcDBfMzg0LCBfX3AxXzM4NCwgX19wMl8zODQsIF9fcDNfMzg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfMzg0ID0gX19wMF8zODQ7IFwKICBwb2x5OHgxNl90IF9fczJfMzg0ID0gX19wMl8zODQ7IFwKICBwb2x5OHgxNl90IF9fcmV2MF8zODQ7ICBfX3JldjBfMzg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODQsIF9fczBfMzg0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYyXzM4NDsgIF9fcmV2Ml8zODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM4NCwgX19zMl8zODQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldF8zODQ7IFwKICBfX3JldF8zODQgPSBfX25vc3dhcF92c2V0cV9sYW5lX3A4KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDgoX19yZXYyXzM4NCwgX19wM18zODQpLCBfX3JldjBfMzg0LCBfX3AxXzM4NCk7IFwKICBfX3JldF8zODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zODQsIF9fcmV0XzM4NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfcDE2KF9fcDBfMzg1LCBfX3AxXzM4NSwgX19wMl8zODUsIF9fcDNfMzg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzg1ID0gX19wMF8zODU7IFwKICBwb2x5MTZ4OF90IF9fczJfMzg1ID0gX19wMl8zODU7IFwKICBwb2x5MTZ4OF90IF9fcmV0XzM4NTsgXAogIF9fcmV0XzM4NSA9IHZzZXRxX2xhbmVfcDE2KHZnZXRxX2xhbmVfcDE2KF9fczJfMzg1LCBfX3AzXzM4NSksIF9fczBfMzg1LCBfX3AxXzM4NSk7IFwKICBfX3JldF8zODU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfcDE2KF9fcDBfMzg2LCBfX3AxXzM4NiwgX19wMl8zODYsIF9fcDNfMzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzg2ID0gX19wMF8zODY7IFwKICBwb2x5MTZ4OF90IF9fczJfMzg2ID0gX19wMl8zODY7IFwKICBwb2x5MTZ4OF90IF9fcmV2MF8zODY7ICBfX3JldjBfMzg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODYsIF9fczBfMzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXYyXzM4NjsgIF9fcmV2Ml8zODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM4NiwgX19zMl8zODYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldF8zODY7IFwKICBfX3JldF8zODYgPSBfX25vc3dhcF92c2V0cV9sYW5lX3AxNihfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3JldjJfMzg2LCBfX3AzXzM4NiksIF9fcmV2MF8zODYsIF9fcDFfMzg2KTsgXAogIF9fcmV0XzM4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM4NiwgX19yZXRfMzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV91OChfX3AwXzM4NywgX19wMV8zODcsIF9fcDJfMzg3LCBfX3AzXzM4NykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzM4NyA9IF9fcDBfMzg3OyBcCiAgdWludDh4MTZfdCBfX3MyXzM4NyA9IF9fcDJfMzg3OyBcCiAgdWludDh4MTZfdCBfX3JldF8zODc7IFwKICBfX3JldF8zODcgPSB2c2V0cV9sYW5lX3U4KHZnZXRxX2xhbmVfdTgoX19zMl8zODcsIF9fcDNfMzg3KSwgX19zMF8zODcsIF9fcDFfMzg3KTsgXAogIF9fcmV0XzM4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV91OChfX3AwXzM4OCwgX19wMV8zODgsIF9fcDJfMzg4LCBfX3AzXzM4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzM4OCA9IF9fcDBfMzg4OyBcCiAgdWludDh4MTZfdCBfX3MyXzM4OCA9IF9fcDJfMzg4OyBcCiAgdWludDh4MTZfdCBfX3JldjBfMzg4OyAgX19yZXYwXzM4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzg4LCBfX3MwXzM4OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2Ml8zODg7ICBfX3JldjJfMzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zODgsIF9fczJfMzg4LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzg4OyBcCiAgX19yZXRfMzg4ID0gX19ub3N3YXBfdnNldHFfbGFuZV91OChfX25vc3dhcF92Z2V0cV9sYW5lX3U4KF9fcmV2Ml8zODgsIF9fcDNfMzg4KSwgX19yZXYwXzM4OCwgX19wMV8zODgpOyBcCiAgX19yZXRfMzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzg4LCBfX3JldF8zODgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzg4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3UzMihfX3AwXzM4OSwgX19wMV8zODksIF9fcDJfMzg5LCBfX3AzXzM4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzM4OSA9IF9fcDBfMzg5OyBcCiAgdWludDMyeDRfdCBfX3MyXzM4OSA9IF9fcDJfMzg5OyBcCiAgdWludDMyeDRfdCBfX3JldF8zODk7IFwKICBfX3JldF8zODkgPSB2c2V0cV9sYW5lX3UzMih2Z2V0cV9sYW5lX3UzMihfX3MyXzM4OSwgX19wM18zODkpLCBfX3MwXzM4OSwgX19wMV8zODkpOyBcCiAgX19yZXRfMzg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3UzMihfX3AwXzM5MCwgX19wMV8zOTAsIF9fcDJfMzkwLCBfX3AzXzM5MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzM5MCA9IF9fcDBfMzkwOyBcCiAgdWludDMyeDRfdCBfX3MyXzM5MCA9IF9fcDJfMzkwOyBcCiAgdWludDMyeDRfdCBfX3JldjBfMzkwOyAgX19yZXYwXzM5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzkwLCBfX3MwXzM5MCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml8zOTA7ICBfX3JldjJfMzkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zOTAsIF9fczJfMzkwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMzkwOyBcCiAgX19yZXRfMzkwID0gX19ub3N3YXBfdnNldHFfbGFuZV91MzIoX19ub3N3YXBfdmdldHFfbGFuZV91MzIoX19yZXYyXzM5MCwgX19wM18zOTApLCBfX3JldjBfMzkwLCBfX3AxXzM5MCk7IFwKICBfX3JldF8zOTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zOTAsIF9fcmV0XzM5MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zOTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfdTY0KF9fcDBfMzkxLCBfX3AxXzM5MSwgX19wMl8zOTEsIF9fcDNfMzkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzkxID0gX19wMF8zOTE7IFwKICB1aW50NjR4Ml90IF9fczJfMzkxID0gX19wMl8zOTE7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM5MTsgXAogIF9fcmV0XzM5MSA9IHZzZXRxX2xhbmVfdTY0KHZnZXRxX2xhbmVfdTY0KF9fczJfMzkxLCBfX3AzXzM5MSksIF9fczBfMzkxLCBfX3AxXzM5MSk7IFwKICBfX3JldF8zOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfdTY0KF9fcDBfMzkyLCBfX3AxXzM5MiwgX19wMl8zOTIsIF9fcDNfMzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzkyID0gX19wMF8zOTI7IFwKICB1aW50NjR4Ml90IF9fczJfMzkyID0gX19wMl8zOTI7IFwKICB1aW50NjR4Ml90IF9fcmV2MF8zOTI7ICBfX3JldjBfMzkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zOTIsIF9fczBfMzkyLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYyXzM5MjsgIF9fcmV2Ml8zOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM5MiwgX19zMl8zOTIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF8zOTI7IFwKICBfX3JldF8zOTIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3U2NChfX25vc3dhcF92Z2V0cV9sYW5lX3U2NChfX3JldjJfMzkyLCBfX3AzXzM5MiksIF9fcmV2MF8zOTIsIF9fcDFfMzkyKTsgXAogIF9fcmV0XzM5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM5MiwgX19yZXRfMzkyLCAxLCAwKTsgXAogIF9fcmV0XzM5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV91MTYoX19wMF8zOTMsIF9fcDFfMzkzLCBfX3AyXzM5MywgX19wM18zOTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF8zOTMgPSBfX3AwXzM5MzsgXAogIHVpbnQxNng4X3QgX19zMl8zOTMgPSBfX3AyXzM5MzsgXAogIHVpbnQxNng4X3QgX19yZXRfMzkzOyBcCiAgX19yZXRfMzkzID0gdnNldHFfbGFuZV91MTYodmdldHFfbGFuZV91MTYoX19zMl8zOTMsIF9fcDNfMzkzKSwgX19zMF8zOTMsIF9fcDFfMzkzKTsgXAogIF9fcmV0XzM5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV91MTYoX19wMF8zOTQsIF9fcDFfMzk0LCBfX3AyXzM5NCwgX19wM18zOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF8zOTQgPSBfX3AwXzM5NDsgXAogIHVpbnQxNng4X3QgX19zMl8zOTQgPSBfX3AyXzM5NDsgXAogIHVpbnQxNng4X3QgX19yZXYwXzM5NDsgIF9fcmV2MF8zOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM5NCwgX19zMF8zOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfMzk0OyAgX19yZXYyXzM5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk0LCBfX3MyXzM5NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzM5NDsgXAogIF9fcmV0XzM5NCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfdTE2KF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTE2KF9fcmV2Ml8zOTQsIF9fcDNfMzk0KSwgX19yZXYwXzM5NCwgX19wMV8zOTQpOyBcCiAgX19yZXRfMzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzk0LCBfX3JldF8zOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3M4KF9fcDBfMzk1LCBfX3AxXzM5NSwgX19wMl8zOTUsIF9fcDNfMzk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zOTUgPSBfX3AwXzM5NTsgXAogIGludDh4MTZfdCBfX3MyXzM5NSA9IF9fcDJfMzk1OyBcCiAgaW50OHgxNl90IF9fcmV0XzM5NTsgXAogIF9fcmV0XzM5NSA9IHZzZXRxX2xhbmVfczgodmdldHFfbGFuZV9zOChfX3MyXzM5NSwgX19wM18zOTUpLCBfX3MwXzM5NSwgX19wMV8zOTUpOyBcCiAgX19yZXRfMzk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3M4KF9fcDBfMzk2LCBfX3AxXzM5NiwgX19wMl8zOTYsIF9fcDNfMzk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zOTYgPSBfX3AwXzM5NjsgXAogIGludDh4MTZfdCBfX3MyXzM5NiA9IF9fcDJfMzk2OyBcCiAgaW50OHgxNl90IF9fcmV2MF8zOTY7ICBfX3JldjBfMzk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zOTYsIF9fczBfMzk2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjJfMzk2OyAgX19yZXYyXzM5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk2LCBfX3MyXzM5NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfMzk2OyBcCiAgX19yZXRfMzk2ID0gX19ub3N3YXBfdnNldHFfbGFuZV9zOChfX25vc3dhcF92Z2V0cV9sYW5lX3M4KF9fcmV2Ml8zOTYsIF9fcDNfMzk2KSwgX19yZXYwXzM5NiwgX19wMV8zOTYpOyBcCiAgX19yZXRfMzk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzk2LCBfX3JldF8zOTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzk2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2YzMihfX3AwXzM5NywgX19wMV8zOTcsIF9fcDJfMzk3LCBfX3AzXzM5NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zOTcgPSBfX3AwXzM5NzsgXAogIGZsb2F0MzJ4NF90IF9fczJfMzk3ID0gX19wMl8zOTc7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zOTc7IFwKICBfX3JldF8zOTcgPSB2c2V0cV9sYW5lX2YzMih2Z2V0cV9sYW5lX2YzMihfX3MyXzM5NywgX19wM18zOTcpLCBfX3MwXzM5NywgX19wMV8zOTcpOyBcCiAgX19yZXRfMzk3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2YzMihfX3AwXzM5OCwgX19wMV8zOTgsIF9fcDJfMzk4LCBfX3AzXzM5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zOTggPSBfX3AwXzM5ODsgXAogIGZsb2F0MzJ4NF90IF9fczJfMzk4ID0gX19wMl8zOTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMzk4OyAgX19yZXYwXzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzk4LCBfX3MwXzM5OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMzk4OyAgX19yZXYyXzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk4LCBfX3MyXzM5OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zOTg7IFwKICBfX3JldF8zOTggPSBfX25vc3dhcF92c2V0cV9sYW5lX2YzMihfX25vc3dhcF92Z2V0cV9sYW5lX2YzMihfX3JldjJfMzk4LCBfX3AzXzM5OCksIF9fcmV2MF8zOTgsIF9fcDFfMzk4KTsgXAogIF9fcmV0XzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM5OCwgX19yZXRfMzk4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMzIoX19wMF8zOTksIF9fcDFfMzk5LCBfX3AyXzM5OSwgX19wM18zOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzM5OSA9IF9fcDBfMzk5OyBcCiAgaW50MzJ4NF90IF9fczJfMzk5ID0gX19wMl8zOTk7IFwKICBpbnQzMng0X3QgX19yZXRfMzk5OyBcCiAgX19yZXRfMzk5ID0gdnNldHFfbGFuZV9zMzIodmdldHFfbGFuZV9zMzIoX19zMl8zOTksIF9fcDNfMzk5KSwgX19zMF8zOTksIF9fcDFfMzk5KTsgXAogIF9fcmV0XzM5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMzIoX19wMF80MDAsIF9fcDFfNDAwLCBfX3AyXzQwMCwgX19wM180MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzQwMCA9IF9fcDBfNDAwOyBcCiAgaW50MzJ4NF90IF9fczJfNDAwID0gX19wMl80MDA7IFwKICBpbnQzMng0X3QgX19yZXYwXzQwMDsgIF9fcmV2MF80MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwMCwgX19zMF80MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml80MDA7ICBfX3JldjJfNDAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDAsIF9fczJfNDAwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF80MDA7IFwKICBfX3JldF80MDAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MzMihfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfNDAwLCBfX3AzXzQwMCksIF9fcmV2MF80MDAsIF9fcDFfNDAwKTsgXAogIF9fcmV0XzQwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwMCwgX19yZXRfNDAwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zNjQoX19wMF80MDEsIF9fcDFfNDAxLCBfX3AyXzQwMSwgX19wM180MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQwMSA9IF9fcDBfNDAxOyBcCiAgaW50NjR4Ml90IF9fczJfNDAxID0gX19wMl80MDE7IFwKICBpbnQ2NHgyX3QgX19yZXRfNDAxOyBcCiAgX19yZXRfNDAxID0gdnNldHFfbGFuZV9zNjQodmdldHFfbGFuZV9zNjQoX19zMl80MDEsIF9fcDNfNDAxKSwgX19zMF80MDEsIF9fcDFfNDAxKTsgXAogIF9fcmV0XzQwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zNjQoX19wMF80MDIsIF9fcDFfNDAyLCBfX3AyXzQwMiwgX19wM180MDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQwMiA9IF9fcDBfNDAyOyBcCiAgaW50NjR4Ml90IF9fczJfNDAyID0gX19wMl80MDI7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzQwMjsgIF9fcmV2MF80MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwMiwgX19zMF80MDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2Ml80MDI7ICBfX3JldjJfNDAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDIsIF9fczJfNDAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF80MDI7IFwKICBfX3JldF80MDIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NChfX25vc3dhcF92Z2V0cV9sYW5lX3M2NChfX3JldjJfNDAyLCBfX3AzXzQwMiksIF9fcmV2MF80MDIsIF9fcDFfNDAyKTsgXAogIF9fcmV0XzQwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwMiwgX19yZXRfNDAyLCAxLCAwKTsgXAogIF9fcmV0XzQwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMTYoX19wMF80MDMsIF9fcDFfNDAzLCBfX3AyXzQwMywgX19wM180MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzQwMyA9IF9fcDBfNDAzOyBcCiAgaW50MTZ4OF90IF9fczJfNDAzID0gX19wMl80MDM7IFwKICBpbnQxNng4X3QgX19yZXRfNDAzOyBcCiAgX19yZXRfNDAzID0gdnNldHFfbGFuZV9zMTYodmdldHFfbGFuZV9zMTYoX19zMl80MDMsIF9fcDNfNDAzKSwgX19zMF80MDMsIF9fcDFfNDAzKTsgXAogIF9fcmV0XzQwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMTYoX19wMF80MDQsIF9fcDFfNDA0LCBfX3AyXzQwNCwgX19wM180MDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzQwNCA9IF9fcDBfNDA0OyBcCiAgaW50MTZ4OF90IF9fczJfNDA0ID0gX19wMl80MDQ7IFwKICBpbnQxNng4X3QgX19yZXYwXzQwNDsgIF9fcmV2MF80MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwNCwgX19zMF80MDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml80MDQ7ICBfX3JldjJfNDA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDQsIF9fczJfNDA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF80MDQ7IFwKICBfX3JldF80MDQgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNihfX25vc3dhcF92Z2V0cV9sYW5lX3MxNihfX3JldjJfNDA0LCBfX3AzXzQwNCksIF9fcmV2MF80MDQsIF9fcDFfNDA0KTsgXAogIF9fcmV0XzQwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwNCwgX19yZXRfNDA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3A4KF9fcDBfNDA1LCBfX3AxXzQwNSwgX19wMl80MDUsIF9fcDNfNDA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF80MDUgPSBfX3AwXzQwNTsgXAogIHBvbHk4eDE2X3QgX19zMl80MDUgPSBfX3AyXzQwNTsgXAogIHBvbHk4eDhfdCBfX3JldF80MDU7IFwKICBfX3JldF80MDUgPSB2c2V0X2xhbmVfcDgodmdldHFfbGFuZV9wOChfX3MyXzQwNSwgX19wM180MDUpLCBfX3MwXzQwNSwgX19wMV80MDUpOyBcCiAgX19yZXRfNDA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfcDgoX19wMF80MDYsIF9fcDFfNDA2LCBfX3AyXzQwNiwgX19wM180MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwXzQwNiA9IF9fcDBfNDA2OyBcCiAgcG9seTh4MTZfdCBfX3MyXzQwNiA9IF9fcDJfNDA2OyBcCiAgcG9seTh4OF90IF9fcmV2MF80MDY7ICBfX3JldjBfNDA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MDYsIF9fczBfNDA2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYyXzQwNjsgIF9fcmV2Ml80MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQwNiwgX19zMl80MDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0XzQwNjsgXAogIF9fcmV0XzQwNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9wOChfX25vc3dhcF92Z2V0cV9sYW5lX3A4KF9fcmV2Ml80MDYsIF9fcDNfNDA2KSwgX19yZXYwXzQwNiwgX19wMV80MDYpOyBcCiAgX19yZXRfNDA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDA2LCBfX3JldF80MDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDA2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfcDE2KF9fcDBfNDA3LCBfX3AxXzQwNywgX19wMl80MDcsIF9fcDNfNDA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfNDA3ID0gX19wMF80MDc7IFwKICBwb2x5MTZ4OF90IF9fczJfNDA3ID0gX19wMl80MDc7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzQwNzsgXAogIF9fcmV0XzQwNyA9IHZzZXRfbGFuZV9wMTYodmdldHFfbGFuZV9wMTYoX19zMl80MDcsIF9fcDNfNDA3KSwgX19zMF80MDcsIF9fcDFfNDA3KTsgXAogIF9fcmV0XzQwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3AxNihfX3AwXzQwOCwgX19wMV80MDgsIF9fcDJfNDA4LCBfX3AzXzQwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwXzQwOCA9IF9fcDBfNDA4OyBcCiAgcG9seTE2eDhfdCBfX3MyXzQwOCA9IF9fcDJfNDA4OyBcCiAgcG9seTE2eDRfdCBfX3JldjBfNDA4OyAgX19yZXYwXzQwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDA4LCBfX3MwXzQwOCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV2Ml80MDg7ICBfX3JldjJfNDA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDgsIF9fczJfNDA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXRfNDA4OyBcCiAgX19yZXRfNDA4ID0gX19ub3N3YXBfdnNldF9sYW5lX3AxNihfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3JldjJfNDA4LCBfX3AzXzQwOCksIF9fcmV2MF80MDgsIF9fcDFfNDA4KTsgXAogIF9fcmV0XzQwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwOCwgX19yZXRfNDA4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3U4KF9fcDBfNDA5LCBfX3AxXzQwOSwgX19wMl80MDksIF9fcDNfNDA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF80MDkgPSBfX3AwXzQwOTsgXAogIHVpbnQ4eDE2X3QgX19zMl80MDkgPSBfX3AyXzQwOTsgXAogIHVpbnQ4eDhfdCBfX3JldF80MDk7IFwKICBfX3JldF80MDkgPSB2c2V0X2xhbmVfdTgodmdldHFfbGFuZV91OChfX3MyXzQwOSwgX19wM180MDkpLCBfX3MwXzQwOSwgX19wMV80MDkpOyBcCiAgX19yZXRfNDA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfdTgoX19wMF80MTAsIF9fcDFfNDEwLCBfX3AyXzQxMCwgX19wM180MTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzQxMCA9IF9fcDBfNDEwOyBcCiAgdWludDh4MTZfdCBfX3MyXzQxMCA9IF9fcDJfNDEwOyBcCiAgdWludDh4OF90IF9fcmV2MF80MTA7ICBfX3JldjBfNDEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MTAsIF9fczBfNDEwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYyXzQxMDsgIF9fcmV2Ml80MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxMCwgX19zMl80MTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0XzQxMDsgXAogIF9fcmV0XzQxMCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91OChfX25vc3dhcF92Z2V0cV9sYW5lX3U4KF9fcmV2Ml80MTAsIF9fcDNfNDEwKSwgX19yZXYwXzQxMCwgX19wMV80MTApOyBcCiAgX19yZXRfNDEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDEwLCBfX3JldF80MTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfdTMyKF9fcDBfNDExLCBfX3AxXzQxMSwgX19wMl80MTEsIF9fcDNfNDExKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNDExID0gX19wMF80MTE7IFwKICB1aW50MzJ4NF90IF9fczJfNDExID0gX19wMl80MTE7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzQxMTsgXAogIF9fcmV0XzQxMSA9IHZzZXRfbGFuZV91MzIodmdldHFfbGFuZV91MzIoX19zMl80MTEsIF9fcDNfNDExKSwgX19zMF80MTEsIF9fcDFfNDExKTsgXAogIF9fcmV0XzQxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3UzMihfX3AwXzQxMiwgX19wMV80MTIsIF9fcDJfNDEyLCBfX3AzXzQxMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzQxMiA9IF9fcDBfNDEyOyBcCiAgdWludDMyeDRfdCBfX3MyXzQxMiA9IF9fcDJfNDEyOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNDEyOyAgX19yZXYwXzQxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDEyLCBfX3MwXzQxMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml80MTI7ICBfX3JldjJfNDEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MTIsIF9fczJfNDEyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNDEyOyBcCiAgX19yZXRfNDEyID0gX19ub3N3YXBfdnNldF9sYW5lX3UzMihfX25vc3dhcF92Z2V0cV9sYW5lX3UzMihfX3JldjJfNDEyLCBfX3AzXzQxMiksIF9fcmV2MF80MTIsIF9fcDFfNDEyKTsgXAogIF9fcmV0XzQxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQxMiwgX19yZXRfNDEyLCAxLCAwKTsgXAogIF9fcmV0XzQxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3U2NChfX3AwXzQxMywgX19wMV80MTMsIF9fcDJfNDEzLCBfX3AzXzQxMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzQxMyA9IF9fcDBfNDEzOyBcCiAgdWludDY0eDJfdCBfX3MyXzQxMyA9IF9fcDJfNDEzOyBcCiAgdWludDY0eDFfdCBfX3JldF80MTM7IFwKICBfX3JldF80MTMgPSB2c2V0X2xhbmVfdTY0KHZnZXRxX2xhbmVfdTY0KF9fczJfNDEzLCBfX3AzXzQxMyksIF9fczBfNDEzLCBfX3AxXzQxMyk7IFwKICBfX3JldF80MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV91NjQoX19wMF80MTQsIF9fcDFfNDE0LCBfX3AyXzQxNCwgX19wM180MTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMF80MTQgPSBfX3AwXzQxNDsgXAogIHVpbnQ2NHgyX3QgX19zMl80MTQgPSBfX3AyXzQxNDsgXAogIHVpbnQ2NHgyX3QgX19yZXYyXzQxNDsgIF9fcmV2Ml80MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxNCwgX19zMl80MTQsIDEsIDApOyBcCiAgdWludDY0eDFfdCBfX3JldF80MTQ7IFwKICBfX3JldF80MTQgPSB2c2V0X2xhbmVfdTY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KF9fcmV2Ml80MTQsIF9fcDNfNDE0KSwgX19zMF80MTQsIF9fcDFfNDE0KTsgXAogIF9fcmV0XzQxNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3UxNihfX3AwXzQxNSwgX19wMV80MTUsIF9fcDJfNDE1LCBfX3AzXzQxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzQxNSA9IF9fcDBfNDE1OyBcCiAgdWludDE2eDhfdCBfX3MyXzQxNSA9IF9fcDJfNDE1OyBcCiAgdWludDE2eDRfdCBfX3JldF80MTU7IFwKICBfX3JldF80MTUgPSB2c2V0X2xhbmVfdTE2KHZnZXRxX2xhbmVfdTE2KF9fczJfNDE1LCBfX3AzXzQxNSksIF9fczBfNDE1LCBfX3AxXzQxNSk7IFwKICBfX3JldF80MTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV91MTYoX19wMF80MTYsIF9fcDFfNDE2LCBfX3AyXzQxNiwgX19wM180MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF80MTYgPSBfX3AwXzQxNjsgXAogIHVpbnQxNng4X3QgX19zMl80MTYgPSBfX3AyXzQxNjsgXAogIHVpbnQxNng0X3QgX19yZXYwXzQxNjsgIF9fcmV2MF80MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQxNiwgX19zMF80MTYsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNDE2OyAgX19yZXYyXzQxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDE2LCBfX3MyXzQxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzQxNjsgXAogIF9fcmV0XzQxNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91MTYoX19ub3N3YXBfdmdldHFfbGFuZV91MTYoX19yZXYyXzQxNiwgX19wM180MTYpLCBfX3JldjBfNDE2LCBfX3AxXzQxNik7IFwKICBfX3JldF80MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MTYsIF9fcmV0XzQxNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9zOChfX3AwXzQxNywgX19wMV80MTcsIF9fcDJfNDE3LCBfX3AzXzQxNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF80MTcgPSBfX3AwXzQxNzsgXAogIGludDh4MTZfdCBfX3MyXzQxNyA9IF9fcDJfNDE3OyBcCiAgaW50OHg4X3QgX19yZXRfNDE3OyBcCiAgX19yZXRfNDE3ID0gdnNldF9sYW5lX3M4KHZnZXRxX2xhbmVfczgoX19zMl80MTcsIF9fcDNfNDE3KSwgX19zMF80MTcsIF9fcDFfNDE3KTsgXAogIF9fcmV0XzQxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3M4KF9fcDBfNDE4LCBfX3AxXzQxOCwgX19wMl80MTgsIF9fcDNfNDE4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzQxOCA9IF9fcDBfNDE4OyBcCiAgaW50OHgxNl90IF9fczJfNDE4ID0gX19wMl80MTg7IFwKICBpbnQ4eDhfdCBfX3JldjBfNDE4OyAgX19yZXYwXzQxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDE4LCBfX3MwXzQxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzQxODsgIF9fcmV2Ml80MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxOCwgX19zMl80MTgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXRfNDE4OyBcCiAgX19yZXRfNDE4ID0gX19ub3N3YXBfdnNldF9sYW5lX3M4KF9fbm9zd2FwX3ZnZXRxX2xhbmVfczgoX19yZXYyXzQxOCwgX19wM180MTgpLCBfX3JldjBfNDE4LCBfX3AxXzQxOCk7IFwKICBfX3JldF80MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MTgsIF9fcmV0XzQxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9mMzIoX19wMF80MTksIF9fcDFfNDE5LCBfX3AyXzQxOSwgX19wM180MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNDE5ID0gX19wMF80MTk7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzQxOSA9IF9fcDJfNDE5OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNDE5OyBcCiAgX19yZXRfNDE5ID0gdnNldF9sYW5lX2YzMih2Z2V0cV9sYW5lX2YzMihfX3MyXzQxOSwgX19wM180MTkpLCBfX3MwXzQxOSwgX19wMV80MTkpOyBcCiAgX19yZXRfNDE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfZjMyKF9fcDBfNDIwLCBfX3AxXzQyMCwgX19wMl80MjAsIF9fcDNfNDIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzQyMCA9IF9fcDBfNDIwOyBcCiAgZmxvYXQzMng0X3QgX19zMl80MjAgPSBfX3AyXzQyMDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF80MjA7ICBfX3JldjBfNDIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MjAsIF9fczBfNDIwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml80MjA7ICBfX3JldjJfNDIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MjAsIF9fczJfNDIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzQyMDsgXAogIF9fcmV0XzQyMCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9mMzIoX19ub3N3YXBfdmdldHFfbGFuZV9mMzIoX19yZXYyXzQyMCwgX19wM180MjApLCBfX3JldjBfNDIwLCBfX3AxXzQyMCk7IFwKICBfX3JldF80MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjAsIF9fcmV0XzQyMCwgMSwgMCk7IFwKICBfX3JldF80MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9zMzIoX19wMF80MjEsIF9fcDFfNDIxLCBfX3AyXzQyMSwgX19wM180MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzQyMSA9IF9fcDBfNDIxOyBcCiAgaW50MzJ4NF90IF9fczJfNDIxID0gX19wMl80MjE7IFwKICBpbnQzMngyX3QgX19yZXRfNDIxOyBcCiAgX19yZXRfNDIxID0gdnNldF9sYW5lX3MzMih2Z2V0cV9sYW5lX3MzMihfX3MyXzQyMSwgX19wM180MjEpLCBfX3MwXzQyMSwgX19wMV80MjEpOyBcCiAgX19yZXRfNDIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfczMyKF9fcDBfNDIyLCBfX3AxXzQyMiwgX19wMl80MjIsIF9fcDNfNDIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF80MjIgPSBfX3AwXzQyMjsgXAogIGludDMyeDRfdCBfX3MyXzQyMiA9IF9fcDJfNDIyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF80MjI7ICBfX3JldjBfNDIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MjIsIF9fczBfNDIyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNDIyOyAgX19yZXYyXzQyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDIyLCBfX3MyXzQyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNDIyOyBcCiAgX19yZXRfNDIyID0gX19ub3N3YXBfdnNldF9sYW5lX3MzMihfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfNDIyLCBfX3AzXzQyMiksIF9fcmV2MF80MjIsIF9fcDFfNDIyKTsgXAogIF9fcmV0XzQyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQyMiwgX19yZXRfNDIyLCAxLCAwKTsgXAogIF9fcmV0XzQyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3M2NChfX3AwXzQyMywgX19wMV80MjMsIF9fcDJfNDIzLCBfX3AzXzQyMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfNDIzID0gX19wMF80MjM7IFwKICBpbnQ2NHgyX3QgX19zMl80MjMgPSBfX3AyXzQyMzsgXAogIGludDY0eDFfdCBfX3JldF80MjM7IFwKICBfX3JldF80MjMgPSB2c2V0X2xhbmVfczY0KHZnZXRxX2xhbmVfczY0KF9fczJfNDIzLCBfX3AzXzQyMyksIF9fczBfNDIzLCBfX3AxXzQyMyk7IFwKICBfX3JldF80MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9zNjQoX19wMF80MjQsIF9fcDFfNDI0LCBfX3AyXzQyNCwgX19wM180MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwXzQyNCA9IF9fcDBfNDI0OyBcCiAgaW50NjR4Ml90IF9fczJfNDI0ID0gX19wMl80MjQ7IFwKICBpbnQ2NHgyX3QgX19yZXYyXzQyNDsgIF9fcmV2Ml80MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQyNCwgX19zMl80MjQsIDEsIDApOyBcCiAgaW50NjR4MV90IF9fcmV0XzQyNDsgXAogIF9fcmV0XzQyNCA9IHZzZXRfbGFuZV9zNjQoX19ub3N3YXBfdmdldHFfbGFuZV9zNjQoX19yZXYyXzQyNCwgX19wM180MjQpLCBfX3MwXzQyNCwgX19wMV80MjQpOyBcCiAgX19yZXRfNDI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfczE2KF9fcDBfNDI1LCBfX3AxXzQyNSwgX19wMl80MjUsIF9fcDNfNDI1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF80MjUgPSBfX3AwXzQyNTsgXAogIGludDE2eDhfdCBfX3MyXzQyNSA9IF9fcDJfNDI1OyBcCiAgaW50MTZ4NF90IF9fcmV0XzQyNTsgXAogIF9fcmV0XzQyNSA9IHZzZXRfbGFuZV9zMTYodmdldHFfbGFuZV9zMTYoX19zMl80MjUsIF9fcDNfNDI1KSwgX19zMF80MjUsIF9fcDFfNDI1KTsgXAogIF9fcmV0XzQyNTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3MxNihfX3AwXzQyNiwgX19wMV80MjYsIF9fcDJfNDI2LCBfX3AzXzQyNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNDI2ID0gX19wMF80MjY7IFwKICBpbnQxNng4X3QgX19zMl80MjYgPSBfX3AyXzQyNjsgXAogIGludDE2eDRfdCBfX3JldjBfNDI2OyAgX19yZXYwXzQyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDI2LCBfX3MwXzQyNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzQyNjsgIF9fcmV2Ml80MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQyNiwgX19zMl80MjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQyNjsgXAogIF9fcmV0XzQyNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9zMTYoX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYyXzQyNiwgX19wM180MjYpLCBfX3JldjBfNDI2LCBfX3AxXzQyNik7IFwKICBfX3JldF80MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjYsIF9fcmV0XzQyNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZjcmVhdGVfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIGZsb2F0MzJfdCB2Y3Z0c19mMzJfczMyKGludDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRzX2YzMl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMl90IHZjdnRzX2YzMl91MzIodWludDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRzX2YzMl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NF90IHZjdnRkX2Y2NF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfZjY0X3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdmN2dGRfZjY0X3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfZjY0X3U2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mNjRfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0cV9mNjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2Y2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjdnRxX2Y2NF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2Y2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmN2dF9mNjRfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdmN2dF9mNjRfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y3Z0X2hpZ2hfZjE2X2YzMihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9mMTYoX19wMCwgdmN2dF9mMTZfZjMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y3Z0X2hpZ2hfZjE2X2YzMihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9mMTYoX19yZXYwLCBfX25vc3dhcF92Y3Z0X2YxNl9mMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRfaGlnaF9mMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjdnRfZjMyX2YxNih2Z2V0X2hpZ2hfZjE2KF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0X2hpZ2hfZjMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y3Z0X2YzMl9mMTYoX19ub3N3YXBfdmdldF9oaWdoX2YxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9oaWdoX2YzMl9mNjQoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfZjMyKF9fcDAsIHZjdnRfZjMyX2Y2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9oaWdoX2YzMl9mNjQoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfZjMyKF9fcmV2MCwgX19ub3N3YXBfdmN2dF9mMzJfZjY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2hpZ2hfZjY0X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2Y2NF9mMzIodmdldF9oaWdoX2YzMihfX3AwKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dF9oaWdoX2Y2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmN2dF9mNjRfZjMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9mMzIoX19yZXYwKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdmN2dHNfbl9mMzJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX2YzMl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRzX25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX2YzMl9zMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjY0X3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mNjRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjY0X3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2Y2NF92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmN2dF9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9mNjRfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0X25fZjY0X3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjY0X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0ZF9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fZjY0X3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGRfbl9mNjRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fZjY0X3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHNfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX3MzMl9mMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX3M2NF9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fczY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmN2dF9uX3M2NF9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zNjRfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRkX25fczY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfbl9zNjRfZjY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0c19uX3UzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHNfbl91MzJfZjMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl91NjRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fdTY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTY0X3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y3Z0X25fdTY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fdTY0X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGRfbl91NjRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fdTY0X2Y2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCl9fYWkgaW50MzJfdCB2Y3Z0c19zMzJfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19zMzJfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdmN2dGRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfczY0X2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjdnRxX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0cV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zNjRfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2Y3Z0X3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfczY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjdnRzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHNfdTMyX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y3Z0ZF91NjRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmN2dHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV91NjRfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjdnRxX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRfdTY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3U2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0YXNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGFzX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0YWRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFkX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dGFzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGFzX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dGFkX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0bXNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG1zX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0bWRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1kX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dG1zX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG1zX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dG1kX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1kX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0bnNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG5zX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0bmRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5kX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dG5zX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG5zX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dG5kX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5kX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0cHNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHBzX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0cGRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBkX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dHBzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHBzX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dHBkX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMl90IHZjdnR4ZF9mMzJfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmN2dHhkX2YzMl9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjdnR4X2YzMl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0eF9mMzJfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y3Z0eF9mMzJfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHhfZjMyX3YoKGludDh4MTZfdClfX3JldjAsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmN2dHhfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnR4X2YzMl92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnR4X2hpZ2hfZjMyX2Y2NChmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9mMzIoX19wMCwgdmN2dHhfZjMyX2Y2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dHhfaGlnaF9mMzJfZjY0KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX2YzMihfX3JldjAsIF9fbm9zd2FwX3ZjdnR4X2YzMl9mNjQoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZkaXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2ZGl2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2ZGl2cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAvIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmRpdnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAvIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2ZGl2X2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmRpdl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAvIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmRpdl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwYl9sYW5lX2k4KChwb2x5OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVfaTgoKHBvbHk4eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGJfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVfaTMyKChpbnQzMngyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwZF9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmR1cGRfbGFuZV9pNjQoKGludDY0eDFfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2kxNigoaW50MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwaF9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfaTE2KChpbnQxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGJfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwZF9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmR1cGRfbGFuZV9mNjQoKGZsb2F0NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHNfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVfZjMyKChmbG9hdDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZV9mMzIoKGZsb2F0MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZV9pMzIoKGludDMyeDJfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZkdXBkX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lX2k2NCgoaW50NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGhfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2kxNigoaW50MTZ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmR1cF9sYW5lX3A2NChfX3AwXzQyNywgX19wMV80MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjcgPSBfX3AwXzQyNzsgXAogIHBvbHk2NHgxX3QgX19yZXRfNDI3OyBcCiAgX19yZXRfNDI3ID0gc3BsYXRfbGFuZV9wNjQoX19zMF80MjcsIF9fcDFfNDI3KTsgXAogIF9fcmV0XzQyNzsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3A2NChfX3AwXzQyOCwgX19wMV80MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjggPSBfX3AwXzQyODsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDI4OyBcCiAgX19yZXRfNDI4ID0gc3BsYXRxX2xhbmVfcDY0KF9fczBfNDI4LCBfX3AxXzQyOCk7IFwKICBfX3JldF80Mjg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3A2NChfX3AwXzQyOSwgX19wMV80MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjkgPSBfX3AwXzQyOTsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDI5OyBcCiAgX19yZXRfNDI5ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfcDY0KF9fczBfNDI5LCBfX3AxXzQyOSk7IFwKICBfX3JldF80MjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjksIF9fcmV0XzQyOSwgMSwgMCk7IFwKICBfX3JldF80Mjk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2Y2NChfX3AwXzQzMCwgX19wMV80MzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfNDMwID0gX19wMF80MzA7IFwKICBmbG9hdDY0eDJfdCBfX3JldF80MzA7IFwKICBfX3JldF80MzAgPSBzcGxhdHFfbGFuZV9mNjQoX19zMF80MzAsIF9fcDFfNDMwKTsgXAogIF9fcmV0XzQzMDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfZjY0KF9fcDBfNDMxLCBfX3AxXzQzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF80MzEgPSBfX3AwXzQzMTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzQzMTsgXAogIF9fcmV0XzQzMSA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2Y2NChfX3MwXzQzMSwgX19wMV80MzEpOyBcCiAgX19yZXRfNDMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMxLCBfX3JldF80MzEsIDEsIDApOyBcCiAgX19yZXRfNDMxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9mMTYoX19wMF80MzIsIF9fcDFfNDMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzQzMiA9IF9fcDBfNDMyOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfNDMyOyBcCiAgX19yZXRfNDMyID0gc3BsYXRxX2xhbmVfZjE2KF9fczBfNDMyLCBfX3AxXzQzMik7IFwKICBfX3JldF80MzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2YxNihfX3AwXzQzMywgX19wMV80MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDMzID0gX19wMF80MzM7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfNDMzOyAgX19yZXYwXzQzMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDMzLCBfX3MwXzQzMywgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF80MzM7IFwKICBfX3JldF80MzMgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19yZXYwXzQzMywgX19wMV80MzMpOyBcCiAgX19yZXRfNDMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMzLCBfX3JldF80MzMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDMzOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwX2xhbmVfZjY0KF9fcDBfNDM0LCBfX3AxXzQzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF80MzQgPSBfX3AwXzQzNDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzQzNDsgXAogIF9fcmV0XzQzNCA9IHNwbGF0X2xhbmVfZjY0KF9fczBfNDM0LCBfX3AxXzQzNCk7IFwKICBfX3JldF80MzQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX2YxNihfX3AwXzQzNSwgX19wMV80MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDM1ID0gX19wMF80MzU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80MzU7IFwKICBfX3JldF80MzUgPSBzcGxhdF9sYW5lX2YxNihfX3MwXzQzNSwgX19wMV80MzUpOyBcCiAgX19yZXRfNDM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX2YxNihfX3AwXzQzNiwgX19wMV80MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDM2ID0gX19wMF80MzY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfNDM2OyAgX19yZXYwXzQzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDM2LCBfX3MwXzQzNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80MzY7IFwKICBfX3JldF80MzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YxNihfX3JldjBfNDM2LCBfX3AxXzQzNik7IFwKICBfX3JldF80MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MzYsIF9fcmV0XzQzNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVxX2k4KChwb2x5OHgxNl90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwYl9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwYl9sYW5lcV9pOCgocG9seTh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2kxNigocG9seTE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChwb2x5MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBiX2xhbmVxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGJfbGFuZXFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwc19sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVxX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwZF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lcV9pNjQoKGludDY0eDJfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2kxNigoaW50MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwaF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lcV9pMTYoKGludDE2eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVxX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2Y2NCgoZmxvYXQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBkX2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lcV9mNjQoKGZsb2F0NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZXFfZjMyKChmbG9hdDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVxX2YzMigoZmxvYXQzMng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHNfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwZF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9wOChfX3AwXzQzNywgX19wMV80MzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMF80MzcgPSBfX3AwXzQzNzsgXAogIHBvbHk4eDhfdCBfX3JldF80Mzc7IFwKICBfX3JldF80MzcgPSBzcGxhdF9sYW5lcV9wOChfX3MwXzQzNywgX19wMV80MzcpOyBcCiAgX19yZXRfNDM3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV9wOChfX3AwXzQzOCwgX19wMV80MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMF80MzggPSBfX3AwXzQzODsgXAogIHBvbHk4eDE2X3QgX19yZXYwXzQzODsgIF9fcmV2MF80MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQzOCwgX19zMF80MzgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0XzQzODsgXAogIF9fcmV0XzQzOCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3A4KF9fcmV2MF80MzgsIF9fcDFfNDM4KTsgXAogIF9fcmV0XzQzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQzOCwgX19yZXRfNDM4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQzODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfcDY0KF9fcDBfNDM5LCBfX3AxXzQzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQzOSA9IF9fcDBfNDM5OyBcCiAgcG9seTY0eDFfdCBfX3JldF80Mzk7IFwKICBfX3JldF80MzkgPSBzcGxhdF9sYW5lcV9wNjQoX19zMF80MzksIF9fcDFfNDM5KTsgXAogIF9fcmV0XzQzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfcDY0KF9fcDBfNDQwLCBfX3AxXzQ0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQ0MCA9IF9fcDBfNDQwOyBcCiAgcG9seTY0eDJfdCBfX3JldjBfNDQwOyAgX19yZXYwXzQ0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDQwLCBfX3MwXzQ0MCwgMSwgMCk7IFwKICBwb2x5NjR4MV90IF9fcmV0XzQ0MDsgXAogIF9fcmV0XzQ0MCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3A2NChfX3JldjBfNDQwLCBfX3AxXzQ0MCk7IFwKICBfX3JldF80NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3AxNihfX3AwXzQ0MSwgX19wMV80NDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMF80NDEgPSBfX3AwXzQ0MTsgXAogIHBvbHkxNng0X3QgX19yZXRfNDQxOyBcCiAgX19yZXRfNDQxID0gc3BsYXRfbGFuZXFfcDE2KF9fczBfNDQxLCBfX3AxXzQ0MSk7IFwKICBfX3JldF80NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3AxNihfX3AwXzQ0MiwgX19wMV80NDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMF80NDIgPSBfX3AwXzQ0MjsgXAogIHBvbHkxNng4X3QgX19yZXYwXzQ0MjsgIF9fcmV2MF80NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ0MiwgX19zMF80NDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldF80NDI7IFwKICBfX3JldF80NDIgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9wMTYoX19yZXYwXzQ0MiwgX19wMV80NDIpOyBcCiAgX19yZXRfNDQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDQyLCBfX3JldF80NDIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDQyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDgoX19wMF80NDMsIF9fcDFfNDQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfNDQzID0gX19wMF80NDM7IFwKICBwb2x5OHgxNl90IF9fcmV0XzQ0MzsgXAogIF9fcmV0XzQ0MyA9IHNwbGF0cV9sYW5lcV9wOChfX3MwXzQ0MywgX19wMV80NDMpOyBcCiAgX19yZXRfNDQzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDgoX19wMF80NDQsIF9fcDFfNDQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfNDQ0ID0gX19wMF80NDQ7IFwKICBwb2x5OHgxNl90IF9fcmV2MF80NDQ7ICBfX3JldjBfNDQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NDQsIF9fczBfNDQ0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXRfNDQ0OyBcCiAgX19yZXRfNDQ0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3A4KF9fcmV2MF80NDQsIF9fcDFfNDQ0KTsgXAogIF9fcmV0XzQ0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ0NCwgX19yZXRfNDQ0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX3A2NChfX3AwXzQ0NSwgX19wMV80NDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF80NDUgPSBfX3AwXzQ0NTsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDQ1OyBcCiAgX19yZXRfNDQ1ID0gc3BsYXRxX2xhbmVxX3A2NChfX3MwXzQ0NSwgX19wMV80NDUpOyBcCiAgX19yZXRfNDQ1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDY0KF9fcDBfNDQ2LCBfX3AxXzQ0NikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQ0NiA9IF9fcDBfNDQ2OyBcCiAgcG9seTY0eDJfdCBfX3JldjBfNDQ2OyAgX19yZXYwXzQ0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDQ2LCBfX3MwXzQ0NiwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0XzQ0NjsgXAogIF9fcmV0XzQ0NiA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wNjQoX19yZXYwXzQ0NiwgX19wMV80NDYpOyBcCiAgX19yZXRfNDQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDQ2LCBfX3JldF80NDYsIDEsIDApOyBcCiAgX19yZXRfNDQ2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDE2KF9fcDBfNDQ3LCBfX3AxXzQ0NykgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwXzQ0NyA9IF9fcDBfNDQ3OyBcCiAgcG9seTE2eDhfdCBfX3JldF80NDc7IFwKICBfX3JldF80NDcgPSBzcGxhdHFfbGFuZXFfcDE2KF9fczBfNDQ3LCBfX3AxXzQ0Nyk7IFwKICBfX3JldF80NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9wMTYoX19wMF80NDgsIF9fcDFfNDQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfNDQ4ID0gX19wMF80NDg7IFwKICBwb2x5MTZ4OF90IF9fcmV2MF80NDg7ICBfX3JldjBfNDQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NDgsIF9fczBfNDQ4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXRfNDQ4OyBcCiAgX19yZXRfNDQ4ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3AxNihfX3JldjBfNDQ4LCBfX3AxXzQ0OCk7IFwKICBfX3JldF80NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NDgsIF9fcmV0XzQ0OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV91OChfX3AwXzQ0OSwgX19wMV80NDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMF80NDkgPSBfX3AwXzQ0OTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfNDQ5OyBcCiAgX19yZXRfNDQ5ID0gc3BsYXRxX2xhbmVxX3U4KF9fczBfNDQ5LCBfX3AxXzQ0OSk7IFwKICBfX3JldF80NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV91OChfX3AwXzQ1MCwgX19wMV80NTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMF80NTAgPSBfX3AwXzQ1MDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwXzQ1MDsgIF9fcmV2MF80NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1MCwgX19zMF80NTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldF80NTA7IFwKICBfX3JldF80NTAgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTgoX19yZXYwXzQ1MCwgX19wMV80NTApOyBcCiAgX19yZXRfNDUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDUwLCBfX3JldF80NTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDUwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfdTMyKF9fcDBfNDUxLCBfX3AxXzQ1MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzQ1MSA9IF9fcDBfNDUxOyBcCiAgdWludDMyeDRfdCBfX3JldF80NTE7IFwKICBfX3JldF80NTEgPSBzcGxhdHFfbGFuZXFfdTMyKF9fczBfNDUxLCBfX3AxXzQ1MSk7IFwKICBfX3JldF80NTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV91MzIoX19wMF80NTIsIF9fcDFfNDUyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDUyID0gX19wMF80NTI7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80NTI7ICBfX3JldjBfNDUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NTIsIF9fczBfNDUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNDUyOyBcCiAgX19yZXRfNDUyID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UzMihfX3JldjBfNDUyLCBfX3AxXzQ1Mik7IFwKICBfX3JldF80NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NTIsIF9fcmV0XzQ1MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV91NjQoX19wMF80NTMsIF9fcDFfNDUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNDUzID0gX19wMF80NTM7IFwKICB1aW50NjR4Ml90IF9fcmV0XzQ1MzsgXAogIF9fcmV0XzQ1MyA9IHNwbGF0cV9sYW5lcV91NjQoX19zMF80NTMsIF9fcDFfNDUzKTsgXAogIF9fcmV0XzQ1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX3U2NChfX3AwXzQ1NCwgX19wMV80NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF80NTQgPSBfX3AwXzQ1NDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwXzQ1NDsgIF9fcmV2MF80NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1NCwgX19zMF80NTQsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF80NTQ7IFwKICBfX3JldF80NTQgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTY0KF9fcmV2MF80NTQsIF9fcDFfNDU0KTsgXAogIF9fcmV0XzQ1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ1NCwgX19yZXRfNDU0LCAxLCAwKTsgXAogIF9fcmV0XzQ1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX3UxNihfX3AwXzQ1NSwgX19wMV80NTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NTUgPSBfX3AwXzQ1NTsgXAogIHVpbnQxNng4X3QgX19yZXRfNDU1OyBcCiAgX19yZXRfNDU1ID0gc3BsYXRxX2xhbmVxX3UxNihfX3MwXzQ1NSwgX19wMV80NTUpOyBcCiAgX19yZXRfNDU1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfdTE2KF9fcDBfNDU2LCBfX3AxXzQ1NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzQ1NiA9IF9fcDBfNDU2OyBcCiAgdWludDE2eDhfdCBfX3JldjBfNDU2OyAgX19yZXYwXzQ1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDU2LCBfX3MwXzQ1NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzQ1NjsgXAogIF9fcmV0XzQ1NiA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19yZXYwXzQ1NiwgX19wMV80NTYpOyBcCiAgX19yZXRfNDU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDU2LCBfX3JldF80NTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfczgoX19wMF80NTcsIF9fcDFfNDU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF80NTcgPSBfX3AwXzQ1NzsgXAogIGludDh4MTZfdCBfX3JldF80NTc7IFwKICBfX3JldF80NTcgPSBzcGxhdHFfbGFuZXFfczgoX19zMF80NTcsIF9fcDFfNDU3KTsgXAogIF9fcmV0XzQ1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX3M4KF9fcDBfNDU4LCBfX3AxXzQ1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczBfNDU4ID0gX19wMF80NTg7IFwKICBpbnQ4eDE2X3QgX19yZXYwXzQ1ODsgIF9fcmV2MF80NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1OCwgX19zMF80NTgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzQ1ODsgXAogIF9fcmV0XzQ1OCA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zOChfX3JldjBfNDU4LCBfX3AxXzQ1OCk7IFwKICBfX3JldF80NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NTgsIF9fcmV0XzQ1OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9mNjQoX19wMF80NTksIF9fcDFfNDU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzQ1OSA9IF9fcDBfNDU5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNDU5OyBcCiAgX19yZXRfNDU5ID0gc3BsYXRxX2xhbmVxX2Y2NChfX3MwXzQ1OSwgX19wMV80NTkpOyBcCiAgX19yZXRfNDU5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfZjY0KF9fcDBfNDYwLCBfX3AxXzQ2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80NjAgPSBfX3AwXzQ2MDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF80NjA7ICBfX3JldjBfNDYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NjAsIF9fczBfNDYwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzQ2MDsgXAogIF9fcmV0XzQ2MCA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19yZXYwXzQ2MCwgX19wMV80NjApOyBcCiAgX19yZXRfNDYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDYwLCBfX3JldF80NjAsIDEsIDApOyBcCiAgX19yZXRfNDYwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfZjMyKF9fcDBfNDYxLCBfX3AxXzQ2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF80NjEgPSBfX3AwXzQ2MTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ2MTsgXAogIF9fcmV0XzQ2MSA9IHNwbGF0cV9sYW5lcV9mMzIoX19zMF80NjEsIF9fcDFfNDYxKTsgXAogIF9fcmV0XzQ2MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX2YzMihfX3AwXzQ2MiwgX19wMV80NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDYyID0gX19wMF80NjI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfNDYyOyAgX19yZXYwXzQ2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDYyLCBfX3MwXzQ2MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80NjI7IFwKICBfX3JldF80NjIgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2MF80NjIsIF9fcDFfNDYyKTsgXAogIF9fcmV0XzQ2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ2MiwgX19yZXRfNDYyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX2YxNihfX3AwXzQ2MywgX19wMV80NjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfNDYzID0gX19wMF80NjM7IFwKICBmbG9hdDE2eDhfdCBfX3JldF80NjM7IFwKICBfX3JldF80NjMgPSBzcGxhdHFfbGFuZXFfZjE2KF9fczBfNDYzLCBfX3AxXzQ2Myk7IFwKICBfX3JldF80NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9mMTYoX19wMF80NjQsIF9fcDFfNDY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzQ2NCA9IF9fcDBfNDY0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzQ2NDsgIF9fcmV2MF80NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ2NCwgX19zMF80NjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfNDY0OyBcCiAgX19yZXRfNDY0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YxNihfX3JldjBfNDY0LCBfX3AxXzQ2NCk7IFwKICBfX3JldF80NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjQsIF9fcmV0XzQ2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zMzIoX19wMF80NjUsIF9fcDFfNDY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80NjUgPSBfX3AwXzQ2NTsgXAogIGludDMyeDRfdCBfX3JldF80NjU7IFwKICBfX3JldF80NjUgPSBzcGxhdHFfbGFuZXFfczMyKF9fczBfNDY1LCBfX3AxXzQ2NSk7IFwKICBfX3JldF80NjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zMzIoX19wMF80NjYsIF9fcDFfNDY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80NjYgPSBfX3AwXzQ2NjsgXAogIGludDMyeDRfdCBfX3JldjBfNDY2OyAgX19yZXYwXzQ2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDY2LCBfX3MwXzQ2NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNDY2OyBcCiAgX19yZXRfNDY2ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjBfNDY2LCBfX3AxXzQ2Nik7IFwKICBfX3JldF80NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjYsIF9fcmV0XzQ2NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zNjQoX19wMF80NjcsIF9fcDFfNDY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF80NjcgPSBfX3AwXzQ2NzsgXAogIGludDY0eDJfdCBfX3JldF80Njc7IFwKICBfX3JldF80NjcgPSBzcGxhdHFfbGFuZXFfczY0KF9fczBfNDY3LCBfX3AxXzQ2Nyk7IFwKICBfX3JldF80Njc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zNjQoX19wMF80NjgsIF9fcDFfNDY4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF80NjggPSBfX3AwXzQ2ODsgXAogIGludDY0eDJfdCBfX3JldjBfNDY4OyAgX19yZXYwXzQ2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDY4LCBfX3MwXzQ2OCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNDY4OyBcCiAgX19yZXRfNDY4ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3M2NChfX3JldjBfNDY4LCBfX3AxXzQ2OCk7IFwKICBfX3JldF80NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjgsIF9fcmV0XzQ2OCwgMSwgMCk7IFwKICBfX3JldF80Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zMTYoX19wMF80NjksIF9fcDFfNDY5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80NjkgPSBfX3AwXzQ2OTsgXAogIGludDE2eDhfdCBfX3JldF80Njk7IFwKICBfX3JldF80NjkgPSBzcGxhdHFfbGFuZXFfczE2KF9fczBfNDY5LCBfX3AxXzQ2OSk7IFwKICBfX3JldF80Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zMTYoX19wMF80NzAsIF9fcDFfNDcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80NzAgPSBfX3AwXzQ3MDsgXAogIGludDE2eDhfdCBfX3JldjBfNDcwOyAgX19yZXYwXzQ3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcwLCBfX3MwXzQ3MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNDcwOyBcCiAgX19yZXRfNDcwID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjBfNDcwLCBfX3AxXzQ3MCk7IFwKICBfX3JldF80NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NzAsIF9fcmV0XzQ3MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3U4KF9fcDBfNDcxLCBfX3AxXzQ3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzQ3MSA9IF9fcDBfNDcxOyBcCiAgdWludDh4OF90IF9fcmV0XzQ3MTsgXAogIF9fcmV0XzQ3MSA9IHNwbGF0X2xhbmVxX3U4KF9fczBfNDcxLCBfX3AxXzQ3MSk7IFwKICBfX3JldF80NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3U4KF9fcDBfNDcyLCBfX3AxXzQ3MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzQ3MiA9IF9fcDBfNDcyOyBcCiAgdWludDh4MTZfdCBfX3JldjBfNDcyOyAgX19yZXYwXzQ3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcyLCBfX3MwXzQ3MiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXRfNDcyOyBcCiAgX19yZXRfNDcyID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfdTgoX19yZXYwXzQ3MiwgX19wMV80NzIpOyBcCiAgX19yZXRfNDcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDcyLCBfX3JldF80NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDcyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV91MzIoX19wMF80NzMsIF9fcDFfNDczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDczID0gX19wMF80NzM7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzQ3MzsgXAogIF9fcmV0XzQ3MyA9IHNwbGF0X2xhbmVxX3UzMihfX3MwXzQ3MywgX19wMV80NzMpOyBcCiAgX19yZXRfNDczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV91MzIoX19wMF80NzQsIF9fcDFfNDc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDc0ID0gX19wMF80NzQ7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80NzQ7ICBfX3JldjBfNDc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NzQsIF9fczBfNDc0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNDc0OyBcCiAgX19yZXRfNDc0ID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2MF80NzQsIF9fcDFfNDc0KTsgXAogIF9fcmV0XzQ3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ3NCwgX19yZXRfNDc0LCAxLCAwKTsgXAogIF9fcmV0XzQ3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfdTY0KF9fcDBfNDc1LCBfX3AxXzQ3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzQ3NSA9IF9fcDBfNDc1OyBcCiAgdWludDY0eDFfdCBfX3JldF80NzU7IFwKICBfX3JldF80NzUgPSBzcGxhdF9sYW5lcV91NjQoX19zMF80NzUsIF9fcDFfNDc1KTsgXAogIF9fcmV0XzQ3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfdTY0KF9fcDBfNDc2LCBfX3AxXzQ3NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzQ3NiA9IF9fcDBfNDc2OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNDc2OyAgX19yZXYwXzQ3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDc2LCBfX3MwXzQ3NiwgMSwgMCk7IFwKICB1aW50NjR4MV90IF9fcmV0XzQ3NjsgXAogIF9fcmV0XzQ3NiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3U2NChfX3JldjBfNDc2LCBfX3AxXzQ3Nik7IFwKICBfX3JldF80NzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3UxNihfX3AwXzQ3NywgX19wMV80NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NzcgPSBfX3AwXzQ3NzsgXAogIHVpbnQxNng0X3QgX19yZXRfNDc3OyBcCiAgX19yZXRfNDc3ID0gc3BsYXRfbGFuZXFfdTE2KF9fczBfNDc3LCBfX3AxXzQ3Nyk7IFwKICBfX3JldF80Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3UxNihfX3AwXzQ3OCwgX19wMV80NzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NzggPSBfX3AwXzQ3ODsgXAogIHVpbnQxNng4X3QgX19yZXYwXzQ3ODsgIF9fcmV2MF80NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ3OCwgX19zMF80NzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF80Nzg7IFwKICBfX3JldF80NzggPSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYwXzQ3OCwgX19wMV80NzgpOyBcCiAgX19yZXRfNDc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDc4LCBfX3JldF80NzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9zOChfX3AwXzQ3OSwgX19wMV80NzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwXzQ3OSA9IF9fcDBfNDc5OyBcCiAgaW50OHg4X3QgX19yZXRfNDc5OyBcCiAgX19yZXRfNDc5ID0gc3BsYXRfbGFuZXFfczgoX19zMF80NzksIF9fcDFfNDc5KTsgXAogIF9fcmV0XzQ3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfczgoX19wMF80ODAsIF9fcDFfNDgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF80ODAgPSBfX3AwXzQ4MDsgXAogIGludDh4MTZfdCBfX3JldjBfNDgwOyAgX19yZXYwXzQ4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDgwLCBfX3MwXzQ4MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldF80ODA7IFwKICBfX3JldF80ODAgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zOChfX3JldjBfNDgwLCBfX3AxXzQ4MCk7IFwKICBfX3JldF80ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODAsIF9fcmV0XzQ4MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80ODA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2Y2NChfX3AwXzQ4MSwgX19wMV80ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNDgxID0gX19wMF80ODE7IFwKICBmbG9hdDY0eDFfdCBfX3JldF80ODE7IFwKICBfX3JldF80ODEgPSBzcGxhdF9sYW5lcV9mNjQoX19zMF80ODEsIF9fcDFfNDgxKTsgXAogIF9fcmV0XzQ4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjY0KF9fcDBfNDgyLCBfX3AxXzQ4MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80ODIgPSBfX3AwXzQ4MjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF80ODI7ICBfX3JldjBfNDgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODIsIF9fczBfNDgyLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzQ4MjsgXAogIF9fcmV0XzQ4MiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2Y2NChfX3JldjBfNDgyLCBfX3AxXzQ4Mik7IFwKICBfX3JldF80ODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2YzMihfX3AwXzQ4MywgX19wMV80ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDgzID0gX19wMF80ODM7IFwKICBmbG9hdDMyeDJfdCBfX3JldF80ODM7IFwKICBfX3JldF80ODMgPSBzcGxhdF9sYW5lcV9mMzIoX19zMF80ODMsIF9fcDFfNDgzKTsgXAogIF9fcmV0XzQ4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjMyKF9fcDBfNDg0LCBfX3AxXzQ4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF80ODQgPSBfX3AwXzQ4NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80ODQ7ICBfX3JldjBfNDg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODQsIF9fczBfNDg0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzQ4NDsgXAogIF9fcmV0XzQ4NCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjBfNDg0LCBfX3AxXzQ4NCk7IFwKICBfX3JldF80ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODQsIF9fcmV0XzQ4NCwgMSwgMCk7IFwKICBfX3JldF80ODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2YxNihfX3AwXzQ4NSwgX19wMV80ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfNDg1ID0gX19wMF80ODU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80ODU7IFwKICBfX3JldF80ODUgPSBzcGxhdF9sYW5lcV9mMTYoX19zMF80ODUsIF9fcDFfNDg1KTsgXAogIF9fcmV0XzQ4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjE2KF9fcDBfNDg2LCBfX3AxXzQ4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF80ODYgPSBfX3AwXzQ4NjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF80ODY7ICBfX3JldjBfNDg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODYsIF9fczBfNDg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzQ4NjsgXAogIF9fcmV0XzQ4NiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YxNihfX3JldjBfNDg2LCBfX3AxXzQ4Nik7IFwKICBfX3JldF80ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODYsIF9fcmV0XzQ4NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80ODY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3MzMihfX3AwXzQ4NywgX19wMV80ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzQ4NyA9IF9fcDBfNDg3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzQ4NzsgXAogIF9fcmV0XzQ4NyA9IHNwbGF0X2xhbmVxX3MzMihfX3MwXzQ4NywgX19wMV80ODcpOyBcCiAgX19yZXRfNDg3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV9zMzIoX19wMF80ODgsIF9fcDFfNDg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80ODggPSBfX3AwXzQ4ODsgXAogIGludDMyeDRfdCBfX3JldjBfNDg4OyAgX19yZXYwXzQ4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDg4LCBfX3MwXzQ4OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNDg4OyBcCiAgX19yZXRfNDg4ID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MF80ODgsIF9fcDFfNDg4KTsgXAogIF9fcmV0XzQ4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ4OCwgX19yZXRfNDg4LCAxLCAwKTsgXAogIF9fcmV0XzQ4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfczY0KF9fcDBfNDg5LCBfX3AxXzQ4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNDg5ID0gX19wMF80ODk7IFwKICBpbnQ2NHgxX3QgX19yZXRfNDg5OyBcCiAgX19yZXRfNDg5ID0gc3BsYXRfbGFuZXFfczY0KF9fczBfNDg5LCBfX3AxXzQ4OSk7IFwKICBfX3JldF80ODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3M2NChfX3AwXzQ5MCwgX19wMV80OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQ5MCA9IF9fcDBfNDkwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF80OTA7ICBfX3JldjBfNDkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80OTAsIF9fczBfNDkwLCAxLCAwKTsgXAogIGludDY0eDFfdCBfX3JldF80OTA7IFwKICBfX3JldF80OTAgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zNjQoX19yZXYwXzQ5MCwgX19wMV80OTApOyBcCiAgX19yZXRfNDkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9zMTYoX19wMF80OTEsIF9fcDFfNDkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80OTEgPSBfX3AwXzQ5MTsgXAogIGludDE2eDRfdCBfX3JldF80OTE7IFwKICBfX3JldF80OTEgPSBzcGxhdF9sYW5lcV9zMTYoX19zMF80OTEsIF9fcDFfNDkxKTsgXAogIF9fcmV0XzQ5MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfczE2KF9fcDBfNDkyLCBfX3AxXzQ5MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNDkyID0gX19wMF80OTI7IFwKICBpbnQxNng4X3QgX19yZXYwXzQ5MjsgIF9fcmV2MF80OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ5MiwgX19zMF80OTIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQ5MjsgXAogIF9fcmV0XzQ5MiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjBfNDkyLCBfX3AxXzQ5Mik7IFwKICBfX3JldF80OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80OTIsIF9fcmV0XzQ5MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80OTI7IFwKfSkKI2VuZGlmCgpfX2FpIHBvbHk2NHgxX3QgdmR1cF9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmR1cHFfbl9wNjQocG9seTY0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdmR1cHFfbl9wNjQocG9seTY0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2ZHVwcV9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmR1cHFfbl9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZkdXBfbl9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkge19fcDB9OwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZleHRfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmV4dF9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Zm1hcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbWFfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Zm1hZF9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmZtYWRfbGFuZV9mNjQoX19zMCwgX19zMSwgKGZsb2F0NjR4MV90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFzX2xhbmVfZjMyKF9fczAsIF9fczEsIChmbG9hdDMyeDJfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYXNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmZtYXNfbGFuZV9mMzIoX19zMCwgX19zMSwgKGZsb2F0MzJ4Ml90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Zm1hc19sYW5lX2YzMihfX3MwLCBfX3MxLCAoZmxvYXQzMngyX3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYXFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3MyLCBfX3AzLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCBfX3AzLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Zm1hX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgX19wMywgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFkX2xhbmVxX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmZtYWRfbGFuZXFfZjY0KF9fczAsIF9fczEsIChmbG9hdDY0eDJfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYWRfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMSwgMCk7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFkX2xhbmVxX2Y2NChfX3MwLCBfX3MxLCAoZmxvYXQ2NHgyX3QpX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYWRfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hZF9sYW5lcV9mNjQoX19zMCwgX19zMSwgKGZsb2F0NjR4Ml90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hc19sYW5lcV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFzX2xhbmVxX2YzMihfX3MwLCBfX3MxLCAoZmxvYXQzMng0X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFzX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Zm1hc19sYW5lcV9mMzIoX19zMCwgX19zMSwgKGZsb2F0MzJ4NF90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFzX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmZtYXNfbGFuZXFfZjMyKF9fczAsIF9fczEsIChmbG9hdDMyeDRfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgX19wMywgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mNjQoX19wMCwgX19wMSwgKGZsb2F0NjR4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCBfX3JldjEsIChmbG9hdDY0eDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Zm1hX25fZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hX2Y2NChfX3AwLCBfX3AxLCAoZmxvYXQ2NHgxX3QpIHtfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mNjQoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbXNfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjY0KF9fcDAsIC1fX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Zm1zZF9sYW5lX2Y2NChfX3AwXzQ5MywgX19wMV80OTMsIF9fcDJfNDkzLCBfX3AzXzQ5MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNDkzID0gX19wMF80OTM7IFwKICBmbG9hdDY0X3QgX19zMV80OTMgPSBfX3AxXzQ5MzsgXAogIGZsb2F0NjR4MV90IF9fczJfNDkzID0gX19wMl80OTM7IFwKICBmbG9hdDY0X3QgX19yZXRfNDkzOyBcCiAgX19yZXRfNDkzID0gdmZtYWRfbGFuZV9mNjQoX19zMF80OTMsIC1fX3MxXzQ5MywgX19zMl80OTMsIF9fcDNfNDkzKTsgXAogIF9fcmV0XzQ5MzsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zc19sYW5lX2YzMihfX3AwXzQ5NCwgX19wMV80OTQsIF9fcDJfNDk0LCBfX3AzXzQ5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNDk0ID0gX19wMF80OTQ7IFwKICBmbG9hdDMyX3QgX19zMV80OTQgPSBfX3AxXzQ5NDsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNDk0ID0gX19wMl80OTQ7IFwKICBmbG9hdDMyX3QgX19yZXRfNDk0OyBcCiAgX19yZXRfNDk0ID0gdmZtYXNfbGFuZV9mMzIoX19zMF80OTQsIC1fX3MxXzQ5NCwgX19zMl80OTQsIF9fcDNfNDk0KTsgXAogIF9fcmV0XzQ5NDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNzX2xhbmVfZjMyKF9fcDBfNDk1LCBfX3AxXzQ5NSwgX19wMl80OTUsIF9fcDNfNDk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMF80OTUgPSBfX3AwXzQ5NTsgXAogIGZsb2F0MzJfdCBfX3MxXzQ5NSA9IF9fcDFfNDk1OyBcCiAgZmxvYXQzMngyX3QgX19zMl80OTUgPSBfX3AyXzQ5NTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml80OTU7ICBfX3JldjJfNDk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80OTUsIF9fczJfNDk1LCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldF80OTU7IFwKICBfX3JldF80OTUgPSBfX25vc3dhcF92Zm1hc19sYW5lX2YzMihfX3MwXzQ5NSwgLV9fczFfNDk1LCBfX3JldjJfNDk1LCBfX3AzXzQ5NSk7IFwKICBfX3JldF80OTU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zcV9sYW5lX2Y2NChfX3AwXzQ5NiwgX19wMV80OTYsIF9fcDJfNDk2LCBfX3AzXzQ5NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80OTYgPSBfX3AwXzQ5NjsgXAogIGZsb2F0NjR4Ml90IF9fczFfNDk2ID0gX19wMV80OTY7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzQ5NiA9IF9fcDJfNDk2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNDk2OyBcCiAgX19yZXRfNDk2ID0gdmZtYXFfbGFuZV9mNjQoX19zMF80OTYsIC1fX3MxXzQ5NiwgX19zMl80OTYsIF9fcDNfNDk2KTsgXAogIF9fcmV0XzQ5NjsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVfZjY0KF9fcDBfNDk3LCBfX3AxXzQ5NywgX19wMl80OTcsIF9fcDNfNDk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzQ5NyA9IF9fcDBfNDk3OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV80OTcgPSBfX3AxXzQ5NzsgXAogIGZsb2F0NjR4MV90IF9fczJfNDk3ID0gX19wMl80OTc7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNDk3OyAgX19yZXYwXzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDk3LCBfX3MwXzQ5NywgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNDk3OyAgX19yZXYxXzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDk3LCBfX3MxXzQ5NywgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF80OTc7IFwKICBfX3JldF80OTcgPSBfX25vc3dhcF92Zm1hcV9sYW5lX2Y2NChfX3JldjBfNDk3LCAtX19yZXYxXzQ5NywgX19zMl80OTcsIF9fcDNfNDk3KTsgXAogIF9fcmV0XzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ5NywgX19yZXRfNDk3LCAxLCAwKTsgXAogIF9fcmV0XzQ5NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVfZjMyKF9fcDBfNDk4LCBfX3AxXzQ5OCwgX19wMl80OTgsIF9fcDNfNDk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzQ5OCA9IF9fcDBfNDk4OyBcCiAgZmxvYXQzMng0X3QgX19zMV80OTggPSBfX3AxXzQ5ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNDk4ID0gX19wMl80OTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80OTg7IFwKICBfX3JldF80OTggPSB2Zm1hcV9sYW5lX2YzMihfX3MwXzQ5OCwgLV9fczFfNDk4LCBfX3MyXzQ5OCwgX19wM180OTgpOyBcCiAgX19yZXRfNDk4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc3FfbGFuZV9mMzIoX19wMF80OTksIF9fcDFfNDk5LCBfX3AyXzQ5OSwgX19wM180OTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDk5ID0gX19wMF80OTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzQ5OSA9IF9fcDFfNDk5OyBcCiAgZmxvYXQzMngyX3QgX19zMl80OTkgPSBfX3AyXzQ5OTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80OTk7ICBfX3JldjBfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80OTksIF9fczBfNDk5LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV80OTk7ICBfX3JldjFfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV80OTksIF9fczFfNDk5LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml80OTk7ICBfX3JldjJfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80OTksIF9fczJfNDk5LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ5OTsgXAogIF9fcmV0XzQ5OSA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjMyKF9fcmV2MF80OTksIC1fX3JldjFfNDk5LCBfX3JldjJfNDk5LCBfX3AzXzQ5OSk7IFwKICBfX3JldF80OTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80OTksIF9fcmV0XzQ5OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80OTk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZmbXNfbGFuZV9mNjQoX19wMF81MDAsIF9fcDFfNTAwLCBfX3AyXzUwMCwgX19wM181MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfNTAwID0gX19wMF81MDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzUwMCA9IF9fcDFfNTAwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl81MDAgPSBfX3AyXzUwMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzUwMDsgXAogIF9fcmV0XzUwMCA9IHZmbWFfbGFuZV9mNjQoX19zMF81MDAsIC1fX3MxXzUwMCwgX19zMl81MDAsIF9fcDNfNTAwKTsgXAogIF9fcmV0XzUwMDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVfZjMyKF9fcDBfNTAxLCBfX3AxXzUwMSwgX19wMl81MDEsIF9fcDNfNTAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUwMSA9IF9fcDBfNTAxOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MDEgPSBfX3AxXzUwMTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNTAxID0gX19wMl81MDE7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MDE7IFwKICBfX3JldF81MDEgPSB2Zm1hX2xhbmVfZjMyKF9fczBfNTAxLCAtX19zMV81MDEsIF9fczJfNTAxLCBfX3AzXzUwMSk7IFwKICBfX3JldF81MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zX2xhbmVfZjMyKF9fcDBfNTAyLCBfX3AxXzUwMiwgX19wMl81MDIsIF9fcDNfNTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUwMiA9IF9fcDBfNTAyOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MDIgPSBfX3AxXzUwMjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNTAyID0gX19wMl81MDI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTAyOyAgX19yZXYwXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTAyLCBfX3MwXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTAyOyAgX19yZXYxXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTAyLCBfX3MxXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNTAyOyAgX19yZXYyXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTAyLCBfX3MyXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MDI7IFwKICBfX3JldF81MDIgPSBfX25vc3dhcF92Zm1hX2xhbmVfZjMyKF9fcmV2MF81MDIsIC1fX3JldjFfNTAyLCBfX3JldjJfNTAyLCBfX3AzXzUwMik7IFwKICBfX3JldF81MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MDIsIF9fcmV0XzUwMiwgMSwgMCk7IFwKICBfX3JldF81MDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zZF9sYW5lcV9mNjQoX19wMF81MDMsIF9fcDFfNTAzLCBfX3AyXzUwMywgX19wM181MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzUwMyA9IF9fcDBfNTAzOyBcCiAgZmxvYXQ2NF90IF9fczFfNTAzID0gX19wMV81MDM7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUwMyA9IF9fcDJfNTAzOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzUwMzsgXAogIF9fcmV0XzUwMyA9IHZmbWFkX2xhbmVxX2Y2NChfX3MwXzUwMywgLV9fczFfNTAzLCBfX3MyXzUwMywgX19wM181MDMpOyBcCiAgX19yZXRfNTAzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc2RfbGFuZXFfZjY0KF9fcDBfNTA0LCBfX3AxXzUwNCwgX19wMl81MDQsIF9fcDNfNTA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMF81MDQgPSBfX3AwXzUwNDsgXAogIGZsb2F0NjRfdCBfX3MxXzUwNCA9IF9fcDFfNTA0OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl81MDQgPSBfX3AyXzUwNDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml81MDQ7ICBfX3JldjJfNTA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MDQsIF9fczJfNTA0LCAxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3JldF81MDQ7IFwKICBfX3JldF81MDQgPSBfX25vc3dhcF92Zm1hZF9sYW5lcV9mNjQoX19zMF81MDQsIC1fX3MxXzUwNCwgX19yZXYyXzUwNCwgX19wM181MDQpOyBcCiAgX19yZXRfNTA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc3NfbGFuZXFfZjMyKF9fcDBfNTA1LCBfX3AxXzUwNSwgX19wMl81MDUsIF9fcDNfNTA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMF81MDUgPSBfX3AwXzUwNTsgXAogIGZsb2F0MzJfdCBfX3MxXzUwNSA9IF9fcDFfNTA1OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MDUgPSBfX3AyXzUwNTsgXAogIGZsb2F0MzJfdCBfX3JldF81MDU7IFwKICBfX3JldF81MDUgPSB2Zm1hc19sYW5lcV9mMzIoX19zMF81MDUsIC1fX3MxXzUwNSwgX19zMl81MDUsIF9fcDNfNTA1KTsgXAogIF9fcmV0XzUwNTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNzX2xhbmVxX2YzMihfX3AwXzUwNiwgX19wMV81MDYsIF9fcDJfNTA2LCBfX3AzXzUwNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNTA2ID0gX19wMF81MDY7IFwKICBmbG9hdDMyX3QgX19zMV81MDYgPSBfX3AxXzUwNjsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTA2ID0gX19wMl81MDY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTA2OyAgX19yZXYyXzUwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTA2LCBfX3MyXzUwNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyX3QgX19yZXRfNTA2OyBcCiAgX19yZXRfNTA2ID0gX19ub3N3YXBfdmZtYXNfbGFuZXFfZjMyKF9fczBfNTA2LCAtX19zMV81MDYsIF9fcmV2Ml81MDYsIF9fcDNfNTA2KTsgXAogIF9fcmV0XzUwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVxX2Y2NChfX3AwXzUwNywgX19wMV81MDcsIF9fcDJfNTA3LCBfX3AzXzUwNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF81MDcgPSBfX3AwXzUwNzsgXAogIGZsb2F0NjR4Ml90IF9fczFfNTA3ID0gX19wMV81MDc7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUwNyA9IF9fcDJfNTA3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNTA3OyBcCiAgX19yZXRfNTA3ID0gdmZtYXFfbGFuZXFfZjY0KF9fczBfNTA3LCAtX19zMV81MDcsIF9fczJfNTA3LCBfX3AzXzUwNyk7IFwKICBfX3JldF81MDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zcV9sYW5lcV9mNjQoX19wMF81MDgsIF9fcDFfNTA4LCBfX3AyXzUwOCwgX19wM181MDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNTA4ID0gX19wMF81MDg7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzUwOCA9IF9fcDFfNTA4OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl81MDggPSBfX3AyXzUwODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF81MDg7ICBfX3JldjBfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MDgsIF9fczBfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV81MDg7ICBfX3JldjFfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MDgsIF9fczFfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml81MDg7ICBfX3JldjJfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MDgsIF9fczJfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzUwODsgXAogIF9fcmV0XzUwOCA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2Y2NChfX3JldjBfNTA4LCAtX19yZXYxXzUwOCwgX19yZXYyXzUwOCwgX19wM181MDgpOyBcCiAgX19yZXRfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTA4LCBfX3JldF81MDgsIDEsIDApOyBcCiAgX19yZXRfNTA4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc3FfbGFuZXFfZjMyKF9fcDBfNTA5LCBfX3AxXzUwOSwgX19wMl81MDksIF9fcDNfNTA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzUwOSA9IF9fcDBfNTA5OyBcCiAgZmxvYXQzMng0X3QgX19zMV81MDkgPSBfX3AxXzUwOTsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTA5ID0gX19wMl81MDk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF81MDk7IFwKICBfX3JldF81MDkgPSB2Zm1hcV9sYW5lcV9mMzIoX19zMF81MDksIC1fX3MxXzUwOSwgX19zMl81MDksIF9fcDNfNTA5KTsgXAogIF9fcmV0XzUwOTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVxX2YzMihfX3AwXzUxMCwgX19wMV81MTAsIF9fcDJfNTEwLCBfX3AzXzUxMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81MTAgPSBfX3AwXzUxMDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTEwID0gX19wMV81MTA7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzUxMCA9IF9fcDJfNTEwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzUxMDsgIF9fcmV2MF81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUxMCwgX19zMF81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzUxMDsgIF9fcmV2MV81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUxMCwgX19zMV81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzUxMDsgIF9fcmV2Ml81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUxMCwgX19zMl81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTEwOyBcCiAgX19yZXRfNTEwID0gX19ub3N3YXBfdmZtYXFfbGFuZXFfZjMyKF9fcmV2MF81MTAsIC1fX3JldjFfNTEwLCBfX3JldjJfNTEwLCBfX3AzXzUxMCk7IFwKICBfX3JldF81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MTAsIF9fcmV0XzUxMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVxX2Y2NChfX3AwXzUxMSwgX19wMV81MTEsIF9fcDJfNTExLCBfX3AzXzUxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF81MTEgPSBfX3AwXzUxMTsgXAogIGZsb2F0NjR4MV90IF9fczFfNTExID0gX19wMV81MTE7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUxMSA9IF9fcDJfNTExOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfNTExOyBcCiAgX19yZXRfNTExID0gdmZtYV9sYW5lcV9mNjQoX19zMF81MTEsIC1fX3MxXzUxMSwgX19zMl81MTEsIF9fcDNfNTExKTsgXAogIF9fcmV0XzUxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbGFuZXFfZjY0KF9fcDBfNTEyLCBfX3AxXzUxMiwgX19wMl81MTIsIF9fcDNfNTEyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzUxMiA9IF9fcDBfNTEyOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV81MTIgPSBfX3AxXzUxMjsgXAogIGZsb2F0NjR4Ml90IF9fczJfNTEyID0gX19wMl81MTI7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfNTEyOyAgX19yZXYyXzUxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTEyLCBfX3MyXzUxMiwgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF81MTI7IFwKICBfX3JldF81MTIgPSBfX25vc3dhcF92Zm1hX2xhbmVxX2Y2NChfX3MwXzUxMiwgLV9fczFfNTEyLCBfX3JldjJfNTEyLCBfX3AzXzUxMik7IFwKICBfX3JldF81MTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVxX2YzMihfX3AwXzUxMywgX19wMV81MTMsIF9fcDJfNTEzLCBfX3AzXzUxMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF81MTMgPSBfX3AwXzUxMzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNTEzID0gX19wMV81MTM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzUxMyA9IF9fcDJfNTEzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNTEzOyBcCiAgX19yZXRfNTEzID0gdmZtYV9sYW5lcV9mMzIoX19zMF81MTMsIC1fX3MxXzUxMywgX19zMl81MTMsIF9fcDNfNTEzKTsgXAogIF9fcmV0XzUxMzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbGFuZXFfZjMyKF9fcDBfNTE0LCBfX3AxXzUxNCwgX19wMl81MTQsIF9fcDNfNTE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUxNCA9IF9fcDBfNTE0OyBcCiAgZmxvYXQzMngyX3QgX19zMV81MTQgPSBfX3AxXzUxNDsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTE0ID0gX19wMl81MTQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTE0OyAgX19yZXYwXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTE0LCBfX3MwXzUxNCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTE0OyAgX19yZXYxXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTE0LCBfX3MxXzUxNCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTE0OyAgX19yZXYyXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTE0LCBfX3MyXzUxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MTQ7IFwKICBfX3JldF81MTQgPSBfX25vc3dhcF92Zm1hX2xhbmVxX2YzMihfX3JldjBfNTE0LCAtX19yZXYxXzUxNCwgX19yZXYyXzUxNCwgX19wM181MTQpOyBcCiAgX19yZXRfNTE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTE0LCBfX3JldF81MTQsIDEsIDApOyBcCiAgX19yZXRfNTE0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmZtc3Ffbl9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NF90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZmbWFxX2Y2NChfX3AwLCAtX19wMSwgKGZsb2F0NjR4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQ2NHgyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgLV9fcDEsIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1zcV9uX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYXFfZjMyKF9fcmV2MCwgLV9fcmV2MSwgKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbXNfbl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NF90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjY0KF9fcDAsIC1fX3AxLCAoZmxvYXQ2NHgxX3QpIHtfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbXNfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjMyKF9fcDAsIC1fX3AxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtc19uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMzIoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgxX3QgdmdldF9oaWdoX3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDFfdCB2Z2V0X2hpZ2hfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IF9fbm9zd2FwX3ZnZXRfaGlnaF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4MV90IHZnZXRfaGlnaF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgxX3QgdmdldF9oaWdoX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChwb2x5NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChwb2x5NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHBvbHk2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChwb2x5NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgocG9seTY0eDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfZjY0KChmbG9hdDY0eDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9mNjQoKGZsb2F0NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2Y2NCgoZmxvYXQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmdldF9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2Y2NCgoZmxvYXQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5NjR4MV90IHZnZXRfbG93X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDFfdCB2Z2V0X2xvd19wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4MV90IHZnZXRfbG93X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDFfdCB2Z2V0X2xvd19mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdmxkMV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQxX3A2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9mNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMV9wNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2Y2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZjY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDFfcDY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mNjRfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2Y2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2Y2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQyX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQyX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQyX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHBvbHk2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQyX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDNfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM19kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQzX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIGludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDNfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkM19sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkNF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDRfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIGludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkNF9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQ0X2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGRycV9wMTI4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxMjhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxMjhfdCkgX19idWlsdGluX25lb25fdmxkcnFfcDEyOChfX3AwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtYXhxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bWF4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtYXhfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3Qgdm1heG5tdnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12cV9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZtYXhubXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtYXhubXZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWF4bm12cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXZxX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWF4bm12X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heG5tdl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXhubXZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3Qgdm1heHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1heHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3Qgdm1heHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJfdCB2bWF4dnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZtYXh2cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1heHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNl90IHZtYXh2cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV91MTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2X3Qgdm1heHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZtYXh2cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3Qgdm1heHZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zOChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2bWF4dnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2bWF4dnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtYXh2cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXh2cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMl90IHZtYXh2cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2bWF4dnFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdm1heHZxX3MzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3Qgdm1heHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1heHZxX3MxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNl90IHZtYXh2cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDhfdCB2bWF4dl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1heHZfdTgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDhfdCB2bWF4dl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3U4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3Qgdm1heHZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyX3Qgdm1heHZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNl90IHZtYXh2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1heHZfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZtYXh2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4X3Qgdm1heHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDhfdCB2bWF4dl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdm1heHZfczgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3Qgdm1heHZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXh2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heHZfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2bWF4dl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMl90IHZtYXh2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3MzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3Qgdm1heHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2bWF4dl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9zMTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWlucV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm1pbnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2bWluX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZtaW5ubXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbm5tdnFfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2bWlubm12cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZxX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWlubm12cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZxX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3Qgdm1pbm5tdnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12cV9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3Qgdm1pbm5tdl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWlubm12X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1pbm5tdl9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OF90IHZtaW52cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV91OChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OF90IHZtaW52cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3U4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3Qgdm1pbnZxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3UzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2bWludnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2bWludnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZtaW52cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3UxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDhfdCB2bWludnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OF90IHZtaW52cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3Qgdm1pbnZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0X3Qgdm1pbnZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWludnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWludnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2bWludnFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyX3Qgdm1pbnZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZtaW52cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2bWludnFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3Qgdm1pbnZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3Qgdm1pbnZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZtaW52X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZtaW52X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2bWludl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2bWludl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZtaW52X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3Qgdm1pbnZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtaW52X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWludl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3Qgdm1pbnZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2bWludl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZtaW52X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2X3Qgdm1pbnZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3Qgdm1sYXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtbGFfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZXFfdTMyKF9fcDBfNTE1LCBfX3AxXzUxNSwgX19wMl81MTUsIF9fcDNfNTE1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTE1ID0gX19wMF81MTU7IFwKICB1aW50MzJ4NF90IF9fczFfNTE1ID0gX19wMV81MTU7IFwKICB1aW50MzJ4NF90IF9fczJfNTE1ID0gX19wMl81MTU7IFwKICB1aW50MzJ4NF90IF9fcmV0XzUxNTsgXAogIF9fcmV0XzUxNSA9IF9fczBfNTE1ICsgX19zMV81MTUgKiBzcGxhdHFfbGFuZXFfdTMyKF9fczJfNTE1LCBfX3AzXzUxNSk7IFwKICBfX3JldF81MTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV91MzIoX19wMF81MTYsIF9fcDFfNTE2LCBfX3AyXzUxNiwgX19wM181MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81MTYgPSBfX3AwXzUxNjsgXAogIHVpbnQzMng0X3QgX19zMV81MTYgPSBfX3AxXzUxNjsgXAogIHVpbnQzMng0X3QgX19zMl81MTYgPSBfX3AyXzUxNjsgXAogIHVpbnQzMng0X3QgX19yZXYwXzUxNjsgIF9fcmV2MF81MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUxNiwgX19zMF81MTYsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNTE2OyAgX19yZXYxXzUxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTE2LCBfX3MxXzUxNiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml81MTY7ICBfX3JldjJfNTE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MTYsIF9fczJfNTE2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTE2OyBcCiAgX19yZXRfNTE2ID0gX19yZXYwXzUxNiArIF9fcmV2MV81MTYgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTMyKF9fcmV2Ml81MTYsIF9fcDNfNTE2KTsgXAogIF9fcmV0XzUxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUxNiwgX19yZXRfNTE2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUxNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVxX3UxNihfX3AwXzUxNywgX19wMV81MTcsIF9fcDJfNTE3LCBfX3AzXzUxNykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzUxNyA9IF9fcDBfNTE3OyBcCiAgdWludDE2eDhfdCBfX3MxXzUxNyA9IF9fcDFfNTE3OyBcCiAgdWludDE2eDhfdCBfX3MyXzUxNyA9IF9fcDJfNTE3OyBcCiAgdWludDE2eDhfdCBfX3JldF81MTc7IFwKICBfX3JldF81MTcgPSBfX3MwXzUxNyArIF9fczFfNTE3ICogc3BsYXRxX2xhbmVxX3UxNihfX3MyXzUxNywgX19wM181MTcpOyBcCiAgX19yZXRfNTE3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZXFfdTE2KF9fcDBfNTE4LCBfX3AxXzUxOCwgX19wMl81MTgsIF9fcDNfNTE4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNTE4ID0gX19wMF81MTg7IFwKICB1aW50MTZ4OF90IF9fczFfNTE4ID0gX19wMV81MTg7IFwKICB1aW50MTZ4OF90IF9fczJfNTE4ID0gX19wMl81MTg7IFwKICB1aW50MTZ4OF90IF9fcmV2MF81MTg7ICBfX3JldjBfNTE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MTgsIF9fczBfNTE4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzUxODsgIF9fcmV2MV81MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUxOCwgX19zMV81MTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNTE4OyAgX19yZXYyXzUxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTE4LCBfX3MyXzUxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzUxODsgXAogIF9fcmV0XzUxOCA9IF9fcmV2MF81MTggKyBfX3JldjFfNTE4ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UxNihfX3JldjJfNTE4LCBfX3AzXzUxOCk7IFwKICBfX3JldF81MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MTgsIF9fcmV0XzUxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lcV9mMzIoX19wMF81MTksIF9fcDFfNTE5LCBfX3AyXzUxOSwgX19wM181MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNTE5ID0gX19wMF81MTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzUxOSA9IF9fcDFfNTE5OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MTkgPSBfX3AyXzUxOTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzUxOTsgXAogIF9fcmV0XzUxOSA9IF9fczBfNTE5ICsgX19zMV81MTkgKiBzcGxhdHFfbGFuZXFfZjMyKF9fczJfNTE5LCBfX3AzXzUxOSk7IFwKICBfX3JldF81MTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV9mMzIoX19wMF81MjAsIF9fcDFfNTIwLCBfX3AyXzUyMCwgX19wM181MjApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNTIwID0gX19wMF81MjA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzUyMCA9IF9fcDFfNTIwOyBcCiAgZmxvYXQzMng0X3QgX19zMl81MjAgPSBfX3AyXzUyMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF81MjA7ICBfX3JldjBfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MjAsIF9fczBfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV81MjA7ICBfX3JldjFfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MjAsIF9fczFfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml81MjA7ICBfX3JldjJfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjAsIF9fczJfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzUyMDsgXAogIF9fcmV0XzUyMCA9IF9fcmV2MF81MjAgKyBfX3JldjFfNTIwICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YzMihfX3JldjJfNTIwLCBfX3AzXzUyMCk7IFwKICBfX3JldF81MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MjAsIF9fcmV0XzUyMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lcV9zMzIoX19wMF81MjEsIF9fcDFfNTIxLCBfX3AyXzUyMSwgX19wM181MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzUyMSA9IF9fcDBfNTIxOyBcCiAgaW50MzJ4NF90IF9fczFfNTIxID0gX19wMV81MjE7IFwKICBpbnQzMng0X3QgX19zMl81MjEgPSBfX3AyXzUyMTsgXAogIGludDMyeDRfdCBfX3JldF81MjE7IFwKICBfX3JldF81MjEgPSBfX3MwXzUyMSArIF9fczFfNTIxICogc3BsYXRxX2xhbmVxX3MzMihfX3MyXzUyMSwgX19wM181MjEpOyBcCiAgX19yZXRfNTIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZXFfczMyKF9fcDBfNTIyLCBfX3AxXzUyMiwgX19wMl81MjIsIF9fcDNfNTIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81MjIgPSBfX3AwXzUyMjsgXAogIGludDMyeDRfdCBfX3MxXzUyMiA9IF9fcDFfNTIyOyBcCiAgaW50MzJ4NF90IF9fczJfNTIyID0gX19wMl81MjI7IFwKICBpbnQzMng0X3QgX19yZXYwXzUyMjsgIF9fcmV2MF81MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyMiwgX19zMF81MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV81MjI7ICBfX3JldjFfNTIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MjIsIF9fczFfNTIyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTIyOyAgX19yZXYyXzUyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTIyLCBfX3MyXzUyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTIyOyBcCiAgX19yZXRfNTIyID0gX19yZXYwXzUyMiArIF9fcmV2MV81MjIgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfczMyKF9fcmV2Ml81MjIsIF9fcDNfNTIyKTsgXAogIF9fcmV0XzUyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUyMiwgX19yZXRfNTIyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVxX3MxNihfX3AwXzUyMywgX19wMV81MjMsIF9fcDJfNTIzLCBfX3AzXzUyMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTIzID0gX19wMF81MjM7IFwKICBpbnQxNng4X3QgX19zMV81MjMgPSBfX3AxXzUyMzsgXAogIGludDE2eDhfdCBfX3MyXzUyMyA9IF9fcDJfNTIzOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUyMzsgXAogIF9fcmV0XzUyMyA9IF9fczBfNTIzICsgX19zMV81MjMgKiBzcGxhdHFfbGFuZXFfczE2KF9fczJfNTIzLCBfX3AzXzUyMyk7IFwKICBfX3JldF81MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV9zMTYoX19wMF81MjQsIF9fcDFfNTI0LCBfX3AyXzUyNCwgX19wM181MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzUyNCA9IF9fcDBfNTI0OyBcCiAgaW50MTZ4OF90IF9fczFfNTI0ID0gX19wMV81MjQ7IFwKICBpbnQxNng4X3QgX19zMl81MjQgPSBfX3AyXzUyNDsgXAogIGludDE2eDhfdCBfX3JldjBfNTI0OyAgX19yZXYwXzUyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTI0LCBfX3MwXzUyNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzUyNDsgIF9fcmV2MV81MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUyNCwgX19zMV81MjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml81MjQ7ICBfX3JldjJfNTI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjQsIF9fczJfNTI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF81MjQ7IFwKICBfX3JldF81MjQgPSBfX3JldjBfNTI0ICsgX19yZXYxXzUyNCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYyXzUyNCwgX19wM181MjQpOyBcCiAgX19yZXRfNTI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI0LCBfX3JldF81MjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV91MzIoX19wMF81MjUsIF9fcDFfNTI1LCBfX3AyXzUyNSwgX19wM181MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MjUgPSBfX3AwXzUyNTsgXAogIHVpbnQzMngyX3QgX19zMV81MjUgPSBfX3AxXzUyNTsgXAogIHVpbnQzMng0X3QgX19zMl81MjUgPSBfX3AyXzUyNTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTI1OyBcCiAgX19yZXRfNTI1ID0gX19zMF81MjUgKyBfX3MxXzUyNSAqIHNwbGF0X2xhbmVxX3UzMihfX3MyXzUyNSwgX19wM181MjUpOyBcCiAgX19yZXRfNTI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lcV91MzIoX19wMF81MjYsIF9fcDFfNTI2LCBfX3AyXzUyNiwgX19wM181MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MjYgPSBfX3AwXzUyNjsgXAogIHVpbnQzMngyX3QgX19zMV81MjYgPSBfX3AxXzUyNjsgXAogIHVpbnQzMng0X3QgX19zMl81MjYgPSBfX3AyXzUyNjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzUyNjsgIF9fcmV2MF81MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyNiwgX19zMF81MjYsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjFfNTI2OyAgX19yZXYxXzUyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTI2LCBfX3MxXzUyNiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml81MjY7ICBfX3JldjJfNTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjYsIF9fczJfNTI2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTI2OyBcCiAgX19yZXRfNTI2ID0gX19yZXYwXzUyNiArIF9fcmV2MV81MjYgKiBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19yZXYyXzUyNiwgX19wM181MjYpOyBcCiAgX19yZXRfNTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI2LCBfX3JldF81MjYsIDEsIDApOyBcCiAgX19yZXRfNTI2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV91MTYoX19wMF81MjcsIF9fcDFfNTI3LCBfX3AyXzUyNywgX19wM181MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF81MjcgPSBfX3AwXzUyNzsgXAogIHVpbnQxNng0X3QgX19zMV81MjcgPSBfX3AxXzUyNzsgXAogIHVpbnQxNng4X3QgX19zMl81MjcgPSBfX3AyXzUyNzsgXAogIHVpbnQxNng0X3QgX19yZXRfNTI3OyBcCiAgX19yZXRfNTI3ID0gX19zMF81MjcgKyBfX3MxXzUyNyAqIHNwbGF0X2xhbmVxX3UxNihfX3MyXzUyNywgX19wM181MjcpOyBcCiAgX19yZXRfNTI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lcV91MTYoX19wMF81MjgsIF9fcDFfNTI4LCBfX3AyXzUyOCwgX19wM181MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF81MjggPSBfX3AwXzUyODsgXAogIHVpbnQxNng0X3QgX19zMV81MjggPSBfX3AxXzUyODsgXAogIHVpbnQxNng4X3QgX19zMl81MjggPSBfX3AyXzUyODsgXAogIHVpbnQxNng0X3QgX19yZXYwXzUyODsgIF9fcmV2MF81MjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyOCwgX19zMF81MjgsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTI4OyAgX19yZXYxXzUyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTI4LCBfX3MxXzUyOCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81Mjg7ICBfX3JldjJfNTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjgsIF9fczJfNTI4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXRfNTI4OyBcCiAgX19yZXRfNTI4ID0gX19yZXYwXzUyOCArIF9fcmV2MV81MjggKiBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzUyOCwgX19wM181MjgpOyBcCiAgX19yZXRfNTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI4LCBfX3JldF81MjgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTI4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV9mMzIoX19wMF81MjksIF9fcDFfNTI5LCBfX3AyXzUyOSwgX19wM181MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTI5ID0gX19wMF81Mjk7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzUyOSA9IF9fcDFfNTI5OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MjkgPSBfX3AyXzUyOTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzUyOTsgXAogIF9fcmV0XzUyOSA9IF9fczBfNTI5ICsgX19zMV81MjkgKiBzcGxhdF9sYW5lcV9mMzIoX19zMl81MjksIF9fcDNfNTI5KTsgXAogIF9fcmV0XzUyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFfbGFuZXFfZjMyKF9fcDBfNTMwLCBfX3AxXzUzMCwgX19wMl81MzAsIF9fcDNfNTMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUzMCA9IF9fcDBfNTMwOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MzAgPSBfX3AxXzUzMDsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTMwID0gX19wMl81MzA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTMwOyAgX19yZXYwXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTMwLCBfX3MwXzUzMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTMwOyAgX19yZXYxXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTMwLCBfX3MxXzUzMCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTMwOyAgX19yZXYyXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTMwLCBfX3MyXzUzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MzA7IFwKICBfX3JldF81MzAgPSBfX3JldjBfNTMwICsgX19yZXYxXzUzMCAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjJfNTMwLCBfX3AzXzUzMCk7IFwKICBfX3JldF81MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MzAsIF9fcmV0XzUzMCwgMSwgMCk7IFwKICBfX3JldF81MzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVxX3MzMihfX3AwXzUzMSwgX19wMV81MzEsIF9fcDJfNTMxLCBfX3AzXzUzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNTMxID0gX19wMF81MzE7IFwKICBpbnQzMngyX3QgX19zMV81MzEgPSBfX3AxXzUzMTsgXAogIGludDMyeDRfdCBfX3MyXzUzMSA9IF9fcDJfNTMxOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzUzMTsgXAogIF9fcmV0XzUzMSA9IF9fczBfNTMxICsgX19zMV81MzEgKiBzcGxhdF9sYW5lcV9zMzIoX19zMl81MzEsIF9fcDNfNTMxKTsgXAogIF9fcmV0XzUzMTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFfbGFuZXFfczMyKF9fcDBfNTMyLCBfX3AxXzUzMiwgX19wMl81MzIsIF9fcDNfNTMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81MzIgPSBfX3AwXzUzMjsgXAogIGludDMyeDJfdCBfX3MxXzUzMiA9IF9fcDFfNTMyOyBcCiAgaW50MzJ4NF90IF9fczJfNTMyID0gX19wMl81MzI7IFwKICBpbnQzMngyX3QgX19yZXYwXzUzMjsgIF9fcmV2MF81MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUzMiwgX19zMF81MzIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV81MzI7ICBfX3JldjFfNTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MzIsIF9fczFfNTMyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTMyOyAgX19yZXYyXzUzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTMyLCBfX3MyXzUzMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNTMyOyBcCiAgX19yZXRfNTMyID0gX19yZXYwXzUzMiArIF9fcmV2MV81MzIgKiBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzUzMiwgX19wM181MzIpOyBcCiAgX19yZXRfNTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTMyLCBfX3JldF81MzIsIDEsIDApOyBcCiAgX19yZXRfNTMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV9zMTYoX19wMF81MzMsIF9fcDFfNTMzLCBfX3AyXzUzMywgX19wM181MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzUzMyA9IF9fcDBfNTMzOyBcCiAgaW50MTZ4NF90IF9fczFfNTMzID0gX19wMV81MzM7IFwKICBpbnQxNng4X3QgX19zMl81MzMgPSBfX3AyXzUzMzsgXAogIGludDE2eDRfdCBfX3JldF81MzM7IFwKICBfX3JldF81MzMgPSBfX3MwXzUzMyArIF9fczFfNTMzICogc3BsYXRfbGFuZXFfczE2KF9fczJfNTMzLCBfX3AzXzUzMyk7IFwKICBfX3JldF81MzM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVxX3MxNihfX3AwXzUzNCwgX19wMV81MzQsIF9fcDJfNTM0LCBfX3AzXzUzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNTM0ID0gX19wMF81MzQ7IFwKICBpbnQxNng0X3QgX19zMV81MzQgPSBfX3AxXzUzNDsgXAogIGludDE2eDhfdCBfX3MyXzUzNCA9IF9fcDJfNTM0OyBcCiAgaW50MTZ4NF90IF9fcmV2MF81MzQ7ICBfX3JldjBfNTM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MzQsIF9fczBfNTM0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNTM0OyAgX19yZXYxXzUzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTM0LCBfX3MxXzUzNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzUzNDsgIF9fcmV2Ml81MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzNCwgX19zMl81MzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzUzNDsgXAogIF9fcmV0XzUzNCA9IF9fcmV2MF81MzQgKyBfX3JldjFfNTM0ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81MzQsIF9fcDNfNTM0KTsgXAogIF9fcmV0XzUzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUzNCwgX19yZXRfNTM0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV91MzIoX19wMF81MzUsIF9fcDFfNTM1LCBfX3AyXzUzNSwgX19wM181MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81MzUgPSBfX3AwXzUzNTsgXAogIHVpbnQzMng0X3QgX19zMV81MzUgPSBfX3AxXzUzNTsgXAogIHVpbnQzMngyX3QgX19zMl81MzUgPSBfX3AyXzUzNTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTM1OyBcCiAgX19yZXRfNTM1ID0gX19zMF81MzUgKyB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MxXzUzNSksIHNwbGF0X2xhbmVfdTMyKF9fczJfNTM1LCBfX3AzXzUzNSkpOyBcCiAgX19yZXRfNTM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3UzMihfX3AwXzUzNiwgX19wMV81MzYsIF9fcDJfNTM2LCBfX3AzXzUzNikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzUzNiA9IF9fcDBfNTM2OyBcCiAgdWludDMyeDRfdCBfX3MxXzUzNiA9IF9fcDFfNTM2OyBcCiAgdWludDMyeDJfdCBfX3MyXzUzNiA9IF9fcDJfNTM2OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTM2OyAgX19yZXYwXzUzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTM2LCBfX3MwXzUzNiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81MzY7ICBfX3JldjFfNTM2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MzYsIF9fczFfNTM2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzUzNjsgIF9fcmV2Ml81MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzNiwgX19zMl81MzYsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81MzY7IFwKICBfX3JldF81MzYgPSBfX3JldjBfNTM2ICsgX19ub3N3YXBfdm11bGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxXzUzNiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml81MzYsIF9fcDNfNTM2KSk7IFwKICBfX3JldF81MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MzYsIF9fcmV0XzUzNiwgMSwgMCk7IFwKICBfX3JldF81MzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfdTE2KF9fcDBfNTM3LCBfX3AxXzUzNywgX19wMl81MzcsIF9fcDNfNTM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTM3ID0gX19wMF81Mzc7IFwKICB1aW50MTZ4OF90IF9fczFfNTM3ID0gX19wMV81Mzc7IFwKICB1aW50MTZ4NF90IF9fczJfNTM3ID0gX19wMl81Mzc7IFwKICB1aW50MzJ4NF90IF9fcmV0XzUzNzsgXAogIF9fcmV0XzUzNyA9IF9fczBfNTM3ICsgdm11bGxfdTE2KHZnZXRfaGlnaF91MTYoX19zMV81MzcpLCBzcGxhdF9sYW5lX3UxNihfX3MyXzUzNywgX19wM181MzcpKTsgXAogIF9fcmV0XzUzNzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV91MTYoX19wMF81MzgsIF9fcDFfNTM4LCBfX3AyXzUzOCwgX19wM181MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81MzggPSBfX3AwXzUzODsgXAogIHVpbnQxNng4X3QgX19zMV81MzggPSBfX3AxXzUzODsgXAogIHVpbnQxNng0X3QgX19zMl81MzggPSBfX3AyXzUzODsgXAogIHVpbnQzMng0X3QgX19yZXYwXzUzODsgIF9fcmV2MF81MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUzOCwgX19zMF81MzgsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTM4OyAgX19yZXYxXzUzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTM4LCBfX3MxXzUzOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml81Mzg7ICBfX3JldjJfNTM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MzgsIF9fczJfNTM4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTM4OyBcCiAgX19yZXRfNTM4ID0gX19yZXYwXzUzOCArIF9fbm9zd2FwX3ZtdWxsX3UxNihfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MV81MzgpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjJfNTM4LCBfX3AzXzUzOCkpOyBcCiAgX19yZXRfNTM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTM4LCBfX3JldF81MzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTM4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3MzMihfX3AwXzUzOSwgX19wMV81MzksIF9fcDJfNTM5LCBfX3AzXzUzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTM5ID0gX19wMF81Mzk7IFwKICBpbnQzMng0X3QgX19zMV81MzkgPSBfX3AxXzUzOTsgXAogIGludDMyeDJfdCBfX3MyXzUzOSA9IF9fcDJfNTM5OyBcCiAgaW50NjR4Ml90IF9fcmV0XzUzOTsgXAogIF9fcmV0XzUzOSA9IF9fczBfNTM5ICsgdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMV81MzkpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzUzOSwgX19wM181MzkpKTsgXAogIF9fcmV0XzUzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV9zMzIoX19wMF81NDAsIF9fcDFfNTQwLCBfX3AyXzU0MCwgX19wM181NDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzU0MCA9IF9fcDBfNTQwOyBcCiAgaW50MzJ4NF90IF9fczFfNTQwID0gX19wMV81NDA7IFwKICBpbnQzMngyX3QgX19zMl81NDAgPSBfX3AyXzU0MDsgXAogIGludDY0eDJfdCBfX3JldjBfNTQwOyAgX19yZXYwXzU0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTQwLCBfX3MwXzU0MCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzU0MDsgIF9fcmV2MV81NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU0MCwgX19zMV81NDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml81NDA7ICBfX3JldjJfNTQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NDAsIF9fczJfNTQwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF81NDA7IFwKICBfX3JldF81NDAgPSBfX3JldjBfNTQwICsgX19ub3N3YXBfdm11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzU0MCksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml81NDAsIF9fcDNfNTQwKSk7IFwKICBfX3JldF81NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDAsIF9fcmV0XzU0MCwgMSwgMCk7IFwKICBfX3JldF81NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfczE2KF9fcDBfNTQxLCBfX3AxXzU0MSwgX19wMl81NDEsIF9fcDNfNTQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81NDEgPSBfX3AwXzU0MTsgXAogIGludDE2eDhfdCBfX3MxXzU0MSA9IF9fcDFfNTQxOyBcCiAgaW50MTZ4NF90IF9fczJfNTQxID0gX19wMl81NDE7IFwKICBpbnQzMng0X3QgX19yZXRfNTQxOyBcCiAgX19yZXRfNTQxID0gX19zMF81NDEgKyB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MxXzU0MSksIHNwbGF0X2xhbmVfczE2KF9fczJfNTQxLCBfX3AzXzU0MSkpOyBcCiAgX19yZXRfNTQxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3MxNihfX3AwXzU0MiwgX19wMV81NDIsIF9fcDJfNTQyLCBfX3AzXzU0MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTQyID0gX19wMF81NDI7IFwKICBpbnQxNng4X3QgX19zMV81NDIgPSBfX3AxXzU0MjsgXAogIGludDE2eDRfdCBfX3MyXzU0MiA9IF9fcDJfNTQyOyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NDI7ICBfX3JldjBfNTQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDIsIF9fczBfNTQyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTQyOyAgX19yZXYxXzU0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTQyLCBfX3MxXzU0MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzU0MjsgIF9fcmV2Ml81NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0MiwgX19zMl81NDIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU0MjsgXAogIF9fcmV0XzU0MiA9IF9fcmV2MF81NDIgKyBfX25vc3dhcF92bXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNTQyKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzU0MiwgX19wM181NDIpKTsgXAogIF9fcmV0XzU0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU0MiwgX19yZXRfNTQyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU0MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNTQzLCBfX3AxXzU0MywgX19wMl81NDMsIF9fcDNfNTQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTQzID0gX19wMF81NDM7IFwKICB1aW50MzJ4NF90IF9fczFfNTQzID0gX19wMV81NDM7IFwKICB1aW50MzJ4NF90IF9fczJfNTQzID0gX19wMl81NDM7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU0MzsgXAogIF9fcmV0XzU0MyA9IF9fczBfNTQzICsgdm11bGxfdTMyKHZnZXRfaGlnaF91MzIoX19zMV81NDMpLCBzcGxhdF9sYW5lcV91MzIoX19zMl81NDMsIF9fcDNfNTQzKSk7IFwKICBfX3JldF81NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3UzMihfX3AwXzU0NCwgX19wMV81NDQsIF9fcDJfNTQ0LCBfX3AzXzU0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU0NCA9IF9fcDBfNTQ0OyBcCiAgdWludDMyeDRfdCBfX3MxXzU0NCA9IF9fcDFfNTQ0OyBcCiAgdWludDMyeDRfdCBfX3MyXzU0NCA9IF9fcDJfNTQ0OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTQ0OyAgX19yZXYwXzU0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTQ0LCBfX3MwXzU0NCwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81NDQ7ICBfX3JldjFfNTQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NDQsIF9fczFfNTQ0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU0NDsgIF9fcmV2Ml81NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0NCwgX19zMl81NDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81NDQ7IFwKICBfX3JldF81NDQgPSBfX3JldjBfNTQ0ICsgX19ub3N3YXBfdm11bGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxXzU0NCksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTQ0LCBfX3AzXzU0NCkpOyBcCiAgX19yZXRfNTQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTQ0LCBfX3JldF81NDQsIDEsIDApOyBcCiAgX19yZXRfNTQ0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lcV91MTYoX19wMF81NDUsIF9fcDFfNTQ1LCBfX3AyXzU0NSwgX19wM181NDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NDUgPSBfX3AwXzU0NTsgXAogIHVpbnQxNng4X3QgX19zMV81NDUgPSBfX3AxXzU0NTsgXAogIHVpbnQxNng4X3QgX19zMl81NDUgPSBfX3AyXzU0NTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTQ1OyBcCiAgX19yZXRfNTQ1ID0gX19zMF81NDUgKyB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MxXzU0NSksIHNwbGF0X2xhbmVxX3UxNihfX3MyXzU0NSwgX19wM181NDUpKTsgXAogIF9fcmV0XzU0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZXFfdTE2KF9fcDBfNTQ2LCBfX3AxXzU0NiwgX19wMl81NDYsIF9fcDNfNTQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTQ2ID0gX19wMF81NDY7IFwKICB1aW50MTZ4OF90IF9fczFfNTQ2ID0gX19wMV81NDY7IFwKICB1aW50MTZ4OF90IF9fczJfNTQ2ID0gX19wMl81NDY7IFwKICB1aW50MzJ4NF90IF9fcmV2MF81NDY7ICBfX3JldjBfNTQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDYsIF9fczBfNTQ2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzU0NjsgIF9fcmV2MV81NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU0NiwgX19zMV81NDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNTQ2OyAgX19yZXYyXzU0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTQ2LCBfX3MyXzU0NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzU0NjsgXAogIF9fcmV0XzU0NiA9IF9fcmV2MF81NDYgKyBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjFfNTQ2KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2Ml81NDYsIF9fcDNfNTQ2KSk7IFwKICBfX3JldF81NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDYsIF9fcmV0XzU0NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MzMihfX3AwXzU0NywgX19wMV81NDcsIF9fcDJfNTQ3LCBfX3AzXzU0NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTQ3ID0gX19wMF81NDc7IFwKICBpbnQzMng0X3QgX19zMV81NDcgPSBfX3AxXzU0NzsgXAogIGludDMyeDRfdCBfX3MyXzU0NyA9IF9fcDJfNTQ3OyBcCiAgaW50NjR4Ml90IF9fcmV0XzU0NzsgXAogIF9fcmV0XzU0NyA9IF9fczBfNTQ3ICsgdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMV81NDcpLCBzcGxhdF9sYW5lcV9zMzIoX19zMl81NDcsIF9fcDNfNTQ3KSk7IFwKICBfX3JldF81NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MzMihfX3AwXzU0OCwgX19wMV81NDgsIF9fcDJfNTQ4LCBfX3AzXzU0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTQ4ID0gX19wMF81NDg7IFwKICBpbnQzMng0X3QgX19zMV81NDggPSBfX3AxXzU0ODsgXAogIGludDMyeDRfdCBfX3MyXzU0OCA9IF9fcDJfNTQ4OyBcCiAgaW50NjR4Ml90IF9fcmV2MF81NDg7ICBfX3JldjBfNTQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDgsIF9fczBfNTQ4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNTQ4OyAgX19yZXYxXzU0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTQ4LCBfX3MxXzU0OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzU0ODsgIF9fcmV2Ml81NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0OCwgX19zMl81NDgsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzU0ODsgXAogIF9fcmV0XzU0OCA9IF9fcmV2MF81NDggKyBfX25vc3dhcF92bXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjFfNTQ4KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml81NDgsIF9fcDNfNTQ4KSk7IFwKICBfX3JldF81NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDgsIF9fcmV0XzU0OCwgMSwgMCk7IFwKICBfX3JldF81NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MxNihfX3AwXzU0OSwgX19wMV81NDksIF9fcDJfNTQ5LCBfX3AzXzU0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTQ5ID0gX19wMF81NDk7IFwKICBpbnQxNng4X3QgX19zMV81NDkgPSBfX3AxXzU0OTsgXAogIGludDE2eDhfdCBfX3MyXzU0OSA9IF9fcDJfNTQ5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzU0OTsgXAogIF9fcmV0XzU0OSA9IF9fczBfNTQ5ICsgdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMV81NDkpLCBzcGxhdF9sYW5lcV9zMTYoX19zMl81NDksIF9fcDNfNTQ5KSk7IFwKICBfX3JldF81NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MxNihfX3AwXzU1MCwgX19wMV81NTAsIF9fcDJfNTUwLCBfX3AzXzU1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTUwID0gX19wMF81NTA7IFwKICBpbnQxNng4X3QgX19zMV81NTAgPSBfX3AxXzU1MDsgXAogIGludDE2eDhfdCBfX3MyXzU1MCA9IF9fcDJfNTUwOyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NTA7ICBfX3JldjBfNTUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NTAsIF9fczBfNTUwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTUwOyAgX19yZXYxXzU1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTUwLCBfX3MxXzU1MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU1MDsgIF9fcmV2Ml81NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1MCwgX19zMl81NTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU1MDsgXAogIF9fcmV0XzU1MCA9IF9fcmV2MF81NTAgKyBfX25vc3dhcF92bXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNTUwKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81NTAsIF9fcDNfNTUwKSk7IFwKICBfX3JldF81NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NTAsIF9fcmV0XzU1MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lcV91MzIoX19wMF81NTEsIF9fcDFfNTUxLCBfX3AyXzU1MSwgX19wM181NTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81NTEgPSBfX3AwXzU1MTsgXAogIHVpbnQzMngyX3QgX19zMV81NTEgPSBfX3AxXzU1MTsgXAogIHVpbnQzMng0X3QgX19zMl81NTEgPSBfX3AyXzU1MTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTUxOyBcCiAgX19yZXRfNTUxID0gX19zMF81NTEgKyB2bXVsbF91MzIoX19zMV81NTEsIHNwbGF0X2xhbmVxX3UzMihfX3MyXzU1MSwgX19wM181NTEpKTsgXAogIF9fcmV0XzU1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVxX3UzMihfX3AwXzU1MiwgX19wMV81NTIsIF9fcDJfNTUyLCBfX3AzXzU1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU1MiA9IF9fcDBfNTUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzU1MiA9IF9fcDFfNTUyOyBcCiAgdWludDMyeDRfdCBfX3MyXzU1MiA9IF9fcDJfNTUyOyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTUyOyAgX19yZXYwXzU1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTUyLCBfX3MwXzU1MiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81NTI7ICBfX3JldjFfNTUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NTIsIF9fczFfNTUyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU1MjsgIF9fcmV2Ml81NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1MiwgX19zMl81NTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81NTI7IFwKICBfX3JldF81NTIgPSBfX3JldjBfNTUyICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV81NTIsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTUyLCBfX3AzXzU1MikpOyBcCiAgX19yZXRfNTUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTUyLCBfX3JldF81NTIsIDEsIDApOyBcCiAgX19yZXRfNTUyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZXFfdTE2KF9fcDBfNTUzLCBfX3AxXzU1MywgX19wMl81NTMsIF9fcDNfNTUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTUzID0gX19wMF81NTM7IFwKICB1aW50MTZ4NF90IF9fczFfNTUzID0gX19wMV81NTM7IFwKICB1aW50MTZ4OF90IF9fczJfNTUzID0gX19wMl81NTM7IFwKICB1aW50MzJ4NF90IF9fcmV0XzU1MzsgXAogIF9fcmV0XzU1MyA9IF9fczBfNTUzICsgdm11bGxfdTE2KF9fczFfNTUzLCBzcGxhdF9sYW5lcV91MTYoX19zMl81NTMsIF9fcDNfNTUzKSk7IFwKICBfX3JldF81NTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lcV91MTYoX19wMF81NTQsIF9fcDFfNTU0LCBfX3AyXzU1NCwgX19wM181NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NTQgPSBfX3AwXzU1NDsgXAogIHVpbnQxNng0X3QgX19zMV81NTQgPSBfX3AxXzU1NDsgXAogIHVpbnQxNng4X3QgX19zMl81NTQgPSBfX3AyXzU1NDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzU1NDsgIF9fcmV2MF81NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU1NCwgX19zMF81NTQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTU0OyAgX19yZXYxXzU1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTU0LCBfX3MxXzU1NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81NTQ7ICBfX3JldjJfNTU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NTQsIF9fczJfNTU0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTU0OyBcCiAgX19yZXRfNTU0ID0gX19yZXYwXzU1NCArIF9fbm9zd2FwX3ZtdWxsX3UxNihfX3JldjFfNTU0LCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzU1NCwgX19wM181NTQpKTsgXAogIF9fcmV0XzU1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU1NCwgX19yZXRfNTU0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2xhbmVxX3MzMihfX3AwXzU1NSwgX19wMV81NTUsIF9fcDJfNTU1LCBfX3AzXzU1NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTU1ID0gX19wMF81NTU7IFwKICBpbnQzMngyX3QgX19zMV81NTUgPSBfX3AxXzU1NTsgXAogIGludDMyeDRfdCBfX3MyXzU1NSA9IF9fcDJfNTU1OyBcCiAgaW50NjR4Ml90IF9fcmV0XzU1NTsgXAogIF9fcmV0XzU1NSA9IF9fczBfNTU1ICsgdm11bGxfczMyKF9fczFfNTU1LCBzcGxhdF9sYW5lcV9zMzIoX19zMl81NTUsIF9fcDNfNTU1KSk7IFwKICBfX3JldF81NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lcV9zMzIoX19wMF81NTYsIF9fcDFfNTU2LCBfX3AyXzU1NiwgX19wM181NTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzU1NiA9IF9fcDBfNTU2OyBcCiAgaW50MzJ4Ml90IF9fczFfNTU2ID0gX19wMV81NTY7IFwKICBpbnQzMng0X3QgX19zMl81NTYgPSBfX3AyXzU1NjsgXAogIGludDY0eDJfdCBfX3JldjBfNTU2OyAgX19yZXYwXzU1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTU2LCBfX3MwXzU1NiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU1NjsgIF9fcmV2MV81NTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU1NiwgX19zMV81NTYsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NTY7ICBfX3JldjJfNTU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NTYsIF9fczJfNTU2LCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF81NTY7IFwKICBfX3JldF81NTYgPSBfX3JldjBfNTU2ICsgX19ub3N3YXBfdm11bGxfczMyKF9fcmV2MV81NTYsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjJfNTU2LCBfX3AzXzU1NikpOyBcCiAgX19yZXRfNTU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTU2LCBfX3JldF81NTYsIDEsIDApOyBcCiAgX19yZXRfNTU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZXFfczE2KF9fcDBfNTU3LCBfX3AxXzU1NywgX19wMl81NTcsIF9fcDNfNTU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81NTcgPSBfX3AwXzU1NzsgXAogIGludDE2eDRfdCBfX3MxXzU1NyA9IF9fcDFfNTU3OyBcCiAgaW50MTZ4OF90IF9fczJfNTU3ID0gX19wMl81NTc7IFwKICBpbnQzMng0X3QgX19yZXRfNTU3OyBcCiAgX19yZXRfNTU3ID0gX19zMF81NTcgKyB2bXVsbF9zMTYoX19zMV81NTcsIHNwbGF0X2xhbmVxX3MxNihfX3MyXzU1NywgX19wM181NTcpKTsgXAogIF9fcmV0XzU1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVxX3MxNihfX3AwXzU1OCwgX19wMV81NTgsIF9fcDJfNTU4LCBfX3AzXzU1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTU4ID0gX19wMF81NTg7IFwKICBpbnQxNng0X3QgX19zMV81NTggPSBfX3AxXzU1ODsgXAogIGludDE2eDhfdCBfX3MyXzU1OCA9IF9fcDJfNTU4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NTg7ICBfX3JldjBfNTU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NTgsIF9fczBfNTU4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNTU4OyAgX19yZXYxXzU1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTU4LCBfX3MxXzU1OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU1ODsgIF9fcmV2Ml81NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1OCwgX19zMl81NTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU1ODsgXAogIF9fcmV0XzU1OCA9IF9fcmV2MF81NTggKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzU1OCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81NTgsIF9fcDNfNTU4KSk7IFwKICBfX3JldF81NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NTgsIF9fcmV0XzU1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWxzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtbHNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1sc19mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzcV9sYW5lcV91MzIoX19wMF81NTksIF9fcDFfNTU5LCBfX3AyXzU1OSwgX19wM181NTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NTkgPSBfX3AwXzU1OTsgXAogIHVpbnQzMng0X3QgX19zMV81NTkgPSBfX3AxXzU1OTsgXAogIHVpbnQzMng0X3QgX19zMl81NTkgPSBfX3AyXzU1OTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTU5OyBcCiAgX19yZXRfNTU5ID0gX19zMF81NTkgLSBfX3MxXzU1OSAqIHNwbGF0cV9sYW5lcV91MzIoX19zMl81NTksIF9fcDNfNTU5KTsgXAogIF9fcmV0XzU1OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX3UzMihfX3AwXzU2MCwgX19wMV81NjAsIF9fcDJfNTYwLCBfX3AzXzU2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU2MCA9IF9fcDBfNTYwOyBcCiAgdWludDMyeDRfdCBfX3MxXzU2MCA9IF9fcDFfNTYwOyBcCiAgdWludDMyeDRfdCBfX3MyXzU2MCA9IF9fcDJfNTYwOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTYwOyAgX19yZXYwXzU2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTYwLCBfX3MwXzU2MCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81NjA7ICBfX3JldjFfNTYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NjAsIF9fczFfNTYwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU2MDsgIF9fcmV2Ml81NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2MCwgX19zMl81NjAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81NjA7IFwKICBfX3JldF81NjAgPSBfX3JldjBfNTYwIC0gX19yZXYxXzU2MCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19yZXYyXzU2MCwgX19wM181NjApOyBcCiAgX19yZXRfNTYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTYwLCBfX3JldF81NjAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTYwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZXFfdTE2KF9fcDBfNTYxLCBfX3AxXzU2MSwgX19wMl81NjEsIF9fcDNfNTYxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNTYxID0gX19wMF81NjE7IFwKICB1aW50MTZ4OF90IF9fczFfNTYxID0gX19wMV81NjE7IFwKICB1aW50MTZ4OF90IF9fczJfNTYxID0gX19wMl81NjE7IFwKICB1aW50MTZ4OF90IF9fcmV0XzU2MTsgXAogIF9fcmV0XzU2MSA9IF9fczBfNTYxIC0gX19zMV81NjEgKiBzcGxhdHFfbGFuZXFfdTE2KF9fczJfNTYxLCBfX3AzXzU2MSk7IFwKICBfX3JldF81NjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lcV91MTYoX19wMF81NjIsIF9fcDFfNTYyLCBfX3AyXzU2MiwgX19wM181NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF81NjIgPSBfX3AwXzU2MjsgXAogIHVpbnQxNng4X3QgX19zMV81NjIgPSBfX3AxXzU2MjsgXAogIHVpbnQxNng4X3QgX19zMl81NjIgPSBfX3AyXzU2MjsgXAogIHVpbnQxNng4X3QgX19yZXYwXzU2MjsgIF9fcmV2MF81NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU2MiwgX19zMF81NjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTYyOyAgX19yZXYxXzU2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTYyLCBfX3MxXzU2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81NjI7ICBfX3JldjJfNTYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NjIsIF9fczJfNTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNTYyOyBcCiAgX19yZXRfNTYyID0gX19yZXYwXzU2MiAtIF9fcmV2MV81NjIgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTE2KF9fcmV2Ml81NjIsIF9fcDNfNTYyKTsgXAogIF9fcmV0XzU2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU2MiwgX19yZXRfNTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVxX2YzMihfX3AwXzU2MywgX19wMV81NjMsIF9fcDJfNTYzLCBfX3AzXzU2MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81NjMgPSBfX3AwXzU2MzsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTYzID0gX19wMV81NjM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU2MyA9IF9fcDJfNTYzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTYzOyBcCiAgX19yZXRfNTYzID0gX19zMF81NjMgLSBfX3MxXzU2MyAqIHNwbGF0cV9sYW5lcV9mMzIoX19zMl81NjMsIF9fcDNfNTYzKTsgXAogIF9fcmV0XzU2MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX2YzMihfX3AwXzU2NCwgX19wMV81NjQsIF9fcDJfNTY0LCBfX3AzXzU2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81NjQgPSBfX3AwXzU2NDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTY0ID0gX19wMV81NjQ7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU2NCA9IF9fcDJfNTY0OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzU2NDsgIF9fcmV2MF81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU2NCwgX19zMF81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzU2NDsgIF9fcmV2MV81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU2NCwgX19zMV81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzU2NDsgIF9fcmV2Ml81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2NCwgX19zMl81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTY0OyBcCiAgX19yZXRfNTY0ID0gX19yZXYwXzU2NCAtIF9fcmV2MV81NjQgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2Ml81NjQsIF9fcDNfNTY0KTsgXAogIF9fcmV0XzU2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU2NCwgX19yZXRfNTY0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU2NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVxX3MzMihfX3AwXzU2NSwgX19wMV81NjUsIF9fcDJfNTY1LCBfX3AzXzU2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTY1ID0gX19wMF81NjU7IFwKICBpbnQzMng0X3QgX19zMV81NjUgPSBfX3AxXzU2NTsgXAogIGludDMyeDRfdCBfX3MyXzU2NSA9IF9fcDJfNTY1OyBcCiAgaW50MzJ4NF90IF9fcmV0XzU2NTsgXAogIF9fcmV0XzU2NSA9IF9fczBfNTY1IC0gX19zMV81NjUgKiBzcGxhdHFfbGFuZXFfczMyKF9fczJfNTY1LCBfX3AzXzU2NSk7IFwKICBfX3JldF81NjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lcV9zMzIoX19wMF81NjYsIF9fcDFfNTY2LCBfX3AyXzU2NiwgX19wM181NjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzU2NiA9IF9fcDBfNTY2OyBcCiAgaW50MzJ4NF90IF9fczFfNTY2ID0gX19wMV81NjY7IFwKICBpbnQzMng0X3QgX19zMl81NjYgPSBfX3AyXzU2NjsgXAogIGludDMyeDRfdCBfX3JldjBfNTY2OyAgX19yZXYwXzU2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTY2LCBfX3MwXzU2NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzU2NjsgIF9fcmV2MV81NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU2NiwgX19zMV81NjYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NjY7ICBfX3JldjJfNTY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NjYsIF9fczJfNTY2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF81NjY7IFwKICBfX3JldF81NjYgPSBfX3JldjBfNTY2IC0gX19yZXYxXzU2NiAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoX19yZXYyXzU2NiwgX19wM181NjYpOyBcCiAgX19yZXRfNTY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTY2LCBfX3JldF81NjYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTY2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZXFfczE2KF9fcDBfNTY3LCBfX3AxXzU2NywgX19wMl81NjcsIF9fcDNfNTY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF81NjcgPSBfX3AwXzU2NzsgXAogIGludDE2eDhfdCBfX3MxXzU2NyA9IF9fcDFfNTY3OyBcCiAgaW50MTZ4OF90IF9fczJfNTY3ID0gX19wMl81Njc7IFwKICBpbnQxNng4X3QgX19yZXRfNTY3OyBcCiAgX19yZXRfNTY3ID0gX19zMF81NjcgLSBfX3MxXzU2NyAqIHNwbGF0cV9sYW5lcV9zMTYoX19zMl81NjcsIF9fcDNfNTY3KTsgXAogIF9fcmV0XzU2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX3MxNihfX3AwXzU2OCwgX19wMV81NjgsIF9fcDJfNTY4LCBfX3AzXzU2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTY4ID0gX19wMF81Njg7IFwKICBpbnQxNng4X3QgX19zMV81NjggPSBfX3AxXzU2ODsgXAogIGludDE2eDhfdCBfX3MyXzU2OCA9IF9fcDJfNTY4OyBcCiAgaW50MTZ4OF90IF9fcmV2MF81Njg7ICBfX3JldjBfNTY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NjgsIF9fczBfNTY4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTY4OyAgX19yZXYxXzU2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTY4LCBfX3MxXzU2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU2ODsgIF9fcmV2Ml81NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2OCwgX19zMl81NjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzU2ODsgXAogIF9fcmV0XzU2OCA9IF9fcmV2MF81NjggLSBfX3JldjFfNTY4ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjJfNTY4LCBfX3AzXzU2OCk7IFwKICBfX3JldF81NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NjgsIF9fcmV0XzU2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3UzMihfX3AwXzU2OSwgX19wMV81NjksIF9fcDJfNTY5LCBfX3AzXzU2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzU2OSA9IF9fcDBfNTY5OyBcCiAgdWludDMyeDJfdCBfX3MxXzU2OSA9IF9fcDFfNTY5OyBcCiAgdWludDMyeDRfdCBfX3MyXzU2OSA9IF9fcDJfNTY5OyBcCiAgdWludDMyeDJfdCBfX3JldF81Njk7IFwKICBfX3JldF81NjkgPSBfX3MwXzU2OSAtIF9fczFfNTY5ICogc3BsYXRfbGFuZXFfdTMyKF9fczJfNTY5LCBfX3AzXzU2OSk7IFwKICBfX3JldF81Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzX2xhbmVxX3UzMihfX3AwXzU3MCwgX19wMV81NzAsIF9fcDJfNTcwLCBfX3AzXzU3MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzU3MCA9IF9fcDBfNTcwOyBcCiAgdWludDMyeDJfdCBfX3MxXzU3MCA9IF9fcDFfNTcwOyBcCiAgdWludDMyeDRfdCBfX3MyXzU3MCA9IF9fcDJfNTcwOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNTcwOyAgX19yZXYwXzU3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcwLCBfX3MwXzU3MCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81NzA7ICBfX3JldjFfNTcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzAsIF9fczFfNTcwLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU3MDsgIF9fcmV2Ml81NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3MCwgX19zMl81NzAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF81NzA7IFwKICBfX3JldF81NzAgPSBfX3JldjBfNTcwIC0gX19yZXYxXzU3MCAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTcwLCBfX3AzXzU3MCk7IFwKICBfX3JldF81NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzAsIF9fcmV0XzU3MCwgMSwgMCk7IFwKICBfX3JldF81NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3UxNihfX3AwXzU3MSwgX19wMV81NzEsIF9fcDJfNTcxLCBfX3AzXzU3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU3MSA9IF9fcDBfNTcxOyBcCiAgdWludDE2eDRfdCBfX3MxXzU3MSA9IF9fcDFfNTcxOyBcCiAgdWludDE2eDhfdCBfX3MyXzU3MSA9IF9fcDJfNTcxOyBcCiAgdWludDE2eDRfdCBfX3JldF81NzE7IFwKICBfX3JldF81NzEgPSBfX3MwXzU3MSAtIF9fczFfNTcxICogc3BsYXRfbGFuZXFfdTE2KF9fczJfNTcxLCBfX3AzXzU3MSk7IFwKICBfX3JldF81NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzX2xhbmVxX3UxNihfX3AwXzU3MiwgX19wMV81NzIsIF9fcDJfNTcyLCBfX3AzXzU3MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU3MiA9IF9fcDBfNTcyOyBcCiAgdWludDE2eDRfdCBfX3MxXzU3MiA9IF9fcDFfNTcyOyBcCiAgdWludDE2eDhfdCBfX3MyXzU3MiA9IF9fcDJfNTcyOyBcCiAgdWludDE2eDRfdCBfX3JldjBfNTcyOyAgX19yZXYwXzU3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcyLCBfX3MwXzU3MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV81NzI7ICBfX3JldjFfNTcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzIsIF9fczFfNTcyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYyXzU3MjsgIF9fcmV2Ml81NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3MiwgX19zMl81NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF81NzI7IFwKICBfX3JldF81NzIgPSBfX3JldjBfNTcyIC0gX19yZXYxXzU3MiAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjJfNTcyLCBfX3AzXzU3Mik7IFwKICBfX3JldF81NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzIsIF9fcmV0XzU3MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX2YzMihfX3AwXzU3MywgX19wMV81NzMsIF9fcDJfNTczLCBfX3AzXzU3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF81NzMgPSBfX3AwXzU3MzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNTczID0gX19wMV81NzM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU3MyA9IF9fcDJfNTczOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNTczOyBcCiAgX19yZXRfNTczID0gX19zMF81NzMgLSBfX3MxXzU3MyAqIHNwbGF0X2xhbmVxX2YzMihfX3MyXzU3MywgX19wM181NzMpOyBcCiAgX19yZXRfNTczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lcV9mMzIoX19wMF81NzQsIF9fcDFfNTc0LCBfX3AyXzU3NCwgX19wM181NzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTc0ID0gX19wMF81NzQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzU3NCA9IF9fcDFfNTc0OyBcCiAgZmxvYXQzMng0X3QgX19zMl81NzQgPSBfX3AyXzU3NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF81NzQ7ICBfX3JldjBfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NzQsIF9fczBfNTc0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV81NzQ7ICBfX3JldjFfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzQsIF9fczFfNTc0LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml81NzQ7ICBfX3JldjJfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NzQsIF9fczJfNTc0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU3NDsgXAogIF9fcmV0XzU3NCA9IF9fcmV2MF81NzQgLSBfX3JldjFfNTc0ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcmV2Ml81NzQsIF9fcDNfNTc0KTsgXAogIF9fcmV0XzU3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU3NCwgX19yZXRfNTc0LCAxLCAwKTsgXAogIF9fcmV0XzU3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNfbGFuZXFfczMyKF9fcDBfNTc1LCBfX3AxXzU3NSwgX19wMl81NzUsIF9fcDNfNTc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81NzUgPSBfX3AwXzU3NTsgXAogIGludDMyeDJfdCBfX3MxXzU3NSA9IF9fcDFfNTc1OyBcCiAgaW50MzJ4NF90IF9fczJfNTc1ID0gX19wMl81NzU7IFwKICBpbnQzMngyX3QgX19yZXRfNTc1OyBcCiAgX19yZXRfNTc1ID0gX19zMF81NzUgLSBfX3MxXzU3NSAqIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU3NSwgX19wM181NzUpOyBcCiAgX19yZXRfNTc1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lcV9zMzIoX19wMF81NzYsIF9fcDFfNTc2LCBfX3AyXzU3NiwgX19wM181NzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzU3NiA9IF9fcDBfNTc2OyBcCiAgaW50MzJ4Ml90IF9fczFfNTc2ID0gX19wMV81NzY7IFwKICBpbnQzMng0X3QgX19zMl81NzYgPSBfX3AyXzU3NjsgXAogIGludDMyeDJfdCBfX3JldjBfNTc2OyAgX19yZXYwXzU3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTc2LCBfX3MwXzU3NiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU3NjsgIF9fcmV2MV81NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU3NiwgX19zMV81NzYsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NzY7ICBfX3JldjJfNTc2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NzYsIF9fczJfNTc2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldF81NzY7IFwKICBfX3JldF81NzYgPSBfX3JldjBfNTc2IC0gX19yZXYxXzU3NiAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjJfNTc2LCBfX3AzXzU3Nik7IFwKICBfX3JldF81NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzYsIF9fcmV0XzU3NiwgMSwgMCk7IFwKICBfX3JldF81NzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3MxNihfX3AwXzU3NywgX19wMV81NzcsIF9fcDJfNTc3LCBfX3AzXzU3NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNTc3ID0gX19wMF81Nzc7IFwKICBpbnQxNng0X3QgX19zMV81NzcgPSBfX3AxXzU3NzsgXAogIGludDE2eDhfdCBfX3MyXzU3NyA9IF9fcDJfNTc3OyBcCiAgaW50MTZ4NF90IF9fcmV0XzU3NzsgXAogIF9fcmV0XzU3NyA9IF9fczBfNTc3IC0gX19zMV81NzcgKiBzcGxhdF9sYW5lcV9zMTYoX19zMl81NzcsIF9fcDNfNTc3KTsgXAogIF9fcmV0XzU3NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZXFfczE2KF9fcDBfNTc4LCBfX3AxXzU3OCwgX19wMl81NzgsIF9fcDNfNTc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF81NzggPSBfX3AwXzU3ODsgXAogIGludDE2eDRfdCBfX3MxXzU3OCA9IF9fcDFfNTc4OyBcCiAgaW50MTZ4OF90IF9fczJfNTc4ID0gX19wMl81Nzg7IFwKICBpbnQxNng0X3QgX19yZXYwXzU3ODsgIF9fcmV2MF81NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU3OCwgX19zMF81NzgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV81Nzg7ICBfX3JldjFfNTc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzgsIF9fczFfNTc4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNTc4OyAgX19yZXYyXzU3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTc4LCBfX3MyXzU3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNTc4OyBcCiAgX19yZXRfNTc4ID0gX19yZXYwXzU3OCAtIF9fcmV2MV81NzggKiBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzU3OCwgX19wM181NzgpOyBcCiAgX19yZXRfNTc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTc4LCBfX3JldF81NzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UzMihfX3AwXzU3OSwgX19wMV81NzksIF9fcDJfNTc5LCBfX3AzXzU3OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU3OSA9IF9fcDBfNTc5OyBcCiAgdWludDMyeDRfdCBfX3MxXzU3OSA9IF9fcDFfNTc5OyBcCiAgdWludDMyeDJfdCBfX3MyXzU3OSA9IF9fcDJfNTc5OyBcCiAgdWludDY0eDJfdCBfX3JldF81Nzk7IFwKICBfX3JldF81NzkgPSBfX3MwXzU3OSAtIHZtdWxsX3UzMih2Z2V0X2hpZ2hfdTMyKF9fczFfNTc5KSwgc3BsYXRfbGFuZV91MzIoX19zMl81NzksIF9fcDNfNTc5KSk7IFwKICBfX3JldF81Nzk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfdTMyKF9fcDBfNTgwLCBfX3AxXzU4MCwgX19wMl81ODAsIF9fcDNfNTgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTgwID0gX19wMF81ODA7IFwKICB1aW50MzJ4NF90IF9fczFfNTgwID0gX19wMV81ODA7IFwKICB1aW50MzJ4Ml90IF9fczJfNTgwID0gX19wMl81ODA7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81ODA7ICBfX3JldjBfNTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODAsIF9fczBfNTgwLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzU4MDsgIF9fcmV2MV81ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU4MCwgX19zMV81ODAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjJfNTgwOyAgX19yZXYyXzU4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTgwLCBfX3MyXzU4MCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU4MDsgXAogIF9fcmV0XzU4MCA9IF9fcmV2MF81ODAgLSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjFfNTgwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYyXzU4MCwgX19wM181ODApKTsgXAogIF9fcmV0XzU4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU4MCwgX19yZXRfNTgwLCAxLCAwKTsgXAogIF9fcmV0XzU4MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZV91MTYoX19wMF81ODEsIF9fcDFfNTgxLCBfX3AyXzU4MSwgX19wM181ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81ODEgPSBfX3AwXzU4MTsgXAogIHVpbnQxNng4X3QgX19zMV81ODEgPSBfX3AxXzU4MTsgXAogIHVpbnQxNng0X3QgX19zMl81ODEgPSBfX3AyXzU4MTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTgxOyBcCiAgX19yZXRfNTgxID0gX19zMF81ODEgLSB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MxXzU4MSksIHNwbGF0X2xhbmVfdTE2KF9fczJfNTgxLCBfX3AzXzU4MSkpOyBcCiAgX19yZXRfNTgxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UxNihfX3AwXzU4MiwgX19wMV81ODIsIF9fcDJfNTgyLCBfX3AzXzU4MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU4MiA9IF9fcDBfNTgyOyBcCiAgdWludDE2eDhfdCBfX3MxXzU4MiA9IF9fcDFfNTgyOyBcCiAgdWludDE2eDRfdCBfX3MyXzU4MiA9IF9fcDJfNTgyOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTgyOyAgX19yZXYwXzU4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTgyLCBfX3MwXzU4MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV81ODI7ICBfX3JldjFfNTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81ODIsIF9fczFfNTgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzU4MjsgIF9fcmV2Ml81ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU4MiwgX19zMl81ODIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81ODI7IFwKICBfX3JldF81ODIgPSBfX3JldjBfNTgyIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYxXzU4MiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml81ODIsIF9fcDNfNTgyKSk7IFwKICBfX3JldF81ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81ODIsIF9fcmV0XzU4MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81ODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfczMyKF9fcDBfNTgzLCBfX3AxXzU4MywgX19wMl81ODMsIF9fcDNfNTgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81ODMgPSBfX3AwXzU4MzsgXAogIGludDMyeDRfdCBfX3MxXzU4MyA9IF9fcDFfNTgzOyBcCiAgaW50MzJ4Ml90IF9fczJfNTgzID0gX19wMl81ODM7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTgzOyBcCiAgX19yZXRfNTgzID0gX19zMF81ODMgLSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MxXzU4MyksIHNwbGF0X2xhbmVfczMyKF9fczJfNTgzLCBfX3AzXzU4MykpOyBcCiAgX19yZXRfNTgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3MzMihfX3AwXzU4NCwgX19wMV81ODQsIF9fcDJfNTg0LCBfX3AzXzU4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTg0ID0gX19wMF81ODQ7IFwKICBpbnQzMng0X3QgX19zMV81ODQgPSBfX3AxXzU4NDsgXAogIGludDMyeDJfdCBfX3MyXzU4NCA9IF9fcDJfNTg0OyBcCiAgaW50NjR4Ml90IF9fcmV2MF81ODQ7ICBfX3JldjBfNTg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODQsIF9fczBfNTg0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNTg0OyAgX19yZXYxXzU4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTg0LCBfX3MxXzU4NCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzU4NDsgIF9fcmV2Ml81ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU4NCwgX19zMl81ODQsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzU4NDsgXAogIF9fcmV0XzU4NCA9IF9fcmV2MF81ODQgLSBfX25vc3dhcF92bXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjFfNTg0KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzU4NCwgX19wM181ODQpKTsgXAogIF9fcmV0XzU4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU4NCwgX19yZXRfNTg0LCAxLCAwKTsgXAogIF9fcmV0XzU4NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZV9zMTYoX19wMF81ODUsIF9fcDFfNTg1LCBfX3AyXzU4NSwgX19wM181ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzU4NSA9IF9fcDBfNTg1OyBcCiAgaW50MTZ4OF90IF9fczFfNTg1ID0gX19wMV81ODU7IFwKICBpbnQxNng0X3QgX19zMl81ODUgPSBfX3AyXzU4NTsgXAogIGludDMyeDRfdCBfX3JldF81ODU7IFwKICBfX3JldF81ODUgPSBfX3MwXzU4NSAtIHZtdWxsX3MxNih2Z2V0X2hpZ2hfczE2KF9fczFfNTg1KSwgc3BsYXRfbGFuZV9zMTYoX19zMl81ODUsIF9fcDNfNTg1KSk7IFwKICBfX3JldF81ODU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfczE2KF9fcDBfNTg2LCBfX3AxXzU4NiwgX19wMl81ODYsIF9fcDNfNTg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81ODYgPSBfX3AwXzU4NjsgXAogIGludDE2eDhfdCBfX3MxXzU4NiA9IF9fcDFfNTg2OyBcCiAgaW50MTZ4NF90IF9fczJfNTg2ID0gX19wMl81ODY7IFwKICBpbnQzMng0X3QgX19yZXYwXzU4NjsgIF9fcmV2MF81ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU4NiwgX19zMF81ODYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81ODY7ICBfX3JldjFfNTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81ODYsIF9fczFfNTg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNTg2OyAgX19yZXYyXzU4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTg2LCBfX3MyXzU4NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTg2OyBcCiAgX19yZXRfNTg2ID0gX19yZXYwXzU4NiAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV81ODYpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjJfNTg2LCBfX3AzXzU4NikpOyBcCiAgX19yZXRfNTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTg2LCBfX3JldF81ODYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV91MzIoX19wMF81ODcsIF9fcDFfNTg3LCBfX3AyXzU4NywgX19wM181ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81ODcgPSBfX3AwXzU4NzsgXAogIHVpbnQzMng0X3QgX19zMV81ODcgPSBfX3AxXzU4NzsgXAogIHVpbnQzMng0X3QgX19zMl81ODcgPSBfX3AyXzU4NzsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTg3OyBcCiAgX19yZXRfNTg3ID0gX19zMF81ODcgLSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MxXzU4NyksIHNwbGF0X2xhbmVxX3UzMihfX3MyXzU4NywgX19wM181ODcpKTsgXAogIF9fcmV0XzU4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNTg4LCBfX3AxXzU4OCwgX19wMl81ODgsIF9fcDNfNTg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTg4ID0gX19wMF81ODg7IFwKICB1aW50MzJ4NF90IF9fczFfNTg4ID0gX19wMV81ODg7IFwKICB1aW50MzJ4NF90IF9fczJfNTg4ID0gX19wMl81ODg7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81ODg7ICBfX3JldjBfNTg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODgsIF9fczBfNTg4LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzU4ODsgIF9fcmV2MV81ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU4OCwgX19zMV81ODgsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjJfNTg4OyAgX19yZXYyXzU4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTg4LCBfX3MyXzU4OCwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU4ODsgXAogIF9fcmV0XzU4OCA9IF9fcmV2MF81ODggLSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjFfNTg4KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2Ml81ODgsIF9fcDNfNTg4KSk7IFwKICBfX3JldF81ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81ODgsIF9fcmV0XzU4OCwgMSwgMCk7IFwKICBfX3JldF81ODg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVxX3UxNihfX3AwXzU4OSwgX19wMV81ODksIF9fcDJfNTg5LCBfX3AzXzU4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU4OSA9IF9fcDBfNTg5OyBcCiAgdWludDE2eDhfdCBfX3MxXzU4OSA9IF9fcDFfNTg5OyBcCiAgdWludDE2eDhfdCBfX3MyXzU4OSA9IF9fcDJfNTg5OyBcCiAgdWludDMyeDRfdCBfX3JldF81ODk7IFwKICBfX3JldF81ODkgPSBfX3MwXzU4OSAtIHZtdWxsX3UxNih2Z2V0X2hpZ2hfdTE2KF9fczFfNTg5KSwgc3BsYXRfbGFuZXFfdTE2KF9fczJfNTg5LCBfX3AzXzU4OSkpOyBcCiAgX19yZXRfNTg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV91MTYoX19wMF81OTAsIF9fcDFfNTkwLCBfX3AyXzU5MCwgX19wM181OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81OTAgPSBfX3AwXzU5MDsgXAogIHVpbnQxNng4X3QgX19zMV81OTAgPSBfX3AxXzU5MDsgXAogIHVpbnQxNng4X3QgX19zMl81OTAgPSBfX3AyXzU5MDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzU5MDsgIF9fcmV2MF81OTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5MCwgX19zMF81OTAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTkwOyAgX19yZXYxXzU5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTkwLCBfX3MxXzU5MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81OTA7ICBfX3JldjJfNTkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81OTAsIF9fczJfNTkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTkwOyBcCiAgX19yZXRfNTkwID0gX19yZXYwXzU5MCAtIF9fbm9zd2FwX3ZtdWxsX3UxNihfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MV81OTApLCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzU5MCwgX19wM181OTApKTsgXAogIF9fcmV0XzU5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5MCwgX19yZXRfNTkwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczMyKF9fcDBfNTkxLCBfX3AxXzU5MSwgX19wMl81OTEsIF9fcDNfNTkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTEgPSBfX3AwXzU5MTsgXAogIGludDMyeDRfdCBfX3MxXzU5MSA9IF9fcDFfNTkxOyBcCiAgaW50MzJ4NF90IF9fczJfNTkxID0gX19wMl81OTE7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTkxOyBcCiAgX19yZXRfNTkxID0gX19zMF81OTEgLSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MxXzU5MSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU5MSwgX19wM181OTEpKTsgXAogIF9fcmV0XzU5MTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczMyKF9fcDBfNTkyLCBfX3AxXzU5MiwgX19wMl81OTIsIF9fcDNfNTkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTIgPSBfX3AwXzU5MjsgXAogIGludDMyeDRfdCBfX3MxXzU5MiA9IF9fcDFfNTkyOyBcCiAgaW50MzJ4NF90IF9fczJfNTkyID0gX19wMl81OTI7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzU5MjsgIF9fcmV2MF81OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5MiwgX19zMF81OTIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV81OTI7ICBfX3JldjFfNTkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTIsIF9fczFfNTkyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTkyOyAgX19yZXYyXzU5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTkyLCBfX3MyXzU5MiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTkyOyBcCiAgX19yZXRfNTkyID0gX19yZXYwXzU5MiAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV81OTIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzU5MiwgX19wM181OTIpKTsgXAogIF9fcmV0XzU5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5MiwgX19yZXRfNTkyLCAxLCAwKTsgXAogIF9fcmV0XzU5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNTkzLCBfX3AxXzU5MywgX19wMl81OTMsIF9fcDNfNTkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81OTMgPSBfX3AwXzU5MzsgXAogIGludDE2eDhfdCBfX3MxXzU5MyA9IF9fcDFfNTkzOyBcCiAgaW50MTZ4OF90IF9fczJfNTkzID0gX19wMl81OTM7IFwKICBpbnQzMng0X3QgX19yZXRfNTkzOyBcCiAgX19yZXRfNTkzID0gX19zMF81OTMgLSB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MxXzU5MyksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzU5MywgX19wM181OTMpKTsgXAogIF9fcmV0XzU5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNTk0LCBfX3AxXzU5NCwgX19wMl81OTQsIF9fcDNfNTk0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81OTQgPSBfX3AwXzU5NDsgXAogIGludDE2eDhfdCBfX3MxXzU5NCA9IF9fcDFfNTk0OyBcCiAgaW50MTZ4OF90IF9fczJfNTk0ID0gX19wMl81OTQ7IFwKICBpbnQzMng0X3QgX19yZXYwXzU5NDsgIF9fcmV2MF81OTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5NCwgX19zMF81OTQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81OTQ7ICBfX3JldjFfNTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTQsIF9fczFfNTk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNTk0OyAgX19yZXYyXzU5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTk0LCBfX3MyXzU5NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTk0OyBcCiAgX19yZXRfNTk0ID0gX19yZXYwXzU5NCAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV81OTQpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzU5NCwgX19wM181OTQpKTsgXAogIF9fcmV0XzU5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5NCwgX19yZXRfNTk0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU5NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2xhbmVxX3UzMihfX3AwXzU5NSwgX19wMV81OTUsIF9fcDJfNTk1LCBfX3AzXzU5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU5NSA9IF9fcDBfNTk1OyBcCiAgdWludDMyeDJfdCBfX3MxXzU5NSA9IF9fcDFfNTk1OyBcCiAgdWludDMyeDRfdCBfX3MyXzU5NSA9IF9fcDJfNTk1OyBcCiAgdWludDY0eDJfdCBfX3JldF81OTU7IFwKICBfX3JldF81OTUgPSBfX3MwXzU5NSAtIHZtdWxsX3UzMihfX3MxXzU5NSwgc3BsYXRfbGFuZXFfdTMyKF9fczJfNTk1LCBfX3AzXzU5NSkpOyBcCiAgX19yZXRfNTk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfbGFuZXFfdTMyKF9fcDBfNTk2LCBfX3AxXzU5NiwgX19wMl81OTYsIF9fcDNfNTk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTk2ID0gX19wMF81OTY7IFwKICB1aW50MzJ4Ml90IF9fczFfNTk2ID0gX19wMV81OTY7IFwKICB1aW50MzJ4NF90IF9fczJfNTk2ID0gX19wMl81OTY7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81OTY7ICBfX3JldjBfNTk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81OTYsIF9fczBfNTk2LCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzU5NjsgIF9fcmV2MV81OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU5NiwgX19zMV81OTYsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjJfNTk2OyAgX19yZXYyXzU5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTk2LCBfX3MyXzU5NiwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU5NjsgXAogIF9fcmV0XzU5NiA9IF9fcmV2MF81OTYgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxXzU5NiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2Ml81OTYsIF9fcDNfNTk2KSk7IFwKICBfX3JldF81OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81OTYsIF9fcmV0XzU5NiwgMSwgMCk7IFwKICBfX3JldF81OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lcV91MTYoX19wMF81OTcsIF9fcDFfNTk3LCBfX3AyXzU5NywgX19wM181OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81OTcgPSBfX3AwXzU5NzsgXAogIHVpbnQxNng0X3QgX19zMV81OTcgPSBfX3AxXzU5NzsgXAogIHVpbnQxNng4X3QgX19zMl81OTcgPSBfX3AyXzU5NzsgXAogIHVpbnQzMng0X3QgX19yZXRfNTk3OyBcCiAgX19yZXRfNTk3ID0gX19zMF81OTcgLSB2bXVsbF91MTYoX19zMV81OTcsIHNwbGF0X2xhbmVxX3UxNihfX3MyXzU5NywgX19wM181OTcpKTsgXAogIF9fcmV0XzU5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVxX3UxNihfX3AwXzU5OCwgX19wMV81OTgsIF9fcDJfNTk4LCBfX3AzXzU5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU5OCA9IF9fcDBfNTk4OyBcCiAgdWludDE2eDRfdCBfX3MxXzU5OCA9IF9fcDFfNTk4OyBcCiAgdWludDE2eDhfdCBfX3MyXzU5OCA9IF9fcDJfNTk4OyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTk4OyAgX19yZXYwXzU5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTk4LCBfX3MwXzU5OCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV81OTg7ICBfX3JldjFfNTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTgsIF9fczFfNTk4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYyXzU5ODsgIF9fcmV2Ml81OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU5OCwgX19zMl81OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81OTg7IFwKICBfX3JldF81OTggPSBfX3JldjBfNTk4IC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV81OTgsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjJfNTk4LCBfX3AzXzU5OCkpOyBcCiAgX19yZXRfNTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTk4LCBfX3JldF81OTgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTk4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfbGFuZXFfczMyKF9fcDBfNTk5LCBfX3AxXzU5OSwgX19wMl81OTksIF9fcDNfNTk5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTkgPSBfX3AwXzU5OTsgXAogIGludDMyeDJfdCBfX3MxXzU5OSA9IF9fcDFfNTk5OyBcCiAgaW50MzJ4NF90IF9fczJfNTk5ID0gX19wMl81OTk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTk5OyBcCiAgX19yZXRfNTk5ID0gX19zMF81OTkgLSB2bXVsbF9zMzIoX19zMV81OTksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU5OSwgX19wM181OTkpKTsgXAogIF9fcmV0XzU5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVxX3MzMihfX3AwXzYwMCwgX19wMV82MDAsIF9fcDJfNjAwLCBfX3AzXzYwMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNjAwID0gX19wMF82MDA7IFwKICBpbnQzMngyX3QgX19zMV82MDAgPSBfX3AxXzYwMDsgXAogIGludDMyeDRfdCBfX3MyXzYwMCA9IF9fcDJfNjAwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF82MDA7ICBfX3JldjBfNjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82MDAsIF9fczBfNjAwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNjAwOyAgX19yZXYxXzYwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjAwLCBfX3MxXzYwMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzYwMDsgIF9fcmV2Ml82MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzYwMCwgX19zMl82MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzYwMDsgXAogIF9fcmV0XzYwMCA9IF9fcmV2MF82MDAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxXzYwMCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml82MDAsIF9fcDNfNjAwKSk7IFwKICBfX3JldF82MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MDAsIF9fcmV0XzYwMCwgMSwgMCk7IFwKICBfX3JldF82MDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lcV9zMTYoX19wMF82MDEsIF9fcDFfNjAxLCBfX3AyXzYwMSwgX19wM182MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzYwMSA9IF9fcDBfNjAxOyBcCiAgaW50MTZ4NF90IF9fczFfNjAxID0gX19wMV82MDE7IFwKICBpbnQxNng4X3QgX19zMl82MDEgPSBfX3AyXzYwMTsgXAogIGludDMyeDRfdCBfX3JldF82MDE7IFwKICBfX3JldF82MDEgPSBfX3MwXzYwMSAtIHZtdWxsX3MxNihfX3MxXzYwMSwgc3BsYXRfbGFuZXFfczE2KF9fczJfNjAxLCBfX3AzXzYwMSkpOyBcCiAgX19yZXRfNjAxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfbGFuZXFfczE2KF9fcDBfNjAyLCBfX3AxXzYwMiwgX19wMl82MDIsIF9fcDNfNjAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82MDIgPSBfX3AwXzYwMjsgXAogIGludDE2eDRfdCBfX3MxXzYwMiA9IF9fcDFfNjAyOyBcCiAgaW50MTZ4OF90IF9fczJfNjAyID0gX19wMl82MDI7IFwKICBpbnQzMng0X3QgX19yZXYwXzYwMjsgIF9fcmV2MF82MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYwMiwgX19zMF82MDIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV82MDI7ICBfX3JldjFfNjAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MDIsIF9fczFfNjAyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNjAyOyAgX19yZXYyXzYwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjAyLCBfX3MyXzYwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjAyOyBcCiAgX19yZXRfNjAyID0gX19yZXYwXzYwMiAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjFfNjAyLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzYwMiwgX19wM182MDIpKTsgXAogIF9fcmV0XzYwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYwMiwgX19yZXRfNjAyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYwMjsgXAp9KQojZW5kaWYKCl9fYWkgcG9seTY0eDFfdCB2bW92X25fcDY0KHBvbHk2NF90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2bW92cV9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2bW92cV9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtb3ZxX25fZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bW92cV9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1vdl9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1vdmxfaGlnaF91OCh1aW50OHgxNl90IF9fcDBfNjAzKSB7CiAgdWludDE2eDhfdCBfX3JldF82MDM7CiAgdWludDh4OF90IF9fYTFfNjAzID0gdmdldF9oaWdoX3U4KF9fcDBfNjAzKTsKICBfX3JldF82MDMgPSAodWludDE2eDhfdCkodnNobGxfbl91OChfX2ExXzYwMywgMCkpOwogIHJldHVybiBfX3JldF82MDM7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtb3ZsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwXzYwNCkgewogIHVpbnQ4eDE2X3QgX19yZXYwXzYwNDsgIF9fcmV2MF82MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwXzYwNCwgX19wMF82MDQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXRfNjA0OwogIHVpbnQ4eDhfdCBfX2ExXzYwNCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjBfNjA0KTsKICBfX3JldF82MDQgPSAodWludDE2eDhfdCkoX19ub3N3YXBfdnNobGxfbl91OChfX2ExXzYwNCwgMCkpOwogIF9fcmV0XzYwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYwNCwgX19yZXRfNjA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXRfNjA0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92bW92bF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMF82MDUpIHsKICB1aW50MTZ4OF90IF9fcmV0XzYwNTsKICB1aW50OHg4X3QgX19hMV82MDUgPSBfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19wMF82MDUpOwogIF9fcmV0XzYwNSA9ICh1aW50MTZ4OF90KShfX25vc3dhcF92c2hsbF9uX3U4KF9fYTFfNjA1LCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYwNTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfaGlnaF91MzIodWludDMyeDRfdCBfX3AwXzYwNikgewogIHVpbnQ2NHgyX3QgX19yZXRfNjA2OwogIHVpbnQzMngyX3QgX19hMV82MDYgPSB2Z2V0X2hpZ2hfdTMyKF9fcDBfNjA2KTsKICBfX3JldF82MDYgPSAodWludDY0eDJfdCkodnNobGxfbl91MzIoX19hMV82MDYsIDApKTsKICByZXR1cm4gX19yZXRfNjA2Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bW92bF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDBfNjA3KSB7CiAgdWludDMyeDRfdCBfX3JldjBfNjA3OyAgX19yZXYwXzYwNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjA3LCBfX3AwXzYwNywgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldF82MDc7CiAgdWludDMyeDJfdCBfX2ExXzYwNyA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYwXzYwNyk7CiAgX19yZXRfNjA3ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fdTMyKF9fYTFfNjA3LCAwKSk7CiAgX19yZXRfNjA3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjA3LCBfX3JldF82MDcsIDEsIDApOwogIHJldHVybiBfX3JldF82MDc7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMF82MDgpIHsKICB1aW50NjR4Ml90IF9fcmV0XzYwODsKICB1aW50MzJ4Ml90IF9fYTFfNjA4ID0gX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3AwXzYwOCk7CiAgX19yZXRfNjA4ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fdTMyKF9fYTFfNjA4LCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYwODsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1vdmxfaGlnaF91MTYodWludDE2eDhfdCBfX3AwXzYwOSkgewogIHVpbnQzMng0X3QgX19yZXRfNjA5OwogIHVpbnQxNng0X3QgX19hMV82MDkgPSB2Z2V0X2hpZ2hfdTE2KF9fcDBfNjA5KTsKICBfX3JldF82MDkgPSAodWludDMyeDRfdCkodnNobGxfbl91MTYoX19hMV82MDksIDApKTsKICByZXR1cm4gX19yZXRfNjA5Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92bF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDBfNjEwKSB7CiAgdWludDE2eDhfdCBfX3JldjBfNjEwOyAgX19yZXYwXzYxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjEwLCBfX3AwXzYxMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldF82MTA7CiAgdWludDE2eDRfdCBfX2ExXzYxMCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwXzYxMCk7CiAgX19yZXRfNjEwID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fYTFfNjEwLCAwKSk7CiAgX19yZXRfNjEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjEwLCBfX3JldF82MTAsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldF82MTA7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMF82MTEpIHsKICB1aW50MzJ4NF90IF9fcmV0XzYxMTsKICB1aW50MTZ4NF90IF9fYTFfNjExID0gX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3AwXzYxMSk7CiAgX19yZXRfNjExID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fYTFfNjExLCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYxMTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bW92bF9oaWdoX3M4KGludDh4MTZfdCBfX3AwXzYxMikgewogIGludDE2eDhfdCBfX3JldF82MTI7CiAgaW50OHg4X3QgX19hMV82MTIgPSB2Z2V0X2hpZ2hfczgoX19wMF82MTIpOwogIF9fcmV0XzYxMiA9IChpbnQxNng4X3QpKHZzaGxsX25fczgoX19hMV82MTIsIDApKTsKICByZXR1cm4gX19yZXRfNjEyOwp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtb3ZsX2hpZ2hfczgoaW50OHgxNl90IF9fcDBfNjEzKSB7CiAgaW50OHgxNl90IF9fcmV2MF82MTM7ICBfX3JldjBfNjEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMF82MTMsIF9fcDBfNjEzLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXRfNjEzOwogIGludDh4OF90IF9fYTFfNjEzID0gX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MF82MTMpOwogIF9fcmV0XzYxMyA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fczgoX19hMV82MTMsIDApKTsKICBfX3JldF82MTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MTMsIF9fcmV0XzYxMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzYxMzsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92bW92bF9oaWdoX3M4KGludDh4MTZfdCBfX3AwXzYxNCkgewogIGludDE2eDhfdCBfX3JldF82MTQ7CiAgaW50OHg4X3QgX19hMV82MTQgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19wMF82MTQpOwogIF9fcmV0XzYxNCA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fczgoX19hMV82MTQsIDApKTsKICByZXR1cm4gX19yZXRfNjE0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtb3ZsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwXzYxNSkgewogIGludDY0eDJfdCBfX3JldF82MTU7CiAgaW50MzJ4Ml90IF9fYTFfNjE1ID0gdmdldF9oaWdoX3MzMihfX3AwXzYxNSk7CiAgX19yZXRfNjE1ID0gKGludDY0eDJfdCkodnNobGxfbl9zMzIoX19hMV82MTUsIDApKTsKICByZXR1cm4gX19yZXRfNjE1Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtb3ZsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwXzYxNikgewogIGludDMyeDRfdCBfX3JldjBfNjE2OyAgX19yZXYwXzYxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjE2LCBfX3AwXzYxNiwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0XzYxNjsKICBpbnQzMngyX3QgX19hMV82MTYgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MF82MTYpOwogIF9fcmV0XzYxNiA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fczMyKF9fYTFfNjE2LCAwKSk7CiAgX19yZXRfNjE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjE2LCBfX3JldF82MTYsIDEsIDApOwogIHJldHVybiBfX3JldF82MTY7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDBfNjE3KSB7CiAgaW50NjR4Ml90IF9fcmV0XzYxNzsKICBpbnQzMngyX3QgX19hMV82MTcgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcDBfNjE3KTsKICBfX3JldF82MTcgPSAoaW50NjR4Ml90KShfX25vc3dhcF92c2hsbF9uX3MzMihfX2ExXzYxNywgMCkpOwogIHJldHVybiBfX3JldF82MTc7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDBfNjE4KSB7CiAgaW50MzJ4NF90IF9fcmV0XzYxODsKICBpbnQxNng0X3QgX19hMV82MTggPSB2Z2V0X2hpZ2hfczE2KF9fcDBfNjE4KTsKICBfX3JldF82MTggPSAoaW50MzJ4NF90KSh2c2hsbF9uX3MxNihfX2ExXzYxOCwgMCkpOwogIHJldHVybiBfX3JldF82MTg7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1vdmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDBfNjE5KSB7CiAgaW50MTZ4OF90IF9fcmV2MF82MTk7ICBfX3JldjBfNjE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMF82MTksIF9fcDBfNjE5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXRfNjE5OwogIGludDE2eDRfdCBfX2ExXzYxOSA9IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzYxOSk7CiAgX19yZXRfNjE5ID0gKGludDMyeDRfdCkoX19ub3N3YXBfdnNobGxfbl9zMTYoX19hMV82MTksIDApKTsKICBfX3JldF82MTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MTksIF9fcmV0XzYxOSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzYxOTsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bW92bF9oaWdoX3MxNihpbnQxNng4X3QgX19wMF82MjApIHsKICBpbnQzMng0X3QgX19yZXRfNjIwOwogIGludDE2eDRfdCBfX2ExXzYyMCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19wMF82MjApOwogIF9fcmV0XzYyMCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fczE2KF9fYTFfNjIwLCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYyMDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1vdm5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTE2KF9fcDAsIHZtb3ZuX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bW92bl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fdTMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtb3ZuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2bW92bl91NjQoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1vdm5faGlnaF91NjQodWludDMyeDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UzMihfX3JldjAsIF9fbm9zd2FwX3Ztb3ZuX3U2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZtb3ZuX3UxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fdTE2KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1vdm5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczE2KF9fcDAsIHZtb3ZuX3MzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtb3ZuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczMyKF9fcDAsIHZtb3ZuX3M2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtb3ZuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczMyKF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fczY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1vdm5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zOChfX3AwLCB2bW92bl9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bW92bl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3Ztb3ZuX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3Qgdm11bHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtdWxxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm11bF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNkZWZpbmUgdm11bGRfbGFuZV9mNjQoX19wMF82MjEsIF9fcDFfNjIxLCBfX3AyXzYyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjIxID0gX19wMF82MjE7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyMSA9IF9fcDFfNjIxOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzYyMTsgXAogIF9fcmV0XzYyMSA9IF9fczBfNjIxICogdmdldF9sYW5lX2Y2NChfX3MxXzYyMSwgX19wMl82MjEpOyBcCiAgX19yZXRfNjIxOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxzX2xhbmVfZjMyKF9fcDBfNjIyLCBfX3AxXzYyMiwgX19wMl82MjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyMiA9IF9fcDBfNjIyOyBcCiAgZmxvYXQzMngyX3QgX19zMV82MjIgPSBfX3AxXzYyMjsgXAogIGZsb2F0MzJfdCBfX3JldF82MjI7IFwKICBfX3JldF82MjIgPSBfX3MwXzYyMiAqIHZnZXRfbGFuZV9mMzIoX19zMV82MjIsIF9fcDJfNjIyKTsgXAogIF9fcmV0XzYyMjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxzX2xhbmVfZjMyKF9fcDBfNjIzLCBfX3AxXzYyMywgX19wMl82MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyMyA9IF9fcDBfNjIzOyBcCiAgZmxvYXQzMngyX3QgX19zMV82MjMgPSBfX3AxXzYyMzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV82MjM7ICBfX3JldjFfNjIzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MjMsIF9fczFfNjIzLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldF82MjM7IFwKICBfX3JldF82MjMgPSBfX3MwXzYyMyAqIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYxXzYyMywgX19wMl82MjMpOyBcCiAgX19yZXRfNjIzOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bXVsX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bXVsX2xhbmVfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfZjY0KF9fcDBfNjI0LCBfX3AxXzYyNCwgX19wMl82MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjI0ID0gX19wMF82MjQ7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyNCA9IF9fcDFfNjI0OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjI0OyBcCiAgX19yZXRfNjI0ID0gX19zMF82MjQgKiBzcGxhdHFfbGFuZV9mNjQoX19zMV82MjQsIF9fcDJfNjI0KTsgXAogIF9fcmV0XzYyNDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfZjY0KF9fcDBfNjI1LCBfX3AxXzYyNSwgX19wMl82MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjI1ID0gX19wMF82MjU7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyNSA9IF9fcDFfNjI1OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzYyNTsgIF9fcmV2MF82MjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYyNSwgX19zMF82MjUsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjI1OyBcCiAgX19yZXRfNjI1ID0gX19yZXYwXzYyNSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2Y2NChfX3MxXzYyNSwgX19wMl82MjUpOyBcCiAgX19yZXRfNjI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjI1LCBfX3JldF82MjUsIDEsIDApOyBcCiAgX19yZXRfNjI1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGRfbGFuZXFfZjY0KF9fcDBfNjI2LCBfX3AxXzYyNiwgX19wMl82MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzYyNiA9IF9fcDBfNjI2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV82MjYgPSBfX3AxXzYyNjsgXAogIGZsb2F0NjRfdCBfX3JldF82MjY7IFwKICBfX3JldF82MjYgPSBfX3MwXzYyNiAqIHZnZXRxX2xhbmVfZjY0KF9fczFfNjI2LCBfX3AyXzYyNik7IFwKICBfX3JldF82MjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsZF9sYW5lcV9mNjQoX19wMF82MjcsIF9fcDFfNjI3LCBfX3AyXzYyNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjI3ID0gX19wMF82Mjc7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzYyNyA9IF9fcDFfNjI3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzYyNzsgIF9fcmV2MV82MjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYyNywgX19zMV82MjcsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzYyNzsgXAogIF9fcmV0XzYyNyA9IF9fczBfNjI3ICogX19ub3N3YXBfdmdldHFfbGFuZV9mNjQoX19yZXYxXzYyNywgX19wMl82MjcpOyBcCiAgX19yZXRfNjI3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHNfbGFuZXFfZjMyKF9fcDBfNjI4LCBfX3AxXzYyOCwgX19wMl82MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyOCA9IF9fcDBfNjI4OyBcCiAgZmxvYXQzMng0X3QgX19zMV82MjggPSBfX3AxXzYyODsgXAogIGZsb2F0MzJfdCBfX3JldF82Mjg7IFwKICBfX3JldF82MjggPSBfX3MwXzYyOCAqIHZnZXRxX2xhbmVfZjMyKF9fczFfNjI4LCBfX3AyXzYyOCk7IFwKICBfX3JldF82Mjg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsc19sYW5lcV9mMzIoX19wMF82MjksIF9fcDFfNjI5LCBfX3AyXzYyOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjI5ID0gX19wMF82Mjk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzYyOSA9IF9fcDFfNjI5OyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzYyOTsgIF9fcmV2MV82MjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYyOSwgX19zMV82MjksIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzYyOTsgXAogIF9fcmV0XzYyOSA9IF9fczBfNjI5ICogX19ub3N3YXBfdmdldHFfbGFuZV9mMzIoX19yZXYxXzYyOSwgX19wMl82MjkpOyBcCiAgX19yZXRfNjI5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfdTMyKF9fcDBfNjMwLCBfX3AxXzYzMCwgX19wMl82MzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF82MzAgPSBfX3AwXzYzMDsgXAogIHVpbnQzMng0X3QgX19zMV82MzAgPSBfX3AxXzYzMDsgXAogIHVpbnQzMng0X3QgX19yZXRfNjMwOyBcCiAgX19yZXRfNjMwID0gX19zMF82MzAgKiBzcGxhdHFfbGFuZXFfdTMyKF9fczFfNjMwLCBfX3AyXzYzMCk7IFwKICBfX3JldF82MzA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV91MzIoX19wMF82MzEsIF9fcDFfNjMxLCBfX3AyXzYzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzYzMSA9IF9fcDBfNjMxOyBcCiAgdWludDMyeDRfdCBfX3MxXzYzMSA9IF9fcDFfNjMxOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNjMxOyAgX19yZXYwXzYzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjMxLCBfX3MwXzYzMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82MzE7ICBfX3JldjFfNjMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzEsIF9fczFfNjMxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNjMxOyBcCiAgX19yZXRfNjMxID0gX19yZXYwXzYzMSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19yZXYxXzYzMSwgX19wMl82MzEpOyBcCiAgX19yZXRfNjMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjMxLCBfX3JldF82MzEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjMxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfdTE2KF9fcDBfNjMyLCBfX3AxXzYzMiwgX19wMl82MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82MzIgPSBfX3AwXzYzMjsgXAogIHVpbnQxNng4X3QgX19zMV82MzIgPSBfX3AxXzYzMjsgXAogIHVpbnQxNng4X3QgX19yZXRfNjMyOyBcCiAgX19yZXRfNjMyID0gX19zMF82MzIgKiBzcGxhdHFfbGFuZXFfdTE2KF9fczFfNjMyLCBfX3AyXzYzMik7IFwKICBfX3JldF82MzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV91MTYoX19wMF82MzMsIF9fcDFfNjMzLCBfX3AyXzYzMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzYzMyA9IF9fcDBfNjMzOyBcCiAgdWludDE2eDhfdCBfX3MxXzYzMyA9IF9fcDFfNjMzOyBcCiAgdWludDE2eDhfdCBfX3JldjBfNjMzOyAgX19yZXYwXzYzMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjMzLCBfX3MwXzYzMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV82MzM7ICBfX3JldjFfNjMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzMsIF9fczFfNjMzLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNjMzOyBcCiAgX19yZXRfNjMzID0gX19yZXYwXzYzMyAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19yZXYxXzYzMywgX19wMl82MzMpOyBcCiAgX19yZXRfNjMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjMzLCBfX3JldF82MzMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjMzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfZjY0KF9fcDBfNjM0LCBfX3AxXzYzNCwgX19wMl82MzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjM0ID0gX19wMF82MzQ7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzYzNCA9IF9fcDFfNjM0OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjM0OyBcCiAgX19yZXRfNjM0ID0gX19zMF82MzQgKiBzcGxhdHFfbGFuZXFfZjY0KF9fczFfNjM0LCBfX3AyXzYzNCk7IFwKICBfX3JldF82MzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV9mNjQoX19wMF82MzUsIF9fcDFfNjM1LCBfX3AyXzYzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF82MzUgPSBfX3AwXzYzNTsgXAogIGZsb2F0NjR4Ml90IF9fczFfNjM1ID0gX19wMV82MzU7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNjM1OyAgX19yZXYwXzYzNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjM1LCBfX3MwXzYzNSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNjM1OyAgX19yZXYxXzYzNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjM1LCBfX3MxXzYzNSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF82MzU7IFwKICBfX3JldF82MzUgPSBfX3JldjBfNjM1ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX2Y2NChfX3JldjFfNjM1LCBfX3AyXzYzNSk7IFwKICBfX3JldF82MzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MzUsIF9fcmV0XzYzNSwgMSwgMCk7IFwKICBfX3JldF82MzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lcV9mMzIoX19wMF82MzYsIF9fcDFfNjM2LCBfX3AyXzYzNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82MzYgPSBfX3AwXzYzNjsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjM2ID0gX19wMV82MzY7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82MzY7IFwKICBfX3JldF82MzYgPSBfX3MwXzYzNiAqIHNwbGF0cV9sYW5lcV9mMzIoX19zMV82MzYsIF9fcDJfNjM2KTsgXAogIF9fcmV0XzYzNjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVxX2YzMihfX3AwXzYzNywgX19wMV82MzcsIF9fcDJfNjM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzYzNyA9IF9fcDBfNjM3OyBcCiAgZmxvYXQzMng0X3QgX19zMV82MzcgPSBfX3AxXzYzNzsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF82Mzc7ICBfX3JldjBfNjM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82MzcsIF9fczBfNjM3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82Mzc7ICBfX3JldjFfNjM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzcsIF9fczFfNjM3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzYzNzsgXAogIF9fcmV0XzYzNyA9IF9fcmV2MF82MzcgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2MV82MzcsIF9fcDJfNjM3KTsgXAogIF9fcmV0XzYzNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYzNywgX19yZXRfNjM3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYzNzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVxX3MzMihfX3AwXzYzOCwgX19wMV82MzgsIF9fcDJfNjM4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82MzggPSBfX3AwXzYzODsgXAogIGludDMyeDRfdCBfX3MxXzYzOCA9IF9fcDFfNjM4OyBcCiAgaW50MzJ4NF90IF9fcmV0XzYzODsgXAogIF9fcmV0XzYzOCA9IF9fczBfNjM4ICogc3BsYXRxX2xhbmVxX3MzMihfX3MxXzYzOCwgX19wMl82MzgpOyBcCiAgX19yZXRfNjM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZXFfczMyKF9fcDBfNjM5LCBfX3AxXzYzOSwgX19wMl82MzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzYzOSA9IF9fcDBfNjM5OyBcCiAgaW50MzJ4NF90IF9fczFfNjM5ID0gX19wMV82Mzk7IFwKICBpbnQzMng0X3QgX19yZXYwXzYzOTsgIF9fcmV2MF82MzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYzOSwgX19zMF82MzksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV82Mzk7ICBfX3JldjFfNjM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzksIF9fczFfNjM5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82Mzk7IFwKICBfX3JldF82MzkgPSBfX3JldjBfNjM5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjFfNjM5LCBfX3AyXzYzOSk7IFwKICBfX3JldF82MzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MzksIF9fcmV0XzYzOSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82Mzk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lcV9zMTYoX19wMF82NDAsIF9fcDFfNjQwLCBfX3AyXzY0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNjQwID0gX19wMF82NDA7IFwKICBpbnQxNng4X3QgX19zMV82NDAgPSBfX3AxXzY0MDsgXAogIGludDE2eDhfdCBfX3JldF82NDA7IFwKICBfX3JldF82NDAgPSBfX3MwXzY0MCAqIHNwbGF0cV9sYW5lcV9zMTYoX19zMV82NDAsIF9fcDJfNjQwKTsgXAogIF9fcmV0XzY0MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVxX3MxNihfX3AwXzY0MSwgX19wMV82NDEsIF9fcDJfNjQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF82NDEgPSBfX3AwXzY0MTsgXAogIGludDE2eDhfdCBfX3MxXzY0MSA9IF9fcDFfNjQxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF82NDE7ICBfX3JldjBfNjQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDEsIF9fczBfNjQxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjQxOyAgX19yZXYxXzY0MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjQxLCBfX3MxXzY0MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNjQxOyBcCiAgX19yZXRfNjQxID0gX19yZXYwXzY0MSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYxXzY0MSwgX19wMl82NDEpOyBcCiAgX19yZXRfNjQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjQxLCBfX3JldF82NDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjQxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV91MzIoX19wMF82NDIsIF9fcDFfNjQyLCBfX3AyXzY0MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY0MiA9IF9fcDBfNjQyOyBcCiAgdWludDMyeDRfdCBfX3MxXzY0MiA9IF9fcDFfNjQyOyBcCiAgdWludDMyeDJfdCBfX3JldF82NDI7IFwKICBfX3JldF82NDIgPSBfX3MwXzY0MiAqIHNwbGF0X2xhbmVxX3UzMihfX3MxXzY0MiwgX19wMl82NDIpOyBcCiAgX19yZXRfNjQyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lcV91MzIoX19wMF82NDMsIF9fcDFfNjQzLCBfX3AyXzY0MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY0MyA9IF9fcDBfNjQzOyBcCiAgdWludDMyeDRfdCBfX3MxXzY0MyA9IF9fcDFfNjQzOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNjQzOyAgX19yZXYwXzY0MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjQzLCBfX3MwXzY0MywgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82NDM7ICBfX3JldjFfNjQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NDMsIF9fczFfNjQzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNjQzOyBcCiAgX19yZXRfNjQzID0gX19yZXYwXzY0MyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjFfNjQzLCBfX3AyXzY0Myk7IFwKICBfX3JldF82NDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDMsIF9fcmV0XzY0MywgMSwgMCk7IFwKICBfX3JldF82NDM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3UxNihfX3AwXzY0NCwgX19wMV82NDQsIF9fcDJfNjQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNjQ0ID0gX19wMF82NDQ7IFwKICB1aW50MTZ4OF90IF9fczFfNjQ0ID0gX19wMV82NDQ7IFwKICB1aW50MTZ4NF90IF9fcmV0XzY0NDsgXAogIF9fcmV0XzY0NCA9IF9fczBfNjQ0ICogc3BsYXRfbGFuZXFfdTE2KF9fczFfNjQ0LCBfX3AyXzY0NCk7IFwKICBfX3JldF82NDQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3UxNihfX3AwXzY0NSwgX19wMV82NDUsIF9fcDJfNjQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNjQ1ID0gX19wMF82NDU7IFwKICB1aW50MTZ4OF90IF9fczFfNjQ1ID0gX19wMV82NDU7IFwKICB1aW50MTZ4NF90IF9fcmV2MF82NDU7ICBfX3JldjBfNjQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDUsIF9fczBfNjQ1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzY0NTsgIF9fcmV2MV82NDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY0NSwgX19zMV82NDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF82NDU7IFwKICBfX3JldF82NDUgPSBfX3JldjBfNjQ1ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2MV82NDUsIF9fcDJfNjQ1KTsgXAogIF9fcmV0XzY0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY0NSwgX19yZXRfNjQ1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY0NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxfbGFuZXFfZjMyKF9fcDBfNjQ2LCBfX3AxXzY0NiwgX19wMl82NDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjQ2ID0gX19wMF82NDY7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY0NiA9IF9fcDFfNjQ2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjQ2OyBcCiAgX19yZXRfNjQ2ID0gX19zMF82NDYgKiBzcGxhdF9sYW5lcV9mMzIoX19zMV82NDYsIF9fcDJfNjQ2KTsgXAogIF9fcmV0XzY0NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZXFfZjMyKF9fcDBfNjQ3LCBfX3AxXzY0NywgX19wMl82NDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjQ3ID0gX19wMF82NDc7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY0NyA9IF9fcDFfNjQ3OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzY0NzsgIF9fcmV2MF82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY0NywgX19zMF82NDcsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzY0NzsgIF9fcmV2MV82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY0NywgX19zMV82NDcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjQ3OyBcCiAgX19yZXRfNjQ3ID0gX19yZXYwXzY0NyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjFfNjQ3LCBfX3AyXzY0Nyk7IFwKICBfX3JldF82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDcsIF9fcmV0XzY0NywgMSwgMCk7IFwKICBfX3JldF82NDc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3MzMihfX3AwXzY0OCwgX19wMV82NDgsIF9fcDJfNjQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF82NDggPSBfX3AwXzY0ODsgXAogIGludDMyeDRfdCBfX3MxXzY0OCA9IF9fcDFfNjQ4OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzY0ODsgXAogIF9fcmV0XzY0OCA9IF9fczBfNjQ4ICogc3BsYXRfbGFuZXFfczMyKF9fczFfNjQ4LCBfX3AyXzY0OCk7IFwKICBfX3JldF82NDg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3MzMihfX3AwXzY0OSwgX19wMV82NDksIF9fcDJfNjQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF82NDkgPSBfX3AwXzY0OTsgXAogIGludDMyeDRfdCBfX3MxXzY0OSA9IF9fcDFfNjQ5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF82NDk7ICBfX3JldjBfNjQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDksIF9fczBfNjQ5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjQ5OyAgX19yZXYxXzY0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjQ5LCBfX3MxXzY0OSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNjQ5OyBcCiAgX19yZXRfNjQ5ID0gX19yZXYwXzY0OSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjFfNjQ5LCBfX3AyXzY0OSk7IFwKICBfX3JldF82NDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDksIF9fcmV0XzY0OSwgMSwgMCk7IFwKICBfX3JldF82NDk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3MxNihfX3AwXzY1MCwgX19wMV82NTAsIF9fcDJfNjUwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NTAgPSBfX3AwXzY1MDsgXAogIGludDE2eDhfdCBfX3MxXzY1MCA9IF9fcDFfNjUwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzY1MDsgXAogIF9fcmV0XzY1MCA9IF9fczBfNjUwICogc3BsYXRfbGFuZXFfczE2KF9fczFfNjUwLCBfX3AyXzY1MCk7IFwKICBfX3JldF82NTA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3MxNihfX3AwXzY1MSwgX19wMV82NTEsIF9fcDJfNjUxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NTEgPSBfX3AwXzY1MTsgXAogIGludDE2eDhfdCBfX3MxXzY1MSA9IF9fcDFfNjUxOyBcCiAgaW50MTZ4NF90IF9fcmV2MF82NTE7ICBfX3JldjBfNjUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTEsIF9fczBfNjUxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjUxOyAgX19yZXYxXzY1MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjUxLCBfX3MxXzY1MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNjUxOyBcCiAgX19yZXRfNjUxID0gX19yZXYwXzY1MSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNjUxLCBfX3AyXzY1MSk7IFwKICBfX3JldF82NTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NTEsIF9fcmV0XzY1MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NTE7IFwKfSkKI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtdWxfbl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdm11bF9uX2Y2NCgoZmxvYXQ2NHgxX3QpX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtdWxxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKGZsb2F0NjR4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm11bHFfbl9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDY0eDJfdCkge19fcDEsIF9fcDF9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHBvbHkxMjhfdCB2bXVsbF9wNjQocG9seTY0X3QgX19wMCwgcG9seTY0X3QgX19wMSkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3A2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2bXVsbF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3A4KHZnZXRfaGlnaF9wOChfX3AwKSwgdmdldF9oaWdoX3A4KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtdWxsX2hpZ2hfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3A4KF9fbm9zd2FwX3ZnZXRfaGlnaF9wOChfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfcDgoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm11bGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF91OCh2Z2V0X2hpZ2hfdTgoX19wMCksIHZnZXRfaGlnaF91OChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bXVsbF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91OChfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3UzMih2Z2V0X2hpZ2hfdTMyKF9fcDApLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3UxNih2Z2V0X2hpZ2hfdTE2KF9fcDApLCB2Z2V0X2hpZ2hfdTE2KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm11bGxfaGlnaF9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9zOCh2Z2V0X2hpZ2hfczgoX19wMCksIHZnZXRfaGlnaF9zOChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtdWxsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF9zOChfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm11bGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19wMCksIHZnZXRfaGlnaF9zMzIoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVsbF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3AwKSwgdmdldF9oaWdoX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtdWxsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTEyOF90IHZtdWxsX2hpZ2hfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfcDY0KChwb2x5NjRfdCkodmdldF9oaWdoX3A2NChfX3AwKSksIChwb2x5NjRfdCkodmdldF9oaWdoX3A2NChfX3AxKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxMjhfdCB2bXVsbF9oaWdoX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9wNjQoKHBvbHk2NF90KShfX25vc3dhcF92Z2V0X2hpZ2hfcDY0KF9fcmV2MCkpLCAocG9seTY0X3QpKF9fbm9zd2FwX3ZnZXRfaGlnaF9wNjQoX19yZXYxKSkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV91MzIoX19wMF82NTIsIF9fcDFfNjUyLCBfX3AyXzY1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzY1MiA9IF9fcDBfNjUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzY1MiA9IF9fcDFfNjUyOyBcCiAgdWludDY0eDJfdCBfX3JldF82NTI7IFwKICBfX3JldF82NTIgPSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MwXzY1MiksIHNwbGF0X2xhbmVfdTMyKF9fczFfNjUyLCBfX3AyXzY1MikpOyBcCiAgX19yZXRfNjUyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3UzMihfX3AwXzY1MywgX19wMV82NTMsIF9fcDJfNjUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNjUzID0gX19wMF82NTM7IFwKICB1aW50MzJ4Ml90IF9fczFfNjUzID0gX19wMV82NTM7IFwKICB1aW50MzJ4NF90IF9fcmV2MF82NTM7ICBfX3JldjBfNjUzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTMsIF9fczBfNjUzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzY1MzsgIF9fcmV2MV82NTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1MywgX19zMV82NTMsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF82NTM7IFwKICBfX3JldF82NTMgPSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjBfNjUzKSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzY1MywgX19wMl82NTMpKTsgXAogIF9fcmV0XzY1MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY1MywgX19yZXRfNjUzLCAxLCAwKTsgXAogIF9fcmV0XzY1MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV91MTYoX19wMF82NTQsIF9fcDFfNjU0LCBfX3AyXzY1NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzY1NCA9IF9fcDBfNjU0OyBcCiAgdWludDE2eDRfdCBfX3MxXzY1NCA9IF9fcDFfNjU0OyBcCiAgdWludDMyeDRfdCBfX3JldF82NTQ7IFwKICBfX3JldF82NTQgPSB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MwXzY1NCksIHNwbGF0X2xhbmVfdTE2KF9fczFfNjU0LCBfX3AyXzY1NCkpOyBcCiAgX19yZXRfNjU0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3UxNihfX3AwXzY1NSwgX19wMV82NTUsIF9fcDJfNjU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjU1ID0gX19wMF82NTU7IFwKICB1aW50MTZ4NF90IF9fczFfNjU1ID0gX19wMV82NTU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NTU7ICBfX3JldjBfNjU1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTUsIF9fczBfNjU1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxXzY1NTsgIF9fcmV2MV82NTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1NSwgX19zMV82NTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82NTU7IFwKICBfX3JldF82NTUgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjBfNjU1KSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYxXzY1NSwgX19wMl82NTUpKTsgXAogIF9fcmV0XzY1NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY1NSwgX19yZXRfNjU1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY1NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV9zMzIoX19wMF82NTYsIF9fcDFfNjU2LCBfX3AyXzY1NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNjU2ID0gX19wMF82NTY7IFwKICBpbnQzMngyX3QgX19zMV82NTYgPSBfX3AxXzY1NjsgXAogIGludDY0eDJfdCBfX3JldF82NTY7IFwKICBfX3JldF82NTYgPSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MwXzY1NiksIHNwbGF0X2xhbmVfczMyKF9fczFfNjU2LCBfX3AyXzY1NikpOyBcCiAgX19yZXRfNjU2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzY1NywgX19wMV82NTcsIF9fcDJfNjU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82NTcgPSBfX3AwXzY1NzsgXAogIGludDMyeDJfdCBfX3MxXzY1NyA9IF9fcDFfNjU3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF82NTc7ICBfX3JldjBfNjU3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTcsIF9fczBfNjU3LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNjU3OyAgX19yZXYxXzY1NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjU3LCBfX3MxXzY1NywgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjU3OyBcCiAgX19yZXRfNjU3ID0gX19ub3N3YXBfdm11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwXzY1NyksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2MV82NTcsIF9fcDJfNjU3KSk7IFwKICBfX3JldF82NTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NTcsIF9fcmV0XzY1NywgMSwgMCk7IFwKICBfX3JldF82NTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVfczE2KF9fcDBfNjU4LCBfX3AxXzY1OCwgX19wMl82NTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzY1OCA9IF9fcDBfNjU4OyBcCiAgaW50MTZ4NF90IF9fczFfNjU4ID0gX19wMV82NTg7IFwKICBpbnQzMng0X3QgX19yZXRfNjU4OyBcCiAgX19yZXRfNjU4ID0gdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF82NTgpLCBzcGxhdF9sYW5lX3MxNihfX3MxXzY1OCwgX19wMl82NTgpKTsgXAogIF9fcmV0XzY1ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV9zMTYoX19wMF82NTksIF9fcDFfNjU5LCBfX3AyXzY1OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNjU5ID0gX19wMF82NTk7IFwKICBpbnQxNng0X3QgX19zMV82NTkgPSBfX3AxXzY1OTsgXAogIGludDE2eDhfdCBfX3JldjBfNjU5OyAgX19yZXYwXzY1OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjU5LCBfX3MwXzY1OSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzY1OTsgIF9fcmV2MV82NTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1OSwgX19zMV82NTksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzY1OTsgXAogIF9fcmV0XzY1OSA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MF82NTkpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfNjU5LCBfX3AyXzY1OSkpOyBcCiAgX19yZXRfNjU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjU5LCBfX3JldF82NTksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjU5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lcV91MzIoX19wMF82NjAsIF9fcDFfNjYwLCBfX3AyXzY2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzY2MCA9IF9fcDBfNjYwOyBcCiAgdWludDMyeDRfdCBfX3MxXzY2MCA9IF9fcDFfNjYwOyBcCiAgdWludDY0eDJfdCBfX3JldF82NjA7IFwKICBfX3JldF82NjAgPSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MwXzY2MCksIHNwbGF0X2xhbmVxX3UzMihfX3MxXzY2MCwgX19wMl82NjApKTsgXAogIF9fcmV0XzY2MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNjYxLCBfX3AxXzY2MSwgX19wMl82NjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF82NjEgPSBfX3AwXzY2MTsgXAogIHVpbnQzMng0X3QgX19zMV82NjEgPSBfX3AxXzY2MTsgXAogIHVpbnQzMng0X3QgX19yZXYwXzY2MTsgIF9fcmV2MF82NjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY2MSwgX19zMF82NjEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNjYxOyAgX19yZXYxXzY2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjYxLCBfX3MxXzY2MSwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzY2MTsgXAogIF9fcmV0XzY2MSA9IF9fbm9zd2FwX3ZtdWxsX3UzMihfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MF82NjEpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19yZXYxXzY2MSwgX19wMl82NjEpKTsgXAogIF9fcmV0XzY2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY2MSwgX19yZXRfNjYxLCAxLCAwKTsgXAogIF9fcmV0XzY2MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfdTE2KF9fcDBfNjYyLCBfX3AxXzY2MiwgX19wMl82NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82NjIgPSBfX3AwXzY2MjsgXAogIHVpbnQxNng4X3QgX19zMV82NjIgPSBfX3AxXzY2MjsgXAogIHVpbnQzMng0X3QgX19yZXRfNjYyOyBcCiAgX19yZXRfNjYyID0gdm11bGxfdTE2KHZnZXRfaGlnaF91MTYoX19zMF82NjIpLCBzcGxhdF9sYW5lcV91MTYoX19zMV82NjIsIF9fcDJfNjYyKSk7IFwKICBfX3JldF82NjI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3UxNihfX3AwXzY2MywgX19wMV82NjMsIF9fcDJfNjYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjYzID0gX19wMF82NjM7IFwKICB1aW50MTZ4OF90IF9fczFfNjYzID0gX19wMV82NjM7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NjM7ICBfX3JldjBfNjYzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NjMsIF9fczBfNjYzLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzY2MzsgIF9fcmV2MV82NjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY2MywgX19zMV82NjMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82NjM7IFwKICBfX3JldF82NjMgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjBfNjYzKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2MV82NjMsIF9fcDJfNjYzKSk7IFwKICBfX3JldF82NjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NjMsIF9fcmV0XzY2MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3MzMihfX3AwXzY2NCwgX19wMV82NjQsIF9fcDJfNjY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82NjQgPSBfX3AwXzY2NDsgXAogIGludDMyeDRfdCBfX3MxXzY2NCA9IF9fcDFfNjY0OyBcCiAgaW50NjR4Ml90IF9fcmV0XzY2NDsgXAogIF9fcmV0XzY2NCA9IHZtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fczBfNjY0KSwgc3BsYXRfbGFuZXFfczMyKF9fczFfNjY0LCBfX3AyXzY2NCkpOyBcCiAgX19yZXRfNjY0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lcV9zMzIoX19wMF82NjUsIF9fcDFfNjY1LCBfX3AyXzY2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNjY1ID0gX19wMF82NjU7IFwKICBpbnQzMng0X3QgX19zMV82NjUgPSBfX3AxXzY2NTsgXAogIGludDMyeDRfdCBfX3JldjBfNjY1OyAgX19yZXYwXzY2NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjY1LCBfX3MwXzY2NSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzY2NTsgIF9fcmV2MV82NjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY2NSwgX19zMV82NjUsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY2NTsgXAogIF9fcmV0XzY2NSA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MF82NjUpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYxXzY2NSwgX19wMl82NjUpKTsgXAogIF9fcmV0XzY2NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY2NSwgX19yZXRfNjY1LCAxLCAwKTsgXAogIF9fcmV0XzY2NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNjY2LCBfX3AxXzY2NiwgX19wMl82NjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzY2NiA9IF9fcDBfNjY2OyBcCiAgaW50MTZ4OF90IF9fczFfNjY2ID0gX19wMV82NjY7IFwKICBpbnQzMng0X3QgX19yZXRfNjY2OyBcCiAgX19yZXRfNjY2ID0gdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF82NjYpLCBzcGxhdF9sYW5lcV9zMTYoX19zMV82NjYsIF9fcDJfNjY2KSk7IFwKICBfX3JldF82NjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3MxNihfX3AwXzY2NywgX19wMV82NjcsIF9fcDJfNjY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF82NjcgPSBfX3AwXzY2NzsgXAogIGludDE2eDhfdCBfX3MxXzY2NyA9IF9fcDFfNjY3OyBcCiAgaW50MTZ4OF90IF9fcmV2MF82Njc7ICBfX3JldjBfNjY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NjcsIF9fczBfNjY3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjY3OyAgX19yZXYxXzY2NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjY3LCBfX3MxXzY2NywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjY3OyBcCiAgX19yZXRfNjY3ID0gX19ub3N3YXBfdm11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzY2NyksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNjY3LCBfX3AyXzY2NykpOyBcCiAgX19yZXRfNjY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjY3LCBfX3JldF82NjcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjY3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bXVsbF9oaWdoX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9uX3UzMih2Z2V0X2hpZ2hfdTMyKF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bXVsbF9oaWdoX25fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9uX3UxNih2Z2V0X2hpZ2hfdTE2KF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtdWxsX2hpZ2hfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX25fczMyKHZnZXRfaGlnaF9zMzIoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9oaWdoX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdWxsX2hpZ2hfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX25fczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXVsbF9oaWdoX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfdTMyKF9fcDBfNjY4LCBfX3AxXzY2OCwgX19wMl82NjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF82NjggPSBfX3AwXzY2ODsgXAogIHVpbnQzMng0X3QgX19zMV82NjggPSBfX3AxXzY2ODsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNjY4OyBcCiAgX19yZXRfNjY4ID0gdm11bGxfdTMyKF9fczBfNjY4LCBzcGxhdF9sYW5lcV91MzIoX19zMV82NjgsIF9fcDJfNjY4KSk7IFwKICBfX3JldF82Njg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV91MzIoX19wMF82NjksIF9fcDFfNjY5LCBfX3AyXzY2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY2OSA9IF9fcDBfNjY5OyBcCiAgdWludDMyeDRfdCBfX3MxXzY2OSA9IF9fcDFfNjY5OyBcCiAgdWludDMyeDJfdCBfX3JldjBfNjY5OyAgX19yZXYwXzY2OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjY5LCBfX3MwXzY2OSwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82Njk7ICBfX3JldjFfNjY5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NjksIF9fczFfNjY5LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNjY5OyBcCiAgX19yZXRfNjY5ID0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MF82NjksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjFfNjY5LCBfX3AyXzY2OSkpOyBcCiAgX19yZXRfNjY5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjY5LCBfX3JldF82NjksIDEsIDApOyBcCiAgX19yZXRfNjY5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfdTE2KF9fcDBfNjcwLCBfX3AxXzY3MCwgX19wMl82NzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF82NzAgPSBfX3AwXzY3MDsgXAogIHVpbnQxNng4X3QgX19zMV82NzAgPSBfX3AxXzY3MDsgXAogIHVpbnQzMng0X3QgX19yZXRfNjcwOyBcCiAgX19yZXRfNjcwID0gdm11bGxfdTE2KF9fczBfNjcwLCBzcGxhdF9sYW5lcV91MTYoX19zMV82NzAsIF9fcDJfNjcwKSk7IFwKICBfX3JldF82NzA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV91MTYoX19wMF82NzEsIF9fcDFfNjcxLCBfX3AyXzY3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzY3MSA9IF9fcDBfNjcxOyBcCiAgdWludDE2eDhfdCBfX3MxXzY3MSA9IF9fcDFfNjcxOyBcCiAgdWludDE2eDRfdCBfX3JldjBfNjcxOyAgX19yZXYwXzY3MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjcxLCBfX3MwXzY3MSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV82NzE7ICBfX3JldjFfNjcxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NzEsIF9fczFfNjcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNjcxOyBcCiAgX19yZXRfNjcxID0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MF82NzEsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjFfNjcxLCBfX3AyXzY3MSkpOyBcCiAgX19yZXRfNjcxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjcxLCBfX3JldF82NzEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjcxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfczMyKF9fcDBfNjcyLCBfX3AxXzY3MiwgX19wMl82NzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzY3MiA9IF9fcDBfNjcyOyBcCiAgaW50MzJ4NF90IF9fczFfNjcyID0gX19wMV82NzI7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjcyOyBcCiAgX19yZXRfNjcyID0gdm11bGxfczMyKF9fczBfNjcyLCBzcGxhdF9sYW5lcV9zMzIoX19zMV82NzIsIF9fcDJfNjcyKSk7IFwKICBfX3JldF82NzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV9zMzIoX19wMF82NzMsIF9fcDFfNjczLCBfX3AyXzY3MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNjczID0gX19wMF82NzM7IFwKICBpbnQzMng0X3QgX19zMV82NzMgPSBfX3AxXzY3MzsgXAogIGludDMyeDJfdCBfX3JldjBfNjczOyAgX19yZXYwXzY3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjczLCBfX3MwXzY3MywgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzY3MzsgIF9fcmV2MV82NzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY3MywgX19zMV82NzMsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY3MzsgXAogIF9fcmV0XzY3MyA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjBfNjczLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYxXzY3MywgX19wMl82NzMpKTsgXAogIF9fcmV0XzY3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY3MywgX19yZXRfNjczLCAxLCAwKTsgXAogIF9fcmV0XzY3MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2xhbmVxX3MxNihfX3AwXzY3NCwgX19wMV82NzQsIF9fcDJfNjc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NzQgPSBfX3AwXzY3NDsgXAogIGludDE2eDhfdCBfX3MxXzY3NCA9IF9fcDFfNjc0OyBcCiAgaW50MzJ4NF90IF9fcmV0XzY3NDsgXAogIF9fcmV0XzY3NCA9IHZtdWxsX3MxNihfX3MwXzY3NCwgc3BsYXRfbGFuZXFfczE2KF9fczFfNjc0LCBfX3AyXzY3NCkpOyBcCiAgX19yZXRfNjc0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZXFfczE2KF9fcDBfNjc1LCBfX3AxXzY3NSwgX19wMl82NzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzY3NSA9IF9fcDBfNjc1OyBcCiAgaW50MTZ4OF90IF9fczFfNjc1ID0gX19wMV82NzU7IFwKICBpbnQxNng0X3QgX19yZXYwXzY3NTsgIF9fcmV2MF82NzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY3NSwgX19zMF82NzUsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV82NzU7ICBfX3JldjFfNjc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NzUsIF9fczFfNjc1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82NzU7IFwKICBfX3JldF82NzUgPSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYwXzY3NSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2MV82NzUsIF9fcDJfNjc1KSk7IFwKICBfX3JldF82NzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NzUsIF9fcmV0XzY3NSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bXVseHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bHhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bXVseHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bHhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IF9fbm9zd2FwX3ZtdWx4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtdWx4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtdWx4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdm11bHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2bXVseF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bXVseF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bXVseF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVseF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm11bHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdm11bHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NF90IHZtdWx4ZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm11bHhkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3Qgdm11bHhzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bXVseHNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZtdWx4ZF9sYW5lX2Y2NChfX3AwXzY3NiwgX19wMV82NzYsIF9fcDJfNjc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMF82NzYgPSBfX3AwXzY3NjsgXAogIGZsb2F0NjR4MV90IF9fczFfNjc2ID0gX19wMV82NzY7IFwKICBmbG9hdDY0X3QgX19yZXRfNjc2OyBcCiAgX19yZXRfNjc2ID0gdm11bHhkX2Y2NChfX3MwXzY3NiwgdmdldF9sYW5lX2Y2NChfX3MxXzY3NiwgX19wMl82NzYpKTsgXAogIF9fcmV0XzY3NjsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHNfbGFuZV9mMzIoX19wMF82NzcsIF9fcDFfNjc3LCBfX3AyXzY3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjc3ID0gX19wMF82Nzc7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY3NyA9IF9fcDFfNjc3OyBcCiAgZmxvYXQzMl90IF9fcmV0XzY3NzsgXAogIF9fcmV0XzY3NyA9IHZtdWx4c19mMzIoX19zMF82NzcsIHZnZXRfbGFuZV9mMzIoX19zMV82NzcsIF9fcDJfNjc3KSk7IFwKICBfX3JldF82Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseHNfbGFuZV9mMzIoX19wMF82NzgsIF9fcDFfNjc4LCBfX3AyXzY3OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjc4ID0gX19wMF82Nzg7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY3OCA9IF9fcDFfNjc4OyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY3ODsgIF9fcmV2MV82NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY3OCwgX19zMV82NzgsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzY3ODsgXAogIF9fcmV0XzY3OCA9IHZtdWx4c19mMzIoX19zMF82NzgsIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYxXzY3OCwgX19wMl82NzgpKTsgXAogIF9fcmV0XzY3ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lX2Y2NChfX3AwXzY3OSwgX19wMV82NzksIF9fcDJfNjc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzY3OSA9IF9fcDBfNjc5OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV82NzkgPSBfX3AxXzY3OTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzY3OTsgXAogIF9fcmV0XzY3OSA9IHZtdWx4cV9mNjQoX19zMF82NzksIHNwbGF0cV9sYW5lX2Y2NChfX3MxXzY3OSwgX19wMl82NzkpKTsgXAogIF9fcmV0XzY3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lX2Y2NChfX3AwXzY4MCwgX19wMV82ODAsIF9fcDJfNjgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzY4MCA9IF9fcDBfNjgwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV82ODAgPSBfX3AxXzY4MDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF82ODA7ICBfX3JldjBfNjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82ODAsIF9fczBfNjgwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzY4MDsgXAogIF9fcmV0XzY4MCA9IF9fbm9zd2FwX3ZtdWx4cV9mNjQoX19yZXYwXzY4MCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfZjY0KF9fczFfNjgwLCBfX3AyXzY4MCkpOyBcCiAgX19yZXRfNjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjgwLCBfX3JldF82ODAsIDEsIDApOyBcCiAgX19yZXRfNjgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhxX2xhbmVfZjMyKF9fcDBfNjgxLCBfX3AxXzY4MSwgX19wMl82ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNjgxID0gX19wMF82ODE7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MSA9IF9fcDFfNjgxOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjgxOyBcCiAgX19yZXRfNjgxID0gdm11bHhxX2YzMihfX3MwXzY4MSwgc3BsYXRxX2xhbmVfZjMyKF9fczFfNjgxLCBfX3AyXzY4MSkpOyBcCiAgX19yZXRfNjgxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX2xhbmVfZjMyKF9fcDBfNjgyLCBfX3AxXzY4MiwgX19wMl82ODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNjgyID0gX19wMF82ODI7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MiA9IF9fcDFfNjgyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzY4MjsgIF9fcmV2MF82ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY4MiwgX19zMF82ODIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY4MjsgIF9fcmV2MV82ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4MiwgX19zMV82ODIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjgyOyBcCiAgX19yZXRfNjgyID0gX19ub3N3YXBfdm11bHhxX2YzMihfX3JldjBfNjgyLCBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMzIoX19yZXYxXzY4MiwgX19wMl82ODIpKTsgXAogIF9fcmV0XzY4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY4MiwgX19yZXRfNjgyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY4MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4X2xhbmVfZjMyKF9fcDBfNjgzLCBfX3AxXzY4MywgX19wMl82ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjgzID0gX19wMF82ODM7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MyA9IF9fcDFfNjgzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjgzOyBcCiAgX19yZXRfNjgzID0gdm11bHhfZjMyKF9fczBfNjgzLCBzcGxhdF9sYW5lX2YzMihfX3MxXzY4MywgX19wMl82ODMpKTsgXAogIF9fcmV0XzY4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4X2xhbmVfZjMyKF9fcDBfNjg0LCBfX3AxXzY4NCwgX19wMl82ODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjg0ID0gX19wMF82ODQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4NCA9IF9fcDFfNjg0OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzY4NDsgIF9fcmV2MF82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY4NCwgX19zMF82ODQsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY4NDsgIF9fcmV2MV82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4NCwgX19zMV82ODQsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjg0OyBcCiAgX19yZXRfNjg0ID0gX19ub3N3YXBfdm11bHhfZjMyKF9fcmV2MF82ODQsIF9fbm9zd2FwX3NwbGF0X2xhbmVfZjMyKF9fcmV2MV82ODQsIF9fcDJfNjg0KSk7IFwKICBfX3JldF82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82ODQsIF9fcmV0XzY4NCwgMSwgMCk7IFwKICBfX3JldF82ODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseGRfbGFuZXFfZjY0KF9fcDBfNjg1LCBfX3AxXzY4NSwgX19wMl82ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzY4NSA9IF9fcDBfNjg1OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV82ODUgPSBfX3AxXzY4NTsgXAogIGZsb2F0NjRfdCBfX3JldF82ODU7IFwKICBfX3JldF82ODUgPSB2bXVseGRfZjY0KF9fczBfNjg1LCB2Z2V0cV9sYW5lX2Y2NChfX3MxXzY4NSwgX19wMl82ODUpKTsgXAogIF9fcmV0XzY4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4ZF9sYW5lcV9mNjQoX19wMF82ODYsIF9fcDFfNjg2LCBfX3AyXzY4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjg2ID0gX19wMF82ODY7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzY4NiA9IF9fcDFfNjg2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzY4NjsgIF9fcmV2MV82ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4NiwgX19zMV82ODYsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzY4NjsgXAogIF9fcmV0XzY4NiA9IHZtdWx4ZF9mNjQoX19zMF82ODYsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjY0KF9fcmV2MV82ODYsIF9fcDJfNjg2KSk7IFwKICBfX3JldF82ODY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHNfbGFuZXFfZjMyKF9fcDBfNjg3LCBfX3AxXzY4NywgX19wMl82ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzY4NyA9IF9fcDBfNjg3OyBcCiAgZmxvYXQzMng0X3QgX19zMV82ODcgPSBfX3AxXzY4NzsgXAogIGZsb2F0MzJfdCBfX3JldF82ODc7IFwKICBfX3JldF82ODcgPSB2bXVseHNfZjMyKF9fczBfNjg3LCB2Z2V0cV9sYW5lX2YzMihfX3MxXzY4NywgX19wMl82ODcpKTsgXAogIF9fcmV0XzY4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4c19sYW5lcV9mMzIoX19wMF82ODgsIF9fcDFfNjg4LCBfX3AyXzY4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjg4ID0gX19wMF82ODg7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY4OCA9IF9fcDFfNjg4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzY4ODsgIF9fcmV2MV82ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4OCwgX19zMV82ODgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzY4ODsgXAogIF9fcmV0XzY4OCA9IHZtdWx4c19mMzIoX19zMF82ODgsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjMyKF9fcmV2MV82ODgsIF9fcDJfNjg4KSk7IFwKICBfX3JldF82ODg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHFfbGFuZXFfZjY0KF9fcDBfNjg5LCBfX3AxXzY4OSwgX19wMl82ODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjg5ID0gX19wMF82ODk7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzY4OSA9IF9fcDFfNjg5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjg5OyBcCiAgX19yZXRfNjg5ID0gdm11bHhxX2Y2NChfX3MwXzY4OSwgc3BsYXRxX2xhbmVxX2Y2NChfX3MxXzY4OSwgX19wMl82ODkpKTsgXAogIF9fcmV0XzY4OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lcV9mNjQoX19wMF82OTAsIF9fcDFfNjkwLCBfX3AyXzY5MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF82OTAgPSBfX3AwXzY5MDsgXAogIGZsb2F0NjR4Ml90IF9fczFfNjkwID0gX19wMV82OTA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNjkwOyAgX19yZXYwXzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjkwLCBfX3MwXzY5MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNjkwOyAgX19yZXYxXzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjkwLCBfX3MxXzY5MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF82OTA7IFwKICBfX3JldF82OTAgPSBfX25vc3dhcF92bXVseHFfZjY0KF9fcmV2MF82OTAsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19yZXYxXzY5MCwgX19wMl82OTApKTsgXAogIF9fcmV0XzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5MCwgX19yZXRfNjkwLCAxLCAwKTsgXAogIF9fcmV0XzY5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lcV9mMzIoX19wMF82OTEsIF9fcDFfNjkxLCBfX3AyXzY5MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82OTEgPSBfX3AwXzY5MTsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjkxID0gX19wMV82OTE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82OTE7IFwKICBfX3JldF82OTEgPSB2bXVseHFfZjMyKF9fczBfNjkxLCBzcGxhdHFfbGFuZXFfZjMyKF9fczFfNjkxLCBfX3AyXzY5MSkpOyBcCiAgX19yZXRfNjkxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX2xhbmVxX2YzMihfX3AwXzY5MiwgX19wMV82OTIsIF9fcDJfNjkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzY5MiA9IF9fcDBfNjkyOyBcCiAgZmxvYXQzMng0X3QgX19zMV82OTIgPSBfX3AxXzY5MjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF82OTI7ICBfX3JldjBfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82OTIsIF9fczBfNjkyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82OTI7ICBfX3JldjFfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82OTIsIF9fczFfNjkyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzY5MjsgXAogIF9fcmV0XzY5MiA9IF9fbm9zd2FwX3ZtdWx4cV9mMzIoX19yZXYwXzY5MiwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YzMihfX3JldjFfNjkyLCBfX3AyXzY5MikpOyBcCiAgX19yZXRfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjkyLCBfX3JldF82OTIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjkyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbGFuZXFfZjMyKF9fcDBfNjkzLCBfX3AxXzY5MywgX19wMl82OTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjkzID0gX19wMF82OTM7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY5MyA9IF9fcDFfNjkzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjkzOyBcCiAgX19yZXRfNjkzID0gdm11bHhfZjMyKF9fczBfNjkzLCBzcGxhdF9sYW5lcV9mMzIoX19zMV82OTMsIF9fcDJfNjkzKSk7IFwKICBfX3JldF82OTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseF9sYW5lcV9mMzIoX19wMF82OTQsIF9fcDFfNjk0LCBfX3AyXzY5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF82OTQgPSBfX3AwXzY5NDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjk0ID0gX19wMV82OTQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNjk0OyAgX19yZXYwXzY5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjk0LCBfX3MwXzY5NCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfNjk0OyAgX19yZXYxXzY5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjk0LCBfX3MxXzY5NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF82OTQ7IFwKICBfX3JldF82OTQgPSBfX25vc3dhcF92bXVseF9mMzIoX19yZXYwXzY5NCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcmV2MV82OTQsIF9fcDJfNjk0KSk7IFwKICBfX3JldF82OTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82OTQsIF9fcmV0XzY5NCwgMSwgMCk7IFwKICBfX3JldF82OTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bmVncV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm5lZ3FfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bmVncV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm5lZ3FfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm5lZ19mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZuZWdfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2bmVnZF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bmVnZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnBhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnBhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZwYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cGFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnBhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZwYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cGFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cGFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnBhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZwYWRkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZwYWRkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnBhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnBhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnBhZGRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cGFkZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZwYWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnBhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjRfdCB2cGFkZGRfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfdTY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NF90IHZwYWRkZF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnBhZGRkX3U2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2cGFkZGRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2cGFkZGRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2cGFkZGRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdnBhZGRkX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkZF9zNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBhZGRzX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBhZGRzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBhZGRzX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBhZGRzX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnBtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnBtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBtYXhxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZwbWF4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cG1heHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBtYXhxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnBtYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZwbWF4cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2cG1heHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cG1heHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZwbWF4cV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnBtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnBtYXhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cG1heHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2cG1heHFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhxZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZwbWF4cWRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFkX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2cG1heHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2cG1heHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHNfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnBtYXhubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZwbWF4bm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4bm1xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cG1heG5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1heG5tX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZwbWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtYXhubV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3QgdnBtYXhubXFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0X3QgdnBtYXhubXFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFkX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2cG1heG5tc19mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1zX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBtYXhubXNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tc19mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZwbWlucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZwbWlucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZwbWlucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cG1pbnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnBtaW5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZwbWlucV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZwbWlucV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cG1pbnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnBtaW5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnBtaW5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cG1pbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cG1pbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cG1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZwbWlucV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwbWlucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnBtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3QgdnBtaW5xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucWRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2cG1pbnFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtaW5xZF9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBtaW5zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5zX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBtaW5zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5zX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZwbWlubm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cG1pbm5tcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cG1pbm5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnBtaW5ubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnBtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cG1pbm5tX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZwbWlubm1xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZwbWlubm1xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xZF9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBtaW5ubXNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tc19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZwbWlubm1zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXNfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxYWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFhYnNxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cWFic19zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFhYnNiX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFhYnNiX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFhYnNzX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cWFic2RfczY0KGludDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFhYnNkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxYWJzaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFic2hfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4X3QgdnFhZGRiX3U4KHVpbnQ4X3QgX19wMCwgdWludDhfdCBfX3AxKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZGJfdTgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFhZGRzX3UzMih1aW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFhZGRkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFhZGRoX3UxNih1aW50MTZfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkaF91MTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxYWRkYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZGJfczgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2cWFkZHNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFhZGRkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFhZGRkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxYWRkaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cWRtbGFsc19zMzIoaW50NjRfdCBfX3AwLCBpbnQzMl90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfczMyKF9fcDAsIF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFkbWxhbGhfczE2KGludDMyX3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxoX3MxNihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIHZnZXRfaGlnaF9zMzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sYWxfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9oaWdoX2xhbmVfczMyKF9fcDBfNjk1LCBfX3AxXzY5NSwgX19wMl82OTUsIF9fcDNfNjk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF82OTUgPSBfX3AwXzY5NTsgXAogIGludDMyeDRfdCBfX3MxXzY5NSA9IF9fcDFfNjk1OyBcCiAgaW50MzJ4Ml90IF9fczJfNjk1ID0gX19wMl82OTU7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjk1OyBcCiAgX19yZXRfNjk1ID0gdnFkbWxhbF9zMzIoX19zMF82OTUsIHZnZXRfaGlnaF9zMzIoX19zMV82OTUpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzY5NSwgX19wM182OTUpKTsgXAogIF9fcmV0XzY5NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lX3MzMihfX3AwXzY5NiwgX19wMV82OTYsIF9fcDJfNjk2LCBfX3AzXzY5NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNjk2ID0gX19wMF82OTY7IFwKICBpbnQzMng0X3QgX19zMV82OTYgPSBfX3AxXzY5NjsgXAogIGludDMyeDJfdCBfX3MyXzY5NiA9IF9fcDJfNjk2OyBcCiAgaW50NjR4Ml90IF9fcmV2MF82OTY7ICBfX3JldjBfNjk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82OTYsIF9fczBfNjk2LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjk2OyAgX19yZXYxXzY5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjk2LCBfX3MxXzY5NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzY5NjsgIF9fcmV2Ml82OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzY5NiwgX19zMl82OTYsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY5NjsgXAogIF9fcmV0XzY5NiA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcmV2MF82OTYsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzY5NiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml82OTYsIF9fcDNfNjk2KSk7IFwKICBfX3JldF82OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82OTYsIF9fcmV0XzY5NiwgMSwgMCk7IFwKICBfX3JldF82OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsX2hpZ2hfbGFuZV9zMTYoX19wMF82OTcsIF9fcDFfNjk3LCBfX3AyXzY5NywgX19wM182OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY5NyA9IF9fcDBfNjk3OyBcCiAgaW50MTZ4OF90IF9fczFfNjk3ID0gX19wMV82OTc7IFwKICBpbnQxNng0X3QgX19zMl82OTcgPSBfX3AyXzY5NzsgXAogIGludDMyeDRfdCBfX3JldF82OTc7IFwKICBfX3JldF82OTcgPSB2cWRtbGFsX3MxNihfX3MwXzY5NywgdmdldF9oaWdoX3MxNihfX3MxXzY5NyksIHNwbGF0X2xhbmVfczE2KF9fczJfNjk3LCBfX3AzXzY5NykpOyBcCiAgX19yZXRfNjk3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9oaWdoX2xhbmVfczE2KF9fcDBfNjk4LCBfX3AxXzY5OCwgX19wMl82OTgsIF9fcDNfNjk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82OTggPSBfX3AwXzY5ODsgXAogIGludDE2eDhfdCBfX3MxXzY5OCA9IF9fcDFfNjk4OyBcCiAgaW50MTZ4NF90IF9fczJfNjk4ID0gX19wMl82OTg7IFwKICBpbnQzMng0X3QgX19yZXYwXzY5ODsgIF9fcmV2MF82OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY5OCwgX19zMF82OTgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV82OTg7ICBfX3JldjFfNjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82OTgsIF9fczFfNjk4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNjk4OyAgX19yZXYyXzY5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjk4LCBfX3MyXzY5OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjk4OyBcCiAgX19yZXRfNjk4ID0gX19ub3N3YXBfdnFkbWxhbF9zMTYoX19yZXYwXzY5OCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNjk4KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzY5OCwgX19wM182OTgpKTsgXAogIF9fcmV0XzY5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5OCwgX19yZXRfNjk4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMzIoX19wMF82OTksIF9fcDFfNjk5LCBfX3AyXzY5OSwgX19wM182OTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzY5OSA9IF9fcDBfNjk5OyBcCiAgaW50MzJ4NF90IF9fczFfNjk5ID0gX19wMV82OTk7IFwKICBpbnQzMng0X3QgX19zMl82OTkgPSBfX3AyXzY5OTsgXAogIGludDY0eDJfdCBfX3JldF82OTk7IFwKICBfX3JldF82OTkgPSB2cWRtbGFsX3MzMihfX3MwXzY5OSwgdmdldF9oaWdoX3MzMihfX3MxXzY5OSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzY5OSwgX19wM182OTkpKTsgXAogIF9fcmV0XzY5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMzIoX19wMF83MDAsIF9fcDFfNzAwLCBfX3AyXzcwMCwgX19wM183MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcwMCA9IF9fcDBfNzAwOyBcCiAgaW50MzJ4NF90IF9fczFfNzAwID0gX19wMV83MDA7IFwKICBpbnQzMng0X3QgX19zMl83MDAgPSBfX3AyXzcwMDsgXAogIGludDY0eDJfdCBfX3JldjBfNzAwOyAgX19yZXYwXzcwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzAwLCBfX3MwXzcwMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzcwMDsgIF9fcmV2MV83MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwMCwgX19zMV83MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml83MDA7ICBfX3JldjJfNzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDAsIF9fczJfNzAwLCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF83MDA7IFwKICBfX3JldF83MDAgPSBfX25vc3dhcF92cWRtbGFsX3MzMihfX3JldjBfNzAwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV83MDApLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzcwMCwgX19wM183MDApKTsgXAogIF9fcmV0XzcwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwMCwgX19yZXRfNzAwLCAxLCAwKTsgXAogIF9fcmV0XzcwMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMTYoX19wMF83MDEsIF9fcDFfNzAxLCBfX3AyXzcwMSwgX19wM183MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwMSA9IF9fcDBfNzAxOyBcCiAgaW50MTZ4OF90IF9fczFfNzAxID0gX19wMV83MDE7IFwKICBpbnQxNng4X3QgX19zMl83MDEgPSBfX3AyXzcwMTsgXAogIGludDMyeDRfdCBfX3JldF83MDE7IFwKICBfX3JldF83MDEgPSB2cWRtbGFsX3MxNihfX3MwXzcwMSwgdmdldF9oaWdoX3MxNihfX3MxXzcwMSksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzcwMSwgX19wM183MDEpKTsgXAogIF9fcmV0XzcwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMTYoX19wMF83MDIsIF9fcDFfNzAyLCBfX3AyXzcwMiwgX19wM183MDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwMiA9IF9fcDBfNzAyOyBcCiAgaW50MTZ4OF90IF9fczFfNzAyID0gX19wMV83MDI7IFwKICBpbnQxNng4X3QgX19zMl83MDIgPSBfX3AyXzcwMjsgXAogIGludDMyeDRfdCBfX3JldjBfNzAyOyAgX19yZXYwXzcwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzAyLCBfX3MwXzcwMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzcwMjsgIF9fcmV2MV83MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwMiwgX19zMV83MDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MDI7ICBfX3JldjJfNzAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDIsIF9fczJfNzAyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MDI7IFwKICBfX3JldF83MDIgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjBfNzAyLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV83MDIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcwMiwgX19wM183MDIpKTsgXAogIF9fcmV0XzcwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwMiwgX19yZXRfNzAyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbGFsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbWxhbF9uX3MxNihfX3AwLCB2Z2V0X2hpZ2hfczE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbHNfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZV9zMzIoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxzX2xhbmVfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxoX2xhbmVfczE2KF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lX3MxNihfX3MwLCBfX3MxLCBfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9sYW5lcV9zMzIoX19wMF83MDMsIF9fcDFfNzAzLCBfX3AyXzcwMywgX19wM183MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcwMyA9IF9fcDBfNzAzOyBcCiAgaW50MzJ4Ml90IF9fczFfNzAzID0gX19wMV83MDM7IFwKICBpbnQzMng0X3QgX19zMl83MDMgPSBfX3AyXzcwMzsgXAogIGludDY0eDJfdCBfX3JldF83MDM7IFwKICBfX3JldF83MDMgPSB2cWRtbGFsX3MzMihfX3MwXzcwMywgX19zMV83MDMsIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcwMywgX19wM183MDMpKTsgXAogIF9fcmV0XzcwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfbGFuZXFfczMyKF9fcDBfNzA0LCBfX3AxXzcwNCwgX19wMl83MDQsIF9fcDNfNzA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MDQgPSBfX3AwXzcwNDsgXAogIGludDMyeDJfdCBfX3MxXzcwNCA9IF9fcDFfNzA0OyBcCiAgaW50MzJ4NF90IF9fczJfNzA0ID0gX19wMl83MDQ7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzcwNDsgIF9fcmV2MF83MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcwNCwgX19zMF83MDQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83MDQ7ICBfX3JldjFfNzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MDQsIF9fczFfNzA0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNzA0OyAgX19yZXYyXzcwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzA0LCBfX3MyXzcwNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzA0OyBcCiAgX19yZXRfNzA0ID0gX19ub3N3YXBfdnFkbWxhbF9zMzIoX19yZXYwXzcwNCwgX19yZXYxXzcwNCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml83MDQsIF9fcDNfNzA0KSk7IFwKICBfX3JldF83MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MDQsIF9fcmV0XzcwNCwgMSwgMCk7IFwKICBfX3JldF83MDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsX2xhbmVxX3MxNihfX3AwXzcwNSwgX19wMV83MDUsIF9fcDJfNzA1LCBfX3AzXzcwNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzA1ID0gX19wMF83MDU7IFwKICBpbnQxNng0X3QgX19zMV83MDUgPSBfX3AxXzcwNTsgXAogIGludDE2eDhfdCBfX3MyXzcwNSA9IF9fcDJfNzA1OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcwNTsgXAogIF9fcmV0XzcwNSA9IHZxZG1sYWxfczE2KF9fczBfNzA1LCBfX3MxXzcwNSwgc3BsYXRfbGFuZXFfczE2KF9fczJfNzA1LCBfX3AzXzcwNSkpOyBcCiAgX19yZXRfNzA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9sYW5lcV9zMTYoX19wMF83MDYsIF9fcDFfNzA2LCBfX3AyXzcwNiwgX19wM183MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwNiA9IF9fcDBfNzA2OyBcCiAgaW50MTZ4NF90IF9fczFfNzA2ID0gX19wMV83MDY7IFwKICBpbnQxNng4X3QgX19zMl83MDYgPSBfX3AyXzcwNjsgXAogIGludDMyeDRfdCBfX3JldjBfNzA2OyAgX19yZXYwXzcwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzA2LCBfX3MwXzcwNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzcwNjsgIF9fcmV2MV83MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwNiwgX19zMV83MDYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MDY7ICBfX3JldjJfNzA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDYsIF9fczJfNzA2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MDY7IFwKICBfX3JldF83MDYgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjBfNzA2LCBfX3JldjFfNzA2LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcwNiwgX19wM183MDYpKTsgXAogIF9fcmV0XzcwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwNiwgX19yZXRfNzA2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcwNjsgXAp9KQojZW5kaWYKCl9fYWkgaW50NjRfdCB2cWRtbHNsc19zMzIoaW50NjRfdCBfX3AwLCBpbnQzMl90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfczMyKF9fcDAsIF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFkbWxzbGhfczE2KGludDMyX3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xoX3MxNihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIHZnZXRfaGlnaF9zMzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sc2xfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9oaWdoX2xhbmVfczMyKF9fcDBfNzA3LCBfX3AxXzcwNywgX19wMl83MDcsIF9fcDNfNzA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MDcgPSBfX3AwXzcwNzsgXAogIGludDMyeDRfdCBfX3MxXzcwNyA9IF9fcDFfNzA3OyBcCiAgaW50MzJ4Ml90IF9fczJfNzA3ID0gX19wMl83MDc7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzA3OyBcCiAgX19yZXRfNzA3ID0gdnFkbWxzbF9zMzIoX19zMF83MDcsIHZnZXRfaGlnaF9zMzIoX19zMV83MDcpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzcwNywgX19wM183MDcpKTsgXAogIF9fcmV0XzcwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lX3MzMihfX3AwXzcwOCwgX19wMV83MDgsIF9fcDJfNzA4LCBfX3AzXzcwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNzA4ID0gX19wMF83MDg7IFwKICBpbnQzMng0X3QgX19zMV83MDggPSBfX3AxXzcwODsgXAogIGludDMyeDJfdCBfX3MyXzcwOCA9IF9fcDJfNzA4OyBcCiAgaW50NjR4Ml90IF9fcmV2MF83MDg7ICBfX3JldjBfNzA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MDgsIF9fczBfNzA4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzA4OyAgX19yZXYxXzcwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzA4LCBfX3MxXzcwOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzcwODsgIF9fcmV2Ml83MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzcwOCwgX19zMl83MDgsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzcwODsgXAogIF9fcmV0XzcwOCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcmV2MF83MDgsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzcwOCksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml83MDgsIF9fcDNfNzA4KSk7IFwKICBfX3JldF83MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MDgsIF9fcmV0XzcwOCwgMSwgMCk7IFwKICBfX3JldF83MDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsX2hpZ2hfbGFuZV9zMTYoX19wMF83MDksIF9fcDFfNzA5LCBfX3AyXzcwOSwgX19wM183MDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwOSA9IF9fcDBfNzA5OyBcCiAgaW50MTZ4OF90IF9fczFfNzA5ID0gX19wMV83MDk7IFwKICBpbnQxNng0X3QgX19zMl83MDkgPSBfX3AyXzcwOTsgXAogIGludDMyeDRfdCBfX3JldF83MDk7IFwKICBfX3JldF83MDkgPSB2cWRtbHNsX3MxNihfX3MwXzcwOSwgdmdldF9oaWdoX3MxNihfX3MxXzcwOSksIHNwbGF0X2xhbmVfczE2KF9fczJfNzA5LCBfX3AzXzcwOSkpOyBcCiAgX19yZXRfNzA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9oaWdoX2xhbmVfczE2KF9fcDBfNzEwLCBfX3AxXzcxMCwgX19wMl83MTAsIF9fcDNfNzEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MTAgPSBfX3AwXzcxMDsgXAogIGludDE2eDhfdCBfX3MxXzcxMCA9IF9fcDFfNzEwOyBcCiAgaW50MTZ4NF90IF9fczJfNzEwID0gX19wMl83MTA7IFwKICBpbnQzMng0X3QgX19yZXYwXzcxMDsgIF9fcmV2MF83MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxMCwgX19zMF83MTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83MTA7ICBfX3JldjFfNzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MTAsIF9fczFfNzEwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNzEwOyAgX19yZXYyXzcxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzEwLCBfX3MyXzcxMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzEwOyBcCiAgX19yZXRfNzEwID0gX19ub3N3YXBfdnFkbWxzbF9zMTYoX19yZXYwXzcxMCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNzEwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzcxMCwgX19wM183MTApKTsgXAogIF9fcmV0XzcxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxMCwgX19yZXRfNzEwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMzIoX19wMF83MTEsIF9fcDFfNzExLCBfX3AyXzcxMSwgX19wM183MTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxMSA9IF9fcDBfNzExOyBcCiAgaW50MzJ4NF90IF9fczFfNzExID0gX19wMV83MTE7IFwKICBpbnQzMng0X3QgX19zMl83MTEgPSBfX3AyXzcxMTsgXAogIGludDY0eDJfdCBfX3JldF83MTE7IFwKICBfX3JldF83MTEgPSB2cWRtbHNsX3MzMihfX3MwXzcxMSwgdmdldF9oaWdoX3MzMihfX3MxXzcxMSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcxMSwgX19wM183MTEpKTsgXAogIF9fcmV0XzcxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMzIoX19wMF83MTIsIF9fcDFfNzEyLCBfX3AyXzcxMiwgX19wM183MTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxMiA9IF9fcDBfNzEyOyBcCiAgaW50MzJ4NF90IF9fczFfNzEyID0gX19wMV83MTI7IFwKICBpbnQzMng0X3QgX19zMl83MTIgPSBfX3AyXzcxMjsgXAogIGludDY0eDJfdCBfX3JldjBfNzEyOyAgX19yZXYwXzcxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzEyLCBfX3MwXzcxMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzcxMjsgIF9fcmV2MV83MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxMiwgX19zMV83MTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml83MTI7ICBfX3JldjJfNzEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTIsIF9fczJfNzEyLCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF83MTI7IFwKICBfX3JldF83MTIgPSBfX25vc3dhcF92cWRtbHNsX3MzMihfX3JldjBfNzEyLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV83MTIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzcxMiwgX19wM183MTIpKTsgXAogIF9fcmV0XzcxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxMiwgX19yZXRfNzEyLCAxLCAwKTsgXAogIF9fcmV0XzcxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMTYoX19wMF83MTMsIF9fcDFfNzEzLCBfX3AyXzcxMywgX19wM183MTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxMyA9IF9fcDBfNzEzOyBcCiAgaW50MTZ4OF90IF9fczFfNzEzID0gX19wMV83MTM7IFwKICBpbnQxNng4X3QgX19zMl83MTMgPSBfX3AyXzcxMzsgXAogIGludDMyeDRfdCBfX3JldF83MTM7IFwKICBfX3JldF83MTMgPSB2cWRtbHNsX3MxNihfX3MwXzcxMywgdmdldF9oaWdoX3MxNihfX3MxXzcxMyksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzcxMywgX19wM183MTMpKTsgXAogIF9fcmV0XzcxMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMTYoX19wMF83MTQsIF9fcDFfNzE0LCBfX3AyXzcxNCwgX19wM183MTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxNCA9IF9fcDBfNzE0OyBcCiAgaW50MTZ4OF90IF9fczFfNzE0ID0gX19wMV83MTQ7IFwKICBpbnQxNng4X3QgX19zMl83MTQgPSBfX3AyXzcxNDsgXAogIGludDMyeDRfdCBfX3JldjBfNzE0OyAgX19yZXYwXzcxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzE0LCBfX3MwXzcxNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzcxNDsgIF9fcmV2MV83MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxNCwgX19zMV83MTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MTQ7ICBfX3JldjJfNzE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTQsIF9fczJfNzE0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MTQ7IFwKICBfX3JldF83MTQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjBfNzE0LCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV83MTQpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcxNCwgX19wM183MTQpKTsgXAogIF9fcmV0XzcxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxNCwgX19yZXRfNzE0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbHNsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbWxzbF9uX3MxNihfX3AwLCB2Z2V0X2hpZ2hfczE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbHNfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZV9zMzIoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xzX2xhbmVfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xoX2xhbmVfczE2KF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lX3MxNihfX3MwLCBfX3MxLCBfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9sYW5lcV9zMzIoX19wMF83MTUsIF9fcDFfNzE1LCBfX3AyXzcxNSwgX19wM183MTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxNSA9IF9fcDBfNzE1OyBcCiAgaW50MzJ4Ml90IF9fczFfNzE1ID0gX19wMV83MTU7IFwKICBpbnQzMng0X3QgX19zMl83MTUgPSBfX3AyXzcxNTsgXAogIGludDY0eDJfdCBfX3JldF83MTU7IFwKICBfX3JldF83MTUgPSB2cWRtbHNsX3MzMihfX3MwXzcxNSwgX19zMV83MTUsIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcxNSwgX19wM183MTUpKTsgXAogIF9fcmV0XzcxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfbGFuZXFfczMyKF9fcDBfNzE2LCBfX3AxXzcxNiwgX19wMl83MTYsIF9fcDNfNzE2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MTYgPSBfX3AwXzcxNjsgXAogIGludDMyeDJfdCBfX3MxXzcxNiA9IF9fcDFfNzE2OyBcCiAgaW50MzJ4NF90IF9fczJfNzE2ID0gX19wMl83MTY7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzcxNjsgIF9fcmV2MF83MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxNiwgX19zMF83MTYsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83MTY7ICBfX3JldjFfNzE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MTYsIF9fczFfNzE2LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNzE2OyAgX19yZXYyXzcxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzE2LCBfX3MyXzcxNiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzE2OyBcCiAgX19yZXRfNzE2ID0gX19ub3N3YXBfdnFkbWxzbF9zMzIoX19yZXYwXzcxNiwgX19yZXYxXzcxNiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml83MTYsIF9fcDNfNzE2KSk7IFwKICBfX3JldF83MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MTYsIF9fcmV0XzcxNiwgMSwgMCk7IFwKICBfX3JldF83MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsX2xhbmVxX3MxNihfX3AwXzcxNywgX19wMV83MTcsIF9fcDJfNzE3LCBfX3AzXzcxNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzE3ID0gX19wMF83MTc7IFwKICBpbnQxNng0X3QgX19zMV83MTcgPSBfX3AxXzcxNzsgXAogIGludDE2eDhfdCBfX3MyXzcxNyA9IF9fcDJfNzE3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcxNzsgXAogIF9fcmV0XzcxNyA9IHZxZG1sc2xfczE2KF9fczBfNzE3LCBfX3MxXzcxNywgc3BsYXRfbGFuZXFfczE2KF9fczJfNzE3LCBfX3AzXzcxNykpOyBcCiAgX19yZXRfNzE3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9sYW5lcV9zMTYoX19wMF83MTgsIF9fcDFfNzE4LCBfX3AyXzcxOCwgX19wM183MTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxOCA9IF9fcDBfNzE4OyBcCiAgaW50MTZ4NF90IF9fczFfNzE4ID0gX19wMV83MTg7IFwKICBpbnQxNng4X3QgX19zMl83MTggPSBfX3AyXzcxODsgXAogIGludDMyeDRfdCBfX3JldjBfNzE4OyAgX19yZXYwXzcxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzE4LCBfX3MwXzcxOCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzcxODsgIF9fcmV2MV83MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxOCwgX19zMV83MTgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MTg7ICBfX3JldjJfNzE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTgsIF9fczJfNzE4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MTg7IFwKICBfX3JldF83MTggPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjBfNzE4LCBfX3JldjFfNzE4LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcxOCwgX19wM183MTgpKTsgXAogIF9fcmV0XzcxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxOCwgX19yZXRfNzE4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxODsgXAp9KQojZW5kaWYKCl9fYWkgaW50MzJfdCB2cWRtdWxoc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxZG11bGhoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFkbXVsaGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoc19sYW5lX3MzMihfX3AwXzcxOSwgX19wMV83MTksIF9fcDJfNzE5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfNzE5ID0gX19wMF83MTk7IFwKICBpbnQzMngyX3QgX19zMV83MTkgPSBfX3AxXzcxOTsgXAogIGludDMyX3QgX19yZXRfNzE5OyBcCiAgX19yZXRfNzE5ID0gdnFkbXVsaHNfczMyKF9fczBfNzE5LCB2Z2V0X2xhbmVfczMyKF9fczFfNzE5LCBfX3AyXzcxOSkpOyBcCiAgX19yZXRfNzE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHNfbGFuZV9zMzIoX19wMF83MjAsIF9fcDFfNzIwLCBfX3AyXzcyMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzcyMCA9IF9fcDBfNzIwOyBcCiAgaW50MzJ4Ml90IF9fczFfNzIwID0gX19wMV83MjA7IFwKICBpbnQzMngyX3QgX19yZXYxXzcyMDsgIF9fcmV2MV83MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcyMCwgX19zMV83MjAsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83MjA7IFwKICBfX3JldF83MjAgPSB2cWRtdWxoc19zMzIoX19zMF83MjAsIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19yZXYxXzcyMCwgX19wMl83MjApKTsgXAogIF9fcmV0XzcyMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhoX2xhbmVfczE2KF9fcDBfNzIxLCBfX3AxXzcyMSwgX19wMl83MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjEgPSBfX3AwXzcyMTsgXAogIGludDE2eDRfdCBfX3MxXzcyMSA9IF9fcDFfNzIxOyBcCiAgaW50MTZfdCBfX3JldF83MjE7IFwKICBfX3JldF83MjEgPSB2cWRtdWxoaF9zMTYoX19zMF83MjEsIHZnZXRfbGFuZV9zMTYoX19zMV83MjEsIF9fcDJfNzIxKSk7IFwKICBfX3JldF83MjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoaF9sYW5lX3MxNihfX3AwXzcyMiwgX19wMV83MjIsIF9fcDJfNzIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfNzIyID0gX19wMF83MjI7IFwKICBpbnQxNng0X3QgX19zMV83MjIgPSBfX3AxXzcyMjsgXAogIGludDE2eDRfdCBfX3JldjFfNzIyOyAgX19yZXYxXzcyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzIyLCBfX3MxXzcyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzcyMjsgXAogIF9fcmV0XzcyMiA9IHZxZG11bGhoX3MxNihfX3MwXzcyMiwgX19ub3N3YXBfdmdldF9sYW5lX3MxNihfX3JldjFfNzIyLCBfX3AyXzcyMikpOyBcCiAgX19yZXRfNzIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzIzLCBfX3AxXzcyMywgX19wMl83MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MjMgPSBfX3AwXzcyMzsgXAogIGludDMyeDRfdCBfX3MxXzcyMyA9IF9fcDFfNzIzOyBcCiAgaW50MzJfdCBfX3JldF83MjM7IFwKICBfX3JldF83MjMgPSB2cWRtdWxoc19zMzIoX19zMF83MjMsIHZnZXRxX2xhbmVfczMyKF9fczFfNzIzLCBfX3AyXzcyMykpOyBcCiAgX19yZXRfNzIzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzI0LCBfX3AxXzcyNCwgX19wMl83MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MjQgPSBfX3AwXzcyNDsgXAogIGludDMyeDRfdCBfX3MxXzcyNCA9IF9fcDFfNzI0OyBcCiAgaW50MzJ4NF90IF9fcmV2MV83MjQ7ICBfX3JldjFfNzI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MjQsIF9fczFfNzI0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfNzI0OyBcCiAgX19yZXRfNzI0ID0gdnFkbXVsaHNfczMyKF9fczBfNzI0LCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjFfNzI0LCBfX3AyXzcyNCkpOyBcCiAgX19yZXRfNzI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzI1LCBfX3AxXzcyNSwgX19wMl83MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjUgPSBfX3AwXzcyNTsgXAogIGludDE2eDhfdCBfX3MxXzcyNSA9IF9fcDFfNzI1OyBcCiAgaW50MTZfdCBfX3JldF83MjU7IFwKICBfX3JldF83MjUgPSB2cWRtdWxoaF9zMTYoX19zMF83MjUsIHZnZXRxX2xhbmVfczE2KF9fczFfNzI1LCBfX3AyXzcyNSkpOyBcCiAgX19yZXRfNzI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzI2LCBfX3AxXzcyNiwgX19wMl83MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjYgPSBfX3AwXzcyNjsgXAogIGludDE2eDhfdCBfX3MxXzcyNiA9IF9fcDFfNzI2OyBcCiAgaW50MTZ4OF90IF9fcmV2MV83MjY7ICBfX3JldjFfNzI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MjYsIF9fczFfNzI2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfNzI2OyBcCiAgX19yZXRfNzI2ID0gdnFkbXVsaGhfczE2KF9fczBfNzI2LCBfX25vc3dhcF92Z2V0cV9sYW5lX3MxNihfX3JldjFfNzI2LCBfX3AyXzcyNikpOyBcCiAgX19yZXRfNzI2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHFfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxocV9sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGhxX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZXFfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCl9fYWkgaW50NjRfdCB2cWRtdWxsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxZG11bGxoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFkbXVsbGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCB2Z2V0X2hpZ2hfczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3AwKSwgdmdldF9oaWdoX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzcyNywgX19wMV83MjcsIF9fcDJfNzI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MjcgPSBfX3AwXzcyNzsgXAogIGludDMyeDJfdCBfX3MxXzcyNyA9IF9fcDFfNzI3OyBcCiAgaW50NjR4Ml90IF9fcmV0XzcyNzsgXAogIF9fcmV0XzcyNyA9IHZxZG11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMF83MjcpLCBzcGxhdF9sYW5lX3MzMihfX3MxXzcyNywgX19wMl83MjcpKTsgXAogIF9fcmV0XzcyNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzcyOCwgX19wMV83MjgsIF9fcDJfNzI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MjggPSBfX3AwXzcyODsgXAogIGludDMyeDJfdCBfX3MxXzcyOCA9IF9fcDFfNzI4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF83Mjg7ICBfX3JldjBfNzI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MjgsIF9fczBfNzI4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNzI4OyAgX19yZXYxXzcyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzI4LCBfX3MxXzcyOCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzI4OyBcCiAgX19yZXRfNzI4ID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjBfNzI4KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzcyOCwgX19wMl83MjgpKTsgXAogIF9fcmV0XzcyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcyOCwgX19yZXRfNzI4LCAxLCAwKTsgXAogIF9fcmV0XzcyODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MxNihfX3AwXzcyOSwgX19wMV83MjksIF9fcDJfNzI5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF83MjkgPSBfX3AwXzcyOTsgXAogIGludDE2eDRfdCBfX3MxXzcyOSA9IF9fcDFfNzI5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcyOTsgXAogIF9fcmV0XzcyOSA9IHZxZG11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF83MjkpLCBzcGxhdF9sYW5lX3MxNihfX3MxXzcyOSwgX19wMl83MjkpKTsgXAogIF9fcmV0XzcyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MxNihfX3AwXzczMCwgX19wMV83MzAsIF9fcDJfNzMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF83MzAgPSBfX3AwXzczMDsgXAogIGludDE2eDRfdCBfX3MxXzczMCA9IF9fcDFfNzMwOyBcCiAgaW50MTZ4OF90IF9fcmV2MF83MzA7ICBfX3JldjBfNzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MzAsIF9fczBfNzMwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNzMwOyAgX19yZXYxXzczMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzMwLCBfX3MxXzczMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzMwOyBcCiAgX19yZXRfNzMwID0gX19ub3N3YXBfdnFkbXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjBfNzMwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYxXzczMCwgX19wMl83MzApKTsgXAogIF9fcmV0XzczMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzczMCwgX19yZXRfNzMwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzczMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lcV9zMzIoX19wMF83MzEsIF9fcDFfNzMxLCBfX3AyXzczMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzMxID0gX19wMF83MzE7IFwKICBpbnQzMng0X3QgX19zMV83MzEgPSBfX3AxXzczMTsgXAogIGludDY0eDJfdCBfX3JldF83MzE7IFwKICBfX3JldF83MzEgPSB2cWRtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fczBfNzMxKSwgc3BsYXRfbGFuZXFfczMyKF9fczFfNzMxLCBfX3AyXzczMSkpOyBcCiAgX19yZXRfNzMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsbF9oaWdoX2xhbmVxX3MzMihfX3AwXzczMiwgX19wMV83MzIsIF9fcDJfNzMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MzIgPSBfX3AwXzczMjsgXAogIGludDMyeDRfdCBfX3MxXzczMiA9IF9fcDFfNzMyOyBcCiAgaW50MzJ4NF90IF9fcmV2MF83MzI7ICBfX3JldjBfNzMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MzIsIF9fczBfNzMyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzMyOyAgX19yZXYxXzczMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzMyLCBfX3MxXzczMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzMyOyBcCiAgX19yZXRfNzMyID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjBfNzMyKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MV83MzIsIF9fcDJfNzMyKSk7IFwKICBfX3JldF83MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MzIsIF9fcmV0XzczMiwgMSwgMCk7IFwKICBfX3JldF83MzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNzMzLCBfX3AxXzczMywgX19wMl83MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzczMyA9IF9fcDBfNzMzOyBcCiAgaW50MTZ4OF90IF9fczFfNzMzID0gX19wMV83MzM7IFwKICBpbnQzMng0X3QgX19yZXRfNzMzOyBcCiAgX19yZXRfNzMzID0gdnFkbXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MwXzczMyksIHNwbGF0X2xhbmVxX3MxNihfX3MxXzczMywgX19wMl83MzMpKTsgXAogIF9fcmV0XzczMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lcV9zMTYoX19wMF83MzQsIF9fcDFfNzM0LCBfX3AyXzczNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNzM0ID0gX19wMF83MzQ7IFwKICBpbnQxNng4X3QgX19zMV83MzQgPSBfX3AxXzczNDsgXAogIGludDE2eDhfdCBfX3JldjBfNzM0OyAgX19yZXYwXzczNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzM0LCBfX3MwXzczNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzczNDsgIF9fcmV2MV83MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzczNCwgX19zMV83MzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzczNDsgXAogIF9fcmV0XzczNCA9IF9fbm9zd2FwX3ZxZG11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzczNCksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNzM0LCBfX3AyXzczNCkpOyBcCiAgX19yZXRfNzM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzM0LCBfX3JldF83MzQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzM0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG11bGxfaGlnaF9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9uX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsbF9uX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MCksIF9fcDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbXVsbF9oaWdoX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxsX25fczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxsX2hpZ2hfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX25fczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwKSwgX19wMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxzX2xhbmVfczMyKF9fcDBfNzM1LCBfX3AxXzczNSwgX19wMl83MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MzUgPSBfX3AwXzczNTsgXAogIGludDMyeDJfdCBfX3MxXzczNSA9IF9fcDFfNzM1OyBcCiAgaW50NjRfdCBfX3JldF83MzU7IFwKICBfX3JldF83MzUgPSB2cWRtdWxsc19zMzIoX19zMF83MzUsIHZnZXRfbGFuZV9zMzIoX19zMV83MzUsIF9fcDJfNzM1KSk7IFwKICBfX3JldF83MzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsc19sYW5lX3MzMihfX3AwXzczNiwgX19wMV83MzYsIF9fcDJfNzM2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfNzM2ID0gX19wMF83MzY7IFwKICBpbnQzMngyX3QgX19zMV83MzYgPSBfX3AxXzczNjsgXAogIGludDMyeDJfdCBfX3JldjFfNzM2OyAgX19yZXYxXzczNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzM2LCBfX3MxXzczNiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0XzczNjsgXAogIF9fcmV0XzczNiA9IHZxZG11bGxzX3MzMihfX3MwXzczNiwgX19ub3N3YXBfdmdldF9sYW5lX3MzMihfX3JldjFfNzM2LCBfX3AyXzczNikpOyBcCiAgX19yZXRfNzM2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsbGhfbGFuZV9zMTYoX19wMF83MzcsIF9fcDFfNzM3LCBfX3AyXzczNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzczNyA9IF9fcDBfNzM3OyBcCiAgaW50MTZ4NF90IF9fczFfNzM3ID0gX19wMV83Mzc7IFwKICBpbnQzMl90IF9fcmV0XzczNzsgXAogIF9fcmV0XzczNyA9IHZxZG11bGxoX3MxNihfX3MwXzczNywgdmdldF9sYW5lX3MxNihfX3MxXzczNywgX19wMl83MzcpKTsgXAogIF9fcmV0XzczNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxoX2xhbmVfczE2KF9fcDBfNzM4LCBfX3AxXzczOCwgX19wMl83MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MzggPSBfX3AwXzczODsgXAogIGludDE2eDRfdCBfX3MxXzczOCA9IF9fcDFfNzM4OyBcCiAgaW50MTZ4NF90IF9fcmV2MV83Mzg7ICBfX3JldjFfNzM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MzgsIF9fczFfNzM4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfNzM4OyBcCiAgX19yZXRfNzM4ID0gdnFkbXVsbGhfczE2KF9fczBfNzM4LCBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2MV83MzgsIF9fcDJfNzM4KSk7IFwKICBfX3JldF83Mzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsc19sYW5lcV9zMzIoX19wMF83MzksIF9fcDFfNzM5LCBfX3AyXzczOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzczOSA9IF9fcDBfNzM5OyBcCiAgaW50MzJ4NF90IF9fczFfNzM5ID0gX19wMV83Mzk7IFwKICBpbnQ2NF90IF9fcmV0XzczOTsgXAogIF9fcmV0XzczOSA9IHZxZG11bGxzX3MzMihfX3MwXzczOSwgdmdldHFfbGFuZV9zMzIoX19zMV83MzksIF9fcDJfNzM5KSk7IFwKICBfX3JldF83Mzk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsc19sYW5lcV9zMzIoX19wMF83NDAsIF9fcDFfNzQwLCBfX3AyXzc0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0MCA9IF9fcDBfNzQwOyBcCiAgaW50MzJ4NF90IF9fczFfNzQwID0gX19wMV83NDA7IFwKICBpbnQzMng0X3QgX19yZXYxXzc0MDsgIF9fcmV2MV83NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0MCwgX19zMV83NDAsIDMsIDIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldF83NDA7IFwKICBfX3JldF83NDAgPSB2cWRtdWxsc19zMzIoX19zMF83NDAsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczMyKF9fcmV2MV83NDAsIF9fcDJfNzQwKSk7IFwKICBfX3JldF83NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsaF9sYW5lcV9zMTYoX19wMF83NDEsIF9fcDFfNzQxLCBfX3AyXzc0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0MSA9IF9fcDBfNzQxOyBcCiAgaW50MTZ4OF90IF9fczFfNzQxID0gX19wMV83NDE7IFwKICBpbnQzMl90IF9fcmV0Xzc0MTsgXAogIF9fcmV0Xzc0MSA9IHZxZG11bGxoX3MxNihfX3MwXzc0MSwgdmdldHFfbGFuZV9zMTYoX19zMV83NDEsIF9fcDJfNzQxKSk7IFwKICBfX3JldF83NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsaF9sYW5lcV9zMTYoX19wMF83NDIsIF9fcDFfNzQyLCBfX3AyXzc0MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0MiA9IF9fcDBfNzQyOyBcCiAgaW50MTZ4OF90IF9fczFfNzQyID0gX19wMV83NDI7IFwKICBpbnQxNng4X3QgX19yZXYxXzc0MjsgIF9fcmV2MV83NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0MiwgX19zMV83NDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NDI7IFwKICBfX3JldF83NDIgPSB2cWRtdWxsaF9zMTYoX19zMF83NDIsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczE2KF9fcmV2MV83NDIsIF9fcDJfNzQyKSk7IFwKICBfX3JldF83NDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MzMihfX3AwXzc0MywgX19wMV83NDMsIF9fcDJfNzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83NDMgPSBfX3AwXzc0MzsgXAogIGludDMyeDRfdCBfX3MxXzc0MyA9IF9fcDFfNzQzOyBcCiAgaW50NjR4Ml90IF9fcmV0Xzc0MzsgXAogIF9fcmV0Xzc0MyA9IHZxZG11bGxfczMyKF9fczBfNzQzLCBzcGxhdF9sYW5lcV9zMzIoX19zMV83NDMsIF9fcDJfNzQzKSk7IFwKICBfX3JldF83NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MzMihfX3AwXzc0NCwgX19wMV83NDQsIF9fcDJfNzQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83NDQgPSBfX3AwXzc0NDsgXAogIGludDMyeDRfdCBfX3MxXzc0NCA9IF9fcDFfNzQ0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83NDQ7ICBfX3JldjBfNzQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NDQsIF9fczBfNzQ0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzQ0OyAgX19yZXYxXzc0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzQ0LCBfX3MxXzc0NCwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzQ0OyBcCiAgX19yZXRfNzQ0ID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19yZXYwXzc0NCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MV83NDQsIF9fcDJfNzQ0KSk7IFwKICBfX3JldF83NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NDQsIF9fcmV0Xzc0NCwgMSwgMCk7IFwKICBfX3JldF83NDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MxNihfX3AwXzc0NSwgX19wMV83NDUsIF9fcDJfNzQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NDUgPSBfX3AwXzc0NTsgXAogIGludDE2eDhfdCBfX3MxXzc0NSA9IF9fcDFfNzQ1OyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc0NTsgXAogIF9fcmV0Xzc0NSA9IHZxZG11bGxfczE2KF9fczBfNzQ1LCBzcGxhdF9sYW5lcV9zMTYoX19zMV83NDUsIF9fcDJfNzQ1KSk7IFwKICBfX3JldF83NDU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MxNihfX3AwXzc0NiwgX19wMV83NDYsIF9fcDJfNzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NDYgPSBfX3AwXzc0NjsgXAogIGludDE2eDhfdCBfX3MxXzc0NiA9IF9fcDFfNzQ2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83NDY7ICBfX3JldjBfNzQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NDYsIF9fczBfNzQ2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzQ2OyAgX19yZXYxXzc0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzQ2LCBfX3MxXzc0NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzQ2OyBcCiAgX19yZXRfNzQ2ID0gX19ub3N3YXBfdnFkbXVsbF9zMTYoX19yZXYwXzc0NiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2MV83NDYsIF9fcDJfNzQ2KSk7IFwKICBfX3JldF83NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NDYsIF9fcmV0Xzc0NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NDY7IFwKfSkKI2VuZGlmCgpfX2FpIGludDE2X3QgdnFtb3Zuc19zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5zX3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxbW92bmRfczY0KGludDY0X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxbW92bmhfczE2KGludDE2X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bmhfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZxbW92bnNfdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFtb3Zuc191MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFtb3ZuZF91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5kX3U2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OF90IHZxbW92bmhfdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bmhfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxbW92bl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdnFtb3ZuX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cW1vdm5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl91MzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFtb3ZuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2cW1vdm5fdTY0KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxbW92bl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdnFtb3ZuX3U2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cW1vdm5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OChfX3AwLCB2cW1vdm5fdTE2KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZxbW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnFtb3ZuX3UxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxbW92bl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMTYoX19wMCwgdnFtb3ZuX3MzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxbW92bl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl9zMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cW1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczMyKF9fcDAsIHZxbW92bl9zNjQoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cW1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92cW1vdm5fczY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnFtb3ZuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczgoX19wMCwgdnFtb3ZuX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxbW92bl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDE2X3QgdnFtb3Z1bnNfczMyKGludDMyX3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFtb3Z1bmRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDhfdCB2cW1vdnVuaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuaF9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnFtb3Z1bl9oaWdoX3MzMih1aW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19wMCksIHZxbW92dW5fczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZxbW92dW5faGlnaF9zMzIodWludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MTYoKHVpbnQxNng0X3QpKF9fcmV2MCksIF9fbm9zd2FwX3ZxbW92dW5fczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZxbW92dW5faGlnaF9zNjQodWludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fcDApLCB2cW1vdnVuX3M2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cW1vdnVuX2hpZ2hfczY0KHVpbnQzMngyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3JldjApLCBfX25vc3dhcF92cW1vdnVuX3M2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cW1vdnVuX2hpZ2hfczE2KHVpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OCgodWludDh4OF90KShfX3AwKSwgdnFtb3Z1bl9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFtb3Z1bl9oaWdoX3MxNih1aW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjApLCBfX25vc3dhcF92cW1vdnVuX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxbmVncV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFuZWdxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cW5lZ19zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFuZWdiX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFuZWdiX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFuZWdzX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cW5lZ2RfczY0KGludDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFuZWdkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxbmVnaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ2hfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFyZG11bGhzX3MzMihpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxcmRtdWxoaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHNfbGFuZV9zMzIoX19wMF83NDcsIF9fcDFfNzQ3LCBfX3AyXzc0NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0NyA9IF9fcDBfNzQ3OyBcCiAgaW50MzJ4Ml90IF9fczFfNzQ3ID0gX19wMV83NDc7IFwKICBpbnQzMl90IF9fcmV0Xzc0NzsgXAogIF9fcmV0Xzc0NyA9IHZxcmRtdWxoc19zMzIoX19zMF83NDcsIHZnZXRfbGFuZV9zMzIoX19zMV83NDcsIF9fcDJfNzQ3KSk7IFwKICBfX3JldF83NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHNfbGFuZV9zMzIoX19wMF83NDgsIF9fcDFfNzQ4LCBfX3AyXzc0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0OCA9IF9fcDBfNzQ4OyBcCiAgaW50MzJ4Ml90IF9fczFfNzQ4ID0gX19wMV83NDg7IFwKICBpbnQzMngyX3QgX19yZXYxXzc0ODsgIF9fcmV2MV83NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0OCwgX19zMV83NDgsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NDg7IFwKICBfX3JldF83NDggPSB2cXJkbXVsaHNfczMyKF9fczBfNzQ4LCBfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2MV83NDgsIF9fcDJfNzQ4KSk7IFwKICBfX3JldF83NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaGhfbGFuZV9zMTYoX19wMF83NDksIF9fcDFfNzQ5LCBfX3AyXzc0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0OSA9IF9fcDBfNzQ5OyBcCiAgaW50MTZ4NF90IF9fczFfNzQ5ID0gX19wMV83NDk7IFwKICBpbnQxNl90IF9fcmV0Xzc0OTsgXAogIF9fcmV0Xzc0OSA9IHZxcmRtdWxoaF9zMTYoX19zMF83NDksIHZnZXRfbGFuZV9zMTYoX19zMV83NDksIF9fcDJfNzQ5KSk7IFwKICBfX3JldF83NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaGhfbGFuZV9zMTYoX19wMF83NTAsIF9fcDFfNzUwLCBfX3AyXzc1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc1MCA9IF9fcDBfNzUwOyBcCiAgaW50MTZ4NF90IF9fczFfNzUwID0gX19wMV83NTA7IFwKICBpbnQxNng0X3QgX19yZXYxXzc1MDsgIF9fcmV2MV83NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1MCwgX19zMV83NTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldF83NTA7IFwKICBfX3JldF83NTAgPSB2cXJkbXVsaGhfczE2KF9fczBfNzUwLCBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2MV83NTAsIF9fcDJfNzUwKSk7IFwKICBfX3JldF83NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzUxLCBfX3AxXzc1MSwgX19wMl83NTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83NTEgPSBfX3AwXzc1MTsgXAogIGludDMyeDRfdCBfX3MxXzc1MSA9IF9fcDFfNzUxOyBcCiAgaW50MzJfdCBfX3JldF83NTE7IFwKICBfX3JldF83NTEgPSB2cXJkbXVsaHNfczMyKF9fczBfNzUxLCB2Z2V0cV9sYW5lX3MzMihfX3MxXzc1MSwgX19wMl83NTEpKTsgXAogIF9fcmV0Xzc1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoc19sYW5lcV9zMzIoX19wMF83NTIsIF9fcDFfNzUyLCBfX3AyXzc1MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc1MiA9IF9fcDBfNzUyOyBcCiAgaW50MzJ4NF90IF9fczFfNzUyID0gX19wMV83NTI7IFwKICBpbnQzMng0X3QgX19yZXYxXzc1MjsgIF9fcmV2MV83NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1MiwgX19zMV83NTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NTI7IFwKICBfX3JldF83NTIgPSB2cXJkbXVsaHNfczMyKF9fczBfNzUyLCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjFfNzUyLCBfX3AyXzc1MikpOyBcCiAgX19yZXRfNzUyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhoX2xhbmVxX3MxNihfX3AwXzc1MywgX19wMV83NTMsIF9fcDJfNzUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfNzUzID0gX19wMF83NTM7IFwKICBpbnQxNng4X3QgX19zMV83NTMgPSBfX3AxXzc1MzsgXAogIGludDE2X3QgX19yZXRfNzUzOyBcCiAgX19yZXRfNzUzID0gdnFyZG11bGhoX3MxNihfX3MwXzc1MywgdmdldHFfbGFuZV9zMTYoX19zMV83NTMsIF9fcDJfNzUzKSk7IFwKICBfX3JldF83NTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzU0LCBfX3AxXzc1NCwgX19wMl83NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83NTQgPSBfX3AwXzc1NDsgXAogIGludDE2eDhfdCBfX3MxXzc1NCA9IF9fcDFfNzU0OyBcCiAgaW50MTZ4OF90IF9fcmV2MV83NTQ7ICBfX3JldjFfNzU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NTQsIF9fczFfNzU0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfNzU0OyBcCiAgX19yZXRfNzU0ID0gdnFyZG11bGhoX3MxNihfX3MwXzc1NCwgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYxXzc1NCwgX19wMl83NTQpKTsgXAogIF9fcmV0Xzc1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZXFfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX2xhbmVxX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX2xhbmVxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaF9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaF9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKX19haSB1aW50OF90IHZxcnNobGJfdTgodWludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdnFyc2hsYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2cXJzaGxzX3UzMih1aW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFyc2hsc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFyc2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZxcnNobGhfdTE2KHVpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFyc2hsYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxiX3M4KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFyc2hsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFyc2hsZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2X3QgdnFyc2hsaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MzIoX19wMF83NTUsIF9fcDFfNzU1LCBfX3AyXzc1NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1NSA9IF9fcDBfNzU1OyBcCiAgdWludDMyeDRfdCBfX3MxXzc1NSA9IF9fcDFfNzU1OyBcCiAgdWludDE2eDhfdCBfX3JldF83NTU7IFwKICBfX3JldF83NTUgPSAodWludDE2eDhfdCkodmNvbWJpbmVfdTE2KCh1aW50MTZ4NF90KShfX3MwXzc1NSksICh1aW50MTZ4NF90KSh2cXJzaHJuX25fdTMyKF9fczFfNzU1LCBfX3AyXzc1NSkpKSk7IFwKICBfX3JldF83NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MzIoX19wMF83NTYsIF9fcDFfNzU2LCBfX3AyXzc1NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1NiA9IF9fcDBfNzU2OyBcCiAgdWludDMyeDRfdCBfX3MxXzc1NiA9IF9fcDFfNzU2OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzU2OyAgX19yZXYwXzc1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzU2LCBfX3MwXzc1NiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV83NTY7ICBfX3JldjFfNzU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NTYsIF9fczFfNzU2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzU2OyBcCiAgX19yZXRfNzU2ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzc1NiksICh1aW50MTZ4NF90KShfX25vc3dhcF92cXJzaHJuX25fdTMyKF9fcmV2MV83NTYsIF9fcDJfNzU2KSkpKTsgXAogIF9fcmV0Xzc1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc1NiwgX19yZXRfNzU2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocm5faGlnaF9uX3U2NChfX3AwXzc1NywgX19wMV83NTcsIF9fcDJfNzU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzU3ID0gX19wMF83NTc7IFwKICB1aW50NjR4Ml90IF9fczFfNzU3ID0gX19wMV83NTc7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc1NzsgXAogIF9fcmV0Xzc1NyA9ICh1aW50MzJ4NF90KSh2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fczBfNzU3KSwgKHVpbnQzMngyX3QpKHZxcnNocm5fbl91NjQoX19zMV83NTcsIF9fcDJfNzU3KSkpKTsgXAogIF9fcmV0Xzc1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5faGlnaF9uX3U2NChfX3AwXzc1OCwgX19wMV83NTgsIF9fcDJfNzU4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzU4ID0gX19wMF83NTg7IFwKICB1aW50NjR4Ml90IF9fczFfNzU4ID0gX19wMV83NTg7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF83NTg7ICBfX3JldjBfNzU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NTgsIF9fczBfNzU4LCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxXzc1ODsgIF9fcmV2MV83NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1OCwgX19zMV83NTgsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF83NTg7IFwKICBfX3JldF83NTggPSAodWludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3JldjBfNzU4KSwgKHVpbnQzMngyX3QpKF9fbm9zd2FwX3ZxcnNocm5fbl91NjQoX19yZXYxXzc1OCwgX19wMl83NTgpKSkpOyBcCiAgX19yZXRfNzU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzU4LCBfX3JldF83NTgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzU4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9oaWdoX25fdTE2KF9fcDBfNzU5LCBfX3AxXzc1OSwgX19wMl83NTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc1OSA9IF9fcDBfNzU5OyBcCiAgdWludDE2eDhfdCBfX3MxXzc1OSA9IF9fcDFfNzU5OyBcCiAgdWludDh4MTZfdCBfX3JldF83NTk7IFwKICBfX3JldF83NTkgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF83NTkpLCAodWludDh4OF90KSh2cXJzaHJuX25fdTE2KF9fczFfNzU5LCBfX3AyXzc1OSkpKSk7IFwKICBfX3JldF83NTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MTYoX19wMF83NjAsIF9fcDFfNzYwLCBfX3AyXzc2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzYwID0gX19wMF83NjA7IFwKICB1aW50MTZ4OF90IF9fczFfNzYwID0gX19wMV83NjA7IFwKICB1aW50OHg4X3QgX19yZXYwXzc2MDsgIF9fcmV2MF83NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc2MCwgX19zMF83NjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNzYwOyAgX19yZXYxXzc2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzYwLCBfX3MxXzc2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc2MDsgXAogIF9fcmV0Xzc2MCA9ICh1aW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjBfNzYwKSwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfdnFyc2hybl9uX3UxNihfX3JldjFfNzYwLCBfX3AyXzc2MCkpKSk7IFwKICBfX3JldF83NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjAsIF9fcmV0Xzc2MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMzIoX19wMF83NjEsIF9fcDFfNzYxLCBfX3AyXzc2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzYxID0gX19wMF83NjE7IFwKICBpbnQzMng0X3QgX19zMV83NjEgPSBfX3AxXzc2MTsgXAogIGludDE2eDhfdCBfX3JldF83NjE7IFwKICBfX3JldF83NjEgPSAoaW50MTZ4OF90KSh2Y29tYmluZV9zMTYoKGludDE2eDRfdCkoX19zMF83NjEpLCAoaW50MTZ4NF90KSh2cXJzaHJuX25fczMyKF9fczFfNzYxLCBfX3AyXzc2MSkpKSk7IFwKICBfX3JldF83NjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMzIoX19wMF83NjIsIF9fcDFfNzYyLCBfX3AyXzc2MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzYyID0gX19wMF83NjI7IFwKICBpbnQzMng0X3QgX19zMV83NjIgPSBfX3AxXzc2MjsgXAogIGludDE2eDRfdCBfX3JldjBfNzYyOyAgX19yZXYwXzc2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzYyLCBfX3MwXzc2MiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzc2MjsgIF9fcmV2MV83NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2MiwgX19zMV83NjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc2MjsgXAogIF9fcmV0Xzc2MiA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfNzYyKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnFyc2hybl9uX3MzMihfX3JldjFfNzYyLCBfX3AyXzc2MikpKSk7IFwKICBfX3JldF83NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjIsIF9fcmV0Xzc2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zNjQoX19wMF83NjMsIF9fcDFfNzYzLCBfX3AyXzc2MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzYzID0gX19wMF83NjM7IFwKICBpbnQ2NHgyX3QgX19zMV83NjMgPSBfX3AxXzc2MzsgXAogIGludDMyeDRfdCBfX3JldF83NjM7IFwKICBfX3JldF83NjMgPSAoaW50MzJ4NF90KSh2Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19zMF83NjMpLCAoaW50MzJ4Ml90KSh2cXJzaHJuX25fczY0KF9fczFfNzYzLCBfX3AyXzc2MykpKSk7IFwKICBfX3JldF83NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zNjQoX19wMF83NjQsIF9fcDFfNzY0LCBfX3AyXzc2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzY0ID0gX19wMF83NjQ7IFwKICBpbnQ2NHgyX3QgX19zMV83NjQgPSBfX3AxXzc2NDsgXAogIGludDMyeDJfdCBfX3JldjBfNzY0OyAgX19yZXYwXzc2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzY0LCBfX3MwXzc2NCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxXzc2NDsgIF9fcmV2MV83NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2NCwgX19zMV83NjQsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc2NDsgXAogIF9fcmV0Xzc2NCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3JldjBfNzY0KSwgKGludDMyeDJfdCkoX19ub3N3YXBfdnFyc2hybl9uX3M2NChfX3JldjFfNzY0LCBfX3AyXzc2NCkpKSk7IFwKICBfX3JldF83NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjQsIF9fcmV0Xzc2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMTYoX19wMF83NjUsIF9fcDFfNzY1LCBfX3AyXzc2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83NjUgPSBfX3AwXzc2NTsgXAogIGludDE2eDhfdCBfX3MxXzc2NSA9IF9fcDFfNzY1OyBcCiAgaW50OHgxNl90IF9fcmV0Xzc2NTsgXAogIF9fcmV0Xzc2NSA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF83NjUpLCAoaW50OHg4X3QpKHZxcnNocm5fbl9zMTYoX19zMV83NjUsIF9fcDJfNzY1KSkpKTsgXAogIF9fcmV0Xzc2NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5faGlnaF9uX3MxNihfX3AwXzc2NiwgX19wMV83NjYsIF9fcDJfNzY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc2NiA9IF9fcDBfNzY2OyBcCiAgaW50MTZ4OF90IF9fczFfNzY2ID0gX19wMV83NjY7IFwKICBpbnQ4eDhfdCBfX3JldjBfNzY2OyAgX19yZXYwXzc2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzY2LCBfX3MwXzc2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzc2NjsgIF9fcmV2MV83NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2NiwgX19zMV83NjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0Xzc2NjsgXAogIF9fcmV0Xzc2NiA9IChpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19yZXYwXzc2NiksIChpbnQ4eDhfdCkoX19ub3N3YXBfdnFyc2hybl9uX3MxNihfX3JldjFfNzY2LCBfX3AyXzc2NikpKSk7IFwKICBfX3JldF83NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjYsIF9fcmV0Xzc2NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxcnNocm5zX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hybnNfbl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocm5kX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFyc2hybmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocm5oX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5oX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuc19uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5zX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5kX25fczY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuaF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuaF9uX3MxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zMzIoX19wMF83NjcsIF9fcDFfNzY3LCBfX3AyXzc2NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzY3ID0gX19wMF83Njc7IFwKICBpbnQzMng0X3QgX19zMV83NjcgPSBfX3AxXzc2NzsgXAogIGludDE2eDhfdCBfX3JldF83Njc7IFwKICBfX3JldF83NjcgPSAoaW50MTZ4OF90KSh2Y29tYmluZV9zMTYoKGludDE2eDRfdCkoX19zMF83NjcpLCAoaW50MTZ4NF90KSh2cXJzaHJ1bl9uX3MzMihfX3MxXzc2NywgX19wMl83NjcpKSkpOyBcCiAgX19yZXRfNzY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hydW5faGlnaF9uX3MzMihfX3AwXzc2OCwgX19wMV83NjgsIF9fcDJfNzY4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NjggPSBfX3AwXzc2ODsgXAogIGludDMyeDRfdCBfX3MxXzc2OCA9IF9fcDFfNzY4OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83Njg7ICBfX3JldjBfNzY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NjgsIF9fczBfNzY4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzY4OyAgX19yZXYxXzc2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzY4LCBfX3MxXzc2OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzY4OyBcCiAgX19yZXRfNzY4ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83NjgpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cXJzaHJ1bl9uX3MzMihfX3JldjFfNzY4LCBfX3AyXzc2OCkpKSk7IFwKICBfX3JldF83NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjgsIF9fcmV0Xzc2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJ1bl9oaWdoX25fczY0KF9fcDBfNzY5LCBfX3AxXzc2OSwgX19wMl83NjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzc2OSA9IF9fcDBfNzY5OyBcCiAgaW50NjR4Ml90IF9fczFfNzY5ID0gX19wMV83Njk7IFwKICBpbnQzMng0X3QgX19yZXRfNzY5OyBcCiAgX19yZXRfNzY5ID0gKGludDMyeDRfdCkodmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fczBfNzY5KSwgKGludDMyeDJfdCkodnFyc2hydW5fbl9zNjQoX19zMV83NjksIF9fcDJfNzY5KSkpKTsgXAogIF9fcmV0Xzc2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zNjQoX19wMF83NzAsIF9fcDFfNzcwLCBfX3AyXzc3MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzcwID0gX19wMF83NzA7IFwKICBpbnQ2NHgyX3QgX19zMV83NzAgPSBfX3AxXzc3MDsgXAogIGludDMyeDJfdCBfX3JldjBfNzcwOyAgX19yZXYwXzc3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzcwLCBfX3MwXzc3MCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxXzc3MDsgIF9fcmV2MV83NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc3MCwgX19zMV83NzAsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc3MDsgXAogIF9fcmV0Xzc3MCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3JldjBfNzcwKSwgKGludDMyeDJfdCkoX19ub3N3YXBfdnFyc2hydW5fbl9zNjQoX19yZXYxXzc3MCwgX19wMl83NzApKSkpOyBcCiAgX19yZXRfNzcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzcwLCBfX3JldF83NzAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzcwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hydW5faGlnaF9uX3MxNihfX3AwXzc3MSwgX19wMV83NzEsIF9fcDJfNzcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc3MSA9IF9fcDBfNzcxOyBcCiAgaW50MTZ4OF90IF9fczFfNzcxID0gX19wMV83NzE7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzcxOyBcCiAgX19yZXRfNzcxID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzc3MSksIChpbnQ4eDhfdCkodnFyc2hydW5fbl9zMTYoX19zMV83NzEsIF9fcDJfNzcxKSkpKTsgXAogIF9fcmV0Xzc3MTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zMTYoX19wMF83NzIsIF9fcDFfNzcyLCBfX3AyXzc3MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83NzIgPSBfX3AwXzc3MjsgXAogIGludDE2eDhfdCBfX3MxXzc3MiA9IF9fcDFfNzcyOyBcCiAgaW50OHg4X3QgX19yZXYwXzc3MjsgIF9fcmV2MF83NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3MiwgX19zMF83NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83NzI7ICBfX3JldjFfNzcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NzIsIF9fczFfNzcyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF83NzI7IFwKICBfX3JldF83NzIgPSAoaW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV9zOCgoaW50OHg4X3QpKF9fcmV2MF83NzIpLCAoaW50OHg4X3QpKF9fbm9zd2FwX3ZxcnNocnVuX25fczE2KF9fcmV2MV83NzIsIF9fcDJfNzcyKSkpKTsgXAogIF9fcmV0Xzc3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc3MiwgX19yZXRfNzcyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc3MjsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnFyc2hydW5zX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5zX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJ1bmRfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocnVuaF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bmhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIHVpbnQ4X3QgdnFzaGxiX3U4KHVpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2cXNobHNfdTMyKHVpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfdTMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZxc2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFzaGxoX3UxNih1aW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFzaGxiX3M4KGludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9zOChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxc2hsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsc19zMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cXNobGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2X3QgdnFzaGxoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX3MxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cXNobGJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9uX3U4KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHNfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfbl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsZF9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF9uX3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGxoX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobGJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9uX3M4KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfbl9zMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGxoX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX25fczE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHViX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHViX25fczgoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsdXNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVzX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHVkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFzaGx1ZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGx1aF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdWhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5faGlnaF9uX3UzMihfX3AwXzc3MywgX19wMV83NzMsIF9fcDJfNzczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNzczID0gX19wMF83NzM7IFwKICB1aW50MzJ4NF90IF9fczFfNzczID0gX19wMV83NzM7IFwKICB1aW50MTZ4OF90IF9fcmV0Xzc3MzsgXAogIF9fcmV0Xzc3MyA9ICh1aW50MTZ4OF90KSh2Y29tYmluZV91MTYoKHVpbnQxNng0X3QpKF9fczBfNzczKSwgKHVpbnQxNng0X3QpKHZxc2hybl9uX3UzMihfX3MxXzc3MywgX19wMl83NzMpKSkpOyBcCiAgX19yZXRfNzczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl91MzIoX19wMF83NzQsIF9fcDFfNzc0LCBfX3AyXzc3NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc3NCA9IF9fcDBfNzc0OyBcCiAgdWludDMyeDRfdCBfX3MxXzc3NCA9IF9fcDFfNzc0OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzc0OyAgX19yZXYwXzc3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzc0LCBfX3MwXzc3NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV83NzQ7ICBfX3JldjFfNzc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NzQsIF9fczFfNzc0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzc0OyBcCiAgX19yZXRfNzc0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzc3NCksICh1aW50MTZ4NF90KShfX25vc3dhcF92cXNocm5fbl91MzIoX19yZXYxXzc3NCwgX19wMl83NzQpKSkpOyBcCiAgX19yZXRfNzc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzc0LCBfX3JldF83NzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzc0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl91NjQoX19wMF83NzUsIF9fcDFfNzc1LCBfX3AyXzc3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzc3NSA9IF9fcDBfNzc1OyBcCiAgdWludDY0eDJfdCBfX3MxXzc3NSA9IF9fcDFfNzc1OyBcCiAgdWludDMyeDRfdCBfX3JldF83NzU7IFwKICBfX3JldF83NzUgPSAodWludDMyeDRfdCkodmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3MwXzc3NSksICh1aW50MzJ4Ml90KSh2cXNocm5fbl91NjQoX19zMV83NzUsIF9fcDJfNzc1KSkpKTsgXAogIF9fcmV0Xzc3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9oaWdoX25fdTY0KF9fcDBfNzc2LCBfX3AxXzc3NiwgX19wMl83NzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF83NzYgPSBfX3AwXzc3NjsgXAogIHVpbnQ2NHgyX3QgX19zMV83NzYgPSBfX3AxXzc3NjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzc3NjsgIF9fcmV2MF83NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3NiwgX19zMF83NzYsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjFfNzc2OyAgX19yZXYxXzc3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzc2LCBfX3MxXzc3NiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc3NjsgXAogIF9fcmV0Xzc3NiA9ICh1aW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fcmV2MF83NzYpLCAodWludDMyeDJfdCkoX19ub3N3YXBfdnFzaHJuX25fdTY0KF9fcmV2MV83NzYsIF9fcDJfNzc2KSkpKTsgXAogIF9fcmV0Xzc3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc3NiwgX19yZXRfNzc2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc3NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9oaWdoX25fdTE2KF9fcDBfNzc3LCBfX3AxXzc3NywgX19wMl83NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc3NyA9IF9fcDBfNzc3OyBcCiAgdWludDE2eDhfdCBfX3MxXzc3NyA9IF9fcDFfNzc3OyBcCiAgdWludDh4MTZfdCBfX3JldF83Nzc7IFwKICBfX3JldF83NzcgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF83NzcpLCAodWludDh4OF90KSh2cXNocm5fbl91MTYoX19zMV83NzcsIF9fcDJfNzc3KSkpKTsgXAogIF9fcmV0Xzc3NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9oaWdoX25fdTE2KF9fcDBfNzc4LCBfX3AxXzc3OCwgX19wMl83NzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc3OCA9IF9fcDBfNzc4OyBcCiAgdWludDE2eDhfdCBfX3MxXzc3OCA9IF9fcDFfNzc4OyBcCiAgdWludDh4OF90IF9fcmV2MF83Nzg7ICBfX3JldjBfNzc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NzgsIF9fczBfNzc4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzc3ODsgIF9fcmV2MV83NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc3OCwgX19zMV83NzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldF83Nzg7IFwKICBfX3JldF83NzggPSAodWludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19yZXYwXzc3OCksICh1aW50OHg4X3QpKF9fbm9zd2FwX3Zxc2hybl9uX3UxNihfX3JldjFfNzc4LCBfX3AyXzc3OCkpKSk7IFwKICBfX3JldF83NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NzgsIF9fcmV0Xzc3OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83Nzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5faGlnaF9uX3MzMihfX3AwXzc3OSwgX19wMV83NzksIF9fcDJfNzc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NzkgPSBfX3AwXzc3OTsgXAogIGludDMyeDRfdCBfX3MxXzc3OSA9IF9fcDFfNzc5OyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc3OTsgXAogIF9fcmV0Xzc3OSA9IChpbnQxNng4X3QpKHZjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3MwXzc3OSksIChpbnQxNng0X3QpKHZxc2hybl9uX3MzMihfX3MxXzc3OSwgX19wMl83NzkpKSkpOyBcCiAgX19yZXRfNzc5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMzIoX19wMF83ODAsIF9fcDFfNzgwLCBfX3AyXzc4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzgwID0gX19wMF83ODA7IFwKICBpbnQzMng0X3QgX19zMV83ODAgPSBfX3AxXzc4MDsgXAogIGludDE2eDRfdCBfX3JldjBfNzgwOyAgX19yZXYwXzc4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzgwLCBfX3MwXzc4MCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzc4MDsgIF9fcmV2MV83ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc4MCwgX19zMV83ODAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc4MDsgXAogIF9fcmV0Xzc4MCA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfNzgwKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnFzaHJuX25fczMyKF9fcmV2MV83ODAsIF9fcDJfNzgwKSkpKTsgXAogIF9fcmV0Xzc4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4MCwgX19yZXRfNzgwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9oaWdoX25fczY0KF9fcDBfNzgxLCBfX3AxXzc4MSwgX19wMl83ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzc4MSA9IF9fcDBfNzgxOyBcCiAgaW50NjR4Ml90IF9fczFfNzgxID0gX19wMV83ODE7IFwKICBpbnQzMng0X3QgX19yZXRfNzgxOyBcCiAgX19yZXRfNzgxID0gKGludDMyeDRfdCkodmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fczBfNzgxKSwgKGludDMyeDJfdCkodnFzaHJuX25fczY0KF9fczFfNzgxLCBfX3AyXzc4MSkpKSk7IFwKICBfX3JldF83ODE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5faGlnaF9uX3M2NChfX3AwXzc4MiwgX19wMV83ODIsIF9fcDJfNzgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODIgPSBfX3AwXzc4MjsgXAogIGludDY0eDJfdCBfX3MxXzc4MiA9IF9fcDFfNzgyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83ODI7ICBfX3JldjBfNzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODIsIF9fczBfNzgyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjFfNzgyOyAgX19yZXYxXzc4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzgyLCBfX3MxXzc4MiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzgyOyBcCiAgX19yZXRfNzgyID0gKGludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fcmV2MF83ODIpLCAoaW50MzJ4Ml90KShfX25vc3dhcF92cXNocm5fbl9zNjQoX19yZXYxXzc4MiwgX19wMl83ODIpKSkpOyBcCiAgX19yZXRfNzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzgyLCBfX3JldF83ODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMTYoX19wMF83ODMsIF9fcDFfNzgzLCBfX3AyXzc4MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83ODMgPSBfX3AwXzc4MzsgXAogIGludDE2eDhfdCBfX3MxXzc4MyA9IF9fcDFfNzgzOyBcCiAgaW50OHgxNl90IF9fcmV0Xzc4MzsgXAogIF9fcmV0Xzc4MyA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF83ODMpLCAoaW50OHg4X3QpKHZxc2hybl9uX3MxNihfX3MxXzc4MywgX19wMl83ODMpKSkpOyBcCiAgX19yZXRfNzgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMTYoX19wMF83ODQsIF9fcDFfNzg0LCBfX3AyXzc4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83ODQgPSBfX3AwXzc4NDsgXAogIGludDE2eDhfdCBfX3MxXzc4NCA9IF9fcDFfNzg0OyBcCiAgaW50OHg4X3QgX19yZXYwXzc4NDsgIF9fcmV2MF83ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc4NCwgX19zMF83ODQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83ODQ7ICBfX3JldjFfNzg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83ODQsIF9fczFfNzg0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF83ODQ7IFwKICBfX3JldF83ODQgPSAoaW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV9zOCgoaW50OHg4X3QpKF9fcmV2MF83ODQpLCAoaW50OHg4X3QpKF9fbm9zd2FwX3Zxc2hybl9uX3MxNihfX3JldjFfNzg0LCBfX3AyXzc4NCkpKSk7IFwKICBfX3JldF83ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83ODQsIF9fcmV0Xzc4NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83ODQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hybnNfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5zX25fdTMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNocm5kX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFzaHJuZF9uX3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJuaF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5oX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNocm5zX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaHJuc19uX3MzMihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJuZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hybmhfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuaF9uX3MxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MzMihfX3AwXzc4NSwgX19wMV83ODUsIF9fcDJfNzg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83ODUgPSBfX3AwXzc4NTsgXAogIGludDMyeDRfdCBfX3MxXzc4NSA9IF9fcDFfNzg1OyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc4NTsgXAogIF9fcmV0Xzc4NSA9IChpbnQxNng4X3QpKHZjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3MwXzc4NSksIChpbnQxNng0X3QpKHZxc2hydW5fbl9zMzIoX19zMV83ODUsIF9fcDJfNzg1KSkpKTsgXAogIF9fcmV0Xzc4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MzMihfX3AwXzc4NiwgX19wMV83ODYsIF9fcDJfNzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83ODYgPSBfX3AwXzc4NjsgXAogIGludDMyeDRfdCBfX3MxXzc4NiA9IF9fcDFfNzg2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83ODY7ICBfX3JldjBfNzg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODYsIF9fczBfNzg2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzg2OyAgX19yZXYxXzc4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzg2LCBfX3MxXzc4NiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzg2OyBcCiAgX19yZXRfNzg2ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83ODYpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cXNocnVuX25fczMyKF9fcmV2MV83ODYsIF9fcDJfNzg2KSkpKTsgXAogIF9fcmV0Xzc4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4NiwgX19yZXRfNzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3M2NChfX3AwXzc4NywgX19wMV83ODcsIF9fcDJfNzg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODcgPSBfX3AwXzc4NzsgXAogIGludDY0eDJfdCBfX3MxXzc4NyA9IF9fcDFfNzg3OyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc4NzsgXAogIF9fcmV0Xzc4NyA9IChpbnQzMng0X3QpKHZjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3MwXzc4NyksIChpbnQzMngyX3QpKHZxc2hydW5fbl9zNjQoX19zMV83ODcsIF9fcDJfNzg3KSkpKTsgXAogIF9fcmV0Xzc4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5faGlnaF9uX3M2NChfX3AwXzc4OCwgX19wMV83ODgsIF9fcDJfNzg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODggPSBfX3AwXzc4ODsgXAogIGludDY0eDJfdCBfX3MxXzc4OCA9IF9fcDFfNzg4OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83ODg7ICBfX3JldjBfNzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODgsIF9fczBfNzg4LCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjFfNzg4OyAgX19yZXYxXzc4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzg4LCBfX3MxXzc4OCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzg4OyBcCiAgX19yZXRfNzg4ID0gKGludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fcmV2MF83ODgpLCAoaW50MzJ4Ml90KShfX25vc3dhcF92cXNocnVuX25fczY0KF9fcmV2MV83ODgsIF9fcDJfNzg4KSkpKTsgXAogIF9fcmV0Xzc4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4OCwgX19yZXRfNzg4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MxNihfX3AwXzc4OSwgX19wMV83ODksIF9fcDJfNzg5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc4OSA9IF9fcDBfNzg5OyBcCiAgaW50MTZ4OF90IF9fczFfNzg5ID0gX19wMV83ODk7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzg5OyBcCiAgX19yZXRfNzg5ID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzc4OSksIChpbnQ4eDhfdCkodnFzaHJ1bl9uX3MxNihfX3MxXzc4OSwgX19wMl83ODkpKSkpOyBcCiAgX19yZXRfNzg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJ1bl9oaWdoX25fczE2KF9fcDBfNzkwLCBfX3AxXzc5MCwgX19wMl83OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfNzkwID0gX19wMF83OTA7IFwKICBpbnQxNng4X3QgX19zMV83OTAgPSBfX3AxXzc5MDsgXAogIGludDh4OF90IF9fcmV2MF83OTA7ICBfX3JldjBfNzkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTAsIF9fczBfNzkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzkwOyAgX19yZXYxXzc5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzkwLCBfX3MxXzc5MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzkwOyBcCiAgX19yZXRfNzkwID0gKGludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfczgoKGludDh4OF90KShfX3JldjBfNzkwKSwgKGludDh4OF90KShfX25vc3dhcF92cXNocnVuX25fczE2KF9fcmV2MV83OTAsIF9fcDJfNzkwKSkpKTsgXAogIF9fcmV0Xzc5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc5MCwgX19yZXRfNzkwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc5MDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnFzaHJ1bnNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuc19uX3MzMihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJ1bmRfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJ1bmhfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bmhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIHVpbnQ4X3QgdnFzdWJiX3U4KHVpbnQ4X3QgX19wMCwgdWludDhfdCBfX3AxKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YmJfdTgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFzdWJzX3UzMih1aW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3Vic191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFzdWJkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFzdWJoX3UxNih1aW50MTZfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViaF91MTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxc3ViYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YmJfczgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2cXN1YnNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFzdWJkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFzdWJkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxc3ViaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRibDFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRibDFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRibDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJsMXFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0YmwxcV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJsMXFfczgoaW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJsMV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRibDFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsMV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwxX3M4KGludDh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJsMl9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZxdGJsMl9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnF0YmwycV9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRibDJxX3A4KHBvbHk4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwycV91OCh1aW50OHgxNngyX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDJxX3U4KHVpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXRibDJxX3M4KGludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMnFfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnF0YmwycV9zOChpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXRibDJfdTgodWludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwyX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnF0YmwyX3U4KHVpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDE2eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMl92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsMl9zOChpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwyX3M4KGludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwyX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnF0YmwzX3A4KHBvbHk4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0YmwzX3A4KHBvbHk4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDE2eDNfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzJdLCBfX3AwLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZxdGJsM3FfcDgocG9seTh4MTZ4M190IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDE2X3QpX19wMSwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnF0YmwzcV9wOChwb2x5OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZ4M190IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwzcV91OCh1aW50OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDNxX3U4KHVpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxdGJsM3FfczgoaW50OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXRibDNxX3M4KGludDh4MTZ4M190IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZ4M190IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM3FfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnF0YmwzX3U4KHVpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJsM191OCh1aW50OHgxNngzX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsM19zOChpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwzX3M4KGludDh4MTZ4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwzX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRibDRfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRibDRfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4MTZ4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRibDRxX3A4KHBvbHk4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsNHFfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJsNHFfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2eDRfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzJdLCBfX3AwLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzNdLCBfX3AwLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsNHFfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbM10sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0Ymw0cV91OCh1aW50OHgxNng0X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDRxX3U4KHVpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0Ymw0cV9zOChpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJsNHFfczgoaW50OHgxNng0X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Ymw0cV92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFszXSwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJsNF91OCh1aW50OHgxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRibDRfdTgodWludDh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4MTZ4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsNF9zOChpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0Ymw0X3M4KGludDh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJ4MV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0YngxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRieDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRieDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0YngxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJ4MXFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YngxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnF0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRieDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnF0YngycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMiwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnF0YngycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXRieDJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDIsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnF0YngycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZ4Ml90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXRieDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4Ml92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRieDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNngyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDJfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDJfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRieDNfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDE2eDNfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M192KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMiwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZxdGJ4M19wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZ4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjIsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZxdGJ4M3FfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNngzX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDEudmFsWzJdLCAoaW50OHgxNl90KV9fcDIsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJ4M3FfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNngzX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjIsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxdGJ4M3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZ4M190IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMiwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXRieDNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNngzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YngzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnF0YngzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnF0YngzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZ4M190IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJ4NF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0Yng0X3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRieDRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLnZhbFszXSwgKGludDh4MTZfdClfX3AyLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRieDRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0Yng0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDRfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0Yng0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDRfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0Yng0cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLnZhbFszXSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJ4NHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyYWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdnJhZGRobl91MzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnJhZGRobl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fdTMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJhZGRobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2cmFkZGhuX3U2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdnJhZGRobl91NjQoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmFkZGhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OChfX3AwLCB2cmFkZGhuX3UxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cmFkZGhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnJhZGRobl91MTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZyYWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MxNihfX3AwLCB2cmFkZGhuX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyYWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMzIoX19wMCwgdnJhZGRobl9zNjQoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92cmFkZGhuX3M2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnJhZGRobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zOChfX3AwLCB2cmFkZGhuX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyYWRkaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmJpdF9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcDAsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cmJpdF9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmJpdF92KChpbnQ4eDhfdClfX3JldjAsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZyYml0cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0cV92KChpbnQ4eDE2X3QpX19wMCwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnJiaXRxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyYml0cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJiaXRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnJiaXRxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJiaXRxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyYml0cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJiaXRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmJpdF92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyYml0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cmJpdF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyYml0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJiaXRfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3AwLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3JldjAsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cmVjcGVfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJlY3BlX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJlY3BlZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJlY3Blc19mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cmVjcHNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cmVjcHNfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NF90IHZyZWNwc2RfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc2RfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJfdCB2cmVjcHNzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHNzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJlY3B4ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHhkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJlY3B4c19mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHhzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2cnNobGRfdTY0KHVpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnJzaGxkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnJzaGxkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cnNocmRfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyc2hyZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9oaWdoX25fdTMyKF9fcDBfNzkxLCBfX3AxXzc5MSwgX19wMl83OTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF83OTEgPSBfX3AwXzc5MTsgXAogIHVpbnQzMng0X3QgX19zMV83OTEgPSBfX3AxXzc5MTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzkxOyBcCiAgX19yZXRfNzkxID0gKHVpbnQxNng4X3QpKHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19zMF83OTEpLCAodWludDE2eDRfdCkodnJzaHJuX25fdTMyKF9fczFfNzkxLCBfX3AyXzc5MSkpKSk7IFwKICBfX3JldF83OTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3UzMihfX3AwXzc5MiwgX19wMV83OTIsIF9fcDJfNzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNzkyID0gX19wMF83OTI7IFwKICB1aW50MzJ4NF90IF9fczFfNzkyID0gX19wMV83OTI7IFwKICB1aW50MTZ4NF90IF9fcmV2MF83OTI7ICBfX3JldjBfNzkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTIsIF9fczBfNzkyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzc5MjsgIF9fcmV2MV83OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc5MiwgX19zMV83OTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldF83OTI7IFwKICBfX3JldF83OTIgPSAodWludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTE2KCh1aW50MTZ4NF90KShfX3JldjBfNzkyKSwgKHVpbnQxNng0X3QpKF9fbm9zd2FwX3Zyc2hybl9uX3UzMihfX3JldjFfNzkyLCBfX3AyXzc5MikpKSk7IFwKICBfX3JldF83OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83OTIsIF9fcmV0Xzc5MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83OTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5faGlnaF9uX3U2NChfX3AwXzc5MywgX19wMV83OTMsIF9fcDJfNzkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzkzID0gX19wMF83OTM7IFwKICB1aW50NjR4Ml90IF9fczFfNzkzID0gX19wMV83OTM7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc5MzsgXAogIF9fcmV0Xzc5MyA9ICh1aW50MzJ4NF90KSh2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fczBfNzkzKSwgKHVpbnQzMngyX3QpKHZyc2hybl9uX3U2NChfX3MxXzc5MywgX19wMl83OTMpKSkpOyBcCiAgX19yZXRfNzkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91NjQoX19wMF83OTQsIF9fcDFfNzk0LCBfX3AyXzc5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzc5NCA9IF9fcDBfNzk0OyBcCiAgdWludDY0eDJfdCBfX3MxXzc5NCA9IF9fcDFfNzk0OyBcCiAgdWludDMyeDJfdCBfX3JldjBfNzk0OyAgX19yZXYwXzc5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzk0LCBfX3MwXzc5NCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MV83OTQ7ICBfX3JldjFfNzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83OTQsIF9fczFfNzk0LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNzk0OyBcCiAgX19yZXRfNzk0ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19yZXYwXzc5NCksICh1aW50MzJ4Ml90KShfX25vc3dhcF92cnNocm5fbl91NjQoX19yZXYxXzc5NCwgX19wMl83OTQpKSkpOyBcCiAgX19yZXRfNzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzk0LCBfX3JldF83OTQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91MTYoX19wMF83OTUsIF9fcDFfNzk1LCBfX3AyXzc5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzk1ID0gX19wMF83OTU7IFwKICB1aW50MTZ4OF90IF9fczFfNzk1ID0gX19wMV83OTU7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc5NTsgXAogIF9fcmV0Xzc5NSA9ICh1aW50OHgxNl90KSh2Y29tYmluZV91OCgodWludDh4OF90KShfX3MwXzc5NSksICh1aW50OHg4X3QpKHZyc2hybl9uX3UxNihfX3MxXzc5NSwgX19wMl83OTUpKSkpOyBcCiAgX19yZXRfNzk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91MTYoX19wMF83OTYsIF9fcDFfNzk2LCBfX3AyXzc5NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzk2ID0gX19wMF83OTY7IFwKICB1aW50MTZ4OF90IF9fczFfNzk2ID0gX19wMV83OTY7IFwKICB1aW50OHg4X3QgX19yZXYwXzc5NjsgIF9fcmV2MF83OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc5NiwgX19zMF83OTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNzk2OyAgX19yZXYxXzc5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzk2LCBfX3MxXzc5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc5NjsgXAogIF9fcmV0Xzc5NiA9ICh1aW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjBfNzk2KSwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfdnJzaHJuX25fdTE2KF9fcmV2MV83OTYsIF9fcDJfNzk2KSkpKTsgXAogIF9fcmV0Xzc5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc5NiwgX19yZXRfNzk2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc5NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9oaWdoX25fczMyKF9fcDBfNzk3LCBfX3AxXzc5NywgX19wMl83OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzc5NyA9IF9fcDBfNzk3OyBcCiAgaW50MzJ4NF90IF9fczFfNzk3ID0gX19wMV83OTc7IFwKICBpbnQxNng4X3QgX19yZXRfNzk3OyBcCiAgX19yZXRfNzk3ID0gKGludDE2eDhfdCkodmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fczBfNzk3KSwgKGludDE2eDRfdCkodnJzaHJuX25fczMyKF9fczFfNzk3LCBfX3AyXzc5NykpKSk7IFwKICBfX3JldF83OTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3MzMihfX3AwXzc5OCwgX19wMV83OTgsIF9fcDJfNzk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83OTggPSBfX3AwXzc5ODsgXAogIGludDMyeDRfdCBfX3MxXzc5OCA9IF9fcDFfNzk4OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83OTg7ICBfX3JldjBfNzk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTgsIF9fczBfNzk4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzk4OyAgX19yZXYxXzc5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzk4LCBfX3MxXzc5OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzk4OyBcCiAgX19yZXRfNzk4ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83OTgpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cnNocm5fbl9zMzIoX19yZXYxXzc5OCwgX19wMl83OTgpKSkpOyBcCiAgX19yZXRfNzk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzk4LCBfX3JldF83OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzk4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl9zNjQoX19wMF83OTksIF9fcDFfNzk5LCBfX3AyXzc5OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzk5ID0gX19wMF83OTk7IFwKICBpbnQ2NHgyX3QgX19zMV83OTkgPSBfX3AxXzc5OTsgXAogIGludDMyeDRfdCBfX3JldF83OTk7IFwKICBfX3JldF83OTkgPSAoaW50MzJ4NF90KSh2Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19zMF83OTkpLCAoaW50MzJ4Ml90KSh2cnNocm5fbl9zNjQoX19zMV83OTksIF9fcDJfNzk5KSkpKTsgXAogIF9fcmV0Xzc5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hybl9oaWdoX25fczY0KF9fcDBfODAwLCBfX3AxXzgwMCwgX19wMl84MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgwMCA9IF9fcDBfODAwOyBcCiAgaW50NjR4Ml90IF9fczFfODAwID0gX19wMV84MDA7IFwKICBpbnQzMngyX3QgX19yZXYwXzgwMDsgIF9fcmV2MF84MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgwMCwgX19zMF84MDAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MV84MDA7ICBfX3JldjFfODAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MDAsIF9fczFfODAwLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84MDA7IFwKICBfX3JldF84MDAgPSAoaW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19yZXYwXzgwMCksIChpbnQzMngyX3QpKF9fbm9zd2FwX3Zyc2hybl9uX3M2NChfX3JldjFfODAwLCBfX3AyXzgwMCkpKSk7IFwKICBfX3JldF84MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MDAsIF9fcmV0XzgwMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5faGlnaF9uX3MxNihfX3AwXzgwMSwgX19wMV84MDEsIF9fcDJfODAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzgwMSA9IF9fcDBfODAxOyBcCiAgaW50MTZ4OF90IF9fczFfODAxID0gX19wMV84MDE7IFwKICBpbnQ4eDE2X3QgX19yZXRfODAxOyBcCiAgX19yZXRfODAxID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzgwMSksIChpbnQ4eDhfdCkodnJzaHJuX25fczE2KF9fczFfODAxLCBfX3AyXzgwMSkpKSk7IFwKICBfX3JldF84MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3MxNihfX3AwXzgwMiwgX19wMV84MDIsIF9fcDJfODAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzgwMiA9IF9fcDBfODAyOyBcCiAgaW50MTZ4OF90IF9fczFfODAyID0gX19wMV84MDI7IFwKICBpbnQ4eDhfdCBfX3JldjBfODAyOyAgX19yZXYwXzgwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODAyLCBfX3MwXzgwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzgwMjsgIF9fcmV2MV84MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgwMiwgX19zMV84MDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzgwMjsgXAogIF9fcmV0XzgwMiA9IChpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19yZXYwXzgwMiksIChpbnQ4eDhfdCkoX19ub3N3YXBfdnJzaHJuX25fczE2KF9fcmV2MV84MDIsIF9fcDJfODAyKSkpKTsgXAogIF9fcmV0XzgwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgwMiwgX19yZXRfODAyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZyc3FydGVxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3AwLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJzcXJ0ZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZyc3FydGVfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZV92KChpbnQ4eDhfdClfX3AwLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NF90IHZyc3FydGVkX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJzcXJ0ZXNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2cnNxcnRzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJzcXJ0c3FfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cnNxcnRzX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJzcXJ0c2RfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJzcXJ0c3NfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cnNyYWRfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJzcmFkX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fczEgPSBfX3AxOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhZF9uX3M2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnJzdWJobl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UxNihfX3AwLCB2cnN1YmhuX3UzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl91MzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cnN1YmhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTMyKF9fcDAsIHZyc3ViaG5fdTY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZyc3ViaG5faGlnaF91NjQodWludDMyeDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEsIHVpbnQ2NHgyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MzIoX19yZXYwLCBfX25vc3dhcF92cnN1YmhuX3U2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyc3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZyc3ViaG5fdTE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyc3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTgoX19yZXYwLCBfX25vc3dhcF92cnN1YmhuX3UxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczE2KF9fcDAsIHZyc3ViaG5fczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnJzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZyc3ViaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MzMihfX3AwLCB2cnN1YmhuX3M2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyc3ViaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MzMihfX3JldjAsIF9fbm9zd2FwX3Zyc3ViaG5fczY0KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cnN1YmhuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3M4KF9fcDAsIHZyc3ViaG5fczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJzdWJobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3M4KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDFfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTY0KF9fczAsIChwb2x5NjR4MV90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChwb2x5NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjRfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChwb2x5NjR4Ml90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAocG9seTY0eDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnNldF9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9mNjQoX19zMCwgKGZsb2F0NjR4MV90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKX19haSB1aW50NjRfdCB2c2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZzaGxkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZzaGxkX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzaGxkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fdTgoX19wMF84MDMsIF9fcDFfODAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfODAzID0gX19wMF84MDM7IFwKICB1aW50MTZ4OF90IF9fcmV0XzgwMzsgXAogIF9fcmV0XzgwMyA9ICh1aW50MTZ4OF90KSh2c2hsbF9uX3U4KHZnZXRfaGlnaF91OChfX3MwXzgwMyksIF9fcDFfODAzKSk7IFwKICBfX3JldF84MDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fdTgoX19wMF84MDQsIF9fcDFfODA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfODA0ID0gX19wMF84MDQ7IFwKICB1aW50OHgxNl90IF9fcmV2MF84MDQ7ICBfX3JldjBfODA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MDQsIF9fczBfODA0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODA0OyBcCiAgX19yZXRfODA0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTgoX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MF84MDQpLCBfX3AxXzgwNCkpOyBcCiAgX19yZXRfODA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODA0LCBfX3JldF84MDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfaGlnaF9uX3UzMihfX3AwXzgwNSwgX19wMV84MDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF84MDUgPSBfX3AwXzgwNTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfODA1OyBcCiAgX19yZXRfODA1ID0gKHVpbnQ2NHgyX3QpKHZzaGxsX25fdTMyKHZnZXRfaGlnaF91MzIoX19zMF84MDUpLCBfX3AxXzgwNSkpOyBcCiAgX19yZXRfODA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfaGlnaF9uX3UzMihfX3AwXzgwNiwgX19wMV84MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF84MDYgPSBfX3AwXzgwNjsgXAogIHVpbnQzMng0X3QgX19yZXYwXzgwNjsgIF9fcmV2MF84MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgwNiwgX19zMF84MDYsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84MDY7IFwKICBfX3JldF84MDYgPSAodWludDY0eDJfdCkoX19ub3N3YXBfdnNobGxfbl91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjBfODA2KSwgX19wMV84MDYpKTsgXAogIF9fcmV0XzgwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgwNiwgX19yZXRfODA2LCAxLCAwKTsgXAogIF9fcmV0XzgwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX2hpZ2hfbl91MTYoX19wMF84MDcsIF9fcDFfODA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfODA3ID0gX19wMF84MDc7IFwKICB1aW50MzJ4NF90IF9fcmV0XzgwNzsgXAogIF9fcmV0XzgwNyA9ICh1aW50MzJ4NF90KSh2c2hsbF9uX3UxNih2Z2V0X2hpZ2hfdTE2KF9fczBfODA3KSwgX19wMV84MDcpKTsgXAogIF9fcmV0XzgwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX2hpZ2hfbl91MTYoX19wMF84MDgsIF9fcDFfODA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfODA4ID0gX19wMF84MDg7IFwKICB1aW50MTZ4OF90IF9fcmV2MF84MDg7ICBfX3JldjBfODA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MDgsIF9fczBfODA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfODA4OyBcCiAgX19yZXRfODA4ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwXzgwOCksIF9fcDFfODA4KSk7IFwKICBfX3JldF84MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MDgsIF9fcmV0XzgwOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczgoX19wMF84MDksIF9fcDFfODA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF84MDkgPSBfX3AwXzgwOTsgXAogIGludDE2eDhfdCBfX3JldF84MDk7IFwKICBfX3JldF84MDkgPSAoaW50MTZ4OF90KSh2c2hsbF9uX3M4KHZnZXRfaGlnaF9zOChfX3MwXzgwOSksIF9fcDFfODA5KSk7IFwKICBfX3JldF84MDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczgoX19wMF84MTAsIF9fcDFfODEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF84MTAgPSBfX3AwXzgxMDsgXAogIGludDh4MTZfdCBfX3JldjBfODEwOyAgX19yZXYwXzgxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODEwLCBfX3MwXzgxMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfODEwOyBcCiAgX19yZXRfODEwID0gKGludDE2eDhfdCkoX19ub3N3YXBfdnNobGxfbl9zOChfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYwXzgxMCksIF9fcDFfODEwKSk7IFwKICBfX3JldF84MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTAsIF9fcmV0XzgxMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczMyKF9fcDBfODExLCBfX3AxXzgxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODExID0gX19wMF84MTE7IFwKICBpbnQ2NHgyX3QgX19yZXRfODExOyBcCiAgX19yZXRfODExID0gKGludDY0eDJfdCkodnNobGxfbl9zMzIodmdldF9oaWdoX3MzMihfX3MwXzgxMSksIF9fcDFfODExKSk7IFwKICBfX3JldF84MTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczMyKF9fcDBfODEyLCBfX3AxXzgxMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODEyID0gX19wMF84MTI7IFwKICBpbnQzMng0X3QgX19yZXYwXzgxMjsgIF9fcmV2MF84MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgxMiwgX19zMF84MTIsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzgxMjsgXAogIF9fcmV0XzgxMiA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwXzgxMiksIF9fcDFfODEyKSk7IFwKICBfX3JldF84MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTIsIF9fcmV0XzgxMiwgMSwgMCk7IFwKICBfX3JldF84MTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczE2KF9fcDBfODEzLCBfX3AxXzgxMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfODEzID0gX19wMF84MTM7IFwKICBpbnQzMng0X3QgX19yZXRfODEzOyBcCiAgX19yZXRfODEzID0gKGludDMyeDRfdCkodnNobGxfbl9zMTYodmdldF9oaWdoX3MxNihfX3MwXzgxMyksIF9fcDFfODEzKSk7IFwKICBfX3JldF84MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczE2KF9fcDBfODE0LCBfX3AxXzgxNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfODE0ID0gX19wMF84MTQ7IFwKICBpbnQxNng4X3QgX19yZXYwXzgxNDsgIF9fcmV2MF84MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgxNCwgX19zMF84MTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgxNDsgXAogIF9fcmV0XzgxNCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzgxNCksIF9fcDFfODE0KSk7IFwKICBfX3JldF84MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTQsIF9fcmV0XzgxNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaHJkX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnNocmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzaHJkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNocmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTMyKF9fcDBfODE1LCBfX3AxXzgxNSwgX19wMl84MTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF84MTUgPSBfX3AwXzgxNTsgXAogIHVpbnQzMng0X3QgX19zMV84MTUgPSBfX3AxXzgxNTsgXAogIHVpbnQxNng4X3QgX19yZXRfODE1OyBcCiAgX19yZXRfODE1ID0gKHVpbnQxNng4X3QpKHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19zMF84MTUpLCAodWludDE2eDRfdCkodnNocm5fbl91MzIoX19zMV84MTUsIF9fcDJfODE1KSkpKTsgXAogIF9fcmV0XzgxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl91MzIoX19wMF84MTYsIF9fcDFfODE2LCBfX3AyXzgxNikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzgxNiA9IF9fcDBfODE2OyBcCiAgdWludDMyeDRfdCBfX3MxXzgxNiA9IF9fcDFfODE2OyBcCiAgdWludDE2eDRfdCBfX3JldjBfODE2OyAgX19yZXYwXzgxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODE2LCBfX3MwXzgxNiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV84MTY7ICBfX3JldjFfODE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MTYsIF9fczFfODE2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODE2OyBcCiAgX19yZXRfODE2ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzgxNiksICh1aW50MTZ4NF90KShfX25vc3dhcF92c2hybl9uX3UzMihfX3JldjFfODE2LCBfX3AyXzgxNikpKSk7IFwKICBfX3JldF84MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTYsIF9fcmV0XzgxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTY0KF9fcDBfODE3LCBfX3AxXzgxNywgX19wMl84MTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF84MTcgPSBfX3AwXzgxNzsgXAogIHVpbnQ2NHgyX3QgX19zMV84MTcgPSBfX3AxXzgxNzsgXAogIHVpbnQzMng0X3QgX19yZXRfODE3OyBcCiAgX19yZXRfODE3ID0gKHVpbnQzMng0X3QpKHZjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19zMF84MTcpLCAodWludDMyeDJfdCkodnNocm5fbl91NjQoX19zMV84MTcsIF9fcDJfODE3KSkpKTsgXAogIF9fcmV0XzgxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl91NjQoX19wMF84MTgsIF9fcDFfODE4LCBfX3AyXzgxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzgxOCA9IF9fcDBfODE4OyBcCiAgdWludDY0eDJfdCBfX3MxXzgxOCA9IF9fcDFfODE4OyBcCiAgdWludDMyeDJfdCBfX3JldjBfODE4OyAgX19yZXYwXzgxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODE4LCBfX3MwXzgxOCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MV84MTg7ICBfX3JldjFfODE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MTgsIF9fczFfODE4LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfODE4OyBcCiAgX19yZXRfODE4ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19yZXYwXzgxOCksICh1aW50MzJ4Ml90KShfX25vc3dhcF92c2hybl9uX3U2NChfX3JldjFfODE4LCBfX3AyXzgxOCkpKSk7IFwKICBfX3JldF84MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTgsIF9fcmV0XzgxOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTE2KF9fcDBfODE5LCBfX3AxXzgxOSwgX19wMl84MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzgxOSA9IF9fcDBfODE5OyBcCiAgdWludDE2eDhfdCBfX3MxXzgxOSA9IF9fcDFfODE5OyBcCiAgdWludDh4MTZfdCBfX3JldF84MTk7IFwKICBfX3JldF84MTkgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF84MTkpLCAodWludDh4OF90KSh2c2hybl9uX3UxNihfX3MxXzgxOSwgX19wMl84MTkpKSkpOyBcCiAgX19yZXRfODE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5faGlnaF9uX3UxNihfX3AwXzgyMCwgX19wMV84MjAsIF9fcDJfODIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF84MjAgPSBfX3AwXzgyMDsgXAogIHVpbnQxNng4X3QgX19zMV84MjAgPSBfX3AxXzgyMDsgXAogIHVpbnQ4eDhfdCBfX3JldjBfODIwOyAgX19yZXYwXzgyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODIwLCBfX3MwXzgyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV84MjA7ICBfX3JldjFfODIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MjAsIF9fczFfODIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfODIwOyBcCiAgX19yZXRfODIwID0gKHVpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3U4KCh1aW50OHg4X3QpKF9fcmV2MF84MjApLCAodWludDh4OF90KShfX25vc3dhcF92c2hybl9uX3UxNihfX3JldjFfODIwLCBfX3AyXzgyMCkpKSk7IFwKICBfX3JldF84MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MjAsIF9fcmV0XzgyMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fczMyKF9fcDBfODIxLCBfX3AxXzgyMSwgX19wMl84MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzgyMSA9IF9fcDBfODIxOyBcCiAgaW50MzJ4NF90IF9fczFfODIxID0gX19wMV84MjE7IFwKICBpbnQxNng4X3QgX19yZXRfODIxOyBcCiAgX19yZXRfODIxID0gKGludDE2eDhfdCkodmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fczBfODIxKSwgKGludDE2eDRfdCkodnNocm5fbl9zMzIoX19zMV84MjEsIF9fcDJfODIxKSkpKTsgXAogIF9fcmV0XzgyMTsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl9zMzIoX19wMF84MjIsIF9fcDFfODIyLCBfX3AyXzgyMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfODIyID0gX19wMF84MjI7IFwKICBpbnQzMng0X3QgX19zMV84MjIgPSBfX3AxXzgyMjsgXAogIGludDE2eDRfdCBfX3JldjBfODIyOyAgX19yZXYwXzgyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODIyLCBfX3MwXzgyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzgyMjsgIF9fcmV2MV84MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgyMiwgX19zMV84MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzgyMjsgXAogIF9fcmV0XzgyMiA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfODIyKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnNocm5fbl9zMzIoX19yZXYxXzgyMiwgX19wMl84MjIpKSkpOyBcCiAgX19yZXRfODIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODIyLCBfX3JldF84MjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocm5faGlnaF9uX3M2NChfX3AwXzgyMywgX19wMV84MjMsIF9fcDJfODIzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF84MjMgPSBfX3AwXzgyMzsgXAogIGludDY0eDJfdCBfX3MxXzgyMyA9IF9fcDFfODIzOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgyMzsgXAogIF9fcmV0XzgyMyA9IChpbnQzMng0X3QpKHZjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3MwXzgyMyksIChpbnQzMngyX3QpKHZzaHJuX25fczY0KF9fczFfODIzLCBfX3AyXzgyMykpKSk7IFwKICBfX3JldF84MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9oaWdoX25fczY0KF9fcDBfODI0LCBfX3AxXzgyNCwgX19wMl84MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgyNCA9IF9fcDBfODI0OyBcCiAgaW50NjR4Ml90IF9fczFfODI0ID0gX19wMV84MjQ7IFwKICBpbnQzMngyX3QgX19yZXYwXzgyNDsgIF9fcmV2MF84MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgyNCwgX19zMF84MjQsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MV84MjQ7ICBfX3JldjFfODI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MjQsIF9fczFfODI0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84MjQ7IFwKICBfX3JldF84MjQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19yZXYwXzgyNCksIChpbnQzMngyX3QpKF9fbm9zd2FwX3ZzaHJuX25fczY0KF9fcmV2MV84MjQsIF9fcDJfODI0KSkpKTsgXAogIF9fcmV0XzgyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgyNCwgX19yZXRfODI0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgyNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJuX2hpZ2hfbl9zMTYoX19wMF84MjUsIF9fcDFfODI1LCBfX3AyXzgyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF84MjUgPSBfX3AwXzgyNTsgXAogIGludDE2eDhfdCBfX3MxXzgyNSA9IF9fcDFfODI1OyBcCiAgaW50OHgxNl90IF9fcmV0XzgyNTsgXAogIF9fcmV0XzgyNSA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF84MjUpLCAoaW50OHg4X3QpKHZzaHJuX25fczE2KF9fczFfODI1LCBfX3AyXzgyNSkpKSk7IFwKICBfX3JldF84MjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9oaWdoX25fczE2KF9fcDBfODI2LCBfX3AxXzgyNiwgX19wMl84MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfODI2ID0gX19wMF84MjY7IFwKICBpbnQxNng4X3QgX19zMV84MjYgPSBfX3AxXzgyNjsgXAogIGludDh4OF90IF9fcmV2MF84MjY7ICBfX3JldjBfODI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MjYsIF9fczBfODI2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfODI2OyAgX19yZXYxXzgyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODI2LCBfX3MxXzgyNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfODI2OyBcCiAgX19yZXRfODI2ID0gKGludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfczgoKGludDh4OF90KShfX3JldjBfODI2KSwgKGludDh4OF90KShfX25vc3dhcF92c2hybl9uX3MxNihfX3JldjFfODI2LCBfX3AyXzgyNikpKSk7IFwKICBfX3JldF84MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MjYsIF9fcmV0XzgyNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNsaWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNsaWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzbGlfbl9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKX19haSB1aW50OF90IHZzcWFkZGJfdTgodWludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdnNxYWRkYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2c3FhZGRzX3UzMih1aW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnNxYWRkc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnNxYWRkZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZzcWFkZGhfdTE2KHVpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3FhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnNxYWRkcV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNxYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c3FhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNxYWRkcV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3FhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnNxYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3FhZGRxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c3FhZGRfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnNxYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2c3FhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnNxYWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2c3FhZGRfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZzcWFkZF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2c3FhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnNxcnRxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZzcXJ0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2c3FydHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnNxcnRxX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnNxcnRxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnNxcnRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnNxcnRfdigoaW50OHg4X3QpX19wMCwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2c3FydF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydF92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2c3FydF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZGVmaW5lIHZzcmFkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3JhZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNyYWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNyYWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzcmlkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNyaWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNyaWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzcmlfbl9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA2KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCAzOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2Y2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9mNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0MV9wNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjY0X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX2Y2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDEwKTsgXAp9KQojZGVmaW5lIHZzdDFfcDY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2Y2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0Mik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfZjY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QyX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM1KTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0Ml9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0Ml9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDJfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE5KTsgXAp9KQojZGVmaW5lIHZzdDJfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QyX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDMpOyBcCn0pCiNkZWZpbmUgdnN0M19wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA2KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Mik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTkpOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTApOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDMpOyBcCn0pCiNkZWZpbmUgdnN0NF9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxMCk7IFwKfSkKI2RlZmluZSB2c3Q0X2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM1KTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0NF9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE5KTsgXAp9KQojZGVmaW5lIHZzdDRfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTApOyBcCn0pCiNkZWZpbmUgdnN0NF9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMyk7IFwKfSkKI2RlZmluZSB2c3RycV9wMTI4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxMjhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdHJxX3AxMjgoX19wMCwgX19zMSk7IFwKfSkKX19haSB1aW50NjRfdCB2c3ViZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2c3ViZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnN1YnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZzdWJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnN1Yl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTE2KF9fcDAsIHZzdWJobl91MzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3UzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2c3ViaG5fdTY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UzMihfX3JldjAsIF9fbm9zd2FwX3ZzdWJobl91NjQoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZzdWJobl91MTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnN1YmhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3UxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnN1YmhuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMTYoX19wMCwgdnN1YmhuX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3MzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YmhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMzIoX19wMCwgdnN1YmhuX3M2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJobl9oaWdoX3M2NChpbnQzMngyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEsIGludDY0eDJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczMyKF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3M2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnN1YmhuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3M4KF9fcDAsIHZzdWJobl9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2c3ViaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZzdWJobl9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2c3VibF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTgoX19wMCkgLSB2bW92bF9oaWdoX3U4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YmxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZzdWJsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTMyKF9fcDApIC0gdm1vdmxfaGlnaF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3VibF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91MzIoX19yZXYwKSAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnN1YmxfaGlnaF91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF91MTYoX19wMCkgLSB2bW92bF9oaWdoX3UxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3UxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zOChfX3AwKSAtIHZtb3ZsX2hpZ2hfczgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzdWJsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2c3VibF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3MzMihfX3AwKSAtIHZtb3ZsX2hpZ2hfczMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2c3VibF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczMyKF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zMTYoX19wMCkgLSB2bW92bF9oaWdoX3MxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnN1YmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3MxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF9zMTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2c3Vid19oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3U4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YndfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZzdWJ3X2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3UzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZzdWJ3X2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJ3X2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3UxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJ3X2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3UxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnN1YndfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfaGlnaF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YndfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZzdWJ3X2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnN1YndfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YndfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtb3ZsX2hpZ2hfczE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c3Vid19oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdWRvdHFfbGFuZXFfczMyKF9fcDBfODI3LCBfX3AxXzgyNywgX19wMl84MjcsIF9fcDNfODI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84MjcgPSBfX3AwXzgyNzsgXAogIGludDh4MTZfdCBfX3MxXzgyNyA9IF9fcDFfODI3OyBcCiAgdWludDh4MTZfdCBfX3MyXzgyNyA9IF9fcDJfODI3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzgyNzsgXAp1aW50OHgxNl90IF9fcmVpbnRfODI3ID0gX19zMl84Mjc7IFwKICBfX3JldF84MjcgPSB2dXNkb3RxX3MzMihfX3MwXzgyNywgKHVpbnQ4eDE2X3QpKHNwbGF0cV9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfODI3LCBfX3AzXzgyNykpLCBfX3MxXzgyNyk7IFwKICBfX3JldF84Mjc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Vkb3RxX2xhbmVxX3MzMihfX3AwXzgyOCwgX19wMV84MjgsIF9fcDJfODI4LCBfX3AzXzgyOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODI4ID0gX19wMF84Mjg7IFwKICBpbnQ4eDE2X3QgX19zMV84MjggPSBfX3AxXzgyODsgXAogIHVpbnQ4eDE2X3QgX19zMl84MjggPSBfX3AyXzgyODsgXAogIGludDMyeDRfdCBfX3JldjBfODI4OyAgX19yZXYwXzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODI4LCBfX3MwXzgyOCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxXzgyODsgIF9fcmV2MV84MjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgyOCwgX19zMV84MjgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjJfODI4OyAgX19yZXYyXzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODI4LCBfX3MyXzgyOCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfODI4OyBcCnVpbnQ4eDE2X3QgX19yZWludF84MjggPSBfX3JldjJfODI4OyBcCiAgX19yZXRfODI4ID0gX19ub3N3YXBfdnVzZG90cV9zMzIoX19yZXYwXzgyOCwgKHVpbnQ4eDE2X3QpKF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfODI4LCBfX3AzXzgyOCkpLCBfX3JldjFfODI4KTsgXAogIF9fcmV0XzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgyOCwgX19yZXRfODI4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgyODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdWRvdF9sYW5lcV9zMzIoX19wMF84MjksIF9fcDFfODI5LCBfX3AyXzgyOSwgX19wM184MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgyOSA9IF9fcDBfODI5OyBcCiAgaW50OHg4X3QgX19zMV84MjkgPSBfX3AxXzgyOTsgXAogIHVpbnQ4eDE2X3QgX19zMl84MjkgPSBfX3AyXzgyOTsgXAogIGludDMyeDJfdCBfX3JldF84Mjk7IFwKdWludDh4MTZfdCBfX3JlaW50XzgyOSA9IF9fczJfODI5OyBcCiAgX19yZXRfODI5ID0gdnVzZG90X3MzMihfX3MwXzgyOSwgKHVpbnQ4eDhfdCkoc3BsYXRfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzgyOSwgX19wM184MjkpKSwgX19zMV84MjkpOyBcCiAgX19yZXRfODI5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN1ZG90X2xhbmVxX3MzMihfX3AwXzgzMCwgX19wMV84MzAsIF9fcDJfODMwLCBfX3AzXzgzMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODMwID0gX19wMF84MzA7IFwKICBpbnQ4eDhfdCBfX3MxXzgzMCA9IF9fcDFfODMwOyBcCiAgdWludDh4MTZfdCBfX3MyXzgzMCA9IF9fcDJfODMwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF84MzA7ICBfX3JldjBfODMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzAsIF9fczBfODMwLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV2MV84MzA7ICBfX3JldjFfODMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MzAsIF9fczFfODMwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYyXzgzMDsgIF9fcmV2Ml84MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzMCwgX19zMl84MzAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzMDsgXAp1aW50OHgxNl90IF9fcmVpbnRfODMwID0gX19yZXYyXzgzMDsgXAogIF9fcmV0XzgzMCA9IF9fbm9zd2FwX3Z1c2RvdF9zMzIoX19yZXYwXzgzMCwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzgzMCwgX19wM184MzApKSwgX19yZXYxXzgzMCk7IFwKICBfX3JldF84MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MzAsIF9fcmV0XzgzMCwgMSwgMCk7IFwKICBfX3JldF84MzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRybjFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0cm4xX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZ0cm4xX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZ0cm4xX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZ0cm4xcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnRybjFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMTYsIDIsIDE4LCA0LCAyMCwgNiwgMjIsIDgsIDI0LCAxMCwgMjYsIDEyLCAyOCwgMTQsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2dHJuMXFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdnRybjFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZ0cm4xcV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2dHJuMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRybjFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAyLCAxOCwgNCwgMjAsIDYsIDIyLCA4LCAyNCwgMTAsIDI2LCAxMiwgMjgsIDE0LCAzMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2dHJuMXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZ0cm4xcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMiwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2dHJuMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMiwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnRybjFxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZ0cm4xcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2dHJuMXFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnRybjFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnRybjFxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAyLCAxOCwgNCwgMjAsIDYsIDIyLCA4LCAyNCwgMTAsIDI2LCAxMiwgMjgsIDE0LCAzMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ0cm4xcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2dHJuMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZ0cm4xcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2dHJuMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDIsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZ0cm4xcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnRybjFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnRybjFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAyLCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ0cm4xcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZ0cm4xcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2dHJuMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2dHJuMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRybjFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0cm4xX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZ0cm4xX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZ0cm4xX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0cm4xX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZ0cm4xX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dHJuMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dHJuMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZ0cm4xX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2dHJuMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnRybjFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2dHJuMV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2dHJuMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMiwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZ0cm4xX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAyLCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0cm4yX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dHJuMl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2dHJuMl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2dHJuMl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2dHJuMnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ0cm4ycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDE3LCAzLCAxOSwgNSwgMjEsIDcsIDIzLCA5LCAyNSwgMTEsIDI3LCAxMywgMjksIDE1LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnRybjJxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ0cm4ycV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2dHJuMnFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnRybjJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ0cm4ycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAxNywgMywgMTksIDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnRybjJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dHJuMnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDUsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnRybjJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDUsIDMsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ0cm4ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2dHJuMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnRybjJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0cm4ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ0cm4ycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAxNywgMywgMTksIDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2dHJuMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnRybjJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2dHJuMnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnRybjJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA1LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2dHJuMnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ0cm4ycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ0cm4ycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgNSwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2dHJuMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2dHJuMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnRybjJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnRybjJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0cm4yX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dHJuMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dHJuMl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dHJuMl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dHJuMl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHJuMl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRybjJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgOSwgMywgMTEsIDUsIDEzLCA3LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRybjJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2dHJuMl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnRybjJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ0cm4yX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnRybjJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnRybjJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDUsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2dHJuMl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgNSwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2dHN0X3A2NChwb2x5NjR4MV90IF9fcDAsIHBvbHk2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ0c3RxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2dHN0cV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZ0c3RxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdnRzdF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZ0c3RfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZ0c3RkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2dHN0ZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnRzdGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDhfdCB2dXFhZGRiX3M4KGludDhfdCBfX3AwLCB1aW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRiX3M4KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnVxYWRkc19zMzIoaW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZ1cWFkZGRfczY0KGludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnVxYWRkZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZfdCB2dXFhZGRoX3MxNihpbnQxNl90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnVxYWRkcV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnVxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ1cWFkZHFfczgoaW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1cWFkZHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ1cWFkZHFfczY0KGludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnVxYWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZ1cWFkZHFfczE2KGludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnVxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnVxYWRkX3M4KGludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnVxYWRkX3M4KGludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ1cWFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZ1cWFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2dXFhZGRfczY0KGludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnVxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnVxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnVxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnVxYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ1c2RvdHFfbGFuZXFfczMyKF9fcDBfODMxLCBfX3AxXzgzMSwgX19wMl84MzEsIF9fcDNfODMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84MzEgPSBfX3AwXzgzMTsgXAogIHVpbnQ4eDE2X3QgX19zMV84MzEgPSBfX3AxXzgzMTsgXAogIGludDh4MTZfdCBfX3MyXzgzMSA9IF9fcDJfODMxOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgzMTsgXAppbnQ4eDE2X3QgX19yZWludF84MzEgPSBfX3MyXzgzMTsgXAogIF9fcmV0XzgzMSA9IHZ1c2RvdHFfczMyKF9fczBfODMxLCBfX3MxXzgzMSwgKGludDh4MTZfdCkoc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzEsIF9fcDNfODMxKSkpOyBcCiAgX19yZXRfODMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90cV9sYW5lcV9zMzIoX19wMF84MzIsIF9fcDFfODMyLCBfX3AyXzgzMiwgX19wM184MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzgzMiA9IF9fcDBfODMyOyBcCiAgdWludDh4MTZfdCBfX3MxXzgzMiA9IF9fcDFfODMyOyBcCiAgaW50OHgxNl90IF9fczJfODMyID0gX19wMl84MzI7IFwKICBpbnQzMng0X3QgX19yZXYwXzgzMjsgIF9fcmV2MF84MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgzMiwgX19zMF84MzIsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjFfODMyOyAgX19yZXYxXzgzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODMyLCBfX3MxXzgzMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzgzMjsgIF9fcmV2Ml84MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzMiwgX19zMl84MzIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgzMjsgXAppbnQ4eDE2X3QgX19yZWludF84MzIgPSBfX3JldjJfODMyOyBcCiAgX19yZXRfODMyID0gX19ub3N3YXBfdnVzZG90cV9zMzIoX19yZXYwXzgzMiwgX19yZXYxXzgzMiwgKGludDh4MTZfdCkoX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzIsIF9fcDNfODMyKSkpOyBcCiAgX19yZXRfODMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODMyLCBfX3JldF84MzIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnVzZG90X2xhbmVxX3MzMihfX3AwXzgzMywgX19wMV84MzMsIF9fcDJfODMzLCBfX3AzXzgzMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODMzID0gX19wMF84MzM7IFwKICB1aW50OHg4X3QgX19zMV84MzMgPSBfX3AxXzgzMzsgXAogIGludDh4MTZfdCBfX3MyXzgzMyA9IF9fcDJfODMzOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzMzsgXAppbnQ4eDE2X3QgX19yZWludF84MzMgPSBfX3MyXzgzMzsgXAogIF9fcmV0XzgzMyA9IHZ1c2RvdF9zMzIoX19zMF84MzMsIF9fczFfODMzLCAoaW50OHg4X3QpKHNwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzMsIF9fcDNfODMzKSkpOyBcCiAgX19yZXRfODMzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90X2xhbmVxX3MzMihfX3AwXzgzNCwgX19wMV84MzQsIF9fcDJfODM0LCBfX3AzXzgzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODM0ID0gX19wMF84MzQ7IFwKICB1aW50OHg4X3QgX19zMV84MzQgPSBfX3AxXzgzNDsgXAogIGludDh4MTZfdCBfX3MyXzgzNCA9IF9fcDJfODM0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF84MzQ7ICBfX3JldjBfODM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzQsIF9fczBfODM0LCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjFfODM0OyAgX19yZXYxXzgzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODM0LCBfX3MxXzgzNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzgzNDsgIF9fcmV2Ml84MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzNCwgX19zMl84MzQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzNDsgXAppbnQ4eDE2X3QgX19yZWludF84MzQgPSBfX3JldjJfODM0OyBcCiAgX19yZXRfODM0ID0gX19ub3N3YXBfdnVzZG90X3MzMihfX3JldjBfODM0LCBfX3JldjFfODM0LCAoaW50OHg4X3QpKF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzQsIF9fcDNfODM0KSkpOyBcCiAgX19yZXRfODM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODM0LCBfX3JldF84MzQsIDEsIDApOyBcCiAgX19yZXRfODM0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ1enAxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dXpwMV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2dXpwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2dXpwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2dXpwMXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ1enAxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAzMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnV6cDFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ1enAxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2dXpwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnV6cDFxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ1enAxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnV6cDFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dXpwMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnV6cDFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ1enAxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2dXpwMXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnV6cDFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ1enAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ1enAxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2dXpwMXFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnV6cDFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2dXpwMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnV6cDFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2dXpwMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1enAxcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ1enAxcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2dXpwMXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2dXpwMXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnV6cDFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnV6cDFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ1enAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dXpwMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dXpwMV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dXpwMV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dXpwMV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dXpwMV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnV6cDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnV6cDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2dXpwMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnV6cDFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ1enAxX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnV6cDFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnV6cDFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2dXpwMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dXpwMl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnV6cDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdnV6cDJfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdnV6cDJfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnV6cDJxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2dXpwMnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1LCAxNywgMTksIDIxLCAyMywgMjUsIDI3LCAyOSwgMzEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5NjR4Ml90IHZ1enAycV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2dXpwMnFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdnV6cDJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZ1enAycV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2dXpwMnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSwgMTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ1enAycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnV6cDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ1enAycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2dXpwMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnV6cDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ1enAycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2dXpwMnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2dXpwMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSwgMTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnV6cDJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZ1enAycV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnV6cDJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZ1enAycV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnV6cDJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2dXpwMnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2dXpwMnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnV6cDJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnV6cDJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZ1enAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ1enAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dXpwMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnV6cDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnV6cDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnV6cDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnV6cDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnV6cDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ1enAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ1enAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnV6cDJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZ1enAyX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2dXpwMl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZ1enAyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZ1enAyX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnV6cDJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnppcDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnppcDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2emlwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2emlwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2emlwMXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ6aXAxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnppcDFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ6aXAxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2emlwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2emlwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2emlwMXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ6aXAxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnppcDFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ6aXAxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2emlwMXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnppcDFxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ6aXAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ6aXAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA4LCAxLCA5LCAyLCAxMCwgMywgMTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnppcDFxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ6aXAxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMSwgMTcsIDIsIDE4LCAzLCAxOSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2emlwMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZ6aXAxcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2emlwMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZ6aXAxcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDEsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnppcDFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnppcDFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ6aXAxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZ6aXAxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2emlwMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ6aXAxcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ6aXAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ6aXAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnppcDFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnppcDFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnppcDFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnppcDFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMSwgNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ6aXAxX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnppcDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZ6aXAxX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2emlwMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnppcDFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2emlwMV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2emlwMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZ6aXAxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ6aXAyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnppcDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZ6aXAyX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZ6aXAyX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDIsIDYsIDMsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZ6aXAycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnppcDJxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2emlwMnFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdnppcDJxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZ6aXAycV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnppcDJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2emlwMnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ6aXAycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnppcDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ6aXAycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAyLCA2LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2emlwMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnppcDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ6aXAycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnppcDJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ6aXAycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2emlwMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnppcDJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2emlwMnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnppcDJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2emlwMnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAyLCA2LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ6aXAycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMiwgNiwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ6aXAycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2emlwMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2emlwMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnppcDJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ6aXAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnppcDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2emlwMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCA0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnppcDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnppcDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnppcDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnppcDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ6aXAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2emlwMl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2emlwMl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnppcDJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ6aXAyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnppcDJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnppcDJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2emlwMl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhYmFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3U4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmFiYXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkcV91OChfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFiYXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3UzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZhYmFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3UzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFiYXFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3UxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhYmFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3UxNihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3M4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2YWJhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZHFfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFiYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZHFfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3MzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkcV9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhYmFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZHFfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZhYmFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkX3U4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YWJhX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3U4KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWJhX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkX3UzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZhYmFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZhYmFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFiYV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3UxNihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZhYmFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFiYV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3M4KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhYmFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZF9zMzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZhYmFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3MzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWJhX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfczE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWJhX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZF9zMTYoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZhYmRsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkodm1vdmxfdTgoKHVpbnQ4eDhfdCkodmFiZF91OChfX3AwLCBfX3AxKSkpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhYmRsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX25vc3dhcF92bW92bF91OCgodWludDh4OF90KShfX25vc3dhcF92YWJkX3U4KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92YWJkbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Ztb3ZsX3U4KCh1aW50OHg4X3QpKF9fbm9zd2FwX3ZhYmRfdTgoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKHZtb3ZsX3UzMigodWludDMyeDJfdCkodmFiZF91MzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX25vc3dhcF92bW92bF91MzIoKHVpbnQzMngyX3QpKF9fbm9zd2FwX3ZhYmRfdTMyKF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF91MzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKHZtb3ZsX3UxNigodWludDE2eDRfdCkodmFiZF91MTYoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfdTE2KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Ztb3ZsX3UxNigodWludDE2eDRfdCkoX19ub3N3YXBfdmFiZF91MTYoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhYmRsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSh2bW92bF91OCgodWludDh4OF90KSh2YWJkX3M4KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdm1vdmxfdTgoKHVpbnQ4eDhfdCkoX19ub3N3YXBfdmFiZF9zOChfX3JldjAsIF9fcmV2MSkpKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92YWJkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdm1vdmxfdTgoKHVpbnQ4eDhfdCkoX19ub3N3YXBfdmFiZF9zOChfX3AwLCBfX3AxKSkpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFiZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKHZtb3ZsX3UzMigodWludDMyeDJfdCkodmFiZF9zMzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhYmRsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF9zMzIoX19yZXYwLCBfX3JldjEpKSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdmFiZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF9zMzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhYmRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSh2bW92bF91MTYoKHVpbnQxNng0X3QpKHZhYmRfczE2KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJkbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfczE2KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZhYmRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfczE2KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZGxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3U4KF9fcDApICsgdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91OChfX3JldjApICsgX19ub3N3YXBfdm1vdmxfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfdTMyKF9fcDApICsgdm1vdmxfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91MzIoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGRsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF91MTYoX19wMCkgKyB2bW92bF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3UxNihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfczgoX19wMCkgKyB2bW92bF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3M4KF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3MzMihfX3AwKSArIHZtb3ZsX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFkZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfczMyKF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9zMTYoX19wMCkgKyB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHdfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkd191OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3U4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFkZHdfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWRkd191MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGR3X3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfdTE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZHdfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGR3X3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtb3ZsX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWRkd19zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZHdfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGR3X3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFkZHdfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGR3X3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfZjE2KF9fcDBfODM1LCBfX3AxXzgzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF84MzUgPSBfX3AwXzgzNTsgXAogIGZsb2F0MTZfdCBfX3JldF84MzU7IFwKZmxvYXQxNng0X3QgX19yZWludF84MzUgPSBfX3MwXzgzNTsgXAppbnQxNl90IF9fcmVpbnQxXzgzNSA9IHZnZXRfbGFuZV9zMTYoKihpbnQxNng0X3QgKikgJl9fcmVpbnRfODM1LCBfX3AxXzgzNSk7IFwKICBfX3JldF84MzUgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM1OyBcCiAgX19yZXRfODM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX2YxNihfX3AwXzgzNiwgX19wMV84MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfODM2ID0gX19wMF84MzY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfODM2OyAgX19yZXYwXzgzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODM2LCBfX3MwXzgzNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfODM2OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfODM2ID0gX19yZXYwXzgzNjsgXAppbnQxNl90IF9fcmVpbnQxXzgzNiA9IF9fbm9zd2FwX3ZnZXRfbGFuZV9zMTYoKihpbnQxNng0X3QgKikgJl9fcmVpbnRfODM2LCBfX3AxXzgzNik7IFwKICBfX3JldF84MzYgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM2OyBcCiAgX19yZXRfODM2OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3AwXzgzNywgX19wMV84MzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfODM3ID0gX19wMF84Mzc7IFwKICBmbG9hdDE2X3QgX19yZXRfODM3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfODM3ID0gX19zMF84Mzc7IFwKaW50MTZfdCBfX3JlaW50MV84MzcgPSBfX25vc3dhcF92Z2V0X2xhbmVfczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzgzNywgX19wMV84MzcpOyBcCiAgX19yZXRfODM3ID0gKihmbG9hdDE2X3QgKikgJl9fcmVpbnQxXzgzNzsgXAogIF9fcmV0XzgzNzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfZjE2KF9fcDBfODM4LCBfX3AxXzgzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF84MzggPSBfX3AwXzgzODsgXAogIGZsb2F0MTZfdCBfX3JldF84Mzg7IFwKZmxvYXQxNng4X3QgX19yZWludF84MzggPSBfX3MwXzgzODsgXAppbnQxNl90IF9fcmVpbnQxXzgzOCA9IHZnZXRxX2xhbmVfczE2KCooaW50MTZ4OF90ICopICZfX3JlaW50XzgzOCwgX19wMV84MzgpOyBcCiAgX19yZXRfODM4ID0gKihmbG9hdDE2X3QgKikgJl9fcmVpbnQxXzgzODsgXAogIF9fcmV0XzgzODsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfZjE2KF9fcDBfODM5LCBfX3AxXzgzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF84MzkgPSBfX3AwXzgzOTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF84Mzk7ICBfX3JldjBfODM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzksIF9fczBfODM5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF84Mzk7IFwKZmxvYXQxNng4X3QgX19yZWludF84MzkgPSBfX3JldjBfODM5OyBcCmludDE2X3QgX19yZWludDFfODM5ID0gX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoKihpbnQxNng4X3QgKikgJl9fcmVpbnRfODM5LCBfX3AxXzgzOSk7IFwKICBfX3JldF84MzkgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM5OyBcCiAgX19yZXRfODM5OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19wMF84NDAsIF9fcDFfODQwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzg0MCA9IF9fcDBfODQwOyBcCiAgZmxvYXQxNl90IF9fcmV0Xzg0MDsgXApmbG9hdDE2eDhfdCBfX3JlaW50Xzg0MCA9IF9fczBfODQwOyBcCmludDE2X3QgX19yZWludDFfODQwID0gX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoKihpbnQxNng4X3QgKikgJl9fcmVpbnRfODQwLCBfX3AxXzg0MCk7IFwKICBfX3JldF84NDAgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODQwOyBcCiAgX19yZXRfODQwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZtbGFsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbGFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxhbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZtbGFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxhbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1sYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbGFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3UzMihfX3AwXzg0MSwgX19wMV84NDEsIF9fcDJfODQxLCBfX3AzXzg0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0MSA9IF9fcDBfODQxOyBcCiAgdWludDMyeDJfdCBfX3MxXzg0MSA9IF9fcDFfODQxOyBcCiAgdWludDMyeDJfdCBfX3MyXzg0MSA9IF9fcDJfODQxOyBcCiAgdWludDY0eDJfdCBfX3JldF84NDE7IFwKICBfX3JldF84NDEgPSBfX3MwXzg0MSArIHZtdWxsX3UzMihfX3MxXzg0MSwgc3BsYXRfbGFuZV91MzIoX19zMl84NDEsIF9fcDNfODQxKSk7IFwKICBfX3JldF84NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3UzMihfX3AwXzg0MiwgX19wMV84NDIsIF9fcDJfODQyLCBfX3AzXzg0MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0MiA9IF9fcDBfODQyOyBcCiAgdWludDMyeDJfdCBfX3MxXzg0MiA9IF9fcDFfODQyOyBcCiAgdWludDMyeDJfdCBfX3MyXzg0MiA9IF9fcDJfODQyOyBcCiAgdWludDY0eDJfdCBfX3JldjBfODQyOyAgX19yZXYwXzg0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODQyLCBfX3MwXzg0MiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84NDI7ICBfX3JldjFfODQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDIsIF9fczFfODQyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzg0MjsgIF9fcmV2Ml84NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0MiwgX19zMl84NDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84NDI7IFwKICBfX3JldF84NDIgPSBfX3JldjBfODQyICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV84NDIsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml84NDIsIF9fcDNfODQyKSk7IFwKICBfX3JldF84NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NDIsIF9fcmV0Xzg0MiwgMSwgMCk7IFwKICBfX3JldF84NDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3UxNihfX3AwXzg0MywgX19wMV84NDMsIF9fcDJfODQzLCBfX3AzXzg0MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg0MyA9IF9fcDBfODQzOyBcCiAgdWludDE2eDRfdCBfX3MxXzg0MyA9IF9fcDFfODQzOyBcCiAgdWludDE2eDRfdCBfX3MyXzg0MyA9IF9fcDJfODQzOyBcCiAgdWludDMyeDRfdCBfX3JldF84NDM7IFwKICBfX3JldF84NDMgPSBfX3MwXzg0MyArIHZtdWxsX3UxNihfX3MxXzg0Mywgc3BsYXRfbGFuZV91MTYoX19zMl84NDMsIF9fcDNfODQzKSk7IFwKICBfX3JldF84NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3UxNihfX3AwXzg0NCwgX19wMV84NDQsIF9fcDJfODQ0LCBfX3AzXzg0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg0NCA9IF9fcDBfODQ0OyBcCiAgdWludDE2eDRfdCBfX3MxXzg0NCA9IF9fcDFfODQ0OyBcCiAgdWludDE2eDRfdCBfX3MyXzg0NCA9IF9fcDJfODQ0OyBcCiAgdWludDMyeDRfdCBfX3JldjBfODQ0OyAgX19yZXYwXzg0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODQ0LCBfX3MwXzg0NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV84NDQ7ICBfX3JldjFfODQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDQsIF9fczFfODQ0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzg0NDsgIF9fcmV2Ml84NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0NCwgX19zMl84NDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84NDQ7IFwKICBfX3JldF84NDQgPSBfX3JldjBfODQ0ICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV84NDQsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml84NDQsIF9fcDNfODQ0KSk7IFwKICBfX3JldF84NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NDQsIF9fcmV0Xzg0NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3MzMihfX3AwXzg0NSwgX19wMV84NDUsIF9fcDJfODQ1LCBfX3AzXzg0NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfODQ1ID0gX19wMF84NDU7IFwKICBpbnQzMngyX3QgX19zMV84NDUgPSBfX3AxXzg0NTsgXAogIGludDMyeDJfdCBfX3MyXzg0NSA9IF9fcDJfODQ1OyBcCiAgaW50NjR4Ml90IF9fcmV0Xzg0NTsgXAogIF9fcmV0Xzg0NSA9IF9fczBfODQ1ICsgdm11bGxfczMyKF9fczFfODQ1LCBzcGxhdF9sYW5lX3MzMihfX3MyXzg0NSwgX19wM184NDUpKTsgXAogIF9fcmV0Xzg0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVfczMyKF9fcDBfODQ2LCBfX3AxXzg0NiwgX19wMl84NDYsIF9fcDNfODQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF84NDYgPSBfX3AwXzg0NjsgXAogIGludDMyeDJfdCBfX3MxXzg0NiA9IF9fcDFfODQ2OyBcCiAgaW50MzJ4Ml90IF9fczJfODQ2ID0gX19wMl84NDY7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzg0NjsgIF9fcmV2MF84NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg0NiwgX19zMF84NDYsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV84NDY7ICBfX3JldjFfODQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDYsIF9fczFfODQ2LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfODQ2OyAgX19yZXYyXzg0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODQ2LCBfX3MyXzg0NiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfODQ2OyBcCiAgX19yZXRfODQ2ID0gX19yZXYwXzg0NiArIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjFfODQ2LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfODQ2LCBfX3AzXzg0NikpOyBcCiAgX19yZXRfODQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODQ2LCBfX3JldF84NDYsIDEsIDApOyBcCiAgX19yZXRfODQ2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZV9zMTYoX19wMF84NDcsIF9fcDFfODQ3LCBfX3AyXzg0NywgX19wM184NDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg0NyA9IF9fcDBfODQ3OyBcCiAgaW50MTZ4NF90IF9fczFfODQ3ID0gX19wMV84NDc7IFwKICBpbnQxNng0X3QgX19zMl84NDcgPSBfX3AyXzg0NzsgXAogIGludDMyeDRfdCBfX3JldF84NDc7IFwKICBfX3JldF84NDcgPSBfX3MwXzg0NyArIHZtdWxsX3MxNihfX3MxXzg0Nywgc3BsYXRfbGFuZV9zMTYoX19zMl84NDcsIF9fcDNfODQ3KSk7IFwKICBfX3JldF84NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3MxNihfX3AwXzg0OCwgX19wMV84NDgsIF9fcDJfODQ4LCBfX3AzXzg0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODQ4ID0gX19wMF84NDg7IFwKICBpbnQxNng0X3QgX19zMV84NDggPSBfX3AxXzg0ODsgXAogIGludDE2eDRfdCBfX3MyXzg0OCA9IF9fcDJfODQ4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF84NDg7ICBfX3JldjBfODQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NDgsIF9fczBfODQ4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfODQ4OyAgX19yZXYxXzg0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODQ4LCBfX3MxXzg0OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzg0ODsgIF9fcmV2Ml84NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0OCwgX19zMl84NDgsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzg0ODsgXAogIF9fcmV0Xzg0OCA9IF9fcmV2MF84NDggKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzg0OCwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzg0OCwgX19wM184NDgpKTsgXAogIF9fcmV0Xzg0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg0OCwgX19yZXRfODQ4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg0ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3UzMihfX3AxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbGFsX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bWxhbF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcDEsICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3UxNihfX3AxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbGFsX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MTYoX19yZXYxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxhbF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxzbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxzbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZtbHNsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbHNsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxzbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZtbHNsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxzbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxzbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sc2xfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1sc2xfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxzbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3UzMihfX3AwXzg0OSwgX19wMV84NDksIF9fcDJfODQ5LCBfX3AzXzg0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0OSA9IF9fcDBfODQ5OyBcCiAgdWludDMyeDJfdCBfX3MxXzg0OSA9IF9fcDFfODQ5OyBcCiAgdWludDMyeDJfdCBfX3MyXzg0OSA9IF9fcDJfODQ5OyBcCiAgdWludDY0eDJfdCBfX3JldF84NDk7IFwKICBfX3JldF84NDkgPSBfX3MwXzg0OSAtIHZtdWxsX3UzMihfX3MxXzg0OSwgc3BsYXRfbGFuZV91MzIoX19zMl84NDksIF9fcDNfODQ5KSk7IFwKICBfX3JldF84NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3UzMihfX3AwXzg1MCwgX19wMV84NTAsIF9fcDJfODUwLCBfX3AzXzg1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg1MCA9IF9fcDBfODUwOyBcCiAgdWludDMyeDJfdCBfX3MxXzg1MCA9IF9fcDFfODUwOyBcCiAgdWludDMyeDJfdCBfX3MyXzg1MCA9IF9fcDJfODUwOyBcCiAgdWludDY0eDJfdCBfX3JldjBfODUwOyAgX19yZXYwXzg1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUwLCBfX3MwXzg1MCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84NTA7ICBfX3JldjFfODUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTAsIF9fczFfODUwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzg1MDsgIF9fcmV2Ml84NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1MCwgX19zMl84NTAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84NTA7IFwKICBfX3JldF84NTAgPSBfX3JldjBfODUwIC0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV84NTAsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml84NTAsIF9fcDNfODUwKSk7IFwKICBfX3JldF84NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTAsIF9fcmV0Xzg1MCwgMSwgMCk7IFwKICBfX3JldF84NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3UxNihfX3AwXzg1MSwgX19wMV84NTEsIF9fcDJfODUxLCBfX3AzXzg1MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg1MSA9IF9fcDBfODUxOyBcCiAgdWludDE2eDRfdCBfX3MxXzg1MSA9IF9fcDFfODUxOyBcCiAgdWludDE2eDRfdCBfX3MyXzg1MSA9IF9fcDJfODUxOyBcCiAgdWludDMyeDRfdCBfX3JldF84NTE7IFwKICBfX3JldF84NTEgPSBfX3MwXzg1MSAtIHZtdWxsX3UxNihfX3MxXzg1MSwgc3BsYXRfbGFuZV91MTYoX19zMl84NTEsIF9fcDNfODUxKSk7IFwKICBfX3JldF84NTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3UxNihfX3AwXzg1MiwgX19wMV84NTIsIF9fcDJfODUyLCBfX3AzXzg1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg1MiA9IF9fcDBfODUyOyBcCiAgdWludDE2eDRfdCBfX3MxXzg1MiA9IF9fcDFfODUyOyBcCiAgdWludDE2eDRfdCBfX3MyXzg1MiA9IF9fcDJfODUyOyBcCiAgdWludDMyeDRfdCBfX3JldjBfODUyOyAgX19yZXYwXzg1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUyLCBfX3MwXzg1MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV84NTI7ICBfX3JldjFfODUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTIsIF9fczFfODUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzg1MjsgIF9fcmV2Ml84NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1MiwgX19zMl84NTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84NTI7IFwKICBfX3JldF84NTIgPSBfX3JldjBfODUyIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV84NTIsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml84NTIsIF9fcDNfODUyKSk7IFwKICBfX3JldF84NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTIsIF9fcmV0Xzg1MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3MzMihfX3AwXzg1MywgX19wMV84NTMsIF9fcDJfODUzLCBfX3AzXzg1MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfODUzID0gX19wMF84NTM7IFwKICBpbnQzMngyX3QgX19zMV84NTMgPSBfX3AxXzg1MzsgXAogIGludDMyeDJfdCBfX3MyXzg1MyA9IF9fcDJfODUzOyBcCiAgaW50NjR4Ml90IF9fcmV0Xzg1MzsgXAogIF9fcmV0Xzg1MyA9IF9fczBfODUzIC0gdm11bGxfczMyKF9fczFfODUzLCBzcGxhdF9sYW5lX3MzMihfX3MyXzg1MywgX19wM184NTMpKTsgXAogIF9fcmV0Xzg1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVfczMyKF9fcDBfODU0LCBfX3AxXzg1NCwgX19wMl84NTQsIF9fcDNfODU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF84NTQgPSBfX3AwXzg1NDsgXAogIGludDMyeDJfdCBfX3MxXzg1NCA9IF9fcDFfODU0OyBcCiAgaW50MzJ4Ml90IF9fczJfODU0ID0gX19wMl84NTQ7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzg1NDsgIF9fcmV2MF84NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg1NCwgX19zMF84NTQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV84NTQ7ICBfX3JldjFfODU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTQsIF9fczFfODU0LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfODU0OyAgX19yZXYyXzg1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODU0LCBfX3MyXzg1NCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfODU0OyBcCiAgX19yZXRfODU0ID0gX19yZXYwXzg1NCAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjFfODU0LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfODU0LCBfX3AzXzg1NCkpOyBcCiAgX19yZXRfODU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODU0LCBfX3JldF84NTQsIDEsIDApOyBcCiAgX19yZXRfODU0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfbGFuZV9zMTYoX19wMF84NTUsIF9fcDFfODU1LCBfX3AyXzg1NSwgX19wM184NTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg1NSA9IF9fcDBfODU1OyBcCiAgaW50MTZ4NF90IF9fczFfODU1ID0gX19wMV84NTU7IFwKICBpbnQxNng0X3QgX19zMl84NTUgPSBfX3AyXzg1NTsgXAogIGludDMyeDRfdCBfX3JldF84NTU7IFwKICBfX3JldF84NTUgPSBfX3MwXzg1NSAtIHZtdWxsX3MxNihfX3MxXzg1NSwgc3BsYXRfbGFuZV9zMTYoX19zMl84NTUsIF9fcDNfODU1KSk7IFwKICBfX3JldF84NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3MxNihfX3AwXzg1NiwgX19wMV84NTYsIF9fcDJfODU2LCBfX3AzXzg1NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODU2ID0gX19wMF84NTY7IFwKICBpbnQxNng0X3QgX19zMV84NTYgPSBfX3AxXzg1NjsgXAogIGludDE2eDRfdCBfX3MyXzg1NiA9IF9fcDJfODU2OyBcCiAgaW50MzJ4NF90IF9fcmV2MF84NTY7ICBfX3JldjBfODU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NTYsIF9fczBfODU2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfODU2OyAgX19yZXYxXzg1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODU2LCBfX3MxXzg1NiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzg1NjsgIF9fcmV2Ml84NTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1NiwgX19zMl84NTYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzg1NjsgXAogIF9fcmV0Xzg1NiA9IF9fcmV2MF84NTYgLSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzg1NiwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzg1NiwgX19wM184NTYpKTsgXAogIF9fcmV0Xzg1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg1NiwgX19yZXRfODU2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sc2xfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3UzMihfX3AxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbHNsX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bWxzbF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTMyKF9fcDEsICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3UxNihfX3AxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbHNsX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MTYoX19yZXYxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxzbF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2YxNihfX3AwXzg1NywgX19wMV84NTcsIF9fcDJfODU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTcgPSBfX3AwXzg1NzsgXAogIGZsb2F0MTZ4NF90IF9fczFfODU3ID0gX19wMV84NTc7IFwKICBmbG9hdDE2eDRfdCBfX3JldF84NTc7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU3ID0gX19zMF84NTc7IFwKZmxvYXQxNng0X3QgX19yZWludDFfODU3ID0gX19zMV84NTc7IFwKaW50MTZ4NF90IF9fcmVpbnQyXzg1NyA9IHZzZXRfbGFuZV9zMTYoKihpbnQxNl90ICopICZfX3JlaW50Xzg1NywgKihpbnQxNng0X3QgKikgJl9fcmVpbnQxXzg1NywgX19wMl84NTcpOyBcCiAgX19yZXRfODU3ID0gKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDJfODU3OyBcCiAgX19yZXRfODU3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldF9sYW5lX2YxNihfX3AwXzg1OCwgX19wMV84NTgsIF9fcDJfODU4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTggPSBfX3AwXzg1ODsgXAogIGZsb2F0MTZ4NF90IF9fczFfODU4ID0gX19wMV84NTg7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODU4OyAgX19yZXYxXzg1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODU4LCBfX3MxXzg1OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF84NTg7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU4ID0gX19zMF84NTg7IFwKZmxvYXQxNng0X3QgX19yZWludDFfODU4ID0gX19yZXYxXzg1ODsgXAppbnQxNng0X3QgX19yZWludDJfODU4ID0gX19ub3N3YXBfdnNldF9sYW5lX3MxNigqKGludDE2X3QgKikgJl9fcmVpbnRfODU4LCAqKGludDE2eDRfdCAqKSAmX19yZWludDFfODU4LCBfX3AyXzg1OCk7IFwKICBfX3JldF84NTggPSAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50Ml84NTg7IFwKICBfX3JldF84NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTgsIF9fcmV0Xzg1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0cV9sYW5lX2YxNihfX3AwXzg1OSwgX19wMV84NTksIF9fcDJfODU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTkgPSBfX3AwXzg1OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfODU5ID0gX19wMV84NTk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF84NTk7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU5ID0gX19zMF84NTk7IFwKZmxvYXQxNng4X3QgX19yZWludDFfODU5ID0gX19zMV84NTk7IFwKaW50MTZ4OF90IF9fcmVpbnQyXzg1OSA9IHZzZXRxX2xhbmVfczE2KCooaW50MTZfdCAqKSAmX19yZWludF84NTksICooaW50MTZ4OF90ICopICZfX3JlaW50MV84NTksIF9fcDJfODU5KTsgXAogIF9fcmV0Xzg1OSA9ICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQyXzg1OTsgXAogIF9fcmV0Xzg1OTsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjE2KF9fcDBfODYwLCBfX3AxXzg2MCwgX19wMl84NjApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwXzg2MCA9IF9fcDBfODYwOyBcCiAgZmxvYXQxNng4X3QgX19zMV84NjAgPSBfX3AxXzg2MDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84NjA7ICBfX3JldjFfODYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NjAsIF9fczFfODYwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0Xzg2MDsgXApmbG9hdDE2X3QgX19yZWludF84NjAgPSBfX3MwXzg2MDsgXApmbG9hdDE2eDhfdCBfX3JlaW50MV84NjAgPSBfX3JldjFfODYwOyBcCmludDE2eDhfdCBfX3JlaW50Ml84NjAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNigqKGludDE2X3QgKikgJl9fcmVpbnRfODYwLCAqKGludDE2eDhfdCAqKSAmX19yZWludDFfODYwLCBfX3AyXzg2MCk7IFwKICBfX3JldF84NjAgPSAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50Ml84NjA7IFwKICBfX3JldF84NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjAsIF9fcmV0Xzg2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NjA7IFwKfSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0JGMTZfVkVDVE9SX0FSSVRITUVUSUMpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZm1sYWxicV9sYW5lX2YzMihfX3AwXzg2MSwgX19wMV84NjEsIF9fcDJfODYxLCBfX3AzXzg2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjEgPSBfX3AwXzg2MTsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzg2MSA9IF9fcDFfODYxOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfODYxID0gX19wMl84NjE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84NjE7IFwKICBfX3JldF84NjEgPSB2YmZtbGFsYnFfZjMyKF9fczBfODYxLCBfX3MxXzg2MSwgKGJmbG9hdDE2eDhfdCkge3ZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSl9KTsgXAogIF9fcmV0Xzg2MTsgXAp9KQojZWxzZQojZGVmaW5lIHZiZm1sYWxicV9sYW5lX2YzMihfX3AwXzg2MiwgX19wMV84NjIsIF9fcDJfODYyLCBfX3AzXzg2MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjIgPSBfX3AwXzg2MjsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzg2MiA9IF9fcDFfODYyOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfODYyID0gX19wMl84NjI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODYyOyAgX19yZXYwXzg2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODYyLCBfX3MwXzg2MiwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxXzg2MjsgIF9fcmV2MV84NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg2MiwgX19zMV84NjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2Ml84NjI7ICBfX3JldjJfODYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84NjIsIF9fczJfODYyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2MjsgXAogIF9fcmV0Xzg2MiA9IF9fbm9zd2FwX3ZiZm1sYWxicV9mMzIoX19yZXYwXzg2MiwgX19yZXYxXzg2MiwgKGJmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODYyLCBfX3AzXzg2MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODYyLCBfX3AzXzg2MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpfSk7IFwKICBfX3JldF84NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjIsIF9fcmV0Xzg2MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NjI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2YmZtbGFsYnFfbGFuZXFfZjMyKF9fcDBfODYzLCBfX3AxXzg2MywgX19wMl84NjMsIF9fcDNfODYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2MyA9IF9fcDBfODYzOyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODYzID0gX19wMV84NjM7IFwKICBiZmxvYXQxNng4X3QgX19zMl84NjMgPSBfX3AyXzg2MzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2MzsgXAogIF9fcmV0Xzg2MyA9IHZiZm1sYWxicV9mMzIoX19zMF84NjMsIF9fczFfODYzLCAoYmZsb2F0MTZ4OF90KSB7dmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjMsIF9fcDNfODYzKSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjMsIF9fcDNfODYzKSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpfSk7IFwKICBfX3JldF84NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2YmZtbGFsYnFfbGFuZXFfZjMyKF9fcDBfODY0LCBfX3AxXzg2NCwgX19wMl84NjQsIF9fcDNfODY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NCA9IF9fcDBfODY0OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY0ID0gX19wMV84NjQ7IFwKICBiZmxvYXQxNng4X3QgX19zMl84NjQgPSBfX3AyXzg2NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NjQ7ICBfX3JldjBfODY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NjQsIF9fczBfODY0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjFfODY0OyAgX19yZXYxXzg2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODY0LCBfX3MxXzg2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzg2NDsgIF9fcmV2Ml84NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg2NCwgX19zMl84NjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY0OyBcCiAgX19yZXRfODY0ID0gX19ub3N3YXBfdmJmbWxhbGJxX2YzMihfX3JldjBfODY0LCBfX3JldjFfODY0LCAoYmZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KX0pOyBcCiAgX19yZXRfODY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODY0LCBfX3JldF84NjQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODY0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmJmbWxhbHRxX2xhbmVfZjMyKF9fcDBfODY1LCBfX3AxXzg2NSwgX19wMl84NjUsIF9fcDNfODY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NSA9IF9fcDBfODY1OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY1ID0gX19wMV84NjU7IFwKICBiZmxvYXQxNng0X3QgX19zMl84NjUgPSBfX3AyXzg2NTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2NTsgXAogIF9fcmV0Xzg2NSA9IHZiZm1sYWx0cV9mMzIoX19zMF84NjUsIF9fczFfODY1LCAoYmZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KX0pOyBcCiAgX19yZXRfODY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmbWxhbHRxX2xhbmVfZjMyKF9fcDBfODY2LCBfX3AxXzg2NiwgX19wMl84NjYsIF9fcDNfODY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NiA9IF9fcDBfODY2OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY2ID0gX19wMV84NjY7IFwKICBiZmxvYXQxNng0X3QgX19zMl84NjYgPSBfX3AyXzg2NjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NjY7ICBfX3JldjBfODY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NjYsIF9fczBfODY2LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjFfODY2OyAgX19yZXYxXzg2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODY2LCBfX3MxXzg2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYyXzg2NjsgIF9fcmV2Ml84NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg2NiwgX19zMl84NjYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY2OyBcCiAgX19yZXRfODY2ID0gX19ub3N3YXBfdmJmbWxhbHRxX2YzMihfX3JldjBfODY2LCBfX3JldjFfODY2LCAoYmZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjYsIF9fcDNfODY2KSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjYsIF9fcDNfODY2KSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2Nil9KTsgXAogIF9fcmV0Xzg2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg2NiwgX19yZXRfODY2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg2NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZm1sYWx0cV9sYW5lcV9mMzIoX19wMF84NjcsIF9fcDFfODY3LCBfX3AyXzg2NywgX19wM184NjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODY3ID0gX19wMF84Njc7IFwKICBiZmxvYXQxNng4X3QgX19zMV84NjcgPSBfX3AxXzg2NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzg2NyA9IF9fcDJfODY3OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY3OyBcCiAgX19yZXRfODY3ID0gdmJmbWxhbHRxX2YzMihfX3MwXzg2NywgX19zMV84NjcsIChiZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2NyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2NywgX19wM184NjcpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2NyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2NywgX19wM184NjcpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2Nyl9KTsgXAogIF9fcmV0Xzg2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZiZm1sYWx0cV9sYW5lcV9mMzIoX19wMF84NjgsIF9fcDFfODY4LCBfX3AyXzg2OCwgX19wM184NjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODY4ID0gX19wMF84Njg7IFwKICBiZmxvYXQxNng4X3QgX19zMV84NjggPSBfX3AxXzg2ODsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzg2OCA9IF9fcDJfODY4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg2ODsgIF9fcmV2MF84NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg2OCwgX19zMF84NjgsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MV84Njg7ICBfX3JldjFfODY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NjgsIF9fczFfODY4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjJfODY4OyAgX19yZXYyXzg2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODY4LCBfX3MyXzg2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84Njg7IFwKICBfX3JldF84NjggPSBfX25vc3dhcF92YmZtbGFsdHFfZjMyKF9fcmV2MF84NjgsIF9fcmV2MV84NjgsIChiZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpfSk7IFwKICBfX3JldF84NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjgsIF9fcmV0Xzg2OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9oaWdoX2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2YzMl9iZjE2KHZnZXRfaGlnaF9iZjE2KF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9oaWdoX2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmN2dF9mMzJfYmYxNihfX25vc3dhcF92Z2V0X2hpZ2hfYmYxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dHFfbG93X2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2YzMl9iZjE2KHZnZXRfbG93X2JmMTYoX19wMCkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjdnRxX2xvd19mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZjdnRfZjMyX2JmMTYoX19ub3N3YXBfdmdldF9sb3dfYmYxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRlAxNl9GTUwpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxhbHFfbGFuZV9oaWdoX2YxNihfX3AwXzg2OSwgX19wMV84NjksIF9fcDJfODY5LCBfX3AzXzg2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjkgPSBfX3AwXzg2OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfODY5ID0gX19wMV84Njk7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg2OSA9IF9fcDJfODY5OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY5OyBcCiAgX19yZXRfODY5ID0gdmZtbGFscV9oaWdoX2YxNihfX3MwXzg2OSwgX19zMV84NjksIChmbG9hdDE2eDhfdCkge3ZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODY5LCBfX3AzXzg2OSksIHZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODY5LCBfX3AzXzg2OSksIHZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpfSk7IFwKICBfX3JldF84Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVfaGlnaF9mMTYoX19wMF84NzAsIF9fcDFfODcwLCBfX3AyXzg3MCwgX19wM184NzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODcwID0gX19wMF84NzA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg3MCA9IF9fcDFfODcwOyBcCiAgZmxvYXQxNng0X3QgX19zMl84NzAgPSBfX3AyXzg3MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NzA7ICBfX3JldjBfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NzAsIF9fczBfODcwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84NzA7ICBfX3JldjFfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NzAsIF9fczFfODcwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml84NzA7ICBfX3JldjJfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84NzAsIF9fczJfODcwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg3MDsgXAogIF9fcmV0Xzg3MCA9IF9fbm9zd2FwX3ZmbWxhbHFfaGlnaF9mMTYoX19yZXYwXzg3MCwgX19yZXYxXzg3MCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzAsIF9fcDNfODcwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzAsIF9fcDNfODcwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApfSk7IFwKICBfX3JldF84NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzAsIF9fcmV0Xzg3MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZV9oaWdoX2YxNihfX3AwXzg3MSwgX19wMV84NzEsIF9fcDJfODcxLCBfX3AzXzg3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzEgPSBfX3AwXzg3MTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODcxID0gX19wMV84NzE7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MSA9IF9fcDJfODcxOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODcxOyBcCiAgX19yZXRfODcxID0gdmZtbGFsX2hpZ2hfZjE2KF9fczBfODcxLCBfX3MxXzg3MSwgKGZsb2F0MTZ4NF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg3MSwgX19wM184NzEpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODcxLCBfX3AzXzg3MSksIHZnZXRfbGFuZV9mMTYoX19zMl84NzEsIF9fcDNfODcxKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MSwgX19wM184NzEpfSk7IFwKICBfX3JldF84NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxfbGFuZV9oaWdoX2YxNihfX3AwXzg3MiwgX19wMV84NzIsIF9fcDJfODcyLCBfX3AzXzg3MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzIgPSBfX3AwXzg3MjsgXAogIGZsb2F0MTZ4NF90IF9fczFfODcyID0gX19wMV84NzI7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MiA9IF9fcDJfODcyOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg3MjsgIF9fcmV2MF84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3MiwgX19zMF84NzIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg3MjsgIF9fcmV2MV84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg3MiwgX19zMV84NzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg3MjsgIF9fcmV2Ml84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg3MiwgX19zMl84NzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODcyOyBcCiAgX19yZXRfODcyID0gX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KF9fcmV2MF84NzIsIF9fcmV2MV84NzIsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MiwgX19wM184NzIpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzIsIF9fcDNfODcyKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcyLCBfX3AzXzg3MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MiwgX19wM184NzIpfSk7IFwKICBfX3JldF84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzIsIF9fcmV0Xzg3MiwgMSwgMCk7IFwKICBfX3JldF84NzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxxX2xhbmVfbG93X2YxNihfX3AwXzg3MywgX19wMV84NzMsIF9fcDJfODczLCBfX3AzXzg3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NzMgPSBfX3AwXzg3MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfODczID0gX19wMV84NzM7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MyA9IF9fcDJfODczOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODczOyBcCiAgX19yZXRfODczID0gdmZtbGFscV9sb3dfZjE2KF9fczBfODczLCBfX3MxXzg3MywgKGZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3MyksIHZnZXRfbGFuZV9mMTYoX19zMl84NzMsIF9fcDNfODczKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3MyksIHZnZXRfbGFuZV9mMTYoX19zMl84NzMsIF9fcDNfODczKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3Myl9KTsgXAogIF9fcmV0Xzg3MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxhbHFfbGFuZV9sb3dfZjE2KF9fcDBfODc0LCBfX3AxXzg3NCwgX19wMl84NzQsIF9fcDNfODc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg3NCA9IF9fcDBfODc0OyBcCiAgZmxvYXQxNng4X3QgX19zMV84NzQgPSBfX3AxXzg3NDsgXAogIGZsb2F0MTZ4NF90IF9fczJfODc0ID0gX19wMl84NzQ7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc0OyAgX19yZXYwXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODc0LCBfX3MwXzg3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfODc0OyAgX19yZXYxXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODc0LCBfX3MxXzg3NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODc0OyAgX19yZXYyXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODc0LCBfX3MyXzg3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84NzQ7IFwKICBfX3JldF84NzQgPSBfX25vc3dhcF92Zm1sYWxxX2xvd19mMTYoX19yZXYwXzg3NCwgX19yZXYxXzg3NCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzQsIF9fcDNfODc0KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzQsIF9fcDNfODc0KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpfSk7IFwKICBfX3JldF84NzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzQsIF9fcmV0Xzg3NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NzQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZV9sb3dfZjE2KF9fcDBfODc1LCBfX3AxXzg3NSwgX19wMl84NzUsIF9fcDNfODc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg3NSA9IF9fcDBfODc1OyBcCiAgZmxvYXQxNng0X3QgX19zMV84NzUgPSBfX3AxXzg3NTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODc1ID0gX19wMl84NzU7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84NzU7IFwKICBfX3JldF84NzUgPSB2Zm1sYWxfbG93X2YxNihfX3MwXzg3NSwgX19zMV84NzUsIChmbG9hdDE2eDRfdCkge3ZnZXRfbGFuZV9mMTYoX19zMl84NzUsIF9fcDNfODc1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg3NSwgX19wM184NzUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODc1LCBfX3AzXzg3NSksIHZnZXRfbGFuZV9mMTYoX19zMl84NzUsIF9fcDNfODc1KX0pOyBcCiAgX19yZXRfODc1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbGFsX2xhbmVfbG93X2YxNihfX3AwXzg3NiwgX19wMV84NzYsIF9fcDJfODc2LCBfX3AzXzg3NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzYgPSBfX3AwXzg3NjsgXAogIGZsb2F0MTZ4NF90IF9fczFfODc2ID0gX19wMV84NzY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3NiA9IF9fcDJfODc2OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg3NjsgIF9fcmV2MF84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3NiwgX19zMF84NzYsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg3NjsgIF9fcmV2MV84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg3NiwgX19zMV84NzYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg3NjsgIF9fcmV2Ml84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg3NiwgX19zMl84NzYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODc2OyBcCiAgX19yZXRfODc2ID0gX19ub3N3YXBfdmZtbGFsX2xvd19mMTYoX19yZXYwXzg3NiwgX19yZXYxXzg3NiwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc2LCBfX3AzXzg3NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NiwgX19wM184NzYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzYsIF9fcDNfODc2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc2LCBfX3AzXzg3Nil9KTsgXAogIF9fcmV0Xzg3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg3NiwgX19yZXRfODc2LCAxLCAwKTsgXAogIF9fcmV0Xzg3NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxhbHFfbGFuZXFfaGlnaF9mMTYoX19wMF84NzcsIF9fcDFfODc3LCBfX3AyXzg3NywgX19wM184NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODc3ID0gX19wMF84Nzc7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg3NyA9IF9fcDFfODc3OyBcCiAgZmxvYXQxNng4X3QgX19zMl84NzcgPSBfX3AyXzg3NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg3NzsgXAogIF9fcmV0Xzg3NyA9IHZmbWxhbHFfaGlnaF9mMTYoX19zMF84NzcsIF9fczFfODc3LCAoZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpfSk7IFwKICBfX3JldF84Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVxX2hpZ2hfZjE2KF9fcDBfODc4LCBfX3AxXzg3OCwgX19wMl84NzgsIF9fcDNfODc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg3OCA9IF9fcDBfODc4OyBcCiAgZmxvYXQxNng4X3QgX19zMV84NzggPSBfX3AxXzg3ODsgXAogIGZsb2F0MTZ4OF90IF9fczJfODc4ID0gX19wMl84Nzg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc4OyAgX19yZXYwXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODc4LCBfX3MwXzg3OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfODc4OyAgX19yZXYxXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODc4LCBfX3MxXzg3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfODc4OyAgX19yZXYyXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODc4LCBfX3MyXzg3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84Nzg7IFwKICBfX3JldF84NzggPSBfX25vc3dhcF92Zm1sYWxxX2hpZ2hfZjE2KF9fcmV2MF84NzgsIF9fcmV2MV84NzgsIChmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODc4LCBfX3AzXzg3OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODc4LCBfX3AzXzg3OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpfSk7IFwKICBfX3JldF84NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzgsIF9fcmV0Xzg3OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84Nzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZXFfaGlnaF9mMTYoX19wMF84NzksIF9fcDFfODc5LCBfX3AyXzg3OSwgX19wM184NzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODc5ID0gX19wMF84Nzk7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg3OSA9IF9fcDFfODc5OyBcCiAgZmxvYXQxNng4X3QgX19zMl84NzkgPSBfX3AyXzg3OTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg3OTsgXAogIF9fcmV0Xzg3OSA9IHZmbWxhbF9oaWdoX2YxNihfX3MwXzg3OSwgX19zMV84NzksIChmbG9hdDE2eDRfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSl9KTsgXAogIF9fcmV0Xzg3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxhbF9sYW5lcV9oaWdoX2YxNihfX3AwXzg4MCwgX19wMV84ODAsIF9fcDJfODgwLCBfX3AzXzg4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84ODAgPSBfX3AwXzg4MDsgXAogIGZsb2F0MTZ4NF90IF9fczFfODgwID0gX19wMV84ODA7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg4MCA9IF9fcDJfODgwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg4MDsgIF9fcmV2MF84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg4MCwgX19zMF84ODAsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg4MDsgIF9fcmV2MV84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg4MCwgX19zMV84ODAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzg4MDsgIF9fcmV2Ml84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg4MCwgX19zMl84ODAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODgwOyBcCiAgX19yZXRfODgwID0gX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KF9fcmV2MF84ODAsIF9fcmV2MV84ODAsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODAsIF9fcDNfODgwKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MCwgX19wM184ODApLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgwLCBfX3AzXzg4MCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODAsIF9fcDNfODgwKX0pOyBcCiAgX19yZXRfODgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODgwLCBfX3JldF84ODAsIDEsIDApOyBcCiAgX19yZXRfODgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbGFscV9sYW5lcV9sb3dfZjE2KF9fcDBfODgxLCBfX3AxXzg4MSwgX19wMl84ODEsIF9fcDNfODgxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4MSA9IF9fcDBfODgxOyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODEgPSBfX3AxXzg4MTsgXAogIGZsb2F0MTZ4OF90IF9fczJfODgxID0gX19wMl84ODE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODE7IFwKICBfX3JldF84ODEgPSB2Zm1sYWxxX2xvd19mMTYoX19zMF84ODEsIF9fczFfODgxLCAoZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpfSk7IFwKICBfX3JldF84ODE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVxX2xvd19mMTYoX19wMF84ODIsIF9fcDFfODgyLCBfX3AyXzg4MiwgX19wM184ODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODgyID0gX19wMF84ODI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg4MiA9IF9fcDFfODgyOyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODIgPSBfX3AyXzg4MjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84ODI7ICBfX3JldjBfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84ODIsIF9fczBfODgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84ODI7ICBfX3JldjFfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84ODIsIF9fczFfODgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84ODI7ICBfX3JldjJfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84ODIsIF9fczJfODgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg4MjsgXAogIF9fcmV0Xzg4MiA9IF9fbm9zd2FwX3ZmbWxhbHFfbG93X2YxNihfX3JldjBfODgyLCBfX3JldjFfODgyLCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MiwgX19wM184ODIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MiwgX19wM184ODIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKX0pOyBcCiAgX19yZXRfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODgyLCBfX3JldF84ODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbGFsX2xhbmVxX2xvd19mMTYoX19wMF84ODMsIF9fcDFfODgzLCBfX3AyXzg4MywgX19wM184ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODgzID0gX19wMF84ODM7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg4MyA9IF9fcDFfODgzOyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODMgPSBfX3AyXzg4MzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg4MzsgXAogIF9fcmV0Xzg4MyA9IHZmbWxhbF9sb3dfZjE2KF9fczBfODgzLCBfX3MxXzg4MywgKGZsb2F0MTZ4NF90KSB7dmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKX0pOyBcCiAgX19yZXRfODgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbGFsX2xhbmVxX2xvd19mMTYoX19wMF84ODQsIF9fcDFfODg0LCBfX3AyXzg4NCwgX19wM184ODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODg0ID0gX19wMF84ODQ7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg4NCA9IF9fcDFfODg0OyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODQgPSBfX3AyXzg4NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF84ODQ7ICBfX3JldjBfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84ODQsIF9fczBfODg0LCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV84ODQ7ICBfX3JldjFfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84ODQsIF9fczFfODg0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84ODQ7ICBfX3JldjJfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84ODQsIF9fczJfODg0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg4NDsgXAogIF9fcmV0Xzg4NCA9IF9fbm9zd2FwX3ZmbWxhbF9sb3dfZjE2KF9fcmV2MF84ODQsIF9fcmV2MV84ODQsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODQsIF9fcDNfODg0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4NCwgX19wM184ODQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODg0LCBfX3AzXzg4NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODQsIF9fcDNfODg0KX0pOyBcCiAgX19yZXRfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODg0LCBfX3JldF84ODQsIDEsIDApOyBcCiAgX19yZXRfODg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbHNscV9sYW5lX2hpZ2hfZjE2KF9fcDBfODg1LCBfX3AxXzg4NSwgX19wMl84ODUsIF9fcDNfODg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4NSA9IF9fcDBfODg1OyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODUgPSBfX3AxXzg4NTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg1ID0gX19wMl84ODU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODU7IFwKICBfX3JldF84ODUgPSB2Zm1sc2xxX2hpZ2hfZjE2KF9fczBfODg1LCBfX3MxXzg4NSwgKGZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODUsIF9fcDNfODg1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODUsIF9fcDNfODg1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSl9KTsgXAogIF9fcmV0Xzg4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZV9oaWdoX2YxNihfX3AwXzg4NiwgX19wMV84ODYsIF9fcDJfODg2LCBfX3AzXzg4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84ODYgPSBfX3AwXzg4NjsgXAogIGZsb2F0MTZ4OF90IF9fczFfODg2ID0gX19wMV84ODY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg4NiA9IF9fcDJfODg2OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg4NjsgIF9fcmV2MF84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg4NiwgX19zMF84ODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzg4NjsgIF9fcmV2MV84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg4NiwgX19zMV84ODYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg4NjsgIF9fcmV2Ml84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg4NiwgX19zMl84ODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODg2OyBcCiAgX19yZXRfODg2ID0gX19ub3N3YXBfdmZtbHNscV9oaWdoX2YxNihfX3JldjBfODg2LCBfX3JldjFfODg2LCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4NiwgX19wM184ODYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4NiwgX19wM184ODYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4Nil9KTsgXAogIF9fcmV0Xzg4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg4NiwgX19yZXRfODg2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lX2hpZ2hfZjE2KF9fcDBfODg3LCBfX3AxXzg4NywgX19wMl84ODcsIF9fcDNfODg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg4NyA9IF9fcDBfODg3OyBcCiAgZmxvYXQxNng0X3QgX19zMV84ODcgPSBfX3AxXzg4NzsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg3ID0gX19wMl84ODc7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84ODc7IFwKICBfX3JldF84ODcgPSB2Zm1sc2xfaGlnaF9mMTYoX19zMF84ODcsIF9fczFfODg3LCAoZmxvYXQxNng0X3QpIHt2Z2V0X2xhbmVfZjE2KF9fczJfODg3LCBfX3AzXzg4NyksIHZnZXRfbGFuZV9mMTYoX19zMl84ODcsIF9fcDNfODg3KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NywgX19wM184ODcpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg3LCBfX3AzXzg4Nyl9KTsgXAogIF9fcmV0Xzg4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbF9sYW5lX2hpZ2hfZjE2KF9fcDBfODg4LCBfX3AxXzg4OCwgX19wMl84ODgsIF9fcDNfODg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg4OCA9IF9fcDBfODg4OyBcCiAgZmxvYXQxNng0X3QgX19zMV84ODggPSBfX3AxXzg4ODsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg4ID0gX19wMl84ODg7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODg4OyAgX19yZXYwXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODg4LCBfX3MwXzg4OCwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODg4OyAgX19yZXYxXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODg4LCBfX3MxXzg4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODg4OyAgX19yZXYyXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODg4LCBfX3MyXzg4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84ODg7IFwKICBfX3JldF84ODggPSBfX25vc3dhcF92Zm1sc2xfaGlnaF9mMTYoX19yZXYwXzg4OCwgX19yZXYxXzg4OCwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg4LCBfX3AzXzg4OCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4OCwgX19wM184ODgpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODgsIF9fcDNfODg4KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg4LCBfX3AzXzg4OCl9KTsgXAogIF9fcmV0Xzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg4OCwgX19yZXRfODg4LCAxLCAwKTsgXAogIF9fcmV0Xzg4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbHFfbGFuZV9sb3dfZjE2KF9fcDBfODg5LCBfX3AxXzg4OSwgX19wMl84ODksIF9fcDNfODg5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4OSA9IF9fcDBfODg5OyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODkgPSBfX3AxXzg4OTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg5ID0gX19wMl84ODk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODk7IFwKICBfX3JldF84ODkgPSB2Zm1sc2xxX2xvd19mMTYoX19zMF84ODksIF9fczFfODg5LCAoZmxvYXQxNng4X3QpIHt2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4OSwgX19wM184ODkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4OSwgX19wM184ODkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KX0pOyBcCiAgX19yZXRfODg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbHNscV9sYW5lX2xvd19mMTYoX19wMF84OTAsIF9fcDFfODkwLCBfX3AyXzg5MCwgX19wM184OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODkwID0gX19wMF84OTA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5MCA9IF9fcDFfODkwOyBcCiAgZmxvYXQxNng0X3QgX19zMl84OTAgPSBfX3AyXzg5MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84OTA7ICBfX3JldjBfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84OTAsIF9fczBfODkwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84OTA7ICBfX3JldjFfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84OTAsIF9fczFfODkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml84OTA7ICBfX3JldjJfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84OTAsIF9fczJfODkwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5MDsgXAogIF9fcmV0Xzg5MCA9IF9fbm9zd2FwX3ZmbWxzbHFfbG93X2YxNihfX3JldjBfODkwLCBfX3JldjFfODkwLCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MCwgX19wM184OTApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MCwgX19wM184OTApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCl9KTsgXAogIF9fcmV0Xzg5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5MCwgX19yZXRfODkwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lX2xvd19mMTYoX19wMF84OTEsIF9fcDFfODkxLCBfX3AyXzg5MSwgX19wM184OTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODkxID0gX19wMF84OTE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg5MSA9IF9fcDFfODkxOyBcCiAgZmxvYXQxNng0X3QgX19zMl84OTEgPSBfX3AyXzg5MTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg5MTsgXAogIF9fcmV0Xzg5MSA9IHZmbWxzbF9sb3dfZjE2KF9fczBfODkxLCBfX3MxXzg5MSwgKGZsb2F0MTZ4NF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg5MSwgX19wM184OTEpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODkxLCBfX3AzXzg5MSksIHZnZXRfbGFuZV9mMTYoX19zMl84OTEsIF9fcDNfODkxKSwgdmdldF9sYW5lX2YxNihfX3MyXzg5MSwgX19wM184OTEpfSk7IFwKICBfX3JldF84OTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sc2xfbGFuZV9sb3dfZjE2KF9fcDBfODkyLCBfX3AxXzg5MiwgX19wMl84OTIsIF9fcDNfODkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg5MiA9IF9fcDBfODkyOyBcCiAgZmxvYXQxNng0X3QgX19zMV84OTIgPSBfX3AxXzg5MjsgXAogIGZsb2F0MTZ4NF90IF9fczJfODkyID0gX19wMl84OTI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODkyOyAgX19yZXYwXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODkyLCBfX3MwXzg5MiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODkyOyAgX19yZXYxXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODkyLCBfX3MxXzg5MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODkyOyAgX19yZXYyXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODkyLCBfX3MyXzg5MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84OTI7IFwKICBfX3JldF84OTIgPSBfX25vc3dhcF92Zm1sc2xfbG93X2YxNihfX3JldjBfODkyLCBfX3JldjFfODkyLCAoZmxvYXQxNng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTIsIF9fcDNfODkyKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkyLCBfX3AzXzg5MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MiwgX19wM184OTIpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTIsIF9fcDNfODkyKX0pOyBcCiAgX19yZXRfODkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODkyLCBfX3JldF84OTIsIDEsIDApOyBcCiAgX19yZXRfODkyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbHNscV9sYW5lcV9oaWdoX2YxNihfX3AwXzg5MywgX19wMV84OTMsIF9fcDJfODkzLCBfX3AzXzg5MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84OTMgPSBfX3AwXzg5MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfODkzID0gX19wMV84OTM7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5MyA9IF9fcDJfODkzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODkzOyBcCiAgX19yZXRfODkzID0gdmZtbHNscV9oaWdoX2YxNihfX3MwXzg5MywgX19zMV84OTMsIChmbG9hdDE2eDhfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5Myl9KTsgXAogIF9fcmV0Xzg5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZXFfaGlnaF9mMTYoX19wMF84OTQsIF9fcDFfODk0LCBfX3AyXzg5NCwgX19wM184OTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODk0ID0gX19wMF84OTQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5NCA9IF9fcDFfODk0OyBcCiAgZmxvYXQxNng4X3QgX19zMl84OTQgPSBfX3AyXzg5NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84OTQ7ICBfX3JldjBfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84OTQsIF9fczBfODk0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84OTQ7ICBfX3JldjFfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84OTQsIF9fczFfODk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84OTQ7ICBfX3JldjJfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84OTQsIF9fczJfODk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5NDsgXAogIF9fcmV0Xzg5NCA9IF9fbm9zd2FwX3ZmbWxzbHFfaGlnaF9mMTYoX19yZXYwXzg5NCwgX19yZXYxXzg5NCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTQsIF9fcDNfODk0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTQsIF9fcDNfODk0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCl9KTsgXAogIF9fcmV0Xzg5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5NCwgX19yZXRfODk0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg5NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lcV9oaWdoX2YxNihfX3AwXzg5NSwgX19wMV84OTUsIF9fcDJfODk1LCBfX3AzXzg5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84OTUgPSBfX3AwXzg5NTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODk1ID0gX19wMV84OTU7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5NSA9IF9fcDJfODk1OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODk1OyBcCiAgX19yZXRfODk1ID0gdmZtbHNsX2hpZ2hfZjE2KF9fczBfODk1LCBfX3MxXzg5NSwgKGZsb2F0MTZ4NF90KSB7dmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KX0pOyBcCiAgX19yZXRfODk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbHNsX2xhbmVxX2hpZ2hfZjE2KF9fcDBfODk2LCBfX3AxXzg5NiwgX19wMl84OTYsIF9fcDNfODk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg5NiA9IF9fcDBfODk2OyBcCiAgZmxvYXQxNng0X3QgX19zMV84OTYgPSBfX3AxXzg5NjsgXAogIGZsb2F0MTZ4OF90IF9fczJfODk2ID0gX19wMl84OTY7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODk2OyAgX19yZXYwXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODk2LCBfX3MwXzg5NiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODk2OyAgX19yZXYxXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODk2LCBfX3MxXzg5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfODk2OyAgX19yZXYyXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODk2LCBfX3MyXzg5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84OTY7IFwKICBfX3JldF84OTYgPSBfX25vc3dhcF92Zm1sc2xfaGlnaF9mMTYoX19yZXYwXzg5NiwgX19yZXYxXzg5NiwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NiwgX19wM184OTYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk2LCBfX3AzXzg5NiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTYsIF9fcDNfODk2KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NiwgX19wM184OTYpfSk7IFwKICBfX3JldF84OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84OTYsIF9fcmV0Xzg5NiwgMSwgMCk7IFwKICBfX3JldF84OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sc2xxX2xhbmVxX2xvd19mMTYoX19wMF84OTcsIF9fcDFfODk3LCBfX3AyXzg5NywgX19wM184OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODk3ID0gX19wMF84OTc7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5NyA9IF9fcDFfODk3OyBcCiAgZmxvYXQxNng4X3QgX19zMl84OTcgPSBfX3AyXzg5NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5NzsgXAogIF9fcmV0Xzg5NyA9IHZmbWxzbHFfbG93X2YxNihfX3MwXzg5NywgX19zMV84OTcsIChmbG9hdDE2eDhfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5Nyl9KTsgXAogIF9fcmV0Xzg5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZXFfbG93X2YxNihfX3AwXzg5OCwgX19wMV84OTgsIF9fcDJfODk4LCBfX3AzXzg5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84OTggPSBfX3AwXzg5ODsgXAogIGZsb2F0MTZ4OF90IF9fczFfODk4ID0gX19wMV84OTg7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5OCA9IF9fcDJfODk4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg5ODsgIF9fcmV2MF84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg5OCwgX19zMF84OTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzg5ODsgIF9fcmV2MV84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg5OCwgX19zMV84OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzg5ODsgIF9fcmV2Ml84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg5OCwgX19zMl84OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODk4OyBcCiAgX19yZXRfODk4ID0gX19ub3N3YXBfdmZtbHNscV9sb3dfZjE2KF9fcmV2MF84OTgsIF9fcmV2MV84OTgsIChmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk4LCBfX3AzXzg5OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk4LCBfX3AzXzg5OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpfSk7IFwKICBfX3JldF84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84OTgsIF9fcmV0Xzg5OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84OTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sc2xfbGFuZXFfbG93X2YxNihfX3AwXzg5OSwgX19wMV84OTksIF9fcDJfODk5LCBfX3AzXzg5OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84OTkgPSBfX3AwXzg5OTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODk5ID0gX19wMV84OTk7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5OSA9IF9fcDJfODk5OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODk5OyBcCiAgX19yZXRfODk5ID0gdmZtbHNsX2xvd19mMTYoX19zMF84OTksIF9fczFfODk5LCAoZmxvYXQxNng0X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpfSk7IFwKICBfX3JldF84OTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sc2xfbGFuZXFfbG93X2YxNihfX3AwXzkwMCwgX19wMV85MDAsIF9fcDJfOTAwLCBfX3AzXzkwMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF85MDAgPSBfX3AwXzkwMDsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAwID0gX19wMV85MDA7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzkwMCA9IF9fcDJfOTAwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzkwMDsgIF9fcmV2MF85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkwMCwgX19zMF85MDAsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzkwMDsgIF9fcmV2MV85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzkwMCwgX19zMV85MDAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzkwMDsgIF9fcmV2Ml85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkwMCwgX19zMl85MDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfOTAwOyBcCiAgX19yZXRfOTAwID0gX19ub3N3YXBfdmZtbHNsX2xvd19mMTYoX19yZXYwXzkwMCwgX19yZXYxXzkwMCwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzkwMCwgX19wM185MDApLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfOTAwLCBfX3AzXzkwMCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml85MDAsIF9fcDNfOTAwKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzkwMCwgX19wM185MDApfSk7IFwKICBfX3JldF85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MDAsIF9fcmV0XzkwMCwgMSwgMCk7IFwKICBfX3JldF85MDA7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsaF9sYW5lX2YxNihfX3AwXzkwMSwgX19wMV85MDEsIF9fcDJfOTAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDEgPSBfX3AwXzkwMTsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAxID0gX19wMV85MDE7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAxOyBcCiAgX19yZXRfOTAxID0gX19zMF85MDEgKiB2Z2V0X2xhbmVfZjE2KF9fczFfOTAxLCBfX3AyXzkwMSk7IFwKICBfX3JldF85MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsaF9sYW5lX2YxNihfX3AwXzkwMiwgX19wMV85MDIsIF9fcDJfOTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDIgPSBfX3AwXzkwMjsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAyID0gX19wMV85MDI7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfOTAyOyAgX19yZXYxXzkwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTAyLCBfX3MxXzkwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAyOyBcCiAgX19yZXRfOTAyID0gX19zMF85MDIgKiBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2MV85MDIsIF9fcDJfOTAyKTsgXAogIF9fcmV0XzkwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxoX2xhbmVxX2YxNihfX3AwXzkwMywgX19wMV85MDMsIF9fcDJfOTAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDMgPSBfX3AwXzkwMzsgXAogIGZsb2F0MTZ4OF90IF9fczFfOTAzID0gX19wMV85MDM7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAzOyBcCiAgX19yZXRfOTAzID0gX19zMF85MDMgKiB2Z2V0cV9sYW5lX2YxNihfX3MxXzkwMywgX19wMl85MDMpOyBcCiAgX19yZXRfOTAzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGhfbGFuZXFfZjE2KF9fcDBfOTA0LCBfX3AxXzkwNCwgX19wMl85MDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwXzkwNCA9IF9fcDBfOTA0OyBcCiAgZmxvYXQxNng4X3QgX19zMV85MDQgPSBfX3AxXzkwNDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV85MDQ7ICBfX3JldjFfOTA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV85MDQsIF9fczFfOTA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF85MDQ7IFwKICBfX3JldF85MDQgPSBfX3MwXzkwNCAqIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2MV85MDQsIF9fcDJfOTA0KTsgXAogIF9fcmV0XzkwNDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX01BVE1VTF9JTlQ4KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Vkb3RxX2xhbmVfczMyKF9fcDBfOTA1LCBfX3AxXzkwNSwgX19wMl85MDUsIF9fcDNfOTA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF85MDUgPSBfX3AwXzkwNTsgXAogIGludDh4MTZfdCBfX3MxXzkwNSA9IF9fcDFfOTA1OyBcCiAgdWludDh4OF90IF9fczJfOTA1ID0gX19wMl85MDU7IFwKICBpbnQzMng0X3QgX19yZXRfOTA1OyBcCnVpbnQ4eDhfdCBfX3JlaW50XzkwNSA9IF9fczJfOTA1OyBcCiAgX19yZXRfOTA1ID0gdnVzZG90cV9zMzIoX19zMF85MDUsICh1aW50OHgxNl90KShzcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfOTA1LCBfX3AzXzkwNSkpLCBfX3MxXzkwNSk7IFwKICBfX3JldF85MDU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Vkb3RxX2xhbmVfczMyKF9fcDBfOTA2LCBfX3AxXzkwNiwgX19wMl85MDYsIF9fcDNfOTA2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF85MDYgPSBfX3AwXzkwNjsgXAogIGludDh4MTZfdCBfX3MxXzkwNiA9IF9fcDFfOTA2OyBcCiAgdWludDh4OF90IF9fczJfOTA2ID0gX19wMl85MDY7IFwKICBpbnQzMng0X3QgX19yZXYwXzkwNjsgIF9fcmV2MF85MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkwNiwgX19zMF85MDYsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2MV85MDY7ICBfX3JldjFfOTA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV85MDYsIF9fczFfOTA2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjJfOTA2OyAgX19yZXYyXzkwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTA2LCBfX3MyXzkwNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfOTA2OyBcCnVpbnQ4eDhfdCBfX3JlaW50XzkwNiA9IF9fcmV2Ml85MDY7IFwKICBfX3JldF85MDYgPSBfX25vc3dhcF92dXNkb3RxX3MzMihfX3JldjBfOTA2LCAodWludDh4MTZfdCkoX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzkwNiwgX19wM185MDYpKSwgX19yZXYxXzkwNik7IFwKICBfX3JldF85MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MDYsIF9fcmV0XzkwNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF85MDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Vkb3RfbGFuZV9zMzIoX19wMF85MDcsIF9fcDFfOTA3LCBfX3AyXzkwNywgX19wM185MDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzkwNyA9IF9fcDBfOTA3OyBcCiAgaW50OHg4X3QgX19zMV85MDcgPSBfX3AxXzkwNzsgXAogIHVpbnQ4eDhfdCBfX3MyXzkwNyA9IF9fcDJfOTA3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzkwNzsgXAp1aW50OHg4X3QgX19yZWludF85MDcgPSBfX3MyXzkwNzsgXAogIF9fcmV0XzkwNyA9IHZ1c2RvdF9zMzIoX19zMF85MDcsICh1aW50OHg4X3QpKHNwbGF0X2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzkwNywgX19wM185MDcpKSwgX19zMV85MDcpOyBcCiAgX19yZXRfOTA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN1ZG90X2xhbmVfczMyKF9fcDBfOTA4LCBfX3AxXzkwOCwgX19wMl85MDgsIF9fcDNfOTA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF85MDggPSBfX3AwXzkwODsgXAogIGludDh4OF90IF9fczFfOTA4ID0gX19wMV85MDg7IFwKICB1aW50OHg4X3QgX19zMl85MDggPSBfX3AyXzkwODsgXAogIGludDMyeDJfdCBfX3JldjBfOTA4OyAgX19yZXYwXzkwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTA4LCBfX3MwXzkwOCwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjFfOTA4OyAgX19yZXYxXzkwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTA4LCBfX3MxXzkwOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYyXzkwODsgIF9fcmV2Ml85MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkwOCwgX19zMl85MDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzkwODsgXAp1aW50OHg4X3QgX19yZWludF85MDggPSBfX3JldjJfOTA4OyBcCiAgX19yZXRfOTA4ID0gX19ub3N3YXBfdnVzZG90X3MzMihfX3JldjBfOTA4LCAodWludDh4OF90KShfX25vc3dhcF9zcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF85MDgsIF9fcDNfOTA4KSksIF9fcmV2MV85MDgpOyBcCiAgX19yZXRfOTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTA4LCBfX3JldF85MDgsIDEsIDApOyBcCiAgX19yZXRfOTA4OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfUVJETVgpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCl9fYWkgaW50MzJfdCB2cXJkbWxhaHNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gdnFhZGRzX3MzMihfX3AwLCB2cXJkbXVsaHNfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxcmRtbGFoaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZGhfczE2KF9fcDAsIHZxcmRtdWxoaF9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHNfbGFuZV9zMzIoX19wMF85MDksIF9fcDFfOTA5LCBfX3AyXzkwOSwgX19wM185MDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MDkgPSBfX3AwXzkwOTsgXAogIGludDMyX3QgX19zMV85MDkgPSBfX3AxXzkwOTsgXAogIGludDMyeDJfdCBfX3MyXzkwOSA9IF9fcDJfOTA5OyBcCiAgaW50MzJfdCBfX3JldF85MDk7IFwKICBfX3JldF85MDkgPSB2cWFkZHNfczMyKF9fczBfOTA5LCB2cXJkbXVsaHNfczMyKF9fczFfOTA5LCB2Z2V0X2xhbmVfczMyKF9fczJfOTA5LCBfX3AzXzkwOSkpKTsgXAogIF9fcmV0XzkwOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoc19sYW5lX3MzMihfX3AwXzkxMCwgX19wMV85MTAsIF9fcDJfOTEwLCBfX3AzXzkxMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzkxMCA9IF9fcDBfOTEwOyBcCiAgaW50MzJfdCBfX3MxXzkxMCA9IF9fcDFfOTEwOyBcCiAgaW50MzJ4Ml90IF9fczJfOTEwID0gX19wMl85MTA7IFwKICBpbnQzMngyX3QgX19yZXYyXzkxMDsgIF9fcmV2Ml85MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkxMCwgX19zMl85MTAsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF85MTA7IFwKICBfX3JldF85MTAgPSB2cWFkZHNfczMyKF9fczBfOTEwLCB2cXJkbXVsaHNfczMyKF9fczFfOTEwLCBfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2Ml85MTAsIF9fcDNfOTEwKSkpOyBcCiAgX19yZXRfOTEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhoX2xhbmVfczE2KF9fcDBfOTExLCBfX3AxXzkxMSwgX19wMl85MTEsIF9fcDNfOTExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTExID0gX19wMF85MTE7IFwKICBpbnQxNl90IF9fczFfOTExID0gX19wMV85MTE7IFwKICBpbnQxNng0X3QgX19zMl85MTEgPSBfX3AyXzkxMTsgXAogIGludDE2X3QgX19yZXRfOTExOyBcCiAgX19yZXRfOTExID0gdnFhZGRoX3MxNihfX3MwXzkxMSwgdnFyZG11bGhoX3MxNihfX3MxXzkxMSwgdmdldF9sYW5lX3MxNihfX3MyXzkxMSwgX19wM185MTEpKSk7IFwKICBfX3JldF85MTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaGhfbGFuZV9zMTYoX19wMF85MTIsIF9fcDFfOTEyLCBfX3AyXzkxMiwgX19wM185MTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MTIgPSBfX3AwXzkxMjsgXAogIGludDE2X3QgX19zMV85MTIgPSBfX3AxXzkxMjsgXAogIGludDE2eDRfdCBfX3MyXzkxMiA9IF9fcDJfOTEyOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml85MTI7ICBfX3JldjJfOTEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTIsIF9fczJfOTEyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfOTEyOyBcCiAgX19yZXRfOTEyID0gdnFhZGRoX3MxNihfX3MwXzkxMiwgdnFyZG11bGhoX3MxNihfX3MxXzkxMiwgX19ub3N3YXBfdmdldF9sYW5lX3MxNihfX3JldjJfOTEyLCBfX3AzXzkxMikpKTsgXAogIF9fcmV0XzkxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbGFoc19sYW5lcV9zMzIoX19wMF85MTMsIF9fcDFfOTEzLCBfX3AyXzkxMywgX19wM185MTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MTMgPSBfX3AwXzkxMzsgXAogIGludDMyX3QgX19zMV85MTMgPSBfX3AxXzkxMzsgXAogIGludDMyeDRfdCBfX3MyXzkxMyA9IF9fcDJfOTEzOyBcCiAgaW50MzJfdCBfX3JldF85MTM7IFwKICBfX3JldF85MTMgPSB2cWFkZHNfczMyKF9fczBfOTEzLCB2cXJkbXVsaHNfczMyKF9fczFfOTEzLCB2Z2V0cV9sYW5lX3MzMihfX3MyXzkxMywgX19wM185MTMpKSk7IFwKICBfX3JldF85MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHNfbGFuZXFfczMyKF9fcDBfOTE0LCBfX3AxXzkxNCwgX19wMl85MTQsIF9fcDNfOTE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTE0ID0gX19wMF85MTQ7IFwKICBpbnQzMl90IF9fczFfOTE0ID0gX19wMV85MTQ7IFwKICBpbnQzMng0X3QgX19zMl85MTQgPSBfX3AyXzkxNDsgXAogIGludDMyeDRfdCBfX3JldjJfOTE0OyAgX19yZXYyXzkxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTE0LCBfX3MyXzkxNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0XzkxNDsgXAogIF9fcmV0XzkxNCA9IHZxYWRkc19zMzIoX19zMF85MTQsIHZxcmRtdWxoc19zMzIoX19zMV85MTQsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczMyKF9fcmV2Ml85MTQsIF9fcDNfOTE0KSkpOyBcCiAgX19yZXRfOTE0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhoX2xhbmVxX3MxNihfX3AwXzkxNSwgX19wMV85MTUsIF9fcDJfOTE1LCBfX3AzXzkxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzkxNSA9IF9fcDBfOTE1OyBcCiAgaW50MTZfdCBfX3MxXzkxNSA9IF9fcDFfOTE1OyBcCiAgaW50MTZ4OF90IF9fczJfOTE1ID0gX19wMl85MTU7IFwKICBpbnQxNl90IF9fcmV0XzkxNTsgXAogIF9fcmV0XzkxNSA9IHZxYWRkaF9zMTYoX19zMF85MTUsIHZxcmRtdWxoaF9zMTYoX19zMV85MTUsIHZnZXRxX2xhbmVfczE2KF9fczJfOTE1LCBfX3AzXzkxNSkpKTsgXAogIF9fcmV0XzkxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoaF9sYW5lcV9zMTYoX19wMF85MTYsIF9fcDFfOTE2LCBfX3AyXzkxNiwgX19wM185MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MTYgPSBfX3AwXzkxNjsgXAogIGludDE2X3QgX19zMV85MTYgPSBfX3AxXzkxNjsgXAogIGludDE2eDhfdCBfX3MyXzkxNiA9IF9fcDJfOTE2OyBcCiAgaW50MTZ4OF90IF9fcmV2Ml85MTY7ICBfX3JldjJfOTE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTYsIF9fczJfOTE2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfOTE2OyBcCiAgX19yZXRfOTE2ID0gdnFhZGRoX3MxNihfX3MwXzkxNiwgdnFyZG11bGhoX3MxNihfX3MxXzkxNiwgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYyXzkxNiwgX19wM185MTYpKSk7IFwKICBfX3JldF85MTY7IFwKfSkKI2VuZGlmCgpfX2FpIGludDMyX3QgdnFyZG1sc2hzX3MzMihpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IHZxc3Vic19zMzIoX19wMCwgdnFyZG11bGhzX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZfdCB2cXJkbWxzaGhfczE2KGludDE2X3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gdnFzdWJoX3MxNihfX3AwLCB2cXJkbXVsaGhfczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sc2hzX2xhbmVfczMyKF9fcDBfOTE3LCBfX3AxXzkxNywgX19wMl85MTcsIF9fcDNfOTE3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTE3ID0gX19wMF85MTc7IFwKICBpbnQzMl90IF9fczFfOTE3ID0gX19wMV85MTc7IFwKICBpbnQzMngyX3QgX19zMl85MTcgPSBfX3AyXzkxNzsgXAogIGludDMyX3QgX19yZXRfOTE3OyBcCiAgX19yZXRfOTE3ID0gdnFzdWJzX3MzMihfX3MwXzkxNywgdnFyZG11bGhzX3MzMihfX3MxXzkxNywgdmdldF9sYW5lX3MzMihfX3MyXzkxNywgX19wM185MTcpKSk7IFwKICBfX3JldF85MTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxzaHNfbGFuZV9zMzIoX19wMF85MTgsIF9fcDFfOTE4LCBfX3AyXzkxOCwgX19wM185MTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MTggPSBfX3AwXzkxODsgXAogIGludDMyX3QgX19zMV85MTggPSBfX3AxXzkxODsgXAogIGludDMyeDJfdCBfX3MyXzkxOCA9IF9fcDJfOTE4OyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml85MTg7ICBfX3JldjJfOTE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTgsIF9fczJfOTE4LCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfOTE4OyBcCiAgX19yZXRfOTE4ID0gdnFzdWJzX3MzMihfX3MwXzkxOCwgdnFyZG11bGhzX3MzMihfX3MxXzkxOCwgX19ub3N3YXBfdmdldF9sYW5lX3MzMihfX3JldjJfOTE4LCBfX3AzXzkxOCkpKTsgXAogIF9fcmV0XzkxODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoaF9sYW5lX3MxNihfX3AwXzkxOSwgX19wMV85MTksIF9fcDJfOTE5LCBfX3AzXzkxOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzkxOSA9IF9fcDBfOTE5OyBcCiAgaW50MTZfdCBfX3MxXzkxOSA9IF9fcDFfOTE5OyBcCiAgaW50MTZ4NF90IF9fczJfOTE5ID0gX19wMl85MTk7IFwKICBpbnQxNl90IF9fcmV0XzkxOTsgXAogIF9fcmV0XzkxOSA9IHZxc3ViaF9zMTYoX19zMF85MTksIHZxcmRtdWxoaF9zMTYoX19zMV85MTksIHZnZXRfbGFuZV9zMTYoX19zMl85MTksIF9fcDNfOTE5KSkpOyBcCiAgX19yZXRfOTE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hoX2xhbmVfczE2KF9fcDBfOTIwLCBfX3AxXzkyMCwgX19wMl85MjAsIF9fcDNfOTIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTIwID0gX19wMF85MjA7IFwKICBpbnQxNl90IF9fczFfOTIwID0gX19wMV85MjA7IFwKICBpbnQxNng0X3QgX19zMl85MjAgPSBfX3AyXzkyMDsgXAogIGludDE2eDRfdCBfX3JldjJfOTIwOyAgX19yZXYyXzkyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTIwLCBfX3MyXzkyMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzkyMDsgXAogIF9fcmV0XzkyMCA9IHZxc3ViaF9zMTYoX19zMF85MjAsIHZxcmRtdWxoaF9zMTYoX19zMV85MjAsIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMTYoX19yZXYyXzkyMCwgX19wM185MjApKSk7IFwKICBfX3JldF85MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaHNfbGFuZXFfczMyKF9fcDBfOTIxLCBfX3AxXzkyMSwgX19wMl85MjEsIF9fcDNfOTIxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTIxID0gX19wMF85MjE7IFwKICBpbnQzMl90IF9fczFfOTIxID0gX19wMV85MjE7IFwKICBpbnQzMng0X3QgX19zMl85MjEgPSBfX3AyXzkyMTsgXAogIGludDMyX3QgX19yZXRfOTIxOyBcCiAgX19yZXRfOTIxID0gdnFzdWJzX3MzMihfX3MwXzkyMSwgdnFyZG11bGhzX3MzMihfX3MxXzkyMSwgdmdldHFfbGFuZV9zMzIoX19zMl85MjEsIF9fcDNfOTIxKSkpOyBcCiAgX19yZXRfOTIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hzX2xhbmVxX3MzMihfX3AwXzkyMiwgX19wMV85MjIsIF9fcDJfOTIyLCBfX3AzXzkyMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzkyMiA9IF9fcDBfOTIyOyBcCiAgaW50MzJfdCBfX3MxXzkyMiA9IF9fcDFfOTIyOyBcCiAgaW50MzJ4NF90IF9fczJfOTIyID0gX19wMl85MjI7IFwKICBpbnQzMng0X3QgX19yZXYyXzkyMjsgIF9fcmV2Ml85MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkyMiwgX19zMl85MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF85MjI7IFwKICBfX3JldF85MjIgPSB2cXN1YnNfczMyKF9fczBfOTIyLCB2cXJkbXVsaHNfczMyKF9fczFfOTIyLCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfOTIyLCBfX3AzXzkyMikpKTsgXAogIF9fcmV0XzkyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoaF9sYW5lcV9zMTYoX19wMF85MjMsIF9fcDFfOTIzLCBfX3AyXzkyMywgX19wM185MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MjMgPSBfX3AwXzkyMzsgXAogIGludDE2X3QgX19zMV85MjMgPSBfX3AxXzkyMzsgXAogIGludDE2eDhfdCBfX3MyXzkyMyA9IF9fcDJfOTIzOyBcCiAgaW50MTZfdCBfX3JldF85MjM7IFwKICBfX3JldF85MjMgPSB2cXN1YmhfczE2KF9fczBfOTIzLCB2cXJkbXVsaGhfczE2KF9fczFfOTIzLCB2Z2V0cV9sYW5lX3MxNihfX3MyXzkyMywgX19wM185MjMpKSk7IFwKICBfX3JldF85MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxzaGhfbGFuZXFfczE2KF9fcDBfOTI0LCBfX3AxXzkyNCwgX19wMl85MjQsIF9fcDNfOTI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTI0ID0gX19wMF85MjQ7IFwKICBpbnQxNl90IF9fczFfOTI0ID0gX19wMV85MjQ7IFwKICBpbnQxNng4X3QgX19zMl85MjQgPSBfX3AyXzkyNDsgXAogIGludDE2eDhfdCBfX3JldjJfOTI0OyAgX19yZXYyXzkyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTI0LCBfX3MyXzkyNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzkyNDsgXAogIF9fcmV0XzkyNCA9IHZxc3ViaF9zMTYoX19zMF85MjQsIHZxcmRtdWxoaF9zMTYoX19zMV85MjQsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczE2KF9fcmV2Ml85MjQsIF9fcDNfOTI0KSkpOyBcCiAgX19yZXRfOTI0OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZhYmRsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfdTgodmdldF9oaWdoX3U4KF9fcDApLCB2Z2V0X2hpZ2hfdTgoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFiZGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTgoX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2YWJkbF91MzIodmdldF9oaWdoX3UzMihfX3AwKSwgdmdldF9oaWdoX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2YWJkbF91MTYodmdldF9oaWdoX3UxNihfX3AwKSwgdmdldF9oaWdoX3UxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhYmRsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfczgodmdldF9oaWdoX3M4KF9fcDApLCB2Z2V0X2hpZ2hfczgoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfczgoX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmRsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZhYmRsX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCB2Z2V0X2hpZ2hfczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFiZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJkbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFiZGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIHZnZXRfaGlnaF9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJkbF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmRsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3U4KF9fcDApICsgdm1vdmxfaGlnaF91OChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhZGRsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3UzMihfX3AwKSArIHZtb3ZsX2hpZ2hfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZGxfaGlnaF91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9oaWdoX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGRsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTE2KF9fcDApICsgdm1vdmxfaGlnaF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfczgoX19wMCkgKyB2bW92bF9oaWdoX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWRkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF9zOChfX3JldjApICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zMzIoX19wMCkgKyB2bW92bF9oaWdoX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFkZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGRsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfczE2KF9fcDApICsgdm1vdmxfaGlnaF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGRsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF9zMTYoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHdfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91OChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhZGR3X2hpZ2hfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkd19oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWRkd19oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF91MzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWRkd19oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkd19oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGR3X2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtb3ZsX2hpZ2hfczgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhZGR3X2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWRkd19oaWdoX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGR3X2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGR3X2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9oaWdoX3MxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmFkZHdfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9oaWdoX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9wNjQoX19wMF85MjUsIF9fcDFfOTI1LCBfX3AyXzkyNSwgX19wM185MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MjUgPSBfX3AwXzkyNTsgXAogIHBvbHk2NHgxX3QgX19zMl85MjUgPSBfX3AyXzkyNTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTI1OyBcCiAgX19yZXRfOTI1ID0gdnNldHFfbGFuZV9wNjQodmdldF9sYW5lX3A2NChfX3MyXzkyNSwgX19wM185MjUpLCBfX3MwXzkyNSwgX19wMV85MjUpOyBcCiAgX19yZXRfOTI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfcDY0KF9fcDBfOTI2LCBfX3AxXzkyNiwgX19wMl85MjYsIF9fcDNfOTI2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczBfOTI2ID0gX19wMF85MjY7IFwKICBwb2x5NjR4MV90IF9fczJfOTI2ID0gX19wMl85MjY7IFwKICBwb2x5NjR4Ml90IF9fcmV2MF85MjY7ICBfX3JldjBfOTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MjYsIF9fczBfOTI2LCAxLCAwKTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTI2OyBcCiAgX19yZXRfOTI2ID0gX19ub3N3YXBfdnNldHFfbGFuZV9wNjQodmdldF9sYW5lX3A2NChfX3MyXzkyNiwgX19wM185MjYpLCBfX3JldjBfOTI2LCBfX3AxXzkyNik7IFwKICBfX3JldF85MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MjYsIF9fcmV0XzkyNiwgMSwgMCk7IFwKICBfX3JldF85MjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9mNjQoX19wMF85MjcsIF9fcDFfOTI3LCBfX3AyXzkyNywgX19wM185MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfOTI3ID0gX19wMF85Mjc7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzkyNyA9IF9fcDJfOTI3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfOTI3OyBcCiAgX19yZXRfOTI3ID0gdnNldHFfbGFuZV9mNjQodmdldF9sYW5lX2Y2NChfX3MyXzkyNywgX19wM185MjcpLCBfX3MwXzkyNywgX19wMV85MjcpOyBcCiAgX19yZXRfOTI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfZjY0KF9fcDBfOTI4LCBfX3AxXzkyOCwgX19wMl85MjgsIF9fcDNfOTI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzkyOCA9IF9fcDBfOTI4OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl85MjggPSBfX3AyXzkyODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF85Mjg7ICBfX3JldjBfOTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MjgsIF9fczBfOTI4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzkyODsgXAogIF9fcmV0XzkyOCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfZjY0KHZnZXRfbGFuZV9mNjQoX19zMl85MjgsIF9fcDNfOTI4KSwgX19yZXYwXzkyOCwgX19wMV85MjgpOyBcCiAgX19yZXRfOTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTI4LCBfX3JldF85MjgsIDEsIDApOyBcCiAgX19yZXRfOTI4OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y29weV9sYW5lX3A2NChfX3AwXzkyOSwgX19wMV85MjksIF9fcDJfOTI5LCBfX3AzXzkyOSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwXzkyOSA9IF9fcDBfOTI5OyBcCiAgcG9seTY0eDFfdCBfX3MyXzkyOSA9IF9fcDJfOTI5OyBcCiAgcG9seTY0eDFfdCBfX3JldF85Mjk7IFwKICBfX3JldF85MjkgPSB2c2V0X2xhbmVfcDY0KHZnZXRfbGFuZV9wNjQoX19zMl85MjksIF9fcDNfOTI5KSwgX19zMF85MjksIF9fcDFfOTI5KTsgXAogIF9fcmV0XzkyOTsgXAp9KQojZGVmaW5lIHZjb3B5X2xhbmVfZjY0KF9fcDBfOTMwLCBfX3AxXzkzMCwgX19wMl85MzAsIF9fcDNfOTMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzkzMCA9IF9fcDBfOTMwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl85MzAgPSBfX3AyXzkzMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzkzMDsgXAogIF9fcmV0XzkzMCA9IHZzZXRfbGFuZV9mNjQodmdldF9sYW5lX2Y2NChfX3MyXzkzMCwgX19wM185MzApLCBfX3MwXzkzMCwgX19wMV85MzApOyBcCiAgX19yZXRfOTMwOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9wNjQoX19wMF85MzEsIF9fcDFfOTMxLCBfX3AyXzkzMSwgX19wM185MzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MzEgPSBfX3AwXzkzMTsgXAogIHBvbHk2NHgyX3QgX19zMl85MzEgPSBfX3AyXzkzMTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTMxOyBcCiAgX19yZXRfOTMxID0gdnNldHFfbGFuZV9wNjQodmdldHFfbGFuZV9wNjQoX19zMl85MzEsIF9fcDNfOTMxKSwgX19zMF85MzEsIF9fcDFfOTMxKTsgXAogIF9fcmV0XzkzMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9wNjQoX19wMF85MzIsIF9fcDFfOTMyLCBfX3AyXzkzMiwgX19wM185MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MzIgPSBfX3AwXzkzMjsgXAogIHBvbHk2NHgyX3QgX19zMl85MzIgPSBfX3AyXzkzMjsgXAogIHBvbHk2NHgyX3QgX19yZXYwXzkzMjsgIF9fcmV2MF85MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkzMiwgX19zMF85MzIsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldjJfOTMyOyAgX19yZXYyXzkzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTMyLCBfX3MyXzkzMiwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0XzkzMjsgXAogIF9fcmV0XzkzMiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcmV2Ml85MzIsIF9fcDNfOTMyKSwgX19yZXYwXzkzMiwgX19wMV85MzIpOyBcCiAgX19yZXRfOTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTMyLCBfX3JldF85MzIsIDEsIDApOyBcCiAgX19yZXRfOTMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2Y2NChfX3AwXzkzMywgX19wMV85MzMsIF9fcDJfOTMzLCBfX3AzXzkzMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF85MzMgPSBfX3AwXzkzMzsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTMzID0gX19wMl85MzM7IFwKICBmbG9hdDY0eDJfdCBfX3JldF85MzM7IFwKICBfX3JldF85MzMgPSB2c2V0cV9sYW5lX2Y2NCh2Z2V0cV9sYW5lX2Y2NChfX3MyXzkzMywgX19wM185MzMpLCBfX3MwXzkzMywgX19wMV85MzMpOyBcCiAgX19yZXRfOTMzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2Y2NChfX3AwXzkzNCwgX19wMV85MzQsIF9fcDJfOTM0LCBfX3AzXzkzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF85MzQgPSBfX3AwXzkzNDsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTM0ID0gX19wMl85MzQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfOTM0OyAgX19yZXYwXzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTM0LCBfX3MwXzkzNCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfOTM0OyAgX19yZXYyXzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTM0LCBfX3MyXzkzNCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF85MzQ7IFwKICBfX3JldF85MzQgPSBfX25vc3dhcF92c2V0cV9sYW5lX2Y2NChfX25vc3dhcF92Z2V0cV9sYW5lX2Y2NChfX3JldjJfOTM0LCBfX3AzXzkzNCksIF9fcmV2MF85MzQsIF9fcDFfOTM0KTsgXAogIF9fcmV0XzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzkzNCwgX19yZXRfOTM0LCAxLCAwKTsgXAogIF9fcmV0XzkzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3A2NChfX3AwXzkzNSwgX19wMV85MzUsIF9fcDJfOTM1LCBfX3AzXzkzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwXzkzNSA9IF9fcDBfOTM1OyBcCiAgcG9seTY0eDJfdCBfX3MyXzkzNSA9IF9fcDJfOTM1OyBcCiAgcG9seTY0eDFfdCBfX3JldF85MzU7IFwKICBfX3JldF85MzUgPSB2c2V0X2xhbmVfcDY0KHZnZXRxX2xhbmVfcDY0KF9fczJfOTM1LCBfX3AzXzkzNSksIF9fczBfOTM1LCBfX3AxXzkzNSk7IFwKICBfX3JldF85MzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9wNjQoX19wMF85MzYsIF9fcDFfOTM2LCBfX3AyXzkzNiwgX19wM185MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF85MzYgPSBfX3AwXzkzNjsgXAogIHBvbHk2NHgyX3QgX19zMl85MzYgPSBfX3AyXzkzNjsgXAogIHBvbHk2NHgyX3QgX19yZXYyXzkzNjsgIF9fcmV2Ml85MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkzNiwgX19zMl85MzYsIDEsIDApOyBcCiAgcG9seTY0eDFfdCBfX3JldF85MzY7IFwKICBfX3JldF85MzYgPSB2c2V0X2xhbmVfcDY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcmV2Ml85MzYsIF9fcDNfOTM2KSwgX19zMF85MzYsIF9fcDFfOTM2KTsgXAogIF9fcmV0XzkzNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX2Y2NChfX3AwXzkzNywgX19wMV85MzcsIF9fcDJfOTM3LCBfX3AzXzkzNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF85MzcgPSBfX3AwXzkzNzsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTM3ID0gX19wMl85Mzc7IFwKICBmbG9hdDY0eDFfdCBfX3JldF85Mzc7IFwKICBfX3JldF85MzcgPSB2c2V0X2xhbmVfZjY0KHZnZXRxX2xhbmVfZjY0KF9fczJfOTM3LCBfX3AzXzkzNyksIF9fczBfOTM3LCBfX3AxXzkzNyk7IFwKICBfX3JldF85Mzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9mNjQoX19wMF85MzgsIF9fcDFfOTM4LCBfX3AyXzkzOCwgX19wM185MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTM4ID0gX19wMF85Mzg7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzkzOCA9IF9fcDJfOTM4OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzkzODsgIF9fcmV2Ml85MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkzOCwgX19zMl85MzgsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTM4OyBcCiAgX19yZXRfOTM4ID0gdnNldF9sYW5lX2Y2NChfX25vc3dhcF92Z2V0cV9sYW5lX2Y2NChfX3JldjJfOTM4LCBfX3AzXzkzOCksIF9fczBfOTM4LCBfX3AxXzkzOCk7IFwKICBfX3JldF85Mzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtbGFsX2hpZ2hfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF91OChfX3AwLCB2Z2V0X2hpZ2hfdTgoX19wMSksIHZnZXRfaGlnaF91OChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfdTgoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbGFsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1sYWxfdTMyKF9fcDAsIHZnZXRfaGlnaF91MzIoX19wMSksIHZnZXRfaGlnaF91MzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfaGlnaF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF91MzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF91MTYoX19wMCwgdmdldF9oaWdoX3UxNihfX3AxKSwgdmdldF9oaWdoX3UxNihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxhbF9oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtbGFsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX3M4KF9fcDAsIHZnZXRfaGlnaF9zOChfX3AxKSwgdmdldF9oaWdoX3M4KF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYWxfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfczgoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX3MzMihfX3AwLCB2Z2V0X2hpZ2hfczMyKF9fcDEpLCB2Z2V0X2hpZ2hfczMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF9zMTYoX19wMCwgdmdldF9oaWdoX3MxNihfX3AxKSwgdmdldF9oaWdoX3MxNihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF9zMTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF9uX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbGFsX2hpZ2hfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX25fdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhbF9oaWdoX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX25fdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfaGlnaF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfbl91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bWxhbF9oaWdoX25fczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF9uX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sYWxfbl9zMTYoX19wMCwgdmdldF9oaWdoX3MxNihfX3AxKSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxzbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfdTgoX19wMCwgdmdldF9oaWdoX3U4KF9fcDEpLCB2Z2V0X2hpZ2hfdTgoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc2xfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX3U4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bWxzbF9oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbHNsX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCB2Z2V0X2hpZ2hfdTMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbHNsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbHNsX2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIHZnZXRfaGlnaF91MTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzbF9oaWdoX3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9zOChfX3AwLCB2Z2V0X2hpZ2hfczgoX19wMSksIHZnZXRfaGlnaF9zOChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbHNsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX3M4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9zMzIoX19wMCwgdmdldF9oaWdoX3MzMihfX3AxKSwgdmdldF9oaWdoX3MzMihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbHNsX2hpZ2hfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfbl91MzIoX19wMCwgdmdldF9oaWdoX3UzMihfX3AxKSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxzbF9oaWdoX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9uX3UzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfaGlnaF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9uX3UxNihfX3AwLCB2Z2V0X2hpZ2hfdTE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbHNsX2hpZ2hfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX25fdTE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9uX3MzMihfX3AwLCB2Z2V0X2hpZ2hfczMyKF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfaGlnaF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc2xfaGlnaF9uX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtbHNsX25fczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9uX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdm11bHhfbGFuZV9mNjQoX19wMF85MzksIF9fcDFfOTM5LCBfX3AyXzkzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF85MzkgPSBfX3AwXzkzOTsgXAogIGZsb2F0NjR4MV90IF9fczFfOTM5ID0gX19wMV85Mzk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF85Mzk7IFwKICBmbG9hdDY0X3QgX194XzkzOSA9IHZnZXRfbGFuZV9mNjQoX19zMF85MzksIDApOyBcCiAgZmxvYXQ2NF90IF9feV85MzkgPSB2Z2V0X2xhbmVfZjY0KF9fczFfOTM5LCBfX3AyXzkzOSk7IFwKICBmbG9hdDY0X3QgX196XzkzOSA9IHZtdWx4ZF9mNjQoX194XzkzOSwgX195XzkzOSk7IFwKICBfX3JldF85MzkgPSB2c2V0X2xhbmVfZjY0KF9fel85MzksIF9fczBfOTM5LCBfX3AyXzkzOSk7IFwKICBfX3JldF85Mzk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbGFuZXFfZjY0KF9fcDBfOTQwLCBfX3AxXzk0MCwgX19wMl85NDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTQwID0gX19wMF85NDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzk0MCA9IF9fcDFfOTQwOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTQwOyBcCiAgZmxvYXQ2NF90IF9feF85NDAgPSB2Z2V0X2xhbmVfZjY0KF9fczBfOTQwLCAwKTsgXAogIGZsb2F0NjRfdCBfX3lfOTQwID0gdmdldHFfbGFuZV9mNjQoX19zMV85NDAsIF9fcDJfOTQwKTsgXAogIGZsb2F0NjRfdCBfX3pfOTQwID0gdm11bHhkX2Y2NChfX3hfOTQwLCBfX3lfOTQwKTsgXAogIF9fcmV0Xzk0MCA9IHZzZXRfbGFuZV9mNjQoX196Xzk0MCwgX19zMF85NDAsIDApOyBcCiAgX19yZXRfOTQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhfbGFuZXFfZjY0KF9fcDBfOTQxLCBfX3AxXzk0MSwgX19wMl85NDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTQxID0gX19wMF85NDE7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzk0MSA9IF9fcDFfOTQxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzk0MTsgIF9fcmV2MV85NDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk0MSwgX19zMV85NDEsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTQxOyBcCiAgZmxvYXQ2NF90IF9feF85NDEgPSB2Z2V0X2xhbmVfZjY0KF9fczBfOTQxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3lfOTQxID0gX19ub3N3YXBfdmdldHFfbGFuZV9mNjQoX19yZXYxXzk0MSwgX19wMl85NDEpOyBcCiAgZmxvYXQ2NF90IF9fel85NDEgPSB2bXVseGRfZjY0KF9feF85NDEsIF9feV85NDEpOyBcCiAgX19yZXRfOTQxID0gdnNldF9sYW5lX2Y2NChfX3pfOTQxLCBfX3MwXzk0MSwgMCk7IFwKICBfX3JldF85NDE7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWJhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWJhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZhYmFsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92YWJkbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZhYmFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJhbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZhYmFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92YWJkbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFiYWxfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92YWJhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFiYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdmFiYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFiYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdmFiYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhYmFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZhYmFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fbm9zd2FwX3ZhYmRsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWJhbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfdTgoX19wMCwgdmdldF9oaWdoX3U4KF9fcDEpLCB2Z2V0X2hpZ2hfdTgoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFiYWxfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmFsX3U4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJhbF9oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZhYmFsX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCB2Z2V0X2hpZ2hfdTMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZhYmFsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiYWxfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhYmFsX2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIHZnZXRfaGlnaF91MTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFiYWxfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJhbF91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhbF9oaWdoX3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2YWJhbF9zOChfX3AwLCB2Z2V0X2hpZ2hfczgoX19wMSksIHZnZXRfaGlnaF9zOChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhYmFsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmFsX3M4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2YWJhbF9zMzIoX19wMCwgdmdldF9oaWdoX3MzMihfX3AxKSwgdmdldF9oaWdoX3MzMihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhYmFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJhbF9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJhbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJhbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiYWxfczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKCiN1bmRlZiBfX2FpCgojZW5kaWYgLyogaWYgIWRlZmluZWQoX19BUk1fTkVPTikgKi8KI2VuZGlmIC8qIGlmbmRlZiBfX0FSTV9GUCAqLwojZW5kaWYgLyogX19BUk1fTkVPTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEyYml0YWxnaW50cmluLmggLSBCSVRBTEcgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJiaXRhbGdpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyQklUQUxHSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkJJVEFMR0lOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYml0YWxnIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX3BvcGNudF9lcGkxNihfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBvcGNudHdfNTEyKChfX3YzMmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9wb3BjbnRfZXBpMTYoX19CKSwKICAgICAgICAgICAgICAoX192MzJoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3BvcGNudF9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpMTYoKF9fbTUxMmkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VLAogICAgICAgICAgICAgIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9wb3BjbnRfZXBpOChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBvcGNudGJfNTEyKChfX3Y2NHFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpOChfX201MTJpIF9fQSwgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpIF9fVSwKICAgICAgICAgICAgICAoX192NjRxaSkgX21tNTEyX3BvcGNudF9lcGk4KF9fQiksCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9wb3BjbnRfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpOCgoX19tNTEyaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICBfX1UsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpIF9fYnVpbHRpbl9pYTMyX3Zwc2h1ZmJpdHFtYjUxMl9tYXNrKChfX3Y2NHFpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQiwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzaygoX19tbWFzazY0KSAtMSwKICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgX19CKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAYXZ4NTEydmx2bm5paW50cmluLmgAZnhzcmludHJpbi5oAC8qPT09LS0tLSBtbTNkbm93LmggLSAzRE5vdyEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX01NM0ROT1dfSF9JTkNMVURFRAojZGVmaW5lIF9NTTNETk9XX0hfSU5DTFVERUQKCiNpbmNsdWRlIDxtbWludHJpbi5oPgojaW5jbHVkZSA8cHJmY2h3aW50cmluLmg+Cgp0eXBlZGVmIGZsb2F0IF9fdjJzZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCIzZG5vdyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIjNkbm93IikpKQpfbV9mZW1tcyh2b2lkKSB7CiAgX19idWlsdGluX2lhMzJfZmVtbXMoKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3Bhdmd1c2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGF2Z3VzYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZjJpZChfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmMmlkKChfX3Yyc2YpX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmYWNjKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmYWNjKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmYWRkKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmYWRkKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmY21wZXEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZjbXBlcSgoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZmNtcGdlKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmY21wZ2UoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZjbXBndChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZmNtcGd0KChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbWF4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbWF4KChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbWluKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbWluKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbXVsKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbXVsKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmcmNwKF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3AoKF9fdjJzZilfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyY3BpdDEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3BpdDEoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyY3BpdDIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3BpdDIoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyc3FydChfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmcnNxcnQoKF9fdjJzZilfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyc3FydGl0MShfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnJzcWl0MSgoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZnN1YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnN1YigoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZnN1YnIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZzdWJyKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BpMmZkKF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGkyZmQoKF9fdjJzaSlfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcG11bGhydyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsaHJ3KChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLyogSGFuZGxlIHRoZSAzZG5vd2EgaW5zdHJ1Y3Rpb25zIGhlcmUuICovCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCIzZG5vd2EiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNjQpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZjJpdyhfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmMml3KChfX3Yyc2YpX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbmFjYyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZm5hY2MoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZwbmFjYyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnBuYWNjKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BpMmZ3KF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGkyZncoKF9fdjJzaSlfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcHN3YXBkc2YoX19tNjQgX19tKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3dhcGRzZigoX192MnNmKV9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wc3dhcGRzaShfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3Bzd2FwZHNpKChfX3Yyc2kpX19tKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAvKj09PS0tLS0gc3RkZGVmLmggLSBCYXNpYyB0eXBlIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQoX19TVERERUZfSCkgfHwgZGVmaW5lZChfX25lZWRfcHRyZGlmZl90KSB8fCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX25lZWRfc2l6ZV90KSB8fCBkZWZpbmVkKF9fbmVlZF93Y2hhcl90KSB8fCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX25lZWRfTlVMTCkgfHwgZGVmaW5lZChfX25lZWRfd2ludF90KQoKI2lmICFkZWZpbmVkKF9fbmVlZF9wdHJkaWZmX3QpICYmICFkZWZpbmVkKF9fbmVlZF9zaXplX3QpICYmICAgICAgICAgICAgICAgICAgIFwKICAgICFkZWZpbmVkKF9fbmVlZF93Y2hhcl90KSAmJiAhZGVmaW5lZChfX25lZWRfTlVMTCkgJiYgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICFkZWZpbmVkKF9fbmVlZF93aW50X3QpCi8qIEFsd2F5cyBkZWZpbmUgbWlzY2VsbGFuZW91cyBwaWVjZXMgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9fU1REREVGX0gKI2VuZGlmCiNkZWZpbmUgX19uZWVkX3B0cmRpZmZfdAojZGVmaW5lIF9fbmVlZF9zaXplX3QKI2RlZmluZSBfX25lZWRfd2NoYXJfdAojZGVmaW5lIF9fbmVlZF9OVUxMCiNkZWZpbmUgX19uZWVkX1NURERFRl9IX21pc2MKLyogX19uZWVkX3dpbnRfdCBpcyBpbnRlbnRpb25hbGx5IG5vdCBkZWZpbmVkIGhlcmUuICovCiNlbmRpZgoKI2lmIGRlZmluZWQoX19uZWVkX3B0cmRpZmZfdCkKI2lmICFkZWZpbmVkKF9QVFJESUZGX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSBwdHJkaWZmX3Qgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9QVFJESUZGX1QKI2VuZGlmCnR5cGVkZWYgX19QVFJESUZGX1RZUEVfXyBwdHJkaWZmX3Q7CiNlbmRpZgojdW5kZWYgX19uZWVkX3B0cmRpZmZfdAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfcHRyZGlmZl90KSAqLwoKI2lmIGRlZmluZWQoX19uZWVkX3NpemVfdCkKI2lmICFkZWZpbmVkKF9TSVpFX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSBzaXplX3Qgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9TSVpFX1QKI2VuZGlmCnR5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7CiNlbmRpZgojdW5kZWYgX19uZWVkX3NpemVfdAojZW5kaWYgLypkZWZpbmVkKF9fbmVlZF9zaXplX3QpICovCgojaWYgZGVmaW5lZChfX25lZWRfU1REREVGX0hfbWlzYykKLyogSVNPOTg5OToyMDExIDcuMjAgKEMxMSBBbm5leCBLKTogRGVmaW5lIHJzaXplX3QgaWYgX19TVERDX1dBTlRfTElCX0VYVDFfXyBpcwogKiBlbmFibGVkLiAqLwojaWYgKGRlZmluZWQoX19TVERDX1dBTlRfTElCX0VYVDFfXykgJiYgX19TVERDX1dBTlRfTElCX0VYVDFfXyA+PSAxICYmIFwKICAgICAhZGVmaW5lZChfUlNJWkVfVCkpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSByc2l6ZV90IHdoZW4gbW9kdWxlcyBhcmUgYXZhaWxhYmxlLiAqLwojaWYgIV9faGFzX2ZlYXR1cmUobW9kdWxlcykKI2RlZmluZSBfUlNJWkVfVAojZW5kaWYKdHlwZWRlZiBfX1NJWkVfVFlQRV9fIHJzaXplX3Q7CiNlbmRpZgojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfU1REREVGX0hfbWlzYykgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF93Y2hhcl90KQojaWZuZGVmIF9fY3BsdXNwbHVzCi8qIEFsd2F5cyBkZWZpbmUgd2NoYXJfdCB3aGVuIG1vZHVsZXMgYXJlIGF2YWlsYWJsZS4gKi8KI2lmICFkZWZpbmVkKF9XQ0hBUl9UKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9XQ0hBUl9UCiNpZiBkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykKI2RlZmluZSBfV0NIQVJfVF9ERUZJTkVECiNlbmRpZgojZW5kaWYKdHlwZWRlZiBfX1dDSEFSX1RZUEVfXyB3Y2hhcl90OwojZW5kaWYKI2VuZGlmCiN1bmRlZiBfX25lZWRfd2NoYXJfdAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfd2NoYXJfdCkgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF9OVUxMKQojdW5kZWYgTlVMTAojaWZkZWYgX19jcGx1c3BsdXMKIyAgaWYgIWRlZmluZWQoX19NSU5HVzMyX18pICYmICFkZWZpbmVkKF9NU0NfVkVSKQojICAgIGRlZmluZSBOVUxMIF9fbnVsbAojICBlbHNlCiMgICAgZGVmaW5lIE5VTEwgMAojICBlbmRpZgojZWxzZQojICBkZWZpbmUgTlVMTCAoKHZvaWQqKTApCiNlbmRpZgojaWZkZWYgX19jcGx1c3BsdXMKI2lmIGRlZmluZWQoX01TQ19FWFRFTlNJT05TKSAmJiBkZWZpbmVkKF9OQVRJVkVfTlVMTFBUUl9TVVBQT1JURUQpCm5hbWVzcGFjZSBzdGQgeyB0eXBlZGVmIGRlY2x0eXBlKG51bGxwdHIpIG51bGxwdHJfdDsgfQp1c2luZyA6OnN0ZDo6bnVsbHB0cl90OwojZW5kaWYKI2VuZGlmCiN1bmRlZiBfX25lZWRfTlVMTAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfTlVMTCkgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF9TVERERUZfSF9taXNjKQojaWYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKI2luY2x1ZGUgIl9fc3RkZGVmX21heF9hbGlnbl90LmgiCiNlbmRpZgojZGVmaW5lIG9mZnNldG9mKHQsIGQpIF9fYnVpbHRpbl9vZmZzZXRvZih0LCBkKQojdW5kZWYgX19uZWVkX1NURERFRl9IX21pc2MKI2VuZGlmICAvKiBkZWZpbmVkKF9fbmVlZF9TVERERUZfSF9taXNjKSAqLwoKLyogU29tZSBDIGxpYnJhcmllcyBleHBlY3QgdG8gc2VlIGEgd2ludF90IGhlcmUuIE90aGVycyAobm90YWJseSBNaW5HVykgd2lsbCB1c2UKX19XSU5UX1RZUEVfXyBkaXJlY3RseTsgYWNjb21tb2RhdGUgYm90aCBieSByZXF1aXJpbmcgX19uZWVkX3dpbnRfdCAqLwojaWYgZGVmaW5lZChfX25lZWRfd2ludF90KQovKiBBbHdheXMgZGVmaW5lIHdpbnRfdCB3aGVuIG1vZHVsZXMgYXJlIGF2YWlsYWJsZS4gKi8KI2lmICFkZWZpbmVkKF9XSU5UX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKI2lmICFfX2hhc19mZWF0dXJlKG1vZHVsZXMpCiNkZWZpbmUgX1dJTlRfVAojZW5kaWYKdHlwZWRlZiBfX1dJTlRfVFlQRV9fIHdpbnRfdDsKI2VuZGlmCiN1bmRlZiBfX25lZWRfd2ludF90CiNlbmRpZiAvKiBfX25lZWRfd2ludF90ICovCgojZW5kaWYKAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0tIHZhZXNpbnRyaW4uaCAtIFZBRVMgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx2YWVzaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1ZBRVNJTlRSSU5fSAojZGVmaW5lIF9fVkFFU0lOVFJJTl9ICgovKiBEZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIFlNTSBmb3Jtcy4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJ2YWVzIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBaTU0gZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0YgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmLHZhZXMiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNTEyKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKIF9tbTI1Nl9hZXNlbmNfZXBpMTI4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfYWVzZW5jMjU2KChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwogX21tMjU2X2Flc2RlY19lcGkxMjgoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9hZXNkZWMyNTYoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y0ZGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCiBfbW0yNTZfYWVzZW5jbGFzdF9lcGkxMjgoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9hZXNlbmNsYXN0MjU2KChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwogX21tMjU2X2Flc2RlY2xhc3RfZXBpMTI4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDI1NigoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjRkaSkgX19CKTsKfQoKI2lmZGVmIF9fQVZYNTEyRklOVFJJTl9ICnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTX0YKIF9tbTUxMl9hZXNlbmNfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZW5jNTEyKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSU19GCiBfbW01MTJfYWVzZGVjX2VwaTEyOChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2Flc2RlYzUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfRgogX21tNTEyX2Flc2VuY2xhc3RfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZW5jbGFzdDUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfRgogX21tNTEyX2Flc2RlY2xhc3RfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQojZW5kaWYgLy8gX19BVlg1MTJGSU5UUklOX0gKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19GCgojZW5kaWYKAHZlY2ludHJpbi5oAHBhdGgATWlzcyBleHBvbmVudCBpbiBudW1iZXIuAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvcmUyLmNjAEVycm9yIGNvbXBpbGluZyAnAFxTAFs6d29yZDpdAGFsdCAtPiAlZCB8ICVkAFVuZXhwZWN0ZWQgc3BlY2lhbCBzdGF0ZSBpbiBSdW5TdGF0ZU9uQnl0ZQBubyBhcmd1bWVudCBmb3IgcmVwZXRpdGlvbiBvcGVyYXRvcgBleHRlcm5hbC9yZWdleC1yZTIvcmUyL3NpbXBsaWZ5LmNjAFNpbXBsaWZ5IGZhaWxlZCBvbiAAJABcegBceCUwMngAQnJhaWxsZQBJbnNjcmlwdGlvbmFsX1BhaGxhdmkASW5zY3JpcHRpb25hbF9QYXJ0aGlhbgBNZW5kZV9LaWtha3VpAEZhaWxlZCB0byBjcmVhdGUgcGlwZSwgZXJybm89JWQAU2VjdGlvbiBuYW1lICclcycgaXMgdG9vIGxvbmcgKCV6dSk7IHNlY3Rpb24gd2lsbCBub3QgYmUgZm91bmQgKGV2ZW4gaWYgcHJlc2VudCkuAGJhZCBtYWdpYyBudW1iZXIgaW4gQWRkVG9GcmVlbGlzdCgpAF9HTE9CQUxfX05fAGRlY2ltYWwzMgAtLQBjbQBVTkFVVEhFTlRJQ0FURUQAIGRvZXMgbm90IG1hdGNoIHBvc2l0aW9uYWwgbGVuZ3RoIABkZXRlY3RlZCBpbGxlZ2FsIHJlY3Vyc2lvbiBpbiBNdXRleCBjb2RlAC0yNTYyMDQ3Nzg4MDE1MjE1aDMwbThzAFAtNTIxAEFFUy1HQ00gRW5jcnlwdGlvbiBLQVQAREJSRyBHZW5lcmF0ZSBLQVQAJXM6IGdldHJhbmRvbSBpbmRpY2F0ZXMgdGhhdCB0aGUgZW50cm9weSBwb29sIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZC4gUmF0aGVyIHRoYW4gY29udGludWUgd2l0aCBwb29yIGVudHJvcHksIHRoaXMgcHJvY2VzcyB3aWxsIGJsb2NrIHVudGlsIGVudHJvcHkgaXMgYXZhaWxhYmxlLgoAa3l0aGUvcHJvdG8vYW5hbHlzaXMucHJvdG8AIHR5cGUgZG9lcyBub3QgbWF0Y2gKAGt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuU3RhdFBhdGgucGF0aAAtYwBjKysAT3V0cHV0IGZpbGUgbXVzdCBoYXZlICcua3ppcCcgZXh0ZW5zaW9uAC8qPT09LS0tLSBfX2NsYW5nX2hpcF9jbWF0aC5oIC0gSElQIGNtYXRoIGRlY2xzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfSElQX0NNQVRIX0hfXwojZGVmaW5lIF9fQ0xBTkdfSElQX0NNQVRIX0hfXwoKI2lmICFkZWZpbmVkKF9fSElQX18pICYmICFkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgSElQIGFuZCBPcGVuTVAgQU1ER0NOIGRldmljZSBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgojaWYgIWRlZmluZWQoX19ISVBDQ19SVENfXykKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiNpbmNsdWRlIDxsaW1pdHM+CiNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNlbmRpZgojaW5jbHVkZSA8bGltaXRzLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2VuZGlmIC8vICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQojcHJhZ21hIHB1c2hfbWFjcm8oIl9fQ09OU1RFWFBSX18iKQojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI2RlZmluZSBfX0RFVklDRV9fIHN0YXRpYyBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lLCBub3Rocm93KSkKI2RlZmluZSBfX0NPTlNURVhQUl9fIGNvbnN0ZXhwcgojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKQojZGVmaW5lIF9fQ09OU1RFWFBSX18KI2VuZGlmIC8vIF9fT1BFTk1QX0FNREdDTl9fCgovLyBTdGFydCB3aXRoIGZ1bmN0aW9ucyB0aGF0IGNhbm5vdCBiZSBkZWZpbmVkIGJ5IERFRiBtYWNyb3MgYmVsb3cuCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQojaWYgZGVmaW5lZCBfX09QRU5NUF9BTURHQ05fXwpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgZmFicyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6ZmFic2YoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgc2luKGZsb2F0IF9feCkgeyByZXR1cm4gOjpzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IGNvcyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y29zZihfX3gpOyB9CiNlbmRpZgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZG91YmxlIGFicyhkb3VibGUgX194KSB7IHJldHVybiA6OmZhYnMoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgYWJzKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmYWJzZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBsb25nIGxvbmcgYWJzKGxvbmcgbG9uZyBfX24pIHsgcmV0dXJuIDo6bGxhYnMoX19uKTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gbG9uZyBhYnMobG9uZyBfX24pIHsgcmV0dXJuIDo6bGFicyhfX24pOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBmbWEoZmxvYXQgX194LCBmbG9hdCBfX3ksIGZsb2F0IF9feikgewogIHJldHVybiA6OmZtYWYoX194LCBfX3ksIF9feik7Cn0KI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCi8vIFRoZSB2YWx1ZSByZXR1cm5lZCBieSBmcGNsYXNzaWZ5IGlzIHBsYXRmb3JtIGRlcGVuZGVudCwgdGhlcmVmb3JlIGl0IGlzIG5vdAovLyBzdXBwb3J0ZWQgYnkgaGlwUlRDLgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGZwY2xhc3NpZnkoZmxvYXQgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9mcGNsYXNzaWZ5KEZQX05BTiwgRlBfSU5GSU5JVEUsIEZQX05PUk1BTCwgRlBfU1VCTk9STUFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUF9aRVJPLCBfX3gpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBpbnQgZnBjbGFzc2lmeShkb3VibGUgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9mcGNsYXNzaWZ5KEZQX05BTiwgRlBfSU5GSU5JVEUsIEZQX05PUk1BTCwgRlBfU1VCTk9STUFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUF9aRVJPLCBfX3gpOwp9CiNlbmRpZiAvLyAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQoKX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IGZyZXhwKGZsb2F0IF9fYXJnLCBpbnQgKl9fZXhwKSB7CiAgcmV0dXJuIDo6ZnJleHBmKF9fYXJnLCBfX2V4cCk7Cn0KCiNpZiBkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQovLyBGb3IgT3Blbk1QIHdlIHdvcmsgYXJvdW5kIHNvbWUgb2xkIHN5c3RlbSBoZWFkZXJzIHRoYXQgaGF2ZSBub24tY29uZm9ybWluZwovLyBgaXNpbmYoZmxvYXQpYCBhbmQgYGlzbmFuKGZsb2F0KWAgaW1wbGVtZW50YXRpb25zIHRoYXQgcmV0dXJuIGFuIGBpbnRgLiBXZSBkbwovLyB0aGlzIGJ5IHByb3ZpZGluZyB0d28gdmVyc2lvbnMgb2YgdGhlc2UgZnVuY3Rpb25zLCBkaWZmZXJpbmcgb25seSBpbiB0aGUKLy8gcmV0dXJuIHR5cGUuIFRvIGF2b2lkIGNvbmZsaWN0aW5nIGRlZmluaXRpb25zIHdlIGRpc2FibGUgaW1wbGljaXQgYmFzZQovLyBmdW5jdGlvbiBnZW5lcmF0aW9uLiBUaGF0IG1lYW5zIHdlIHdpbGwgZW5kIHVwIHdpdGggdHdvIHNwZWNpYWxpemF0aW9ucywgb25lCi8vIHBlciB0eXBlLCBidXQgb25seSBvbmUgaGFzIGEgYmFzZSBmdW5jdGlvbiBkZWZpbmVkIGJ5IHRoZSBzeXN0ZW0gaGVhZGVyLgojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgaW1wbGVtZW50YXRpb24gPSB7ZXh0ZW5zaW9uKGRpc2FibGVfaW1wbGljaXRfYmFzZSl9KQoKLy8gRklYTUU6IFdlIGxhY2sgYW4gZXh0ZW5zaW9uIHRvIGN1c3RvbWl6ZSB0aGUgbWFuZ2xpbmcgb2YgdGhlIHZhcmlhbnRzLCBlLmcuLAovLyAgICAgICAgYWRkIGEgc3VmZml4LiBUaGlzIG1lYW5zIHdlIHdvdWxkIGNsYXNoIHdpdGggdGhlIG5hbWVzIG9mIHRoZSB2YXJpYW50cwovLyAgICAgICAgKG5vdGUgdGhhdCB3ZSBkbyBub3QgY3JlYXRlIGltcGxpY2l0IGJhc2UgZnVuY3Rpb25zIGhlcmUpLiBUbyBhdm9pZAovLyAgICAgICAgdGhpcyBjbGFzaCB3ZSBhZGQgYSBuZXcgdHJhaXQgdG8gc29tZSBvZiB0aGVtIHRoYXQgaXMgYWx3YXlzIHRydWUKLy8gICAgICAgICh0aGlzIGlzIExMVk0gYWZ0ZXIgYWxsIDspKS4gSXQgd2lsbCBvbmx5IGluZmx1ZW5jZSB0aGUgbWFuZ2xlZCBuYW1lCi8vICAgICAgICBvZiB0aGUgdmFyaWFudHMgaW5zaWRlIHRoZSBpbm5lciByZWdpb24gYW5kIGF2b2lkIHRoZSBjbGFzaC4KI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGltcGxlbWVudGF0aW9uID0ge3ZlbmRvcihsbHZtKX0pCgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGlzaW5mKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2lzaW5mZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBpbnQgaXNpbmYoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGludCBpc2Zpbml0ZShmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGVmKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGludCBpc2Zpbml0ZShkb3VibGUgX194KSB7IHJldHVybiA6Ol9fZmluaXRlKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGludCBpc25hbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc25hbmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGlzbmFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19pc25hbihfX3gpOyB9CgojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CiNlbmRpZiAvLyBkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQoKX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNpbmYoZmxvYXQgX194KSB7IHJldHVybiA6Ol9faXNpbmZmKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNpbmYoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNmaW5pdGUoZmxvYXQgX194KSB7IHJldHVybiA6Ol9fZmluaXRlZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzZmluaXRlKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGUoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc25hbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc25hbmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc25hbihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNuYW4oX194KTsgfQoKI2lmIGRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHZhcmlhbnQKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2dyZWF0ZXIoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNncmVhdGVyKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNncmVhdGVyZXF1YWwoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcmVxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2dyZWF0ZXJlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3MoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbGVzcyhkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3MoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbGVzc2VxdWFsKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzZXF1YWwoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZXF1YWwoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbGVzc2dyZWF0ZXIoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzc2dyZWF0ZXIoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbGVzc2dyZWF0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNub3JtYWwoZmxvYXQgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc25vcm1hbChfX3gpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbm9ybWFsKGRvdWJsZSBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2lzbm9ybWFsKF9feCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXN1bm9yZGVyZWQoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzdW5vcmRlcmVkKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc3Vub3JkZXJlZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc3Vub3JkZXJlZChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IG1vZGYoZmxvYXQgX194LCBmbG9hdCAqX19pcHRyKSB7CiAgcmV0dXJuIDo6bW9kZmYoX194LCBfX2lwdHIpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBwb3coZmxvYXQgX19iYXNlLCBpbnQgX19pZXhwKSB7CiAgcmV0dXJuIDo6cG93aWYoX19iYXNlLCBfX2lleHApOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBkb3VibGUgcG93KGRvdWJsZSBfX2Jhc2UsIGludCBfX2lleHApIHsKICByZXR1cm4gOjpwb3dpKF9fYmFzZSwgX19pZXhwKTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgcmVtcXVvKGZsb2F0IF9feCwgZmxvYXQgX195LCBpbnQgKl9fcXVvKSB7CiAgcmV0dXJuIDo6cmVtcXVvZihfX3gsIF9feSwgX19xdW8pOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBzY2FsYmxuKGZsb2F0IF9feCwgbG9uZyBpbnQgX19uKSB7CiAgcmV0dXJuIDo6c2NhbGJsbmYoX194LCBfX24pOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIHNpZ25iaXQoZmxvYXQgX194KSB7IHJldHVybiA6Ol9fc2lnbmJpdGYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBzaWduYml0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19zaWduYml0KF9feCk7IH0KCi8vIE5vdGFibHkgbWlzc2luZyBhYm92ZSBpcyBuZXh0dG93YXJkLiAgV2Ugb21pdCBpdCBiZWNhdXNlCi8vIG9jbWwgZG9lc24ndCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBiZSBpbiB0aGUKLy8gYnVzaW5lc3Mgb2YgaW1wbGVtZW50aW5nIHRyaWNreSBsaWJtIGZ1bmN0aW9ucyBpbiB0aGlzIGhlYWRlci4KCi8vIE90aGVyIGZ1bmN0aW9ucy4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9GbG9hdDE2IGZtYShfRmxvYXQxNiBfX3gsIF9GbG9hdDE2IF9feSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfRmxvYXQxNiBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9mMTYoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9GbG9hdDE2IHBvdyhfRmxvYXQxNiBfX2Jhc2UsIGludCBfX2lleHApIHsKICByZXR1cm4gX19vY21sX3Bvd25fZjE2KF9fYmFzZSwgX19pZXhwKTsKfQoKI2lmbmRlZiBfX09QRU5NUF9BTURHQ05fXwovLyBCRUdJTiBERUZfRlVOIGFuZCBISVBfT1ZFUkxPQUQKCi8vIEJFR0lOIERFRl9GVU4KCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERUZfRlVOMSIpCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERUZfRlVOMiIpCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERUZfRlVOMl9GSSIpCgovLyBEZWZpbmUgY21hdGggZnVuY3Rpb25zIHdpdGggZmxvYXQgYXJndW1lbnQgYW5kIHJldHVybnMgX19yZXR0eS4KI2RlZmluZSBfX0RFRl9GVU4xKF9fcmV0dHksIF9fZnVuYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19yZXR0eSBfX2Z1bmMoZmxvYXQgX194KSB7IHJldHVybiBfX2Z1bmMjI2YoX194KTsgfQoKLy8gRGVmaW5lIGNtYXRoIGZ1bmN0aW9ucyB3aXRoIHR3byBmbG9hdCBhcmd1bWVudHMgYW5kIHJldHVybnMgX19yZXR0eS4KI2RlZmluZSBfX0RFRl9GVU4yKF9fcmV0dHksIF9fZnVuYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19yZXR0eSBfX2Z1bmMoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX2Z1bmMjI2YoX194LCBfX3kpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgovLyBEZWZpbmUgY21hdGggZnVuY3Rpb25zIHdpdGggYSBmbG9hdCBhbmQgYW4gaW50IGFyZ3VtZW50IGFuZCByZXR1cm5zIF9fcmV0dHkuCiNkZWZpbmUgX19ERUZfRlVOMl9GSShfX3JldHR5LCBfX2Z1bmMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9fcmV0dHkgX19mdW5jKGZsb2F0IF9feCwgaW50IF9feSkgeyAgICAgICAgICAgICAgICBcCiAgICByZXR1cm4gX19mdW5jIyNmKF9feCwgX195KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfQoKX19ERUZfRlVOMShmbG9hdCwgYWNvcykKX19ERUZfRlVOMShmbG9hdCwgYWNvc2gpCl9fREVGX0ZVTjEoZmxvYXQsIGFzaW4pCl9fREVGX0ZVTjEoZmxvYXQsIGFzaW5oKQpfX0RFRl9GVU4xKGZsb2F0LCBhdGFuKQpfX0RFRl9GVU4yKGZsb2F0LCBhdGFuMikKX19ERUZfRlVOMShmbG9hdCwgYXRhbmgpCl9fREVGX0ZVTjEoZmxvYXQsIGNicnQpCl9fREVGX0ZVTjEoZmxvYXQsIGNlaWwpCl9fREVGX0ZVTjIoZmxvYXQsIGNvcHlzaWduKQpfX0RFRl9GVU4xKGZsb2F0LCBjb3MpCl9fREVGX0ZVTjEoZmxvYXQsIGNvc2gpCl9fREVGX0ZVTjEoZmxvYXQsIGVyZikKX19ERUZfRlVOMShmbG9hdCwgZXJmYykKX19ERUZfRlVOMShmbG9hdCwgZXhwKQpfX0RFRl9GVU4xKGZsb2F0LCBleHAyKQpfX0RFRl9GVU4xKGZsb2F0LCBleHBtMSkKX19ERUZfRlVOMShmbG9hdCwgZmFicykKX19ERUZfRlVOMihmbG9hdCwgZmRpbSkKX19ERUZfRlVOMShmbG9hdCwgZmxvb3IpCl9fREVGX0ZVTjIoZmxvYXQsIGZtYXgpCl9fREVGX0ZVTjIoZmxvYXQsIGZtaW4pCl9fREVGX0ZVTjIoZmxvYXQsIGZtb2QpCl9fREVGX0ZVTjIoZmxvYXQsIGh5cG90KQpfX0RFRl9GVU4xKGludCwgaWxvZ2IpCl9fREVGX0ZVTjJfRkkoZmxvYXQsIGxkZXhwKQpfX0RFRl9GVU4xKGZsb2F0LCBsZ2FtbWEpCl9fREVGX0ZVTjEoZmxvYXQsIGxvZykKX19ERUZfRlVOMShmbG9hdCwgbG9nMTApCl9fREVGX0ZVTjEoZmxvYXQsIGxvZzFwKQpfX0RFRl9GVU4xKGZsb2F0LCBsb2cyKQpfX0RFRl9GVU4xKGZsb2F0LCBsb2diKQpfX0RFRl9GVU4xKGxvbmcgbG9uZywgbGxyaW50KQpfX0RFRl9GVU4xKGxvbmcgbG9uZywgbGxyb3VuZCkKX19ERUZfRlVOMShsb25nLCBscmludCkKX19ERUZfRlVOMShsb25nLCBscm91bmQpCl9fREVGX0ZVTjEoZmxvYXQsIG5lYXJieWludCkKX19ERUZfRlVOMihmbG9hdCwgbmV4dGFmdGVyKQpfX0RFRl9GVU4yKGZsb2F0LCBwb3cpCl9fREVGX0ZVTjIoZmxvYXQsIHJlbWFpbmRlcikKX19ERUZfRlVOMShmbG9hdCwgcmludCkKX19ERUZfRlVOMShmbG9hdCwgcm91bmQpCl9fREVGX0ZVTjJfRkkoZmxvYXQsIHNjYWxibikKX19ERUZfRlVOMShmbG9hdCwgc2luKQpfX0RFRl9GVU4xKGZsb2F0LCBzaW5oKQpfX0RFRl9GVU4xKGZsb2F0LCBzcXJ0KQpfX0RFRl9GVU4xKGZsb2F0LCB0YW4pCl9fREVGX0ZVTjEoZmxvYXQsIHRhbmgpCl9fREVGX0ZVTjEoZmxvYXQsIHRnYW1tYSkKX19ERUZfRlVOMShmbG9hdCwgdHJ1bmMpCgojcHJhZ21hIHBvcF9tYWNybygiX19ERUZfRlVOMSIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX0RFRl9GVU4yIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVGX0ZVTjJfRkkiKQoKLy8gRU5EIERFRl9GVU4KCi8vIEJFR0lOIEhJUF9PVkVSTE9BRAoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0hJUF9PVkVSTE9BRDEiKQojcHJhZ21hIHB1c2hfbWFjcm8oIl9fSElQX09WRVJMT0FEMiIpCgovLyBfX2hpcF9lbmFibGVfaWY6OnR5cGUgaXMgYSB0eXBlIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgX19UIGlmIF9fQiBpcyB0cnVlLgp0ZW1wbGF0ZSA8Ym9vbCBfX0IsIGNsYXNzIF9fVCA9IHZvaWQ+IHN0cnVjdCBfX2hpcF9lbmFibGVfaWYge307Cgp0ZW1wbGF0ZSA8Y2xhc3MgX19UPiBzdHJ1Y3QgX19oaXBfZW5hYmxlX2lmPHRydWUsIF9fVD4geyB0eXBlZGVmIF9fVCB0eXBlOyB9OwoKbmFtZXNwYWNlIF9faGlwIHsKdGVtcGxhdGUgPGNsYXNzIF9UcD4gc3RydWN0IGlzX2ludGVncmFsIHsKICBlbnVtIHsgdmFsdWUgPSAwIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxib29sPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8Y2hhcj4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHNpZ25lZCBjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8dW5zaWduZWQgY2hhcj4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHdjaGFyX3Q+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxzaG9ydD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHVuc2lnbmVkIHNob3J0PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8aW50PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8dW5zaWduZWQgaW50PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8bG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHVuc2lnbmVkIGxvbmc+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxsb25nIGxvbmc+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDx1bnNpZ25lZCBsb25nIGxvbmc+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CgovLyBUb0RvOiBzcGVjaWFsaXplcyBpc19hcml0aG1ldGljPF9GbG9hdDE2Pgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYyB7CiAgZW51bSB7IHZhbHVlID0gMCB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxib29sPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxzaWduZWQgY2hhcj4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8dW5zaWduZWQgY2hhcj4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8d2NoYXJfdD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8c2hvcnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPHVuc2lnbmVkIHNob3J0PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxpbnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPHVuc2lnbmVkIGludD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8bG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8dW5zaWduZWQgbG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8bG9uZyBsb25nPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzx1bnNpZ25lZCBsb25nIGxvbmc+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPGZsb2F0PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxkb3VibGU+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CgpzdHJ1Y3QgdHJ1ZV90eXBlIHsKICBzdGF0aWMgY29uc3QgX19jb25zdGFudF9fIGJvb2wgdmFsdWUgPSB0cnVlOwp9OwpzdHJ1Y3QgZmFsc2VfdHlwZSB7CiAgc3RhdGljIGNvbnN0IF9fY29uc3RhbnRfXyBib29sIHZhbHVlID0gZmFsc2U7Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19ULCB0eXBlbmFtZSBfX1U+IHN0cnVjdCBpc19zYW1lIDogcHVibGljIGZhbHNlX3R5cGUge307CnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+IHN0cnVjdCBpc19zYW1lPF9fVCwgX19UPiA6IHB1YmxpYyB0cnVlX3R5cGUge307Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPiBzdHJ1Y3QgYWRkX3J2YWx1ZV9yZWZlcmVuY2UgeyB0eXBlZGVmIF9fVCAmJnR5cGU7IH07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxfX1Q+Ojp0eXBlIGRlY2x2YWwoKTsKCi8vIGRlY2x0eXBlIGlzIG9ubHkgYXZhaWxhYmxlIGluIEMrKzExIGFuZCBhYm92ZS4KI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLy8gX19oaXBfcHJvbW90ZQp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdHJ1Y3QgX19udW1lcmljX3R5cGUgewogIHN0YXRpYyB2b2lkIF9fdGVzdCguLi4pOwogIHN0YXRpYyBfRmxvYXQxNiBfX3Rlc3QoX0Zsb2F0MTYpOwogIHN0YXRpYyBmbG9hdCBfX3Rlc3QoZmxvYXQpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KGNoYXIpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KGludCk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QodW5zaWduZWQpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KGxvbmcpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KHVuc2lnbmVkIGxvbmcpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KGxvbmcgbG9uZyk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QodW5zaWduZWQgbG9uZyBsb25nKTsKICBzdGF0aWMgZG91YmxlIF9fdGVzdChkb3VibGUpOwogIC8vIE5vIHN1cHBvcnQgZm9yIGxvbmcgZG91YmxlLCB1c2UgZG91YmxlIGluc3RlYWQuCiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QobG9uZyBkb3VibGUpOwoKICB0eXBlZGVmIGRlY2x0eXBlKF9fdGVzdChkZWNsdmFsPF9UcD4oKSkpIHR5cGU7CiAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSAhaXNfc2FtZTx0eXBlLCB2b2lkPjo6dmFsdWU7Cn07Cgp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgX19udW1lcmljX3R5cGU8dm9pZD4geyBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7IH07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX0ExLCBjbGFzcyBfQTIgPSB2b2lkLCBjbGFzcyBfQTMgPSB2b2lkLAogICAgICAgICAgYm9vbCA9IF9fbnVtZXJpY190eXBlPF9BMT46OnZhbHVlICYmX19udW1lcmljX3R5cGU8X0EyPjo6dmFsdWUKICAgICAgICAgICAgICAmJl9fbnVtZXJpY190eXBlPF9BMz46OnZhbHVlPgpjbGFzcyBfX3Byb21vdGVfaW1wIHsKcHVibGljOgogIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX0ExLCBjbGFzcyBfQTIsIGNsYXNzIF9BMz4KY2xhc3MgX19wcm9tb3RlX2ltcDxfQTEsIF9BMiwgX0EzLCB0cnVlPiB7CnByaXZhdGU6CiAgdHlwZWRlZiB0eXBlbmFtZSBfX3Byb21vdGVfaW1wPF9BMT46OnR5cGUgX190eXBlMTsKICB0eXBlZGVmIHR5cGVuYW1lIF9fcHJvbW90ZV9pbXA8X0EyPjo6dHlwZSBfX3R5cGUyOwogIHR5cGVkZWYgdHlwZW5hbWUgX19wcm9tb3RlX2ltcDxfQTM+Ojp0eXBlIF9fdHlwZTM7CgpwdWJsaWM6CiAgdHlwZWRlZiBkZWNsdHlwZShfX3R5cGUxKCkgKyBfX3R5cGUyKCkgKyBfX3R5cGUzKCkpIHR5cGU7CiAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOwp9OwoKdGVtcGxhdGUgPGNsYXNzIF9BMSwgY2xhc3MgX0EyPiBjbGFzcyBfX3Byb21vdGVfaW1wPF9BMSwgX0EyLCB2b2lkLCB0cnVlPiB7CnByaXZhdGU6CiAgdHlwZWRlZiB0eXBlbmFtZSBfX3Byb21vdGVfaW1wPF9BMT46OnR5cGUgX190eXBlMTsKICB0eXBlZGVmIHR5cGVuYW1lIF9fcHJvbW90ZV9pbXA8X0EyPjo6dHlwZSBfX3R5cGUyOwoKcHVibGljOgogIHR5cGVkZWYgZGVjbHR5cGUoX190eXBlMSgpICsgX190eXBlMigpKSB0eXBlOwogIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKfTsKCnRlbXBsYXRlIDxjbGFzcyBfQTE+IGNsYXNzIF9fcHJvbW90ZV9pbXA8X0ExLCB2b2lkLCB2b2lkLCB0cnVlPiB7CnB1YmxpYzoKICB0eXBlZGVmIHR5cGVuYW1lIF9fbnVtZXJpY190eXBlPF9BMT46OnR5cGUgdHlwZTsKICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX0ExLCBjbGFzcyBfQTIgPSB2b2lkLCBjbGFzcyBfQTMgPSB2b2lkPgpjbGFzcyBfX3Byb21vdGUgOiBwdWJsaWMgX19wcm9tb3RlX2ltcDxfQTEsIF9BMiwgX0EzPiB7fTsKI2VuZGlmIC8vX19jcGx1c3BsdXMgPj0gMjAxMTAzTAp9IC8vIG5hbWVzcGFjZSBfX2hpcAoKLy8gX19ISVBfT1ZFUkxPQUQxIGlzIHVzZWQgdG8gcmVzb2x2ZSBmdW5jdGlvbiBjYWxscyB3aXRoIGludGVnZXIgYXJndW1lbnQgdG8KLy8gYXZvaWQgY29tcGlsYXRpb24gZXJyb3IgZHVlIHRvIGFtYmlidWl0eS4gZS5nLiBmbG9vcig1KSBpcyByZXNvbHZlZCB3aXRoCi8vIGZsb29yKGRvdWJsZSkuCiNkZWZpbmUgX19ISVBfT1ZFUkxPQUQxKF9fcmV0dHksIF9fZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjxfX2hpcDo6aXNfaW50ZWdyYWw8X19UPjo6dmFsdWUsIF9fcmV0dHk+Ojp0eXBlICBcCiAgICAgIF9fZm4oX19UIF9feCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICByZXR1cm4gOjpfX2ZuKChkb3VibGUpX194KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfQoKLy8gX19ISVBfT1ZFUkxPQUQyIGlzIHVzZWQgdG8gcmVzb2x2ZSBmdW5jdGlvbiBjYWxscyB3aXRoIG1peGVkIGZsb2F0L2RvdWJsZQovLyBvciBpbnRlZ2VyIGFyZ3VtZW50IHRvIGF2b2lkIGNvbXBpbGF0aW9uIGVycm9yIGR1ZSB0byBhbWJpYnVpdHkuIGUuZy4KLy8gbWF4KDUuMGYsIDYuMCkgaXMgcmVzb2x2ZWQgd2l0aCBtYXgoZG91YmxlLCBkb3VibGUpLgojaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAojZGVmaW5lIF9fSElQX09WRVJMT0FEMihfX3JldHR5LCBfX2ZuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIHRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gX19DT05TVEVYUFJfXyB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QxPjo6dmFsdWUgJiYgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMj46OnZhbHVlLCAgXAogICAgICB0eXBlbmFtZSBfX2hpcDo6X19wcm9tb3RlPF9fVDEsIF9fVDI+Ojp0eXBlPjo6dHlwZSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZm4oX19UMSBfX3gsIF9fVDIgX195KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdHlwZWRlZiB0eXBlbmFtZSBfX2hpcDo6X19wcm9tb3RlPF9fVDEsIF9fVDI+Ojp0eXBlIF9fcmVzdWx0X3R5cGU7ICAgICAgICAgXAogICAgcmV0dXJuIF9fZm4oKF9fcmVzdWx0X3R5cGUpX194LCAoX19yZXN1bHRfdHlwZSlfX3kpOyAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KI2Vsc2UKI2RlZmluZSBfX0hJUF9PVkVSTE9BRDIoX19yZXR0eSwgX19mbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UMSwgdHlwZW5hbWUgX19UMj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19hcml0aG1ldGljPF9fVDE+Ojp2YWx1ZSAmJiAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QyPjo6dmFsdWUsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmV0dHk+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19mbihfX1QxIF9feCwgX19UMiBfX3kpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX2ZuKChkb3VibGUpX194LCAoZG91YmxlKV9feSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CiNlbmRpZgoKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgYWNvcykKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgYWNvc2gpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGFzaW4pCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGFzaW5oKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBhdGFuKQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCBhdGFuMikKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgYXRhbmgpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGNicnQpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGNlaWwpCl9fSElQX09WRVJMT0FEMihkb3VibGUsIGNvcHlzaWduKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBjb3MpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGNvc2gpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGVyZikKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgZXJmYykKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgZXhwKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBleHAyKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBleHBtMSkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgZmFicykKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgZmRpbSkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgZmxvb3IpCl9fSElQX09WRVJMT0FEMihkb3VibGUsIGZtYXgpCl9fSElQX09WRVJMT0FEMihkb3VibGUsIGZtaW4pCl9fSElQX09WRVJMT0FEMihkb3VibGUsIGZtb2QpCiNpZiAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQpfX0hJUF9PVkVSTE9BRDEoaW50LCBmcGNsYXNzaWZ5KQojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgaHlwb3QpCl9fSElQX09WRVJMT0FEMShpbnQsIGlsb2diKQpfX0hJUF9PVkVSTE9BRDEoYm9vbCwgaXNmaW5pdGUpCl9fSElQX09WRVJMT0FEMihib29sLCBpc2dyZWF0ZXIpCl9fSElQX09WRVJMT0FEMihib29sLCBpc2dyZWF0ZXJlcXVhbCkKX19ISVBfT1ZFUkxPQUQxKGJvb2wsIGlzaW5mKQpfX0hJUF9PVkVSTE9BRDIoYm9vbCwgaXNsZXNzKQpfX0hJUF9PVkVSTE9BRDIoYm9vbCwgaXNsZXNzZXF1YWwpCl9fSElQX09WRVJMT0FEMihib29sLCBpc2xlc3NncmVhdGVyKQpfX0hJUF9PVkVSTE9BRDEoYm9vbCwgaXNuYW4pCl9fSElQX09WRVJMT0FEMShib29sLCBpc25vcm1hbCkKX19ISVBfT1ZFUkxPQUQyKGJvb2wsIGlzdW5vcmRlcmVkKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBsZ2FtbWEpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGxvZykKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgbG9nMTApCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGxvZzFwKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBsb2cyKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBsb2diKQpfX0hJUF9PVkVSTE9BRDEobG9uZyBsb25nLCBsbHJpbnQpCl9fSElQX09WRVJMT0FEMShsb25nIGxvbmcsIGxscm91bmQpCl9fSElQX09WRVJMT0FEMShsb25nLCBscmludCkKX19ISVBfT1ZFUkxPQUQxKGxvbmcsIGxyb3VuZCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgbmVhcmJ5aW50KQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCBuZXh0YWZ0ZXIpCl9fSElQX09WRVJMT0FEMihkb3VibGUsIHBvdykKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgcmVtYWluZGVyKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCByaW50KQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCByb3VuZCkKX19ISVBfT1ZFUkxPQUQxKGJvb2wsIHNpZ25iaXQpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHNpbikKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgc2luaCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgc3FydCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgdGFuKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCB0YW5oKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCB0Z2FtbWEpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHRydW5jKQoKLy8gT3ZlcmxvYWQgdGhlc2UgYnV0IGRvbid0IGFkZCB0aGVtIHRvIHN0ZCwgdGhleSBhcmUgbm90IHBhcnQgb2YgY21hdGguCl9fSElQX09WRVJMT0FEMihkb3VibGUsIG1heCkKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgbWluKQoKLy8gQWRkaXRpb25hbCBPdmVybG9hZHMgdGhhdCBkb24ndCBxdWl0ZSBtYXRjaCBISVBfT1ZFUkxPQUQuCiNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyLCB0eXBlbmFtZSBfX1QzPgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPAogICAgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMT46OnZhbHVlICYmIF9faGlwOjppc19hcml0aG1ldGljPF9fVDI+Ojp2YWx1ZSAmJgogICAgICAgIF9faGlwOjppc19hcml0aG1ldGljPF9fVDM+Ojp2YWx1ZSwKICAgIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMiwgX19UMz46OnR5cGU+Ojp0eXBlCmZtYShfX1QxIF9feCwgX19UMiBfX3ksIF9fVDMgX196KSB7CiAgdHlwZWRlZiB0eXBlbmFtZSBfX2hpcDo6X19wcm9tb3RlPF9fVDEsIF9fVDIsIF9fVDM+Ojp0eXBlIF9fcmVzdWx0X3R5cGU7CiAgcmV0dXJuIDo6Zm1hKChfX3Jlc3VsdF90eXBlKV9feCwgKF9fcmVzdWx0X3R5cGUpX195LCAoX19yZXN1bHRfdHlwZSlfX3opOwp9CiNlbHNlCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyLCB0eXBlbmFtZSBfX1QzPgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18KICAgIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjxfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QxPjo6dmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMj46OnZhbHVlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faGlwOjppc19hcml0aG1ldGljPF9fVDM+Ojp2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGU+Ojp0eXBlCiAgICBmbWEoX19UMSBfX3gsIF9fVDIgX195LCBfX1QzIF9feikgewogIHJldHVybiA6OmZtYSgoZG91YmxlKV9feCwgKGRvdWJsZSlfX3ksIChkb3VibGUpX196KTsKfQojZW5kaWYKCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19pbnRlZ3JhbDxfX1Q+Ojp2YWx1ZSwgZG91YmxlPjo6dHlwZQogICAgZnJleHAoX19UIF9feCwgaW50ICpfX2V4cCkgewogIHJldHVybiA6OmZyZXhwKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19pbnRlZ3JhbDxfX1Q+Ojp2YWx1ZSwgZG91YmxlPjo6dHlwZQogICAgbGRleHAoX19UIF9feCwgaW50IF9fZXhwKSB7CiAgcmV0dXJuIDo6bGRleHAoKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2ludGVncmFsPF9fVD46OnZhbHVlLCBkb3VibGU+Ojp0eXBlCiAgICBtb2RmKF9fVCBfX3gsIGRvdWJsZSAqX19leHApIHsKICByZXR1cm4gOjptb2RmKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCiNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyPgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18KICAgIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjxfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QxPjo6dmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMj46OnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMj46OnR5cGU+Ojp0eXBlCiAgICByZW1xdW8oX19UMSBfX3gsIF9fVDIgX195LCBpbnQgKl9fcXVvKSB7CiAgdHlwZWRlZiB0eXBlbmFtZSBfX2hpcDo6X19wcm9tb3RlPF9fVDEsIF9fVDI+Ojp0eXBlIF9fcmVzdWx0X3R5cGU7CiAgcmV0dXJuIDo6cmVtcXVvKChfX3Jlc3VsdF90eXBlKV9feCwgKF9fcmVzdWx0X3R5cGUpX195LCBfX3F1byk7Cn0KI2Vsc2UKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDI+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19hcml0aG1ldGljPF9fVDE+Ojp2YWx1ZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QyPjo6dmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlPjo6dHlwZQogICAgcmVtcXVvKF9fVDEgX194LCBfX1QyIF9feSwgaW50ICpfX3F1bykgewogIHJldHVybiA6OnJlbXF1bygoZG91YmxlKV9feCwgKGRvdWJsZSlfX3ksIF9fcXVvKTsKfQojZW5kaWYKCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19pbnRlZ3JhbDxfX1Q+Ojp2YWx1ZSwgZG91YmxlPjo6dHlwZQogICAgc2NhbGJsbihfX1QgX194LCBsb25nIGludCBfX2V4cCkgewogIHJldHVybiA6OnNjYWxibG4oKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2ludGVncmFsPF9fVD46OnZhbHVlLCBkb3VibGU+Ojp0eXBlCiAgICBzY2FsYm4oX19UIF9feCwgaW50IF9fZXhwKSB7CiAgcmV0dXJuIDo6c2NhbGJuKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCiNwcmFnbWEgcG9wX21hY3JvKCJfX0hJUF9PVkVSTE9BRDEiKQojcHJhZ21hIHBvcF9tYWNybygiX19ISVBfT1ZFUkxPQUQyIikKCi8vIEVORCBISVBfT1ZFUkxPQUQKCi8vIEVORCBERUZfRlVOIGFuZCBISVBfT1ZFUkxPQUQKCiNlbmRpZiAvLyBpZm5kZWYgX19PUEVOTVBfQU1ER0NOX18KI2VuZGlmIC8vIGRlZmluZWQoX19jcGx1c3BsdXMpCgojaWZuZGVmIF9fT1BFTk1QX0FNREdDTl9fCi8vIERlZmluZSB0aGVzZSBvdmVybG9hZHMgaW5zaWRlIHRoZSBuYW1lc3BhY2Ugb3VyIHN0YW5kYXJkIGxpYnJhcnkgdXNlcy4KI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCiNpZmRlZiBfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9CRUdJTl9OQU1FU1BBQ0VfU1RECiNlbHNlCm5hbWVzcGFjZSBzdGQgewojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmIC8vIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiNlbmRpZiAvLyBfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKCi8vIFB1bGwgdGhlIG5ldyBvdmVybG9hZHMgd2UgZGVmaW5lZCBhYm92ZSBpbnRvIG5hbWVzcGFjZSBzdGQuCi8vIHVzaW5nIDo6YWJzOyAtIFRoaXMgbWF5IGJlIGNvbnNpZGVyZWQgZm9yIEMrKy4KdXNpbmcgOjphY29zOwp1c2luZyA6OmFjb3NoOwp1c2luZyA6OmFzaW47CnVzaW5nIDo6YXNpbmg7CnVzaW5nIDo6YXRhbjsKdXNpbmcgOjphdGFuMjsKdXNpbmcgOjphdGFuaDsKdXNpbmcgOjpjYnJ0Owp1c2luZyA6OmNlaWw7CnVzaW5nIDo6Y29weXNpZ247CnVzaW5nIDo6Y29zOwp1c2luZyA6OmNvc2g7CnVzaW5nIDo6ZXJmOwp1c2luZyA6OmVyZmM7CnVzaW5nIDo6ZXhwOwp1c2luZyA6OmV4cDI7CnVzaW5nIDo6ZXhwbTE7CnVzaW5nIDo6ZmFiczsKdXNpbmcgOjpmZGltOwp1c2luZyA6OmZsb29yOwp1c2luZyA6OmZtYTsKdXNpbmcgOjpmbWF4Owp1c2luZyA6OmZtaW47CnVzaW5nIDo6Zm1vZDsKdXNpbmcgOjpmcGNsYXNzaWZ5Owp1c2luZyA6OmZyZXhwOwp1c2luZyA6Omh5cG90Owp1c2luZyA6Omlsb2diOwp1c2luZyA6OmlzZmluaXRlOwp1c2luZyA6OmlzZ3JlYXRlcjsKdXNpbmcgOjppc2dyZWF0ZXJlcXVhbDsKdXNpbmcgOjppc2xlc3M7CnVzaW5nIDo6aXNsZXNzZXF1YWw7CnVzaW5nIDo6aXNsZXNzZ3JlYXRlcjsKdXNpbmcgOjppc25vcm1hbDsKdXNpbmcgOjppc3Vub3JkZXJlZDsKdXNpbmcgOjpsZGV4cDsKdXNpbmcgOjpsZ2FtbWE7CnVzaW5nIDo6bGxyaW50Owp1c2luZyA6Omxscm91bmQ7CnVzaW5nIDo6bG9nOwp1c2luZyA6OmxvZzEwOwp1c2luZyA6OmxvZzFwOwp1c2luZyA6OmxvZzI7CnVzaW5nIDo6bG9nYjsKdXNpbmcgOjpscmludDsKdXNpbmcgOjpscm91bmQ7CnVzaW5nIDo6bW9kZjsKLy8gdXNpbmcgOjpuYW47IC0gVGhpcyBtYXkgYmUgY29uc2lkZXJlZCBmb3IgQysrLgovLyB1c2luZyA6Om5hbmY7IC0gVGhpcyBtYXkgYmUgY29uc2lkZXJlZCBmb3IgQysrLgovLyB1c2luZyA6Om5hbmw7IC0gVGhpcyBpcyBub3QgeWV0IGRlZmluZWQuCnVzaW5nIDo6bmVhcmJ5aW50Owp1c2luZyA6Om5leHRhZnRlcjsKLy8gdXNpbmcgOjpuZXh0dG93YXJkOyAtIE9taXQgdGhpcyBzaW5jZSB3ZSBkbyBub3QgaGF2ZSBhIGRlZmluaXRpb24uCnVzaW5nIDo6cG93Owp1c2luZyA6OnJlbWFpbmRlcjsKdXNpbmcgOjpyZW1xdW87CnVzaW5nIDo6cmludDsKdXNpbmcgOjpyb3VuZDsKdXNpbmcgOjpzY2FsYmxuOwp1c2luZyA6OnNjYWxibjsKdXNpbmcgOjpzaWduYml0Owp1c2luZyA6OnNpbjsKdXNpbmcgOjpzaW5oOwp1c2luZyA6OnNxcnQ7CnVzaW5nIDo6dGFuOwp1c2luZyA6OnRhbmg7CnVzaW5nIDo6dGdhbW1hOwp1c2luZyA6OnRydW5jOwoKLy8gV2VsbCB0aGlzIGlzIGZ1bjogV2UgbmVlZCB0byBwdWxsIHRoZXNlIHN5bWJvbHMgaW4gZm9yIGxpYmMrKywgYnV0IHdlIGNhbid0Ci8vIHB1bGwgdGhlbSBpbiB3aXRoIGxpYnN0ZGMrKywgYmVjYXVzZSBpdHMgOjppc2luZiBhbmQgOjppc25hbiBhcmUgZGlmZmVyZW50Ci8vIHRoYW4gaXRzIHN0ZDo6aXNpbmYgYW5kIHN0ZDo6aXNuYW4uCiNpZm5kZWYgX19HTElCQ1hYX18KdXNpbmcgOjppc2luZjsKdXNpbmcgOjppc25hbjsKI2VuZGlmCgovLyBGaW5hbGx5LCBwdWxsIHRoZSAiZm9vYmFyZiIgZnVuY3Rpb25zIHRoYXQgSElQIGRlZmluZXMgaW50byBzdGQuCnVzaW5nIDo6YWNvc2Y7CnVzaW5nIDo6YWNvc2hmOwp1c2luZyA6OmFzaW5mOwp1c2luZyA6OmFzaW5oZjsKdXNpbmcgOjphdGFuMmY7CnVzaW5nIDo6YXRhbmY7CnVzaW5nIDo6YXRhbmhmOwp1c2luZyA6OmNicnRmOwp1c2luZyA6OmNlaWxmOwp1c2luZyA6OmNvcHlzaWduZjsKdXNpbmcgOjpjb3NmOwp1c2luZyA6OmNvc2hmOwp1c2luZyA6OmVyZmNmOwp1c2luZyA6OmVyZmY7CnVzaW5nIDo6ZXhwMmY7CnVzaW5nIDo6ZXhwZjsKdXNpbmcgOjpleHBtMWY7CnVzaW5nIDo6ZmFic2Y7CnVzaW5nIDo6ZmRpbWY7CnVzaW5nIDo6Zmxvb3JmOwp1c2luZyA6OmZtYWY7CnVzaW5nIDo6Zm1heGY7CnVzaW5nIDo6Zm1pbmY7CnVzaW5nIDo6Zm1vZGY7CnVzaW5nIDo6ZnJleHBmOwp1c2luZyA6Omh5cG90ZjsKdXNpbmcgOjppbG9nYmY7CnVzaW5nIDo6bGRleHBmOwp1c2luZyA6OmxnYW1tYWY7CnVzaW5nIDo6bGxyaW50ZjsKdXNpbmcgOjpsbHJvdW5kZjsKdXNpbmcgOjpsb2cxMGY7CnVzaW5nIDo6bG9nMXBmOwp1c2luZyA6OmxvZzJmOwp1c2luZyA6OmxvZ2JmOwp1c2luZyA6OmxvZ2Y7CnVzaW5nIDo6bHJpbnRmOwp1c2luZyA6Omxyb3VuZGY7CnVzaW5nIDo6bW9kZmY7CnVzaW5nIDo6bmVhcmJ5aW50ZjsKdXNpbmcgOjpuZXh0YWZ0ZXJmOwovLyB1c2luZyA6Om5leHR0b3dhcmRmOyAtIE9taXQgdGhpcyBzaW5jZSB3ZSBkbyBub3QgaGF2ZSBhIGRlZmluaXRpb24uCnVzaW5nIDo6cG93ZjsKdXNpbmcgOjpyZW1haW5kZXJmOwp1c2luZyA6OnJlbXF1b2Y7CnVzaW5nIDo6cmludGY7CnVzaW5nIDo6cm91bmRmOwp1c2luZyA6OnNjYWxibG5mOwp1c2luZyA6OnNjYWxibmY7CnVzaW5nIDo6c2luZjsKdXNpbmcgOjpzaW5oZjsKdXNpbmcgOjpzcXJ0ZjsKdXNpbmcgOjp0YW5mOwp1c2luZyA6OnRhbmhmOwp1c2luZyA6OnRnYW1tYWY7CnVzaW5nIDo6dHJ1bmNmOwoKI2lmZGVmIF9MSUJDUFBfRU5EX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURAojZWxzZQojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiNlbmRpZiAvLyBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgp9IC8vIG5hbWVzcGFjZSBzdGQKI2VuZGlmIC8vIF9MSUJDUFBfRU5EX05BTUVTUEFDRV9TVEQKI2VuZGlmIC8vICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCgovLyBEZWZpbmUgZGV2aWNlLXNpZGUgbWF0aCBmdW5jdGlvbnMgZnJvbSA8eW1hdGguaD4gb24gTVNWQy4KI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCiNpZiBkZWZpbmVkKF9NU0NfVkVSKQoKLy8gQmVmb3JlIFZTMjAxOSwgYDx5bWF0aC5oPmAgaXMgYWxzbyBpbmNsdWRlZCBpbiBgPGxpbWl0cz5gIGFuZCBvdGhlciBoZWFkZXJzLgovLyBCdXQsIGZyb20gVlMyMDE5LCBpdCdzIG9ubHkgaW5jbHVkZWQgaW4gYDxjb21wbGV4PmAuIE5lZWQgdG8gaW5jbHVkZQovLyBgPHltYXRoLmg+YCBoZXJlIHRvIGVuc3VyZSBDIGZ1bmN0aW9ucyBkZWNsYXJlZCB0aGVyZSB3b24ndCBiZSBtYXJrZGVkIGFzCi8vIGBfX2hvc3RfX2AgYW5kIGBfX2RldmljZV9fYCB0aHJvdWdoIGA8Y29tcGxleD5gIHdyYXBwZXIuCiNpbmNsdWRlIDx5bWF0aC5oPgoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYgLy8gZGVmaW5lZChfX2NwbHVzcGx1cykKX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9fYXR0cmlidXRlX18oKG92ZXJsb2FkYWJsZSkpIGRvdWJsZSBfQ29zaChkb3VibGUgeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgeSkgewogIHJldHVybiBjb3NoKHgpICogeTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgZmxvYXQgX0ZDb3NoKGZsb2F0IHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgeSkgewogIHJldHVybiBjb3NoZih4KSAqIHk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9fYXR0cmlidXRlX18oKG92ZXJsb2FkYWJsZSkpIHNob3J0IF9EdGVzdChkb3VibGUgKnApIHsKICByZXR1cm4gZnBjbGFzc2lmeSgqcCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9fYXR0cmlidXRlX18oKG92ZXJsb2FkYWJsZSkpIHNob3J0IF9GRHRlc3QoZmxvYXQgKnApIHsKICByZXR1cm4gZnBjbGFzc2lmeSgqcCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIF9fYXR0cmlidXRlX18oKG92ZXJsb2FkYWJsZSkpIGRvdWJsZSBfU2luaChkb3VibGUgeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgeSkgewogIHJldHVybiBzaW5oKHgpICogeTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgZmxvYXQgX0ZTaW5oKGZsb2F0IHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgeSkgewogIHJldHVybiBzaW5oZih4KSAqIHk7Cn0KI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0KI2VuZGlmIC8vIGRlZmluZWQoX19jcGx1c3BsdXMpCiNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykKI2VuZGlmIC8vIGlmbmRlZiBfX09QRU5NUF9BTURHQ05fXwoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX18iKQojcHJhZ21hIHBvcF9tYWNybygiX19DT05TVEVYUFJfXyIpCgojZW5kaWYgLy8gX19DTEFOR19ISVBfQ01BVEhfSF9fCgAvKj09PS0tLS0gYXZ4NTEydmxkcWludHJpbi5oIC0gQVZYNTEyVkwgYW5kIEFWWDUxMkRRIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZsZHFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxEUUlOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTERRSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJkcSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJkcSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxsb19lcGk2NCAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKSAoKF9fdjRkdSkgX19BICogKF9fdjRkdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsbG9fZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X211bGxvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsbG9fZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbXVsbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXVsbG9fZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSkgKChfX3YyZHUpIF9fQSAqIChfX3YyZHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bGxvX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tdWxsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bGxvX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX211bGxvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYW5kbm90X3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2FuZG5vdF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hbmRub3RfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9hbmRub3RfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kbm90X3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2FuZG5vdF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRub3RfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9hbmRub3RfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRub3RfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2FuZG5vdF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYW5kbm90X3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9hbmRub3RfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FuZG5vdF9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fYW5kbm90X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRub3RfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2FuZG5vdF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FuZF9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9hbmRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYW5kX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfYW5kX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FuZF9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9hbmRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYW5kX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fYW5kX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYW5kX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9hbmRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZF9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfYW5kX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hbmRfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2FuZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYW5kX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9hbmRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza194b3JfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfeG9yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3hvcl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3hvcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza194b3JfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1feG9yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3hvcl9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV94b3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza194b3JfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3hvcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfeG9yX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl94b3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3hvcl9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1feG9yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel94b3JfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3hvcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX29yX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X29yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X29yX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfb3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfb3JfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fb3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfb3JfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9vcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX29yX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9vcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfb3JfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X29yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19vcl9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fb3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X29yX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9vcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRwZF9lcGk2NCAoX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGRfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwZF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBkX2VwaTY0IChfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwZF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBkX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cGRfZXB1NjQgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwZF9lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwZF9lcHU2NCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwZF9lcHU2NCAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBkX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBkX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHBzX2VwaTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBzX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwc19lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cHNfZXBpNjQgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cHNfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRwc19lcHU2NCAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cHNfZXB1NjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwc19lcHU2NCAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBzX2VwdTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwc19lcHU2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBzX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpNjRfcGQgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YyZGkpX19BLCBfX3YyZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpNjRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X3BkIChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGRpKV9fQSwgX192NGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXBpNjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXBpNjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTY0X3BzIChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpNjRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY3Z0cXEycHMxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9wcyAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGk2NF9wcyAoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGRpKV9fQSwgX192NHNmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGk2NF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbTI1Nl9jdnRlcGk2NF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tMjU2X2N2dGVwaTY0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0cGRfZXBpNjQgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGRfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBkX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwZF9lcGk2NCAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwZF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHBkX2VwdTY0IChfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwZF9lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBkX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGRfZXB1NjQgKF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBkX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGRfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRwc19lcGk2NCAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBzX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBzX2VwaTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cHNfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cHNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0cHNfZXB1NjQgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cHNfZXB1NjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBzX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwc19lcHU2NCAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwc19lcHU2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cHNfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXB1NjRfcGQgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YyZHUpX19BLCBfX3YyZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcHU2NF9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcHU2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1NjRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcHU2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTY0X3BkIChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGR1KV9fQSwgX192NGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1NjRfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXB1NjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwdTY0X3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXB1NjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwdTY0X3BzIChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnR1cXEycHMxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX21tX3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTY0X3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwdTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHU2NF9wcyAoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGR1KV9fQSwgX192NHNmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHU2NF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbTI1Nl9jdnRlcHU2NF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwdTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tMjU2X2N2dGVwdTY0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tX3JhbmdlX3BkKEEsIEIsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2VfcGQoVywgVSwgQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcmFuZ2VfcGQoVSwgQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3JhbmdlX3BkKEEsIEIsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcmFuZ2VfcGQoVywgVSwgQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcmFuZ2VfcGQoVSwgQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX3JhbmdlX3BzKEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yYW5nZXBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2VfcHMoVywgVSwgQSwgQiwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcmFuZ2VfcHMoVSwgQSwgQiwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3JhbmdlX3BzKEEsIEIsIEMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9yYW5nZXBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcmFuZ2VfcHMoVywgVSwgQSwgQiwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcmFuZ2VfcHMoVSwgQSwgQiwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9wZChBLCBCKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3BkKFcsIFUsIEEsIEIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3BkKFUsIEEsIEIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3JlZHVjZV9wZChBLCBCKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcmVkdWNlX3BkKFcsIFUsIEEsIEIpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcmVkdWNlX3BkKFUsIEEsIEIpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9wcyhBLCBCKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2VfcHMoVywgVSwgQSwgQikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3BzKFUsIEEsIEIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcmVkdWNlX3BzKEEsIEIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JlZHVjZV9wcyhXLCBVLCBBLCBCKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcmVkdWNlcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yZWR1Y2VfcHMoVSwgQSwgQikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21vdmVwaTMyX21hc2sgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY3Z0ZDJtYXNrMTI4ICgoX192NHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21vdmVwaTMyX21hc2sgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY3Z0ZDJtYXNrMjU2ICgoX192OHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92bV9lcGkzMiAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMmQxMjggKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZtX2VwaTMyIChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syZDI1NiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21vdm1fZXBpNjQgKF9fbW1hc2s4IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJxMTI4IChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbW92bV9lcGk2NCAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMnEyNTYgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92ZXBpNjRfbWFzayAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jdnRxMm1hc2sxMjggKChfX3YyZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbW92ZXBpNjRfbWFzayAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jdnRxMm1hc2syNTYgKChfX3Y0ZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdF9mMzJ4MiAoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RfZjMyeDIgKF9fbTI1NiBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9icm9hZGNhc3RfZjMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RfZjMyeDIgKF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9icm9hZGNhc3RfZjMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdF9mNjR4MihfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fQSwgKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RfZjY0eDIoX19tMjU2ZCBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfYnJvYWRjYXN0X2Y2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0X2Y2NHgyIChfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2Jyb2FkY2FzdF9mNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3RfaTMyeDIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Jyb2FkY2FzdF9pMzJ4MiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fYnJvYWRjYXN0X2kzMngyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Jyb2FkY2FzdF9pMzJ4MiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9icm9hZGNhc3RfaTMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdF9pMzJ4MiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0X2kzMngyIChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9icm9hZGNhc3RfaTMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0X2kzMngyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Jyb2FkY2FzdF9pMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2k2NHgyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19BLCAoX192MmRpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdF9pNjR4MihfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2Jyb2FkY2FzdF9pNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdF9pNjR4MiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2Jyb2FkY2FzdF9pNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RmNjR4Ml9wZChBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHgyXzI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZXh0cmFjdGY2NHgyX3BkKFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2V4dHJhY3RmNjR4Ml9wZChVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHgyXzI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZXh0cmFjdGk2NHgyX2VwaTY0KEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDJfMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19leHRyYWN0aTY0eDJfZXBpNjQoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4Ml8yNTZfbWFzaygoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZXh0cmFjdGk2NHgyX2VwaTY0KFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDJfMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRmNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfaW5zZXJ0ZjY0eDJfMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2luc2VydGY2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfaW5zZXJ0ZjY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfaW5zZXJ0ZjY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9pbnNlcnRmNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW0yNTZfaW5zZXJ0aTY0eDIoQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHgyXzI1NigoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pbnNlcnRpNjR4MihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2luc2VydGk2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9pbnNlcnRpNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2luc2VydGk2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fbWFza19mcGNsYXNzX3BkX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9mcGNsYXNzX3BkX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZnBjbGFzc19wZF9tYXNrKFUsIEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3BkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZnBjbGFzc19wZF9tYXNrKEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3BkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZwY2xhc3NfcHNfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fZnBjbGFzc19wc19tYXNrKEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3BzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZnBjbGFzc19wc19tYXNrKFUsIEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3BzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9mcGNsYXNzX3BzX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAC8qPT09LS0tLSBhdnhpbnRyaW4uaCAtIEFWWCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWElOVFJJTl9ICiNkZWZpbmUgX19BVlhJTlRSSU5fSAoKdHlwZWRlZiBkb3VibGUgX192NGRmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIGZsb2F0IF9fdjhzZiBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKdHlwZWRlZiBsb25nIGxvbmcgX192NGRpIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIGludCBfX3Y4c2kgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CnR5cGVkZWYgc2hvcnQgX192MTZoaSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKdHlwZWRlZiBjaGFyIF9fdjMycWkgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CgovKiBVbnNpZ25lZCB0eXBlcyAqLwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3Y0ZHUgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdjhzdSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3YxNmh1IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX192MzJxdSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKCi8qIFdlIG5lZWQgYW4gZXhwbGljaXRseSBzaWduZWQgdmFyaWFudCBmb3IgY2hhci4gTm90ZSB0aGF0IHRoaXMgc2hvdWxkbid0CiAqIGFwcGVhciBpbiB0aGUgaW50ZXJmYWNlIHRob3VnaC4gKi8KdHlwZWRlZiBzaWduZWQgY2hhciBfX3YzMnFzIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMikpKTsKCnR5cGVkZWYgZmxvYXQgX19tMjU2IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgZG91YmxlIF9fbTI1NmQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fbTI1NmkgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7Cgp0eXBlZGVmIGZsb2F0IF9fbTI1Nl91IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBkb3VibGUgX19tMjU2ZF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMiksIF9fYWxpZ25lZF9fKDEpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fbTI1NmlfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMzIpLCBfX2FsaWduZWRfXygxKSkpOwoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdngiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCgovKiBBcml0aG1ldGljICovCi8vLyBBZGRzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hZGRfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGRmKV9fYSsoX192NGRmKV9fYik7Cn0KCi8vLyBBZGRzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYWRkX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzZilfX2ErKF9fdjhzZilfX2IpOwp9CgovLy8gU3VidHJhY3RzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdWJfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGRmKV9fYS0oX192NGRmKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1VCUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4KLy8vICAgIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdWJfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KSgoX192OHNmKV9fYS0oX192OHNmKV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBldmVuLWluZGV4ZWQgdmFsdWVzIGFuZCBzdWJ0cmFjdHMgdGhlIG9kZC1pbmRleGVkIHZhbHVlcyBvZgovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFNVQlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYWx0ZXJuYXRpbmcgc3VtcwovLy8gICAgYW5kIGRpZmZlcmVuY2VzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hZGRzdWJfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2FkZHN1YnBkMjU2KChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBldmVuLWluZGV4ZWQgdmFsdWVzIGFuZCBzdWJ0cmFjdHMgdGhlIG9kZC1pbmRleGVkIHZhbHVlcyBvZgovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUREU1VCUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxlZnQgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBhbHRlcm5hdGluZyBzdW1zIGFuZAovLy8gICAgZGlmZmVyZW5jZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYWRkc3ViX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9hZGRzdWJwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gRGl2aWRlcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBkaXZpZGVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlzb3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBxdW90aWVudHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfZGl2X3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZCkoKF9fdjRkZilfX2EvKF9fdjRkZilfX2IpOwp9CgovLy8gRGl2aWRlcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZESVZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aWRlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRpdmlzb3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Rpdl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKChfX3Y4c2YpX19hLyhfX3Y4c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdIGFuZCByZXR1cm5zIHRoZSBncmVhdGVyCi8vLyAgICBvZiBlYWNoIHBhaXIgb2YgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWF4X3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9tYXhwZDI1NigoX192NGRmKV9fYSwgKF9fdjRkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSBhbmQgcmV0dXJucyB0aGUgZ3JlYXRlcgovLy8gICAgb2YgZWFjaCBwYWlyIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFYUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtYXhpbXVtIHZhbHVlcwovLy8gICAgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWF4X3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9tYXhwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0gYW5kIHJldHVybnMgdGhlIGxlc3NlcgovLy8gICAgb2YgZWFjaCBwYWlyIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUlOUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVlcwovLy8gICAgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21pbl9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfbWlucGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0gYW5kIHJldHVybnMgdGhlIGxlc3NlcgovLy8gICAgb2YgZWFjaCBwYWlyIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUlOUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVlcwovLy8gICAgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWluX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9taW5wczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTVVMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tdWxfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGRmKV9fYSAqIChfX3Y0ZGYpX19iKTsKfQoKLy8vIE11bHRpcGxpZXMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTVVMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X211bF9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKChfX3Y4c2YpX19hICogKF9fdjhzZilfX2IpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHNxdWFyZSByb290cyBvZiB0aGUKLy8vICAgIHZhbHVlcyBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zcXJ0X3BkKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NxcnRwZDI1NigoX192NGRmKV9fYSk7Cn0KCi8vLyBDYWxjdWxhdGVzIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1FSVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZQovLy8gICAgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3FydF9wcyhfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc3FydHBzMjU2KChfX3Y4c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHJlY2lwcm9jYWwgc3F1YXJlIHJvb3RzIG9mIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0Ci8vLyAgICB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJTUVJUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByZWNpcHJvY2FsIHNxdWFyZQovLy8gICAgcm9vdHMgb2YgdGhlIHZhbHVlcyBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3JzcXJ0X3BzKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9yc3FydHBzMjU2KChfX3Y4c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHJlY2lwcm9jYWxzIG9mIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZgovLy8gICAgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJDUFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcmVjaXByb2NhbHMgb2YgdGhlCi8vLyAgICB2YWx1ZXMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9yY3BfcHMoX19tMjU2IF9fYSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JjcHBzMjU2KChfX3Y4c2YpX19hKTsKfQoKLy8vIFJvdW5kcyB0aGUgdmFsdWVzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGFzIHNwZWNpZmllZAovLy8gICAgYnkgdGhlIGJ5dGUgb3BlcmFuZC4gVGhlIHNvdXJjZSB2YWx1ZXMgYXJlIHJvdW5kZWQgdG8gaW50ZWdlciB2YWx1ZXMgYW5kCi8vLyAgICByZXR1cm5lZCBhcyA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9yb3VuZF9wZChfX20yNTZkIFYsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSByb3VuZGluZyBvcGVyYXRpb24uIFxuCi8vLyAgICBCaXRzIFs3OjRdIGFyZSByZXNlcnZlZC4gXG4KLy8vICAgIEJpdCBbM10gaXMgYSBwcmVjaXNpb24gZXhjZXB0aW9uIHZhbHVlOiBcbgovLy8gICAgICAwOiBBIG5vcm1hbCBQRSBleGNlcHRpb24gaXMgdXNlZC4gXG4KLy8vICAgICAgMTogVGhlIFBFIGZpZWxkIGlzIG5vdCB1cGRhdGVkLiBcbgovLy8gICAgQml0IFsyXSBpcyB0aGUgcm91bmRpbmcgY29udHJvbCBzb3VyY2U6IFxuCi8vLyAgICAgIDA6IFVzZSBiaXRzIFsxOjBdIG9mIFxhIE0uIFxuCi8vLyAgICAgIDE6IFVzZSB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nLiBcbgovLy8gICAgQml0cyBbMTowXSBjb250YWluIHRoZSByb3VuZGluZyBjb250cm9sIGRlZmluaXRpb246IFxuCi8vLyAgICAgIDAwOiBOZWFyZXN0LiBcbgovLy8gICAgICAwMTogRG93bndhcmQgKHRvd2FyZCBuZWdhdGl2ZSBpbmZpbml0eSkuIFxuCi8vLyAgICAgIDEwOiBVcHdhcmQgKHRvd2FyZCBwb3NpdGl2ZSBpbmZpbml0eSkuIFxuCi8vLyAgICAgIDExOiBUcnVuY2F0ZWQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSByb3VuZGVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfcm91bmRfcGQoViwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yb3VuZHBkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKFYpLCAoTSkpKQoKLy8vIFJvdW5kcyB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGFzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIGJ5dGUgb3BlcmFuZC4gVGhlIHNvdXJjZSB2YWx1ZXMgYXJlIHJvdW5kZWQgdG8gaW50ZWdlcgovLy8gICAgdmFsdWVzIGFuZCByZXR1cm5lZCBhcyBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X3JvdW5kX3BzKF9fbTI1NiBWLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSByb3VuZGluZyBvcGVyYXRpb24uIFxuCi8vLyAgICBCaXRzIFs3OjRdIGFyZSByZXNlcnZlZC4gXG4KLy8vICAgIEJpdCBbM10gaXMgYSBwcmVjaXNpb24gZXhjZXB0aW9uIHZhbHVlOiBcbgovLy8gICAgICAwOiBBIG5vcm1hbCBQRSBleGNlcHRpb24gaXMgdXNlZC4gXG4KLy8vICAgICAgMTogVGhlIFBFIGZpZWxkIGlzIG5vdCB1cGRhdGVkLiBcbgovLy8gICAgQml0IFsyXSBpcyB0aGUgcm91bmRpbmcgY29udHJvbCBzb3VyY2U6IFxuCi8vLyAgICAgIDA6IFVzZSBiaXRzIFsxOjBdIG9mIFxhIE0uIFxuCi8vLyAgICAgIDE6IFVzZSB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nLiBcbgovLy8gICAgQml0cyBbMTowXSBjb250YWluIHRoZSByb3VuZGluZyBjb250cm9sIGRlZmluaXRpb246IFxuCi8vLyAgICAgIDAwOiBOZWFyZXN0LiBcbgovLy8gICAgICAwMTogRG93bndhcmQgKHRvd2FyZCBuZWdhdGl2ZSBpbmZpbml0eSkuIFxuCi8vLyAgICAgIDEwOiBVcHdhcmQgKHRvd2FyZCBwb3NpdGl2ZSBpbmZpbml0eSkuIFxuCi8vLyAgICAgIDExOiBUcnVuY2F0ZWQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9yb3VuZF9wcyhWLCBNKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcm91bmRwczI1NigoX192OHNmKShfX20yNTYpKFYpLCAoTSkpKQoKLy8vIFJvdW5kcyB1cCB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4gVGhlCi8vLyAgICBzb3VyY2UgdmFsdWVzIGFyZSByb3VuZGVkIHVwIHRvIGludGVnZXIgdmFsdWVzIGFuZCByZXR1cm5lZCBhcyA2NC1iaXQKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2ZCBfbW0yNTZfY2VpbF9wZChfX20yNTZkIFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcm91bmRlZCB1cCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2NlaWxfcGQoVikgIF9tbTI1Nl9yb3VuZF9wZCgoViksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBSb3VuZHMgZG93biB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vICAgIFRoZSBzb3VyY2UgdmFsdWVzIGFyZSByb3VuZGVkIGRvd24gdG8gaW50ZWdlciB2YWx1ZXMgYW5kIHJldHVybmVkIGFzCi8vLyAgICA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9mbG9vcl9wZChfX20yNTZkIFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcm91bmRlZCBkb3duCi8vLyAgICB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2Zsb29yX3BkKFYpIF9tbTI1Nl9yb3VuZF9wZCgoViksIF9NTV9GUk9VTkRfRkxPT1IpCgovLy8gUm91bmRzIHVwIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFRoZQovLy8gICAgc291cmNlIHZhbHVlcyBhcmUgcm91bmRlZCB1cCB0byBpbnRlZ2VyIHZhbHVlcyBhbmQgcmV0dXJuZWQgYXMKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfY2VpbF9wcyhfX20yNTYgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcm91bmRlZCB1cCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2NlaWxfcHMoVikgIF9tbTI1Nl9yb3VuZF9wcygoViksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBSb3VuZHMgZG93biB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBUaGUKLy8vICAgIHNvdXJjZSB2YWx1ZXMgYXJlIHJvdW5kZWQgZG93biB0byBpbnRlZ2VyIHZhbHVlcyBhbmQgcmV0dXJuZWQgYXMKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfZmxvb3JfcHMoX19tMjU2IFYpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgZG93biB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2Zsb29yX3BzKFYpIF9tbTI1Nl9yb3VuZF9wcygoViksIF9NTV9GUk9VTkRfRkxPT1IpCgovKiBMb2dpY2FsICovCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2FuZF9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpKChfX3Y0ZHUpX19hICYgKF9fdjRkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIEFORCBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBTkRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYW5kX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzdSlfX2EgJiAoX192OHN1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLCB1c2luZwovLy8gICAgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBTkROUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBsZWZ0IHNvdXJjZSBvcGVyYW5kLiBUaGUKLy8vICAgIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhpcyB2YWx1ZSBpcyB1c2VkIGluIHRoZSBiaXR3aXNlIEFORC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGFuZCB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYW5kbm90X3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZCkofihfX3Y0ZHUpX19hICYgKF9fdjRkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIEFORCBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLCB1c2luZwovLy8gICAgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBTkROUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxlZnQgc291cmNlIG9wZXJhbmQuIFRoZQovLy8gICAgb25lJ3MgY29tcGxlbWVudCBvZiB0aGlzIHZhbHVlIGlzIHVzZWQgaW4gdGhlIGJpdHdpc2UgQU5ELgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByaWdodCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGFuZCB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hbmRub3RfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KSh+KF9fdjhzdSlfX2EgJiAoX192OHN1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgT1Igb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk9SUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgT1Igb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X29yX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZCkoKF9fdjRkdSlfX2EgfCAoX192NGR1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgT1Igb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWT1JQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9vcl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKChfX3Y4c3UpX19hIHwgKF9fdjhzdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIFhPUiBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWE9SUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgWE9SIG9mIHRoZQovLy8gICAgdmFsdWVzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl94b3JfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGR1KV9fYSBeIChfX3Y0ZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBYT1Igb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgWE9SIG9mIHRoZQovLy8gICAgdmFsdWVzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3hvcl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKChfX3Y4c3UpX19hIF4gKF9fdjhzdSlfX2IpOwp9CgovKiBIb3Jpem9udGFsIGFyaXRobWV0aWMgKi8KLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3bwovLy8gICAgMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSEFERFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlIGV2ZW4taW5kZXhlZAovLy8gICAgZWxlbWVudHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlIG9kZC1pbmRleGVkCi8vLyAgICBlbGVtZW50cyBvZiBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHN1bXMgb2YKLy8vICAgIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfaGFkZF9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfaGFkZHBkMjU2KChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgYWRkcyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiB0d28KLy8vICAgIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSEFERFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgZWxlbWVudHMgd2l0aAovLy8gICAgaW5kZXggMCwgMSwgNCwgNSBvZiBhIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlIGVsZW1lbnRzIHdpdGgKLy8vICAgIGluZGV4IDIsIDMsIDYsIDcgb2YgYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc3VtcyBvZgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2hhZGRfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2hhZGRwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiB0d28KLy8vICAgIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkhTVUJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGluIHRoZQovLy8gICAgZXZlbi1pbmRleGVkIGVsZW1lbnRzIG9mIGEgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGluIHRoZQovLy8gICAgb2RkLWluZGV4ZWQgZWxlbWVudHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9oc3ViX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9oc3VicGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvCi8vLyAgICAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkhTVUJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlCi8vLyAgICBlbGVtZW50cyB3aXRoIGluZGV4IDAsIDEsIDQsIDUgb2YgYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGluIHRoZQovLy8gICAgZWxlbWVudHMgd2l0aCBpbmRleCAyLCAzLCA2LCA3IG9mIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfaHN1Yl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfaHN1YnBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8qIFZlY3RvciBwZXJtdXRhdGlvbnMgKi8KLy8vIENvcGllcyB0aGUgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGFzIHNwZWNpZmllZAovLy8gICAgYnkgdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQuIFxuCi8vLyAgICBCaXQgWzFdOiBcbgovLy8gICAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gb2YgdGhlIHJldHVybmVkCi8vLyAgICAgICAgIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMTI3OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdCBbNjVdOiBcbgovLy8gICAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV2YXJfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGkgX19jKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWx2YXJwZCgoX192MmRmKV9fYSwgKF9fdjJkaSlfX2MpOwp9CgovLy8gQ29waWVzIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYXMgc3BlY2lmaWVkCi8vLyAgICBieSB0aGUgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIGNvcGllZC4gXG4KLy8vICAgIEJpdCBbMV06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUgcmV0dXJuZWQKLy8vICAgICAgICAgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFs2NV06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdCBbMTI5XTogXG4KLy8vICAgICAgMDogQml0cyBbMTkxOjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzI1NToxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFsxOTNdOiBcbgovLy8gICAgICAwOiBCaXRzIFsxOTE6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMjU1OjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxOTJdIG9mIHRoZQovLy8gICAgcmV0dXJuZWQgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9wZXJtdXRldmFyX3BkKF9fbTI1NmQgX19hLCBfX20yNTZpIF9fYykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92cGVybWlsdmFycGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGkpX19jKTsKfQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGFzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZC4KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0cyBbMTowXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFszMzozMl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzY1OjY0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbOTc6OTZdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcGVybXV0ZXZhcl9wcyhfX20xMjggX19hLCBfX20xMjhpIF9fYykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWx2YXJwcygoX192NHNmKV9fYSwgKF9fdjRzaSlfX2MpOwp9CgovLy8gQ29waWVzIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gYXMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0cyBbMTowXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFszMzozMl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzY1OjY0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbOTc6OTZdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMTI5OjEyOF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFsxNjE6MTYwXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzE1OToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzE5MToxNjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzIyMzoxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToyMjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzE5MzoxOTJdOiBcbgovLy8gICAgICAwMDogQml0cyBbMTU5OjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbMTkxOjE2MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbMjIzOjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjIyNF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMjI1OjIyNF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9wZXJtdXRldmFyX3BzKF9fbTI1NiBfX2EsIF9fbTI1NmkgX19jKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdnBlcm1pbHZhcnBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNpKV9fYyk7Cn0KCi8vLyBDb3BpZXMgdGhlIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBhcyBzcGVjaWZpZWQKLy8vICAgIGJ5IHRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fcGVybXV0ZV9wZChfX20xMjhkIEEsIGNvbnN0IGludCBDKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gQwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0IFswXTogXG4KLy8vICAgICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXR1cm5lZAovLy8gICAgICAgICB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzFdOiBcbgovLy8gICAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9wZXJtdXRlX3BkKEEsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdnBlcm1pbHBkKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShDKSkpCgovLy8gQ29waWVzIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmQgX21tMjU2X3Blcm11dGVfcGQoX19tMjU2ZCBBLCBjb25zdCBpbnQgQyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIEMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIGNvcGllZC4gXG4KLy8vICAgIEJpdCBbMF06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUgcmV0dXJuZWQKLy8vICAgICAgICAgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFsxXTogXG4KLy8vICAgICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMTI3OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFsyXTogXG4KLy8vICAgICAgMDogQml0cyBbMTkxOjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzI1NToxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFszXTogXG4KLy8vICAgICAgMDogQml0cyBbMTkxOjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxOTJdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzI1NToxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfcGVybXV0ZV9wZChBLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWxwZDI1NigoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoQykpKQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fcGVybXV0ZV9wcyhfX20xMjggQSwgY29uc3QgaW50IEMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIEMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIGNvcGllZC4gXG4KLy8vICAgIEJpdHMgWzE6MF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMzoyXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNzo2XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4KI2RlZmluZSBfbW1fcGVybXV0ZV9wcyhBLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdnBlcm1pbHBzKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKEMpKSkKCi8vLyBDb3BpZXMgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGFzIHNwZWNpZmllZCBieQovLy8gICAgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X3Blcm11dGVfcHMoX19tMjU2IEEsIGNvbnN0IGludCBDKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBDCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzM6Ml06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzU6NF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzc6Nl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgICAwMDogQml0cyBbMTU5OjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE1OToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbMTkxOjE2MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE1OToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbMjIzOjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE1OToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjIyNF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE1OToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMzoyXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzE1OToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzE5MToxNjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzIyMzoxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToyMjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzU6NF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFs3OjZdOiBcbgovLy8gICAgICAwMDogQml0cyBbMTU5OjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToyMjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbMTkxOjE2MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToyMjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbMjIzOjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToyMjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjIyNF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToyMjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlX3BzKEEsIEMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl92cGVybWlscHMyNTYoKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoQykpKQoKLy8vIFBlcm11dGVzIDEyOC1iaXQgZGF0YSB2YWx1ZXMgc3RvcmVkIGluIHR3byAyNTYtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZG91YmxlXSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2ZCBfbW0yNTZfcGVybXV0ZTJmMTI4X3BkKF9fbTI1NmQgVjEsIF9fbTI1NmQgVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTTJGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYxCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBwZXJtdXRlZC4gXG4KLy8vICAgIEJpdHMgWzE6MF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgICAwMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgICAxMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICAgICAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICAgICAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzU6NF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfcGVybXV0ZTJmMTI4X3BkKFYxLCBWMiwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92cGVybTJmMTI4X3BkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFYyKSwgKGludCkoTSkpKQoKLy8vIFBlcm11dGVzIDEyOC1iaXQgZGF0YSB2YWx1ZXMgc3RvcmVkIGluIHR3byAyNTYtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs4IHggZmxvYXRdLCBhcyBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X3Blcm11dGUyZjEyOF9wcyhfX20yNTYgVjEsIF9fbTI1NiBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNMkYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgcGVybXV0ZWQuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgMDA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgIDAwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMmYxMjhfcHMoVjEsIFYyLCBNKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfdnBlcm0yZjEyOF9wczI1NigoX192OHNmKShfX20yNTYpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShWMiksIChpbnQpKE0pKSkKCi8vLyBQZXJtdXRlcyAxMjgtYml0IGRhdGEgdmFsdWVzIHN0b3JlZCBpbiB0d28gMjU2LWJpdCBpbnRlZ2VyIHZlY3RvcnMsCi8vLyAgICBhcyBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZpIF9tbTI1Nl9wZXJtdXRlMmYxMjhfc2kyNTYoX19tMjU2aSBWMSwgX19tMjU2aSBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNMkYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLgovLy8gICAgQml0cyBbMTowXTogXG4KLy8vICAgIDAwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMDE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDEwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzU6NF06IFxuCi8vLyAgICAwMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMDE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDExOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMmYxMjhfc2kyNTYoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtMmYxMjhfc2kyNTYoKF9fdjhzaSkoX19tMjU2aSkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVjIpLCAoaW50KShNKSkpCgovKiBWZWN0b3IgQmxlbmQgKi8KLy8vIE1lcmdlcyA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gZWl0aGVyIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlCi8vLyAgICBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9ibGVuZF9wZChfX20yNTZkIFYxLCBfX20yNTZkIFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyBbMzowXSBzcGVjaWZ5aW5nIGhvdyB0aGUKLy8vICAgIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICAgaW5kZXggb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUgY29ycmVzcG9uZGluZyA2NC1iaXQKLy8vICAgIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBWMSBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdCBlbGVtZW50IGluCi8vLyAgICBvcGVyYW5kIFxhIFYyIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9ibGVuZF9wZChWMSwgVjIsIE0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfYmxlbmRwZDI1NigoX192NGRmKShfX20yNTZkKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShWMiksIChpbnQpKE0pKSkKCi8vLyBNZXJnZXMgMzItYml0IHNpbmdsZS1wcmVjaXNpb24gZGF0YSB2YWx1ZXMgc3RvcmVkIGluIGVpdGhlciBvZiB0aGUKLy8vICAgIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0sIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlCi8vLyAgICBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X2JsZW5kX3BzKF9fbTI1NiBWMSwgX19tMjU2IFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgWzc6MF0gc3BlY2lmeWluZyBob3cgdGhlCi8vLyAgICB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZC4gVGhlIHBvc2l0aW9uIG9mIHRoZSBtYXNrIGJpdCBjb3JyZXNwb25kcyB0byB0aGUKLy8vICAgIGluZGV4IG9mIGEgY29waWVkIHZhbHVlLiBXaGVuIGEgbWFzayBiaXQgaXMgMCwgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0Ci8vLyAgICBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFdoZW4gYSBtYXNrIGJpdCBpcyAxLCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZWxlbWVudCBpbgovLy8gICAgb3BlcmFuZCBcYSBWMiBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9ibGVuZF9wcyhWMSwgVjIsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9ibGVuZHBzMjU2KChfX3Y4c2YpKF9fbTI1NikoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFYyKSwgKGludCkoTSkpKQoKLy8vIE1lcmdlcyA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gZWl0aGVyIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIGFzIHNwZWNpZmllZCBieSB0aGUgMjU2LWJpdCB2ZWN0b3IKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EVlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgMjU1LCAxOTEsIDEyNywgYW5kIDYzIHNwZWNpZnlpbmcKLy8vICAgIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMKLy8vICAgIHRvIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyA2NC1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fYSBpcyBjb3BpZWQgdG8gdGhlIHNhbWUKLy8vICAgIHBvc2l0aW9uIGluIHRoZSBkZXN0aW5hdGlvbi4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nCi8vLyAgICA2NC1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fYiBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYmxlbmR2X3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYiwgX19tMjU2ZCBfX2MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfYmxlbmR2cGQyNTYoCiAgICAoX192NGRmKV9fYSwgKF9fdjRkZilfX2IsIChfX3Y0ZGYpX19jKTsKfQoKLy8vIE1lcmdlcyAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gZWl0aGVyIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSAyNTYtYml0IHZlY3RvcgovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRWUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgMjU1LCAyMjMsIDE5MSwgMTU5LCAxMjcsIDk1LCA2MywKLy8vICAgIGFuZCAzMSBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUKLy8vICAgIG1hc2sgYml0IGNvcnJlc3BvbmRzIHRvIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbgovLy8gICAgYSBtYXNrIGJpdCBpcyAwLCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fYSBpcwovLy8gICAgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBkZXN0aW5hdGlvbi4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyAzMi1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fYiBpcyBjb3BpZWQgdG8gdGhlIHNhbWUKLy8vICAgIHBvc2l0aW9uIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2JsZW5kdl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iLCBfX20yNTYgX19jKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfYmxlbmR2cHMyNTYoCiAgICAoX192OHNmKV9fYSwgKF9fdjhzZilfX2IsIChfX3Y4c2YpX19jKTsKfQoKLyogVmVjdG9yIERvdCBQcm9kdWN0ICovCi8vLyBDb21wdXRlcyB0d28gZG90IHByb2R1Y3RzIGluIHBhcmFsbGVsLCB1c2luZyB0aGUgbG93ZXIgYW5kIHVwcGVyCi8vLyAgICBoYWx2ZXMgb2YgdHdvIFs4IHggZmxvYXRdIHZlY3RvcnMgYXMgaW5wdXQgdG8gdGhlIHR3byBjb21wdXRhdGlvbnMsIGFuZAovLy8gICAgcmV0dXJuaW5nIHRoZSB0d28gZG90IHByb2R1Y3RzIGluIHRoZSBsb3dlciBhbmQgdXBwZXIgaGFsdmVzIG9mIHRoZQovLy8gICAgWzggeCBmbG9hdF0gcmVzdWx0LgovLy8KLy8vICAgIFRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIGNvbnRyb2xzIHdoaWNoIGlucHV0IGVsZW1lbnRzIHdpbGwKLy8vICAgIGNvbnRyaWJ1dGUgdG8gdGhlIGRvdCBwcm9kdWN0LCBhbmQgd2hlcmUgdGhlIGZpbmFsIHJlc3VsdHMgYXJlIHJldHVybmVkLgovLy8gICAgSW4gZ2VuZXJhbCwgZm9yIGVhY2ggZG90IHByb2R1Y3QsIHRoZSBmb3VyIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdGhlCi8vLyAgICBpbnB1dCB2ZWN0b3JzIGFyZSBtdWx0aXBsaWVkOyB0aGUgZmlyc3QgdHdvIGFuZCBzZWNvbmQgdHdvIHByb2R1Y3RzIGFyZQovLy8gICAgc3VtbWVkLCB0aGVuIHRoZSB0d28gc3VtcyBhcmUgYWRkZWQgdG8gZm9ybSB0aGUgZmluYWwgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9kcF9wcyhfX20yNTYgVjEsIF9fbTI1NiBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYxCi8vLyAgICBBIHZlY3RvciBvZiBbOCB4IGZsb2F0XSB2YWx1ZXMsIHRyZWF0ZWQgYXMgdHdvIFs0IHggZmxvYXRdIHZlY3RvcnMuCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgdmVjdG9yIG9mIFs4IHggZmxvYXRdIHZhbHVlcywgdHJlYXRlZCBhcyB0d28gWzQgeCBmbG9hdF0gdmVjdG9ycy4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBhcmd1bWVudC4gQml0cyBbNzo0XSBkZXRlcm1pbmUgd2hpY2ggZWxlbWVudHMgb2YKLy8vICAgIHRoZSBpbnB1dCB2ZWN0b3JzIGFyZSB1c2VkLCB3aXRoIGJpdCBbNF0gY29ycmVzcG9uZGluZyB0byB0aGUgbG93ZXN0Ci8vLyAgICBlbGVtZW50IGFuZCBiaXQgWzddIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgZWxlbWVudCBvZiBlYWNoIFs0IHgKLy8vICAgIGZsb2F0XSBzdWJ2ZWN0b3IuIElmIGEgYml0IGlzIHNldCwgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgZnJvbSB0aGUKLy8vICAgIHR3byBpbnB1dCB2ZWN0b3JzIGFyZSB1c2VkIGFzIGFuIGlucHV0IGZvciBkb3QgcHJvZHVjdDsgb3RoZXJ3aXNlIHRoYXQKLy8vICAgIGlucHV0IGlzIHRyZWF0ZWQgYXMgemVyby4gQml0cyBbMzowXSBkZXRlcm1pbmUgd2hpY2ggZWxlbWVudHMgb2YgdGhlCi8vLyAgICByZXN1bHQgd2lsbCByZWNlaXZlIGEgY29weSBvZiB0aGUgZmluYWwgZG90IHByb2R1Y3QsIHdpdGggYml0IFswXQovLy8gICAgY29ycmVzcG9uZGluZyB0byB0aGUgbG93ZXN0IGVsZW1lbnQgYW5kIGJpdCBbM10gY29ycmVzcG9uZGluZyB0byB0aGUKLy8vICAgIGhpZ2hlc3QgZWxlbWVudCBvZiBlYWNoIFs0IHggZmxvYXRdIHN1YnZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgZG90Ci8vLyAgICBwcm9kdWN0IGlzIHJldHVybmVkIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQ7IG90aGVyd2lzZSB0aGF0IGVsZW1lbnQKLy8vICAgIGlzIHNldCB0byB6ZXJvLiBUaGUgYml0bWFzayBpcyBhcHBsaWVkIGluIHRoZSBzYW1lIHdheSB0byBlYWNoIG9mIHRoZQovLy8gICAgdHdvIHBhcmFsbGVsIGRvdCBwcm9kdWN0IGNvbXB1dGF0aW9ucy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdHdvIGRvdCBwcm9kdWN0cy4KI2RlZmluZSBfbW0yNTZfZHBfcHMoVjEsIFYyLCBNKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZHBwczI1NigoX192OHNmKShfX20yNTYpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShWMiksIChNKSkpCgovKiBWZWN0b3Igc2h1ZmZsZSAqLwovLy8gU2VsZWN0cyA4IGZsb2F0IHZhbHVlcyBmcm9tIHRoZSAyNTYtYml0IG9wZXJhbmRzIG9mIFs4IHggZmxvYXRdLCBhcwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgdmFsdWUgb3BlcmFuZC4KLy8vCi8vLyAgICBUaGUgZm91ciBzZWxlY3RlZCBlbGVtZW50cyBpbiBlYWNoIG9wZXJhbmQgYXJlIGNvcGllZCB0byB0aGUgZGVzdGluYXRpb24KLy8vICAgIGFjY29yZGluZyB0byB0aGUgYml0cyBzcGVjaWZpZWQgaW4gdGhlIGltbWVkaWF0ZSBvcGVyYW5kLiBUaGUgc2VsZWN0ZWQKLy8vICAgIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IDI1Ni1iaXQgb3BlcmFuZCBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIGFuZAovLy8gICAgYml0cyBbMTkxOjEyOF0gb2YgdGhlIGRlc3RpbmF0aW9uLCBhbmQgdGhlIHNlbGVjdGVkIGVsZW1lbnRzIGZyb20gdGhlCi8vLyAgICBzZWNvbmQgMjU2LWJpdCBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBhbmQgYml0cyBbMjU1OjE5Ml0gb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4gRm9yIGV4YW1wbGUsIGlmIGJpdHMgWzc6MF0gb2YgdGhlIGltbWVkaWF0ZSBvcGVyYW5kCi8vLyAgICBjb250YWluIGEgdmFsdWUgb2YgMHhGRiwgdGhlIDI1Ni1iaXQgZGVzdGluYXRpb24gdmVjdG9yIHdvdWxkIGNvbnRhaW4gdGhlCi8vLyAgICBmb2xsb3dpbmcgdmFsdWVzOiBiWzddLCBiWzddLCBhWzddLCBhWzddLCBiWzNdLCBiWzNdLCBhWzNdLCBhWzNdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9zaHVmZmxlX3BzKF9fbTI1NiBhLCBfX20yNTYgYiwgY29uc3QgaW50IG1hc2spOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTSFVGUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhlIGZvdXIgc2VsZWN0ZWQgZWxlbWVudHMgaW4gdGhpcwovLy8gICAgb3BlcmFuZCBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIGFuZCBiaXRzIFsxOTE6MTI4XSBpbiB0aGUgZGVzdGluYXRpb24sCi8vLyAgICBhY2NvcmRpbmcgdG8gdGhlIGJpdHMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUgb3BlcmFuZC4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBUaGUgZm91ciBzZWxlY3RlZCBlbGVtZW50cyBpbiB0aGlzCi8vLyAgICBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBhbmQgYml0cyBbMjU1OjE5Ml0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiwgYWNjb3JkaW5nIHRvIHRoZSBiaXRzIHNwZWNpZmllZCBpbiB0aGUgaW1tZWRpYXRlIG9wZXJhbmQuCi8vLyBccGFyYW0gbWFzawovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIGNvbnRhaW5pbmcgYW4gOC1iaXQgdmFsdWUgc3BlY2lmeWluZyB3aGljaCBlbGVtZW50cyB0bwovLy8gICAgY29weSBmcm9tIFxhIGEgYW5kIFxhIGIgXG4uCi8vLyAgICBCaXRzIFszOjBdIHNwZWNpZnkgdGhlIHZhbHVlcyBjb3BpZWQgZnJvbSBvcGVyYW5kIFxhIGEuIFxuCi8vLyAgICBCaXRzIFs3OjRdIHNwZWNpZnkgdGhlIHZhbHVlcyBjb3BpZWQgZnJvbSBvcGVyYW5kIFxhIGIuIFxuCi8vLyAgICBUaGUgZGVzdGluYXRpb25zIHdpdGhpbiB0aGUgMjU2LWJpdCBkZXN0aW5hdGlvbiBhcmUgYXNzaWduZWQgdmFsdWVzIGFzCi8vLyAgICBmb2xsb3dzLCBhY2NvcmRpbmcgdG8gdGhlIGJpdCB2YWx1ZSBhc3NpZ25tZW50cyBkZXNjcmliZWQgYmVsb3c6IFxuCi8vLyAgICBCaXRzIFsxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMzE6MF0gYW5kIFsxNTk6MTI4XSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMzoyXSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzYzOjMyXSBhbmQgWzE5MToxNjBdIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs1OjRdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbOTU6NjRdIGFuZCBbMjIzOjE5Ml0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFsxMjc6OTZdIGFuZCBbMjU1OjIyNF0gaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCB2YWx1ZSBhc3NpZ25tZW50czogXG4KLy8vICAgIDAwOiBCaXRzIFszMTowXSBhbmQgWzE1OToxMjhdIGFyZSBjb3BpZWQgZnJvbSB0aGUgc2VsZWN0ZWQgb3BlcmFuZC4gXG4KLy8vICAgIDAxOiBCaXRzIFs2MzozMl0gYW5kIFsxOTE6MTYwXSBhcmUgY29waWVkIGZyb20gdGhlIHNlbGVjdGVkIG9wZXJhbmQuIFxuCi8vLyAgICAxMDogQml0cyBbOTU6NjRdIGFuZCBbMjIzOjE5Ml0gYXJlIGNvcGllZCBmcm9tIHRoZSBzZWxlY3RlZCBvcGVyYW5kLiBcbgovLy8gICAgMTE6IEJpdHMgWzEyNzo5Nl0gYW5kIFsyNTU6MjI0XSBhcmUgY29waWVkIGZyb20gdGhlIHNlbGVjdGVkIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9wcyhhLCBiLCBtYXNrKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2h1ZnBzMjU2KChfX3Y4c2YpKF9fbTI1NikoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShiKSwgKGludCkobWFzaykpKQoKLy8vIFNlbGVjdHMgZm91ciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBmcm9tIHRoZSAyNTYtYml0IG9wZXJhbmRzIG9mCi8vLyAgICBbNCB4IGRvdWJsZV0sIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIHZhbHVlIG9wZXJhbmQuCi8vLwovLy8gICAgVGhlIHNlbGVjdGVkIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IDI1Ni1iaXQgb3BlcmFuZCBhcmUgY29waWVkIHRvIGJpdHMKLy8vICAgIFs2MzowXSBhbmQgYml0cyBbMTkxOjEyOF0gaW4gdGhlIGRlc3RpbmF0aW9uLCBhbmQgdGhlIHNlbGVjdGVkIGVsZW1lbnRzCi8vLyAgICBmcm9tIHRoZSBzZWNvbmQgMjU2LWJpdCBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBhbmQgYml0cwovLy8gICAgWzI1NToxOTJdIGluIHRoZSBkZXN0aW5hdGlvbi4gRm9yIGV4YW1wbGUsIGlmIGJpdHMgWzM6MF0gb2YgdGhlIGltbWVkaWF0ZQovLy8gICAgb3BlcmFuZCBjb250YWluIGEgdmFsdWUgb2YgMHhGLCB0aGUgMjU2LWJpdCBkZXN0aW5hdGlvbiB2ZWN0b3Igd291bGQKLy8vICAgIGNvbnRhaW4gdGhlIGZvbGxvd2luZyB2YWx1ZXM6IGJbM10sIGFbM10sIGJbMV0sIGFbMV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9zaHVmZmxlX3BkKF9fbTI1NmQgYSwgX19tMjU2ZCBiLCBjb25zdCBpbnQgbWFzayk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNIVUZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBtYXNrCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgY29udGFpbmluZyA4LWJpdCB2YWx1ZXMgc3BlY2lmeWluZyB3aGljaCBlbGVtZW50cyB0bwovLy8gICAgY29weSBmcm9tIFxhIGEgYW5kIFxhIGI6IFxuCi8vLyAgICBCaXQgWzBdPTA6IEJpdHMgWzYzOjBdIGFyZSBjb3BpZWQgZnJvbSBcYSBhIHRvIGJpdHMgWzYzOjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXQgWzBdPTE6IEJpdHMgWzEyNzo2NF0gYXJlIGNvcGllZCBmcm9tIFxhIGEgdG8gYml0cyBbNjM6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbMV09MDogQml0cyBbNjM6MF0gYXJlIGNvcGllZCBmcm9tIFxhIGIgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFsxXT0xOiBCaXRzIFsxMjc6NjRdIGFyZSBjb3BpZWQgZnJvbSBcYSBiIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbMl09MDogQml0cyBbMTkxOjEyOF0gYXJlIGNvcGllZCBmcm9tIFxhIGEgdG8gYml0cyBbMTkxOjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbMl09MTogQml0cyBbMjU1OjE5Ml0gYXJlIGNvcGllZCBmcm9tIFxhIGEgdG8gYml0cyBbMTkxOjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbM109MDogQml0cyBbMTkxOjEyOF0gYXJlIGNvcGllZCBmcm9tIFxhIGIgdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbM109MTogQml0cyBbMjU1OjE5Ml0gYXJlIGNvcGllZCBmcm9tIFxhIGIgdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9wZChhLCBiLCBtYXNrKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NodWZwZDI1NigoX192NGRmKShfX20yNTZkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoYiksIChpbnQpKG1hc2spKSkKCi8qIENvbXBhcmUgKi8KI2RlZmluZSBfQ01QX0VRX09RICAgIDB4MDAgLyogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTFRfT1MgICAgMHgwMSAvKiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9MRV9PUyAgICAweDAyIC8qIExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX1VOT1JEX1EgIDB4MDMgLyogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05FUV9VUSAgIDB4MDQgLyogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkxUX1VTICAgMHgwNSAvKiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OTEVfVVMgICAweDA2IC8qIE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX09SRF9RICAgIDB4MDcgLyogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgICAqLwojZGVmaW5lIF9DTVBfRVFfVVEgICAgMHgwOCAvKiBFcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05HRV9VUyAgIDB4MDkgLyogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkdUX1VTICAgMHgwYSAvKiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9GQUxTRV9PUSAweDBiIC8qIEZhbHNlIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05FUV9PUSAgIDB4MGMgLyogTm90LWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX0dFX09TICAgIDB4MGQgLyogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfR1RfT1MgICAgMHgwZSAvKiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9UUlVFX1VRICAweDBmIC8qIFRydWUgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9FUV9PUyAgICAweDEwIC8qIEVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTFRfT1EgICAgMHgxMSAvKiBMZXNzLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTEVfT1EgICAgMHgxMiAvKiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfVU5PUkRfUyAgMHgxMyAvKiBVbm9yZGVyZWQgKHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9ORVFfVVMgICAweDE0IC8qIE5vdC1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkxUX1VRICAgMHgxNSAvKiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkxFX1VRICAgMHgxNiAvKiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfT1JEX1MgICAgMHgxNyAvKiBPcmRlcmVkIChzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfRVFfVVMgICAgMHgxOCAvKiBFcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkdFX1VRICAgMHgxOSAvKiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkdUX1VRICAgMHgxYSAvKiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfRkFMU0VfT1MgMHgxYiAvKiBGYWxzZSAob3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05FUV9PUyAgIDB4MWMgLyogTm90LWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfR0VfT1EgICAgMHgxZCAvKiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfR1RfT1EgICAgMHgxZSAvKiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfVFJVRV9VUyAgMHgxZiAvKiBUcnVlICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0d28KLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0sIHVzaW5nIHRoZSBvcGVyYXRpb24gc3BlY2lmaWVkIGJ5IHRoZQovLy8gICAgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyAgICBSZXR1cm5zIGEgWzIgeCBkb3VibGVdIHZlY3RvciBjb25zaXN0aW5nIG9mIHR3byBkb3VibGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHRoZSB0d28gY29tcGFyaXNvbiByZXN1bHRzOiB6ZXJvIGlmIHRoZSBjb21wYXJpc29uIGlzIGZhbHNlLCBhbmQgYWxsIDEncwovLy8gICAgaWYgdGhlIGNvbXBhcmlzb24gaXMgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2NtcF9wZChfX20xMjhkIGEsIF9fbTEyOGQgYiwgY29uc3QgaW50IGMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBjCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIGJpdHMgWzQ6MF0gc3BlY2lmeWluZyB3aGljaCBjb21wYXJpc29uCi8vLyAgICBvcGVyYXRpb24gdG8gdXNlOiBcbgovLy8gICAgMHgwMDogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDAxOiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMzogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNzogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDg6IEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQjogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRjogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMDogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTE6IExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTM6IFVub3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTc6IE9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTg6IEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUI6IEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUY6IFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKQovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgojZGVmaW5lIF9tbV9jbXBfcGQoYSwgYiwgYykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBwZCgoX192MmRmKShfX20xMjhkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShiKSwgKGMpKSkKCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbNCB4IGZsb2F0XSwgdXNpbmcgdGhlIG9wZXJhdGlvbiBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyCi8vLyAgICBvcGVyYW5kLgovLy8KLy8vICAgIFJldHVybnMgYSBbNCB4IGZsb2F0XSB2ZWN0b3IgY29uc2lzdGluZyBvZiBmb3VyIGZsb2F0cyBjb3JyZXNwb25kaW5nIHRvCi8vLyAgICB0aGUgZm91ciBjb21wYXJpc29uIHJlc3VsdHM6IHplcm8gaWYgdGhlIGNvbXBhcmlzb24gaXMgZmFsc2UsIGFuZCBhbGwgMSdzCi8vLyAgICBpZiB0aGUgY29tcGFyaXNvbiBpcyB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9jbXBfcHMoX19tMTI4IGEsIF9fbTEyOCBiLCBjb25zdCBpbnQgYyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBjCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIGJpdHMgWzQ6MF0gc3BlY2lmeWluZyB3aGljaCBjb21wYXJpc29uCi8vLyAgICBvcGVyYXRpb24gdG8gdXNlOiBcbgovLy8gICAgMHgwMDogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDAxOiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMzogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNzogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDg6IEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQjogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRjogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMDogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTE6IExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTM6IFVub3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTc6IE9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTg6IEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUI6IEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUY6IFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKQovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCiNkZWZpbmUgX21tX2NtcF9wcyhhLCBiLCBjKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY21wcHMoKF9fdjRzZikoX19tMTI4KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoYiksIChjKSkpCgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0d28KLy8vICAgIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIHVzaW5nIHRoZSBvcGVyYXRpb24gc3BlY2lmaWVkIGJ5IHRoZQovLy8gICAgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyAgICBSZXR1cm5zIGEgWzQgeCBkb3VibGVdIHZlY3RvciBjb25zaXN0aW5nIG9mIGZvdXIgZG91YmxlcyBjb3JyZXNwb25kaW5nIHRvCi8vLyAgICB0aGUgZm91ciBjb21wYXJpc29uIHJlc3VsdHM6IHplcm8gaWYgdGhlIGNvbXBhcmlzb24gaXMgZmFsc2UsIGFuZCBhbGwgMSdzCi8vLyAgICBpZiB0aGUgY29tcGFyaXNvbiBpcyB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2ZCBfbW0yNTZfY21wX3BkKF9fbTI1NmQgYSwgX19tMjU2ZCBiLCBjb25zdCBpbnQgYyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIGMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggYml0cyBbNDowXSBzcGVjaWZ5aW5nIHdoaWNoIGNvbXBhcmlzb24KLy8vICAgIG9wZXJhdGlvbiB0byB1c2U6IFxuCi8vLyAgICAweDAwOiBFcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDE6IExlc3MtdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAzOiBVbm9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA3OiBPcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwODogRXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBCOiBGYWxzZSAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEM6IE5vdC1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBGOiBUcnVlICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEwOiBFcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMTogTGVzcy10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMzogVW5vcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNzogT3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxODogRXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQjogRmFsc2UgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUM6IE5vdC1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRjogVHJ1ZSAodW5vcmRlcmVkLCBzaWduYWxpbmcpCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCiNkZWZpbmUgX21tMjU2X2NtcF9wZChhLCBiLCBjKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2NtcHBkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKGIpLCAoYykpKQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs4IHggZmxvYXRdLCB1c2luZyB0aGUgb3BlcmF0aW9uIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gICAgUmV0dXJucyBhIFs4IHggZmxvYXRdIHZlY3RvciBjb25zaXN0aW5nIG9mIGVpZ2h0IGZsb2F0cyBjb3JyZXNwb25kaW5nIHRvCi8vLyAgICB0aGUgZWlnaHQgY29tcGFyaXNvbiByZXN1bHRzOiB6ZXJvIGlmIHRoZSBjb21wYXJpc29uIGlzIGZhbHNlLCBhbmQgYWxsCi8vLyAgICAxJ3MgaWYgdGhlIGNvbXBhcmlzb24gaXMgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfY21wX3BzKF9fbTI1NiBhLCBfX20yNTYgYiwgY29uc3QgaW50IGMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gYwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBiaXRzIFs0OjBdIHNwZWNpZnlpbmcgd2hpY2ggY29tcGFyaXNvbgovLy8gICAgb3BlcmF0aW9uIHRvIHVzZTogXG4KLy8vICAgIDB4MDA6IEVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMTogTGVzcy10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDM6IFVub3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDc6IE9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA4OiBFcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEI6IEZhbHNlIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQzogTm90LWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEY6IFRydWUgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTA6IEVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDExOiBMZXNzLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEzOiBVbm9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE3OiBPcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE4OiBFcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFCOiBGYWxzZSAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQzogTm90LWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFGOiBUcnVlICh1bm9yZGVyZWQsIHNpZ25hbGluZykKLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgojZGVmaW5lIF9tbTI1Nl9jbXBfcHMoYSwgYiwgYykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2NtcHBzMjU2KChfX3Y4c2YpKF9fbTI1NikoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKGIpLCAoYykpKQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgc2NhbGFyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mCi8vLyAgICB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSwgdXNpbmcgdGhlIG9wZXJhdGlvbiBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSByZXN1bHQgaXMgdHJ1ZSwgYWxsIDY0IGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uIHZlY3RvciBhcmUgc2V0OwovLy8gICAgb3RoZXJ3aXNlIHRoZXkgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9jbXBfc2QoX19tMTI4ZCBhLCBfX20xMjhkIGIsIGNvbnN0IGludCBjKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gYwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBiaXRzIFs0OjBdIHNwZWNpZnlpbmcgd2hpY2ggY29tcGFyaXNvbgovLy8gICAgb3BlcmF0aW9uIHRvIHVzZTogXG4KLy8vICAgIDB4MDA6IEVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMTogTGVzcy10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDM6IFVub3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDc6IE9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA4OiBFcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEI6IEZhbHNlIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQzogTm90LWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEY6IFRydWUgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTA6IEVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDExOiBMZXNzLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEzOiBVbm9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE3OiBPcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE4OiBFcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFCOiBGYWxzZSAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQzogTm90LWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFGOiBUcnVlICh1bm9yZGVyZWQsIHNpZ25hbGluZykKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4KI2RlZmluZSBfbW1fY21wX3NkKGEsIGIsIGMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wc2QoKF9fdjJkZikoX19tMTI4ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoYiksIChjKSkpCgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzY2FsYXIgdmFsdWVzIG9mIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLCB1c2luZyB0aGUgb3BlcmF0aW9uIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlCi8vLyAgICBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gICAgSWYgdGhlIHJlc3VsdCBpcyB0cnVlLCBhbGwgMzIgYml0cyBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yIGFyZSBzZXQ7Ci8vLyAgICBvdGhlcndpc2UgdGhleSBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fY21wX3NzKF9fbTEyOCBhLCBfX20xMjggYiwgY29uc3QgaW50IGMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gYwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBiaXRzIFs0OjBdIHNwZWNpZnlpbmcgd2hpY2ggY29tcGFyaXNvbgovLy8gICAgb3BlcmF0aW9uIHRvIHVzZTogXG4KLy8vICAgIDB4MDA6IEVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMTogTGVzcy10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDM6IFVub3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDc6IE9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA4OiBFcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEI6IEZhbHNlIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQzogTm90LWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEY6IFRydWUgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTA6IEVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDExOiBMZXNzLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEzOiBVbm9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE3OiBPcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE4OiBFcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFCOiBGYWxzZSAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQzogTm90LWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFGOiBUcnVlICh1bm9yZGVyZWQsIHNpZ25hbGluZykKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgojZGVmaW5lIF9tbV9jbXBfc3MoYSwgYiwgYykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcHNzKChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKGIpLCAoYykpKQoKLy8vIFRha2VzIGEgWzggeCBpMzJdIHZlY3RvciBhbmQgcmV0dXJucyB0aGUgdmVjdG9yIGVsZW1lbnQgdmFsdWUKLy8vICAgIGluZGV4ZWQgYnkgdGhlIGltbWVkaWF0ZSBjb25zdGFudCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggaTMyXS4KLy8vIFxwYXJhbSBfX2ltbQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCB3aXRoIGJpdHMgWzI6MF0gZGV0ZXJtaW5pbmcgd2hpY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IGlzIGV4dHJhY3RlZCBhbmQgcmV0dXJuZWQuCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCAzMiBiaXRzIG9mIGV4dGVuZGVkCi8vLyAgICBwYWNrZWQgZGF0YS4KI2RlZmluZSBfbW0yNTZfZXh0cmFjdF9lcGkzMihYLCBOKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmVjX2V4dF92OHNpKChfX3Y4c2kpKF9fbTI1NmkpKFgpLCAoaW50KShOKSkpCgovLy8gVGFrZXMgYSBbMTYgeCBpMTZdIHZlY3RvciBhbmQgcmV0dXJucyB0aGUgdmVjdG9yIGVsZW1lbnQgdmFsdWUKLy8vICAgIGluZGV4ZWQgYnkgdGhlIGltbWVkaWF0ZSBjb25zdGFudCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaTE2XS4KLy8vIFxwYXJhbSBfX2ltbQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCB3aXRoIGJpdHMgWzM6MF0gZGV0ZXJtaW5pbmcgd2hpY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IGlzIGV4dHJhY3RlZCBhbmQgcmV0dXJuZWQuCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCAxNiBiaXRzIG9mIHplcm8gZXh0ZW5kZWQKLy8vICAgIHBhY2tlZCBkYXRhLgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0X2VwaTE2KFgsIE4pIFwKICAoKGludCkodW5zaWduZWQgc2hvcnQpX19idWlsdGluX2lhMzJfdmVjX2V4dF92MTZoaSgoX192MTZoaSkoX19tMjU2aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShOKSkpCgovLy8gVGFrZXMgYSBbMzIgeCBpOF0gdmVjdG9yIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4K0NPTVBPU0lURSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMzIgeCBpOF0uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgd2l0aCBiaXRzIFs0OjBdIGRldGVybWluaW5nIHdoaWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBpcyBleHRyYWN0ZWQgYW5kIHJldHVybmVkLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgOCBiaXRzIG9mIHplcm8gZXh0ZW5kZWQKLy8vICAgIHBhY2tlZCBkYXRhLgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0X2VwaTgoWCwgTikgXAogICgoaW50KSh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjMycWkoKF9fdjMycWkpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShOKSkpCgojaWZkZWYgX194ODZfNjRfXwovLy8gVGFrZXMgYSBbNCB4IGk2NF0gdmVjdG9yIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4K0NPTVBPU0lURSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGk2NF0uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgd2l0aCBiaXRzIFsxOjBdIGRldGVybWluaW5nIHdoaWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBpcyBleHRyYWN0ZWQgYW5kIHJldHVybmVkLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgNjQgYml0cyBvZiBleHRlbmRlZAovLy8gICAgcGFja2VkIGRhdGEuCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RfZXBpNjQoWCwgTikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjRkaSgoX192NGRpKShfX20yNTZpKShYKSwgKGludCkoTikpKQojZW5kaWYKCi8vLyBUYWtlcyBhIFs4IHggaTMyXSB2ZWN0b3IgYW5kIHJlcGxhY2VzIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQgYnkgYSBuZXcgdmFsdWUuIFJldHVybnMgdGhlCi8vLyAgICBtb2RpZmllZCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzggeCBpMzJdIHRvIGJlIHVzZWQgYnkgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlLiBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBpbmRleCBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgdG8gYmUKLy8vICAgIHJlcGxhY2VkLgovLy8gXHJldHVybnMgQSBjb3B5IG9mIHZlY3RvciBcYSBfX2EsIGFmdGVyIHJlcGxhY2luZyBpdHMgZWxlbWVudCBpbmRleGVkIGJ5Ci8vLyAgICBcYSBfX2ltbSB3aXRoIFxhIF9fYi4KI2RlZmluZSBfbW0yNTZfaW5zZXJ0X2VwaTMyKFgsIEksIE4pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmVjX3NldF92OHNpKChfX3Y4c2kpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShJKSwgKGludCkoTikpKQoKCi8vLyBUYWtlcyBhIFsxNiB4IGkxNl0gdmVjdG9yIGFuZCByZXBsYWNlcyB0aGUgdmVjdG9yIGVsZW1lbnQgdmFsdWUKLy8vICAgIGluZGV4ZWQgYnkgdGhlIGltbWVkaWF0ZSBjb25zdGFudCBvcGVyYW5kIHdpdGggYSBuZXcgdmFsdWUuIFJldHVybnMgdGhlCi8vLyAgICBtb2RpZmllZCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzE2IHggaTE2XSB0byBiZSB1c2VkIGJ5IHRoZSBpbnNlcnQgb3BlcmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gaTE2IGludGVnZXIgdmFsdWUuIFRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGluZGV4IG9mIHRoZSB2ZWN0b3IgZWxlbWVudCB0byBiZQovLy8gICAgcmVwbGFjZWQuCi8vLyBccmV0dXJucyBBIGNvcHkgb2YgdmVjdG9yIFxhIF9fYSwgYWZ0ZXIgcmVwbGFjaW5nIGl0cyBlbGVtZW50IGluZGV4ZWQgYnkKLy8vICAgIFxhIF9faW1tIHdpdGggXGEgX19iLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRfZXBpMTYoWCwgSSwgTikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3YxNmhpKChfX3YxNmhpKShfX20yNTZpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEkpLCAoaW50KShOKSkpCgovLy8gVGFrZXMgYSBbMzIgeCBpOF0gdmVjdG9yIGFuZCByZXBsYWNlcyB0aGUgdmVjdG9yIGVsZW1lbnQgdmFsdWUKLy8vICAgIGluZGV4ZWQgYnkgdGhlIGltbWVkaWF0ZSBjb25zdGFudCBvcGVyYW5kIHdpdGggYSBuZXcgdmFsdWUuIFJldHVybnMgdGhlCi8vLyAgICBtb2RpZmllZCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzMyIHggaThdIHRvIGJlIHVzZWQgYnkgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBbiBpOCBpbnRlZ2VyIHZhbHVlLiBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBpbmRleCBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgdG8gYmUKLy8vICAgIHJlcGxhY2VkLgovLy8gXHJldHVybnMgQSBjb3B5IG9mIHZlY3RvciBcYSBfX2EsIGFmdGVyIHJlcGxhY2luZyBpdHMgZWxlbWVudCBpbmRleGVkIGJ5Ci8vLyAgICBcYSBfX2ltbSB3aXRoIFxhIF9fYi4KI2RlZmluZSBfbW0yNTZfaW5zZXJ0X2VwaTgoWCwgSSwgTikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3YzMnFpKChfX3YzMnFpKShfX20yNTZpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEkpLCAoaW50KShOKSkpCgojaWZkZWYgX194ODZfNjRfXwovLy8gVGFrZXMgYSBbNCB4IGk2NF0gdmVjdG9yIGFuZCByZXBsYWNlcyB0aGUgdmVjdG9yIGVsZW1lbnQgdmFsdWUKLy8vICAgIGluZGV4ZWQgYnkgdGhlIGltbWVkaWF0ZSBjb25zdGFudCBvcGVyYW5kIHdpdGggYSBuZXcgdmFsdWUuIFJldHVybnMgdGhlCi8vLyAgICBtb2RpZmllZCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzQgeCBpNjRdIHRvIGJlIHVzZWQgYnkgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZhbHVlLiBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHRoZSBpbnNlcnQgb3BlcmF0aW9uLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBpbmRleCBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgdG8gYmUKLy8vICAgIHJlcGxhY2VkLgovLy8gXHJldHVybnMgQSBjb3B5IG9mIHZlY3RvciBcYSBfX2EsIGFmdGVyIHJlcGxhY2luZyBpdHMgZWxlbWVudCBpbmRleGVkIGJ5Ci8vLyAgICAgXGEgX19pbW0gd2l0aCBcYSBfX2IuCiNkZWZpbmUgX21tMjU2X2luc2VydF9lcGk2NChYLCBJLCBOKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjRkaSgoX192NGRpKShfX20yNTZpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoSSksIChpbnQpKE4pKSkKI2VuZGlmCgovKiBDb252ZXJzaW9uICovCi8vLyBDb252ZXJ0cyBhIHZlY3RvciBvZiBbNCB4IGkzMl0gaW50byBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVERRMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0ZXBpMzJfcGQoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzaSlfX2EsIF9fdjRkZik7Cn0KCi8vLyBDb252ZXJ0cyBhIHZlY3RvciBvZiBbOCB4IGkzMl0gaW50byBhIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZURFEyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRlcGkzMl9wcyhfX20yNTZpIF9fYSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19hLCBfX3Y4c2YpOwp9CgovLy8gQ29udmVydHMgYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUEQyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHBkX3BzKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0cGQycHMyNTYoKF9fdjRkZikgX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGludG8gYSB2ZWN0b3Igb2YgWzggeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRwc19lcGkzMihfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMmRxMjU2KChfX3Y4c2YpIF9fYSk7Cn0KCi8vLyBDb252ZXJ0cyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGludG8gYSAyNTYtYml0IHZlY3RvciBvZiBbNAovLy8gICAgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHBzX3BkKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzZilfX2EsIF9fdjRkZik7Cn0KCi8vLyBDb252ZXJ0cyBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQKLy8vICAgIHggaTMyXSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IGJ5IHJvdW5kaW5nIHRvd2FyZHMgemVybyB3aGVuIGl0IGlzCi8vLyAgICBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUUEQyRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHRwZF9lcGkzMihfX20yNTZkIF9fYSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHEyNTYoKF9fdjRkZikgX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNAovLy8gICAgeCBpMzJdLiBXaGVuIGEgY29udmVyc2lvbiBpcyBpbmV4YWN0LCB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgcm91bmRlZAovLy8gICAgYWNjb3JkaW5nIHRvIHRoZSByb3VuZGluZyBjb250cm9sIGJpdHMgaW4gdGhlIE1YQ1NSIHJlZ2lzdGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQRDJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0cGRfZXBpMzIoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfY3Z0cGQyZHEyNTYoKF9fdjRkZikgX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGludG8gYSB2ZWN0b3Igb2YgWzggeCBpMzJdLAovLy8gICAgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IGJ5IHJvdW5kaW5nIHRvd2FyZHMgemVybyB3aGVuIGl0IGlzIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFRQUzJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnR0cHNfZXBpMzIoX19tMjU2IF9fYSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHEyNTYoKF9fdjhzZikgX19hKTsKfQoKLy8vIFJldHVybnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGlucHV0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNjQgYml0IGRvdWJsZSBjb250YWluaW5nIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBpbnB1dCB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRzZF9mNjQoX19tMjU2ZCBfX2EpCnsKIHJldHVybiBfX2FbMF07Cn0KCi8vLyBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBpbnB1dCB2ZWN0b3Igb2YgWzggeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDMyIGJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGlucHV0IHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHNpMjU2X3NpMzIoX19tMjU2aSBfX2EpCnsKIF9fdjhzaSBfX2IgPSAoX192OHNpKV9fYTsKIHJldHVybiBfX2JbMF07Cn0KCi8vLyBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBpbnB1dCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAzMiBiaXQgZmxvYXQgY29udGFpbmluZyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgaW5wdXQgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRzc19mMzIoX19tMjU2IF9fYSkKewogcmV0dXJuIF9fYVswXTsKfQoKLyogVmVjdG9yIHJlcGxpY2F0ZSAqLwovLy8gTW92ZXMgYW5kIGR1cGxpY2F0ZXMgb2RkLWluZGV4ZWQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvciBvZgovLy8gICAgWzggeCBmbG9hdF0gdG8gZmxvYXQgdmFsdWVzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlNIRFVQIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gXG4KLy8vICAgIEJpdHMgWzI1NToyMjRdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyNTU6MjI0XSBhbmQgWzIyMzoxOTJdIG9mCi8vLyAgICB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTkxOjE2MF0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE5MToxNjBdIGFuZCBbMTU5OjEyOF0gb2YKLy8vICAgIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIGFuZCBbOTU6NjRdIG9mIHRoZQovLy8gICAgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzozMl0gYW5kIFszMTowXSBvZiB0aGUKLy8vICAgIHJldHVybiB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kIGR1cGxpY2F0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21vdmVoZHVwX3BzKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19hLCAxLCAxLCAzLCAzLCA1LCA1LCA3LCA3KTsKfQoKLy8vIE1vdmVzIGFuZCBkdXBsaWNhdGVzIGV2ZW4taW5kZXhlZCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbOCB4IGZsb2F0XSB0byBmbG9hdCB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0xEVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMjIzOjE5Ml0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToyMjRdIGFuZCBbMjIzOjE5Ml0gb2YKLy8vICAgIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxNTk6MTI4XSBvZiBcYSBfX2EgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTkxOjE2MF0gYW5kIFsxNTk6MTI4XSBvZgovLy8gICAgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBvZiBcYSBfX2EgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBhbmQgWzk1OjY0XSBvZiB0aGUKLy8vICAgIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzozMl0gYW5kIFszMTowXSBvZiB0aGUKLy8vICAgIHJldHVybiB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kIGR1cGxpY2F0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21vdmVsZHVwX3BzKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19hLCAwLCAwLCAyLCAyLCA0LCA0LCA2LCA2KTsKfQoKLy8vIE1vdmVzIGFuZCBkdXBsaWNhdGVzIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYQovLy8gICAgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGluIGEgMjU2LWJpdAovLy8gICAgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRERVUCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbNjM6MF0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo2NF0gYW5kIFs2MzowXSBvZiB0aGUKLy8vICAgIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE5MToxMjhdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyNTU6MTkyXSBhbmQgWzE5MToxMjhdIG9mCi8vLyAgICB0aGUgcmV0dXJuIHZhbHVlLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kCi8vLyAgICBkdXBsaWNhdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tb3ZlZHVwX3BkKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYSwgMCwgMCwgMiwgMik7Cn0KCi8qIFVucGFjayBhbmQgSW50ZXJsZWF2ZSAqLwovLy8gVW5wYWNrcyB0aGUgb2RkLWluZGV4ZWQgdmVjdG9yIGVsZW1lbnRzIGZyb20gdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBkb3VibGVdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLSFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFsxMjc6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsyNTU6MTkyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxOTE6MTI4XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFsxMjc6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzI1NToxOTJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToxOTJdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdW5wYWNraGlfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYiwgMSwgNSwgMSsyLCA1KzIpOwp9CgovLy8gVW5wYWNrcyB0aGUgZXZlbi1pbmRleGVkIHZlY3RvciBlbGVtZW50cyBmcm9tIHR3byAyNTYtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZG91YmxlXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE5MToxMjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE5MToxMjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToxOTJdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdW5wYWNrbG9fcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYiwgMCwgNCwgMCsyLCA0KzIpOwp9CgovLy8gVW5wYWNrcyB0aGUgMzItYml0IHZlY3RvciBlbGVtZW50cyAyLCAzLCA2IGFuZCA3IGZyb20gZWFjaCBvZiB0aGUKLy8vICAgIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDI1Ni1iaXQKLy8vICAgIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbOTU6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzMxOjBdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMjIzOjE5Ml0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzI1NToyMjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbOTU6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsyMjM6MTkyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxOTE6MTYwXSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMjU1OjIyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlIHJldHVybiB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdW5wYWNraGlfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IsIDIsIDEwLCAyKzEsIDEwKzEsIDYsIDE0LCA2KzEsIDE0KzEpOwp9CgovLy8gVW5wYWNrcyB0aGUgMzItYml0IHZlY3RvciBlbGVtZW50cyAwLCAxLCA0IGFuZCA1IGZyb20gZWFjaCBvZiB0aGUKLy8vICAgIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDI1Ni1iaXQKLy8vICAgIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMzE6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzYzOjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs5NTo2NF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE1OToxMjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE1OToxMjhdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxOTE6MTYwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyMjM6MTkyXSBvZiB0aGUgcmV0dXJuIHZhbHVlLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE1OToxMjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxOTE6MTYwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bnBhY2tsb19wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2YpX19hLCAoX192OHNmKV9fYiwgMCwgOCwgMCsxLCA4KzEsIDQsIDEyLCA0KzEsIDEyKzEpOwp9CgovKiBCaXQgVGVzdCAqLwovLy8gR2l2ZW4gdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgWkYgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIHRoZSBaRiBmbGFnIGluIHRoZSBFRkxBR1MgcmVnaXN0ZXIuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0el9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3R6cGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLCBwZXJmb3JtIGFuCi8vLyAgICBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50IGluIHRoZQovLy8gICAgZmlyc3Qgc291cmNlIHZlY3RvciBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0cyBvZiBib3RoIGVsZW1lbnRzIGFyZSAxLCB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZQovLy8gICAgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwIGFuZCB0aGUgc2lnbi1iaXQgb2YgdGhlIHNlY29uZCBlbGVtZW50Ci8vLyAgICBpcyAxLCB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIENGIGZsYWcuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlRFU1RQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyB0aGUgQ0YgZmxhZyBpbiB0aGUgRUZMQUdTIHJlZ2lzdGVyLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdGNfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0Y3BkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBHaXZlbiB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLAovLy8gICAgb3RoZXJ3aXNlIGl0IHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIDEgaWYgYm90aCB0aGUgWkYgYW5kIENGIGZsYWdzIGFyZSBzZXQgdG8gMCwgb3RoZXJ3aXNlIHJldHVybnMgMC4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RuemNfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0bnpjcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgWkYgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyB0aGUgWkYgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3R6X3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3R6cHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgQ0YgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyB0aGUgQ0YgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RjX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RjcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIDEgaWYgYm90aCB0aGUgWkYgYW5kIENGIGZsYWdzIGFyZSBzZXQgdG8gMCwKLy8vICAgIG90aGVyd2lzZSBpdCByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlRFU1RQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLCBvdGhlcndpc2UgcmV0dXJucyAwLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdG56Y19wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0bnpjcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLCBwZXJmb3JtIGFuCi8vLyAgICBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgWkYgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIHRoZSBaRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdHpfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0enBkMjU2KChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYik7Cn0KCi8vLyBHaXZlbiB0d28gMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0cyBvZiBib3RoIGVsZW1lbnRzIGFyZSAxLCB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZQovLy8gICAgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwIGFuZCB0aGUgc2lnbi1iaXQgb2YgdGhlIHNlY29uZCBlbGVtZW50Ci8vLyAgICBpcyAxLCB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIENGIGZsYWcuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlRFU1RQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyB0aGUgQ0YgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RjX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdGNwZDI1NigoX192NGRmKV9fYSwgKF9fdjRkZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIGluIHRoZQovLy8gICAgZmlyc3Qgc291cmNlIHZlY3RvciBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLAovLy8gICAgb3RoZXJ3aXNlIGl0IHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIDEgaWYgYm90aCB0aGUgWkYgYW5kIENGIGZsYWdzIGFyZSBzZXQgdG8gMCwgb3RoZXJ3aXNlIHJldHVybnMgMC4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RuemNfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0bnpjcGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgWkYgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyB0aGUgWkYgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3R6X3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3R6cHMyNTYoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgQ0YgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyB0aGUgQ0YgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RjX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RjcHMyNTYoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIGluIHRoZQovLy8gICAgZmlyc3Qgc291cmNlIHZlY3RvciBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLAovLy8gICAgb3RoZXJ3aXNlIGl0IHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsIG90aGVyd2lzZSByZXR1cm5zIDAuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl90ZXN0bnpjX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RuemNwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3JzLCBwZXJmb3JtIGEgYml0LWJ5LWJpdCBjb21wYXJpc29uCi8vLyAgICBvZiB0aGUgdHdvIHNvdXJjZSB2ZWN0b3JzLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgYml0cyB3aGVyZSBib3RoIGJpdHMgYXJlIDEsIHRoZSBaRiBmbGFnCi8vLyAgICBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgYml0cyB3aGVyZSB0aGUgYml0IGZyb20gdGhlIGZpcnN0IHNvdXJjZQovLy8gICAgdmVjdG9yIGlzIDAgYW5kIHRoZSBiaXQgZnJvbSB0aGUgc2Vjb25kIHNvdXJjZSB2ZWN0b3IgaXMgMSwgdGhlIENGIGZsYWcKLy8vICAgIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgWkYgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyB0aGUgWkYgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3R6X3NpMjU2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wdGVzdHoyNTYoKF9fdjRkaSlfX2EsIChfX3Y0ZGkpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGludGVnZXIgdmVjdG9ycywgcGVyZm9ybSBhIGJpdC1ieS1iaXQgY29tcGFyaXNvbgovLy8gICAgb2YgdGhlIHR3byBzb3VyY2UgdmVjdG9ycy4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGJpdHMgd2hlcmUgYm90aCBiaXRzIGFyZSAxLCB0aGUgWkYgZmxhZwovLy8gICAgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGJpdHMgd2hlcmUgdGhlIGJpdCBmcm9tIHRoZSBmaXJzdCBzb3VyY2UKLy8vICAgIHZlY3RvciBpcyAwIGFuZCB0aGUgYml0IGZyb20gdGhlIHNlY29uZCBzb3VyY2UgdmVjdG9yIGlzIDEsIHRoZSBDRiBmbGFnCi8vLyAgICBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIENGIGZsYWcuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgdGhlIENGIGZsYWcuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl90ZXN0Y19zaTI1NihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHRlc3RjMjU2KChfX3Y0ZGkpX19hLCAoX192NGRpKV9fYik7Cn0KCi8vLyBHaXZlbiB0d28gMjU2LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIHBlcmZvcm0gYSBiaXQtYnktYml0IGNvbXBhcmlzb24KLy8vICAgIG9mIHRoZSB0d28gc291cmNlIHZlY3RvcnMuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBiaXRzIHdoZXJlIGJvdGggYml0cyBhcmUgMSwgdGhlIFpGIGZsYWcKLy8vICAgIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBiaXRzIHdoZXJlIHRoZSBiaXQgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICB2ZWN0b3IgaXMgMCBhbmQgdGhlIGJpdCBmcm9tIHRoZSBzZWNvbmQgc291cmNlIHZlY3RvciBpcyAxLCB0aGUgQ0YgZmxhZwovLy8gICAgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLAovLy8gICAgb3RoZXJ3aXNlIGl0IHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsIG90aGVyd2lzZSByZXR1cm5zIDAuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl90ZXN0bnpjX3NpMjU2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wdGVzdG56YzI1NigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IpOwp9CgovKiBWZWN0b3IgZXh0cmFjdCBzaWduIG1hc2sgKi8KLy8vIEV4dHJhY3RzIHRoZSBzaWduIGJpdHMgb2YgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cwovLy8gICAgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYW5kIHdyaXRlcyB0aGVtIHRvIHRoZSBsb3dlciBvcmRlcgovLy8gICAgYml0cyBvZiB0aGUgcmV0dXJuIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZNU0tQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcyB3aXRoIHNpZ24gYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyBccmV0dXJucyBUaGUgc2lnbiBiaXRzIGZyb20gdGhlIG9wZXJhbmQsIHdyaXR0ZW4gdG8gYml0cyBbMzowXS4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21vdmVtYXNrX3BkKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21vdm1za3BkMjU2KChfX3Y0ZGYpX19hKTsKfQoKLy8vIEV4dHJhY3RzIHRoZSBzaWduIGJpdHMgb2Ygc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cwovLy8gICAgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBhbmQgd3JpdGVzIHRoZW0gdG8gdGhlIGxvd2VyIG9yZGVyCi8vLyAgICBiaXRzIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk1TS1BTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nCi8vLyAgICBwb2ludCB2YWx1ZXMgd2l0aCBzaWduIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgVGhlIHNpZ24gYml0cyBmcm9tIHRoZSBvcGVyYW5kLCB3cml0dGVuIHRvIGJpdHMgWzc6MF0uCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tb3ZlbWFza19wcyhfX20yNTYgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21vdm1za3BzMjU2KChfX3Y4c2YpX19hKTsKfQoKLyogVmVjdG9yIF9femVybyAqLwovLy8gWmVyb2VzIHRoZSBjb250ZW50cyBvZiBhbGwgWE1NIG9yIFlNTSByZWdpc3RlcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlpFUk9BTEwgPC9jPiBpbnN0cnVjdGlvbi4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdngiKSkpCl9tbTI1Nl96ZXJvYWxsKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl92emVyb2FsbCgpOwp9CgovLy8gWmVyb2VzIHRoZSB1cHBlciAxMjggYml0cyAoYml0cyAyNTU6MTI4KSBvZiBhbGwgWU1NIHJlZ2lzdGVycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWkVST1VQUEVSIDwvYz4gaW5zdHJ1Y3Rpb24uCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4IikpKQpfbW0yNTZfemVyb3VwcGVyKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl92emVyb3VwcGVyKCk7Cn0KCi8qIFZlY3RvciBsb2FkIHdpdGggYnJvYWRjYXN0ICovCi8vLyBMb2FkcyBhIHNjYWxhciBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIGZyb20gdGhlCi8vLyAgICBzcGVjaWZpZWQgYWRkcmVzcyBwb2ludGVkIHRvIGJ5IFxhIF9fYSBhbmQgYnJvYWRjYXN0cyBpdCB0byB0aGUgZWxlbWVudHMKLy8vICAgIG9mIGEgWzQgeCBmbG9hdF0gdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCUk9BRENBU1RTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIFRoZSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIGJlIGJyb2FkY2FzdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgMzItYml0IGVsZW1lbnRzIGFyZSBzZXQKLy8vICAgIGVxdWFsIHRvIHRoZSBicm9hZGNhc3QgdmFsdWUuCnN0YXRpYyBfX2lubGluZSBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3Rfc3MoZmxvYXQgY29uc3QgKl9fYSkKewogIGZsb2F0IF9fZiA9ICpfX2E7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCkoX192NHNmKXsgX19mLCBfX2YsIF9fZiwgX19mIH07Cn0KCi8vLyBMb2FkcyBhIHNjYWxhciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIGZyb20gdGhlCi8vLyAgICBzcGVjaWZpZWQgYWRkcmVzcyBwb2ludGVkIHRvIGJ5IFxhIF9fYSBhbmQgYnJvYWRjYXN0cyBpdCB0byB0aGUgZWxlbWVudHMKLy8vICAgIG9mIGEgWzQgeCBkb3VibGVdIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQlJPQURDQVNUU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBUaGUgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZSB0byBiZSBicm9hZGNhc3QuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSB3aG9zZSA2NC1iaXQgZWxlbWVudHMgYXJlIHNldAovLy8gICAgZXF1YWwgdG8gdGhlIGJyb2FkY2FzdCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9icm9hZGNhc3Rfc2QoZG91YmxlIGNvbnN0ICpfX2EpCnsKICBkb3VibGUgX19kID0gKl9fYTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2ZCkoX192NGRmKXsgX19kLCBfX2QsIF9fZCwgX19kIH07Cn0KCi8vLyBMb2FkcyBhIHNjYWxhciBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIGZyb20gdGhlCi8vLyAgICBzcGVjaWZpZWQgYWRkcmVzcyBwb2ludGVkIHRvIGJ5IFxhIF9fYSBhbmQgYnJvYWRjYXN0cyBpdCB0byB0aGUgZWxlbWVudHMKLy8vICAgIG9mIGEgWzggeCBmbG9hdF0gdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCUk9BRENBU1RTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIFRoZSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIGJlIGJyb2FkY2FzdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gd2hvc2UgMzItYml0IGVsZW1lbnRzIGFyZSBzZXQKLy8vICAgIGVxdWFsIHRvIHRoZSBicm9hZGNhc3QgdmFsdWUuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9icm9hZGNhc3Rfc3MoZmxvYXQgY29uc3QgKl9fYSkKewogIGZsb2F0IF9fZiA9ICpfX2E7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1NikoX192OHNmKXsgX19mLCBfX2YsIF9fZiwgX19mLCBfX2YsIF9fZiwgX19mLCBfX2YgfTsKfQoKLy8vIExvYWRzIHRoZSBkYXRhIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gZnJvbSB0aGUKLy8vICAgIHNwZWNpZmllZCBhZGRyZXNzIHBvaW50ZWQgdG8gYnkgXGEgX19hIGFuZCBicm9hZGNhc3RzIGl0IHRvIDEyOC1iaXQKLy8vICAgIGVsZW1lbnRzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCUk9BRENBU1RGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBiZSBicm9hZGNhc3QuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSB3aG9zZSAxMjgtYml0IGVsZW1lbnRzIGFyZSBzZXQKLy8vICAgIGVxdWFsIHRvIHRoZSBicm9hZGNhc3QgdmFsdWUuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYnJvYWRjYXN0X3BkKF9fbTEyOGQgY29uc3QgKl9fYSkKewogIF9fbTEyOGQgX19iID0gX21tX2xvYWR1X3BkKChjb25zdCBkb3VibGUgKilfX2EpOwogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYiwgKF9fdjJkZilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEpOwp9CgovLy8gTG9hZHMgdGhlIGRhdGEgZnJvbSBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGZyb20gdGhlCi8vLyAgICBzcGVjaWZpZWQgYWRkcmVzcyBwb2ludGVkIHRvIGJ5IFxhIF9fYSBhbmQgYnJvYWRjYXN0cyBpdCB0byAxMjgtYml0Ci8vLyAgICBlbGVtZW50cyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCUk9BRENBU1RGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGJlIGJyb2FkY2FzdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gd2hvc2UgMTI4LWJpdCBlbGVtZW50cyBhcmUgc2V0Ci8vLyAgICBlcXVhbCB0byB0aGUgYnJvYWRjYXN0IHZhbHVlLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYnJvYWRjYXN0X3BzKF9fbTEyOCBjb25zdCAqX19hKQp7CiAgX19tMTI4IF9fYiA9IF9tbV9sb2FkdV9wcygoY29uc3QgZmxvYXQgKilfX2EpOwogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzKTsKfQoKLyogU0lNRCBsb2FkIG9wcyAqLwovLy8gTG9hZHMgNCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBmcm9tIGEgMzItYnl0ZSBhbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgMzItYnl0ZSBhbGlnbmVkIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZwovLy8gICAgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZF9wZChkb3VibGUgY29uc3QgKl9fcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTI1NmQgKilfX3A7Cn0KCi8vLyBMb2FkcyA4IHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAzMi1ieXRlIGFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDMyLWJ5dGUgYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgZmxvYXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9sb2FkX3BzKGZsb2F0IGNvbnN0ICpfX3ApCnsKICByZXR1cm4gKihjb25zdCBfX20yNTYgKilfX3A7Cn0KCi8vLyBMb2FkcyA0IGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYW4gdW5hbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlVQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcKLy8vICAgIHBvaW50IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9sb2FkdV9wZChkb3VibGUgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3BkIHsKICAgIF9fbTI1NmRfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcGQqKV9fcCktPl9fdjsKfQoKLy8vIExvYWRzIDggc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhbiB1bmFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZVUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nCi8vLyAgICBwb2ludCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWR1X3BzKGZsb2F0IGNvbnN0ICpfX3ApCnsKICBzdHJ1Y3QgX19sb2FkdV9wcyB7CiAgICBfX20yNTZfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcHMqKV9fcCktPl9fdjsKfQoKLy8vIExvYWRzIDI1NiBiaXRzIG9mIGludGVnZXIgZGF0YSBmcm9tIGEgMzItYnl0ZSBhbGlnbmVkIG1lbW9yeQovLy8gICAgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBlbGVtZW50cyBvZiBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkRRQSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgMzItYnl0ZSBhbGlnbmVkIHBvaW50ZXIgdG8gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgaW50ZWdlcgovLy8gICAgdmFsdWVzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9sb2FkX3NpMjU2KF9fbTI1NmkgY29uc3QgKl9fcCkKewogIHJldHVybiAqX19wOwp9CgovLy8gTG9hZHMgMjU2IGJpdHMgb2YgaW50ZWdlciBkYXRhIGZyb20gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbgovLy8gICAgcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkRRVSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZHVfc2kyNTYoX19tMjU2aV91IGNvbnN0ICpfX3ApCnsKICBzdHJ1Y3QgX19sb2FkdV9zaTI1NiB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3NpMjU2KilfX3ApLT5fX3Y7Cn0KCi8vLyBMb2FkcyAyNTYgYml0cyBvZiBpbnRlZ2VyIGRhdGEgZnJvbSBhbiB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9uCi8vLyAgICBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhpcyBpbnRyaW5zaWMgbWF5Ci8vLyAgICBwZXJmb3JtIGJldHRlciB0aGFuIFxjIF9tbTI1Nl9sb2FkdV9zaTI1NiB3aGVuIHRoZSBkYXRhIGNyb3NzZXMgYSBjYWNoZQovLy8gICAgbGluZSBib3VuZGFyeS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTEREUVUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgaW50ZWdlciB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xkZHF1X3NpMjU2KF9fbTI1NmkgY29uc3QgKl9fcCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9sZGRxdTI1NigoY2hhciBjb25zdCAqKV9fcCk7Cn0KCi8qIFNJTUQgc3RvcmUgb3BzICovCi8vLyBTdG9yZXMgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGRvdWJsZV0gdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkKLy8vICAgIFxhIF9fcC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WQVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSAzMi1ieXRlIGFsaWduZWQgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gZmxvYWluZyBwb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmVfcGQoZG91YmxlICpfX3AsIF9fbTI1NmQgX19hKQp7CiAgKihfX20yNTZkICopX19wID0gX19hOwp9CgovLy8gU3RvcmVzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvcgovLy8gICAgb2YgWzggeCBmbG9hdF0gdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDMyLWJ5dGUgYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgZmxvYXQgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmVfcHMoZmxvYXQgKl9fcCwgX19tMjU2IF9fYSkKewogICooX19tMjU2ICopX19wID0gX19hOwp9CgovLy8gU3RvcmVzIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvcgovLy8gICAgb2YgWzQgeCBkb3VibGVdIHRvIGFuIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlVQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIG1vdmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldV9wZChkb3VibGUgKl9fcCwgX19tMjU2ZCBfX2EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfcGQgewogICAgX19tMjU2ZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9wZCopX19wKS0+X192ID0gX19hOwp9CgovLy8gU3RvcmVzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvcgovLy8gICAgb2YgWzggeCBmbG9hdF0gdG8gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdG9yZXVfcHMoZmxvYXQgKl9fcCwgX19tMjU2IF9fYSkKewogIHN0cnVjdCBfX3N0b3JldV9wcyB7CiAgICBfX20yNTZfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfcHMqKV9fcCktPl9fdiA9IF9fYTsKfQoKLy8vIFN0b3JlcyBpbnRlZ2VyIHZhbHVlcyBmcm9tIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciB0byBhIDMyLWJ5dGUKLy8vICAgIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEUUEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDMyLWJ5dGUgYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgaW50ZWdlciB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIG1vdmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JlX3NpMjU2KF9fbTI1NmkgKl9fcCwgX19tMjU2aSBfX2EpCnsKICAqX19wID0gX19hOwp9CgovLy8gU3RvcmVzIGludGVnZXIgdmFsdWVzIGZyb20gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIHRvIGFuIHVuYWxpZ25lZAovLy8gICAgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEUVUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGludGVnZXIgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdG9yZXVfc2kyNTYoX19tMjU2aV91ICpfX3AsIF9fbTI1NmkgX19hKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMjU2IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfc2kyNTYqKV9fcCktPl9fdiA9IF9fYTsKfQoKLyogQ29uZGl0aW9uYWwgbG9hZCBvcHMgKi8KLy8vIENvbmRpdGlvbmFsbHkgbG9hZHMgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cyBmcm9tIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXSwgZGVwZW5kaW5nIG9uIHRoZSBtYXNrIGJpdHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZGF0YQovLy8gICAgZWxlbWVudC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFTS01PVlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgY29udGFpbnMgdGhlIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcy4KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YKLy8vICAgIGVhY2ggZGF0YSBlbGVtZW50IHJlcHJlc2VudHMgdGhlIG1hc2sgYml0cy4gSWYgYSBtYXNrIGJpdCBpcyB6ZXJvLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbiBpcyBub3QgbG9hZGVkIGFuZCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIHJldHVybiB2YWx1ZSBpcyBzZXQgdG8gemVyby4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza2xvYWRfcGQoZG91YmxlIGNvbnN0ICpfX3AsIF9fbTEyOGkgX19tKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkcGQoKGNvbnN0IF9fdjJkZiAqKV9fcCwgKF9fdjJkaSlfX20pOwp9CgovLy8gQ29uZGl0aW9uYWxseSBsb2FkcyBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IGVsZW1lbnRzIGZyb20gYQovLy8gICAgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wIGludG8gYSAyNTYtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBkb3VibGVdLCBkZXBlbmRpbmcgb24gdGhlIG1hc2sgYml0cyBhc3NvY2lhdGVkIHdpdGggZWFjaCBkYXRhCi8vLyAgICBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggcXVhZHdvcmRdIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0Ci8vLyAgICBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBxdWFkd29yZCBlbGVtZW50IHJlcHJlc2VudHMgdGhlIG1hc2sgYml0cy4gSWYgYQovLy8gICAgbWFzayBiaXQgaXMgemVybywgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbiBpcyBub3QKLy8vICAgIGxvYWRlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIHJldHVybiB2YWx1ZSBpcyBzZXQgdG8gemVyby4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWFza2xvYWRfcGQoZG91YmxlIGNvbnN0ICpfX3AsIF9fbTI1NmkgX19tKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkcGQyNTYoKGNvbnN0IF9fdjRkZiAqKV9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fbSk7Cn0KCi8vLyBDb25kaXRpb25hbGx5IGxvYWRzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgZWxlbWVudHMgZnJvbSBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSwgZGVwZW5kaW5nIG9uIHRoZSBtYXNrIGJpdHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZGF0YQovLy8gICAgZWxlbWVudC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFTS01PVlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgY29udGFpbnMgdGhlIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcy4KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YKLy8vICAgIGVhY2ggZGF0YSBlbGVtZW50IHJlcHJlc2VudHMgdGhlIG1hc2sgYml0cy4gSWYgYSBtYXNrIGJpdCBpcyB6ZXJvLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbiBpcyBub3QgbG9hZGVkIGFuZCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIHJldHVybiB2YWx1ZSBpcyBzZXQgdG8gemVyby4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tsb2FkX3BzKGZsb2F0IGNvbnN0ICpfX3AsIF9fbTEyOGkgX19tKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfbWFza2xvYWRwcygoY29uc3QgX192NHNmICopX19wLCAoX192NHNpKV9fbSk7Cn0KCi8vLyBDb25kaXRpb25hbGx5IGxvYWRzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgZWxlbWVudHMgZnJvbSBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbOCB4IGZsb2F0XSwgZGVwZW5kaW5nIG9uIHRoZSBtYXNrIGJpdHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZGF0YQovLy8gICAgZWxlbWVudC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFTS01PVlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgY29udGFpbnMgdGhlIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nIHBvaW50IHZhbHVlcy4KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGR3b3JkXSBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdAovLy8gICAgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggZHdvcmQgZWxlbWVudCByZXByZXNlbnRzIHRoZSBtYXNrIGJpdHMuIElmIGEgbWFzawovLy8gICAgYml0IGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBtZW1vcnkgbG9jYXRpb24gaXMgbm90IGxvYWRlZAovLy8gICAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHRoZSByZXR1cm4gdmFsdWUgaXMgc2V0IHRvIHplcm8uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tYXNrbG9hZF9wcyhmbG9hdCBjb25zdCAqX19wLCBfX20yNTZpIF9fbSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkcHMyNTYoKGNvbnN0IF9fdjhzZiAqKV9fcCwgKF9fdjhzaSlfX20pOwp9CgovKiBDb25kaXRpb25hbCBzdG9yZSBvcHMgKi8KLy8vIE1vdmVzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvcgovLy8gICAgb2YgWzggeCBmbG9hdF0gdG8gYSBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AsIGFjY29yZGluZyB0bwovLy8gICAgdGhlIHNwZWNpZmllZCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGR3b3JkXSBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdAovLy8gICAgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggZHdvcmQgZWxlbWVudCBpbiB0aGUgbWFzayB2ZWN0b3IgcmVwcmVzZW50cyB0aGUKLy8vICAgIG1hc2sgYml0cy4gSWYgYSBtYXNrIGJpdCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmcm9tIHZlY3RvcgovLy8gICAgXGEgX19hIGlzIG5vdCBzdG9yZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHRoZSBtZW1vcnkgbG9jYXRpb24KLy8vICAgIHBvaW50ZWQgdG8gYnkgXGEgX19wIGlzIG5vdCBjaGFuZ2VkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21hc2tzdG9yZV9wcyhmbG9hdCAqX19wLCBfX20yNTZpIF9fbSwgX19tMjU2IF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZXBzMjU2KChfX3Y4c2YgKilfX3AsIChfX3Y4c2kpX19tLCAoX192OHNmKV9fYSk7Cn0KCi8vLyBNb3ZlcyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBmcm9tIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdCi8vLyAgICB0byBhIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCwgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQKLy8vICAgIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZmxvYXQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZgovLy8gICAgZWFjaCBmaWVsZCBpbiB0aGUgbWFzayB2ZWN0b3IgcmVwcmVzZW50cyB0aGUgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzCi8vLyAgICB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmcm9tIHZlY3RvciBcYSBfX2EgaXMgbm90IHN0b3JlZCBhbmQgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHRoZSBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaXMgbm90Ci8vLyAgICBjaGFuZ2VkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrc3RvcmVfcGQoZG91YmxlICpfX3AsIF9fbTEyOGkgX19tLCBfX20xMjhkIF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZXBkKChfX3YyZGYgKilfX3AsIChfX3YyZGkpX19tLCAoX192MmRmKV9fYSk7Cn0KCi8vLyBNb3ZlcyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdCi8vLyAgICB0byBhIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCwgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQKLy8vICAgIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZmxvYXQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggcXVhZHdvcmRdIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0Ci8vLyAgICBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBxdWFkd29yZCBlbGVtZW50IGluIHRoZSBtYXNrIHZlY3RvciByZXByZXNlbnRzCi8vLyAgICB0aGUgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb20gdmVjdG9yCi8vLyAgICBfX2EgaXMgbm90IHN0b3JlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbgovLy8gICAgcG9pbnRlZCB0byBieSBcYSBfX3AgaXMgbm90IGNoYW5nZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21hc2tzdG9yZV9wZChkb3VibGUgKl9fcCwgX19tMjU2aSBfX20sIF9fbTI1NmQgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbWFza3N0b3JlcGQyNTYoKF9fdjRkZiAqKV9fcCwgKF9fdjRkaSlfX20sIChfX3Y0ZGYpX19hKTsKfQoKLy8vIE1vdmVzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0gdG8gYSBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AsIGFjY29yZGluZyB0bwovLy8gICAgdGhlIHNwZWNpZmllZCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YKLy8vICAgIGVhY2ggZmllbGQgaW4gdGhlIG1hc2sgdmVjdG9yIHJlcHJlc2VudHMgdGhlIG1hc2sgYml0cy4gSWYgYSBtYXNrIGJpdCBpcwovLy8gICAgemVybywgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZnJvbSB2ZWN0b3IgX19hIGlzIG5vdCBzdG9yZWQgYW5kIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wIGlzIG5vdAovLy8gICAgY2hhbmdlZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrc3RvcmVfcHMoZmxvYXQgKl9fcCwgX19tMTI4aSBfX20sIF9fbTEyOCBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrc3RvcmVwcygoX192NHNmICopX19wLCAoX192NHNpKV9fbSwgKF9fdjRzZilfX2EpOwp9CgovKiBDYWNoZWFiaWxpdHkgc3VwcG9ydCBvcHMgKi8KLy8vIE1vdmVzIGludGVnZXIgZGF0YSBmcm9tIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciB0byBhIDMyLWJ5dGUKLy8vICAgIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLiBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzCi8vLyAgICBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5URFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgaW50ZWdlciB2YWx1ZXMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIG1vdmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0cmVhbV9zaTI1NihfX20yNTZpICpfX2EsIF9fbTI1NmkgX19iKQp7CiAgdHlwZWRlZiBfX3Y0ZGkgX192NGRpX2FsaWduZWQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgzMikpKTsKICBfX2J1aWx0aW5fbm9udGVtcG9yYWxfc3RvcmUoKF9fdjRkaV9hbGlnbmVkKV9fYiwgKF9fdjRkaV9hbGlnbmVkKilfX2EpOwp9CgovLy8gTW92ZXMgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXQovLy8gICAgdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLiBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcwovLy8gICAgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5UUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RyZWFtX3BkKGRvdWJsZSAqX19hLCBfX20yNTZkIF9fYikKewogIHR5cGVkZWYgX192NGRmIF9fdjRkZl9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMzIpKSk7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3Y0ZGZfYWxpZ25lZClfX2IsIChfX3Y0ZGZfYWxpZ25lZCopX19hKTsKfQoKLy8vIE1vdmVzIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvcgovLy8gICAgb2YgWzggeCBmbG9hdF0gdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLiBUbyBtaW5pbWl6ZQovLy8gICAgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlIHVzZWQgYWdhaW4KLy8vICAgIHNvb24pLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZOVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMzItYnl0ZSBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUKLy8vICAgIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RyZWFtX3BzKGZsb2F0ICpfX3AsIF9fbTI1NiBfX2EpCnsKICB0eXBlZGVmIF9fdjhzZiBfX3Y4c2ZfYWxpZ25lZCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDMyKSkpOwogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192OHNmX2FsaWduZWQpX19hLCAoX192OHNmX2FsaWduZWQqKV9fcCk7Cn0KCi8qIENyZWF0ZSB2ZWN0b3JzICovCi8vLyBDcmVhdGUgYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gd2l0aCB1bmRlZmluZWQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHVuZGVmaW5lZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bmRlZmluZWRfcGQodm9pZCkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl91bmRlZjI1NigpOwp9CgovLy8gQ3JlYXRlIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gd2l0aCB1bmRlZmluZWQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdW5kZWZpbmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdW5kZWZpbmVkX3BzKHZvaWQpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl91bmRlZjI1NigpOwp9CgovLy8gQ3JlYXRlIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciB3aXRoIHVuZGVmaW5lZCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHVuZGVmaW5lZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bmRlZmluZWRfc2kyNTYodm9pZCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl91bmRlZjI1NigpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXQovLy8gICAgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQRCtWSU5TRVJURjEyOCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjE5Ml0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxMjhdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6NjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZAovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzowXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfcGQoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYywgZG91YmxlIF9fZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZkKXsgX19kLCBfX2MsIF9fYiwgX19hIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW5pdGlhbGl6ZWQKLy8vICAgIHdpdGggdGhlIHNwZWNpZmllZCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjI0XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjE5Ml0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxNjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZAovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTI4XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2UKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2YKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6NjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzozMl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19oCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfcHMoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kLAogICAgICAgICAgICAgIGZsb2F0IF9fZSwgZmxvYXQgX19mLCBmbG9hdCBfX2csIGZsb2F0IF9faCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTYpeyBfX2gsIF9fZywgX19mLCBfX2UsIF9fZCwgX19jLCBfX2IsIF9fYSB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi8vLyAgICAzMi1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyMjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIyMzoxOTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMgovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxNjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMwovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2k1Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNgovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTcKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMTowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfZXBpMzIoaW50IF9faTAsIGludCBfX2kxLCBpbnQgX19pMiwgaW50IF9faTMsCiAgICAgICAgICAgICAgICAgaW50IF9faTQsIGludCBfX2k1LCBpbnQgX19pNiwgaW50IF9faTcpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2aSkoX192OHNpKXsgX19pNywgX19pNiwgX19pNSwgX19pNCwgX19pMywgX19pMiwgX19pMSwgX19pMCB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi8vLyAgICAxNi1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MTUKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjQwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzE0Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjM5OjIyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMwovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIyMzoyMDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTIKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMDc6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzExCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjE3Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE3NToxNjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDkKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTQ0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA4Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTQzOjEyOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNwovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzoxMTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDYKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDUKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAzCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDIKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwMQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAwCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0X2VwaTE2KHNob3J0IF9fdzE1LCBzaG9ydCBfX3cxNCwgc2hvcnQgX193MTMsIHNob3J0IF9fdzEyLAogICAgICAgICAgICAgICAgIHNob3J0IF9fdzExLCBzaG9ydCBfX3cxMCwgc2hvcnQgX193MDksIHNob3J0IF9fdzA4LAogICAgICAgICAgICAgICAgIHNob3J0IF9fdzA3LCBzaG9ydCBfX3cwNiwgc2hvcnQgX193MDUsIHNob3J0IF9fdzA0LAogICAgICAgICAgICAgICAgIHNob3J0IF9fdzAzLCBzaG9ydCBfX3cwMiwgc2hvcnQgX193MDEsIHNob3J0IF9fdzAwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1NmkpKF9fdjE2aGkpeyBfX3cwMCwgX193MDEsIF9fdzAyLCBfX3cwMywgX193MDQsIF9fdzA1LCBfX3cwNiwKICAgIF9fdzA3LCBfX3cwOCwgX193MDksIF9fdzEwLCBfX3cxMSwgX193MTIsIF9fdzEzLCBfX3cxNCwgX193MTUgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZAovLy8gICAgOC1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19iMzEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjMwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjQ3OjI0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyOQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzOToyMzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzE6MjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjIxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyNgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIxNToyMDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMDc6MjAwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTk5OjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyMwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxODRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxODM6MTc2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIxCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTc1OjE2OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE2NzoxNjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTUyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE4Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTUxOjE0NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE0MzoxMzZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTYKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMzU6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjEyMF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzExOToxMTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjEyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTAzOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjExCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs4Nzo4MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwOQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc5OjcyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA4Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzE6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDcKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDQKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwMwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjM6MTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfZXBpOChjaGFyIF9fYjMxLCBjaGFyIF9fYjMwLCBjaGFyIF9fYjI5LCBjaGFyIF9fYjI4LAogICAgICAgICAgICAgICAgY2hhciBfX2IyNywgY2hhciBfX2IyNiwgY2hhciBfX2IyNSwgY2hhciBfX2IyNCwKICAgICAgICAgICAgICAgIGNoYXIgX19iMjMsIGNoYXIgX19iMjIsIGNoYXIgX19iMjEsIGNoYXIgX19iMjAsCiAgICAgICAgICAgICAgICBjaGFyIF9fYjE5LCBjaGFyIF9fYjE4LCBjaGFyIF9fYjE3LCBjaGFyIF9fYjE2LAogICAgICAgICAgICAgICAgY2hhciBfX2IxNSwgY2hhciBfX2IxNCwgY2hhciBfX2IxMywgY2hhciBfX2IxMiwKICAgICAgICAgICAgICAgIGNoYXIgX19iMTEsIGNoYXIgX19iMTAsIGNoYXIgX19iMDksIGNoYXIgX19iMDgsCiAgICAgICAgICAgICAgICBjaGFyIF9fYjA3LCBjaGFyIF9fYjA2LCBjaGFyIF9fYjA1LCBjaGFyIF9fYjA0LAogICAgICAgICAgICAgICAgY2hhciBfX2IwMywgY2hhciBfX2IwMiwgY2hhciBfX2IwMSwgY2hhciBfX2IwMCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZpKShfX3YzMnFpKXsKICAgIF9fYjAwLCBfX2IwMSwgX19iMDIsIF9fYjAzLCBfX2IwNCwgX19iMDUsIF9fYjA2LCBfX2IwNywKICAgIF9fYjA4LCBfX2IwOSwgX19iMTAsIF9fYjExLCBfX2IxMiwgX19iMTMsIF9fYjE0LCBfX2IxNSwKICAgIF9fYjE2LCBfX2IxNywgX19iMTgsIF9fYjE5LCBfX2IyMCwgX19iMjEsIF9fYjIyLCBfX2IyMywKICAgIF9fYjI0LCBfX2IyNSwgX19iMjYsIF9fYjI3LCBfX2IyOCwgX19iMjksIF9fYjMwLCBfX2IzMQogIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQKLy8vICAgIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xRRFErVklOU0VSVEYxMjggPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2QKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfZXBpNjR4KGxvbmcgbG9uZyBfX2EsIGxvbmcgbG9uZyBfX2IsIGxvbmcgbG9uZyBfX2MsIGxvbmcgbG9uZyBfX2QpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2aSkoX192NGRpKXsgX19kLCBfX2MsIF9fYiwgX19hIH07Cn0KCi8qIENyZWF0ZSB2ZWN0b3JzIHdpdGggZWxlbWVudHMgaW4gcmV2ZXJzZSBvcmRlciAqLwovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSwKLy8vICAgIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUEQrVklOU0VSVEYxMjggPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6NjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTI4XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2QKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjE5Ml0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0cl9wZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jLCBkb3VibGUgX19kKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfcGQoX19kLCBfX2MsIF9fYiwgX19hKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSwKLy8vICAgIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0LXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMTowXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MzJdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo5Nl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19lCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxMjhdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZgovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTYwXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2cKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjE5Ml0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19oCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyMjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX3BzKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MsIGZsb2F0IF9fZCwKICAgICAgICAgICAgICAgZmxvYXQgX19lLCBmbG9hdCBfX2YsIGZsb2F0IF9fZywgZmxvYXQgX19oKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfcHMoX19oLCBfX2csIF9fZiwgX19lLCBfX2QsIF9fYywgX19iLCBfX2EpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgIHdpdGggdGhlIHNwZWNpZmllZCAzMi1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTIKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTQKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTUKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTYwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTYKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMjM6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTcKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX2VwaTMyKGludCBfX2kwLCBpbnQgX19pMSwgaW50IF9faTIsIGludCBfX2kzLAogICAgICAgICAgICAgICAgICBpbnQgX19pNCwgaW50IF9faTUsIGludCBfX2k2LCBpbnQgX19pNykKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTMyKF9faTcsIF9faTYsIF9faTUsIF9faTQsIF9faTMsIF9faTIsIF9faTEsIF9faTApOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgIHdpdGggdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MTUKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzE0Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTMKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMgovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzExCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzk6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTAKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwOQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwOAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzoxMTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDcKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNDM6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA2Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU5OjE0NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE3NToxNjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDQKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTc2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAzCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjA3OjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwMgovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIyMzoyMDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDEKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzk6MjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAwCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjI0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0cl9lcGkxNihzaG9ydCBfX3cxNSwgc2hvcnQgX193MTQsIHNob3J0IF9fdzEzLCBzaG9ydCBfX3cxMiwKICAgICAgIHNob3J0IF9fdzExLCBzaG9ydCBfX3cxMCwgc2hvcnQgX193MDksIHNob3J0IF9fdzA4LAogICAgICAgc2hvcnQgX193MDcsIHNob3J0IF9fdzA2LCBzaG9ydCBfX3cwNSwgc2hvcnQgX193MDQsCiAgICAgICBzaG9ydCBfX3cwMywgc2hvcnQgX193MDIsIHNob3J0IF9fdzAxLCBzaG9ydCBfX3cwMCkKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTE2KF9fdzAwLCBfX3cwMSwgX193MDIsIF9fdzAzLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fdzA0LCBfX3cwNSwgX193MDYsIF9fdzA3LAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fdzA4LCBfX3cwOSwgX193MTAsIF9fdzExLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fdzEyLCBfX3cxMywgX193MTQsIF9fdzE1KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICB3aXRoIHRoZSBzcGVjaWZpZWQgOC1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19iMzEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMzAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI5Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjM6MTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyNwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyNAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjU2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzE6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo3Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzoxMjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMzU6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTQzOjEzNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1MToxNDRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTUyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjExCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTY3OjE2MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE3NToxNjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxODM6MTc2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA4Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjE4NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5OToxOTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDYKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMDc6MjAwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjE1OjIwOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIyMzoyMTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzE6MjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjM5OjIzMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI0NzoyNDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX2VwaTgoY2hhciBfX2IzMSwgY2hhciBfX2IzMCwgY2hhciBfX2IyOSwgY2hhciBfX2IyOCwKICAgICAgICAgICAgICAgICBjaGFyIF9fYjI3LCBjaGFyIF9fYjI2LCBjaGFyIF9fYjI1LCBjaGFyIF9fYjI0LAogICAgICAgICAgICAgICAgIGNoYXIgX19iMjMsIGNoYXIgX19iMjIsIGNoYXIgX19iMjEsIGNoYXIgX19iMjAsCiAgICAgICAgICAgICAgICAgY2hhciBfX2IxOSwgY2hhciBfX2IxOCwgY2hhciBfX2IxNywgY2hhciBfX2IxNiwKICAgICAgICAgICAgICAgICBjaGFyIF9fYjE1LCBjaGFyIF9fYjE0LCBjaGFyIF9fYjEzLCBjaGFyIF9fYjEyLAogICAgICAgICAgICAgICAgIGNoYXIgX19iMTEsIGNoYXIgX19iMTAsIGNoYXIgX19iMDksIGNoYXIgX19iMDgsCiAgICAgICAgICAgICAgICAgY2hhciBfX2IwNywgY2hhciBfX2IwNiwgY2hhciBfX2IwNSwgY2hhciBfX2IwNCwKICAgICAgICAgICAgICAgICBjaGFyIF9fYjAzLCBjaGFyIF9fYjAyLCBjaGFyIF9fYjAxLCBjaGFyIF9fYjAwKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpOChfX2IwMCwgX19iMDEsIF9fYjAyLCBfX2IwMywgX19iMDQsIF9fYjA1LCBfX2IwNiwgX19iMDcsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2IwOCwgX19iMDksIF9fYjEwLCBfX2IxMSwgX19iMTIsIF9fYjEzLCBfX2IxNCwgX19iMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2IxNiwgX19iMTcsIF9fYjE4LCBfX2IxOSwgX19iMjAsIF9fYjIxLCBfX2IyMiwgX19iMjMsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2IyNCwgX19iMjUsIF9fYjI2LCBfX2IyNywgX19iMjgsIF9fYjI5LCBfX2IzMCwgX19iMzEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgIHdpdGggdGhlIHNwZWNpZmllZCA2NC1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVU5QQ0tMUURRK1ZJTlNFUlRGMTI4IDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0cl9lcGk2NHgobG9uZyBsb25nIF9fYSwgbG9uZyBsb25nIF9fYiwgbG9uZyBsb25nIF9fYywgbG9uZyBsb25nIF9fZCkKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTY0eChfX2QsIF9fYywgX19iLCBfX2EpOwp9CgovKiBDcmVhdGUgdmVjdG9ycyB3aXRoIHJlcGVhdGVkIGVsZW1lbnRzICovCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLCB3aXRoIGVhY2gKLy8vICAgIG9mIHRoZSBmb3VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUKLy8vICAgIHNwZWNpZmllZCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQK1ZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldDFfcGQoZG91YmxlIF9fdykKewogIHJldHVybiBfbW0yNTZfc2V0X3BkKF9fdywgX193LCBfX3csIF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0sIHdpdGggZWFjaAovLy8gICAgb2YgdGhlIGVpZ2h0IHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUKLy8vICAgIHNwZWNpZmllZCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUytWSU5TRVJURjEyOCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0MV9wcyhmbG9hdCBfX3cpCnsKICByZXR1cm4gX21tMjU2X3NldF9wcyhfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkzMl0sIHdpdGggZWFjaCBvZiB0aGUKLy8vICAgIDMyLWJpdCBpbnRlZ3JhbCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZSBzcGVjaWZpZWQgMzItYml0IGludGVncmFsCi8vLyAgICB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUFMrVklOU0VSVEYxMjggPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMzJdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldDFfZXBpMzIoaW50IF9faSkKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTMyKF9faSwgX19pLCBfX2ksIF9faSwgX19pLCBfX2ksIF9faSwgX19pKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFsxNiB4IGkxNl0sIHdpdGggZWFjaCBvZiB0aGUKLy8vICAgIDE2LWJpdCBpbnRlZ3JhbCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZSBzcGVjaWZpZWQgMTYtYml0IGludGVncmFsCi8vLyAgICB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZCK1ZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yIGVsZW1lbnQgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFsxNiB4IGkxNl0uCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0MV9lcGkxNihzaG9ydCBfX3cpCnsKICByZXR1cm4gX21tMjU2X3NldF9lcGkxNihfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgICAgICAgICAgICAgICAgICAgICAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMzIgeCBpOF0sIHdpdGggZWFjaCBvZiB0aGUKLy8vICAgIDgtYml0IGludGVncmFsIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ3JhbCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZCK1ZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yIGVsZW1lbnQgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFszMiB4IGk4XS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXQxX2VwaTgoY2hhciBfX2IpCnsKICByZXR1cm4gX21tMjU2X3NldF9lcGk4KF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTY0XSwgd2l0aCBlYWNoIG9mIHRoZQovLy8gICAgNjQtYml0IGludGVncmFsIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCA2NC1iaXQgaW50ZWdyYWwKLy8vICAgIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQK1ZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcQovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yIGVsZW1lbnQgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTY0XS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXQxX2VwaTY0eChsb25nIGxvbmcgX19xKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpNjR4KF9fcSwgX19xLCBfX3EsIF9fcSk7Cn0KCi8qIENyZWF0ZSBfX3plcm9lZCB2ZWN0b3JzICovCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIHdpdGggYWxsCi8vLyAgICB2ZWN0b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXR6ZXJvX3BkKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2ZCl7IDAsIDAsIDAsIDAgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSB3aXRoIGFsbAovLy8gICAgdmVjdG9yIGVsZW1lbnRzIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHplcm9fcHModm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTYpeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHplcm9fc2kyNTYodm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZpKShfX3Y0ZGkpeyAwLCAwLCAwLCAwIH07Cn0KCi8qIENhc3QgYmV0d2VlbiB2ZWN0b3IgdHlwZXMgKi8KLy8vIENhc3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGludG8gYSAyNTYtYml0Ci8vLyAgICBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RwZF9wcyhfX20yNTZkIF9fYSkKewogIHJldHVybiAoX19tMjU2KV9fYTsKfQoKLy8vIENhc3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGludG8gYSAyNTYtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2FtZSBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlCi8vLyAgICBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHBkX3NpMjU2KF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYTsKfQoKLy8vIENhc3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW50byBhIDI1Ni1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cHNfcGQoX19tMjU2IF9fYSkKewogIHJldHVybiAoX19tMjU2ZClfX2E7Cn0KCi8vLyBDYXN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGludG8gYSAyNTYtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzYW1lIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUKLy8vICAgIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cHNfc2kyNTYoX19tMjU2IF9fYSkKewogIHJldHVybiAoX19tMjU2aSlfX2E7Cn0KCi8vLyBDYXN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW50byBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RzaTI1Nl9wcyhfX20yNTZpIF9fYSkKewogIHJldHVybiAoX19tMjU2KV9fYTsKfQoKLy8vIENhc3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3IKLy8vICAgIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc2FtZQovLy8gICAgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHNpMjU2X3BkKF9fbTI1NmkgX19hKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYTsKfQoKLy8vIFJldHVybnMgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZG91YmxlXSBhcyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZQovLy8gICAgbG93ZXIgMTI4IGJpdHMgb2YgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cGQyNTZfcGQxMjgoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19hLCAwLCAxKTsKfQoKLy8vIFJldHVybnMgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggZmxvYXRdIGFzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBsb3dlciAxMjggYml0cyBvZiB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHBzMjU2X3BzMTI4KF9fbTI1NiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19hLCAwLCAxLCAyLCAzKTsKfQoKLy8vIFRydW5jYXRlcyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW50byBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUKLy8vICAgIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0c2kyNTZfc2kxMjgoX19tMjU2aSBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkaSlfX2EsIChfX3Y0ZGkpX19hLCAwLCAxKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gZnJvbSBhCi8vLyAgICAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gICAgVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgY29udGVudHMKLy8vICAgIG9mIHRoZSB1cHBlciAxMjggYml0cyBhcmUgdW5kZWZpbmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSBjb250ZW50cyBvZiB0aGUgdXBwZXIgMTI4IGJpdHMKLy8vICAgIGFyZSB1bmRlZmluZWQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHBkMTI4X3BkMjU2KF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19hLCAoX192MmRmKV9fYSwgMCwgMSwgLTEsIC0xKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vICAgIFRoZSBsb3dlciAxMjggYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIGNvbnRlbnRzCi8vLyAgICBvZiB0aGUgdXBwZXIgMTI4IGJpdHMgYXJlIHVuZGVmaW5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIGNvbnRlbnRzIG9mIHRoZSB1cHBlciAxMjggYml0cwovLy8gICAgYXJlIHVuZGVmaW5lZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RwczEyOF9wczI1NihfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYSwgMCwgMSwgMiwgMywgLTEsIC0xLCAtMSwgLTEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgY29udGVudHMKLy8vICAgIG9mIHRoZSB1cHBlciAxMjggYml0cyBhcmUgdW5kZWZpbmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoZSBsb3dlciAxMjggYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZgovLy8gICAgdGhlIHBhcmFtZXRlci4gVGhlIGNvbnRlbnRzIG9mIHRoZSB1cHBlciAxMjggYml0cyBhcmUgdW5kZWZpbmVkLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihfX20xMjhpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgKF9fdjJkaSlfX2EsIDAsIDEsIC0xLCAtMSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGZyb20gYQovLy8gICAgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMTI4IGJpdHMgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMTI4IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3pleHRwZDEyOF9wZDI1NihfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCAwLCAxLCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbgovLy8gICAgdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMTI4IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMTI4IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfemV4dHBzMTI4X3BzMjU2KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBmcm9tIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vICAgIFRoZSBsb3dlciAxMjggYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyCi8vLyAgICAxMjggYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mCi8vLyAgICB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMTI4IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3pleHRzaTEyOF9zaTI1NihfX20xMjhpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpLCAwLCAxLCAyLCAzKTsKfQoKLyoKICAgVmVjdG9yIGluc2VydC4KICAgV2UgdXNlIG1hY3JvcyByYXRoZXIgdGhhbiBpbmxpbmVzIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGFjY2VwdAogICBpbnZvY2F0aW9ucyB3aGVyZSB0aGUgaW1tZWRpYXRlIE0gaXMgYSBjb25zdGFudCBleHByZXNzaW9uLgoqLwovLy8gQ29uc3RydWN0cyBhIG5ldyAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBieSBmaXJzdCBkdXBsaWNhdGluZwovLy8gICAgYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBnaXZlbiBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLCBhbmQgdGhlbgovLy8gICAgcmVwbGFjaW5nIGVpdGhlciB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyIDEyOCBiaXRzIHdpdGggdGhlIGNvbnRlbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBpbW1lZGlhdGUgaW50ZWdlciBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyBiZXR3ZWVuIHRoZSB1cHBlciBvciB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9pbnNlcnRmMTI4X3BzKF9fbTI1NiBWMSwgX19tMTI4IFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUgcmVzdWx0Ci8vLyAgICBmaXJzdCwgYW5kIHRoZW4gZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdCB3aWxsCi8vLyAgICBiZSByZXBsYWNlZCBieSB0aGUgY29udGVudHMgb2YgXGEgVjIuCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBjb250ZW50cyBvZiB0aGlzIHBhcmFtZXRlciBhcmUKLy8vICAgIHdyaXR0ZW4gdG8gZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdCBkZXBlbmRpbmcKLy8vICAgIG9uIHRoZSB2YWx1ZSBvZiBwYXJhbWV0ZXIgXGEgTS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlci4gVGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBkZXRlcm1pbmVzIGhvdyB0aGUgdmFsdWVzCi8vLyAgICBmcm9tIHRoZSB0d28gcGFyYW1ldGVycyBhcmUgaW50ZXJsZWF2ZWQ6IFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMCwgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlIHJlc3VsdCwKLy8vICAgIGFuZCBiaXRzIFsyNTU6MTI4XSBvZiBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgcmVzdWx0LiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDEsIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICByZXN1bHQsIGFuZCBiaXRzIFsxMjc6MF0gb2YgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfaW5zZXJ0ZjEyOF9wcyhWMSwgVjIsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl92aW5zZXJ0ZjEyOF9wczI1NigoX192OHNmKShfX20yNTYpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVjIpLCAoaW50KShNKSkpCgovLy8gQ29uc3RydWN0cyBhIG5ldyAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYnkgZmlyc3QgZHVwbGljYXRpbmcKLy8vICAgIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGdpdmVuIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIsIGFuZCB0aGVuCi8vLyAgICByZXBsYWNpbmcgZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgd2l0aCB0aGUgY29udGVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBpbW1lZGlhdGUgaW50ZWdlciBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyBiZXR3ZWVuIHRoZSB1cHBlciBvciB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2ZCBfbW0yNTZfaW5zZXJ0ZjEyOF9wZChfX20yNTZkIFYxLCBfX20xMjhkIFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBUaGlzIHZlY3RvciBpcyBjb3BpZWQgdG8gdGhlIHJlc3VsdAovLy8gICAgZmlyc3QsIGFuZCB0aGVuIGVpdGhlciB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQgd2lsbAovLy8gICAgYmUgcmVwbGFjZWQgYnkgdGhlIGNvbnRlbnRzIG9mIFxhIFYyLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgd3JpdHRlbiB0byBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUgcmVzdWx0IGRlcGVuZGluZwovLy8gICAgb24gdGhlIHZhbHVlIG9mIHBhcmFtZXRlciBcYSBNLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGRldGVybWluZXMgaG93IHRoZSB2YWx1ZXMKLy8vICAgIGZyb20gdGhlIHR3byBwYXJhbWV0ZXJzIGFyZSBpbnRlcmxlYXZlZDogXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAwLCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUgcmVzdWx0LAovLy8gICAgYW5kIGJpdHMgWzI1NToxMjhdIG9mIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIHJlc3VsdCwgYW5kIGJpdHMgWzEyNzowXSBvZiBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfaW5zZXJ0ZjEyOF9wZChWMSwgVjIsIE0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmluc2VydGYxMjhfcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFYyKSwgKGludCkoTSkpKQoKLy8vIENvbnN0cnVjdHMgYSBuZXcgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBmaXJzdCBkdXBsaWNhdGluZyBhCi8vLyAgICAyNTYtYml0IGludGVnZXIgdmVjdG9yIGdpdmVuIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIsIGFuZCB0aGVuIHJlcGxhY2luZwovLy8gICAgZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgd2l0aCB0aGUgY29udGVudHMgb2YgYSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgaW1tZWRpYXRlIGludGVnZXIgcGFyYW1ldGVyIGRldGVybWluZXMgYmV0d2VlbiB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyCi8vLyAgICAxMjggYml0cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmkgX21tMjU2X2luc2VydGYxMjhfc2kyNTYoX19tMjU2aSBWMSwgX19tMTI4aSBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYxCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUgcmVzdWx0IGZpcnN0LCBhbmQKLy8vICAgIHRoZW4gZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCi8vLyAgICByZXBsYWNlZCBieSB0aGUgY29udGVudHMgb2YgXGEgVjIuCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSB3cml0dGVuIHRvCi8vLyAgICBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUgcmVzdWx0IGRlcGVuZGluZyBvbiB0aGUKLy8vICAgICB2YWx1ZSBvZiBwYXJhbWV0ZXIgXGEgTS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlci4gVGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBkZXRlcm1pbmVzIGhvdyB0aGUgdmFsdWVzCi8vLyAgICBmcm9tIHRoZSB0d28gcGFyYW1ldGVycyBhcmUgaW50ZXJsZWF2ZWQ6IFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMCwgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlIHJlc3VsdCwKLy8vICAgIGFuZCBiaXRzIFsyNTU6MTI4XSBvZiBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgcmVzdWx0LiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDEsIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICByZXN1bHQsIGFuZCBiaXRzIFsxMjc6MF0gb2YgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRmMTI4X3NpMjU2KFYxLCBWMiwgTSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92aW5zZXJ0ZjEyOF9zaTI1NigoX192OHNpKShfX20yNTZpKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoVjIpLCAoaW50KShNKSkpCgovKgogICBWZWN0b3IgZXh0cmFjdC4KICAgV2UgdXNlIG1hY3JvcyByYXRoZXIgdGhhbiBpbmxpbmVzIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGFjY2VwdAogICBpbnZvY2F0aW9ucyB3aGVyZSB0aGUgaW1tZWRpYXRlIE0gaXMgYSBjb25zdGFudCBleHByZXNzaW9uLgoqLwovLy8gRXh0cmFjdHMgZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XSwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgcGFyYW1ldGVyLCBhbmQKLy8vICAgIHJldHVybnMgdGhlIGV4dHJhY3RlZCBiaXRzIGFzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tMjU2X2V4dHJhY3RmMTI4X3BzKF9fbTI1NiBWLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIuIFRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgZGV0ZXJtaW5lcyB3aGljaCBiaXRzIGFyZQovLy8gICAgZXh0cmFjdGVkIGZyb20gdGhlIGZpcnN0IHBhcmFtZXRlcjogXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAwLCBiaXRzIFsxMjc6MF0gb2YgXGEgViBhcmUgY29waWVkIHRvIHRoZQovLy8gICAgcmVzdWx0LiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDEsIGJpdHMgWzI1NToxMjhdIG9mIFxhIFYgYXJlIGNvcGllZCB0byB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgYml0cy4KI2RlZmluZSBfbW0yNTZfZXh0cmFjdGYxMjhfcHMoViwgTSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZleHRyYWN0ZjEyOF9wczI1NigoX192OHNmKShfX20yNTYpKFYpLCAoaW50KShNKSkpCgovLy8gRXh0cmFjdHMgZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGRvdWJsZV0sIGFzIGRldGVybWluZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIHBhcmFtZXRlciwgYW5kCi8vLyAgICByZXR1cm5zIHRoZSBleHRyYWN0ZWQgYml0cyBhcyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tMjU2X2V4dHJhY3RmMTI4X3BkKF9fbTI1NmQgViwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlci4gVGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBkZXRlcm1pbmVzIHdoaWNoIGJpdHMgYXJlCi8vLyAgICBleHRyYWN0ZWQgZnJvbSB0aGUgZmlyc3QgcGFyYW1ldGVyOiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDAsIGJpdHMgWzEyNzowXSBvZiBcYSBWIGFyZSBjb3BpZWQgdG8gdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgYml0cyBbMjU1OjEyOF0gb2YgXGEgViBhcmUgY29waWVkIHRvIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgYml0cy4KI2RlZmluZSBfbW0yNTZfZXh0cmFjdGYxMjhfcGQoViwgTSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92ZXh0cmFjdGYxMjhfcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoViksIChpbnQpKE0pKSkKCi8vLyBFeHRyYWN0cyBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBmcm9tIGEgMjU2LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IsIGFzIGRldGVybWluZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIHBhcmFtZXRlciwgYW5kCi8vLyAgICByZXR1cm5zIHRoZSBleHRyYWN0ZWQgYml0cyBhcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbTI1Nl9leHRyYWN0ZjEyOF9zaTI1NihfX20yNTZpIFYsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGRldGVybWluZXMgd2hpY2ggYml0cyBhcmUKLy8vICAgIGV4dHJhY3RlZCBmcm9tIHRoZSBmaXJzdCBwYXJhbWV0ZXI6ICBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDAsIGJpdHMgWzEyNzowXSBvZiBcYSBWIGFyZSBjb3BpZWQgdG8gdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgYml0cyBbMjU1OjEyOF0gb2YgXGEgViBhcmUgY29waWVkIHRvIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZXh0cmFjdGVkIGJpdHMuCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RmMTI4X3NpMjU2KFYsIE0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmV4dHJhY3RmMTI4X3NpMjU2KChfX3Y4c2kpKF9fbTI1NmkpKFYpLCAoaW50KShNKSkpCgovKiBTSU1EIGxvYWQgb3BzICh1bmFsaWduZWQpICovCi8vLyBMb2FkcyB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGZyb20KLy8vICAgIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb25zIGFuZCBjb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3IKLy8vICAgIG9mIFs4IHggZmxvYXRdIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIHR3byAxMjgtYml0IHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIGxvYWQgaW5zdHJ1Y3Rpb25zIGZvbGxvd2VkIGJ5IHRoZQovLy8gICA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIDQgY29uc2VjdXRpdmUKLy8vICAgIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLiBUaGVzZSB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZCB0bwovLy8gICAgYml0c1syNTU6MTI4XSBvZiB0aGUgcmVzdWx0LiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90Ci8vLyAgICBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hZGRyX2xvCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIDQgY29uc2VjdXRpdmUKLy8vICAgIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLiBUaGVzZSB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZCB0bwovLy8gICAgYml0c1sxMjc6MF0gb2YgdGhlIHJlc3VsdC4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBsb2NhdGlvbiBkb2VzIG5vdAovLy8gICAgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZQovLy8gICAgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWR1Ml9tMTI4KGZsb2F0IGNvbnN0ICpfX2FkZHJfaGksIGZsb2F0IGNvbnN0ICpfX2FkZHJfbG8pCnsKICBfX20yNTYgX192MjU2ID0gX21tMjU2X2Nhc3RwczEyOF9wczI1NihfbW1fbG9hZHVfcHMoX19hZGRyX2xvKSk7CiAgcmV0dXJuIF9tbTI1Nl9pbnNlcnRmMTI4X3BzKF9fdjI1NiwgX21tX2xvYWR1X3BzKF9fYWRkcl9oaSksIDEpOwp9CgovLy8gTG9hZHMgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gZnJvbQovLy8gICAgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbnMgYW5kIGNvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcgovLy8gICAgb2YgWzQgeCBkb3VibGVdIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIHR3byAxMjgtYml0IHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIGxvYWQgaW5zdHJ1Y3Rpb25zIGZvbGxvd2VkIGJ5IHRoZQovLy8gICA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHR3byBjb25zZWN1dGl2ZQovLy8gICAgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuIFRoZXNlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkIHRvCi8vLyAgICBiaXRzWzI1NToxMjhdIG9mIHRoZSByZXN1bHQuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QKLy8vICAgIGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2FkZHJfbG8KLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdHdvIGNvbnNlY3V0aXZlCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4gVGhlc2UgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQgdG8KLy8vICAgIGJpdHNbMTI3OjBdIG9mIHRoZSByZXN1bHQuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QKLy8vICAgIGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWR1Ml9tMTI4ZChkb3VibGUgY29uc3QgKl9fYWRkcl9oaSwgZG91YmxlIGNvbnN0ICpfX2FkZHJfbG8pCnsKICBfX20yNTZkIF9fdjI1NiA9IF9tbTI1Nl9jYXN0cGQxMjhfcGQyNTYoX21tX2xvYWR1X3BkKF9fYWRkcl9sbykpOwogIHJldHVybiBfbW0yNTZfaW5zZXJ0ZjEyOF9wZChfX3YyNTYsIF9tbV9sb2FkdV9wZChfX2FkZHJfaGkpLCAxKTsKfQoKLy8vIExvYWRzIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9ycyBmcm9tIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb25zIGFuZAovLy8gICAgY29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgY29uY2F0ZW5hdGluZyB0aGUgdHdvIDEyOC1iaXQKLy8vICAgIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIGxvYWQgaW5zdHJ1Y3Rpb25zIGZvbGxvd2VkIGJ5IHRoZQovLy8gICA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgMTI4LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IuIFRoaXMgdmVjdG9yIGlzIHRvIGJlIGNvcGllZCB0byBiaXRzWzI1NToxMjhdIG9mIHRoZSByZXN1bHQuIFRoZQovLy8gICAgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2FkZHJfbG8KLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3Rvci4gVGhpcyB2ZWN0b3IgaXMgdG8gYmUgY29waWVkIHRvIGJpdHNbMTI3OjBdIG9mIHRoZSByZXN1bHQuIFRoZQovLy8gICAgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWR1Ml9tMTI4aShfX20xMjhpX3UgY29uc3QgKl9fYWRkcl9oaSwgX19tMTI4aV91IGNvbnN0ICpfX2FkZHJfbG8pCnsKICBfX20yNTZpIF9fdjI1NiA9IF9tbTI1Nl9jYXN0c2kxMjhfc2kyNTYoX21tX2xvYWR1X3NpMTI4KF9fYWRkcl9sbykpOwogIHJldHVybiBfbW0yNTZfaW5zZXJ0ZjEyOF9zaTI1NihfX3YyNTYsIF9tbV9sb2FkdV9zaTEyOChfX2FkZHJfaGkpLCAxKTsKfQoKLyogU0lNRCBzdG9yZSBvcHMgKHVuYWxpZ25lZCkgKi8KLy8vIFN0b3JlcyB0aGUgdXBwZXIgYW5kIGxvd2VyIDEyOCBiaXRzIG9mIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludAovLy8gICAgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGludG8gdHdvIGRpZmZlcmVudCB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9ucy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjggPC9jPiBpbnN0cnVjdGlvbiBhbmQgdGhlCi8vLyAgIHN0b3JlIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1syNTU6MTI4XSBvZiBcYSBfX2EgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQgdG8gdGhpcyBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoaXMgbWVtb3J5IGxvY2F0aW9uIGRvZXMKLy8vICAgIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hZGRyX2xvCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1sxMjc6MF0gb2YgXGEgX19hIGFyZSB0byBiZQovLy8gICAgY29waWVkIHRvIHRoaXMgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGlzIG1lbW9yeSBsb2NhdGlvbiBkb2VzCi8vLyAgICBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdG9yZXUyX20xMjgoZmxvYXQgKl9fYWRkcl9oaSwgZmxvYXQgKl9fYWRkcl9sbywgX19tMjU2IF9fYSkKewogIF9fbTEyOCBfX3YxMjg7CgogIF9fdjEyOCA9IF9tbTI1Nl9jYXN0cHMyNTZfcHMxMjgoX19hKTsKICBfbW1fc3RvcmV1X3BzKF9fYWRkcl9sbywgX192MTI4KTsKICBfX3YxMjggPSBfbW0yNTZfZXh0cmFjdGYxMjhfcHMoX19hLCAxKTsKICBfbW1fc3RvcmV1X3BzKF9fYWRkcl9oaSwgX192MTI4KTsKfQoKLy8vIFN0b3JlcyB0aGUgdXBwZXIgYW5kIGxvd2VyIDEyOCBiaXRzIG9mIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludAovLy8gICAgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBpbnRvIHR3byBkaWZmZXJlbnQgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24gYW5kIHRoZQovLy8gICBzdG9yZSBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYWRkcl9oaQovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIEJpdHNbMjU1OjEyOF0gb2YgXGEgX19hIGFyZSB0byBiZQovLy8gICAgY29waWVkIHRvIHRoaXMgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGlzIG1lbW9yeSBsb2NhdGlvbiBkb2VzCi8vLyAgICBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYWRkcl9sbwovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIEJpdHNbMTI3OjBdIG9mIFxhIF9fYSBhcmUgdG8gYmUKLy8vICAgIGNvcGllZCB0byB0aGlzIG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhpcyBtZW1vcnkgbG9jYXRpb24gZG9lcwovLy8gICAgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldTJfbTEyOGQoZG91YmxlICpfX2FkZHJfaGksIGRvdWJsZSAqX19hZGRyX2xvLCBfX20yNTZkIF9fYSkKewogIF9fbTEyOGQgX192MTI4OwoKICBfX3YxMjggPSBfbW0yNTZfY2FzdHBkMjU2X3BkMTI4KF9fYSk7CiAgX21tX3N0b3JldV9wZChfX2FkZHJfbG8sIF9fdjEyOCk7CiAgX192MTI4ID0gX21tMjU2X2V4dHJhY3RmMTI4X3BkKF9fYSwgMSk7CiAgX21tX3N0b3JldV9wZChfX2FkZHJfaGksIF9fdjEyOCk7Cn0KCi8vLyBTdG9yZXMgdGhlIHVwcGVyIGFuZCBsb3dlciAxMjggYml0cyBvZiBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW50bwovLy8gICAgdHdvIGRpZmZlcmVudCB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9ucy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjggPC9jPiBpbnN0cnVjdGlvbiBhbmQgdGhlCi8vLyAgIHN0b3JlIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1syNTU6MTI4XSBvZiBcYSBfX2EgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQgdG8gdGhpcyBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoaXMgbWVtb3J5IGxvY2F0aW9uIGRvZXMKLy8vICAgIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hZGRyX2xvCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1sxMjc6MF0gb2YgXGEgX19hIGFyZSB0byBiZQovLy8gICAgY29waWVkIHRvIHRoaXMgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGlzIG1lbW9yeSBsb2NhdGlvbiBkb2VzCi8vLyAgICBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldTJfbTEyOGkoX19tMTI4aV91ICpfX2FkZHJfaGksIF9fbTEyOGlfdSAqX19hZGRyX2xvLCBfX20yNTZpIF9fYSkKewogIF9fbTEyOGkgX192MTI4OwoKICBfX3YxMjggPSBfbW0yNTZfY2FzdHNpMjU2X3NpMTI4KF9fYSk7CiAgX21tX3N0b3JldV9zaTEyOChfX2FkZHJfbG8sIF9fdjEyOCk7CiAgX192MTI4ID0gX21tMjU2X2V4dHJhY3RmMTI4X3NpMjU2KF9fYSwgMSk7CiAgX21tX3N0b3JldV9zaTEyOChfX2FkZHJfaGksIF9fdjEyOCk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gYnkKLy8vICAgIGNvbmNhdGVuYXRpbmcgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2hpCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGJlIGNvcGllZCB0byB0aGUgdXBwZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBiZSBjb3BpZWQgdG8gdGhlIGxvd2VyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZQovLy8gICAgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9tMTI4IChfX20xMjggX19oaSwgX19tMTI4IF9fbG8pCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2xvLCAoX192NHNmKV9faGksIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBieQovLy8gICAgY29uY2F0ZW5hdGluZyB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2hpCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBiZSBjb3BpZWQgdG8gdGhlIHVwcGVyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbG8KLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGJlIGNvcGllZCB0byB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZQovLy8gICAgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfbTEyOGQgKF9fbTEyOGQgX19oaSwgX19tMTI4ZCBfX2xvKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fbG8sIChfX3YyZGYpX19oaSwgMCwgMSwgMiwgMyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBjb25jYXRlbmF0aW5nIHR3byAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19oaQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGJlIGNvcGllZCB0byB0aGUgdXBwZXIgMTI4IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGJlIGNvcGllZCB0byB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfbTEyOGkgKF9fbTEyOGkgX19oaSwgX19tMTI4aSBfX2xvKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fbG8sIChfX3YyZGkpX19oaSwgMCwgMSwgMiwgMyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gYnkKLy8vICAgIGNvbmNhdGVuYXRpbmcgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XS4gVGhpcyBpcwovLy8gICAgc2ltaWxhciB0byBfbW0yNTZfc2V0X20xMjgsIGJ1dCB0aGUgb3JkZXIgb2YgdGhlIGlucHV0IHBhcmFtZXRlcnMgaXMKLy8vICAgIHN3YXBwZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBiZSBjb3BpZWQgdG8gdGhlIGxvd2VyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faGkKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYmUgY29waWVkIHRvIHRoZSB1cHBlcgovLy8gICAgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUKLy8vICAgIGNvbmNhdGVuYXRlZCByZXN1bHQuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX20xMjggKF9fbTEyOCBfX2xvLCBfX20xMjggX19oaSkKewogIHJldHVybiBfbW0yNTZfc2V0X20xMjgoX19oaSwgX19sbyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGJ5Ci8vLyAgICBjb25jYXRlbmF0aW5nIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLiBUaGlzIGlzCi8vLyAgICBzaW1pbGFyIHRvIF9tbTI1Nl9zZXRfbTEyOGQsIGJ1dCB0aGUgb3JkZXIgb2YgdGhlIGlucHV0IHBhcmFtZXRlcnMgaXMKLy8vICAgIHN3YXBwZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYmUgY29waWVkIHRvIHRoZSBsb3dlcgovLy8gICAgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2hpCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBiZSBjb3BpZWQgdG8gdGhlIHVwcGVyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUKLy8vICAgIGNvbmNhdGVuYXRlZCByZXN1bHQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0cl9tMTI4ZCAoX19tMTI4ZCBfX2xvLCBfX20xMjhkIF9faGkpCnsKICByZXR1cm4gKF9fbTI1NmQpX21tMjU2X3NldF9tMTI4ZChfX2hpLCBfX2xvKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGJ5IGNvbmNhdGVuYXRpbmcgdHdvIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycy4gVGhpcyBpcyBzaW1pbGFyIHRvIF9tbTI1Nl9zZXRfbTEyOGksIGJ1dCB0aGUgb3JkZXIgb2YKLy8vICAgIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGlzIHN3YXBwZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGJlIGNvcGllZCB0byB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccGFyYW0gX19oaQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGJlIGNvcGllZCB0byB0aGUgdXBwZXIgMTI4IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX20xMjhpIChfX20xMjhpIF9fbG8sIF9fbTEyOGkgX19oaSkKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfc2V0X20xMjhpKF9faGksIF9fbG8pOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKCiNlbmRpZiAvKiBfX0FWWElOVFJJTl9IICovCgBjZXQuaABocmVzZXRpbnRyaW4uaAByZHNlZWRpbnRyaW4uaAAvKj09PS0tLS0geG9waW50cmluLmggLSBYT1AgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fWDg2SU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHhvcGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19YT1BJTlRSSU5fSAojZGVmaW5lIF9fWE9QSU5UUklOX0gKCiNpbmNsdWRlIDxmbWE0aW50cmluLmg+CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygieG9wIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInhvcCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWNjc19lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3N3dygoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIChfX3Y4aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3N3dygoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIChfX3Y4aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NzZF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3N3ZCgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIChfX3Y0c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NkX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzd2QoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLCAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWNjc19lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3NkZCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IsIChfX3Y0c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3NkZCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IsIChfX3Y0c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NzbG9fZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3NzZHFsKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQiwgKF9fdjJkaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY2xvX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzZHFsKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQiwgKF9fdjJkaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY3NoaV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3NkcWgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192MmRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWNjaGlfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3NkcWgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192MmRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWRkc2RfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hZGNzc3dkKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwgKF9fdjRzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFkZGRfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hZGNzd2QoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLCAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkd19lcGk4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJ3KChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkZF9lcGk4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJkKChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkcV9lcGk4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZGJxKChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkZF9lcGkxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR3ZCgoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkcV9lcGkxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR3cSgoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkcV9lcGkzMihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGRkcSgoX192NHNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkd19lcHU4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHVidygoX192MTZxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZGRfZXB1OChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR1YmQoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRxX2VwdTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkdWJxKChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkZF9lcHUxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR1d2QoKF9fdjhoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZHFfZXB1MTYoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkdXdxKChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRxX2VwdTMyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHVkcSgoX192NHNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3Vid19lcGk4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3KChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViZF9lcGkxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhzdWJ3ZCgoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3VicV9lcGkzMihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhzdWJkcSgoX192NHNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbW92X3NpMTI4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpKCgoX192MmR1KV9fQSAmIChfX3YyZHUpX19DKSB8ICgoX192MmR1KV9fQiAmIH4oX192MmR1KV9fQykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21vdl9zaTI1NihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoKF9fdjRkdSlfX0EgJiAoX192NGR1KV9fQykgfCAoKF9fdjRkdSlfX0IgJiB+KF9fdjRkdSlfX0MpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Blcm1fZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwcGVybSgoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQiwgKF9fdjE2cWkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JvdF9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdGIoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcm90X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdHcoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JvdF9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnByb3RkKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yb3RfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90cSgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgojZGVmaW5lIF9tbV9yb3RpX2VwaTgoQSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdGJpKChfX3YxNnFpKShfX20xMjhpKShBKSwgKE4pKSkKCiNkZWZpbmUgX21tX3JvdGlfZXBpMTYoQSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdHdpKChfX3Y4aGkpKF9fbTEyOGkpKEEpLCAoTikpKQoKI2RlZmluZSBfbW1fcm90aV9lcGkzMihBLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90ZGkoKF9fdjRzaSkoX19tMTI4aSkoQSksIChOKSkpCgojZGVmaW5lIF9tbV9yb3RpX2VwaTY0KEEsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnByb3RxaSgoX192MmRpKShfX20xMjhpKShBKSwgKE4pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGxfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGxiKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NobF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGx3KChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGxfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hsX2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobHEoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NoYV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNoYWIoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNoYXcoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NoYV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGFkKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGFfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hhcSgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgojZGVmaW5lIF9tbV9jb21fZXB1OChBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwY29tdWIoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwdTE2KEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb211dygoX192OGhpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwdTMyKEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb211ZCgoX192NHNpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwdTY0KEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb211cSgoX192MmRpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwaTgoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbWIoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXBpMTYoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbXcoKF9fdjhoaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwaTMyKEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb21kKChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShCKSwgKE4pKSkKCiNkZWZpbmUgX21tX2NvbV9lcGk2NChBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwY29tcSgoX192MmRpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9NTV9QQ09NQ1RSTF9MVCAgICAwCiNkZWZpbmUgX01NX1BDT01DVFJMX0xFICAgIDEKI2RlZmluZSBfTU1fUENPTUNUUkxfR1QgICAgMgojZGVmaW5lIF9NTV9QQ09NQ1RSTF9HRSAgICAzCiNkZWZpbmUgX01NX1BDT01DVFJMX0VRICAgIDQKI2RlZmluZSBfTU1fUENPTUNUUkxfTkVRICAgNQojZGVmaW5lIF9NTV9QQ09NQ1RSTF9GQUxTRSA2CiNkZWZpbmUgX01NX1BDT01DVFJMX1RSVUUgIDcKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXB1OChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXB1OChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcHUxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTEUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ3RfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcHUxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbmVxX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcHUxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX1RSVUUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbHRfZXB1MzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR1QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ2VfZXB1MzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX05FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21mYWxzZV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXB1MzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwdTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTFQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbGVfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcHU2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwdTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZXFfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9GQUxTRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb210cnVlX2VwdTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTEUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ3RfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbmVxX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX1RSVUUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbHRfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR1QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ2VfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX05FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21mYWxzZV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTFQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbGVfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZXFfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9GQUxTRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb210cnVlX2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCiNkZWZpbmUgX21tX3Blcm11dGUyX3BkKFgsIFksIEMsIEkpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdnBlcm1pbDJwZCgoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQyksIChJKSkpCgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMl9wZChYLCBZLCBDLCBJKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWwycGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShZKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCAoSSkpKQoKI2RlZmluZSBfbW1fcGVybXV0ZTJfcHMoWCwgWSwgQywgSSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWwycHMoKF9fdjRzZikoX19tMTI4KShYKSwgKF9fdjRzZikoX19tMTI4KShZKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChJKSkpCgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMl9wcyhYLCBZLCBDLCBJKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfdnBlcm1pbDJwczI1NigoX192OHNmKShfX20yNTYpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShDKSwgKEkpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2ZyY3pfc3MoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmcmN6c3MoKF9fdjRzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZnJjel9zZChfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92ZnJjenNkKChfX3YyZGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZnJjel9wcyhfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZyY3pwcygoX192NHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9mcmN6X3BkKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmcmN6cGQoKF9fdjJkZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mcmN6X3BzKF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92ZnJjenBzMjU2KChfX3Y4c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2ZyY3pfcGQoX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZyY3pwZDI1NigoX192NGRmKV9fQSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmIC8qIF9fWE9QSU5UUklOX0ggKi8KAC8qPT09LS0tLSBvcGVubXBfd3JhcHBlci9tYXRoLmggLS0tLS0tLS0gT3Blbk1QIG1hdGguaCBpbnRlcmNlcHQgLS0tLS0tIGMrKyAtPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovLyBJZiB3ZSBhcmUgaW4gQysrIG1vZGUgYW5kIGluY2x1ZGUgPG1hdGguaD4gKG5vdCA8Y21hdGg+KSBmaXJzdCwgd2Ugc3RpbGwgbmVlZAovLyB0byBtYWtlIHN1cmUgPGNtYXRoPiBpcyByZWFkIGZpcnN0LiBUaGUgcHJvYmxlbSBvdGhlcndpc2UgaXMgdGhhdCB3ZSBoYXZlbid0Ci8vIHNlZW4gdGhlIGRlY2xhcmF0aW9ucyBvZiB0aGUgbWF0aC5oIGZ1bmN0aW9ucyB3aGVuIHRoZSBzeXN0ZW0gbWF0aC5oIGluY2x1ZGVzCi8vIG91ciBjbWF0aCBvdmVybGF5LiBIb3dldmVyLCBvdXIgY21hdGggb3ZlcmxheSwgb3IgYmV0dGVyIHRoZSB1bmRlcmx5aW5nCi8vIG92ZXJsYXksIGUuZy4gQ1VEQSwgdXNlcyB0aGUgbWF0aC5oIGZ1bmN0aW9ucy4gU2luY2Ugd2UgaGF2ZW4ndCBkZWNsYXJlZCB0aGVtCi8vIHlldCB3ZSBnZXQgZXJyb3JzLiBDVURBIGF2b2lkcyB0aGlzIGJ5IGVhZ2VybHkgZGVjbGFyaW5nIGFsbCBtYXRoIGZ1bmN0aW9ucwovLyAoaW4gdGhlIF9fZGV2aWNlX18gc3BhY2UpIGJ1dCB3ZSBjYW5ub3QgZG8gdGhpcy4gSW5zdGVhZCB3ZSBicmVhayB0aGUKLy8gZGVwZW5kZW5jZSBieSBmb3JjaW5nIGNtYXRoIHRvIGdvIGZpcnN0LiBXaGlsZSBvdXIgY21hdGggd2lsbCBpbiB0dXJuIGluY2x1ZGUKLy8gdGhpcyBmaWxlLCB0aGUgY21hdGggZ3VhcmRzIHdpbGwgcHJldmVudCByZWN1cnNpb24uCiNpZmRlZiBfX2NwbHVzcGx1cwojaW5jbHVkZSA8Y21hdGg+CiNlbmRpZgoKI2lmbmRlZiBfX0NMQU5HX09QRU5NUF9NQVRIX0hfXwojZGVmaW5lIF9fQ0xBTkdfT1BFTk1QX01BVEhfSF9fCgojaWZuZGVmIF9PUEVOTVAKI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIE9wZW5NUCBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgojaW5jbHVkZV9uZXh0IDxtYXRoLmg+CgovLyBXZSBuZWVkIGxpbWl0cy5oIGZvciBfX2NsYW5nX2N1ZGFfbWF0aC5oIGJlbG93IGFuZCBiZWNhdXNlIGl0IHNob3VsZCBub3QgaHVydAovLyB3ZSBpbmNsdWRlIGl0IGVhZ2VybHkgaGVyZS4KI2luY2x1ZGUgPGxpbWl0cy5oPgoKLy8gV2UgbmVlZCBzdGRsaWIuaCBiZWNhdXNlIChmb3Igbm93KSBfX2NsYW5nX2N1ZGFfbWF0aC5oIGJlbG93IGRlY2xhcmVzIGBhYnNgCi8vIHdoaWNoIHNob3VsZCBsaXZlIGluIHN0ZGxpYi5oLgojaW5jbHVkZSA8c3RkbGliLmg+CgojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGV2aWNlID0ge2FyY2gobnZwdHgsIG52cHR4NjQpfSwgaW1wbGVtZW50YXRpb24gPSB7ZXh0ZW5zaW9uKG1hdGNoX2FueSl9KQoKI2RlZmluZSBfX0NVREFfXwojZGVmaW5lIF9fT1BFTk1QX05WUFRYX18KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9tYXRoLmg+CiN1bmRlZiBfX09QRU5NUF9OVlBUWF9fCiN1bmRlZiBfX0NVREFfXwoKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAoKI2lmZGVmIF9fQU1ER0NOX18KI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGRldmljZSA9IHthcmNoKGFtZGdjbil9KQoKI2RlZmluZSBfX09QRU5NUF9BTURHQ05fXwojaW5jbHVkZSA8X19jbGFuZ19oaXBfbWF0aC5oPgojdW5kZWYgX19PUEVOTVBfQU1ER0NOX18KCiNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHZhcmlhbnQKI2VuZGlmCgojZW5kaWYKAC8qPT09LS0tLSBtbV9tYWxsb2MuaCAtIEltcGxlbWVudGF0aW9uIG9mIF9tbV9tYWxsb2MgYW5kIF9tbV9mcmVlIC0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX01NX01BTExPQ19IX0lOQ0xVREVECiNkZWZpbmUgX01NX01BTExPQ19IX0lOQ0xVREVECgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKI2luY2x1ZGUgPHN0ZGxpYi5oPgoKLyogV2UgY2FuJ3QgZGVwZW5kIG9uIDxzdGRsaWIuaD4gc2luY2UgdGhlIHByb3RvdHlwZSBvZiBwb3NpeF9tZW1hbGlnbgogICBtYXkgbm90IGJlIHZpc2libGUuICAqLwojaWZuZGVmIF9fY3BsdXNwbHVzCmV4dGVybiBpbnQgcG9zaXhfbWVtYWxpZ24gKHZvaWQgKiosIHNpemVfdCwgc2l6ZV90KTsKI2Vsc2UKZXh0ZXJuICJDIiBpbnQgcG9zaXhfbWVtYWxpZ24gKHZvaWQgKiosIHNpemVfdCwgc2l6ZV90KSB0aHJvdyAoKTsKI2VuZGlmCgpzdGF0aWMgX19pbmxpbmUgdm9pZCAqCl9tbV9tYWxsb2MgKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQp7CiAgLyogUG93ZXJQQzY0IEVMRiBWMiBBQkkgcmVxdWlyZXMgcXVhZHdvcmQgYWxpZ25tZW50LiAgKi8KICBzaXplX3QgdmVjX2FsaWduID0gc2l6ZW9mIChfX3ZlY3RvciBmbG9hdCk7CiAgdm9pZCAqcHRyOwoKICBpZiAoYWxpZ25tZW50IDwgdmVjX2FsaWduKQogICAgYWxpZ25tZW50ID0gdmVjX2FsaWduOwogIGlmIChwb3NpeF9tZW1hbGlnbiAoJnB0ciwgYWxpZ25tZW50LCBzaXplKSA9PSAwKQogICAgcmV0dXJuIHB0cjsKICBlbHNlCiAgICByZXR1cm4gTlVMTDsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQKX21tX2ZyZWUgKHZvaWQgKiBwdHIpCnsKICBmcmVlIChwdHIpOwp9CgojZWxzZQojaW5jbHVkZV9uZXh0IDxtbV9tYWxsb2MuaD4KI2VuZGlmCgojZW5kaWYgLyogX01NX01BTExPQ19IX0lOQ0xVREVEICovCgBWTmFtZSB0ZW1wbGF0ZSAAVW5rbm93biBwb2xpY3k6IABTdGFjayBub3QgZW1wdHkuAFs6Ymxhbms6XQBbOnhkaWdpdDpdAC9pACVkKyAlcwoARGVhZFN0YXRlIGluIFJ1blN0YXRlT25CeXRlAGludmFsaWQgcmVwZXRpdGlvbiBzaXplAGludmFsaWQgVVRGLTgAT2xkX1BlcnNpYW4AWmwAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9mYWlsdXJlX3NpZ25hbF9oYW5kbGVyLmNjACVzQCAlKnAgICh1bmtub3duKQoAJXM6IGVycm5vPSVkAENvcnJ1cHQgL3Byb2Mvc2VsZi9tYXBzIGxpbmU6ICVzAGluZGV4IG91dCBvZiByYW5nZQBlbXB0eSBhcmVuYSBoYXMgbm9uLXBhZ2UtYWxpZ25lZCBibG9jayBzaXplAHoAKCkAYWxsb2NhdG9yACBbACddAENoZWNrIG5vZGUtPmNvbmNhdCgpLT5yaWdodCAhPSBudWxscHRyIGZhaWxlZDogAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL2VzY2FwaW5nLmNjAF0uY2hpbGQgaGFzIGFuIGludmFsaWQgdGFnIABPdXRwdXQgcG9pbnRlciBtdXN0IG5vdCBiZSBudWxscHRyLgBpbGxlZ2FsIHNraXAgZnJvbSBoZWFkAHdhaXRwLnRocmVhZC0+d2FpdHAgIT0gbnVsbHB0cgBTaWduYWxBbGwgd2FrZXVwAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zeW5jaHJvbml6YXRpb24vaW50ZXJuYWwvd2FpdGVyLmNjAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvd25hZi5jAHBhc3NlZCBhIG51bGwgcGFyYW1ldGVyAGt5dGhlL3Byb3RvL2J1aWxkaW5mby5wcm90bwBmNzcAZjk1AGdvAGV4dGVybmFsL2t5dGhlL2t5dGhlL2N4eC9leHRyYWN0b3IvY3h4X2RldGFpbHMuY2MAQ2hlY2sgZmFpbGVkOiBzb3VyY2VfZmlsZS52bmFtZS5sYW5ndWFnZSgpLmVtcHR5KCkALXRhcmdldABLWVRIRV9PVVRQVVRfRElSRUNUT1JZAENoZWNrIGZhaWxlZDogIWN1cnJlbnRfZmlsZXNfLnRvcCgpLmZpbGVfcGF0aC5lbXB0eSgpAEV4dGVybkNTeXN0ZW0AIChsb2NhdGlvbiAAX19jbGFuZ19oaXBfbWF0aC5oAC8qPT09LS0tLSBhcm1pbnRyLmggLSBBUk0gV2luZG93cyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8qIE9ubHkgaW5jbHVkZSB0aGlzIGlmIHdlJ3JlIGNvbXBpbGluZyBmb3IgdGhlIHdpbmRvd3MgcGxhdGZvcm0uICovCiNpZm5kZWYgX01TQ19WRVIKI2luY2x1ZGVfbmV4dCA8YXJtaW50ci5oPgojZWxzZQoKI2lmbmRlZiBfX0FSTUlOVFJfSAojZGVmaW5lIF9fQVJNSU5UUl9ICgp0eXBlZGVmIGVudW0KewogIF9BUk1fQkFSUklFUl9TWSAgICA9IDB4RiwKICBfQVJNX0JBUlJJRVJfU1QgICAgPSAweEUsCiAgX0FSTV9CQVJSSUVSX0lTSCAgID0gMHhCLAogIF9BUk1fQkFSUklFUl9JU0hTVCA9IDB4QSwKICBfQVJNX0JBUlJJRVJfTlNIICAgPSAweDcsCiAgX0FSTV9CQVJSSUVSX05TSFNUID0gMHg2LAogIF9BUk1fQkFSUklFUl9PU0ggICA9IDB4MywKICBfQVJNX0JBUlJJRVJfT1NIU1QgPSAweDIKfSBfQVJNSU5UUl9CQVJSSUVSX1RZUEU7CgojZW5kaWYgLyogX19BUk1JTlRSX0ggKi8KI2VuZGlmIC8qIF9NU0NfVkVSICovCgBhdng1MTJ2bGJ3aW50cmluLmgALyo9PT0tLS0tIGF2eDUxMnZsY2RpbnRyaW4uaCAtIEFWWDUxMlZMIGFuZCBBVlg1MTJDRCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZsY2RpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxDRElOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTENESU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJjZCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJjZCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0bWJfZXBpNjQgKF9fbW1hc2s4IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX21tX3NldDFfZXBpNjR4KChsb25nIGxvbmcpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RtYl9lcGk2NCAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfbW0yNTZfc2V0MV9lcGk2NHgoKGxvbmcgbG9uZylfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0bXdfZXBpMzIgKF9fbW1hc2sxNiBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9tbV9zZXQxX2VwaTMyKChpbnQpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdG13X2VwaTMyIChfX21tYXNrMTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfbW0yNTZfc2V0MV9lcGkzMigoaW50KV9fQSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY29uZmxpY3RfZXBpNjQgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGNvbmZsaWN0ZGlfMTI4ICgoX192MmRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb25mbGljdF9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY29uZmxpY3RfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY29uZmxpY3RfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY29uZmxpY3RfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NvbmZsaWN0X2VwaTY0IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBjb25mbGljdGRpXzI1NiAoKF9fdjRkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29uZmxpY3RfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2NvbmZsaWN0X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2NvbmZsaWN0X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2NvbmZsaWN0X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jb25mbGljdF9lcGkzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29uZmxpY3RzaV8xMjggKChfX3Y0c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2NvbmZsaWN0X2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jb25mbGljdF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb25mbGljdF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jb25mbGljdF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY29uZmxpY3RfZXBpMzIgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cGNvbmZsaWN0c2lfMjU2ICgoX192OHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb25mbGljdF9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY29uZmxpY3RfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29uZmxpY3RfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY29uZmxpY3RfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2x6Y250X2VwaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBsemNudGRfMTI4ICgoX192NHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19semNudF9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbHpjbnRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbHpjbnRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbHpjbnRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2x6Y250X2VwaTMyIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBsemNudGRfMjU2ICgoX192OHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19semNudF9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbHpjbnRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbHpjbnRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbHpjbnRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2x6Y250X2VwaTY0IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBsemNudHFfMTI4ICgoX192MmRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19semNudF9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbHpjbnRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2x6Y250X2VwaTY0IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBsemNudHFfMjU2ICgoX192NGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19semNudF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbHpjbnRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19BVlg1MTJWTENESU5UUklOX0ggKi8KAGF2eDUxMnZsdmJtaTJpbnRyaW4uaABjbGZsdXNob3B0aW50cmluLmgAY2x6ZXJvaW50cmluLmgALyo9PT0tLS0tIGh0bWludHJpbi5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBQb3dlclBDIEhUTSAtLS0tLS0tLS0tLS0tLS09PT0qXAogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgpcKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0qLwoKI2lmbmRlZiBfX0hUTUlOVFJJTl9ICiNkZWZpbmUgX19IVE1JTlRSSU5fSAoKI2lmbmRlZiBfX0hUTV9fCiNlcnJvciAiSFRNIGluc3RydWN0aW9uIHNldCBub3QgZW5hYmxlZCIKI2VuZGlmCgojaWZkZWYgX19wb3dlcnBjX18KCiNpbmNsdWRlIDxzdGRpbnQuaD4KCnR5cGVkZWYgdWludDY0X3QgdGV4YXNyX3Q7CnR5cGVkZWYgdWludDMyX3QgdGV4YXNydV90Owp0eXBlZGVmIHVpbnQzMl90IHRleGFzcmxfdDsKdHlwZWRlZiB1aW50cHRyX3QgdGZpYXJfdDsKdHlwZWRlZiB1aW50cHRyX3QgdGZoYXJfdDsKCiNkZWZpbmUgX0hUTV9TVEFURShDUjApICgoQ1IwID4+IDEpICYgMHgzKQojZGVmaW5lIF9IVE1fTk9OVFJBTlNBQ1RJT05BTCAweDAKI2RlZmluZSBfSFRNX1NVU1BFTkRFRCAgICAgICAgMHgxCiNkZWZpbmUgX0hUTV9UUkFOU0FDVElPTkFMICAgIDB4MgoKI2RlZmluZSBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsQklUTlVNLFNJWkUpIFwKICAoKChURVhBU1IpID4+ICg2My0oQklUTlVNKSkpICYgKCgxPDwoU0laRSkpLTEpKQojZGVmaW5lIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1IsQklUTlVNLFNJWkUpIFwKICAoKChURVhBU1IpID4+ICgzMS0oQklUTlVNKSkpICYgKCgxPDwoU0laRSkpLTEpKQoKI2RlZmluZSBfVEVYQVNSX0ZBSUxVUkVfQ09ERShURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDcsIDgpCiNkZWZpbmUgX1RFWEFTUlVfRkFJTFVSRV9DT0RFKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgNywgOCkKCiNkZWZpbmUgX1RFWEFTUl9GQUlMVVJFX1BFUlNJU1RFTlQoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCA3LCAxKQojZGVmaW5lIF9URVhBU1JVX0ZBSUxVUkVfUEVSU0lTVEVOVChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDcsIDEpCgojZGVmaW5lIF9URVhBU1JfRElTQUxMT1dFRChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDgsIDEpCiNkZWZpbmUgX1RFWEFTUlVfRElTQUxMT1dFRChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDgsIDEpCgojZGVmaW5lIF9URVhBU1JfTkVTVElOR19PVkVSRkxPVyhURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDksIDEpCiNkZWZpbmUgX1RFWEFTUlVfTkVTVElOR19PVkVSRkxPVyhURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDksIDEpCgojZGVmaW5lIF9URVhBU1JfRk9PVFBSSU5UX09WRVJGTE9XKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMTAsIDEpCiNkZWZpbmUgX1RFWEFTUlVfRk9PVFBSSU5UX09WRVJGTE9XKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgMTAsIDEpCgojZGVmaW5lIF9URVhBU1JfU0VMRl9JTkRVQ0VEX0NPTkZMSUNUKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMTEsIDEpCiNkZWZpbmUgX1RFWEFTUlVfU0VMRl9JTkRVQ0VEX0NPTkZMSUNUKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgMTEsIDEpCgojZGVmaW5lIF9URVhBU1JfTk9OX1RSQU5TQUNUSU9OQUxfQ09ORkxJQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxMiwgMSkKI2RlZmluZSBfVEVYQVNSVV9OT05fVFJBTlNBQ1RJT05BTF9DT05GTElDVChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDEyLCAxKQoKI2RlZmluZSBfVEVYQVNSX1RSQU5TQUNUSU9OX0NPTkZMSUNUKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMTMsIDEpCiNkZWZpbmUgX1RFWEFTUlVfVFJBTlNBQ1RJT05fQ09ORkxJQ1QoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAxMywgMSkKCiNkZWZpbmUgX1RFWEFTUl9UUkFOU0xBVElPTl9JTlZBTElEQVRJT05fQ09ORkxJQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxNCwgMSkKI2RlZmluZSBfVEVYQVNSVV9UUkFOU0xBVElPTl9JTlZBTElEQVRJT05fQ09ORkxJQ1QoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAxNCwgMSkKCiNkZWZpbmUgX1RFWEFTUl9JTVBMRU1FTlRBSU9OX1NQRUNJRklDKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMTUsIDEpCiNkZWZpbmUgX1RFWEFTUlVfSU1QTEVNRU5UQUlPTl9TUEVDSUZJQyhURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDE1LCAxKQoKI2RlZmluZSBfVEVYQVNSX0lOU1RSVUNUSU9OX0ZFVENIX0NPTkZMSUNUKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMTYsIDEpCiNkZWZpbmUgX1RFWEFTUlVfSU5TVFJVQ1RJT05fRkVUQ0hfQ09ORkxJQ1QoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAxNiwgMSkKCiNkZWZpbmUgX1RFWEFTUl9BQk9SVChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDMxLCAxKQojZGVmaW5lIF9URVhBU1JVX0FCT1JUKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgMzEsIDEpCgoKI2RlZmluZSBfVEVYQVNSX1NVU1BFTkRFRChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDMyLCAxKQoKI2RlZmluZSBfVEVYQVNSX1BSSVZJTEVHRShURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDM1LCAyKQoKI2RlZmluZSBfVEVYQVNSX0ZBSUxVUkVfU1VNTUFSWShURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDM2LCAxKQoKI2RlZmluZSBfVEVYQVNSX1RGSUFSX0VYQUNUKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzcsIDEpCgojZGVmaW5lIF9URVhBU1JfUk9UKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzgsIDEpCgojZGVmaW5lIF9URVhBU1JfVFJBTlNBQ1RJT05fTEVWRUwoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCA2MywgMTIpCgojZW5kaWYgLyogX19wb3dlcnBjICovCgojaWZkZWYgX19zMzkwX18KCi8qIENvbmRpdGlvbiBjb2RlcyBnZW5lcmF0ZWQgYnkgdGJlZ2luICAqLwojZGVmaW5lIF9IVE1fVEJFR0lOX1NUQVJURUQgICAgICAgMAojZGVmaW5lIF9IVE1fVEJFR0lOX0lOREVURVJNSU5BVEUgMQojZGVmaW5lIF9IVE1fVEJFR0lOX1RSQU5TSUVOVCAgICAgMgojZGVmaW5lIF9IVE1fVEJFR0lOX1BFUlNJU1RFTlQgICAgMwoKLyogVGhlIGFib3J0IGNvZGVzIGJlbG93IHRoaXMgdGhyZXNob2xkIGFyZSByZXNlcnZlZCBmb3IgbWFjaGluZSB1c2UuICAqLwojZGVmaW5lIF9IVE1fRklSU1RfVVNFUl9BQk9SVF9DT0RFIDI1NgoKLyogVGhlIHRyYW5zYWN0aW9uIGRpYWdub3N0aWMgYmxvY2sgaXMgaXQgaXMgZGVmaW5lZCBpbiB0aGUgUHJpbmNpcGxlcwogICBvZiBPcGVyYXRpb24gY2hhcHRlciA1LTkxLiAgKi8KCnN0cnVjdCBfX2h0bV90ZGIgewogIHVuc2lnbmVkIGNoYXIgZm9ybWF0OyAgICAgICAgICAgICAgICAvKiAgIDAgKi8KICB1bnNpZ25lZCBjaGFyIGZsYWdzOwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQxWzRdOwogIHVuc2lnbmVkIHNob3J0IG5lc3RpbmdfZGVwdGg7CiAgdW5zaWduZWQgbG9uZyBsb25nIGFib3J0X2NvZGU7ICAgICAgIC8qICAgOCAqLwogIHVuc2lnbmVkIGxvbmcgbG9uZyBjb25mbGljdF90b2tlbjsgICAvKiAgMTYgKi8KICB1bnNpZ25lZCBsb25nIGxvbmcgYXRpYTsgICAgICAgICAgICAgLyogIDI0ICovCiAgdW5zaWduZWQgY2hhciBlYWlkOyAgICAgICAgICAgICAgICAgIC8qICAzMiAqLwogIHVuc2lnbmVkIGNoYXIgZHhjOwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQyWzJdOwogIHVuc2lnbmVkIGludCBwcm9ncmFtX2ludF9pZDsKICB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZXB0aW9uX2lkOyAgICAgLyogIDQwICovCiAgdW5zaWduZWQgbG9uZyBsb25nIGJlYTsgICAgICAgICAgICAgIC8qICA0OCAqLwogIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQzWzcyXTsgICAgICAgICAvKiAgNTYgKi8KICB1bnNpZ25lZCBsb25nIGxvbmcgZ3Byc1sxNl07ICAgICAgICAgLyogMTI4ICovCn0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19hbGlnbmVkX18gKDgpKSk7CgoKLyogSGVscGVyIGludHJpbnNpY3MgdG8gcmV0cnkgdGJlZ2luIGluIGNhc2Ugb2YgdHJhbnNpZW50IGZhaWx1cmUuICAqLwoKc3RhdGljIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2J1aWx0aW5fdGJlZ2luX3JldHJ5X251bGwgKGludCBfX3JldHJ5KQp7CiAgaW50IGNjLCBpID0gMDsKCiAgd2hpbGUgKChjYyA9IF9fYnVpbHRpbl90YmVnaW4oMCkpID09IF9IVE1fVEJFR0lOX1RSQU5TSUVOVAogICAgICAgICAmJiBpKysgPCBfX3JldHJ5KQogICAgX19idWlsdGluX3R4X2Fzc2lzdChpKTsKCiAgcmV0dXJuIGNjOwp9CgpzdGF0aWMgX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYnVpbHRpbl90YmVnaW5fcmV0cnlfdGRiICh2b2lkICpfX3RkYiwgaW50IF9fcmV0cnkpCnsKICBpbnQgY2MsIGkgPSAwOwoKICB3aGlsZSAoKGNjID0gX19idWlsdGluX3RiZWdpbihfX3RkYikpID09IF9IVE1fVEJFR0lOX1RSQU5TSUVOVAogICAgICAgICAmJiBpKysgPCBfX3JldHJ5KQogICAgX19idWlsdGluX3R4X2Fzc2lzdChpKTsKCiAgcmV0dXJuIGNjOwp9CgojZGVmaW5lIF9fYnVpbHRpbl90YmVnaW5fcmV0cnkodGRiLCByZXRyeSkgXAogIChfX2J1aWx0aW5fY29uc3RhbnRfcCh0ZGIgPT0gMCkgJiYgdGRiID09IDAgPyBcCiAgIF9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbnVsbChyZXRyeSkgOiBcCiAgIF9fYnVpbHRpbl90YmVnaW5fcmV0cnlfdGRiKHRkYiwgcmV0cnkpKQoKc3RhdGljIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2J1aWx0aW5fdGJlZ2luX3JldHJ5X25vZmxvYXRfbnVsbCAoaW50IF9fcmV0cnkpCnsKICBpbnQgY2MsIGkgPSAwOwoKICB3aGlsZSAoKGNjID0gX19idWlsdGluX3RiZWdpbl9ub2Zsb2F0KDApKSA9PSBfSFRNX1RCRUdJTl9UUkFOU0lFTlQKICAgICAgICAgJiYgaSsrIDwgX19yZXRyeSkKICAgIF9fYnVpbHRpbl90eF9hc3Npc3QoaSk7CgogIHJldHVybiBjYzsKfQoKc3RhdGljIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2J1aWx0aW5fdGJlZ2luX3JldHJ5X25vZmxvYXRfdGRiICh2b2lkICpfX3RkYiwgaW50IF9fcmV0cnkpCnsKICBpbnQgY2MsIGkgPSAwOwoKICB3aGlsZSAoKGNjID0gX19idWlsdGluX3RiZWdpbl9ub2Zsb2F0KF9fdGRiKSkgPT0gX0hUTV9UQkVHSU5fVFJBTlNJRU5UCiAgICAgICAgICYmIGkrKyA8IF9fcmV0cnkpCiAgICBfX2J1aWx0aW5fdHhfYXNzaXN0KGkpOwoKICByZXR1cm4gY2M7Cn0KCiNkZWZpbmUgX19idWlsdGluX3RiZWdpbl9yZXRyeV9ub2Zsb2F0KHRkYiwgcmV0cnkpIFwKICAoX19idWlsdGluX2NvbnN0YW50X3AodGRiID09IDApICYmIHRkYiA9PSAwID8gXAogICBfX2J1aWx0aW5fdGJlZ2luX3JldHJ5X25vZmxvYXRfbnVsbChyZXRyeSkgOiBcCiAgIF9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbm9mbG9hdF90ZGIodGRiLCByZXRyeSkpCgojZW5kaWYgLyogX19zMzkwX18gKi8KCiNlbmRpZiAvKiBfX0hUTUlOVFJJTl9IICovCgAvKj09PS0tLS0gc3Rkbm9yZXR1cm4uaCAtIFN0YW5kYXJkIGhlYWRlciBmb3Igbm9yZXR1cm4gbWFjcm8gLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fU1RETk9SRVRVUk5fSAojZGVmaW5lIF9fU1RETk9SRVRVUk5fSAoKI2RlZmluZSBub3JldHVybiBfTm9yZXR1cm4KI2RlZmluZSBfX25vcmV0dXJuX2lzX2RlZmluZWQgMQoKI2VuZGlmIC8qIF9fU1RETk9SRVRVUk5fSCAqLwoALyo9PT0tLS0tIGVtbWludHJpbi5oIC0gSW1wbGVtZW50YXRpb24gb2YgU1NFMiBpbnRyaW5zaWNzIG9uIFBvd2VyUEMgLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogSW1wbGVtZW50ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpbmNsdWRlZCBpbiB0aGUgSW50ZWwgQysrIENvbXBpbGVyCiAgIFVzZXIgR3VpZGUgYW5kIFJlZmVyZW5jZSwgdmVyc2lvbiA5LjAuICAqLwoKI2lmbmRlZiBOT19XQVJOX1g4Nl9JTlRSSU5TSUNTCi8qIFRoaXMgaGVhZGVyIGZpbGUgaXMgdG8gaGVscCBwb3J0aW5nIGNvZGUgdXNpbmcgSW50ZWwgaW50cmluc2ljcwogICBleHBsaWNpdGx5IGZyb20geDg2XzY0IHRvIHBvd2VycGM2NC9wb3dlcnBjNjRsZS4KCiAgIFNpbmNlIFg4NiBTU0UyIGludHJpbnNpY3MgbWFpbmx5IGhhbmRsZXMgX19tMTI4aSBhbmQgX19tMTI4ZCB0eXBlLAogICBQb3dlclBDIFZNWC9WU1ggSVNBIGlzIGEgZ29vZCBtYXRjaCBmb3IgdmVjdG9yIGZsb2F0IFNJTUQgb3BlcmF0aW9ucy4KICAgSG93ZXZlciBzY2FsYXIgZmxvYXQgb3BlcmF0aW9ucyBpbiB2ZWN0b3IgKFhNTSkgcmVnaXN0ZXJzIHJlcXVpcmUKICAgdGhlIFBPV0VSOCBWU1ggSVNBICgyLjA3KSBsZXZlbC4gVGhlcmUgYXJlIGRpZmZlcmVuY2VzIGZvciBkYXRhCiAgIGZvcm1hdCBhbmQgcGxhY2VtZW50IG9mIGZsb2F0IHNjYWxhcnMgaW4gdGhlIHZlY3RvciByZWdpc3Rlciwgd2hpY2gKICAgcmVxdWlyZSBleHRyYSBzdGVwcyB0byBtYXRjaCBTU0UyIHNjYWxhciBmbG9hdCBzZW1hbnRpY3Mgb24gUE9XRVIuCgogICBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGVyZSdzIG11Y2ggZGlmZmVyZW5jZSBiZXR3ZWVuIFg4Nl82NCdzCiAgIE1YU0NSIGFuZCBQb3dlcklTQSdzIEZQU0NSL1ZTQ1IgcmVnaXN0ZXJzLiBJdCdzIHJlY29tbWVuZGVkIHRvIHVzZQogICBwb3J0YWJsZSA8ZmVudi5oPiBpbnN0ZWFkIG9mIGFjY2VzcyBNWFNDUiBkaXJlY3RseS4KCiAgIE1vc3QgU1NFMiBzY2FsYXIgZmxvYXQgaW50cmluc2ljIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBtb3JlCiAgIGVmZmljaWVudGx5IGFzIEMgbGFuZ3VhZ2UgZmxvYXQgc2NhbGFyIG9wZXJhdGlvbnMgb3Igb3B0aW1pemVkIHRvCiAgIHVzZSB2ZWN0b3IgU0lNRCBvcGVyYXRpb25zLiBXZSByZWNvbW1lbmQgdGhpcyBmb3IgbmV3IGFwcGxpY2F0aW9ucy4KKi8KI2Vycm9yICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgRU1NSU5UUklOX0hfCiNkZWZpbmUgRU1NSU5UUklOX0hfCgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKI2luY2x1ZGUgPGFsdGl2ZWMuaD4KCi8qIFdlIG5lZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFIGhlYWRlciBmaWxlcy4gICovCiNpbmNsdWRlIDx4bW1pbnRyaW4uaD4KCi8qIFNTRTIgKi8KdHlwZWRlZiBfX3ZlY3RvciBkb3VibGUgX192MmRmOwp0eXBlZGVmIF9fdmVjdG9yIGxvbmcgbG9uZyBfX3YyZGk7CnR5cGVkZWYgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdjJkdTsKdHlwZWRlZiBfX3ZlY3RvciBpbnQgX192NHNpOwp0eXBlZGVmIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3Y0c3U7CnR5cGVkZWYgX192ZWN0b3Igc2hvcnQgX192OGhpOwp0eXBlZGVmIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdjhodTsKdHlwZWRlZiBfX3ZlY3RvciBzaWduZWQgY2hhciBfX3YxNnFpOwp0eXBlZGVmIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192MTZxdTsKCi8qIFRoZSBJbnRlbCBBUEkgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgd2UgbXVzdCBhbGxvdyBhbGlhc2luZyB3aXRoIG90aGVyCiAgIHZlY3RvciB0eXBlcywgYW5kIHRoZWlyIHNjYWxhciBjb21wb25lbnRzLiAgKi8KdHlwZWRlZiBsb25nIGxvbmcgX19tMTI4aSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNiksIF9fbWF5X2FsaWFzX18pKTsKdHlwZWRlZiBkb3VibGUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNiksIF9fbWF5X2FsaWFzX18pKTsKCi8qIFVuYWxpZ25lZCB2ZXJzaW9uIG9mIHRoZSBzYW1lIHR5cGVzLiAgKi8KdHlwZWRlZiBsb25nIGxvbmcgX19tMTI4aV91IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19tYXlfYWxpYXNfXywgX19hbGlnbmVkX18gKDEpKSk7CnR5cGVkZWYgZG91YmxlIF9fbTEyOGRfdSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNiksIF9fbWF5X2FsaWFzX18sIF9fYWxpZ25lZF9fICgxKSkpOwoKLyogRGVmaW5lIHR3byB2YWx1ZSBwZXJtdXRlIG1hc2suICAqLwojZGVmaW5lIF9NTV9TSFVGRkxFMih4LHkpICgoKHgpIDw8IDEpIHwgKHkpKQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggZWxlbWVudCAwIGFzIEYgYW5kIHRoZSByZXN0IHplcm8uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9zZCAoZG91YmxlIF9fRikKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX19GLCAwLjAgfTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggYm90aCBlbGVtZW50cyBlcXVhbCB0byBGLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXQxX3BkIChkb3VibGUgX19GKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX0YsIF9fRiB9Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9wZDEgKGRvdWJsZSBfX0YpCnsKICByZXR1cm4gX21tX3NldDFfcGQgKF9fRik7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIHRoZSBsb3dlciB2YWx1ZSBYIGFuZCB1cHBlciB2YWx1ZSBXLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfcGQgKGRvdWJsZSBfX1csIGRvdWJsZSBfX1gpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4ZCl7IF9fWCwgX19XIH07Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIHRoZSBsb3dlciB2YWx1ZSBXIGFuZCB1cHBlciB2YWx1ZSBYLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRyX3BkIChkb3VibGUgX19XLCBkb3VibGUgX19YKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX1csIF9fWCB9Owp9CgovKiBDcmVhdGUgYW4gdW5kZWZpbmVkIHZlY3Rvci4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5kZWZpbmVkX3BkICh2b2lkKQp7CiAgX19tMTI4ZCBfX1kgPSBfX1k7CiAgcmV0dXJuIF9fWTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIG9mIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXR6ZXJvX3BkICh2b2lkKQp7CiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfc3BsYXRzICgwKTsKfQoKLyogU2V0cyB0aGUgbG93IERQRlAgdmFsdWUgb2YgQSBmcm9tIHRoZSBsb3cgdmFsdWUgb2YgQi4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIHJlc3VsdCA9IChfX3YyZGYpIF9fQTsKICByZXN1bHQgWzBdID0gKChfX3YyZGYpIF9fQilbMF07CiAgcmV0dXJuIChfX20xMjhkKSByZXN1bHQ7Cn0KCi8qIExvYWQgdHdvIERQRlAgdmFsdWVzIGZyb20gUC4gIFRoZSBhZGRyZXNzIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkX3BkIChkb3VibGUgY29uc3QgKl9fUCkKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2xkKDAsIChfX3YxNnF1KilfX1ApKTsKfQoKLyogTG9hZCB0d28gRFBGUCB2YWx1ZXMgZnJvbSBQLiAgVGhlIGFkZHJlc3MgbmVlZCBub3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkdV9wZCAoZG91YmxlIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKHZlY192c3hfbGQoMCwgX19QKSk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGFsbCB0d28gZWxlbWVudHMgZXF1YWwgdG8gKlAuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWQxX3BkIChkb3VibGUgY29uc3QgKl9fUCkKewogIHJldHVybiAodmVjX3NwbGF0cyAoKl9fUCkpOwp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBlbGVtZW50IDAgYXMgKlAgYW5kIHRoZSByZXN0IHplcm8uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRfc2QgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIF9tbV9zZXRfc2QgKCpfX1ApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRfcGQxIChkb3VibGUgY29uc3QgKl9fUCkKewogIHJldHVybiBfbW1fbG9hZDFfcGQgKF9fUCk7Cn0KCi8qIExvYWQgdHdvIERQRlAgdmFsdWVzIGluIHJldmVyc2Ugb3JkZXIuICBUaGUgYWRkcmVzcyBtdXN0IGJlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRyX3BkIChkb3VibGUgY29uc3QgKl9fUCkKewogIF9fdjJkZiBfX3RtcCA9IF9tbV9sb2FkX3BkIChfX1ApOwogIHJldHVybiAoX19tMTI4ZCl2ZWNfeHhwZXJtZGkgKF9fdG1wLCBfX3RtcCwgMik7Cn0KCi8qIFN0b3JlIHR3byBEUEZQIHZhbHVlcy4gIFRoZSBhZGRyZXNzIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZV9wZCAoZG91YmxlICpfX1AsIF9fbTEyOGQgX19BKQp7CiAgdmVjX3N0KChfX3YxNnF1KV9fQSwgMCwgKF9fdjE2cXUqKV9fUCk7Cn0KCi8qIFN0b3JlIHR3byBEUEZQIHZhbHVlcy4gIFRoZSBhZGRyZXNzIG5lZWQgbm90IGJlIDE2LWJ5dGUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmV1X3BkIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICAqKF9fbTEyOGRfdSAqKV9fUCA9IF9fQTsKfQoKLyogU3RvcmVzIHRoZSBsb3dlciBEUEZQIHZhbHVlLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZV9zZCAoZG91YmxlICpfX1AsIF9fbTEyOGQgX19BKQp7CiAgKl9fUCA9ICgoX192MmRmKV9fQSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBkb3VibGUgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzZF9mNjQgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuICgoX192MmRmKV9fQSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVsX3BkIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICBfbW1fc3RvcmVfc2QgKF9fUCwgX19BKTsKfQoKLyogU3RvcmVzIHRoZSB1cHBlciBEUEZQIHZhbHVlLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZWhfcGQgKGRvdWJsZSAqX19QLCBfX20xMjhkIF9fQSkKewogICpfX1AgPSAoKF9fdjJkZilfX0EpWzFdOwp9Ci8qIFN0b3JlIHRoZSBsb3dlciBEUEZQIHZhbHVlIGFjcm9zcyB0d28gd29yZHMuCiAgIFRoZSBhZGRyZXNzIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZTFfcGQgKGRvdWJsZSAqX19QLCBfX20xMjhkIF9fQSkKewogIF9tbV9zdG9yZV9wZCAoX19QLCB2ZWNfc3BsYXQgKF9fQSwgMCkpOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3BkMSAoZG91YmxlICpfX1AsIF9fbTEyOGQgX19BKQp7CiAgX21tX3N0b3JlMV9wZCAoX19QLCBfX0EpOwp9CgovKiBTdG9yZSB0d28gRFBGUCB2YWx1ZXMgaW4gcmV2ZXJzZSBvcmRlci4gIFRoZSBhZGRyZXNzIG11c3QgYmUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVyX3BkIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICBfbW1fc3RvcmVfcGQgKF9fUCwgdmVjX3h4cGVybWRpIChfX0EsIF9fQSwgMikpOwp9CgovKiBJbnRlbCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2kxMjhfc2k2NCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKChfX3YyZGkpX19BKVswXTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTEyOF9zaTY0eCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKChfX3YyZGkpX19BKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgKChfX3YyZGYpX19BICsgKF9fdjJkZilfX0IpOwp9CgovKiBBZGQgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gKDY0LWJpdCkgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpbgogICBhIGFuZCBiLCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZSBsb3dlciBlbGVtZW50IG9mIGRzdCwgYW5kIGNvcHkKICAgdGhlIHVwcGVyIGVsZW1lbnQgZnJvbSBhIHRvIHRoZSB1cHBlciBlbGVtZW50IG9mIGRzdC4gKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fQVswXSA9IF9fQVswXSArIF9fQlswXTsKICByZXR1cm4gKF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3ViX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpICgoX192MmRmKV9fQSAtIChfX3YyZGYpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fQVswXSA9IF9fQVswXSAtIF9fQlswXTsKICByZXR1cm4gKF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpICgoX192MmRmKV9fQSAqIChfX3YyZGYpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fQVswXSA9IF9fQVswXSAqIF9fQlswXTsKICByZXR1cm4gKF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fZGl2X3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpICgoX192MmRmKV9fQSAvIChfX3YyZGYpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9kaXZfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fQVswXSA9IF9fQVswXSAvIF9fQlswXTsKICByZXR1cm4gKF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3FydF9wZCAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKHZlY19zcXJ0IChfX0EpKTsKfQoKLyogUmV0dXJuIHBhaXIge3NxcnQgKEJbMF0pLCBBWzFdfS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3FydF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGM7CiAgYyA9IHZlY19zcXJ0ICgoX192MmRmKSBfbW1fc2V0MV9wZCAoX19CWzBdKSk7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoY1swXSwgX19BWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAodmVjX21pbiAoX19BLCBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiBhLCBiLCBjOwogIGEgPSB2ZWNfc3BsYXRzIChfX0FbMF0pOwogIGIgPSB2ZWNfc3BsYXRzIChfX0JbMF0pOwogIGMgPSB2ZWNfbWluIChhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21heF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICh2ZWNfbWF4IChfX0EsIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21heF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgYyA9IHZlY19tYXggKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZXFfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGVxICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGx0X3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBsdCAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsZV9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wbGUgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3RfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGd0ICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGdlX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBnZSAoKF9fdjJkZikgX19BLChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5lcV9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIHRlbXAgPSAoX192MmRmKSB2ZWNfY21wZXEgKChfX3YyZGYpIF9fQSwgKF9fdjJkZilfX0IpOwogIHJldHVybiAoKF9fbTEyOGQpdmVjX25vciAodGVtcCwgdGVtcCkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5sdF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wZ2UgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmxlX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBndCAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZ3RfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGxlICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5nZV9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wbHQgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wb3JkX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3YyZHUgYywgZDsKICAvKiBDb21wYXJlIGFnYWluc3Qgc2VsZiB3aWxsIHJldHVybiBmYWxzZSAoMCdzKSBpZiBOQU4uICAqLwogIGMgPSAoX192MmR1KXZlY19jbXBlcSAoX19BLCBfX0EpOwogIGQgPSAoX192MmR1KXZlY19jbXBlcSAoX19CLCBfX0IpOwojZWxzZQogIF9fdjJkdSBhLCBiOwogIF9fdjJkdSBjLCBkOwogIGNvbnN0IF9fdjJkdSBkb3VibGVfZXhwX21hc2sgID0gezB4N2ZmMDAwMDAwMDAwMDAwMCwgMHg3ZmYwMDAwMDAwMDAwMDAwfTsKICBhID0gKF9fdjJkdSl2ZWNfYWJzICgoX192MmRmKV9fQSk7CiAgYiA9IChfX3YyZHUpdmVjX2FicyAoKF9fdjJkZilfX0IpOwogIGMgPSAoX192MmR1KXZlY19jbXBndCAoZG91YmxlX2V4cF9tYXNrLCBhKTsKICBkID0gKF9fdjJkdSl2ZWNfY21wZ3QgKGRvdWJsZV9leHBfbWFzaywgYik7CiNlbmRpZgogIC8qIEEgIT0gTkFOIGFuZCBCICE9IE5BTi4gICovCiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfYW5kKGMsIGQpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXB1bm9yZF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiNpZiBfQVJDSF9QV1I4CiAgX192MmR1IGMsIGQ7CiAgLyogQ29tcGFyZSBhZ2FpbnN0IHNlbGYgd2lsbCByZXR1cm4gZmFsc2UgKDAncykgaWYgTkFOLiAgKi8KICBjID0gKF9fdjJkdSl2ZWNfY21wZXEgKChfX3YyZGYpX19BLCAoX192MmRmKV9fQSk7CiAgZCA9IChfX3YyZHUpdmVjX2NtcGVxICgoX192MmRmKV9fQiwgKF9fdjJkZilfX0IpOwogIC8qIEEgPT0gTkFOIE9SIEIgPT0gTkFOIGNvbnZlcnRzIHRvbzoKICAgICBOT1QoQSAhPSBOQU4pIE9SIE5PVChCICE9IE5BTikuICAqLwogIGMgPSB2ZWNfbm9yIChjLCBjKTsKICByZXR1cm4gKChfX20xMjhkKXZlY19vcmMoYywgZCkpOwojZWxzZQogIF9fdjJkdSBjLCBkOwogIC8qIENvbXBhcmUgYWdhaW5zdCBzZWxmIHdpbGwgcmV0dXJuIGZhbHNlICgwJ3MpIGlmIE5BTi4gICovCiAgYyA9IChfX3YyZHUpdmVjX2NtcGVxICgoX192MmRmKV9fQSwgKF9fdjJkZilfX0EpOwogIGQgPSAoX192MmR1KXZlY19jbXBlcSAoKF9fdjJkZilfX0IsIChfX3YyZGYpX19CKTsKICAvKiBDb252ZXJ0IHRoZSB0cnVlICgnMSdzKSBpcyBOQU4uICAqLwogIGMgPSB2ZWNfbm9yIChjLCBjKTsKICBkID0gdmVjX25vciAoZCwgZCk7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfb3IoYywgZCkpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lICBfX20xMjhkICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX3NkKF9fbTEyOGQgIF9fQSwgX19tMTI4ZCAgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVlNYIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGxvd2VyIGRvdWJsZSkKICAgICByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAgIChmcm9tIHRoZSB1cHBlciBkb3VibGUgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZG91YmxlCiAgICAgYmVmb3JlIHdlIGRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgYyA9IChfX3YyZGYpIHZlY19jbXBlcShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBkb3VibGUgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICAgZG91YmxlIGZyb20gX19BLiAgKi8KICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGx0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gKF9fdjJkZikgdmVjX2NtcGx0KGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbGVfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiBhLCBiLCBjOwogIGEgPSB2ZWNfc3BsYXRzIChfX0FbMF0pOwogIGIgPSB2ZWNfc3BsYXRzIChfX0JbMF0pOwogIGMgPSAoX192MmRmKSB2ZWNfY21wbGUoYSwgYik7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoY1swXSwgX19BWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBndF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgYyA9IChfX3YyZGYpIHZlY19jbXBndChhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGdlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gKF9fdjJkZikgdmVjX2NtcGdlKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmVxX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gKF9fdjJkZikgdmVjX2NtcGVxKGEsIGIpOwogIGMgPSB2ZWNfbm9yIChjLCBjKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5sdF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgLyogTm90IGxlc3MgdGhhbiBpcyBqdXN0IGdyZWF0ZXIgdGhhbiBvciBlcXVhbC4gICovCiAgYyA9IChfX3YyZGYpIHZlY19jbXBnZShhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5sZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgLyogTm90IGxlc3MgdGhhbiBvciBlcXVhbCBpcyBqdXN0IGdyZWF0ZXIgdGhhbi4gICovCiAgYyA9IChfX3YyZGYpIHZlY19jbXBnZShhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5ndF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgLyogTm90IGdyZWF0ZXIgdGhhbiBpcyBqdXN0IGxlc3MgdGhhbiBvciBlcXVhbC4gICovCiAgYyA9IChfX3YyZGYpIHZlY19jbXBsZShhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5nZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgLyogTm90IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBpcyBqdXN0IGxlc3MgdGhhbi4gICovCiAgYyA9IChfX3YyZGYpIHZlY19jbXBsdChhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG9yZF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIHI7CiAgciA9IChfX3YyZGYpX21tX2NtcG9yZF9wZCAodmVjX3NwbGF0cyAoX19BWzBdKSwgdmVjX3NwbGF0cyAoX19CWzBdKSk7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoclswXSwgKChfX3YyZGYpX19BKVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wdW5vcmRfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiByOwogIHIgPSBfbW1fY21wdW5vcmRfcGQgKHZlY19zcGxhdHMgKF9fQVswXSksIHZlY19zcGxhdHMgKF9fQlswXSkpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKHJbMF0sIF9fQVsxXSk7Cn0KCi8qIEZJWE1FCiAgIFRoZSBfX21tX2NvbWk/P19zZCBhbmQgX19tbV91Y29taT8/X3NkIGltcGxlbWVudGF0aW9ucyBiZWxvdyBhcmUKICAgZXhhY3RseSB0aGUgc2FtZSBiZWNhdXNlIEdDQyBmb3IgUG93ZXJQQyBvbmx5IGdlbmVyYXRlcyB1bm9yZGVyZWQKICAgY29tcGFyZXMgKHNjYWxhciBhbmQgdmVjdG9yKS4KICAgVGVjaG5pY2FsbHkgX19tbV9jb21pZXFfc3AgZXQgYWxsIHNob3VsZCBiZSB1c2luZyB0aGUgb3JkZXJlZAogICBjb21wYXJlIGFuZCBzaWduYWwgZm9yIFFOYU5zLiAgVGhlIF9fbW1fdWNvbWllcV9zZCBldCBhbGwgc2hvdWxkCiAgIGJlIE9LLiAgICovCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pZXFfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19BWzBdID09IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pbHRfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19BWzBdIDwgX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWlsZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPD0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWlndF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPiBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWdlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA+PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taW5lcV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gIT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pZXFfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewoJcmV0dXJuIChfX0FbMF0gPT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pbHRfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewoJcmV0dXJuIChfX0FbMF0gPCBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWlsZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CglyZXR1cm4gKF9fQVswXSA8PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWlndF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CglyZXR1cm4gKF9fQVswXSA+IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWdlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKCXJldHVybiAoX19BWzBdID49IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taW5lcV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gIT0gX19CWzBdKTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIG9mIFFpLCB3aGVyZSBpIGlzIHRoZSBlbGVtZW50IG51bWJlci4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X2VwaTY0eCAobG9uZyBsb25nIF9fcTEsIGxvbmcgbG9uZyBfX3EwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjJkaSl7IF9fcTAsIF9fcTEgfTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfZXBpNjQgKF9fbTY0IF9fcTEsICBfX202NCBfX3EwKQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpNjR4ICgobG9uZyBsb25nKV9fcTEsIChsb25nIGxvbmcpX19xMCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X2VwaTMyIChpbnQgX19xMywgaW50IF9fcTIsIGludCBfX3ExLCBpbnQgX19xMCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y0c2kpeyBfX3EwLCBfX3ExLCBfX3EyLCBfX3EzIH07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X2VwaTE2IChzaG9ydCBfX3E3LCBzaG9ydCBfX3E2LCBzaG9ydCBfX3E1LCBzaG9ydCBfX3E0LAoJICAgICAgIHNob3J0IF9fcTMsIHNob3J0IF9fcTIsIHNob3J0IF9fcTEsIHNob3J0IF9fcTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192OGhpKXsKICAgIF9fcTAsIF9fcTEsIF9fcTIsIF9fcTMsIF9fcTQsIF9fcTUsIF9fcTYsIF9fcTcgfTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfZXBpOCAoY2hhciBfX3ExNSwgY2hhciBfX3ExNCwgY2hhciBfX3ExMywgY2hhciBfX3ExMiwKCSAgICAgIGNoYXIgX19xMTEsIGNoYXIgX19xMTAsIGNoYXIgX19xMDksIGNoYXIgX19xMDgsCgkgICAgICBjaGFyIF9fcTA3LCBjaGFyIF9fcTA2LCBjaGFyIF9fcTA1LCBjaGFyIF9fcTA0LAoJICAgICAgY2hhciBfX3EwMywgY2hhciBfX3EwMiwgY2hhciBfX3EwMSwgY2hhciBfX3EwMCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3YxNnFpKXsKICAgIF9fcTAwLCBfX3EwMSwgX19xMDIsIF9fcTAzLCBfX3EwNCwgX19xMDUsIF9fcTA2LCBfX3EwNywKICAgIF9fcTA4LCBfX3EwOSwgX19xMTAsIF9fcTExLCBfX3ExMiwgX19xMTMsIF9fcTE0LCBfX3ExNQogIH07Cn0KCi8qIFNldCBhbGwgb2YgdGhlIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgdG8gQS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0MV9lcGk2NHggKGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NHggKF9fQSwgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXQxX2VwaTY0IChfX202NCBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NCAoX19BLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfZXBpMzIgKGludCBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGkzMiAoX19BLCBfX0EsIF9fQSwgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXQxX2VwaTE2IChzaG9ydCBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGkxNiAoX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfZXBpOCAoY2hhciBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGk4IChfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwKCQkgICAgICAgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EpOwp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igb2YgUWksIHdoZXJlIGkgaXMgdGhlIGVsZW1lbnQgbnVtYmVyLgogICBUaGUgcGFyYW1ldGVyIG9yZGVyIGlzIHJldmVyc2VkIGZyb20gdGhlIF9tbV9zZXRfZXBpKiBmdW5jdGlvbnMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHJfZXBpNjQgKF9fbTY0IF9fcTAsIF9fbTY0IF9fcTEpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NCAoX19xMSwgX19xMCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0cl9lcGkzMiAoaW50IF9fcTAsIGludCBfX3ExLCBpbnQgX19xMiwgaW50IF9fcTMpCnsKICByZXR1cm4gX21tX3NldF9lcGkzMiAoX19xMywgX19xMiwgX19xMSwgX19xMCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0cl9lcGkxNiAoc2hvcnQgX19xMCwgc2hvcnQgX19xMSwgc2hvcnQgX19xMiwgc2hvcnQgX19xMywKCSAgICAgICAgc2hvcnQgX19xNCwgc2hvcnQgX19xNSwgc2hvcnQgX19xNiwgc2hvcnQgX19xNykKewogIHJldHVybiBfbW1fc2V0X2VwaTE2IChfX3E3LCBfX3E2LCBfX3E1LCBfX3E0LCBfX3EzLCBfX3EyLCBfX3ExLCBfX3EwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRyX2VwaTggKGNoYXIgX19xMDAsIGNoYXIgX19xMDEsIGNoYXIgX19xMDIsIGNoYXIgX19xMDMsCgkgICAgICAgY2hhciBfX3EwNCwgY2hhciBfX3EwNSwgY2hhciBfX3EwNiwgY2hhciBfX3EwNywKCSAgICAgICBjaGFyIF9fcTA4LCBjaGFyIF9fcTA5LCBjaGFyIF9fcTEwLCBjaGFyIF9fcTExLAoJICAgICAgIGNoYXIgX19xMTIsIGNoYXIgX19xMTMsIGNoYXIgX19xMTQsIGNoYXIgX19xMTUpCnsKICByZXR1cm4gX21tX3NldF9lcGk4IChfX3ExNSwgX19xMTQsIF9fcTEzLCBfX3ExMiwgX19xMTEsIF9fcTEwLCBfX3EwOSwgX19xMDgsCgkJICAgICAgIF9fcTA3LCBfX3EwNiwgX19xMDUsIF9fcTA0LCBfX3EwMywgX19xMDIsIF9fcTAxLCBfX3EwMCk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGVsZW1lbnQgMCBhcyAqUCBhbmQgdGhlIHJlc3QgemVyby4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZF9zaTEyOCAoX19tMTI4aSBjb25zdCAqX19QKQp7CiAgcmV0dXJuICpfX1A7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZHVfc2kxMjggKF9fbTEyOGlfdSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSAodmVjX3ZzeF9sZCgwLCAoc2lnbmVkIGludCBjb25zdCAqKV9fUCkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRsX2VwaTY0IChfX20xMjhpX3UgY29uc3QgKl9fUCkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0ICgoX19tNjQpMExMLCAqKF9fbTY0ICopX19QKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZV9zaTEyOCAoX19tMTI4aSAqX19QLCBfX20xMjhpIF9fQikKewogIHZlY19zdCAoKF9fdjE2cXUpIF9fQiwgMCwgKF9fdjE2cXUqKV9fUCk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmV1X3NpMTI4IChfX20xMjhpX3UgKl9fUCwgX19tMTI4aSBfX0IpCnsKICAqX19QID0gX19COwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlbF9lcGk2NCAoX19tMTI4aV91ICpfX1AsIF9fbTEyOGkgX19CKQp7CiAgKihsb25nIGxvbmcgKilfX1AgPSAoKF9fdjJkaSlfX0IpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlcGk2NF9waTY0IChfX20xMjhpX3UgX19CKQp7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZGkpX19CKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZwaTY0X2VwaTY0IChfX202NCBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NCAoKF9fbTY0KTBMTCwgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlX2VwaTY0IChfX20xMjhpIF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0ICgoX19tNjQpMExMLCAoX19tNjQpX19BWzBdKTsKfQoKLyogQ3JlYXRlIGFuIHVuZGVmaW5lZCB2ZWN0b3IuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VuZGVmaW5lZF9zaTEyOCAodm9pZCkKewogIF9fbTEyOGkgX19ZID0gX19ZOwogIHJldHVybiBfX1k7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciBvZiB6ZXJvcy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0emVyb19zaTEyOCAodm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y0c2kpeyAwLCAwLCAwLCAwIH07Cn0KCiNpZmRlZiBfQVJDSF9QV1I4CmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0ZXBpMzJfcGQgKF9fbTEyOGkgX19BKQp7CiAgX192MmRpIHZhbDsKICAvKiBGb3IgTEUgbmVlZCB0byBnZW5lcmF0ZSBWZWN0b3IgVW5wYWNrIExvdyBTaWduZWQgV29yZC4KICAgICBXaGljaCBpcyBnZW5lcmF0ZWQgZnJvbSB1bnBhY2toLiAgKi8KICB2YWwgPSAoX192MmRpKXZlY191bnBhY2toICgoX192NHNpKV9fQSk7CgogIHJldHVybiAoX19tMTI4ZCl2ZWNfY3RmICh2YWwsIDApOwp9CiNlbmRpZgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dGVwaTMyX3BzIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY3RmKChfX3Y0c2kpX19BLCAwKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cGRfZXBpMzIgKF9fbTEyOGQgX19BKQp7CiAgX192MmRmIHJvdW5kZWQgPSB2ZWNfcmludCAoX19BKTsKICBfX3Y0c2kgcmVzdWx0LCB0ZW1wOwogIGNvbnN0IF9fdjRzaSB2emVybyA9CiAgICB7IDAsIDAsIDAsIDAgfTsKCiAgLyogVlNYIFZlY3RvciB0cnVuY2F0ZSBEb3VibGUtUHJlY2lzaW9uIHRvIGludGVnZXIgYW5kIENvbnZlcnQgdG8KICAgU2lnbmVkIEludGVnZXIgV29yZCBmb3JtYXQgd2l0aCBTYXR1cmF0ZS4gICovCiAgX19hc21fXygKICAgICAgInh2Y3ZkcHN4d3MgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAodGVtcCkKICAgICAgOiAid2EiIChyb3VuZGVkKQogICAgICA6ICk7CgojaWZkZWYgX0FSQ0hfUFdSOAogIHRlbXAgPSB2ZWNfbWVyZ2VvICh0ZW1wLCB0ZW1wKTsKICByZXN1bHQgPSAoX192NHNpKSB2ZWNfdnBrdWR1bSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgdGVtcCwKCQkJCSAoX192ZWN0b3IgbG9uZyBsb25nKSB2emVybyk7CiNlbHNlCiAgewogICAgY29uc3QgX192MTZxdSBwa3Blcm0gPSB7MHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwKCTB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYgfTsKICAgIHJlc3VsdCA9IChfX3Y0c2kpIHZlY19wZXJtICgoX192MTZxdSkgdGVtcCwgKF9fdjE2cXUpIHZ6ZXJvLCBwa3Blcm0pOwogIH0KI2VuZGlmCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBkX3BpMzIgKF9fbTEyOGQgX19BKQp7CiAgX19tMTI4aSByZXN1bHQgPSBfbW1fY3Z0cGRfZXBpMzIoX19BKTsKCiAgcmV0dXJuIChfX202NCkgcmVzdWx0WzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cGRfcHMgKF9fbTEyOGQgX19BKQp7CiAgX192NHNmIHJlc3VsdDsKICBfX3Y0c2kgdGVtcDsKICBjb25zdCBfX3Y0c2kgdnplcm8gPSB7IDAsIDAsIDAsIDAgfTsKCiAgX19hc21fXygKICAgICAgInh2Y3ZkcHNwICV4MCwleDEiCiAgICAgIDogIj13YSIgKHRlbXApCiAgICAgIDogIndhIiAoX19BKQogICAgICA6ICk7CgojaWZkZWYgX0FSQ0hfUFdSOAogIHRlbXAgPSB2ZWNfbWVyZ2VvICh0ZW1wLCB0ZW1wKTsKICByZXN1bHQgPSAoX192NHNmKSB2ZWNfdnBrdWR1bSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgdGVtcCwKCQkJCSAoX192ZWN0b3IgbG9uZyBsb25nKSB2emVybyk7CiNlbHNlCiAgewogICAgY29uc3QgX192MTZxdSBwa3Blcm0gPSB7MHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwKCTB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYgfTsKICAgIHJlc3VsdCA9IChfX3Y0c2YpIHZlY19wZXJtICgoX192MTZxdSkgdGVtcCwgKF9fdjE2cXUpIHZ6ZXJvLCBwa3Blcm0pOwogIH0KI2VuZGlmCiAgcmV0dXJuICgoX19tMTI4KXJlc3VsdCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHBkX2VwaTMyIChfX20xMjhkIF9fQSkKewogIF9fdjRzaSByZXN1bHQ7CiAgX192NHNpIHRlbXA7CiAgY29uc3QgX192NHNpIHZ6ZXJvID0geyAwLCAwLCAwLCAwIH07CgogIC8qIFZTWCBWZWN0b3IgdHJ1bmNhdGUgRG91YmxlLVByZWNpc2lvbiB0byBpbnRlZ2VyIGFuZCBDb252ZXJ0IHRvCiAgIFNpZ25lZCBJbnRlZ2VyIFdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUuICAqLwogIF9fYXNtX18oCiAgICAgICJ4dmN2ZHBzeHdzICV4MCwleDEiCiAgICAgIDogIj13YSIgKHRlbXApCiAgICAgIDogIndhIiAoX19BKQogICAgICA6ICk7CgojaWZkZWYgX0FSQ0hfUFdSOAogIHRlbXAgPSB2ZWNfbWVyZ2VvICh0ZW1wLCB0ZW1wKTsKICByZXN1bHQgPSAoX192NHNpKSB2ZWNfdnBrdWR1bSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgdGVtcCwKCQkJCSAoX192ZWN0b3IgbG9uZyBsb25nKSB2emVybyk7CiNlbHNlCiAgewogICAgY29uc3QgX192MTZxdSBwa3Blcm0gPSB7MHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwKCTB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYgfTsKICAgIHJlc3VsdCA9IChfX3Y0c2kpIHZlY19wZXJtICgoX192MTZxdSkgdGVtcCwgKF9fdjE2cXUpIHZ6ZXJvLCBwa3Blcm0pOwogIH0KI2VuZGlmCgogIHJldHVybiAoKF9fbTEyOGkpIHJlc3VsdCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHRwZF9waTMyIChfX20xMjhkIF9fQSkKewogIF9fbTEyOGkgcmVzdWx0ID0gX21tX2N2dHRwZF9lcGkzMiAoX19BKTsKCiAgcmV0dXJuIChfX202NCkgcmVzdWx0WzBdOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2kxMjhfc2kzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKChfX3Y0c2kpX19BKVswXTsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwaTMyX3BkIChfX202NCBfX0EpCnsKICBfX3Y0c2kgdGVtcDsKICBfX3YyZGkgdG1wMjsKICBfX3YyZGYgcmVzdWx0OwoKICB0ZW1wID0gKF9fdjRzaSl2ZWNfc3BsYXRzIChfX0EpOwogIHRtcDIgPSAoX192MmRpKXZlY191bnBhY2tsICh0ZW1wKTsKICByZXN1bHQgPSB2ZWNfY3RmICgoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykgdG1wMiwgMCk7CiAgcmV0dXJuIChfX20xMjhkKXJlc3VsdDsKfQojZW5kaWYKCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cHNfZXBpMzIgKF9fbTEyOCBfX0EpCnsKICBfX3Y0c2Ygcm91bmRlZDsKICBfX3Y0c2kgcmVzdWx0OwoKICByb3VuZGVkID0gdmVjX3JpbnQoKF9fdjRzZikgX19BKTsKICByZXN1bHQgPSB2ZWNfY3RzIChyb3VuZGVkLCAwKTsKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0cHNfZXBpMzIgKF9fbTEyOCBfX0EpCnsKICBfX3Y0c2kgcmVzdWx0OwoKICByZXN1bHQgPSB2ZWNfY3RzICgoX192NHNmKSBfX0EsIDApOwogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBzX3BkIChfX20xMjggX19BKQp7CiAgLyogQ2hlY2sgaWYgdmVjX2RvdWJsZWggaXMgZGVmaW5lZCBieSA8YWx0aXZlYy5oPi4gSWYgc28gdXNlIHRoYXQuICovCiNpZmRlZiB2ZWNfZG91YmxlaAogIHJldHVybiAoX19tMTI4ZCkgdmVjX2RvdWJsZWggKChfX3Y0c2YpX19BKTsKI2Vsc2UKICAvKiBPdGhlcndpc2UgdGhlIGNvbXBpbGVyIGlzIG5vdCBjdXJyZW50IGFuZCBzbyBuZWVkIHRvIGdlbmVyYXRlIHRoZQogICAgIGVxdWl2YWxlbnQgY29kZS4gICovCiAgX192NHNmIGEgPSAoX192NHNmKV9fQTsKICBfX3Y0c2YgdGVtcDsKICBfX3YyZGYgcmVzdWx0OwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAvKiBUaGUgaW5wdXQgZmxvYXQgdmFsdWVzIGFyZSBpbiBlbGVtZW50cyB7WzBdLCBbMV19IGJ1dCB0aGUgY29udmVydAogICAgIGluc3RydWN0aW9uIG5lZWRzIHRoZW0gaW4gZWxlbWVudHMge1sxXSwgWzNdfSwgU28gd2UgdXNlIHR3bwogICAgIHNoaWZ0IGxlZnQgZG91YmxlIHZlY3RvciB3b3JkIGltbWVkaWF0ZXMgdG8gZ2V0IHRoZSBlbGVtZW50cwogICAgIGxpbmVkIHVwLiAgKi8KICB0ZW1wID0gX19idWlsdGluX3ZzeF94eHNsZHdpIChhLCBhLCAzKTsKICB0ZW1wID0gX19idWlsdGluX3ZzeF94eHNsZHdpIChhLCB0ZW1wLCAyKTsKI2Vsc2UKICAvKiBUaGUgaW5wdXQgZmxvYXQgdmFsdWVzIGFyZSBpbiBlbGVtZW50cyB7WzBdLCBbMV19IGJ1dCB0aGUgY29udmVydAogICAgIGluc3RydWN0aW9uIG5lZWRzIHRoZW0gaW4gZWxlbWVudHMge1swXSwgWzJdfSwgU28gd2UgdXNlIHR3bwogICAgIHNoaWZ0IGxlZnQgZG91YmxlIHZlY3RvciB3b3JkIGltbWVkaWF0ZXMgdG8gZ2V0IHRoZSBlbGVtZW50cwogICAgIGxpbmVkIHVwLiAgKi8KICB0ZW1wID0gdmVjX3ZtcmdodyAoYSwgYSk7CiNlbmRpZgogIF9fYXNtX18oCiAgICAgICIgeHZjdnNwZHAgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAocmVzdWx0KQogICAgICA6ICJ3YSIgKHRlbXApCiAgICAgIDogKTsKICByZXR1cm4gKF9fbTEyOGQpIHJlc3VsdDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzZF9zaTMyIChfX20xMjhkIF9fQSkKewogIF9fdjJkZiByb3VuZGVkID0gdmVjX3JpbnQoKF9fdjJkZikgX19BKTsKICBpbnQgcmVzdWx0ID0gKChfX3YyZGYpcm91bmRlZClbMF07CgogIHJldHVybiByZXN1bHQ7Cn0KLyogSW50ZWwgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNkX3NpNjQgKF9fbTEyOGQgX19BKQp7CiAgX192MmRmIHJvdW5kZWQgPSB2ZWNfcmludCAoKF9fdjJkZikgX19BICk7CiAgbG9uZyBsb25nIHJlc3VsdCA9ICgoX192MmRmKSByb3VuZGVkKVswXTsKCiAgcmV0dXJuIHJlc3VsdDsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzZF9zaTY0eCAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gX21tX2N2dHNkX3NpNjQgKChfX3YyZGYpX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHRzZF9zaTMyIChfX20xMjhkIF9fQSkKewogIGludCByZXN1bHQgPSAoKF9fdjJkZilfX0EpWzBdOwoKICByZXR1cm4gcmVzdWx0Owp9CgovKiBJbnRlbCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHNkX3NpNjQgKF9fbTEyOGQgX19BKQp7CiAgbG9uZyBsb25nIHJlc3VsdCA9ICgoX192MmRmKV9fQSlbMF07CgogIHJldHVybiByZXN1bHQ7Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHNkX3NpNjR4IChfX20xMjhkIF9fQSkKewogIHJldHVybiBfbW1fY3Z0dHNkX3NpNjQgKF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzZF9zcyAoX19tMTI4IF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3Y0c2YgcmVzdWx0ID0gKF9fdjRzZilfX0E7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX3Y0c2YgdGVtcF9zOwogIC8qIENvcHkgZG91YmxlIGVsZW1lbnRbMF0gdG8gZWxlbWVudCBbMV0gZm9yIGNvbnZlcnNpb24uICAqLwogIF9fdjJkZiB0ZW1wX2IgPSB2ZWNfc3BsYXQoKF9fdjJkZilfX0IsIDApOwoKICAvKiBQcmUtcm90YXRlIF9fQSBsZWZ0IDMgKGxvZ2ljYWxseSByaWdodCAxKSBlbGVtZW50cy4gICovCiAgcmVzdWx0ID0gX19idWlsdGluX3ZzeF94eHNsZHdpIChyZXN1bHQsIHJlc3VsdCwgMyk7CiAgLyogQ29udmVydCBkb3VibGUgdG8gc2luZ2xlIGZsb2F0IHNjYWxhciBpbiBhIHZlY3Rvci4gICovCiAgX19hc21fXygKICAgICAgInhzY3ZkcHNwICV4MCwleDEiCiAgICAgIDogIj13YSIgKHRlbXBfcykKICAgICAgOiAid2EiICh0ZW1wX2IpCiAgICAgIDogKTsKICAvKiBTaGlmdCB0aGUgcmVzdWx0aW5nIHNjYWxhciBpbnRvIHZlY3RvciBlbGVtZW50IFswXS4gICovCiAgcmVzdWx0ID0gX19idWlsdGluX3ZzeF94eHNsZHdpIChyZXN1bHQsIHRlbXBfcywgMSk7CiNlbHNlCiAgcmVzdWx0IFswXSA9ICgoX192MmRmKV9fQilbMF07CiNlbmRpZgogIHJldHVybiAoX19tMTI4KSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2kzMl9zZCAoX19tMTI4ZCBfX0EsIGludCBfX0IpCnsKICBfX3YyZGYgcmVzdWx0ID0gKF9fdjJkZilfX0E7CiAgZG91YmxlIGRiID0gX19COwogIHJlc3VsdCBbMF0gPSBkYjsKICByZXR1cm4gKF9fbTEyOGQpcmVzdWx0Owp9CgovKiBJbnRlbCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpNjRfc2QgKF9fbTEyOGQgX19BLCBsb25nIGxvbmcgX19CKQp7CiAgX192MmRmIHJlc3VsdCA9IChfX3YyZGYpX19BOwogIGRvdWJsZSBkYiA9IF9fQjsKICByZXN1bHQgWzBdID0gZGI7CiAgcmV0dXJuIChfX20xMjhkKXJlc3VsdDsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2k2NHhfc2QgKF9fbTEyOGQgX19BLCBsb25nIGxvbmcgX19CKQp7CiAgcmV0dXJuIF9tbV9jdnRzaTY0X3NkIChfX0EsIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c3Nfc2QgKF9fbTEyOGQgX19BLCBfX20xMjggX19CKQp7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIC8qIFVzZSBzcGxhdCB0byBtb3ZlIGVsZW1lbnQgWzBdIGludG8gcG9zaXRpb24gZm9yIHRoZSBjb252ZXJ0LiAqLwogIF9fdjRzZiB0ZW1wID0gdmVjX3NwbGF0ICgoX192NHNmKV9fQiwgMCk7CiAgX192MmRmIHJlczsKICAvKiBDb252ZXJ0IHNpbmdsZSBmbG9hdCBzY2FsYXIgdG8gZG91YmxlIGluIGEgdmVjdG9yLiAgKi8KICBfX2FzbV9fKAogICAgICAieHNjdnNwZHAgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAocmVzKQogICAgICA6ICJ3YSIgKHRlbXApCiAgICAgIDogKTsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19tZXJnZWwgKHJlcywgKF9fdjJkZilfX0EpOwojZWxzZQogIF9fdjJkZiByZXMgPSAoX192MmRmKV9fQTsKICByZXMgWzBdID0gKChfX3Y0c2YpX19CKSBbMF07CiAgcmV0dXJuIChfX20xMjhkKSByZXM7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBjb25zdCBpbnQgX19tYXNrKQp7CiAgX192ZWN0b3IgZG91YmxlIHJlc3VsdDsKICBjb25zdCBpbnQgbGl0bXNrID0gX19tYXNrICYgMHgzOwoKICBpZiAobGl0bXNrID09IDApCiAgICByZXN1bHQgPSB2ZWNfbWVyZ2VoIChfX0EsIF9fQik7CiNpZiBfX0dOVUNfXyA8IDYKICBlbHNlIGlmIChsaXRtc2sgPT0gMSkKICAgIHJlc3VsdCA9IHZlY194eHBlcm1kaSAoX19CLCBfX0EsIDIpOwogIGVsc2UgaWYgKGxpdG1zayA9PSAyKQogICAgcmVzdWx0ID0gdmVjX3h4cGVybWRpIChfX0IsIF9fQSwgMSk7CiNlbHNlCiAgZWxzZSBpZiAobGl0bXNrID09IDEpCiAgICByZXN1bHQgPSB2ZWNfeHhwZXJtZGkgKF9fQSwgX19CLCAyKTsKICBlbHNlIGlmIChsaXRtc2sgPT0gMikKICAgIHJlc3VsdCA9IHZlY194eHBlcm1kaSAoX19BLCBfX0IsIDEpOwojZW5kaWYKICBlbHNlCiAgICByZXN1bHQgPSB2ZWNfbWVyZ2VsIChfX0EsIF9fQik7CgogIHJldHVybiByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNraGlfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgdmVjX21lcmdlbCAoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2tsb19wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfbWVyZ2VoICgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRoX3BkIChfX20xMjhkIF9fQSwgZG91YmxlIGNvbnN0ICpfX0IpCnsKICBfX3YyZGYgcmVzdWx0ID0gKF9fdjJkZilfX0E7CiAgcmVzdWx0IFsxXSA9ICpfX0I7CiAgcmV0dXJuIChfX20xMjhkKXJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkbF9wZCAoX19tMTI4ZCBfX0EsIGRvdWJsZSBjb25zdCAqX19CKQp7CiAgX192MmRmIHJlc3VsdCA9IChfX3YyZGYpX19BOwogIHJlc3VsdCBbMF0gPSAqX19COwogIHJldHVybiAoX19tMTI4ZClyZXN1bHQ7Cn0KCiNpZmRlZiBfQVJDSF9QV1I4Ci8qIEludHJpbnNpYyBmdW5jdGlvbnMgdGhhdCByZXF1aXJlIFBvd2VySVNBIDIuMDcgbWluaW11bS4gICovCgovKiBDcmVhdGVzIGEgMi1iaXQgbWFzayBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIERQRlAgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVtYXNrX3BkIChfX20xMjhkICBfX0EpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0OwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgcGVybV9tYXNrID0KICAgIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCgkweDgwODAwMDQwLCAweDgwODA4MDgwLCAweDgwODA4MDgwLCAweDgwODA4MDgwCiNlbHNlCiAgICAgIDB4ODA4MDgwODAsIDB4ODA4MDgwODAsIDB4ODA4MDgwODAsIDB4ODA4MDQwMDAKI2VuZGlmCiAgICB9OwoKICByZXN1bHQgPSAoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKCSAgICB2ZWNfdmJwZXJtcSAoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIF9fQSwKCQkJIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBwZXJtX21hc2spKTsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiByZXN1bHRbMV07CiNlbHNlCiAgcmV0dXJuIHJlc3VsdFswXTsKI2VuZGlmCn0KI2VuZGlmIC8qIF9BUkNIX1BXUjggKi8KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcGFja3NfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX3BhY2tzICgoX192OGhpKSBfX0EsIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9wYWNrc19lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfcGFja3MgKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcGFja3VzX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19wYWNrc3UgKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2hpX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlbCAoKF9fdjE2cXUpX19BLCAoX192MTZxdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2hpX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tZXJnZWwgKChfX3Y4aHUpX19BLCAoX192OGh1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNraGlfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlbCAoKF9fdjRzdSlfX0EsIChfX3Y0c3UpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2toaV9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VsICgoX192ZWN0b3IgbG9uZyBsb25nKSBfX0EsCgkJCSAgICAgICAoX192ZWN0b3IgbG9uZyBsb25nKSBfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2xvX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlaCAoKF9fdjE2cXUpX19BLCAoX192MTZxdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2xvX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tZXJnZWggKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNrbG9fZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlaCAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2tsb19lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VoICgoX192ZWN0b3IgbG9uZyBsb25nKSBfX0EsCgkJCSAgICAgICAoX192ZWN0b3IgbG9uZyBsb25nKSBfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192MTZxdSlfX0EgKyAoX192MTZxdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjhodSlfX0EgKyAoX192OGh1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192NHN1KV9fQSArIChfX3Y0c3UpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRfZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3YyZHUpX19BICsgKF9fdjJkdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZHNfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkcyAoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZHNfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2FkZHMgKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc19lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGRzICgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc19lcHUxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkcyAoKF9fdjhodSlfX0EsIChfX3Y4aHUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjE2cXUpX19BIC0gKF9fdjE2cXUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3Y4aHUpX19BIC0gKF9fdjhodSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjRzdSlfX0EgLSAoX192NHN1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3ViX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192MmR1KV9fQSAtIChfX3YyZHUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJzX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX3N1YnMgKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJzX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zdWJzICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1YnNfZXB1OCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3VicyAoKF9fdjE2cXUpX19BLCAoX192MTZxdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1YnNfZXB1MTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX3N1YnMgKChfX3Y4aHUpX19BLCAoX192OGh1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWFkZF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192ZWN0b3Igc2lnbmVkIGludCB6ZXJvID0gezAsIDAsIDAsIDB9OwoKICByZXR1cm4gKF9fbTEyOGkpIHZlY192bXN1bXNobSAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLCB6ZXJvKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxoaV9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192ZWN0b3Igc2lnbmVkIGludCB3MCwgdzE7CgogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgeGZvcm0xID0gewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgMHgwMiwgMHgwMywgMHgxMiwgMHgxMywgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcsCiAgICAgIDB4MEEsIDB4MEIsIDB4MUEsIDB4MUIsICAweDBFLCAweDBGLCAweDFFLCAweDFGCiNlbHNlCiAgICAgIDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsICAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAweDA4LCAweDA5LCAweDE4LCAweDE5LCAgMHgwQywgMHgwRCwgMHgxQywgMHgxRAojZW5kaWYKICAgIH07CgogIHcwID0gdmVjX3ZtdWxlc2ggKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7CiAgdzEgPSB2ZWNfdm11bG9zaCAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19wZXJtICh3MCwgdzEsIHhmb3JtMSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsbG9fZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogICAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjhoaSlfX0EgKiAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX211bF9zdTMyIChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHVuc2lnbmVkIGludCBhID0gX19BOwogIHVuc2lnbmVkIGludCBiID0gX19COwoKICByZXR1cm4gKChfX202NClhICogKF9fbTY0KWIpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX211bF9lcHUzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiNpZiBfX0dOVUNfXyA8IDgKICBfX3YyZHUgcmVzdWx0OwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgLyogVk1YIFZlY3RvciBNdWx0aXBseSBPZGQgVW5zaWduZWQgV29yZC4gICovCiAgX19hc21fXygKICAgICAgInZtdWxvdXcgJTAsJTEsJTIiCiAgICAgIDogIj12IiAocmVzdWx0KQogICAgICA6ICJ2IiAoX19BKSwgInYiIChfX0IpCiAgICAgIDogKTsKI2Vsc2UKICAvKiBWTVggVmVjdG9yIE11bHRpcGx5IEV2ZW4gVW5zaWduZWQgV29yZC4gICovCiAgX19hc21fXygKICAgICAgInZtdWxldXcgJTAsJTEsJTIiCiAgICAgIDogIj12IiAocmVzdWx0KQogICAgICA6ICJ2IiAoX19BKSwgInYiIChfX0IpCiAgICAgIDogKTsKI2VuZGlmCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7CiNlbHNlCiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbXVsZSAoKF9fdjRzdSlfX0EsIChfX3Y0c3UpX19CKTsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2xsaV9lcGkxNiAoX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICBfX3Y4aHUgbHNoaWZ0OwogIF9fdjhoaSByZXN1bHQgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKCiAgaWYgKF9fQiA+PSAwICYmIF9fQiA8IDE2KQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSkKCWxzaGlmdCA9IChfX3Y4aHUpIHZlY19zcGxhdF9zMTYoX19CKTsKICAgICAgZWxzZQoJbHNoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIHNob3J0KSBfX0IpOwoKICAgICAgcmVzdWx0ID0gdmVjX3NsICgoX192OGhpKSBfX0EsIGxzaGlmdCk7CiAgICB9CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NsbGlfZXBpMzIgKF9fbTEyOGkgX19BLCBpbnQgX19CKQp7CiAgX192NHN1IGxzaGlmdDsKICBfX3Y0c2kgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CgogIGlmIChfX0IgPj0gMCAmJiBfX0IgPCAzMikKICAgIHsKICAgICAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKF9fQikgJiYgX19CIDwgMTYpCglsc2hpZnQgPSAoX192NHN1KSB2ZWNfc3BsYXRfczMyKF9fQik7CiAgICAgIGVsc2UKCWxzaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBpbnQpIF9fQik7CgogICAgICByZXN1bHQgPSB2ZWNfc2wgKChfX3Y0c2kpIF9fQSwgbHNoaWZ0KTsKICAgIH0KCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCiNpZmRlZiBfQVJDSF9QV1I4CmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2xsaV9lcGk2NCAoX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICBfX3YyZHUgbHNoaWZ0OwogIF9fdjJkaSByZXN1bHQgPSB7IDAsIDAgfTsKCiAgaWYgKF9fQiA+PSAwICYmIF9fQiA8IDY0KQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSAmJiBfX0IgPCAxNikKCWxzaGlmdCA9IChfX3YyZHUpIHZlY19zcGxhdF9zMzIoX19CKTsKICAgICAgZWxzZQoJbHNoaWZ0ID0gKF9fdjJkdSkgdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGludCkgX19CKTsKCiAgICAgIHJlc3VsdCA9IHZlY19zbCAoKF9fdjJkaSkgX19BLCBsc2hpZnQpOwogICAgfQoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQojZW5kaWYKCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JhaV9lcGkxNiAoX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICBfX3Y4aHUgcnNoaWZ0ID0geyAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUgfTsKICBfX3Y4aGkgcmVzdWx0OwoKICBpZiAoX19CIDwgMTYpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpKQoJcnNoaWZ0ID0gKF9fdjhodSkgdmVjX3NwbGF0X3MxNihfX0IpOwogICAgICBlbHNlCglyc2hpZnQgPSB2ZWNfc3BsYXRzICgodW5zaWduZWQgc2hvcnQpIF9fQik7CiAgICB9CiAgcmVzdWx0ID0gdmVjX3NyYSAoKF9fdjhoaSkgX19BLCByc2hpZnQpOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmFpX2VwaTMyIChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjRzdSByc2hpZnQgPSB7IDMxLCAzMSwgMzEsIDMxIH07CiAgX192NHNpIHJlc3VsdDsKCiAgaWYgKF9fQiA8IDMyKQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSkKCXsKCSAgaWYgKF9fQiA8IDE2KQoJICAgICAgcnNoaWZ0ID0gKF9fdjRzdSkgdmVjX3NwbGF0X3MzMihfX0IpOwoJICAgIGVsc2UKCSAgICAgIHJzaGlmdCA9IChfX3Y0c3UpIHZlY19zcGxhdHMoKHVuc2lnbmVkIGludClfX0IpOwoJfQogICAgICBlbHNlCglyc2hpZnQgPSB2ZWNfc3BsYXRzICgodW5zaWduZWQgaW50KSBfX0IpOwogICAgfQogIHJlc3VsdCA9IHZlY19zcmEgKChfX3Y0c2kpIF9fQSwgcnNoaWZ0KTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYnNsbGlfc2kxMjggKF9fbTEyOGkgX19BLCBjb25zdCBpbnQgX19OKQp7CiAgX192MTZxdSByZXN1bHQ7CiAgY29uc3QgX192MTZxdSB6ZXJvcyA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwoKICBpZiAoX19OIDwgMTYpCiAgICByZXN1bHQgPSB2ZWNfc2xkICgoX192MTZxdSkgX19BLCB6ZXJvcywgX19OKTsKICBlbHNlCiAgICByZXN1bHQgPSB6ZXJvczsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYnNybGlfc2kxMjggKF9fbTEyOGkgX19BLCBjb25zdCBpbnQgX19OKQp7CiAgX192MTZxdSByZXN1bHQ7CiAgY29uc3QgX192MTZxdSB6ZXJvcyA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwoKICBpZiAoX19OIDwgMTYpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKF9fTikpCiAgICAgIC8qIFdvdWxkIGxpa2UgdG8gdXNlIFZlY3RvciBTaGlmdCBMZWZ0IERvdWJsZSBieSBPY3RldAoJIEltbWVkaWF0ZSBoZXJlIHRvIHVzZSB0aGUgaW1tZWRpYXRlIGZvcm0gYW5kIGF2b2lkCgkgbG9hZCBvZiBfX04gKiA4IHZhbHVlIGludG8gYSBzZXBhcmF0ZSBWUi4gICovCiAgICAgIHJlc3VsdCA9IHZlY19zbGQgKHplcm9zLCAoX192MTZxdSkgX19BLCAoMTYgLSBfX04pKTsKICAgIGVsc2UKI2VuZGlmCiAgICAgIHsKCV9fdjE2cXUgc2hpZnQgPSB2ZWNfc3BsYXRzKCh1bnNpZ25lZCBjaGFyKShfX04qOCkpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCXJlc3VsdCA9IHZlY19zcm8gKChfX3YxNnF1KV9fQSwgc2hpZnQpOwojZWxzZQoJcmVzdWx0ID0gdmVjX3NsbyAoKF9fdjE2cXUpX19BLCBzaGlmdCk7CiNlbmRpZgogICAgICB9CiAgZWxzZQogICAgcmVzdWx0ID0gemVyb3M7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NybGlfc2kxMjggKF9fbTEyOGkgX19BLCBjb25zdCBpbnQgX19OKQp7CiAgcmV0dXJuIF9tbV9ic3JsaV9zaTEyOCAoX19BLCBfX04pOwp9CgpleHRlcm4gX19pbmxpbmUgIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zbGxpX3NpMTI4IChfX20xMjhpIF9fQSwgY29uc3QgaW50IF9pbW01KQp7CiAgX192MTZxdSByZXN1bHQ7CiAgY29uc3QgX192MTZxdSB6ZXJvcyA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwoKICBpZiAoX2ltbTUgPCAxNikKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICByZXN1bHQgPSB2ZWNfc2xkICgoX192MTZxdSkgX19BLCB6ZXJvcywgX2ltbTUpOwojZWxzZQogICAgcmVzdWx0ID0gdmVjX3NsZCAoemVyb3MsIChfX3YxNnF1KSBfX0EsICgxNiAtIF9pbW01KSk7CiNlbmRpZgogIGVsc2UKICAgIHJlc3VsdCA9IHplcm9zOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCgpfbW1fc3JsaV9lcGkxNiAoX19tMTI4aSAgX19BLCBpbnQgX19CKQp7CiAgX192OGh1IHJzaGlmdDsKICBfX3Y4aGkgcmVzdWx0ID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CgogIGlmIChfX0IgPCAxNikKICAgIHsKICAgICAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKF9fQikpCglyc2hpZnQgPSAoX192OGh1KSB2ZWNfc3BsYXRfczE2KF9fQik7CiAgICAgIGVsc2UKCXJzaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBzaG9ydCkgX19CKTsKCiAgICAgIHJlc3VsdCA9IHZlY19zciAoKF9fdjhoaSkgX19BLCByc2hpZnQpOwogICAgfQoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmxpX2VwaTMyIChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjRzdSByc2hpZnQ7CiAgX192NHNpIHJlc3VsdCA9IHsgMCwgMCwgMCwgMCB9OwoKICBpZiAoX19CIDwgMzIpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpKQoJewoJICBpZiAoX19CIDwgMTYpCgkgICAgICByc2hpZnQgPSAoX192NHN1KSB2ZWNfc3BsYXRfczMyKF9fQik7CgkgICAgZWxzZQoJICAgICAgcnNoaWZ0ID0gKF9fdjRzdSkgdmVjX3NwbGF0cygodW5zaWduZWQgaW50KV9fQik7Cgl9CiAgICAgIGVsc2UKCXJzaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBpbnQpIF9fQik7CgogICAgICByZXN1bHQgPSB2ZWNfc3IgKChfX3Y0c2kpIF9fQSwgcnNoaWZ0KTsKICAgIH0KCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCiNpZmRlZiBfQVJDSF9QV1I4CmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JsaV9lcGk2NCAoX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICBfX3YyZHUgcnNoaWZ0OwogIF9fdjJkaSByZXN1bHQgPSB7IDAsIDAgfTsKCiAgaWYgKF9fQiA8IDY0KQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSkKCXsKCSAgaWYgKF9fQiA8IDE2KQoJICAgICAgcnNoaWZ0ID0gKF9fdjJkdSkgdmVjX3NwbGF0X3MzMihfX0IpOwoJICAgIGVsc2UKCSAgICAgIHJzaGlmdCA9IChfX3YyZHUpIHZlY19zcGxhdHMoKHVuc2lnbmVkIGxvbmcgbG9uZylfX0IpOwoJfQogICAgICBlbHNlCglyc2hpZnQgPSAoX192MmR1KSB2ZWNfc3BsYXRzICgodW5zaWduZWQgaW50KSBfX0IpOwoKICAgICAgcmVzdWx0ID0gdmVjX3NyICgoX192MmRpKSBfX0EsIHJzaGlmdCk7CiAgICB9CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CiNlbmRpZgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zbGxfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjhodSBsc2hpZnQ7CiAgX192ZWN0b3IgX19ib29sIHNob3J0IHNobWFzazsKICBjb25zdCBfX3Y4aHUgc2htYXggPSB7IDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSB9OwogIF9fdjhodSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBsc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y4aHUpIF9fQiwgMCk7CiNlbHNlCiAgbHNoaWZ0ID0gdmVjX3NwbGF0ICgoX192OGh1KSBfX0IsIDMpOwojZW5kaWYKICBzaG1hc2sgPSB2ZWNfY21wbGUgKGxzaGlmdCwgc2htYXgpOwogIHJlc3VsdCA9IHZlY19zbCAoKF9fdjhodSkgX19BLCBsc2hpZnQpOwogIHJlc3VsdCA9IHZlY19zZWwgKChfX3Y4aHUpIHNobWFzaywgcmVzdWx0LCBzaG1hc2spOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zbGxfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjRzdSBsc2hpZnQ7CiAgX192ZWN0b3IgX19ib29sIGludCBzaG1hc2s7CiAgY29uc3QgX192NHN1IHNobWF4ID0geyAzMiwgMzIsIDMyLCAzMiB9OwogIF9fdjRzdSByZXN1bHQ7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIGxzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjRzdSkgX19CLCAwKTsKI2Vsc2UKICBsc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y0c3UpIF9fQiwgMSk7CiNlbmRpZgogIHNobWFzayA9IHZlY19jbXBsdCAobHNoaWZ0LCBzaG1heCk7CiAgcmVzdWx0ID0gdmVjX3NsICgoX192NHN1KSBfX0EsIGxzaGlmdCk7CiAgcmVzdWx0ID0gdmVjX3NlbCAoKF9fdjRzdSkgc2htYXNrLCByZXN1bHQsIHNobWFzayk7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgojaWZkZWYgX0FSQ0hfUFdSOApleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NsbF9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192MmR1IGxzaGlmdDsKICBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIHNobWFzazsKICBjb25zdCBfX3YyZHUgc2htYXggPSB7IDY0LCA2NCB9OwogIF9fdjJkdSByZXN1bHQ7CgogIGxzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjJkdSkgX19CLCAwKTsKICBzaG1hc2sgPSB2ZWNfY21wbHQgKGxzaGlmdCwgc2htYXgpOwogIHJlc3VsdCA9IHZlY19zbCAoKF9fdjJkdSkgX19BLCBsc2hpZnQpOwogIHJlc3VsdCA9IChfX3YyZHUpdmVjX3NlbCAoKF9fdjJkZikgc2htYXNrLCAoX192MmRmKXJlc3VsdCwgc2htYXNrKTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KI2VuZGlmCgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NyYV9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192OGh1IHJzaG1heCA9IHsgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1IH07CiAgX192OGh1IHJzaGlmdDsKICBfX3Y4aGkgcmVzdWx0OwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192OGh1KV9fQiwgMCk7CiNlbHNlCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192OGh1KV9fQiwgMyk7CiNlbmRpZgogIHJzaGlmdCA9IHZlY19taW4gKHJzaGlmdCwgcnNobWF4KTsKICByZXN1bHQgPSB2ZWNfc3JhICgoX192OGhpKSBfX0EsIHJzaGlmdCk7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NyYV9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192NHN1IHJzaG1heCA9IHsgMzEsIDMxLCAzMSwgMzEgfTsKICBfX3Y0c3UgcnNoaWZ0OwogIF9fdjRzaSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y0c3UpX19CLCAwKTsKI2Vsc2UKICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y0c3UpX19CLCAxKTsKI2VuZGlmCiAgcnNoaWZ0ID0gdmVjX21pbiAocnNoaWZ0LCByc2htYXgpOwogIHJlc3VsdCA9IHZlY19zcmEgKChfX3Y0c2kpIF9fQSwgcnNoaWZ0KTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JsX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3Y4aHUgcnNoaWZ0OwogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBzaG1hc2s7CiAgY29uc3QgX192OGh1IHNobWF4ID0geyAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUgfTsKICBfX3Y4aHUgcmVzdWx0OwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192OGh1KSBfX0IsIDApOwojZWxzZQogIHJzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjhodSkgX19CLCAzKTsKI2VuZGlmCiAgc2htYXNrID0gdmVjX2NtcGxlIChyc2hpZnQsIHNobWF4KTsKICByZXN1bHQgPSB2ZWNfc3IgKChfX3Y4aHUpIF9fQSwgcnNoaWZ0KTsKICByZXN1bHQgPSB2ZWNfc2VsICgoX192OGh1KSBzaG1hc2ssIHJlc3VsdCwgc2htYXNrKTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JsX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3Y0c3UgcnNoaWZ0OwogIF9fdmVjdG9yIF9fYm9vbCBpbnQgc2htYXNrOwogIGNvbnN0IF9fdjRzdSBzaG1heCA9IHsgMzIsIDMyLCAzMiwgMzIgfTsKICBfX3Y0c3UgcmVzdWx0OwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192NHN1KSBfX0IsIDApOwojZWxzZQogIHJzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjRzdSkgX19CLCAxKTsKI2VuZGlmCiAgc2htYXNrID0gdmVjX2NtcGx0IChyc2hpZnQsIHNobWF4KTsKICByZXN1bHQgPSB2ZWNfc3IgKChfX3Y0c3UpIF9fQSwgcnNoaWZ0KTsKICByZXN1bHQgPSB2ZWNfc2VsICgoX192NHN1KSBzaG1hc2ssIHJlc3VsdCwgc2htYXNrKTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCiNpZmRlZiBfQVJDSF9QV1I4CmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JsX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3YyZHUgcnNoaWZ0OwogIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgc2htYXNrOwogIGNvbnN0IF9fdjJkdSBzaG1heCA9IHsgNjQsIDY0IH07CiAgX192MmR1IHJlc3VsdDsKCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192MmR1KSBfX0IsIDApOwogIHNobWFzayA9IHZlY19jbXBsdCAocnNoaWZ0LCBzaG1heCk7CiAgcmVzdWx0ID0gdmVjX3NyICgoX192MmR1KSBfX0EsIHJzaGlmdCk7CiAgcmVzdWx0ID0gKF9fdjJkdSl2ZWNfc2VsICgoX192MmRmKSBzaG1hc2ssIChfX3YyZGYpcmVzdWx0LCBzaG1hc2spOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQojZW5kaWYKCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYW5kX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKHZlY19hbmQgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYW5kbm90X3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKHZlY19hbmRjICgoX192MmRmKSBfX0IsIChfX3YyZGYpIF9fQSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX29yX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKHZlY19vciAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV94b3JfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAodmVjX3hvciAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRfc2kxMjggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSl2ZWNfYW5kICgoX192MmRpKSBfX0EsIChfX3YyZGkpIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYW5kbm90X3NpMTI4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpdmVjX2FuZGMgKChfX3YyZGkpIF9fQiwgKF9fdjJkaSkgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9vcl9zaTEyOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKXZlY19vciAoKF9fdjJkaSkgX19BLCAoX192MmRpKSBfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3hvcl9zaTEyOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKXZlY194b3IgKChfX3YyZGkpIF9fQSwgKF9fdjJkaSkgX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBlcV9lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBlcSAoKF9fdjE2cWkpIF9fQSwgKF9fdjE2cWkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBlcV9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wZXEgKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBlcSAoKF9fdjRzaSkgX19BLCAoX192NHNpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbHRfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wbHQgKChfX3YxNnFpKSBfX0EsIChfX3YxNnFpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbHRfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGx0ICgoX192OGhpKSBfX0EsIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsdF9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wbHQgKChfX3Y0c2kpIF9fQSwgKF9fdjRzaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGd0X2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGd0ICgoX192MTZxaSkgX19BLCAoX192MTZxaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGd0X2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBndCAoKF9fdjhoaSkgX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3RfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGd0ICgoX192NHNpKSBfX0EsIChfX3Y0c2kpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2V4dHJhY3RfZXBpMTYgKF9fbTEyOGkgY29uc3QgX19BLCBpbnQgY29uc3QgX19OKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBzaG9ydCkgKChfX3Y4aGkpX19BKVtfX04gJiA3XTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9pbnNlcnRfZXBpMTYgKF9fbTEyOGkgY29uc3QgX19BLCBpbnQgY29uc3QgX19ELCBpbnQgY29uc3QgX19OKQp7CiAgX192OGhpIHJlc3VsdCA9IChfX3Y4aGkpX19BOwoKICByZXN1bHQgWyhfX04gJiA3KV0gPSBfX0Q7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21heF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWF4ICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21heF9lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tYXggKChfX3YxNnF1KSBfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWluX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19taW4gKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19taW4gKChfX3YxNnF1KSBfX0EsIChfX3YxNnF1KV9fQik7Cn0KCgojaWZkZWYgX0FSQ0hfUFdSOAovKiBJbnRyaW5zaWMgZnVuY3Rpb25zIHRoYXQgcmVxdWlyZSBQb3dlcklTQSAyLjA3IG1pbmltdW0uICAqLwoKLyogQ3JlYXRlcyBhIDQtYml0IG1hc2sgZnJvbSB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSBTUEZQIHZhbHVlcy4gICovCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlbWFza19lcGk4IChfX20xMjhpIF9fQSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgcGVybV9tYXNrID0KICAgIHsKCTB4NzgsIDB4NzAsIDB4NjgsIDB4NjAsIDB4NTgsIDB4NTAsIDB4NDgsIDB4NDAsCgkweDM4LCAweDMwLCAweDI4LCAweDIwLCAweDE4LCAweDEwLCAweDA4LCAweDAwCiAgICB9OwoKICByZXN1bHQgPSAoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKCSAgICB2ZWNfdmJwZXJtcSAoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIF9fQSwKCQkJIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBwZXJtX21hc2spKTsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiByZXN1bHRbMV07CiNlbHNlCiAgcmV0dXJuIHJlc3VsdFswXTsKI2VuZGlmCn0KI2VuZGlmIC8qIF9BUkNIX1BXUjggKi8KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsaGlfZXB1MTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjRzdSB3MCwgdzE7CiAgX192MTZxdSB4Zm9ybTEgPSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAweDAyLCAweDAzLCAweDEyLCAweDEzLCAgMHgwNiwgMHgwNywgMHgxNiwgMHgxNywKICAgICAgMHgwQSwgMHgwQiwgMHgxQSwgMHgxQiwgIDB4MEUsIDB4MEYsIDB4MUUsIDB4MUYKI2Vsc2UKICAgICAgMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsCiAgICAgIDB4MDgsIDB4MDksIDB4MTgsIDB4MTksICAweDBDLCAweDBELCAweDFDLCAweDFECiNlbmRpZgogICAgfTsKCiAgdzAgPSB2ZWNfdm11bGV1aCAoKF9fdjhodSlfX0EsIChfX3Y4aHUpX19CKTsKICB3MSA9IHZlY192bXVsb3VoICgoX192OGh1KV9fQSwgKF9fdjhodSlfX0IpOwogIHJldHVybiAoX19tMTI4aSkgdmVjX3Blcm0gKHcwLCB3MSwgeGZvcm0xKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaHVmZmxlaGlfZXBpMTYgKF9fbTEyOGkgX19BLCBjb25zdCBpbnQgX19tYXNrKQp7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzk4ID0gX19tYXNrICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfQkEgPSAoX19tYXNrID4+IDIpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfREMgPSAoX19tYXNrID4+IDQpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfRkUgPSAoX19tYXNrID4+IDYpICYgMHgwMzsKICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgcGVybXV0ZV9zZWxlY3RvcnNbNF0gPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCSAgICAgIDB4MDkwOCwgMHgwQjBBLCAweDBEMEMsIDB4MEYwRQojZWxzZQoJICAgICAgMHgwODA5LCAweDBBMEIsIDB4MEMwRCwgMHgwRTBGCiNlbmRpZgogICAgfTsKICBfX3YyZHUgcG1hc2sgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgeyAweDE3MTYxNTE0MTMxMjExMTBVTCwgIDBVTH07CiNlbHNlCiAgICAgIHsgMHgxMDExMTIxMzE0MTUxNjE3VUwsICAwVUx9OwojZW5kaWYKICBfX202NF91bmlvbiB0OwogIF9fdjJkdSBhLCByOwoKICB0LmFzX3Nob3J0WzBdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl85OF07CiAgdC5hc19zaG9ydFsxXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfQkFdOwogIHQuYXNfc2hvcnRbMl0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yX0RDXTsKICB0LmFzX3Nob3J0WzNdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl9GRV07CiAgcG1hc2tbMV0gPSB0LmFzX202NDsKICBhID0gKF9fdjJkdSlfX0E7CiAgciA9IHZlY19wZXJtIChhLCBhLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilwbWFzayk7CiAgcmV0dXJuIChfX20xMjhpKSByOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVsb19lcGkxNiAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX21hc2spCnsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfMTAgPSBfX21hc2sgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8zMiA9IChfX21hc2sgPj4gMikgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl81NCA9IChfX21hc2sgPj4gNCkgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl83NiA9IChfX21hc2sgPj4gNikgJiAweDAzOwogIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBwZXJtdXRlX3NlbGVjdG9yc1s0XSA9CiAgICB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJICAgICAgMHgwMTAwLCAweDAzMDIsIDB4MDUwNCwgMHgwNzA2CiNlbHNlCgkgICAgICAweDAwMDEsIDB4MDIwMywgMHgwNDA1LCAweDA2MDcKI2VuZGlmCiAgICB9OwogIF9fdjJkdSBwbWFzayA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAgICAgICAgICAgIHsgMFVMLCAgMHgxZjFlMWQxYzFiMWExOTE4VUx9OwojZWxzZQogICAgICAgICAgICAgICAgIHsgMFVMLCAgMHgxODE5MWExYjFjMWQxZTFmVUx9OwojZW5kaWYKICBfX202NF91bmlvbiB0OwogIF9fdjJkdSBhLCByOwogIHQuYXNfc2hvcnRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzEwXTsKICB0LmFzX3Nob3J0WzFdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8zMl07CiAgdC5hc19zaG9ydFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNTRdOwogIHQuYXNfc2hvcnRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzc2XTsKICBwbWFza1swXSA9IHQuYXNfbTY0OwogIGEgPSAoX192MmR1KV9fQTsKICByID0gdmVjX3Blcm0gKGEsIGEsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXBtYXNrKTsKICByZXR1cm4gKF9fbTEyOGkpIHI7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2h1ZmZsZV9lcGkzMiAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX21hc2spCnsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfMTAgPSBfX21hc2sgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8zMiA9IChfX21hc2sgPj4gMikgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl81NCA9IChfX21hc2sgPj4gNCkgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl83NiA9IChfX21hc2sgPj4gNikgJiAweDAzOwogIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcGVybXV0ZV9zZWxlY3RvcnNbNF0gPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCTB4MDMwMjAxMDAsIDB4MDcwNjA1MDQsIDB4MEIwQTA5MDgsIDB4MEYwRTBEMEMKI2Vsc2UKICAgICAgMHgwMDAxMDIwMywgMHgwNDA1MDYwNywgMHgwODA5MEEwQiwgMHgwQzBEMEUwRgojZW5kaWYKICAgIH07CiAgX192NHN1IHQ7CgogIHRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzEwXTsKICB0WzFdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8zMl07CiAgdFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNTRdICsgMHgxMDEwMTAxMDsKICB0WzNdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl83Nl0gKyAweDEwMTAxMDEwOwogIHJldHVybiAoX19tMTI4aSl2ZWNfcGVybSAoKF9fdjRzaSkgX19BLCAoX192NHNpKV9fQSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdCk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWFza21vdmV1X3NpMTI4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIGNoYXIgKl9fQykKewogIF9fdjJkdSBoaWJpdCA9IHsgMHg3ZjdmN2Y3ZjdmN2Y3ZjdmVUwsIDB4N2Y3ZjdmN2Y3ZjdmN2Y3ZlVMfTsKICBfX3YxNnF1IG1hc2ssIHRtcDsKICBfX20xMjhpX3UgKnAgPSAoX19tMTI4aV91KilfX0M7CgogIHRtcCA9IChfX3YxNnF1KV9tbV9sb2FkdV9zaTEyOChwKTsKICBtYXNrID0gKF9fdjE2cXUpdmVjX2NtcGd0ICgoX192MTZxdSlfX0IsIChfX3YxNnF1KWhpYml0KTsKICB0bXAgPSB2ZWNfc2VsICh0bXAsIChfX3YxNnF1KV9fQSwgbWFzayk7CiAgX21tX3N0b3JldV9zaTEyOCAocCwgKF9fbTEyOGkpdG1wKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hdmdfZXB1OCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYXZnICgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYXZnX2VwdTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hdmcgKChfX3Y4aHUpX19BLCAoX192OGh1KV9fQik7Cn0KCgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NhZF9lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3YxNnF1IGEsIGI7CiAgX192MTZxdSB2bWluLCB2bWF4LCB2YWJzZGlmZjsKICBfX3Y0c2kgdnN1bTsKICBjb25zdCBfX3Y0c3UgemVybyA9IHsgMCwgMCwgMCwgMCB9OwogIF9fdjRzaSByZXN1bHQ7CgogIGEgPSAoX192MTZxdSkgX19BOwogIGIgPSAoX192MTZxdSkgX19COwogIHZtaW4gPSB2ZWNfbWluIChhLCBiKTsKICB2bWF4ID0gdmVjX21heCAoYSwgYik7CiAgdmFic2RpZmYgPSB2ZWNfc3ViICh2bWF4LCB2bWluKTsKICAvKiBTdW0gZm91ciBncm91cHMgb2YgYnl0ZXMgaW50byBpbnRlZ2Vycy4gICovCiAgdnN1bSA9IChfX3ZlY3RvciBzaWduZWQgaW50KSB2ZWNfc3VtNHMgKHZhYnNkaWZmLCB6ZXJvKTsKICAvKiBTdW0gYWNyb3NzIGZvdXIgaW50ZWdlcnMgd2l0aCB0d28gaW50ZWdlciByZXN1bHRzLiAgKi8KICByZXN1bHQgPSB2ZWNfc3VtMnMgKHZzdW0sIChfX3ZlY3RvciBzaWduZWQgaW50KSB6ZXJvKTsKICAvKiBSb3RhdGUgdGhlIHN1bXMgaW50byB0aGUgY29ycmVjdCBwb3NpdGlvbi4gICovCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJlc3VsdCA9IHZlY19zbGQgKHJlc3VsdCwgcmVzdWx0LCA0KTsKI2Vsc2UKICByZXN1bHQgPSB2ZWNfc2xkIChyZXN1bHQsIHJlc3VsdCwgNik7CiNlbmRpZgogIC8qIFJvdGF0ZSB0aGUgc3VtcyBpbnRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uLiAgKi8KICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdHJlYW1fc2kzMiAoaW50ICpfX0EsIGludCBfX0IpCnsKICAvKiBVc2UgdGhlIGRhdGEgY2FjaGUgYmxvY2sgdG91Y2ggZm9yIHN0b3JlIHRyYW5zaWVudC4gICovCiAgX19hc21fXyAoCiAgICAiZGNidHN0dCAwLCUwIgogICAgOgogICAgOiAiYiIgKF9fQSkKICAgIDogIm1lbW9yeSIKICApOwogICpfX0EgPSBfX0I7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RyZWFtX3NpNjQgKGxvbmcgbG9uZyBpbnQgKl9fQSwgbG9uZyBsb25nIGludCBfX0IpCnsKICAvKiBVc2UgdGhlIGRhdGEgY2FjaGUgYmxvY2sgdG91Y2ggZm9yIHN0b3JlIHRyYW5zaWVudC4gICovCiAgX19hc21fXyAoCiAgICAiCWRjYnRzdHQJMCwlMCIKICAgIDoKICAgIDogImIiIChfX0EpCiAgICA6ICJtZW1vcnkiCiAgKTsKICAqX19BID0gX19COwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0cmVhbV9zaTEyOCAoX19tMTI4aSAqX19BLCBfX20xMjhpIF9fQikKewogIC8qIFVzZSB0aGUgZGF0YSBjYWNoZSBibG9jayB0b3VjaCBmb3Igc3RvcmUgdHJhbnNpZW50LiAgKi8KICBfX2FzbV9fICgKICAgICJkY2J0c3R0IDAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19BKQogICAgOiAibWVtb3J5IgogICk7CiAgKl9fQSA9IF9fQjsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdHJlYW1fcGQgKGRvdWJsZSAqX19BLCBfX20xMjhkIF9fQikKewogIC8qIFVzZSB0aGUgZGF0YSBjYWNoZSBibG9jayB0b3VjaCBmb3Igc3RvcmUgdHJhbnNpZW50LiAgKi8KICBfX2FzbV9fICgKICAgICJkY2J0c3R0IDAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19BKQogICAgOiAibWVtb3J5IgogICk7CiAgKihfX20xMjhkKilfX0EgPSBfX0I7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY2xmbHVzaCAodm9pZCBjb25zdCAqX19BKQp7CiAgLyogVXNlIHRoZSBkYXRhIGNhY2hlIGJsb2NrIGZsdXNoLiAgKi8KICBfX2FzbV9fICgKICAgICJkY2JmIDAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19BKQogICAgOiAibWVtb3J5IgogICk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbGZlbmNlICh2b2lkKQp7CiAgLyogVXNlIGxpZ2h0IHdlaWdodCBzeW5jIGZvciBsb2FkIHRvIGxvYWQgb3JkZXJpbmcuICAqLwogIF9fYXRvbWljX3RocmVhZF9mZW5jZSAoX19BVE9NSUNfUkVMRUFTRSk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWZlbmNlICh2b2lkKQp7CiAgLyogVXNlIGhlYXZ5IHdlaWdodCBzeW5jIGZvciBhbnkgdG8gYW55IG9yZGVyaW5nLiAgKi8KICBfX2F0b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX1NFUV9DU1QpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpMzJfc2kxMjggKGludCBfX0EpCnsKICByZXR1cm4gX21tX3NldF9lcGkzMiAoMCwgMCwgMCwgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTY0X3NpMTI4IChsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjJkaSl7IF9fQSwgMExMIH07Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpNjR4X3NpMTI4IChsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjJkaSl7IF9fQSwgMExMIH07Cn0KCi8qIENhc3RzIGJldHdlZW4gdmFyaW91cyBTUCwgRFAsIElOVCB2ZWN0b3IgdHlwZXMuICBOb3RlIHRoYXQgdGhlc2UgZG8gbm8KICAgY29udmVyc2lvbiBvZiB2YWx1ZXMsIHRoZXkganVzdCBjaGFuZ2UgdGhlIHR5cGUuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY2FzdHBkX3BzKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fQTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jYXN0cGRfc2kxMjgoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fQTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jYXN0cHNfcGQoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19BOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Nhc3Rwc19zaTEyOChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX0E7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jYXN0c2kxMjhfcHMoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19BOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Nhc3RzaTEyOF9wZChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19BOwp9CgojZWxzZQojaW5jbHVkZV9uZXh0IDxlbW1pbnRyaW4uaD4KI2VuZGlmIC8qIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykgKi8KCiNlbmRpZiAvKiBFTU1JTlRSSU5fSF8gKi8KAC8qPT09LS0tLSB0bW1pbnRyaW4uaCAtIEltcGxlbWVudGF0aW9uIG9mIFNTU0UzIGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8qIEltcGxlbWVudGVkIGZyb20gdGhlIHNwZWNpZmljYXRpb24gaW5jbHVkZWQgaW4gdGhlIEludGVsIEMrKyBDb21waWxlcgogICBVc2VyIEd1aWRlIGFuZCBSZWZlcmVuY2UsIHZlcnNpb24gOS4wLiAgKi8KCiNpZm5kZWYgTk9fV0FSTl9YODZfSU5UUklOU0lDUwovKiBUaGlzIGhlYWRlciBpcyBkaXN0cmlidXRlZCB0byBzaW1wbGlmeSBwb3J0aW5nIHg4Nl82NCBjb2RlIHRoYXQKICAgbWFrZXMgZXhwbGljaXQgdXNlIG9mIEludGVsIGludHJpbnNpY3MgdG8gcG93ZXJwYzY0bGUuCgogICBJdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGRldGVybWluZSBpZiB0aGUgcmVzdWx0cyBhcmUKICAgYWNjZXB0YWJsZSBhbmQgbWFrZSBhZGRpdGlvbmFsIGNoYW5nZXMgYXMgbmVjZXNzYXJ5LgoKICAgTm90ZSB0aGF0IG11Y2ggY29kZSB0aGF0IHVzZXMgSW50ZWwgaW50cmluc2ljcyBjYW4gYmUgcmV3cml0dGVuIGluCiAgIHN0YW5kYXJkIEMgb3IgR05VIEMgZXh0ZW5zaW9ucywgd2hpY2ggYXJlIG1vcmUgcG9ydGFibGUgYW5kIGJldHRlcgogICBvcHRpbWl6ZWQgYWNyb3NzIG11bHRpcGxlIHRhcmdldHMuICAqLwojZW5kaWYKCiNpZm5kZWYgVE1NSU5UUklOX0hfCiNkZWZpbmUgVE1NSU5UUklOX0hfCgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKI2luY2x1ZGUgPGFsdGl2ZWMuaD4KCi8qIFdlIG5lZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFIGhlYWRlciBmaWxlcy4gICovCiNpbmNsdWRlIDxwbW1pbnRyaW4uaD4KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWJzX2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2FicyAoKF9fdjhoaSkgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hYnNfZXBpMzIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWJzICgoX192NHNpKSBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Fic19lcGk4IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2FicyAoKF9fdjE2cWkpIF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Fic19waTE2IChfX202NCBfX0EpCnsKICBfX3Y4aGkgX19CID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSB2ZWNfYWJzIChfX0IpKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWJzX3BpMzIgKF9fbTY0IF9fQSkKewogIF9fdjRzaSBfX0IgPSAoX192NHNpKSAoX192MmR1KSB7IF9fQSwgX19BIH07CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIHZlY19hYnMgKF9fQikpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hYnNfcGk4IChfX202NCBfX0EpCnsKICBfX3YxNnFpIF9fQiA9IChfX3YxNnFpKSAoX192MmR1KSB7IF9fQSwgX19BIH07CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIHZlY19hYnMgKF9fQikpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FsaWducl9lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIGNvbnN0IHVuc2lnbmVkIGludCBfX2NvdW50KQp7CiAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wIChfX2NvdW50KSAmJiBfX2NvdW50IDwgMTYpCiAgICB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBfX0EgPSAoX19tMTI4aSkgdmVjX3JldmUgKChfX3YxNnF1KSBfX0EpOwogICAgICBfX0IgPSAoX19tMTI4aSkgdmVjX3JldmUgKChfX3YxNnF1KSBfX0IpOwojZW5kaWYKICAgICAgX19BID0gKF9fbTEyOGkpIHZlY19zbGQgKChfX3YxNnF1KSBfX0IsIChfX3YxNnF1KSBfX0EsIF9fY291bnQpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgX19BID0gKF9fbTEyOGkpIHZlY19yZXZlICgoX192MTZxdSkgX19BKTsKI2VuZGlmCiAgICAgIHJldHVybiBfX0E7CiAgICB9CgogIGlmIChfX2NvdW50ID09IDApCiAgICByZXR1cm4gX19COwoKICBpZiAoX19jb3VudCA+PSAxNikKICAgIHsKICAgICAgaWYgKF9fY291bnQgPj0gMzIpCgl7CgkgIGNvbnN0IF9fdjE2cXUgemVybyA9IHsgMCB9OwoJICByZXR1cm4gKF9fbTEyOGkpIHplcm87Cgl9CiAgICAgIGVsc2UKCXsKCSAgY29uc3QgX192MTZxdSBfX3NoaWZ0ID0KCSAgICB2ZWNfc3BsYXRzICgodW5zaWduZWQgY2hhcikgKChfX2NvdW50IC0gMTYpICogOCkpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCSAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3JvICgoX192MTZxdSkgX19BLCBfX3NoaWZ0KTsKI2Vsc2UKCSAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc2xvICgoX192MTZxdSkgX19BLCBfX3NoaWZ0KTsKI2VuZGlmCgl9CiAgICB9CiAgZWxzZQogICAgewogICAgICBjb25zdCBfX3YxNnF1IF9fc2hpZnRBID0KCXZlY19zcGxhdHMgKCh1bnNpZ25lZCBjaGFyKSAoKDE2IC0gX19jb3VudCkgKiA4KSk7CiAgICAgIGNvbnN0IF9fdjE2cXUgX19zaGlmdEIgPSB2ZWNfc3BsYXRzICgodW5zaWduZWQgY2hhcikgKF9fY291bnQgKiA4KSk7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBfX0EgPSAoX19tMTI4aSkgdmVjX3NsbyAoKF9fdjE2cXUpIF9fQSwgX19zaGlmdEEpOwogICAgICBfX0IgPSAoX19tMTI4aSkgdmVjX3NybyAoKF9fdjE2cXUpIF9fQiwgX19zaGlmdEIpOwojZWxzZQogICAgICBfX0EgPSAoX19tMTI4aSkgdmVjX3NybyAoKF9fdjE2cXUpIF9fQSwgX19zaGlmdEEpOwogICAgICBfX0IgPSAoX19tMTI4aSkgdmVjX3NsbyAoKF9fdjE2cXUpIF9fQiwgX19zaGlmdEIpOwojZW5kaWYKICAgICAgcmV0dXJuIChfX20xMjhpKSB2ZWNfb3IgKChfX3YxNnF1KSBfX0EsIChfX3YxNnF1KSBfX0IpOwogICAgfQp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbGlnbnJfcGk4IChfX202NCBfX0EsIF9fbTY0IF9fQiwgdW5zaWduZWQgaW50IF9fY291bnQpCnsKICBpZiAoX19jb3VudCA8IDE2KQogICAgewogICAgICBfX3YyZHUgX19DID0geyBfX0IsIF9fQSB9OwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgY29uc3QgX192NHN1IF9fc2hpZnQgPSB7IF9fY291bnQgPDwgMywgMCwgMCwgMCB9OwogICAgICBfX0MgPSAoX192MmR1KSB2ZWNfc3JvICgoX192MTZxdSkgX19DLCAoX192MTZxdSkgX19zaGlmdCk7CiNlbHNlCiAgICAgIGNvbnN0IF9fdjRzdSBfX3NoaWZ0ID0geyAwLCAwLCAwLCBfX2NvdW50IDw8IDMgfTsKICAgICAgX19DID0gKF9fdjJkdSkgdmVjX3NsbyAoKF9fdjE2cXUpIF9fQywgKF9fdjE2cXUpIF9fc2hpZnQpOwojZW5kaWYKICAgICAgcmV0dXJuIChfX202NCkgX19DWzBdOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgY29uc3QgX19tNjQgX196ZXJvID0geyAwIH07CiAgICAgIHJldHVybiBfX3plcm87CiAgICB9Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faGFkZF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsIDE2LCAxNywgMjAsIDIxLCAyNCwgMjUsIDI4LCAyOSB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAxOCwgMTksIDIyLCAyMywgMjYsIDI3LCAzMCwgMzEgfTsKICBfX3Y4aGkgX19DID0gdmVjX3Blcm0gKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSkgX19CLCBfX1ApOwogIF9fdjhoaSBfX0QgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUSk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkIChfX0MsIF9fRCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faGFkZF9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICAyLCAgMywgIDgsICA5LCAxMCwgMTEsIDE2LCAxNywgMTgsIDE5LCAyNCwgMjUsIDI2LCAyNyB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDQsICA1LCAgNiwgIDcsIDEyLCAxMywgMTQsIDE1LCAyMCwgMjEsIDIyLCAyMywgMjgsIDI5LCAzMCwgMzEgfTsKICBfX3Y0c2kgX19DID0gdmVjX3Blcm0gKChfX3Y0c2kpIF9fQSwgKF9fdjRzaSkgX19CLCBfX1ApOwogIF9fdjRzaSBfX0QgPSB2ZWNfcGVybSAoKF9fdjRzaSkgX19BLCAoX192NHNpKSBfX0IsIF9fUSk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkIChfX0MsIF9fRCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hhZGRfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3Y4aGkgX19DID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQiB9OwogIGNvbnN0IF9fdjE2cXUgX19QID0KICAgIHsgIDAsICAxLCAgNCwgIDUsICA4LCAgOSwgMTIsIDEzLCAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMgfTsKICBjb25zdCBfX3YxNnF1IF9fUSA9CiAgICB7ICAyLCAgMywgIDYsICA3LCAxMCwgMTEsIDE0LCAxNSwgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1IH07CiAgX192OGhpIF9fRCA9IHZlY19wZXJtIChfX0MsIF9fQywgX19RKTsKICBfX0MgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUCk7CiAgX19DID0gdmVjX2FkZCAoX19DLCBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSBfX0MpWzFdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkX3BpMzIgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgX192NHNpIF9fQyA9IChfX3Y0c2kpIChfX3YyZHUpIHsgX19BLCBfX0IgfTsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSwgIDAsICAxLCAgMiwgIDMsICA4LCAgOSwgMTAsIDExIH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgNCwgIDUsICA2LCAgNywgMTIsIDEzLCAxNCwgMTUsICA0LCAgNSwgIDYsICA3LCAxMiwgMTMsIDE0LCAxNSB9OwogIF9fdjRzaSBfX0QgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUSk7CiAgX19DID0gdmVjX3Blcm0gKF9fQywgX19DLCBfX1ApOwogIF9fQyA9IHZlY19hZGQgKF9fQywgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgX19DKVsxXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkc19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192NHNpIF9fQyA9IHsgMCB9LCBfX0QgPSB7IDAgfTsKICBfX0MgPSB2ZWNfc3VtNHMgKChfX3Y4aGkpIF9fQSwgX19DKTsKICBfX0QgPSB2ZWNfc3VtNHMgKChfX3Y4aGkpIF9fQiwgX19EKTsKICBfX0MgPSAoX192NHNpKSB2ZWNfcGFja3MgKF9fQywgX19EKTsKICByZXR1cm4gKF9fbTEyOGkpIF9fQzsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faGFkZHNfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBjb25zdCBfX3Y0c2kgX196ZXJvID0geyAwIH07CiAgX192OGhpIF9fQyA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19BLCBfX0IgfTsKICBfX3Y0c2kgX19EID0gdmVjX3N1bTRzIChfX0MsIF9femVybyk7CiAgX19DID0gdmVjX3BhY2tzIChfX0QsIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIF9fQylbMV07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faHN1Yl9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsIDE2LCAxNywgMjAsIDIxLCAyNCwgMjUsIDI4LCAyOSB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAxOCwgMTksIDIyLCAyMywgMjYsIDI3LCAzMCwgMzEgfTsKICBfX3Y4aGkgX19DID0gdmVjX3Blcm0gKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSkgX19CLCBfX1ApOwogIF9fdjhoaSBfX0QgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUSk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3ViIChfX0MsIF9fRCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faHN1Yl9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICAyLCAgMywgIDgsICA5LCAxMCwgMTEsIDE2LCAxNywgMTgsIDE5LCAyNCwgMjUsIDI2LCAyNyB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDQsICA1LCAgNiwgIDcsIDEyLCAxMywgMTQsIDE1LCAyMCwgMjEsIDIyLCAyMywgMjgsIDI5LCAzMCwgMzEgfTsKICBfX3Y0c2kgX19DID0gdmVjX3Blcm0gKChfX3Y0c2kpIF9fQSwgKF9fdjRzaSkgX19CLCBfX1ApOwogIF9fdjRzaSBfX0QgPSB2ZWNfcGVybSAoKF9fdjRzaSkgX19BLCAoX192NHNpKSBfX0IsIF9fUSk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3ViIChfX0MsIF9fRCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgIDAsICAxLCAgNCwgIDUsICA4LCAgOSwgMTIsIDEzIH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUsICAyLCAgMywgIDYsICA3LCAxMCwgMTEsIDE0LCAxNSB9OwogIF9fdjhoaSBfX0MgPSAoX192OGhpKSAoX192MmR1KSB7IF9fQSwgX19CIH07CiAgX192OGhpIF9fRCA9IHZlY19wZXJtIChfX0MsIF9fQywgX19RKTsKICBfX0MgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUCk7CiAgX19DID0gdmVjX3N1YiAoX19DLCBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSBfX0MpWzFdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3ViX3BpMzIgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICAyLCAgMywgIDgsICA5LCAxMCwgMTEsICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDQsICA1LCAgNiwgIDcsIDEyLCAxMywgMTQsIDE1LCAgNCwgIDUsICA2LCAgNywgMTIsIDEzLCAxNCwgMTUgfTsKICBfX3Y0c2kgX19DID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0EsIF9fQiB9OwogIF9fdjRzaSBfX0QgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUSk7CiAgX19DID0gdmVjX3Blcm0gKF9fQywgX19DLCBfX1ApOwogIF9fQyA9IHZlY19zdWIgKF9fQywgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgX19DKVsxXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3Vic19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsIDE2LCAxNywgMjAsIDIxLCAyNCwgMjUsIDI4LCAyOSB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAxOCwgMTksIDIyLCAyMywgMjYsIDI3LCAzMCwgMzEgfTsKICBfX3Y4aGkgX19DID0gdmVjX3Blcm0gKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSkgX19CLCBfX1ApOwogIF9fdjhoaSBfX0QgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUSk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3VicyAoX19DLCBfX0QpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3Vic19waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjE2cXUgX19QID0KICAgIHsgIDAsICAxLCAgNCwgIDUsICA4LCAgOSwgMTIsIDEzLCAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMgfTsKICBjb25zdCBfX3YxNnF1IF9fUSA9CiAgICB7ICAyLCAgMywgIDYsICA3LCAxMCwgMTEsIDE0LCAxNSwgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1IH07CiAgX192OGhpIF9fQyA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19BLCBfX0IgfTsKICBfX3Y4aGkgX19EID0gdmVjX3Blcm0gKF9fQywgX19DLCBfX1ApOwogIF9fdjhoaSBfX0UgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUSk7CiAgX19DID0gdmVjX3N1YnMgKF9fRCwgX19FKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgX19DKVsxXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaHVmZmxlX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIGNvbnN0IF9fdjE2cWkgX196ZXJvID0geyAwIH07CiAgX192ZWN0b3IgX19ib29sIGNoYXIgX19zZWxlY3QgPSB2ZWNfY21wbHQgKChfX3YxNnFpKSBfX0IsIF9femVybyk7CiAgX192MTZxaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjE2cWkpIF9fQSwgKF9fdjE2cWkpIF9fQSwgKF9fdjE2cXUpIF9fQik7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc2VsIChfX0MsIF9femVybywgX19zZWxlY3QpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaHVmZmxlX3BpOCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBjb25zdCBfX3YxNnFpIF9femVybyA9IHsgMCB9OwogIF9fdjE2cWkgX19DID0gKF9fdjE2cWkpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICBfX3YxNnFpIF9fRCA9IChfX3YxNnFpKSAoX192MmR1KSB7IF9fQiwgX19CIH07CiAgX192ZWN0b3IgX19ib29sIGNoYXIgX19zZWxlY3QgPSB2ZWNfY21wbHQgKChfX3YxNnFpKSBfX0QsIF9femVybyk7CiAgX19DID0gdmVjX3Blcm0gKChfX3YxNnFpKSBfX0MsIChfX3YxNnFpKSBfX0MsIChfX3YxNnF1KSBfX0QpOwogIF9fQyA9IHZlY19zZWwgKF9fQywgX196ZXJvLCBfX3NlbGVjdCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIChfX0MpKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaWduX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIGNvbnN0IF9fdjE2cWkgX196ZXJvID0geyAwIH07CiAgX192MTZxaSBfX3NlbGVjdG5lZyA9IChfX3YxNnFpKSB2ZWNfY21wbHQgKChfX3YxNnFpKSBfX0IsIF9femVybyk7CiAgX192MTZxaSBfX3NlbGVjdHBvcyA9CiAgICAoX192MTZxaSkgdmVjX25lZyAoKF9fdjE2cWkpIHZlY19jbXBndCAoKF9fdjE2cWkpIF9fQiwgX196ZXJvKSk7CiAgX192MTZxaSBfX2NvbnYgPSB2ZWNfYWRkIChfX3NlbGVjdG5lZywgX19zZWxlY3Rwb3MpOwogIHJldHVybiAoX19tMTI4aSkgdmVjX211bCAoKF9fdjE2cWkpIF9fQSwgKF9fdjE2cWkpIF9fY29udik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2lnbl9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192OGhpIF9femVybyA9IHsgMCB9OwogIF9fdjhoaSBfX3NlbGVjdG5lZyA9IChfX3Y4aGkpIHZlY19jbXBsdCAoKF9fdjhoaSkgX19CLCBfX3plcm8pOwogIF9fdjhoaSBfX3NlbGVjdHBvcyA9CiAgICAoX192OGhpKSB2ZWNfbmVnICgoX192OGhpKSB2ZWNfY21wZ3QgKChfX3Y4aGkpIF9fQiwgX196ZXJvKSk7CiAgX192OGhpIF9fY29udiA9IHZlY19hZGQgKF9fc2VsZWN0bmVnLCBfX3NlbGVjdHBvcyk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbXVsICgoX192OGhpKSBfX0EsIChfX3Y4aGkpIF9fY29udik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2lnbl9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192NHNpIF9femVybyA9IHsgMCB9OwogIF9fdjRzaSBfX3NlbGVjdG5lZyA9IChfX3Y0c2kpIHZlY19jbXBsdCAoKF9fdjRzaSkgX19CLCBfX3plcm8pOwogIF9fdjRzaSBfX3NlbGVjdHBvcyA9CiAgICAoX192NHNpKSB2ZWNfbmVnICgoX192NHNpKSB2ZWNfY21wZ3QgKChfX3Y0c2kpIF9fQiwgX196ZXJvKSk7CiAgX192NHNpIF9fY29udiA9IHZlY19hZGQgKF9fc2VsZWN0bmVnLCBfX3NlbGVjdHBvcyk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbXVsICgoX192NHNpKSBfX0EsIChfX3Y0c2kpIF9fY29udik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NpZ25fcGk4IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjE2cWkgX196ZXJvID0geyAwIH07CiAgX192MTZxaSBfX0MgPSAoX192MTZxaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fdjE2cWkgX19EID0gKF9fdjE2cWkpIChfX3YyZHUpIHsgX19CLCBfX0IgfTsKICBfX0MgPSAoX192MTZxaSkgX21tX3NpZ25fZXBpOCAoKF9fbTEyOGkpIF9fQywgKF9fbTEyOGkpIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIChfX0MpKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2lnbl9waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjhoaSBfX3plcm8gPSB7IDAgfTsKICBfX3Y4aGkgX19DID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fdjhoaSBfX0QgPSAoX192OGhpKSAoX192MmR1KSB7IF9fQiwgX19CIH07CiAgX19DID0gKF9fdjhoaSkgX21tX3NpZ25fZXBpMTYgKChfX20xMjhpKSBfX0MsIChfX20xMjhpKSBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSAoX19DKSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NpZ25fcGkzMiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBjb25zdCBfX3Y0c2kgX196ZXJvID0geyAwIH07CiAgX192NHNpIF9fQyA9IChfX3Y0c2kpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICBfX3Y0c2kgX19EID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0IsIF9fQiB9OwogIF9fQyA9IChfX3Y0c2kpIF9tbV9zaWduX2VwaTMyICgoX19tMTI4aSkgX19DLCAoX19tMTI4aSkgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgKF9fQykpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21hZGR1YnNfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjhoaSBfX3Vuc2lnbmVkID0gdmVjX3NwbGF0cyAoKHNpZ25lZCBzaG9ydCkgMHgwMGZmKTsKICBfX3Y4aGkgX19DID0gdmVjX2FuZCAodmVjX3VucGFja2ggKChfX3YxNnFpKSBfX0EpLCBfX3Vuc2lnbmVkKTsKICBfX3Y4aGkgX19EID0gdmVjX2FuZCAodmVjX3VucGFja2wgKChfX3YxNnFpKSBfX0EpLCBfX3Vuc2lnbmVkKTsKICBfX3Y4aGkgX19FID0gdmVjX3VucGFja2ggKChfX3YxNnFpKSBfX0IpOwogIF9fdjhoaSBfX0YgPSB2ZWNfdW5wYWNrbCAoKF9fdjE2cWkpIF9fQik7CiAgX19DID0gdmVjX211bCAoX19DLCBfX0UpOwogIF9fRCA9IHZlY19tdWwgKF9fRCwgX19GKTsKICBjb25zdCBfX3YxNnF1IF9fb2RkcyAgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsIDE2LCAxNywgMjAsIDIxLCAyNCwgMjUsIDI4LCAyOSB9OwogIGNvbnN0IF9fdjE2cXUgX19ldmVucyA9CiAgICB7ICAyLCAgMywgIDYsICA3LCAxMCwgMTEsIDE0LCAxNSwgMTgsIDE5LCAyMiwgMjMsIDI2LCAyNywgMzAsIDMxIH07CiAgX19FID0gdmVjX3Blcm0gKF9fQywgX19ELCBfX29kZHMpOwogIF9fRiA9IHZlY19wZXJtIChfX0MsIF9fRCwgX19ldmVucyk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkcyAoX19FLCBfX0YpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tYWRkdWJzX3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgX192OGhpIF9fQyA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICBfX0MgPSB2ZWNfdW5wYWNrbCAoKF9fdjE2cWkpIF9fQyk7CiAgY29uc3QgX192OGhpIF9fdW5zaWduZWQgPSB2ZWNfc3BsYXRzICgoc2lnbmVkIHNob3J0KSAweDAwZmYpOwogIF9fQyA9IHZlY19hbmQgKF9fQywgX191bnNpZ25lZCk7CiAgX192OGhpIF9fRCA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19CLCBfX0IgfTsKICBfX0QgPSB2ZWNfdW5wYWNrbCAoKF9fdjE2cWkpIF9fRCk7CiAgX19EID0gdmVjX211bCAoX19DLCBfX0QpOwogIGNvbnN0IF9fdjE2cXUgX19vZGRzICA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgMTYsIDE3LCAyMCwgMjEsIDI0LCAyNSwgMjgsIDI5IH07CiAgY29uc3QgX192MTZxdSBfX2V2ZW5zID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAxOCwgMTksIDIyLCAyMywgMjYsIDI3LCAzMCwgMzEgfTsKICBfX0MgPSB2ZWNfcGVybSAoX19ELCBfX0QsIF9fb2Rkcyk7CiAgX19EID0gdmVjX3Blcm0gKF9fRCwgX19ELCBfX2V2ZW5zKTsKICBfX0MgPSB2ZWNfYWRkcyAoX19DLCBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSAoX19DKSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsaHJzX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3Y0c2kgX19DID0gdmVjX3VucGFja2ggKChfX3Y4aGkpIF9fQSk7CiAgX192NHNpIF9fRCA9IHZlY191bnBhY2toICgoX192OGhpKSBfX0IpOwogIF9fQyA9IHZlY19tdWwgKF9fQywgX19EKTsKICBfX0QgPSB2ZWNfdW5wYWNrbCAoKF9fdjhoaSkgX19BKTsKICBfX3Y0c2kgX19FID0gdmVjX3VucGFja2wgKChfX3Y4aGkpIF9fQik7CiAgX19EID0gdmVjX211bCAoX19ELCBfX0UpOwogIGNvbnN0IF9fdjRzdSBfX3NoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGludCkgMTQpOwogIF9fQyA9IHZlY19zciAoX19DLCBfX3NoaWZ0KTsKICBfX0QgPSB2ZWNfc3IgKF9fRCwgX19zaGlmdCk7CiAgY29uc3QgX192NHNpIF9fb25lcyA9IHZlY19zcGxhdHMgKChzaWduZWQgaW50KSAxKTsKICBfX0MgPSB2ZWNfYWRkIChfX0MsIF9fb25lcyk7CiAgX19DID0gdmVjX3NyIChfX0MsIChfX3Y0c3UpIF9fb25lcyk7CiAgX19EID0gdmVjX2FkZCAoX19ELCBfX29uZXMpOwogIF9fRCA9IHZlY19zciAoX19ELCAoX192NHN1KSBfX29uZXMpOwogIHJldHVybiAoX19tMTI4aSkgdmVjX3BhY2sgKF9fQywgX19EKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsaHJzX3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgX192NHNpIF9fQyA9IChfX3Y0c2kpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICBfX0MgPSB2ZWNfdW5wYWNraCAoKF9fdjhoaSkgX19DKTsKICBfX3Y0c2kgX19EID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0IsIF9fQiB9OwogIF9fRCA9IHZlY191bnBhY2toICgoX192OGhpKSBfX0QpOwogIF9fQyA9IHZlY19tdWwgKF9fQywgX19EKTsKICBjb25zdCBfX3Y0c3UgX19zaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBpbnQpIDE0KTsKICBfX0MgPSB2ZWNfc3IgKF9fQywgX19zaGlmdCk7CiAgY29uc3QgX192NHNpIF9fb25lcyA9IHZlY19zcGxhdHMgKChzaWduZWQgaW50KSAxKTsKICBfX0MgPSB2ZWNfYWRkIChfX0MsIF9fb25lcyk7CiAgX19DID0gdmVjX3NyIChfX0MsIChfX3Y0c3UpIF9fb25lcyk7CiAgX192OGhpIF9fRSA9IHZlY19wYWNrIChfX0MsIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIChfX0UpKVswXTsKfQoKI2Vsc2UKI2luY2x1ZGVfbmV4dCA8dG1taW50cmluLmg+CiNlbmRpZiAvKiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pICovCgojZW5kaWYgLyogVE1NSU5UUklOX0hfICovCgAvLz09PS0tIGFsbG9jYXRvcl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlciBmb3IgYWxsb2NhdG9yIHVzZWQgaW4gc2FuaXRpemVycyAoQVNhbi9UU2FuL01TYW4pLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9BTExPQ0FUT1JfSU5URVJGQUNFX0gKI2RlZmluZSBTQU5JVElaRVJfQUxMT0NBVE9SX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c3RkZGVmLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgogIC8qIFJldHVybnMgdGhlIGVzdGltYXRlZCBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3aWxsIGJlIHJlc2VydmVkIGJ5IGFsbG9jYXRvcgogICAgIGZvciByZXF1ZXN0IG9mICJzaXplIiBieXRlcy4gSWYgYWxsb2NhdG9yIGNhbid0IGFsbG9jYXRlIHRoYXQgbXVjaAogICAgIG1lbW9yeSwgcmV0dXJucyB0aGUgbWF4aW1hbCBwb3NzaWJsZSBhbGxvY2F0aW9uIHNpemUsIG90aGVyd2lzZSByZXR1cm5zCiAgICAgInNpemUiLiAqLwogIHNpemVfdCBfX3Nhbml0aXplcl9nZXRfZXN0aW1hdGVkX2FsbG9jYXRlZF9zaXplKHNpemVfdCBzaXplKTsKCiAgLyogUmV0dXJucyB0cnVlIGlmIHAgd2FzIHJldHVybmVkIGJ5IHRoZSBhbGxvY2F0b3IgYW5kCiAgICAgaXMgbm90IHlldCBmcmVlZC4gKi8KICBpbnQgX19zYW5pdGl6ZXJfZ2V0X293bmVyc2hpcChjb25zdCB2b2xhdGlsZSB2b2lkICpwKTsKCiAgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlc2VydmVkIGZvciB0aGUgcG9pbnRlciBwLgogICAgIFJlcXVpcmVzIChnZXRfb3duZXJzaGlwKHApID09IHRydWUpIG9yIChwID09IDApLiAqLwogIHNpemVfdCBfX3Nhbml0aXplcl9nZXRfYWxsb2NhdGVkX3NpemUoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCk7CgogIC8qIE51bWJlciBvZiBieXRlcywgYWxsb2NhdGVkIGFuZCBub3QgeWV0IGZyZWVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gKi8KICBzaXplX3QgX19zYW5pdGl6ZXJfZ2V0X2N1cnJlbnRfYWxsb2NhdGVkX2J5dGVzKHZvaWQpOwoKICAvKiBOdW1iZXIgb2YgYnl0ZXMsIG1tYXBlZCBieSB0aGUgYWxsb2NhdG9yIHRvIGZ1bGZpbGwgYWxsb2NhdGlvbiByZXF1ZXN0cy4KICAgICBHZW5lcmFsbHksIGZvciByZXF1ZXN0IG9mIFggYnl0ZXMsIGFsbG9jYXRvciBjYW4gcmVzZXJ2ZSBhbmQgYWRkIHRvIGZyZWUKICAgICBsaXN0cyBhIGxhcmdlIG51bWJlciBvZiBjaHVua3Mgb2Ygc2l6ZSBYIHRvIHVzZSB0aGVtIGZvciBmdXR1cmUgcmVxdWVzdHMuCiAgICAgQWxsIHRoZXNlIGNodW5rcyBjb3VudCB0b3dhcmQgdGhlIGhlYXAgc2l6ZS4gQ3VycmVudGx5LCBhbGxvY2F0b3IgbmV2ZXIKICAgICByZWxlYXNlcyBtZW1vcnkgdG8gT1MgKGluc3RlYWQsIGl0IGp1c3QgcHV0cyBmcmVlZCBjaHVua3MgdG8gZnJlZQogICAgIGxpc3RzKS4gKi8KICBzaXplX3QgX19zYW5pdGl6ZXJfZ2V0X2hlYXBfc2l6ZSh2b2lkKTsKCiAgLyogTnVtYmVyIG9mIGJ5dGVzLCBtbWFwZWQgYnkgdGhlIGFsbG9jYXRvciwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZnVsZmlsbAogICAgIGFsbG9jYXRpb24gcmVxdWVzdHMuIFdoZW4gYSB1c2VyIHByb2dyYW0gZnJlZXMgbWVtb3J5IGNodW5rLCBpdCBjYW4gZmlyc3QKICAgICBmYWxsIGludG8gcXVhcmFudGluZSBhbmQgd2lsbCBjb3VudCB0b3dhcmQgX19zYW5pdGl6ZXJfZ2V0X2ZyZWVfYnl0ZXMoKQogICAgIGxhdGVyLiAqLwogIHNpemVfdCBfX3Nhbml0aXplcl9nZXRfZnJlZV9ieXRlcyh2b2lkKTsKCiAgLyogTnVtYmVyIG9mIGJ5dGVzIGluIHVubWFwcGVkIHBhZ2VzLCB0aGF0IGFyZSByZWxlYXNlZCB0byBPUy4gQ3VycmVudGx5LAogICAgIGFsd2F5cyByZXR1cm5zIDAuICovCiAgc2l6ZV90IF9fc2FuaXRpemVyX2dldF91bm1hcHBlZF9ieXRlcyh2b2lkKTsKCiAgLyogTWFsbG9jIGhvb2tzIHRoYXQgbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgdXNlci4KICAgICBfX3Nhbml0aXplcl9tYWxsb2NfaG9vayhwdHIsIHNpemUpIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlcgogICAgICAgYWxsb2NhdGlvbiBvZiAic2l6ZSIgYnl0ZXMsIHdoaWNoIHJldHVybmVkICJwdHIiLgogICAgIF9fc2FuaXRpemVyX2ZyZWVfaG9vayhwdHIpIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUKICAgICAgIGRlYWxsb2NhdGlvbiBvZiAicHRyIi4gKi8KICB2b2lkIF9fc2FuaXRpemVyX21hbGxvY19ob29rKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpOwogIHZvaWQgX19zYW5pdGl6ZXJfZnJlZV9ob29rKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnB0cik7CgogIC8qIEluc3RhbGxzIGEgcGFpciBvZiBob29rcyBmb3IgbWFsbG9jL2ZyZWUuCiAgICAgU2V2ZXJhbCAoY3VycmVudGx5LCA1KSBob29rIHBhaXJzIG1heSBiZSBpbnN0YWxsZWQsIHRoZXkgYXJlIGV4ZWN1dGVkCiAgICAgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBpbnN0YWxsZWQgYW5kIGFmdGVyIGNhbGxpbmcKICAgICBfX3Nhbml0aXplcl9tYWxsb2NfaG9vay9fX3Nhbml0aXplcl9mcmVlX2hvb2suCiAgICAgVW5saWtlIF9fc2FuaXRpemVyX21hbGxvY19ob29rL19fc2FuaXRpemVyX2ZyZWVfaG9vayB0aGVzZSBob29rcyBjYW4gYmUKICAgICBjaGFpbmVkIGFuZCBkbyBub3QgcmVseSBvbiB3ZWFrIHN5bWJvbHMgd29ya2luZyBvbiB0aGUgcGxhdGZvcm0sIGJ1dAogICAgIHJlcXVpcmUgX19zYW5pdGl6ZXJfaW5zdGFsbF9tYWxsb2NfYW5kX2ZyZWVfaG9va3MgdG8gYmUgY2FsbGVkIGF0IHN0YXJ0dXAKICAgICBhbmQgdGh1cyB3aWxsIG5vdCBiZSBjYWxsZWQgb24gbWFsbG9jL2ZyZWUgdmVyeSBlYXJseSBpbiB0aGUgcHJvY2Vzcy4KICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgaG9va3MgY3VycmVudGx5IGluc3RhbGxlZCBvciAwIG9uIGZhaWx1cmUuCiAgICAgTm90IHRocmVhZC1zYWZlLCBzaG91bGQgYmUgY2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgc3RhcnRpbmcKICAgICBvdGhlciB0aHJlYWRzLgogICovCiAgaW50IF9fc2FuaXRpemVyX2luc3RhbGxfbWFsbG9jX2FuZF9mcmVlX2hvb2tzKAogICAgICB2b2lkICgqbWFsbG9jX2hvb2spKGNvbnN0IHZvbGF0aWxlIHZvaWQgKiwgc2l6ZV90KSwKICAgICAgdm9pZCAoKmZyZWVfaG9vaykoY29uc3Qgdm9sYXRpbGUgdm9pZCAqKSk7CgogIC8qIERyYWlucyBhbGxvY2F0b3IgcXVhcmFudGluZXMgKGNhbGxpbmcgdGhyZWFkJ3MgYW5kIGdsb2JhbCBvbmVzKSwgcmV0dXJucwogICAgIGZyZWVkIG1lbW9yeSBiYWNrIHRvIE9TIGFuZCByZWxlYXNlcyBvdGhlciBub24tZXNzZW50aWFsIGludGVybmFsIGFsbG9jYXRvcgogICAgIHJlc291cmNlcyBpbiBhdHRlbXB0IHRvIHJlZHVjZSBwcm9jZXNzIFJTUy4KICAgICBDdXJyZW50bHkgYXZhaWxhYmxlIHdpdGggQVNhbiBvbmx5LgogICovCiAgdm9pZCBfX3Nhbml0aXplcl9wdXJnZV9hbGxvY2F0b3Iodm9pZCk7CiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmCgBzYW5pdGl6ZXIvYXNhbl9pbnRlcmZhY2UuaABzYW5pdGl6ZXIvdHNhbl9pbnRlcmZhY2UuaABzYW5pdGl6ZXIvdHNhbl9pbnRlcmZhY2VfYXRvbWljLmgAQ291bGRuJ3Qgc2VlayAAOgBleHRlcm5hbC9yZWdleC1yZTIvcmUyL3BhcnNlLmNjACBpbiBQcm9nOjpGYW5vdXQoKQBDYW5ub3QgdXNlIFNlYXJjaE9uZVBhc3MgZm9yIHVuYW5jaG9yZWQgbWF0Y2hlcy4AUmVnZXhwIG5vdCBkZXN0cm95ZWQuAENhc2Ugbm90IGhhbmRsZWQgaW4gQ29tcHV0ZVNpbXBsZTogAENvYWxlc2NlV2Fsa2VyOjpTaG9ydFZpc2l0IGNhbGxlZABJbXBlcmlhbF9BcmFtYWljAExsAFBhdV9DaW5fSGF1AHNpZ2FsdHN0YWNrKCkgZmFpbGVkIHdpdGggZXJybm89JWQAICAgIEAgLi4uIGFuZCBhdCBsZWFzdCAlZCBtb3JlIGZyYW1lcwoAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC92ZHNvX3N1cHBvcnQuY2MAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9lbGZfbWVtX2ltYWdlLmNjAHN5bWJvbCAmJiB2ZXJzaW9uX3N5bWJvbABlbXB0eSBhcmVuYSBoYXMgbm9uLXBhZ2UtYWxpZ25lZCBibG9jawBEbgBwdABbXQBDaGVjayBzIDw9IGtNYXhGbGF0TGVuZ3RoIGZhaWxlZDogAFN0cmluZyBjYW5ub3QgZW5kIHdpdGggXHgAXHggY2Fubm90IGJlIGZvbGxvd2VkIGJ5IGEgbm9uLWhleCBkaWdpdABleGNlZWQgY2FwYWNpdHkgACBAACVzJXAgJXMgJXMAb3Bwb3J0dW5pc3RpYyBlbnRyb3B5IGZpbGwgZmFpbGVkAEVWUF9BRUFEX0NUWF9zZWFsIGZvciBBRVMtMTI4LUdDTSBmYWlsZWQuCgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYuYwBCSU8gcm91dGluZXMAb3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9jb21tb24ucGIuY2MALS10YXJnZXQ9Lip8LVcobm8tKT8oZXJyb3I9KT9hbWJpZ3VvdXMtbWVtYmVyLXRlbXBsYXRlfC1XKG5vLSk/KGVycm9yPSk/YmluZC10by10ZW1wb3JhcnktY29weXwtVyhuby0pPyhlcnJvcj0pP2Jvb2wtY29udmVyc2lvbnN8LVcobm8tKT8oZXJyb3I9KT9jXCtcKzB4LXN0YXRpYy1ub25pbnRlZ3JhbC1pbml0fC1XKG5vLSk/KGVycm9yPSk/Y29uc3RhbnQtY29udmVyc2lvbnwtVyhuby0pPyhlcnJvcj0pP2NvbnN0YW50LWxvZ2ljYWwtb3BlcmFuZHwtVyhuby0pPyhlcnJvcj0pP2dudXwtVyhuby0pPyhlcnJvcj0pP2dudS1kZXNpZ25hdG9yfC1XKG5vLSk/KGVycm9yPSk/aW5pdGlhbGl6ZXItb3ZlcnJpZGVzfC1XKG5vLSk/KGVycm9yPSk/aW52YWxpZC1ub3JldHVybnwtVyhuby0pPyhlcnJvcj0pP2xvY2FsLXR5cGUtdGVtcGxhdGUtYXJnc3wtVyhuby0pPyhlcnJvcj0pP21pc21hdGNoZWQtdGFnc3wtVyhuby0pPyhlcnJvcj0pP251bGwtZGVyZWZlcmVuY2V8LVcobm8tKT8oZXJyb3I9KT9vdXQtb2YtbGluZS1kZWNsYXJhdGlvbnwtVyhuby0pPyhlcnJvcj0pP3JlYWxseS1kb250LXVzZS1jbGFuZy1kaWFnbm9zdGljc3wtVyhuby0pPyhlcnJvcj0pP3RhdXRvbG9naWNhbC1jb21wYXJlfC1XKG5vLSk/KGVycm9yPSk/dW5rbm93bi1hdHRyaWJ1dGVzfC1XKG5vLSk/KGVycm9yPSk/dW5uYW1lZC10eXBlLXRlbXBsYXRlLWFyZ3N8LVcobm8tKT8oZXJyb3I9KT90aHJlYWQtc2FmZXR5LS4qfC1YY2xhbmc9Lip8LVhjbGFuZy1vbmx5PS4qfC1mKG5vLSk/YXNzdW1lLXNhbmUtb3BlcmF0b3ItbmV3fC1mKG5vLSk/Y2FyZXQtZGlhZ25vc3RpY3N8LWYobm8tKT9jYXRjaC11bmRlZmluZWQtYmVoYXZpb3J8LWYobm8tKT9jb2xvci1kaWFnbm9zdGljc3wtZihuby0pP2RpYWdub3N0aWNzLWZpeGl0LWluZm98LWYobm8tKT9kaWFnbm9zdGljcy1wYXJzZWFibGUtZml4aXRzfC1mKG5vLSk/ZGlhZ25vc3RpY3MtcHJpbnQtc291cmNlLXJhbmdlLWluZm98LWYobm8tKT9kaWFnbm9zdGljcy1zaG93LWNhdGVnb3J5Lip8LWYobm8tKT9oZWlub3VzLWdudS1leHRlbnNpb25zfC1mKG5vLSk/bWFjcm8tYmFja3RyYWNlLWxpbWl0Lip8LWYobm8tKT9zYW5pdGl6ZS1hZGRyZXNzLXplcm8tYmFzZS1zaGFkb3d8LWYobm8tKT9zYW5pdGl6ZS1ibGFja2xpc3R8LWYobm8tKT9zYW5pdGl6ZS1tZW1vcnktdHJhY2stb3JpZ2luc3wtZihuby0pP3Nhbml0aXplLXJlY292ZXJ8LWYobm8tKT9zYW5pdGl6ZT0uKnwtZihuby0pP3Nob3ctb3ZlcmxvYWRzLip8LWYobm8tKT91c2UtaW5pdC1hcnJheXwtZihuby0pP3RlbXBsYXRlLWJhY2t0cmFjZS1saW1pdC4qfC1mcGx1Z2luPS4qfC1mcGx1Z2luLWFyZy0uKnwtZ2xpbmUtdGFibGVzLW9ubHkARXJyb3Igd3JpdGluZyBmaWxlZGF0YTogAENvdWxkbid0IGNvbmZpZ3VyZSB2bmFtZXMgZnJvbSAlcwoALXJlc291cmNlLWRpcgBVc2luZyByZWFsIHdvcmtpbmcgZGlyZWN0b3J5ICgAKSAAQ2hlY2sgZmFpbGVkOiAhY3VycmVudF9maWxlc18uZW1wdHkoKQBDaGVjayBmYWlsZWQ6IGxsdm06OnN5czo6cGF0aDo6aXNfYWJzb2x1dGUoZmlsZV9uYW1lKQBidWlsdGluAF9fY2xhbmdfY3VkYV9tYXRoX2ZvcndhcmRfZGVjbGFyZXMuaABfX2NsYW5nX2N1ZGFfcnVudGltZV93cmFwcGVyLmgAYWR4aW50cmluLmgALyo9PT0tLS0tIGFybV9iZjE2LmggLSBBUk0gQkYxNiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQVJNX0JGMTZfSAojZGVmaW5lIF9fQVJNX0JGMTZfSAoKdHlwZWRlZiBfX2JmMTYgYmZsb2F0MTZfdDsKI2RlZmluZSBfX2FpIHN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgoKI3VuZGVmIF9fYWkKCiNlbmRpZgoAYXZ4NTEycGZpbnRyaW4uaAAvKj09PS0tLS0gYm1pMmludHJpbi5oIC0gQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxibWkyaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0JNSTJJTlRSSU5fSAojZGVmaW5lIF9fQk1JMklOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYm1pMiIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2J6aGlfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYnpoaV9zaShfX1gsIF9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3BkZXBfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcGRlcF9zaShfX1gsIF9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3BleHRfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcGV4dF9zaShfX1gsIF9fWSk7Cn0KCiNpZmRlZiAgX194ODZfNjRfXwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfYnpoaV91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iemhpX2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfcGRlcF91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wZGVwX2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfcGV4dF91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wZXh0X2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbXVseF91NjQgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX1ksCgkgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fUCkKewogIHVuc2lnbmVkIF9faW50MTI4IF9fcmVzID0gKHVuc2lnbmVkIF9faW50MTI4KSBfX1ggKiBfX1k7CiAgKl9fUCA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIChfX3JlcyA+PiA2NCk7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fcmVzOwp9CgojZWxzZSAvKiAhX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbXVseF91MzIgKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1ksIHVuc2lnbmVkIGludCAqX19QKQp7CiAgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19YICogX19ZOwogICpfX1AgPSAodW5zaWduZWQgaW50KSAoX19yZXMgPj4gMzIpOwogIHJldHVybiAodW5zaWduZWQgaW50KSBfX3JlczsKfQoKI2VuZGlmIC8qICFfX3g4Nl82NF9fICAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fQk1JMklOVFJJTl9IICovCgAvLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdCEKLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCgoKI2lmbmRlZiBfSFZYX0hFWEFHT05fUFJPVE9TX0hfCiNkZWZpbmUgX0hWWF9IRVhBR09OX1BST1RPU19IXyAxCgojaWZkZWYgX19IVlhfXwojaWYgX19IVlhfTEVOR1RIX18gPT0gMTI4CiNkZWZpbmUgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKGEpIGEgIyMgXzEyOEIKI2Vsc2UKI2RlZmluZSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoYSkgYQojZW5kaWYKCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZleHRyYWN0KFZ1MzIsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92ZXh0cmFjdF9WUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZleHRyYWN0X1ZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9leHRyYWN0dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1oaShWc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfaGlfVyhIVlhfVmVjdG9yUGFpciBWc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9oaV9XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9oaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1sbyhWc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfbG9fVyhIVlhfVmVjdG9yUGFpciBWc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9sb19XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9sbykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12c3BsYXQoUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdnNwbGF0X1IoV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9YW5kKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9hbmRfUVEoSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfYW5kX1FRIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PWFuZChRczQsIVF0NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX2FuZF9RUW4oSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfYW5kX1FRbiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9hbmRfbikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW5vdChRczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9ub3RfUShIVlhfVmVjdG9yUHJlZCBRcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX25vdF9RIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX25vdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW9yKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9vcl9RUShIVlhfVmVjdG9yUHJlZCBRcywgSFZYX1ZlY3RvclByZWQgUXQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV9vcl9RUSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW9yKFFzNCwhUXQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1Ffb3JfUVFuKEhWWF9WZWN0b3JQcmVkIFFzLCBIVlhfVmVjdG9yUHJlZCBRdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX29yX1FRbiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9vcl9uKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dnNldHEoUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZzZXRxX1IoV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdnNldHFfUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9zY2FsYXIyKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9eG9yKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV94b3JfUVEoSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfeG9yX1FRIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdjQpIHZtZW0oUnQzMisjczQpPVZzMzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtZW1fUW5SSVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUW5SSVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX25xcHJlZF9haSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdjQpIHZtZW0oUnQzMisjczQpOm50PVZzMzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtZW1fUW5SSVZfbnQoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUW5SSVZfbnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX250X25xcHJlZF9haSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKFF2NCkgdm1lbShSdDMyKyNzNCk6bnQ9VnMzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1lbV9RUklWX250KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yKiBSdCwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVk1fU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92bWVtX1FSSVZfbnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX250X3FwcmVkX2FpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSB2bWVtKFJ0MzIrI3M0KT1WczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92bWVtX1FSSVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUVJJViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdlMzMmJfcXByZWRfYWkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dmFic2RpZmYoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YWJzZGlmZl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YWJzZGlmZl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzZGlmZmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFic2RpZmYoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhYnNkaWZmX1Z1YlZ1YihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdmFic2RpZmZfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzZGlmZnViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhYnNkaWZmKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YWJzZGlmZl9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZhYnNkaWZmX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2RpZmZ1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12YWJzZGlmZihWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnV3X3ZhYnNkaWZmX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZhYnNkaWZmX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhYnNkaWZmdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhYnMoVnUzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFic19WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhYnNfVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhYnNoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFicyhWdTMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFic19WaF9zYXQoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWJzX1ZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2hfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmFicyhWdTMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWJzX1Z3KEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFic19WdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic3cpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWJzKFZ1MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWJzX1Z3X3NhdChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhYnNfVndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzd19zYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12YWRkKFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWRkX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92YWRkX1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5iPXZhZGQoVnV1MzIuYixWdnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZhZGRfV2JXYihIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XYl92YWRkX1diV2IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRiX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi5iKz1WdTMyLmIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX2NvbmRhY2NfUW5WYlZiKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX2NvbmRhY2NfUW5WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkYm5xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLmIrPVZ1MzIuYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfY29uZGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl9jb25kYWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkYnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YWRkKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92YWRkX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWRkX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZhZGQoVnV1MzIuaCxWdnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZhZGRfV2hXaChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92YWRkX1doV2ggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi5oKz1WdTMyLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX2NvbmRhY2NfUW5WaFZoKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX2NvbmRhY2NfUW5WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaG5xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLmgrPVZ1MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfY29uZGFjY19RVmhWaChIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF9jb25kYWNjX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaHEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YWRkKFZ1MzIuaCxWdjMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFkZF9WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhZGRfVmhWaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZhZGQoVnV1MzIuaCxWdnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92YWRkX1doV2hfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZhZGRfV2hXaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoc2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YWRkX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dmFkZChWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdmFkZF9WdWJWdWIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdmFkZF9WdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1YmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFkZChWdTMyLnViLFZ2MzIudWIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhZGRfVnViVnViX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YWRkX1Z1YlZ1Yl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1YnNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWI9dmFkZChWdXUzMi51YixWdnYzMi51Yik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3ViX3ZhZGRfV3ViV3ViX3NhdChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWJfdmFkZF9XdWJXdWJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dmFkZChWdTMyLnVoLFZ2MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3ZhZGRfVnVoVnVoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YWRkX1Z1aFZ1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dmFkZChWdXUzMi51aCxWdnYzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZhZGRfV3VoV3VoX3NhdChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWhfdmFkZF9XdWhXdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWhzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dmFkZChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdmFkZF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZF9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWRkX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YWRkX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnV1MzIudyxWdnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZhZGRfV3dXdyhIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192YWRkX1d3V3cgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi53Kz1WdTMyLncKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X2NvbmRhY2NfUW5Wd1Z3KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X2NvbmRhY2NfUW5Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkd25xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLncrPVZ1MzIudwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfY29uZGFjY19RVndWdyhIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd19jb25kYWNjX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFkZF9Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfVndWd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3c2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnV1MzIudyxWdnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YWRkX1d3V3dfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZhZGRfV3dXd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbGlnbihWdTMyLFZ2MzIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YWxpZ25fVlZSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbGlnbl9WVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbGlnbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmFsaWduKFZ1MzIsVnYzMiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbGlnbl9WVkkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbGlnbl9WVkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbGlnbmJpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YW5kX1ZWKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92YW5kX1ZWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoUXU0LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUVIoSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRfUVIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRxcnQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzJ8PXZhbmQoUXU0LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRvcl9WUVIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRvcl9WUVIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRxcnRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmFuZChWdTMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92YW5kX1ZSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZhbmRfVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmR2cnQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmFuZChWdTMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92YW5kb3JfUVZSKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92YW5kb3JfUVZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kdnJ0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhc2woVnUzMi5oLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92YXNsX1ZoUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzbF9WaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc2xoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzbChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzbF9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzbF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNsKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbF9Wd1IoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zhc2xfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12YXNsKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbGFjY19Wd1Z3UihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzbGFjY19Wd1Z3UiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzbHdfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmFzbChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbF9Wd1Z3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzbF9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsd3YpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXNyKFZ1MzIuaCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcl9WaFIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc3JfVmhSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhc3IoVnUzMi5oLFZ2MzIuaCxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3Zhc3JfVmhWaFJfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFzcl9WaFZoUl9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaGJybmRzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFzcihWdTMyLmgsVnYzMi5oLFJ0OCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zhc3JfVmhWaFJfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVmhWaFJfcm5kX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcmh1YnJuZHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12YXNyKFZ1MzIuaCxWdjMyLmgsUnQ4KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92YXNyX1ZoVmhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVmhWaFJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaHVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzcihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNyKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzcl9Wd1IoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zhc3JfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNydykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12YXNyKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzcmFjY19Wd1Z3UihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzcmFjY19Wd1Z3UiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcndfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzcihWdTMyLncsVnYzMi53LFJ0OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1IoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc3JfVndWd1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhc3IoVnUzMi53LFZ2MzIudyxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1Jfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcl9Wd1Z3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyd2hybmRzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXNyKFZ1MzIudyxWdjMyLncsUnQ4KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1Jfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YXNyX1Z3VndSX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcndoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhc3IoVnUzMi53LFZ2MzIudyxSdDgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3Zhc3JfVndWd1Jfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmFzcl9Wd1Z3Ul9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3dWhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNyKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YXNyX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXNyX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3dikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1WdTMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX2VxdWFsc19WKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9lcXVhbHNfViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzc2lnbikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzI9VnV1MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XX2VxdWFsc19XKEhWWF9WZWN0b3JQYWlyIFZ1dSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX2VxdWFsc19XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNzaWducCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhdmcoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZhdmdfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhdmdfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXZnKFZ1MzIuaCxWdjMyLmgpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmF2Z19WaFZoX3JuZChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhdmdfVmhWaF9ybmQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmdocm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhdmcoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhdmdfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZhdmdfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZndWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmF2ZyhWdTMyLnViLFZ2MzIudWIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhdmdfVnViVnViX3JuZChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YXZnX1Z1YlZ1Yl9ybmQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd1YnJuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXZnKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXZnX1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YXZnX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z3VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhdmcoVnUzMi51aCxWdjMyLnVoKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXZnX1Z1aFZ1aF9ybmQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmF2Z19WdWhWdWhfcm5kIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZndWhybmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXZnKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YXZnX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXZnX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmF2ZyhWdTMyLncsVnYzMi53KTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZhdmdfVndWd19ybmQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXZnX1Z3Vndfcm5kIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZnd3JuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12Y2wwKFZ1MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmNsMF9WdWgoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmNsMF9WdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZjbDBoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZjbDAoVnUzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192Y2wwX1Z1dyhIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1d192Y2wwX1Z1dyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmNsMHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZjb21iaW5lKFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XX3Zjb21iaW5lX1ZWKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192Y29tYmluZV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmNvbWJpbmUpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9IzAKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Zfdnplcm8oKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Zfdnplcm8gX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkMCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZkZWFsKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZkZWFsX1ZiKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmRlYWxfVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkZWFsYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZkZWFsZShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmRlYWxlX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92ZGVhbGVfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRlYWxiNHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12ZGVhbChWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92ZGVhbF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZkZWFsX1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGVhbGgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZkZWFsKFZ1MzIsVnYzMixSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192ZGVhbF9WVlIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1dfdmRlYWxfVlZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGVhbHZkZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12ZGVsdGEoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92ZGVsdGFfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZkZWx0YV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRlbHRhKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmRtcHkoVnUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92ZG1weV9WdWJSYihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZkbXB5X1Z1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oKz12ZG1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZkbXB5YWNjX1ZoVnViUmIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92ZG1weWFjY19WaFZ1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dmRtcHkoVnV1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZkbXB5X1d1YlJiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92ZG1weV9XdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHlidXNfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZkbXB5KFZ1dTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92ZG1weWFjY19XaFd1YlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZkbXB5YWNjX1doV3ViUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5YnVzX2R2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1MzIuaCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weV9WaFJiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlfVmhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFJiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlhY2NfVndWaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12ZG1weShWdXUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192ZG1weV9XaFJiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192ZG1weV9XaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192ZG1weWFjY19Xd1doUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmRtcHlhY2NfV3dXaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2R2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1dTMyLmgsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZkbXB5X1doUmhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9XaFJoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloaXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weWFjY19Wd1doUmhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weWFjY19Wd1doUmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhpc2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1MzIuaCxSdDMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfVmhSaF9zYXQoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9WaFJoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZkbXB5KFZ1MzIuaCxSdDMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFJoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3VmhSaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5aHNhdF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12ZG1weShWdXUzMi5oLFJ0MzIudWgsIzEpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfV2hSdWhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9XaFJ1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5aHN1aXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIudWgsIzEpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndXaFJ1aF9zYXQoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3V2hSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdWlzYXRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmRtcHkoVnUzMi5oLFJ0MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfVmhSdWhfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlfVmhSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdTMyLmgsUnQzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weWFjY19Wd1ZoUnVoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3VmhSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdXNhdF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12ZG1weShWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZkbXB5X1ZoVmhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5X1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWh2c2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZkbXB5KFZ1MzIuaCxWdjMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFZoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weWFjY19Wd1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWh2c2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudXc9dmRzYWQoVnV1MzIudWgsUnQzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdmRzYWRfV3VoUnVoKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdmRzYWRfV3VoUnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZHNhZHVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi51dys9dmRzYWQoVnV1MzIudWgsUnQzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdmRzYWRhY2NfV3V3V3VoUnVoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192ZHNhZGFjY19XdXdXdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zkc2FkdWhfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5lcShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcV9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxX1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5lcShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcWFuZF9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFhbmRfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWJfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZXEoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFvcl9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFvcl9RVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxYl9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmVxKFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxeGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXF4YWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFiX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZXEoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZXEoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFhbmRfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxYW5kX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFoX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmVxKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2Vxb3JfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2Vxb3JfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5lcShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcXhhY2NfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxeGFjY19RVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxaF94b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmVxKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmVxKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxYW5kX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcWFuZF9RVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxd19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5lcShWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcW9yX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcW9yX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXF3X29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZXEoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXF4YWNjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcXhhY2NfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcXdfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5ndChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndF9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0X1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5ndChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndGFuZF9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RhbmRfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGJfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZ3QoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3Rvcl9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3Rvcl9RVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0Yl9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmd0KFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0eGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3R4YWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RiX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZ3QoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZ3QoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RhbmRfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0YW5kX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RoX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmd0KFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0b3JfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0b3JfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5ndChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndHhhY2NfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0eGFjY19RVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0aF94b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmd0KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5ndChWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0YW5kX1FWdWJWdWIoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0YW5kX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmd0KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3Rvcl9RVnViVnViKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndG9yX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZ3QoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndHhhY2NfUVZ1YlZ1YihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3R4YWNjX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZ3QoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RfVnVoVnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmd0KFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RhbmRfUVZ1aFZ1aChIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RhbmRfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZ3QoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndG9yX1FWdWhWdWgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0b3JfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5ndChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0eGFjY19RVnVoVnVoKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndHhhY2NfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5ndChWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0X1Z1d1Z1dyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndF9WdXdWdXcgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHV3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZ3QoVnUzMi51dyxWdjMyLnV3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndGFuZF9RVnV3VnV3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndGFuZF9RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5ndChWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0b3JfUVZ1d1Z1dyhIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3Rvcl9RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d19vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmd0KFZ1MzIudXcsVnYzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3R4YWNjX1FWdXdWdXcoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0eGFjY19RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d194b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmd0KFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0X1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmd0KFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0YW5kX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndGFuZF9RVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0d19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5ndChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndG9yX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndG9yX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R3X29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZ3QoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3R4YWNjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndHhhY2NfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHdfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLnc9dmluc2VydChSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmluc2VydF9Wd1IoSFZYX1ZlY3RvciBWeCwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZpbnNlcnRfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92aW5zZXJ0d3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmxhbGlnbihWdTMyLFZ2MzIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bGFsaWduX1ZWUihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92bGFsaWduX1ZWUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxhbGlnbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmxhbGlnbihWdTMyLFZ2MzIsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bGFsaWduX1ZWSShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmxhbGlnbl9WVkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsYWxpZ25iaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12bHNyKFZ1MzIudWgsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92bHNyX1Z1aFIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92bHNyX1Z1aFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zsc3JoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmxzcihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmxzcl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmxzcl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHNyaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudXc9dmxzcihWdTMyLnV3LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmxzcl9WdXdSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmxzcl9WdXdSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHNydykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZsc3IoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3Zsc3JfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zsc3JfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxzcnd2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmx1dDMyKFZ1MzIuYixWdjMyLmIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmx1dDMyX1ZiVmJSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2dmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuYnw9dmx1dDMyKFZ1MzIuYixWdjMyLmIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmx1dDMyb3JfVmJWYlZiUihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmx1dDMyb3JfVmJWYlZiUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9vcmFjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12bHV0MTYoVnUzMi5iLFZ2MzIuaCxSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdmx1dDE2X1ZiVmhSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmh8PXZsdXQxNihWdTMyLmIsVnYzMi5oLFJ0OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bHV0MTZvcl9XaFZiVmhSKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZsdXQxNm9yX1doVmJWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hfb3JhY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bWF4KFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bWF4X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bWF4X1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXhoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZtYXgoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZtYXhfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZtYXhfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWF4dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dm1heChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdm1heF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdm1heF9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXh1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtYXgoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtYXhfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtYXhfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1heHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bWluKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bWluX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bWluX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtaW5oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZtaW4oVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZtaW5fVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZtaW5fVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWludWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dm1pbihWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdm1pbl9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdm1pbl9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtaW51aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtaW4oVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtaW5fVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtaW5fVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1pbncpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1wYShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1wYV9XdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dm1wYShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYWFjY19XaFd1YlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFhY2NfV2hXdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1wYShWdXUzMi51YixWdnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZtcGFfV3ViV2IoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViV2IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFidXN2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZtcGEoVnV1MzIudWIsVnZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJXdWIoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViV3ViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1dikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12bXBhKFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcGFfV2hSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYV9XaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhaGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcGEoVnV1MzIuaCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYWFjY19Xd1doUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYWFjY19Xd1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFoYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1Z1YlJiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1weV9WdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dm1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5YWNjX1doVnViUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1weShWdTMyLnViLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1Z1YlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlfVnViVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlidXN2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi5oKz12bXB5KFZ1MzIudWIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZtcHlhY2NfV2hWdWJWYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWdWJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1c3ZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1weV9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5YWNjX1doVmJWYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm1weWUoVnUzMi53LFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5ZV9Wd1Z1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5ZV9Wd1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWV3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dm1weShWdTMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcHlfVmhSaChIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcHlfVmhSaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1weWFjY19Xd1ZoUmhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192bXB5YWNjX1d3VmhSaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloc2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZtcHkoVnUzMi5oLFJ0MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlfVmhSaF9zMV9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFJoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloc3JzKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dm1weShWdTMyLmgsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bXB5X1ZoUmhfczFfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFJoX3MxX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWhzcykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12bXB5KFZ1MzIuaCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcHlfVmhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weV9WaFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWh1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dm1weShWdTMyLmgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhWdWgoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192bXB5YWNjX1d3VmhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlodXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZtcHkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhWaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcHlhY2NfV3dWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aHZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dm1weShWdTMyLmgsVnYzMi5oKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weV9WaFZoX3MxX3JuZF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFZoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlodnNycykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpZW8oVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpZW9fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5aWVvX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpZW9oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlpZShWdTMyLncsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWllYWNjX1Z3VndWaChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5aWVhY2NfVndWd1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWV3aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aWUoVnUzMi53LFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aWVfVndWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWllX1Z3VnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWV3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dm1weWllKFZ1MzIudyxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWllYWNjX1Z3VndWdWgoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWllYWNjX1Z3VndWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpZXd1aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bXB5aShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weWlfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bXB5aV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dm1weWkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhWaChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bXB5aWFjY19WaFZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpaF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bXB5aShWdTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weWlfVmhSYihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcHlpX1ZoUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpaGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dm1weWkoVnUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhSYihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWloYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aW8oVnUzMi53LFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpb19Wd1ZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlpb19Wd1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aW93aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpKFZ1MzIudyxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aV9Wd1JiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWl3YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5aShWdTMyLncsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1JiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlhY2NfVndWd1JiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aXdiX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpKFZ1MzIudyxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aV9Wd1JoKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWl3aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5aShWdTMyLncsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1JoKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlhY2NfVndWd1JoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aXdoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlvKFZ1MzIudyxWdjMyLmgpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5b3doKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm1weW8oVnUzMi53LFZ2MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5b19Wd1ZoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfcm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlvKFZ1MzIudyxWdjMyLmgpOjw8MTpybmQ6c2F0OnNoaWZ0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfcm5kX3NhdF9zaGlmdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfcm5kX3NhdF9zaGlmdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weW93aF9ybmRfc2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5byhWdTMyLncsVnYzMi5oKTo8PDE6c2F0OnNoaWZ0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfc2F0X3NoaWZ0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlvYWNjX1Z3VndWaF9zMV9zYXRfc2hpZnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfc2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dm1weShWdTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZtcHlfVnViUnViKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3VoX3ZtcHlfVnViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnVoKz12bXB5KFZ1MzIudWIsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdm1weWFjY19XdWhWdWJSdWIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlJ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXViX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dm1weShWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZtcHlfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVidikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudWgrPXZtcHkoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlZ1YihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVidl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZtcHkoVnUzMi51aCxSdDMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192bXB5X1Z1aFJ1aChIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192bXB5X1Z1aFJ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi51dys9dm1weShWdTMyLnVoLFJ0MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3V3X3ZtcHlhY2NfV3V3VnVoUnVoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weWFjY19XdXdWdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZtcHkoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192bXB5X1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weV9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12bXB5KFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdm1weWFjY19XdXdWdWhWdWgoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weWFjY19XdXdWdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aHZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZtdXgoUXQ0LFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Zfdm11eF9RVlYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92bXV4X1FWViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm11eCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZuYXZnKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bmF2Z19WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm5hdmdfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm5hdmdoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm5hdmcoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdm5hdmdfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdm5hdmdfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm5hdmcoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZuYXZnX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bmF2Z19Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z3cpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bm9ybWFtdChWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bm9ybWFtdF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zub3JtYW10X1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bm9ybWFtdGgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bm9ybWFtdChWdTMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bm9ybWFtdF9WdyhIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zub3JtYW10X1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bm9ybWFtdHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dm5vdChWdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bm90X1YoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zub3RfViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm5vdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12b3IoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92b3JfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zvcl9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2tlKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja2VfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2tlKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja2VfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrZV9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2soVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja19WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrX1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2hiX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12cGFjayhWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92cGFja19WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92cGFja19WaFZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBhY2todWJfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2tvKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja29fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrb19WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja29iKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2tvKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja29fVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrb19Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja29oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2soVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja19Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrX1Z3Vndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja3doX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12cGFjayhWdTMyLncsVnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92cGFja19Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92cGFja19Wd1Z3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBhY2t3dWhfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBvcGNvdW50KFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zwb3Bjb3VudF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zwb3Bjb3VudF9WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBvcGNvdW50aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12cmRlbHRhKFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdnJkZWx0YV9WVihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdnJkZWx0YV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJkZWx0YSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnJtcHlfVnViUmIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192cm1weV9WdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXMpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dnJtcHkoVnUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192cm1weWFjY19Wd1Z1YlJiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlhY2NfVndWdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZybXB5KFZ1dTMyLnViLFJ0MzIuYiwjdTEpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnJtcHlfV3ViUmJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192cm1weV9XdWJSYkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnVzaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dnJtcHkoVnV1MzIudWIsUnQzMi5iLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192cm1weWFjY19Xd1d1YlJiSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192cm1weWFjY19Xd1d1YlJiSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXNpX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIudWIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnJtcHlfVnViVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlfVnViVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnVzdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12cm1weShWdTMyLnViLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZybXB5YWNjX1Z3VnViVmIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlhY2NfVndWdWJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXN2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192cm1weV9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZybXB5X1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dnJtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZybXB5YWNjX1Z3VmJWYihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192cm1weWFjY19Wd1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZybXB5KFZ1MzIudWIsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weV9WdWJSdWIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnJtcHlfVnViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm1weXViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLnV3Kz12cm1weShWdTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdnJtcHlhY2NfVnV3VnViUnViKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5YWNjX1Z1d1Z1YlJ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1Yl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZybXB5KFZ1dTMyLnViLFJ0MzIudWIsI3UxKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192cm1weV9XdWJSdWJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJtcHlfV3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YmkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12cm1weShWdXUzMi51YixSdDMyLnViLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdnJtcHlhY2NfV3V3V3ViUnViSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJtcHlhY2NfV3V3V3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YmlfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZybXB5KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weV9WdWJWdWIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudXcrPXZybXB5KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weWFjY19WdXdWdWJWdWIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5YWNjX1Z1d1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZyb3IoVnUzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92cm9yX1ZSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zyb3JfVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12cm91bmQoVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cm91bmRfVmhWaF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92cm91bmRfVmhWaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3VuZGhiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZyb3VuZChWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92cm91bmRfVmhWaF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdnJvdW5kX1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmRodWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12cm91bmQoVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cm91bmRfVndWd19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92cm91bmRfVndWd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3VuZHdoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZyb3VuZChWdTMyLncsVnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92cm91bmRfVndWd19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdnJvdW5kX1Z3Vndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZyc2FkKFZ1dTMyLnViLFJ0MzIudWIsI3UxKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192cnNhZF9XdWJSdWJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJzYWRfV3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJzYWR1YmkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12cnNhZChWdXUzMi51YixSdDMyLnViLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdnJzYWRhY2NfV3V3V3ViUnViSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJzYWRhY2NfV3V3V3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJzYWR1YmlfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZzYXQoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92c2F0X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdnNhdF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0aHViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNhdChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNhdF9Wd1Z3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNhdF9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0d2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN4dChWdTMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnN4dF9WYihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZzeHRfVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12c3h0KFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192c3h0X1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnN4dF9WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNodWZmZShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNodWZmZV9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNodWZmZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNodWZmKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzaHVmZl9WYihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzaHVmZl9WYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZmYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzaHVmZmUoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzaHVmZmVfVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzaHVmZmVfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZmZWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12c2h1ZmYoVnUzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNodWZmX1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNodWZmX1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmZoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNodWZmbyhWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdnNodWZmb19WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnNodWZmb19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmZvYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzI9dnNodWZmKFZ1MzIsVnYzMixSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192c2h1ZmZfVlZSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX3ZzaHVmZl9WVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzaHVmZnZkZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuYj12c2h1ZmZvZShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZzaHVmZm9lX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XYl92c2h1ZmZvZV9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1Zm9lYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12c2h1ZmZvZShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZzaHVmZm9lX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92c2h1ZmZvZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1Zm9laCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzaHVmZm8oVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZzaHVmZm9fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZzaHVmZm9fVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZvaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzdWIoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzdWJfVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzdWJfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dnN1YihWdXUzMi5iLFZ2djMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2JfdnN1Yl9XYldiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1diX3ZzdWJfV2JXYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLmItPVZ1MzIuYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfY29uZG5hY19RblZiVmIoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfY29uZG5hY19RblZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJibnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIuYi09VnUzMi5iCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl9jb25kbmFjX1FWYlZiKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX2NvbmRuYWNfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJicSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzdWIoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZzdWJfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZzdWJfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN1YihWdXUzMi5oLFZ2djMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnN1Yl9XaFdoKEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZzdWJfV2hXaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLmgtPVZ1MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfY29uZG5hY19RblZoVmgoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfY29uZG5hY19RblZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJobnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIuaC09VnUzMi5oCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF9jb25kbmFjX1FWaFZoKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX2NvbmRuYWNfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJocSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzdWIoVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92c3ViX1ZoVmhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnN1Yl9WaFZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN1YihWdXUzMi5oLFZ2djMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZzdWJfV2hXaF9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdnN1Yl9XaFdoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZzdWJfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192c3ViX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJodykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12c3ViKFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92c3ViX1Z1YlZ1YihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92c3ViX1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnViaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12c3ViKFZ1MzIudWIsVnYzMi51Yik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWJfdnN1Yl9WdWJWdWJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZzdWJfVnViVnViX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51Yj12c3ViKFZ1dTMyLnViLFZ2djMyLnViKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWJfdnN1Yl9XdWJXdWJfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1Yl92c3ViX1d1Yld1Yl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ1YnNhdF9kdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12c3ViKFZ1MzIudWgsVnYzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdnN1Yl9WdWhWdWhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZzdWJfVnVoVnVoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51aD12c3ViKFZ1dTMyLnVoLFZ2djMyLnVoKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdnN1Yl9XdWhXdWhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92c3ViX1d1aFd1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ1aHNhdF9kdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12c3ViKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192c3ViX1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192c3ViX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVodykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzdWIoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZzdWJfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZzdWJfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YncpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdXUzMi53LFZ2djMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnN1Yl9Xd1d3KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZzdWJfV3dXdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLnctPVZ1MzIudwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfY29uZG5hY19RblZ3VncoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfY29uZG5hY19RblZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ3bnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIudy09VnUzMi53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd19jb25kbmFjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X2NvbmRuYWNfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ3cSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzdWIoVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192c3ViX1Z3Vndfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnN1Yl9Wd1Z3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdXUzMi53LFZ2djMyLncpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZzdWJfV3dXd19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnN1Yl9Xd1d3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZzd2FwKFF0NCxWdTMyLFZ2MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192c3dhcF9RVlYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192c3dhcF9RVlYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zzd2FwKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZ0bXB5KFZ1dTMyLmIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z0bXB5X1diUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5X1diUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dnRtcHkoVnV1MzIuYixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnRtcHlhY2NfV2hXYlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5YWNjX1doV2JSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnRtcHliX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12dG1weShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnRtcHlfV3ViUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5X1d1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dG1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dnRtcHkoVnV1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z0bXB5YWNjX1doV3ViUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdnRtcHlhY2NfV2hXdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnRtcHlidXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZ0bXB5KFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Z0bXB5X1doUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Z0bXB5X1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5aGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZ0bXB5KFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Z0bXB5YWNjX1d3V2hSYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192dG1weWFjY19Xd1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5aGJfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZ1bnBhY2soVnUzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z1bnBhY2tfVmIoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92dW5wYWNrX1ZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dW5wYWNrYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12dW5wYWNrKFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192dW5wYWNrX1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnVucGFja19WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmh8PXZ1bnBhY2tvKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92dW5wYWNrb29yX1doVmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z1bnBhY2tvb3JfV2hWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja29iKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi53fD12dW5wYWNrbyhWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnVucGFja29vcl9Xd1ZoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192dW5wYWNrb29yX1d3VmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z1bnBhY2tvaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dnVucGFjayhWdTMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1aF92dW5wYWNrX1Z1YihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92dW5wYWNrX1Z1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51dz12dW5wYWNrKFZ1MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3V3X3Z1bnBhY2tfVnVoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3Z1bnBhY2tfVnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dW5wYWNrdWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dnhvcihWdTMyLFZ2MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3Z4b3JfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Z4b3JfVlYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z4b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnVoPXZ6eHQoVnUzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdnp4dF9WdWIoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWhfdnp4dF9WdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z6YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudXc9dnp4dChWdTMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192enh0X1Z1aChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192enh0X1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnpoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNwbGF0KFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92c3BsYXRfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXRiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNwbGF0KFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92c3BsYXRfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXRoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dnNldHEyKFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92c2V0cTJfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92c2V0cTJfUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9zY2FsYXIydjIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkNC5iPXZzaHVmZmUoUXM0LmgsUXQ0LmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUWJfdnNodWZmZV9RaFFoKEhWWF9WZWN0b3JQcmVkIFFzLCBIVlhfVmVjdG9yUHJlZCBRdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RYl92c2h1ZmZlX1FoUWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3NodWZmZXFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQuaD12c2h1ZmZlKFFzNC53LFF0NC53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FoX3ZzaHVmZmVfUXdRdyhIVlhfVmVjdG9yUHJlZCBRcywgSFZYX1ZlY3RvclByZWQgUXQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUWhfdnNodWZmZV9Rd1F3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9zaHVmZmVxdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhZGQoVnUzMi5iLFZ2MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWRkX1ZiVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFkZF9WYlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGJzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dmFkZChWdXUzMi5iLFZ2djMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZhZGRfV2JXYl9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2JfdmFkZF9XYldiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncsUXg0KTpjYXJyeQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFkZF9Wd1Z3UV9jYXJyeShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yUHJlZCogUXgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFkZF9Wd1Z3UV9jYXJyeSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGNhcnJ5KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFkZCh2Y2xiKFZ1MzIuaCksVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFkZF92Y2xiX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWRkX3ZjbGJfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGNsYmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKHZjbGIoVnUzMi53KSxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWRkX3ZjbGJfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfdmNsYl9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkY2xidykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dmFkZChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZhZGRhY2NfV3dWaFZoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZGFjY19Xd1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRod19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZhZGQoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZhZGRhY2NfV2hWdWJWdWIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92YWRkYWNjX1doVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWJoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12YWRkKFZ1MzIudWIsVnYzMi5iKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92YWRkX1Z1YlZiX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YWRkX1Z1YlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZHVidWJiX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dmFkZChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdmFkZGFjY19Xd1Z1aFZ1aChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZhZGRhY2NfV3dWdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHdfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZhZGQoVnUzMi51dyxWdjMyLnV3KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192YWRkX1Z1d1Z1d19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmFkZF9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdXdzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZhZGQoVnV1MzIudXcsVnZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192YWRkX1d1d1d1d19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3ZhZGRfV3V3V3V3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZHV3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoIVF1NCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YW5kX1FuUihIVlhfVmVjdG9yUHJlZCBRdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmFuZF9RblIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRucXJ0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyfD12YW5kKCFRdTQsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdmFuZG9yX1ZRblIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRvcl9WUW5SIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kbnFydF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmFuZCghUXY0LFZ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUW5WKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmFuZF9RblYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmR2bnF2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoUXY0LFZ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92YW5kX1FWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kdnF2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmFzcihWdTMyLmgsVnYzMi5oLFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YXNyX1ZoVmhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFzcl9WaFZoUl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3JoYnNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXNyKFZ1MzIudXcsVnYzMi51dyxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXNyX1Z1d1Z1d1Jfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zhc3JfVnV3VnV3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNydXd1aHJuZHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXNyKFZ1MzIudyxWdjMyLncsUnQ4KTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmFzcl9Wd1Z3Ul9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmFzcl9Wd1Z3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyd3Vocm5kc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZsc3IoVnUzMi51YixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zsc3JfVnViUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zsc3JfVnViUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxzcmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12bHV0MzIoVnUzMi5iLFZ2MzIuYixSdDgpOm5vbWF0Y2gKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZsdXQzMl9WYlZiUl9ub21hdGNoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYlJfbm9tYXRjaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9ubSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5ifD12bHV0MzIoVnUzMi5iLFZ2MzIuYiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92bHV0MzJvcl9WYlZiVmJJKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmx1dDMyb3JfVmJWYlZiSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9vcmFjY2kpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12bHV0MzIoVnUzMi5iLFZ2MzIuYiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92bHV0MzJfVmJWYkkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2dmJpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZsdXQxNihWdTMyLmIsVnYzMi5oLFJ0OCk6bm9tYXRjaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZsdXQxNl9WYlZoUl9ub21hdGNoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaFJfbm9tYXRjaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ3aF9ubSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaHw9dmx1dDE2KFZ1MzIuYixWdjMyLmgsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZsdXQxNm9yX1doVmJWaEkoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZsdXQxNm9yX1doVmJWaEkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hfb3JhY2NpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZsdXQxNihWdTMyLmIsVnYzMi5oLCN1MykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bHV0MTZfVmJWaEkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaEkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm1heChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdm1heF9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdm1heF9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWF4YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZtaW4oVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZtaW5fVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZtaW5fVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1pbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dm1wYShWdXUzMi51aCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYV9XdWhSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYV9XdWhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYXVoYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dm1wYShWdXUzMi51aCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYWFjY19Xd1d1aFJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcGFhY2NfV3dXdWhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYXVoYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZtcHllKFZ1MzIudyxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1dfdm1weWVfVndWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192bXB5ZV9Wd1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWV3dWhfNjQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aShWdTMyLncsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpX1Z3UnViKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpd3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlpKFZ1MzIudyxSdDMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1J1YihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlpYWNjX1Z3VndSdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpd3ViX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIrPXZtcHlvKFZ1MzIudyxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192bXB5b2FjY19XVndWaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1dfdm1weW9hY2NfV1Z3VmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfNjRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZyb3VuZChWdTMyLnVoLFZ2MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zyb3VuZF9WdWhWdWhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zyb3VuZF9WdWhWdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR1aHViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZyb3VuZChWdTMyLnV3LFZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3Zyb3VuZF9WdXdWdXdfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zyb3VuZF9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR1d3VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZzYXQoVnUzMi51dyxWdjMyLnV3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3ZzYXRfVnV3VnV3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZzYXRfVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0dXd1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzdWIoVnUzMi5iLFZ2MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92c3ViX1ZiVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnN1Yl9WYlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dnN1YihWdXUzMi5iLFZ2djMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZzdWJfV2JXYl9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2JfdnN1Yl9XYldiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12c3ViKFZ1MzIudyxWdjMyLncsUXg0KTpjYXJyeQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnN1Yl9Wd1Z3UV9jYXJyeShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yUHJlZCogUXgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnN1Yl9Wd1Z3UV9jYXJyeSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmNhcnJ5KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZzdWIoVnUzMi51YixWdjMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZzdWJfVnViVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZzdWJfVnViVmJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c3VidWJ1YmJfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZzdWIoVnUzMi51dyxWdjMyLnV3KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192c3ViX1Z1d1Z1d19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnN1Yl9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c3VidXdzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZzdWIoVnV1MzIudXcsVnZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192c3ViX1d1d1d1d19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3ZzdWJfV3V3V3V3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnV3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmFicyhWdTMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWJzX1ZiKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFic19WYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12YWJzKFZ1MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWJzX1ZiX3NhdChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZhYnNfVmJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzYl9zYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dmFzbChWdTMyLmgsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc2xhY2NfVmhWaFIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc2xhY2NfVmhWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc2xoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oKz12YXNyKFZ1MzIuaCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcmFjY19WaFZoUihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcmFjY19WaFZoUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcmhfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhc3IoVnUzMi51aCxWdjMyLnVoLFJ0OCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zhc3JfVnVoVnVoUl9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdmFzcl9WdWhWdWhSX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1aHVicm5kc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhc3IoVnUzMi51aCxWdjMyLnVoLFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWJfdmFzcl9WdWhWdWhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVnVoVnVoUl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1aHVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhc3IoVnUzMi51dyxWdjMyLnV3LFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmFzcl9WdXdWdXdSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zhc3JfVnV3VnV3Ul9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1d3Voc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmF2ZyhWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmF2Z19WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmF2Z19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZnYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhdmcoVnUzMi5iLFZ2MzIuYik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YXZnX1ZiVmJfcm5kKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmF2Z19WYlZiX3JuZCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z2JybmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudXc9dmF2ZyhWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmF2Z19WdXdWdXcoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmF2Z19WdXdWdXcgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd1dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12YXZnKFZ1MzIudXcsVnYzMi51dyk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmF2Z19WdXdWdXdfcm5kKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZhdmdfVnV3VnV3X3JuZCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z3V3cm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMj0jMAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1dfdnplcm8oKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX3Z6ZXJvIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGQwKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2dG1wLmg9dmdhdGhlcihSdDMyLE11MixWdjMyLmgpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVJNVmgoSFZYX1ZlY3RvciogUnMsIFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9HQVRIRVIKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdmdhdGhlcl9BUk1WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmdhdGhlcm1oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2dG1wLmg9dmdhdGhlcihSdDMyLE11MixWdjMyLmgpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVFSTVZoKEhWWF9WZWN0b3IqIFJzLCBIVlhfVmVjdG9yUHJlZCBRcywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX0dBVEhFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92Z2F0aGVyX0FRUk1WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmdhdGhlcm1ocSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnRtcC5oPXZnYXRoZXIoUnQzMixNdTIsVnZ2MzIudykuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdmdhdGhlcl9BUk1XdyhIVlhfVmVjdG9yKiBScywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVJNV3cgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtaHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRczQpIHZ0bXAuaD12Z2F0aGVyKFJ0MzIsTXUyLFZ2djMyLncpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVFSTVd3KEhWWF9WZWN0b3IqIFJzLCBIVlhfVmVjdG9yUHJlZCBRcywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVFSTVd3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z2F0aGVybWh3cSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnRtcC53PXZnYXRoZXIoUnQzMixNdTIsVnYzMi53KS53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92Z2F0aGVyX0FSTVZ3KEhWWF9WZWN0b3IqIFJzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVJNVncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKFFzNCkgdnRtcC53PXZnYXRoZXIoUnQzMixNdTIsVnYzMi53KS53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92Z2F0aGVyX0FRUk1WdyhIVlhfVmVjdG9yKiBScywgSFZYX1ZlY3RvclByZWQgUXMsIFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9HQVRIRVIKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdmdhdGhlcl9BUVJNVncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bHV0NChWdTMyLnVoLFJ0dDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bHV0NF9WdWhQaChIVlhfVmVjdG9yIFZ1LCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZsdXQ0X1Z1aFBoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHV0NCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12bXBhKFZ1dTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJSdWIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi5oKz12bXBhKFZ1dTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYWFjY19XaFd1YlJ1YihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bXBhYWNjX1doV3ViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oPXZtcGEoVngzMi5oLFZ1MzIuaCxSdHQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcGFfVmhWaFZoUGhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1wYV9WaFZoVmhQaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFoaHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oPXZtcGEoVngzMi5oLFZ1MzIudWgsUnR0MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1wYV9WaFZoVnVoUHVoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcGFfVmhWaFZ1aFB1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGF1aHVoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLmg9dm1wcyhWeDMyLmgsVnUzMi51aCxSdHQzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bXBzX1ZoVmhWdWhQdWhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1wc19WaFZoVnVoUHVoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wc3VodWhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhSaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weWFjY19Xd1ZoUmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12bXB5ZShWdTMyLnVoLFJ0MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdm1weWVfVnVoUnVoKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZtcHllX1Z1aFJ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVoZSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi51dys9dm1weWUoVnUzMi51aCxSdDMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnV3X3ZtcHllYWNjX1Z1d1Z1aFJ1aChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1d192bXB5ZWFjY19WdXdWdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aGVfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm5hdmcoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZuYXZnX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bmF2Z19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z2IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj1wcmVmaXhzdW0oUXY0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfcHJlZml4c3VtX1EoSFZYX1ZlY3RvclByZWQgUXYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfcHJlZml4c3VtX1EgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZwcmVmaXhxYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXByZWZpeHN1bShRdjQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF9wcmVmaXhzdW1fUShIVlhfVmVjdG9yUHJlZCBRdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF9wcmVmaXhzdW1fUSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnByZWZpeHFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9cHJlZml4c3VtKFF2NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ByZWZpeHN1bV9RKEhWWF9WZWN0b3JQcmVkIFF2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ByZWZpeHN1bV9RIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cHJlZml4cXcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2MzIuaCkuaD1WdzMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92c2NhdHRlcl9STVZoVihXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNVmhWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2c2NhdHRlcihSdDMyLE11MixWdjMyLmgpLmgrPVZ3MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZzY2F0dGVyYWNjX1JNVmhWKFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJhY2NfUk1WaFYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzY2F0dGVybWhfYWRkKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2c2NhdHRlcihSdDMyLE11MixWdjMyLmgpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNVmhWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1FSTVZoViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNjYXR0ZXJtaHEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2djMyLncpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUk1Xd1YoV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2diwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUl9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1odykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIudykuaCs9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJhY2NfUk1Xd1YoV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2diwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUl9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyYWNjX1JNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1od19hZGQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRczQpIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2djMyLncpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNV3dWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJfUVJNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1od3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2MzIudykudz1WdzMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92c2NhdHRlcl9STVZ3VihXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNVndWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm13KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2c2NhdHRlcihSdDMyLE11MixWdjMyLncpLncrPVZ3MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZzY2F0dGVyYWNjX1JNVndWKFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJhY2NfUk1Wd1YgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzY2F0dGVybXdfYWRkKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2c2NhdHRlcihSdDMyLE11MixWdjMyLncpLnc9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNVndWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1FSTVZ3ViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNjYXR0ZXJtd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncsUXM0KTpjYXJyeTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZhZGRfVndWd1FfY2Fycnlfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIEhWWF9WZWN0b3JQcmVkIFFzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfVndWd1FfY2Fycnlfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkY2FycnlzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnc9dmFzcmludG8oVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YXNyaW50b19Xd1Z3VncoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Zhc3JpbnRvX1d3VndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcl9pbnRvKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjYKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZyb3RyKFZ1MzIudXcsVnYzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm90cl9WdXdWdXcoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnJvdHJfVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm90cikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY2Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzYXRkdyhWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnNhdGR3X1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192c2F0ZHdfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNhdGR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjgKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXY2bXB5KFZ1dTMyLnViLFZ2djMyLmIsI3UyKTpoCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdjZtcHlfV3ViV2JJX2goSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Y2bXB5X1d1YldiSV9oIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Nm1weWh1YnMxMCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY4ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9djZtcHkoVnV1MzIudWIsVnZ2MzIuYiwjdTIpOmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192Nm1weWFjY19Xd1d1YldiSV9oKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Y2bXB5YWNjX1d3V3ViV2JJX2ggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Y2bXB5aHViczEwX3Z4eCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY4ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12Nm1weShWdXUzMi51YixWdnYzMi5iLCN1Mik6dgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Y2bXB5X1d1YldiSV92KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192Nm1weV9XdWJXYklfdiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdjZtcHl2dWJzMTApCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2OAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXY2bXB5KFZ1dTMyLnViLFZ2djMyLmIsI3UyKTp2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdjZtcHlhY2NfV3dXdWJXYklfdihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192Nm1weWFjY19Xd1d1YldiSV92IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Nm1weXZ1YnMxMF92eHgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2VuZGlmIC8qIF9fSFZYX18gKi8KCiNlbmRpZgoAcHJmY2h3aW50cmluLmgALyotCiAqIENvcHlyaWdodCAoYykgMjAxMSBFZCBTY2hvdXRlbiA8ZWRARnJlZUJTRC5vcmc+CiAqICAgICAgICAgICAgICAgICAgICBEYXZpZCBDaGlzbmFsbCA8dGhlcmF2ZW5ARnJlZUJTRC5vcmc+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCiAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCiAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCiAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQogKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAogKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCiAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICogU1VDSCBEQU1BR0UuCiAqCiAqICRGcmVlQlNEJAogKi8KCiNpZm5kZWYgX1NUREFUT01JQ19IXwojZGVmaW5lCV9TVERBVE9NSUNfSF8KCiNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMICYmIF9faGFzX2luY2x1ZGUoPGF0b21pYz4pCiMgaWYgX19oYXNfZmVhdHVyZShjeHhfYXRvbWljKQojICBkZWZpbmUgX1NUREFUT01JQ19IQVZFX0FUT01JQwojIGVuZGlmCiNlbmRpZgoKI2lmZGVmIF9TVERBVE9NSUNfSEFWRV9BVE9NSUMKCi8qIFdlIGhhdmUgYSB1c2FibGUgQysrIDxhdG9taWM+OyB1c2UgaXQgaW5zdGVhZC4gICovCgojaW5jbHVkZSA8YXRvbWljPgoKI3VuZGVmIF9BdG9taWMKICAgICAgICAvKiBBbHNvIGRlZmluZWQgYnkgPGF0b21pYz4gZm9yIGdjYy4gIEJ1dCBub3QgdXNlZCBpbiBtYWNyb3MuICovCiAgICAgICAgLyogQWxzbyBhIGNsYW5nIGludHJpbnNpYy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgIC8qIFNob3VsZCBub3QgYmUgdXNlZCBieSBjbGllbnQgY29kZSBiZWZvcmUgdGhpcyBmaWxlIGlzICAgICAgKi8KICAgICAgICAvKiBpbmNsdWRlZC4gIFRoZSBkZWZpbml0aW9ucyBpbiA8YXRvbWljPiB0aGVtc2VsdmVzIHNlZSAgICAgICovCiAgICAgICAgLyogdGhlIG9sZCBkZWZpbml0aW9uLCBhcyB0aGV5IHNob3VsZC4gICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgIC8qIENsaWVudCBjb2RlIHNlZXMgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uLiAgICAgICAgICAgICAgICAgKi8KCiNkZWZpbmUgX0F0b21pYyh0KSBzdGQ6OmF0b21pYzx0PgoKdXNpbmcgc3RkOjphdG9taWNfaXNfbG9ja19mcmVlOwp1c2luZyBzdGQ6OmF0b21pY19pbml0Owp1c2luZyBzdGQ6OmF0b21pY19zdG9yZTsKdXNpbmcgc3RkOjphdG9taWNfc3RvcmVfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2xvYWQ7CnVzaW5nIHN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2V4Y2hhbmdlOwp1c2luZyBzdGQ6OmF0b21pY19leGNoYW5nZV9leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmc7CnVzaW5nIHN0ZDo6YXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWs7CnVzaW5nIHN0ZDo6YXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfYWRkOwp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX3N1YjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9vcjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX3hvcjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9hbmQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfdGhyZWFkX2ZlbmNlOwp1c2luZyBzdGQ6OmF0b21pY19zaWduYWxfZmVuY2U7Cgp1c2luZyBzdGQ6Om1lbW9yeV9vcmRlcjsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZDsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfY29uc3VtZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbDsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdDsKCnVzaW5nIHN0ZDo6YXRvbWljX2Jvb2w7CnVzaW5nIHN0ZDo6YXRvbWljX2NoYXI7CnVzaW5nIHN0ZDo6YXRvbWljX3NjaGFyOwp1c2luZyBzdGQ6OmF0b21pY191Y2hhcjsKdXNpbmcgc3RkOjphdG9taWNfc2hvcnQ7CnVzaW5nIHN0ZDo6YXRvbWljX3VzaG9ydDsKdXNpbmcgc3RkOjphdG9taWNfaW50Owp1c2luZyBzdGQ6OmF0b21pY191aW50Owp1c2luZyBzdGQ6OmF0b21pY19sb25nOwp1c2luZyBzdGQ6OmF0b21pY191bG9uZzsKdXNpbmcgc3RkOjphdG9taWNfbGxvbmc7CnVzaW5nIHN0ZDo6YXRvbWljX3VsbG9uZzsKdXNpbmcgc3RkOjphdG9taWNfY2hhcjE2X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2NoYXIzMl90Owp1c2luZyBzdGQ6OmF0b21pY193Y2hhcl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfbGVhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfbGVhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9sZWFzdDE2X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfbGVhc3QxNl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfbGVhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2xlYXN0MzJfdDsKdXNpbmcgc3RkOjphdG9taWNfaW50X2xlYXN0NjRfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludF9sZWFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9mYXN0OF90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2Zhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9mYXN0MTZfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludF9mYXN0MTZfdDsKdXNpbmcgc3RkOjphdG9taWNfaW50X2Zhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2Zhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfZmFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfZmFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludHB0cl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50cHRyX3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3NpemVfdDsKdXNpbmcgc3RkOjphdG9taWNfcHRyZGlmZl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRtYXhfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludG1heF90OwoKI2Vsc2UgLyogPGF0b21pYz4gdW5hdmFpbGFibGUsIHBvc3NpYmx5IGJlY2F1c2UgdGhpcyBpcyBDLCBub3QgQysrICovCgovKiBBY3R1YWwgaW1wbGVtZW50YXRpb24gaXMgaW4gYml0cy9zdGRhdG9taWMuaCBzaW5jZSBvdXIgdGVzdCBjb2RlIGlzIEMrKy4gKi8KI2luY2x1ZGUgPGJpdHMvc3RkYXRvbWljLmg+CgojZW5kaWYgLyogPGF0b21pYz4gdW5hdmFpbGFibGUgKi8KCiNlbmRpZiAvKiAhX1NUREFUT01JQ19IXyAqLwoALyo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB3YWl0cGtnaW50cmluLmggLSBXQUlUUEtHIC0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHdhaXRwa2dpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fV0FJVFBLR0lOVFJJTl9ICiNkZWZpbmUgX19XQUlUUEtHSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIndhaXRwa2ciKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfdW1vbml0b3IgKHZvaWQgKiBfX2FkZHJlc3MpCnsKICBfX2J1aWx0aW5faWEzMl91bW9uaXRvciAoX19hZGRyZXNzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX3Vtd2FpdCAodW5zaWduZWQgaW50IF9fY29udHJvbCwgdW5zaWduZWQgbG9uZyBsb25nIF9fY291bnRlcikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91bXdhaXQgKF9fY29udHJvbCwKICAgICh1bnNpZ25lZCBpbnQpKF9fY291bnRlciA+PiAzMiksICh1bnNpZ25lZCBpbnQpX19jb3VudGVyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX3RwYXVzZSAodW5zaWduZWQgaW50IF9fY29udHJvbCwgdW5zaWduZWQgbG9uZyBsb25nIF9fY291bnRlcikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90cGF1c2UgKF9fY29udHJvbCwKICAgICh1bnNpZ25lZCBpbnQpKF9fY291bnRlciA+PiAzMiksICh1bnNpZ25lZCBpbnQpX19jb3VudGVyKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fV0FJVFBLR0lOVFJJTl9IICovCgB4c2F2ZW9wdGludHJpbi5oAENvdWxkbid0IG9wZW4gaW5wdXQgZmlsZSAAQmFkIHNpemUgZm9yIAAgbmVhciBvZmZzZXQgAHZuYW1lAEluY29ycmVjdCBoZXggZGlnaXQgYWZ0ZXIgXHUgZXNjYXBlIGluIHN0cmluZy4AVGhlIHN1cnJvZ2F0ZSBwYWlyIGluIHN0cmluZyBpcyBpbnZhbGlkLgBVbmtub3duIGVycm9yLgBbOl5hbG51bTpdAFs6XmJsYW5rOl0AaW52YWxpZCBuYW1lZCBjYXB0dXJlIGdyb3VwAE1hbGZvcm1lZCByZXBlYXQgAFxuAEFkbGFtAENhdWNhc2lhbl9BbGJhbmlhbgBTdW5kYW5lc2UAVWdhcml0aWMAJXM6IGZhaWxlZCB0byByZWFkIGVsZiBoZWFkZXIAYmFkIG1hZ2ljIG51bWJlciBpbiBEZWxldGVBcmVuYSgpAG11c3QgcGFzcyBhIHZhbGlkIGFyZW5hACUAc3RkOjoATk9UX0ZPVU5EAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL2NvcmQuY2MAIGFuZCBlbnRyeVsAZGV0ZWN0ZWQgaWxsZWdhbCByZWN1cnNpb24gaW50byBNdXRleCBjb2RlAHdhaXRwICE9IG51bGxwdHIAb2xkX2gtPnNraXAgPT0gbnVsbHB0cgBoLT5za2lwID09IG51bGxwdHIATXV0ZXg6OkZlciB3aXRoIHBlbmRpbmcgQ29uZFZhciBxdWV1ZWluZwBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvdGltZS9pbnRlcm5hbC9nZXRfY3VycmVudF90aW1lX3Bvc2l4LmluYwBFVlBfQUVBRF9DVFhfb3BlbiBmb3IgQUVTLTEyOC1HQ00gZmFpbGVkLgoAZmFpbGVkIHRvIGdldCBmbGFncyBmcm9tIHVyYW5kb20gZmQAUlNBIHJvdXRpbmVzAFBLQ1M3IHJvdXRpbmVzAHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yAFRydXN0IFRva2VuIGZ1bmN0aW9ucwAAAAAAAAAAAAAAAAAA/////wgAAAD///////////////8QAAAAGAAAACAAAAAKG2t5dGhlL3Byb3RvL2J1aWxkaW5mby5wcm90bxILa3l0aGUucHJvdG8iTQoMQnVpbGREZXRhaWxzEhQKDGJ1aWxkX3RhcmdldBgBIAEoCRIRCglydWxlX3R5cGUYAiABKAkSFAoMYnVpbGRfY29uZmlnGAMgASgJQjUKH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9aEmJ1aWxkaW5mb19nb19wcm90b2IGcHJvdG8zAAAAAAAAAAAAAAAAAAAAAAAAAAD/////MAAAAAAAAAAAAAAAAAAAABT3BwBj9wcAcvcHAOf3BwCHKQgAsSkIAB8qCABVKggAwyoIADErCABhKwgANSkIADUpCACRKwgAtCsIAGlLCAB4SwgA5ksIABxMCAAAAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////EAAAABQAAAAYAAAA/////wgAAAD///////////////8QAAAAGAAAACAAAAAoAAAA////////////////CAAAABAAAAAAAAAAAQAAAP////8IAAAA////////////////EAAAAHgAAAD/////CAAAAP///////////////ygAAAAQAAAAGAAAACAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAAGAAAACAAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////1gAAABAAAAAEAAAAEgAAABQAAAAXAAAAGAAAABkAAAAKAAAAP////8IAAAA////////////////EAAAABgAAAD/////CAAAAP///////////////ygAAAAwAAAAOAAAABAAAAD/////CAAAAP///////////////ygAAAAwAAAAEAAAAAAAAAAAAAAAChhreXRoZS9wcm90by9jb21tb24ucHJvdG8SEmt5dGhlLnByb3RvLmNvbW1vbhofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byIjCgRGYWN0EgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAwiSAoFUG9pbnQSEwoLYnl0ZV9vZmZzZXQYASABKAUSEwoLbGluZV9udW1iZXIYAiABKAUSFQoNY29sdW1uX29mZnNldBgDIAEoBSJYCgRTcGFuEigKBXN0YXJ0GAEgASgLMhkua3l0aGUucHJvdG8uY29tbW9uLlBvaW50EiYKA2VuZBgCIAEoCzIZLmt5dGhlLnByb3RvLmNvbW1vbi5Qb2ludCKSAQoITm9kZUluZm8SNgoFZmFjdHMYAiADKAsyJy5reXRoZS5wcm90by5jb21tb24uTm9kZUluZm8uRmFjdHNFbnRyeRISCgpkZWZpbml0aW9uGAUgASgJGiwKCkZhY3RzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4AUoECAEQAlIGdGlja2V0ImsKCkRpYWdub3N0aWMSJgoEc3BhbhgBIAEoCzIYLmt5dGhlLnByb3RvLmNvbW1vbi5TcGFuEg8KB21lc3NhZ2UYAiABKAkSDwoHZGV0YWlscxgDIAEoCRITCgtjb250ZXh0X3VybBgEIAEoCSJ9ChJSZXNvbHZlZERpYWdub3N0aWMSMwoLY29ycHVzX3BhdGgYASABKAsyHi5reXRoZS5wcm90by5jb21tb24uQ29ycHVzUGF0aBIyCgpkaWFnbm9zdGljGAIgASgLMh4ua3l0aGUucHJvdG8uY29tbW9uLkRpYWdub3N0aWMiOAoKQ29ycHVzUGF0aBIOCgZjb3JwdXMYASABKAkSDAoEcm9vdBgCIAEoCRIMCgRwYXRoGAMgASgJIiYKBExpbmsSEgoKZGVmaW5pdGlvbhgDIAMoCUoECAEQAkoECAIQAyL9AwoMTWFya2VkU291cmNlEjMKBGtpbmQYASABKA4yJS5reXRoZS5wcm90by5jb21tb24uTWFya2VkU291cmNlLktpbmQSEAoIcHJlX3RleHQYAiABKAkSLwoFY2hpbGQYAyADKAsyIC5reXRoZS5wcm90by5jb21tb24uTWFya2VkU291cmNlEhcKD3Bvc3RfY2hpbGRfdGV4dBgEIAEoCRIRCglwb3N0X3RleHQYBSABKAkSFAoMbG9va3VwX2luZGV4GAYgASgNEh4KFmRlZmF1bHRfY2hpbGRyZW5fY291bnQYByABKA0SHAoUYWRkX2ZpbmFsX2xpc3RfdG9rZW4YCiABKAgSJgoEbGluaxgLIAMoCzIYLmt5dGhlLnByb3RvLmNvbW1vbi5MaW5rIswBCgRLaW5kEgcKA0JPWBAAEggKBFRZUEUQARINCglQQVJBTUVURVIQAhIOCgpJREVOVElGSUVSEAMSCwoHQ09OVEVYVBAEEg8KC0lOSVRJQUxJWkVSEAUSHQoZUEFSQU1FVEVSX0xPT0tVUF9CWV9QQVJBTRAGEhMKD0xPT0tVUF9CWV9QQVJBTRAHEisKJ1BBUkFNRVRFUl9MT09LVVBfQllfUEFSQU1fV0lUSF9ERUZBVUxUUxAIEhMKD0xPT0tVUF9CWV9UWVBFRBAJIjcKClN5bWJvbEluZm8SEQoJYmFzZV9uYW1lGAEgASgJEhYKDnF1YWxpZmllZF9uYW1lGAIgASgJInIKBk9yaWdpbhIOCgZjb3JwdXMYASABKAkSEAoIcmV2aXNpb24YAiABKAkSNAoQY29tbWl0X3RpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIbGFuZ3VhZ2UYBCADKAkiogEKCExhbmd1YWdlEgwKBG5hbWUYASABKAkSNQoHc3VwcG9ydBgCIAEoDjIkLmt5dGhlLnByb3RvLmNvbW1vbi5MYW5ndWFnZS5TdXBwb3J0EhgKEGFuYWx5emVyX3ZlcnNpb24YAyADKAkiNwoHU3VwcG9ydBILCgdVTktOT1dOEAASEAoMRVhQRVJJTUVOVEFMEAESDQoJU1VQUE9SVEVEEAJCNAofY29tLmdvb2dsZS5kZXZ0b29scy5reXRoZS5wcm90b1ABWg9jb21tb25fZ29fcHJvdG9iBnByb3RvMwAAAAAAAAAAAP////8oAAAABwAAAP////8gAAAADwAAAP////8oAAAAFgAAAB0AAAAwAAAAHwAAAP////+IAAAAJgAAAP////84AAAALwAAAP////8oAAAANgAAAP////8wAAAAPgAAAP////8wAAAARAAAAP////9wAAAAUgAAAP////8oAAAAWQAAAP////9IAAAAYgAAAP////84AAAARacIAEWnCAAQpggAMqYIAFumCACJpggAFLQIABS0CAAmsQgAVbMIAHCzCACPswgAAAAAAP////8IAAAA////////////////EAAAABgAAAAcAAAA/////wgAAAD///////////////8oAAAALAAAABAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAA/////wgAAAD///////////////9AAAAAEAAAACgAAAAAAAAAAAAAAAAAAAAKFWt5dGhlL3Byb3RvL2N4eC5wcm90bxILa3l0aGUucHJvdG8iyQQKGUN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMSUwoSaGVhZGVyX3NlYXJjaF9pbmZvGAEgASgLMjcua3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5IZWFkZXJTZWFyY2hJbmZvElcKFHN5c3RlbV9oZWFkZXJfcHJlZml4GAIgAygLMjkua3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5TeXN0ZW1IZWFkZXJQcmVmaXgSQgoJc3RhdF9wYXRoGAMgAygLMi8ua3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5TdGF0UGF0aBpSCg9IZWFkZXJTZWFyY2hEaXISDAoEcGF0aBgBIAEoCRIbChNjaGFyYWN0ZXJpc3RpY19raW5kGAIgASgFEhQKDGlzX2ZyYW1ld29yaxgDIAEoCBqLAQoQSGVhZGVyU2VhcmNoSW5mbxIYChBmaXJzdF9hbmdsZWRfZGlyGAEgASgFEhgKEGZpcnN0X3N5c3RlbV9kaXIYAiABKAUSQwoDZGlyGAMgAygLMjYua3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5IZWFkZXJTZWFyY2hEaXIaPgoSU3lzdGVtSGVhZGVyUHJlZml4Eg4KBnByZWZpeBgBIAEoCRIYChBpc19zeXN0ZW1faGVhZGVyGAIgASgIGhgKCFN0YXRQYXRoEgwKBHBhdGgYASABKAlCLwofY29tLmdvb2dsZS5kZXZ0b29scy5reXRoZS5wcm90b1oMY3h4X2dvX3Byb3RvYgZwcm90bzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////KAAAAAgAAAD/////OAAAABAAAAD/////IAAAABcAAAD/////IAAAAB0AAAD/////UAAAAAAAAAD/////CAAAAP///////////////xgAAAAQAAAA/////wgAAAD///////////////8oAAAAEAAAADAAAAD/////CAAAAP///////////////xAAAAAAAAAAAAAAAAAAAAAKHWt5dGhlL3Byb3RvL2ZpbGVjb250ZXh0LnByb3RvEgtreXRoZS5wcm90byL2AQoXQ29udGV4dERlcGVuZGVudFZlcnNpb24SNQoDcm93GAEgAygLMigua3l0aGUucHJvdG8uQ29udGV4dERlcGVuZGVudFZlcnNpb24uUm93GjAKBkNvbHVtbhIOCgZvZmZzZXQYASABKAUSFgoObGlua2VkX2NvbnRleHQYAiABKAkacgoDUm93EhYKDnNvdXJjZV9jb250ZXh0GAEgASgJEjsKBmNvbHVtbhgCIAMoCzIrLmt5dGhlLnByb3RvLkNvbnRleHREZXBlbmRlbnRWZXJzaW9uLkNvbHVtbhIWCg5hbHdheXNfcHJvY2VzcxgDIAEoCEI3Ch9jb20uZ29vZ2xlLmRldnRvb2xzLmt5dGhlLnByb3RvWhRmaWxlY29udGV4dF9nb19wcm90b2IGcHJvdG8zAAAAAAAAAAAAAAAAAAD/////IAAAAAcAAAD/////OAAAAA8AAAD/////MAAAAAAAAAAAAAAAAAAAAK0uCQDXLgkARy8JAJQvCQDELwkA9C8JADkwCQBpMAkAmTAJAMkwCQD5MAkAAAAAAP////8IAAAA////////////////KAAAABAAAAD/////CAAAAP///////////////ygAAAAQAAAAGAAAACwAAAAwAAAARAAAACAAAAA0AAAAOAAAADwAAABAAAAAAAAAAAoaa3l0aGUvcHJvdG8vbWV0YWRhdGEucHJvdG8SFGt5dGhlLnByb3RvLm1ldGFkYXRhGhlreXRoZS9wcm90by9zdG9yYWdlLnByb3RvIp4BChFHZW5lcmF0ZWRDb2RlSW5mbxI6CgR0eXBlGAEgASgOMiwua3l0aGUucHJvdG8ubWV0YWRhdGEuR2VuZXJhdGVkQ29kZUluZm8uVHlwZRIvCgRtZXRhGAIgAygLMiEua3l0aGUucHJvdG8ubWV0YWRhdGEuTWFwcGluZ1J1bGUiHAoEVHlwZRIICgROT05FEAASCgoGS1lUSEUwEAEizgMKC01hcHBpbmdSdWxlEjQKBHR5cGUYASABKA4yJi5reXRoZS5wcm90by5tZXRhZGF0YS5NYXBwaW5nUnVsZS5UeXBlEgwKBGVkZ2UYAiABKAkSIQoFdm5hbWUYAyABKAsyEi5reXRoZS5wcm90by5WTmFtZRINCgViZWdpbhgEIAEoDRILCgNlbmQYBSABKA0SPAoIc2VtYW50aWMYCyABKA4yKi5reXRoZS5wcm90by5tZXRhZGF0YS5NYXBwaW5nUnVsZS5TZW1hbnRpYxIoCgxzb3VyY2Vfdm5hbWUYBiABKAsyEi5reXRoZS5wcm90by5WTmFtZRIUCgxzb3VyY2VfYmVnaW4YByABKA0SEgoKc291cmNlX2VuZBgIIAEoDRIUCgx0YXJnZXRfYmVnaW4YCSABKA0SEgoKdGFyZ2V0X2VuZBgKIAEoDSJACgRUeXBlEggKBE5PTkUQABIHCgNOT1AQARISCg5BTkNIT1JfREVGSU5FUxACEhEKDUFOQ0hPUl9BTkNIT1IQAyI+CghTZW1hbnRpYxINCglTRU1BX05PTkUQABIOCgpTRU1BX1dSSVRFEAESEwoPU0VNQV9SRUFEX1dSSVRFEAJCIQofY29tLmdvb2dsZS5kZXZ0b29scy5reXRoZS5wcm90b2IGcHJvdG8zAAAAAAAAAAAAAP////8wAAAABwAAAP////9QAAAAAAAAAAAAAAAiRwkAMUcJAJ9HCQANSAkAe0gJAL5UCQDuVAkAHlUJAE5VCQB6VQkAfGAJALBgCQAlYQkAdGEJAPZhCQCohAkAHYUJAGyFCQDuhQkAAAAAAP////8IAAAA////////////////EAAAABgAAAAgAAAAKAAAADAAAAD/////CAAAAP///////////////xAAAAARAAAAEgAAABMAAAAUAAAA/////wgAAAD///////////////8oAAAAEAAAADAAAAAYAAAAIAAAAP////8IAAAA////////////////EAAAAP////8IAAAA////////////////GAAAABAAAAD/////CAAAAP///////////////xAAAAAoAAAAGAAAACAAAAD/////CAAAAP///////////////ygAAAAQAAAA/////wgAAAD/////////////////////CAAAAP///////////////yAAAAAQAAAAGAAAAP////8IAAAA////////////////EAAAABgAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////EAAAAAAAAAAAAAAAAAAAAAoZa3l0aGUvcHJvdG8vc3RvcmFnZS5wcm90bxILa3l0aGUucHJvdG8iWAoFVk5hbWUSEQoJc2lnbmF0dXJlGAEgASgJEg4KBmNvcnB1cxgCIAEoCRIMCgRyb290GAMgASgJEgwKBHBhdGgYBCABKAkSEAoIbGFuZ3VhZ2UYBSABKAkiXAoJVk5hbWVNYXNrEhEKCXNpZ25hdHVyZRgBIAEoCBIOCgZjb3JwdXMYAiABKAgSDAoEcm9vdBgDIAEoCBIMCgRwYXRoGAQgASgIEhAKCGxhbmd1YWdlGAUgASgIIokBCgVFbnRyeRIiCgZzb3VyY2UYASABKAsyEi5reXRoZS5wcm90by5WTmFtZRIRCgllZGdlX2tpbmQYAiABKAkSIgoGdGFyZ2V0GAMgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSEQoJZmFjdF9uYW1lGAQgASgJEhIKCmZhY3RfdmFsdWUYBSABKAwiLgoHRW50cmllcxIjCgdlbnRyaWVzGAEgAygLMhIua3l0aGUucHJvdG8uRW50cnkiRAoLUmVhZFJlcXVlc3QSIgoGc291cmNlGAEgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSEQoJZWRnZV9raW5kGAIgASgJIswBCgxXcml0ZVJlcXVlc3QSIgoGc291cmNlGAEgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSMAoGdXBkYXRlGAIgAygLMiAua3l0aGUucHJvdG8uV3JpdGVSZXF1ZXN0LlVwZGF0ZRpmCgZVcGRhdGUSEQoJZWRnZV9raW5kGAEgASgJEiIKBnRhcmdldBgCIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEhEKCWZhY3RfbmFtZRgDIAEoCRISCgpmYWN0X3ZhbHVlGAQgASgMIgwKCldyaXRlUmVwbHkiWQoLU2NhblJlcXVlc3QSIgoGdGFyZ2V0GAEgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSEQoJZWRnZV9raW5kGAIgASgJEhMKC2ZhY3RfcHJlZml4GAMgASgJIi0KDENvdW50UmVxdWVzdBINCgVpbmRleBgBIAEoAxIOCgZzaGFyZHMYAiABKAMiHQoKQ291bnRSZXBseRIPCgdlbnRyaWVzGAEgASgDIi0KDFNoYXJkUmVxdWVzdBINCgVpbmRleBgBIAEoAxIOCgZzaGFyZHMYAiABKAMiTgoQVk5hbWVSZXdyaXRlUnVsZRIPCgdwYXR0ZXJuGAEgASgJEikKBnZfbmFtZRgCIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lUgV2bmFtZSJAChFWTmFtZVJld3JpdGVSdWxlcxIrCgRydWxlGAEgAygLMh0ua3l0aGUucHJvdG8uVk5hbWVSZXdyaXRlUnVsZUIzCh9jb20uZ29vZ2xlLmRldnRvb2xzLmt5dGhlLnByb3RvWhBzdG9yYWdlX2dvX3Byb3RvYgZwcm90bzMAAAAAAAAAAAAAAAAAAP////9AAAAACgAAAP////8gAAAAFAAAAP////9AAAAAHgAAAP////8wAAAAJAAAAP////8oAAAAKwAAAP////84AAAANAAAAP////84AAAAOwAAAP////8YAAAAQAAAAP////8wAAAASAAAAP////8oAAAATwAAAP////8gAAAAVQAAAP////8oAAAAXAAAAP////8oAAAAYwAAAP////8wAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9jaGlsZG9mAAAAAAAAAAAAAAAAAC9reXRoZS9lZGdlL2V4dGVuZHMAAAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvZXh0ZW5kcy9wcml2YXRlAAAAAAAva3l0aGUvZWRnZS9leHRlbmRzL3ByaXZhdGUvdmlydHVhbAAAAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9leHRlbmRzL3Byb3RlY3RlZAAAAC9reXRoZS9lZGdlL2V4dGVuZHMvcHJvdGVjdGVkL3ZpcnR1YWwAAAAAAAAAAAAAAC9reXRoZS9lZGdlL2V4dGVuZHMvcHVibGljAAAAAAAAL2t5dGhlL2VkZ2UvZXh0ZW5kcy9wdWJsaWMvdmlydHVhbAAAAAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvZXh0ZW5kcy92aXJ0dWFsAAAAAAAva3l0aGUvZWRnZS9nZW5lcmF0ZXMAAAAAAAAAAAAAAC9reXRoZS9lZGdlL25hbWVkAAAAAAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2Uvb3ZlcnJpZGVzAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9wYXJhbQAAAAAAAAAAAAAAAAAAAC9reXRoZS9lZGdlL3NhdGlzZmllcwAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvdHlwZWQAAAAAAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9jb21wbGV0ZXMAAAAAAAAAAAAAAC9reXRoZS9lZGdlL2NvbXBsZXRlcy91bmlxdWVseQAAL2t5dGhlL2VkZ2UvZGVmaW5lcwAAAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9kZWZpbmVzL2JpbmRpbmcAAAAAAC9reXRoZS9lZGdlL2RvY3VtZW50cwAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvcmVmAC9reXRoZS9lZGdlL3JlZi9jYWxsAAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvcmVmL2ltcG9ydHMAAAAAAAAAAAAva3l0aGUvZWRnZS9yZWYvaW5pdAAAAAAAAAAAAAAAAC9reXRoZS9lZGdlL3RhZ2dlZAAAAAAAAAAAAAAAAAAAa3l0aGUuaW8vcHJvdG8va3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscwAAAAAAAAAAAAAAANZ+CgDWfgoAFnwKAIJ8CgCffAoAwHwKAECICgBAiAoAQ4UKAKeFCgDthwoAyocKANXZCgDo2QoABNoKADDaCgBM2goAd9oKAJTaCgCz2goA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cKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwA4KsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHSrDABwqwwAcKsMAHCrDAB0qwwAcKsMAHCrDABwqwwAcKsMAHCrDADmqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHSrDABwqwwAcKsMAHCrDABwqwwAcKsMAIGrDABwqwwAcKsMAHCrDABwqwwAcKsMAHSrDADsqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDAB0qwwAcKsMAHCrDAB0qwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAIGrDABwqwwAcKsMAHCrDABwqwwAgasMAHCrDABwqwwAcKsMAHCrDABwqwwAgasMAHSrDABwqwwAcKsMAHCrDABwqwwA8qsMAHCrDAD4qwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDAD+qwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwABKwMAAqsDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAIGrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDABwqwwAcKsMAHCrDAB0qwwAcKsMAHCrDABwqwwAcKsMAHCrDAAcrAwAcKsMAHCrDABwqwwAcKsMACWsDAB0qwwA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nwEAANYAAACgAQAApQEAAAEAAACmAQAApgEAANoAAACnAQAAqAEAAP////+pAQAAqQEAANoAAACsAQAArQEAAAEAAACuAQAArgEAANoAAACvAQAAsAEAAP////+xAQAAsgEAANkAAACzAQAAtgEAAP////+3AQAAtwEAANsAAAC4AQAAuQEAAAEAAAC8AQAAvQEAAAEAAAC/AQAAvwEAADgAAADEAQAAxAEAAAEAAADFAQAAxQEAAP/////GAQAAxgEAAP7////HAQAAxwEAAP/////IAQAAyAEAAAEAAADJAQAAyQEAAP7////KAQAAygEAAAEAAADLAQAAywEAAP/////MAQAAzAEAAP7////NAQAA3AEAAP/////dAQAA3QEAALH////eAQAA7wEAAAEAAADxAQAA8QEAAP/////yAQAA8gEAAAEAAADzAQAA8wEAAP7////0AQAA9QEAAAEAAAD2AQAA9gEAAJ/////3AQAA9wEAAMj////4AQAAHwIAAAEAAAAgAgAAIAIAAH7///8iAgAAMwIAAAEAAAA6AgAAOgIAACsqAAA7AgAAPAIAAP////89AgAAPQIAAF3///8+AgAAPgIAACgqAAA/AgAAQAIAAD8qAABBAgAAQgIAAP////9DAgAAQwIAAD3///9EAgAARAIAAEUAAABFAgAARQIAAEcAAABGAgAATwIAAAEAAABQAgAAUAIAAB8qAABRAgAAUQIAABwqAABSAgAAUgIAAB4qAABTAgAAUwIAAC7///9UAgAAVAIAADL///9WAgAAVwIAADP///9ZAgAAWQIAADb///9bAgAAWwIAADX///9cAgAAXAIAAE+lAABgAgAAYAIAADP///9hAgAAYQIAAEulAABjAgAAYwIAADH///9lAgAAZQIAACilAABmAgAAZgIAAESlAABoAgAAaAIAAC////9pAgAAaQIAAC3///9qAgAAagIAAESlAABrAgAAawIAAPcpAABsAgAAbAIAAEGlAABvAgAAbwIAAC3///9xAgAAcQIAAP0pAAByAgAAcgIAACv///91AgAAdQIAACr///99AgAAfQIAAOcpAACAAgAAgAIAACb///+DAgAAgwIAACb///+HAgAAhwIAACqlAACIAgAAiAIAACb///+JAgAAiQIAALv///+KAgAAiwIAACf///+MAgAAjAIAALn///+SAgAAkgIAACX///+dAgAAnQIAABWlAACeAgAAngIAABKlAABFAwAARQMAAFQAAABwAwAAcwMAAAEAAAB2AwAAdwMAAAEAAAB7AwAAfQMAAIIAAAB/AwAAfwMAAHQAAACGAwAAhgMAACYAAACIAwAAigMAACUAAACMAwAAjAMAAEAAAACOAwAAjwMAAD8AAACRAwAAoQMAACAAAACjAwAAowMAAB8AAACkAwAAqwMAACAAAACsAwAArAMAANr///+tAwAArwMAANv///+xAwAAsQMAAOD///+yAwAAsgMAAB4AAACzAwAAtAMAAOD///+1AwAAtQMAAEAAAAC2AwAAtwMAAOD///+4AwAAuAMAABkAAAC5AwAAuQMAAAUcAAC6AwAAugMAADYAAAC7AwAAuwMAAOD///+8AwAAvAMAAPn8//+9AwAAvwMAAOD////AAwAAwAMAABYAAADBAwAAwQMAADAAAADCAwAAwgMAAAEAAADDAwAAxQMAAOD////GAwAAxgMAAA8AAADHAwAAyAMAAOD////JAwAAyQMAAF0dAADKAwAAywMAAOD////MAwAAzAMAAMD////NAwAAzgMAAMH////PAwAAzwMAAAgAAADQAwAA0AMAAML////RAwAA0QMAACMAAADVAwAA1QMAANH////WAwAA1gMAAMr////XAwAA1wMAAPj////YAwAA7wMAAAEAAADwAwAA8AMAAKr////xAwAA8QMAALD////yAwAA8gMAAAcAAADzAwAA8wMAAIz////0AwAA9AMAAKT////1AwAA9QMAAKD////3AwAA+AMAAP/////5AwAA+QMAAPn////6AwAA+wMAAAEAAAD9AwAA/wMAAH7///8ABAAADwQAAFAAAAAQBAAALwQAACAAAAAwBAAAMQQAAOD///8yBAAAMgQAAE4YAAAzBAAAMwQAAOD///80BAAANAQAAE0YAAA1BAAAPQQAAOD///8+BAAAPgQAAEQYAAA/BAAAQAQAAOD///9BBAAAQgQAAEIYAABDBAAASQQAAOD///9KBAAASgQAADwYAABLBAAATwQAAOD///9QBAAAXwQAALD///9gBAAAYgQAAAEAAABjBAAAYwQAACQYAABkBAAAgQQAAAEAAACKBAAAvwQAAAEAAADABAAAwAQAAA8AAADBBAAAzgQAAP/////PBAAAzwQAAPH////QBAAALwUAAAEAAAAxBQAAVgUAADAAAABhBQAAhgUAAND///+gEAAAxRAAAGAcAADHEAAAxxAAAGAcAADNEAAAzRAAAGAcAADQEAAA+hAAAMALAAD9EAAA/xAAAMALAACgEwAA7xMAANCXAADwEwAA9RMAAAgAAAD4EwAA/RMAAPj///+AHAAAgBwAAJLn//+BHAAAgRwAAJPn//+CHAAAghwAAJzn//+DHAAAgxwAAJ7n//+EHAAAhBwAAAEAAACFHAAAhRwAAJ3n//+GHAAAhhwAAKTn//+HHAAAhxwAANvn//+IHAAAiBwAAMKJAACQHAAAuhwAAED0//+9HAAAvxwAAED0//95HQAAeR0AAASKAAB9HQAAfR0AAOYOAAAAHgAAYB4AAAEAAABhHgAAYR4AADoAAABiHgAAlR4AAAEAAACbHgAAmx4AAMX///+eHgAAnh4AAEHi//+gHgAA/x4AAAEAAAAAHwAABx8AAAgAAAAIHwAADx8AAPj///8QHwAAFR8AAAgAAAAYHwAAHR8AAPj///8gHwAAJx8AAAgAAAAoHwAALx8AAPj///8wHwAANx8AAAgAAAA4HwAAPx8AAPj///9AHwAARR8AAAgAAABIHwAATR8AAPj///9RHwAAUR8AAAgAAABTHwAAUx8AAAgAAABVHwAAVR8AAAgAAABXHwAAVx8AAAgAAABZHwAAWR8AAPj///9bHwAAWx8AAPj///9dHwAAXR8AAPj///9fHwAAXx8AAPj///9gHwAAZx8AAAgAAABoHwAAbx8AAPj///9wHwAAcR8AAEoAAAByHwAAdR8AAFYAAAB2HwAAdx8AAGQAAAB4HwAAeR8AAIAAAAB6HwAAex8AAHAAAAB8HwAAfR8AAH4AAACAHwAAhx8AAAgAAACIHwAAjx8AAPj///+QHwAAlx8AAAgAAACYHwAAnx8AAPj///+gHwAApx8AAAgAAACoHwAArx8AAPj///+wHwAAsR8AAAgAAACzHwAAsx8AAAkAAAC4HwAAuR8AAPj///+6HwAAux8AALb///+8HwAAvB8AAPf///++HwAAvh8AAIfj///DHwAAwx8AAAkAAADIHwAAyx8AAKr////MHwAAzB8AAPf////QHwAA0R8AAAgAAADYHwAA2R8AAPj////aHwAA2x8AAJz////gHwAA4R8AAAgAAADlHwAA5R8AAAcAAADoHwAA6R8AAPj////qHwAA6x8AAJD////sHwAA7B8AAPn////zHwAA8x8AAAkAAAD4HwAA+R8AAID////6HwAA+x8AAIL////8HwAA/B8AAPf///8mIQAAJiEAAIPi//8qIQAAKiEAACHf//8rIQAAKyEAAJrf//8yIQAAMiEAABwAAABOIQAATiEAAOT///9gIQAAbyEAABAAAABwIQAAfyEAAPD///+DIQAAhCEAAP////+2JAAAzyQAABoAAADQJAAA6SQAAOb///8ALAAALiwAADAAAAAwLAAAXiwAAND///9gLAAAYSwAAAEAAABiLAAAYiwAAAnW//9jLAAAYywAABrx//9kLAAAZCwAABnW//9lLAAAZSwAANXV//9mLAAAZiwAANjV//9nLAAAbCwAAP////9tLAAAbSwAAOTV//9uLAAAbiwAAAPW//9vLAAAbywAAOHV//9wLAAAcCwAAOLV//9yLAAAcywAAAEAAAB1LAAAdiwAAP////9+LAAAfywAAMHV//+ALAAA4ywAAAEAAADrLAAA7iwAAP/////yLAAA8ywAAAEAAAAALQAAJS0AAKDj//8nLQAAJy0AAKDj//8tLQAALS0AAKDj//9ApgAASqYAAAEAAABLpgAAS6YAAD12//9MpgAAbaYAAAEAAACApgAAm6YAAAEAAAAipwAAL6cAAAEAAAAypwAAb6cAAAEAAAB5pwAAfKcAAP////99pwAAfacAAPx1//9+pwAAh6cAAAEAAACLpwAAjKcAAP////+NpwAAjacAANha//+QpwAAk6cAAAEAAACWpwAAqacAAAEAAACqpwAAqqcAALxa//+rpwAAq6cAALFa//+spwAArKcAALVa//+tpwAAracAAL9a//+upwAArqcAALxa//+wpwAAsKcAAO5a//+xpwAAsacAANZa//+ypwAAsqcAAOta//+zpwAAs6cAAKADAAC0pwAAuacAAAEAAABTqwAAU6sAAGD8//9wqwAAv6sAADBo//8h/wAAOv8AACAAAABB/wAAWv8AAOD///8ABAEAJwQBACgAAAAoBAEATwQBANj///+wBAEA0wQBACgAAADYBAEA+wQBANj///+ADAEAsgwBAEAAAADADAEA8gwBAMD///+gGAEAvxgBACAAAADAGAEA3xgBAOD///9AbgEAX24BACAAAABgbgEAf24BAOD///8A6QEAIekBACIAAAAi6QEAQ+kBAN7///9dAQAAQQAAAFoAAAAgAAAAtQAAALUAAAAHAwAAwAAAANYAAAAgAAAA2AAAAN4AAAAgAAAAAAEAAC4BAAAAAABAMgEAADYBAAAAAABAOQEAAEcBAAABAABASgEAAHYBAAAAAABAeAEAAHgBAACH////eQEAAH0BAAABAABAfwEAAH8BAAD0/v//gQEAAIEBAADSAAAAggEAAIQBAAAAAABAhgEAAIYBAADOAAAAhwEAAIcBAAD/////iQEAAIoBAADNAAAAiwEAAIsBAAD/////jgEAAI4BAABPAAAAjwEAAI8BAADKAAAAkAEAAJABAADLAAAAkQEAAJEBAAD/////kwEAAJMBAADNAAAAlAEAAJQBAADPAAAAlgEAAJYBAADTAAAAlwEAAJcBAADRAAAAmAEAAJgBAAABAAAAnAEAAJwBAADTAAAAnQEAAJ0BAADVAAAAnwEAAJ8BAADWAAAAoAEAAKQBAAAAAABApgEAAKYBAADaAAAApwEAAKcBAAD/////qQEAAKkBAADaAAAArAEAAKwBAAABAAAArgEAAK4BAADaAAAArwEAAK8BAAD/////sQEAALIBAADZAAAAswEAALUBAAABAABAtwEAALcBAADbAAAAuAEAALgBAAABAAAAvAEAALwBAAABAAAAxAEAAMQBAAACAAAAxQEAAMUBAAD/////xwEAAMcBAAACAAAAyAEAAMgBAAABAAAAygEAAMoBAAACAAAAywEAANsBAAABAABA3gEAAO4BAAAAAABA8QEAAPEBAAACAAAA8gEAAPQBAAAAAABA9gEAAPYBAACf////9wEAAPcBAADI////+AEAAB4CAAAAAABAIAIAACACAAB+////IgIAADICAAAAAABAOgIAADoCAAArKgAAOwIAADsCAAD/////PQIAAD0CAABd////PgIAAD4CAAAoKgAAQQIAAEECAAD/////QwIAAEMCAAA9////RAIAAEQCAABFAAAARQIAAEUCAABHAAAARgIAAE4CAAAAAABARQMAAEUDAAB0AAAAcAMAAHIDAAAAAABAdgMAAHYDAAABAAAAfwMAAH8DAAB0AAAAhgMAAIYDAAAmAAAAiAMAAIoDAAAlAAAAjAMAAIwDAABAAAAAjgMAAI8DAAA/AAAAkQMAAKEDAAAgAAAAowMAAKsDAAAgAAAAwgMAAMIDAAABAAAAzwMAAM8DAAAIAAAA0AMAANADAADi////0QMAANEDAADn////1QMAANUDAADx////1gMAANYDAADq////2AMAAO4DAAAAAABA8AMAAPADAADK////8QMAAPEDAADQ////9AMAAPQDAADE////9QMAAPUDAADA////9wMAAPcDAAD/////+QMAAPkDAAD5////+gMAAPoDAAABAAAA/QMAAP8DAAB+////AAQAAA8EAABQAAAAEAQAAC8EAAAgAAAAYAQAAIAEAAAAAABAigQAAL4EAAAAAABAwAQAAMAEAAAPAAAAwQQAAM0EAAABAABA0AQAAC4FAAAAAABAMQUAAFYFAAAwAAAAoBAAAMUQAABgHAAAxxAAAMcQAABgHAAAzRAAAM0QAABgHAAA+BMAAP0TAAD4////gBwAAIAcAACy5///gRwAAIEcAACz5///ghwAAIIcAAC85///gxwAAIQcAAC+5///hRwAAIUcAAC95///hhwAAIYcAADE5///hxwAAIccAADc5///iBwAAIgcAADDiQAAkBwAALocAABA9P//vRwAAL8cAABA9P//AB4AAJQeAAAAAABAmx4AAJseAADG////nh4AAJ4eAABB4v//oB4AAP4eAAAAAABACB8AAA8fAAD4////GB8AAB0fAAD4////KB8AAC8fAAD4////OB8AAD8fAAD4////SB8AAE0fAAD4////WR8AAFkfAAD4////Wx8AAFsfAAD4////XR8AAF0fAAD4////Xx8AAF8fAAD4////aB8AAG8fAAD4////iB8AAI8fAAD4////mB8AAJ8fAAD4////qB8AAK8fAAD4////uB8AALkfAAD4////uh8AALsfAAC2////vB8AALwfAAD3////vh8AAL4fAAD74///yB8AAMsfAACq////zB8AAMwfAAD3////2B8AANkfAAD4////2h8AANsfAACc////6B8AAOkfAAD4////6h8AAOsfAACQ////7B8AAOwfAAD5////+B8AAPkfAACA////+h8AAPsfAACC/////B8AAPwfAAD3////JiEAACYhAACj4v//KiEAACohAABB3///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RAFEAUYBRgFIAUkBSwFLAU0BTQFPAU8BUQFRAVMBUwFVAVUBVwFXAVkBWQFbAVsBXQFdAV8BXwFhAWEBYwFjAWUBZQFnAWcBaQFpAWsBawFtAW0BbwFvAXEBcQFzAXMBdQF1AXcBdwF6AXoBfAF8AX4BgAGDAYMBhQGFAYgBiAGMAY0BkgGSAZUBlQGZAZsBngGeAaEBoQGjAaMBpQGlAagBqAGqAasBrQGtAbABsAG0AbQBtgG2AbkBugG9Ab8BxgHGAckByQHMAcwBzgHOAdAB0AHSAdIB1AHUAdYB1gHYAdgB2gHaAdwB3QHfAd8B4QHhAeMB4wHlAeUB5wHnAekB6QHrAesB7QHtAe8B8AHzAfMB9QH1AfkB+QH7AfsB/QH9Af8B/wEBAgECAwIDAgUCBQIHAgcCCQIJAgsCCwINAg0CDwIPAhECEQITAhMCFQIVAhcCFwIZAhkCGwIbAh0CHQIfAh8CIQIhAiMCIwIlAiUCJwInAikCKQIrAisCLQItAi8CLwIxAjECMwI5AjwCPAI/AkACQgJCAkcCRwJJAkkCSwJLAk0CTQJPApMClQKvAnEDcQNzA3MDdwN3A3sDfQOQA5ADrAPOA9AD0QPVA9cD2QPZA9sD2wPdA90D3wPfA+ED4QPjA+MD5QPlA+cD5wPpA+kD6wPrA+0D7QPvA/MD9QP1A/gD+AP7A/wDMARfBGEEYQRjBGMEZQRlBGcEZwRpBGkEawRrBG0EbQRvBG8EcQRxBHMEcwR1BHUEdwR3BHkEeQR7BHsEfQR9BH8EfwSBBIEEiwSLBI0EjQSPBI8EkQSRBJMEkwSVBJUElwSXBJkEmQSbBJsEnQSdBJ8EnwShBKEEowSjBKUEpQSnBKcEqQSpBKsEqwStBK0ErwSvBLEEsQSzBLMEtQS1BLcEtwS5BLkEuwS7BL0EvQS/BL8EwgTCBMQExATGBMYEyATIBMoEygTMBMwEzgTPBNEE0QTTBNME1QTVBNcE1wTZBNkE2wTbBN0E3QTfBN8E4QThBOME4wTlBOUE5wTnBOkE6QTrBOsE7QTtBO8E7wTxBPEE8wTzBPUE9QT3BPcE+QT5BPsE+wT9BP0E/wT/BAEFAQUDBQMFBQUFBQcFBwUJBQkFCwULBQ0FDQUPBQ8FEQURBRMFEwUVBRUFFwUXBRkFGQUbBRsFHQUdBR8FHwUhBSEFIwUjBSUFJQUnBScFKQUpBSsFKwUtBS0FLwUvBWAFiAXQEPoQ/RD/EPgT/ROAHIgcAB0rHWsddx15HZodAR4BHgMeAx4FHgUeBx4HHgkeCR4LHgseDR4NHg8eDx4RHhEeEx4THhUeFR4XHhceGR4ZHhseGx4dHh0eHx4fHiEeIR4jHiMeJR4lHiceJx4pHikeKx4rHi0eLR4vHi8eMR4xHjMeMx41HjUeNx43HjkeOR47HjsePR49Hj8ePx5BHkEeQx5DHkUeRR5HHkceSR5JHkseSx5NHk0eTx5PHlEeUR5THlMeVR5VHlceVx5ZHlkeWx5bHl0eXR5fHl8eYR5hHmMeYx5lHmUeZx5nHmkeaR5rHmsebR5tHm8ebx5xHnEecx5zHnUedR53HnceeR55Hnseex59Hn0efx5/HoEegR6DHoMehR6FHocehx6JHokeix6LHo0ejR6PHo8ekR6RHpMekx6VHp0enx6fHqEeoR6jHqMepR6lHqcepx6pHqkeqx6rHq0erR6vHq8esR6xHrMesx61HrUetx63HrkeuR67HrsevR69Hr8evx7BHsEewx7DHsUexR7HHsceyR7JHsseyx7NHs0ezx7PHtEe0R7THtMe1R7VHtce1x7ZHtke2x7bHt0e3R7fHt8e4R7hHuMe4x7lHuUe5x7nHuke6R7rHuse7R7tHu8e7x7xHvEe8x7zHvUe9R73Hvce+R75Hvse+x79Hv0e/x4HHxAfFR8gHycfMB83H0AfRR9QH1cfYB9nH3AffR+AH4cfkB+XH6Afpx+wH7Qfth+3H74fvh/CH8Qfxh/HH9Af0x/WH9cf4B/nH/If9B/2H/cfCiEKIQ4hDyETIRMhLyEvITQhNCE5ITkhPCE9IUYhSSFOIU4hhCGEITAsXixhLGEsZSxmLGgsaCxqLGosbCxsLHEscSxzLHQsdix7LIEsgSyDLIMshSyFLIcshyyJLIksiyyLLI0sjSyPLI8skSyRLJMskyyVLJUslyyXLJksmSybLJssnSydLJ8snyyhLKEsoyyjLKUspSynLKcsqSypLKssqyytLK0sryyvLLEssSyzLLMstSy1LLcstyy5LLksuyy7LL0svSy/LL8swSzBLMMswyzFLMUsxyzHLMksySzLLMsszSzNLM8szyzRLNEs0yzTLNUs1SzXLNcs2SzZLNss2yzdLN0s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8gHyAYgfjx+YH58fqB+vH7wfvB/MH8wf/B/8HwAAAAAAAAAAQQBaAMAA1gDYAN4AAAEAAQIBAgEEAQQBBgEGAQgBCAEKAQoBDAEMAQ4BDgEQARABEgESARQBFAEWARYBGAEYARoBGgEcARwBHgEeASABIAEiASIBJAEkASYBJgEoASgBKgEqASwBLAEuAS4BMAEwATIBMgE0ATQBNgE2ATkBOQE7ATsBPQE9AT8BPwFBAUEBQwFDAUUBRQFHAUcBSgFKAUwBTAFOAU4BUAFQAVIBUgFUAVQBVgFWAVgBWAFaAVoBXAFcAV4BXgFgAWABYgFiAWQBZAFmAWYBaAFoAWoBagFsAWwBbgFuAXABcAFyAXIBdAF0AXYBdgF4AXkBewF7AX0BfQGBAYIBhAGEAYYBhwGJAYsBjgGRAZMBlAGWAZgBnAGdAZ8BoAGiAaIBpAGkAaYBpwGpAakBrAGsAa4BrwGxAbMBtQG1AbcBuAG8AbwBxAHEAccBxwHKAcoBzQHNAc8BzwHRAdEB0wHTAdUB1QHXAdcB2QHZAdsB2wHeAd4B4AHgAeIB4gHkAeQB5gHmAegB6AHqAeoB7AHsAe4B7gHxAfEB9AH0AfYB+AH6AfoB/AH8Af4B/gEAAgACAgICAgQCBAIGAgYCCAIIAgoCCgIMAgwCDgIOAhACEAISAhICFAIUAhYCFgIYAhgCGgIaAhwCHAIeAh4CIAIgAiICIgIkAiQCJgImAigCKAIqAioCLAIsAi4CLgIwAjACMgIyAjoCOwI9Aj4CQQJBAkMCRgJIAkgCSgJKAkwCTAJOAk4CcANwA3IDcgN2A3YDfwN/A4YDhgOIA4oDjAOMA44DjwORA6EDowOrA88DzwPSA9QD2APYA9oD2gPcA9wD3gPeA+AD4APiA+ID5APkA+YD5gPoA+gD6gPqA+wD7APuA+4D9AP0A/cD9wP5A/oD/QMvBGAEYARiBGIEZARkBGYEZgRoBGgEagRqBGwEbARuBG4EcARwBHIEcgR0BHQEdgR2BHgEeAR6BHoEfAR8BH4EfgSABIAEigSKBIwEjASOBI4EkASQBJIEkgSUBJQElgSWBJgEmASaBJoEnAScBJ4EngSgBKAEogSiBKQEpASmBKYEqASoBKoEqgSsBKwErgSuBLAEsASyBLIEtAS0BLYEtgS4BLgEugS6BLwEvAS+BL4EwATBBMMEwwTFBMUExwTHBMkEyQTLBMsEzQTNBNAE0ATSBNIE1ATUBNYE1gTYBNgE2gTaBNwE3ATeBN4E4ATgBOIE4gTkBOQE5gTmBOgE6ATqBOoE7ATsBO4E7gTwBPAE8gTyBPQE9AT2BPYE+AT4BPoE+gT8BPwE/gT+BAAFAAUCBQIFBAUEBQYFBgUIBQgFCgUKBQwFDAUOBQ4FEAUQBRIFEgUUBRQFFgUWBRgFGAUaBRoFHAUcBR4FHgUgBSAFIgUiBSQFJAUmBSYFKAUoBSoFKgUsBSwFLgUuBTEFVgWgEMUQxxDHEM0QzRCgE/UTkBy6HL0cvxwAHgAeAh4CHgQeBB4GHgYeCB4IHgoeCh4MHgweDh4OHhAeEB4SHhIeFB4UHhYeFh4YHhgeGh4aHhweHB4eHh4eIB4gHiIeIh4kHiQeJh4mHigeKB4qHioeLB4sHi4eLh4wHjAeMh4yHjQeNB42HjYeOB44HjoeOh48HjwePh4+HkAeQB5CHkIeRB5EHkYeRh5IHkgeSh5KHkweTB5OHk4eUB5QHlIeUh5UHlQeVh5WHlgeWB5aHloeXB5cHl4eXh5gHmAeYh5iHmQeZB5mHmYeaB5oHmoeah5sHmwebh5uHnAecB5yHnIedB50HnYedh54Hngeeh56HnwefB5+Hn4egB6AHoIegh6EHoQehh6GHogeiB6KHooejB6MHo4ejh6QHpAekh6SHpQelB6eHp4eoB6gHqIeoh6kHqQeph6mHqgeqB6qHqoerB6sHq4erh6wHrAesh6yHrQetB62HrYeuB64Hroeuh68Hrwevh6+HsAewB7CHsIexB7EHsYexh7IHsgeyh7KHswezB7OHs4e0B7QHtIe0h7UHtQe1h7WHtge2B7aHtoe3B7cHt4e3h7gHuAe4h7iHuQe5B7mHuYe6B7oHuoe6h7sHuwe7h7uHvAe8B7yHvIe9B70HvYe9h74Hvge+h76Hvwe/B7+Hv4eCB8PHxgfHR8oHy8fOB8/H0gfTR9ZH1kfWx9bH10fXR9fH18faB9vH7gfux/IH8sf2B/bH+gf7B/4H/sfAiECIQchByELIQ0hECESIRUhFSEZIR0hJCEkISYhJiEoISghKiEtITAhMyE+IT8hRSFFIYMhgyEALC4sYCxgLGIsZCxnLGcsaSxpLGssayxtLHAscixyLHUsdSx+LIAsgiyCLIQshCyGLIYsiCyILIosiiyMLIwsjiyOLJAskCySLJIslCyULJYsliyYLJgsmiyaLJwsnCyeLJ4soCygLKIsoiykLKQspiymLKgsqCyqLKosrCysLK4sriywLLAssiyyLLQstCy2LLYsuCy4LLosuiy8LLwsviy+LMAswCzCLMIsxCzELMYsxizILMgsyizKLMwszCzOLM4s0CzQLNIs0izULNQs1izWLNgs2CzaLNos3CzcLN4s3izgLOAs4iziLOss6yztLO0s8izyLECmQKZCpkKmRKZEpkamRqZIpkimSqZKpkymTKZOpk6mUKZQplKmUqZUplSmVqZWplimWKZaplqmXKZcpl6mXqZgpmCmYqZipmSmZKZmpmamaKZopmqmaqZspmymgKaApoKmgqaEpoSmhqaGpoimiKaKpoqmjKaMpo6mjqaQppCmkqaSppSmlKaWppammKaYppqmmqYipyKnJKckpyanJqcopyinKqcqpyynLKcupy6nMqcypzSnNKc2pzanOKc4pzqnOqc8pzynPqc+p0CnQKdCp0KnRKdEp0anRqdIp0inSqdKp0ynTKdOp06nUKdQp1KnUqdUp1SnVqdWp1inWKdap1qnXKdcp16nXqdgp2CnYqdip2SnZKdmp2anaKdop2qnaqdsp2ynbqdup3mnead7p3unfad+p4CngKeCp4KnhKeEp4anhqeLp4unjaeNp5CnkKeSp5KnlqeWp5inmKeap5qnnKecp56nnqegp6Cnoqeip6SnpKemp6anqKeop6qnrqewp7Sntqe2p7inuKch/zr/AAAAAAAAAAAABAEAJwQBALAEAQDTBAEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEA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0TgRADY5EQD5OBEA+TgRAEI5EQD5OBEA+TgRAPk4EQD5OBEA+TgRAPk4EQD5OBEA+TgRAPk4EQD5OBEA+TgRAPk4EQD5OBEA+TgRAPk4EQD5OBEA+TgRAPk4EQD5OBEA+TgRAE45EQD5OBEA+TgRAPk4EQD5OBEAWjkRAGpCEQBqQxEA+0ERACVCEQAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////Pv///z80NTY3ODk6Ozw9/////////wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZ////////GhscHR4fICEiIyQlJicoKSorLC0uLzAxMjP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Pv//NDU2Nzg5Ojs8Pf////////8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGf////8//xobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIz/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8AAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEAgIEBAIEBAQEBAQEBAQEBAQEBAQEBAQBAQIBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE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iy666KKLLvq+6U1vetOb3vSmN73pTW/6q6qqqqqqqqqqqqqqqqqq+nsUrkfhehSuR+F6FK5H4fo8sRM7sRM7sRM7sRM7sRP7JrSX0F5CewntJbSX0F5C+9y2bdu2bdu2bdu2bdu2bfuXexphuacRlnsaYbmnEZb7vLu7u7u7u7u7u7u7u7u7+3zvvffee++9995777333vsAAAAAAAAAAAAAAAAAAAD8ffDBBx988MEHH3zwwQcf/D08PDw8PDw8PDw8PDw8PPx9xVd8xVd8xVd8xVd8xVf8HcdxHMdxHMdxHMdxHMdx/AAAAAAAAAAA////f1VVVVX///8/MzMzM6qqqiokSZIk////HxzHcRyZmZkZdNFFF1VVVRUTO7ETkiRJEhERERH///8PDw8PD47jOA5eQ3kNzMzMDAzDMAy66KILLGQhC6qqqgqjcD0KiZ3YCV5CewlJkiQJsNzTCIiIiAiEEEII////B3zwwQeHh4cHB3VQB8dxHAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////39VVVVVVVVVVf////////8/MzMzMzMzMzOqqqqqqqqqKpIkSZIkSZIk/////////x9xHMdxHMdxHJmZmZmZmZkZ0UUXXXTRRRdVVVVVVVVVFbETO7ETO7ETSZIkSZIkSRIREREREREREf////////8PDw8PDw8PDw84juM4juM4DjWU11BeQ3kNzMzMzMzMzAwwDMMwDMMwDOiiiy666KILFrKQhSxkIQuqqqqqqqqqCnA9CtejcD0K2Imd2Imd2AkltJfQXkJ7CSRJkiRJkiQJCMs9jbDc0wiIiIiIiIiICBBCCCGEEEII/////////wfwwQcffPDBB4eHh4eHh4cHUAd1UAd1UAccx3Ecx3EcBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////9/VVVVVVVVVVVVVVVVVVVVVf///////////////////z8zMzMzMzMzMzMzMzMzMzMzqqqqqqqqqqqqqqqqqqqqKiRJkiRJkiRJkiRJkiRJkiT///////////////////8fHMdxHMdxHMdxHMdxHMdxHJmZmZmZmZmZmZmZmZmZmRkXXXTRRRdddNFFF1100UUXVVVVVVVVVVVVVVVVVVVVFRM7sRM7sRM7sRM7sRM7sROSJEmSJEmSJEmSJEmSJEkSEREREREREREREREREREREf///////////////////w8PDw8PDw8PDw8PDw8PDw8PjuM4juM4juM4juM4juM4DpTXUF5DeQ3lNZTXUF5DeQ3MzMzMzMzMzMzMzMzMzMwMDMMwDMMwDMMwDMMwDMMwDIsuuuiiiy666KKLLrrooguFLGQhC1nIQhaykIUsZCELqqqqqqqqqqqqqqqqqqqqCgrXo3A9CtejcD0K16NwPQqJndiJndiJndiJndiJndgJtJfQXkJ7Ce0ltJfQXkJ7CUmSJEmSJEmSJEmSJEmSJAnTCMs9jbDc0wjLPY2w3NMIiIiIiIiIiIiIiIiIiIiICAghhBBCCCGEEEIIIYQQQgj///////////////////8HBx988MEHH3zwwQcffPDBB4eHh4eHh4eHh4eHh4eHhwcHdVAHdVAHdVAHdVAHdVAHx3Ecx3Ecx3Ecx3Ecx3EcB1rWO5LWU/Tu+GVlG2a0WJV2vz6if+GuulNvzorfmVrplAXBtiug2JH5RnGkNshOtreYjU1EeuLjcn94sGqMbY5Pn5Zche8IsiNHvLNmK4vedqxVMCD7FouTF2s86LncrXjdhUti6FPZa6ozbz1x1IcGlQDLjI3JqUi6wP3v8DvUbXSY/pV2pYSIkT5+O9TOpeo1zl1KiULPsuGges6ViYEfGkkZQvvroaZgm58S+mbK0DiCR5e4AP2CY7GMXnMgnmK83S82kKjFeyvVu0O0EvctO2VVqrBrmviJvurUnAbBdixuJQpESPHK22RXhirNlrwSPu0ndYC8a5eN6HGSoOujflgxh1tEk0yerv1ochW430UaPQPPGuarazAGYsHQj5aGvIe68cSzPKirKSkutuAlSQu62dxxjG8bjigQVI6vSqKxMhTpcdtuBa+frDEnicrGmscX/nCrfXiBuZ09TdZO6/CTgkbwhSEm7TgjWGynqm8oByxuR9HKRXmE26TMgjyXl2USzn+jDH39/pbBX8xP3Ly+/LF3/7EJNvc9z6qfHYwDdQ2Dlcclb0TS0ON6+XfFaoNizuyb1XZFJPsB6MKK1FbteQKi89ZEVjSMQUWYDNZrQe+RVr6Py8YRazbs7Tk/HOsCorOUB0/jpYOK4LnJIlyPJK1Y6L6Vmdk2bDeRLfv/j0RHhbX5+f+zFZnm4jv8f5CtH9CNSvuf9JgnRLEd+scxfzGV3VL8HH/vPn2KZjvkXquOHK1ASp02VrJj2GhOIuJ1Tz6HAuKqWlPjDamDmlUxKFxR05GA1R6Z2RKEtuCKZv+PF6XjmC1A/3Ndzo5/HIh/aPqAcp8jap8COaFOh6xER0OHySKp1xUZFOn7tcmmrY+scZ0ifBCZsxfOxCubVH+gnQH2++CUT4QCwZk5GXpjJUMxwIifWLzukz3wtWO3NXV8JpaiPCWDkhuwu8uL7iN3IpzqXxd1doqVoZI2XRIU7fpJt4T0FlmoeRzl0liuNwnMMY8H75mFCz/+sslqAGfOzr3fvUJgAEGh1ottU3hAkUnMrkholpD1W3/aLQFeenmZj4h4gfXY13+zqtbhMs/NX2DVJs1/oeA7XIVvwN/J2EqzpouwV/yOHWDQV862XXkSPILtgSS1FxfLomiibaLd3H3LAgsJCxVUXf7hpuUmjVT6npoQn3Cw6bjGwNTGjBwkZ/j4RPzXkXZAmzZW+002lBDCxCt64UO5lPJaW+xsyvOclzFyJwi9MIS9vU4xSuw85ew20V6uE0YPlISF9pmYFxO55SZ0wH7dV+dPmEg4b+qWkGO+WgYLpby0+23xx03O6+G95Pac8GAzjeydNMQsOYCwZ8VB9XdHoNxgG0n5qizkiTlim7fVN12sxzqCJcuFdNe8ZHH3ntOohuu9TbWGCFOoZi2hYqjKZ9JgvKQ9qd6Ag3jrDY1TFmGkVmZRcOhbec323zJGcdlrgPOXv5fNz4ag8H2v/cCDqMhsXRs9saTS+mMaMcbupsOc/GC9d6qQ9MM7uawV1bTx9MXziy0FEReZtvDueEbVXL/krCoXmAo07w6seg6fhoCVElcZ0kao4LrXrJ+GWNKY6QbMI1R3g/+RCL8sKVVkf7bK7ndzaj0f5D71KohihpOOjbI1KvtnOLIxH8P0+YHG3n7z+Tg8ETyLXnA4R4sVC652jAYZ7tqN2ckXpM/UqPiHvB2NAwrT9qkrZXCEzId01Ds/xtLf1MiECc93xxcK+6XMwlW5ncx5z7+Z1ZPiH6yBLwDLONsnF6I7wP0G0vGcykowvYhGLkT9Lj52FeycSp66zdMaJ0TdxSjBiOEwlVT3uXj1jD7dlJrn1jIwjhQ6waGMP7yxmYjx5benFQ9g9ZbepRHbEriyvFYP1pEXZt/rlcklu86fa5P7O+9pwodGuPoKawSzKVjm3ObC4g8a94+ToHPbk+D0s7iIUNK4GPLgc1Vyg3NPl4zP6k5kUCO9r4OlYn0kbKzbcqddzpbDS4lPEfWBfLSeq6JVcqKbYYbWhXWHRQH9E4bnUumWQfyYp6Cno/xRO3/RxEjmPROF74L12l8NWGaro7PRtxDuP5bMH8bllOnPu//Tmw/98WHVn8iCU3xuusrHe2NoGwppvfktPiFRpmEWnLiNaeUP+hvDJvHD3pP44vO3djprXNttmGUUCYYzUom+f1mLZ8CmK+7vF7dAOEjblOvd5FBGGhK6ZhUe5degluhgzTLvhiRekbiA/6qorbW15mC/1RIZI+OPnJfFq+/1jbOD/baWa3OxoOS8ZHxG0N3kDva+DSyiip2Ssy4Rt0qtRHdgetVkndiLSnxsBV9ihy1dm8fG9jqpeTSCeXi0idPLYPFLyxA2hP647R7+lEOlPieppj16lM6HuCmIZswcgagmNCqA/2OhUjDBNGD/vMlnfPFBOD8s/MDtNimDp5udMamE82ORAsV902XwvDVD9i6kPxaWAeqZOY3Pm/uBZMCIcMOCeqJ98FUmupGMhU6W6q8otu8m4rvl27Kjq7Da6m/JT0ZrrsiSy7vjFwbaere9qtydh5BZ5bbqqcJU+lePZGVU8+n4LbO9filwJHf53zbvGcZ26vuLA2ugdxTl+q7EhYiVWZ652ptTdf33ArSIgajS/LUD4aqiUgd8o0SZ1aWThC3myn+FjrjluJ+936ayJh+nB62X0C94c8gkzF6CO1aQ+i1/9qLKazR5+R60y7yGgde3JqH+NvSw5jK4JJ9DMV2gP+btxpR9dIjPX6n4fM5IteHbaZsbApsi2lJEwqLCQauQZ9XypRkJa7pgxZcPYMsF6bi2vRM4PkcjZyTtC+OGDHbANpTOm6iPk3BEucLCknO4jJXnubk7SPN3vZAoqEoa8NXstDJS3SBsCyjiX1OKlCMHWY036Kx57EivsEQiGJgnG9vcaxUPv/jwCIrF2tLuNi2LrHeRh6qE+K3X6rqU6lK7zIal6TmlJ+p/qA5kiI6x5J/SiT4V+e7uo4Mrjlq3quqMpLYxMWVVJbDNEb8+X1UXjoDWbg63Kp2xoIsK0mR1BN7ILo0GvpKFFfs9GMS2e3PtnEwedaRa0CjE32WSTXEEM/Wrf3vQxuI/mZZfmoR424+/fPfApVbSc++tmpgndmOolVnBfrFTfBK7r3HenWgb1+kNB6tiIXEmktHIVbtpDbC2BTsrKsQQXOTjBFuaeoq5jhzG8UAZ7WeyozcukV/oAd/G4ry6OzFhi3cbbKmKfTmuVSLHU+3cx9l1dVxUFOociNKSc2mZJCSqh3fQw78trdS0SmLalzzshGHd+tC9SyemupQ5Ra0esc/0/ENLLLPOgTH8FF73X0KiPjuaNfX30soNygCD8rWH/Uh+4JG30XSe2p1YdiUGEsZRxe7TroeW91I7dUTNFL6aJ4qSlQCabcGxLPe6gADJ8e572nRQoB2X6hoRkmQI5bylYZW2fUoe7AddHZKO7pKTSbSkNjKqd7hb4U3EvpSV5tmssDr3fB2QD9hcCTXcJLQTDrRLQhMu4cuIUG8JzLyM/qokywv/66++1e29zv7m25eltDZBX3CJ/M5hhBF3zKu8Qnrl1ZS/1rVpbK8FvTeGI4RHG0esxacrZRniWBe30TvfT42XbhKDCtejcD0K16PMzMzMzMzMzAAAAAAAAACAAAAAAAAAAKAAAAAAAAAAyAAAAAAAAAD6AAAAAAAAQJwAAAAAAABQwwAAAAAAACT0AAAAAACAlpgAAAAAACC8vgAAAAAAKGvuAAAAAAD5ApUAAAAAQLdDugAAAAAQpdToAAAAACrnhJEAAACA9CDmtQAAAKAxqV/jAAAABL/JG44AAADFLryisQAAQHY6awveAADoiQQjx4oAAGKsxet4rQCAehe3JtfYAJCsbjJ4hocAtFcKPxZoqQCh7czOG8LToIQUQGFRWYTIpRmQuaVvpToPIPQnj8vOhAmU+Hg5P4HlC7k21wePod5OZwTNyfLJliKBRUB8b/ydtXArqK3FnQXjTDYSGTfFxhvgw1bfhPZcEWw6lgsTmrMVB8l7zpfAINtIuxrCvfD0iA21UJl2ljHrUOKkPxS8/SXlGo5PGeu+N8/QuNHvkq0FAwUnxqu3GcdDxrC3luVvXOp7zjJ+j4vz5BqCv12zbjCeoWIvNeBF3gKlnT0hjNaVQw4FjSmvTHvUUUbw89oPzSTzK3bYiFMA7u+2kw6raIDpq6Q40tVB8HHrZmOjhVFsTqZAPAynZQfiz1BLz9CfRO2BEo+BgseVaCLX8iGjObsC64xv6ssIasMlcAvl/kUimhcmJ0+f1qqAne/wIseL1eCEK63r+HeFDDM7TJOb1abP/0kfeMKKkMN/HCcW81Y62s9x2O2X7MjQQ45O6b0n+8TUMaJj7fgc+yRfRV6UNuQ57rbWdblEXcipZEzT50o6Heq+D+SQ3YikpK4THbUUq81Nmlhk4uyKoHBgt36NqK3IjDhl3rAS2fqvhv4V3avH/C0Uvy2Klvl7Odkuuaz799qHj3rn1/3a6LSZrPCGvBEjIsDXrKgr1qsqsA3Y0ttlqxqOCMeDUj9WobHKuKQmz6sJXv3mzXhhC8ZaXrCA1jmOd/F13KBMyHHVbZMTyV86zkpJeFj7e+TAzi1LF52aHXFC+R1dxABlDZN3ZXT1IF/ou2q/aJnoduJqRe/Cv6IUm8UWq7Pv5eyAO+5K0JUfKGHKqV1EuyZy+TwUdRXqWOcbpixpTZIu4aLPd8PgtnqZi8NV9Jjk7D83mrWY347nD8UA436XsuFT9sCbXj3fbPSZWCFbhouHccCu6fFnrumNcBpk7gHasliGkP40QYje7qc0PoJRqpbq0cHN4uXUnjIjmcCtD4VF/2u/MJlTphb/Ru98f+jPbl+MFa5P8YFJd++amaNtohxVqwGADAnLYyoWAqBPy/1+2k0BxBGfnh1RoQE11kbGZaUJQsKL2PdfB0ZpWVfnmjeJl8MvLaHBhGt9tHt4CfIyY85QTetFl//7AaUgZhe9/3pCzqg/XezfjOmAyUe6kxfwI+G72ai4Hexs2SoQ0+aSE+THGupDkHcY3Xmh5FS0lF5U2MkdauEduzQnnlLijOTpAbFF5xqwXWRCHRehIdy6fklyrgSViWne2w7aRfqrA9aSklDX+NbCxZtbkoZbhjK3gvI2aPKn/2Qjr0QC79EfH3btamE1g+em06jFuQKkoZAIEzdoA81kWuVrIiEigP2w3gZrqSqgPV2WyMVTNciM9Ls6t6hC+td4tYRyqWmcDdfiJc8ThMPRjFvvwhhl9AI4mdV5L7+YA4b/Slj77r6EZ79dLrqq7rKgl/pctCqV34g9OXRhdboX64xH0bkS6e4SuMwitKuRqhfmfyuhFraUnd9fdkmc433C6/vprUGOHLPmemQZ0rHjX6CZvZ9G3u47BIDWI+yK6UoFIMwsp62knQYo//cQ2YYiBHn/mqqHKCtFV79BlanydRYtL5L607cJLnxdm3yEJYw52zTCm6Uu7wcSwrICz331REu5r2GB3DIWnqcbuqGTv5uFkaIoynivAuc1y7L8q61hsAG/750WGXocwq5rxVufmKNymsb2mWM/pocgPJp/PM+PqSjLwJ8Lw/PT8v3wQ+dZeMS3npYUYXCWtWVGvFl5DPwi/1fr2MuH3XX/FpPOvulUU7/ct4EuJCoo79PlEJ1WGnl1pI9VROxg15KNs2pVJzmN93DgYpW4Q7iaRoy7uqZUZkFYr2pp0Om/US7b4kEi8hfz/Iha0qru3S88q/GGVWrVOwvWVnR1YmUFx4Vs0RK7vsY4p8eF12lu+AbRnLMmAkVbpIKEYLBCFnJNo6V4XNObziDMzpYzyEICKf9BPiC9aaF5n9FNaCzECVjHRWGCNzUMLvnLfLFCoce8m/7bXZOJ+avC/lI1+Ov3VvPeUyF781oWmNao6Vmw8Ru+DBNkcBzuou3niz7G0dSFlOEuzjcGSqe5mbrBxYccEeigFJnb1LEKkchZfxJKXk21OjAfl9y1oOIkfnPeqXGkja1dEFYUjg2xGHWUa5nxUN0vyTzj/5ZSinv7C9y/POesWvoO0+8LIdh4XOnjdacUh5az41xT0dmofKAcNKhFENNN5JEgiSvqg2BdtmhrtuSkufTjQgbkHc7zeM7pg67SgDAXQuQkWgeh/JxSHa4wSck8RKek2Xyb+6WK6AYILkGdTq2iCIp5kcSiWMuK7Ne19WUXv9bzppGZP91uzLAQ9r+OlIr/3JTz79mcth8KPfiVD0Skp0xMdrsTVY3RX99T6ixV+OKba3SSd2q224KGEbcVBaSSI+jV5C2DpjsWsQWP+COQylsdx7L2LDS9suR43xqcQLbvjquLIMPQo6tylq7o88SMVg882nEY+xeWiWWIjd75nfvrfqoxVniF+qYe1d41a5NcKDOFVgNGuHPyf6YshFemEO8f0Juy9mdq9ROCQl/0AcXymKITd3FCdi8/y9fUDdNT+w7+BqXoYxRdyZ5IzuJ8WbR7xtqBG9xvoRr4KDGR6eWkEJtyffVjH87Uwc/c8jynAUryAcoXhghBbpeCvJ2nStFJvaIrhVGdRZzsRTvzUoKr4ZMXCrDnYhbauJ0MnKH7mxDn4ocBRX1hapDa6UGW3PmEtFFk0rtTOKbhsn5jVTTjB41fXrxqAdxJsPd1a8UBU1zcuiljG+GzuYkp9Dti2SAorDPxyroPKTLXwNa+1KlZf4ZwjO5JFDAfqIwvalwZ/CbSt13C2Y9dWIMl9TLQ83QupG+yP8QwEjrNhc+nel5LRIBmw1EZNl5VoEA0pp/DtWrIUMGPhzRjhfrS2LnUAF6TnAdP6AmBNbjDyGJiTOFCpvS9fb3PzOnnmCzdrANA5CG/eBSYBFBd6u7LDN8CUnpSlf3PloPmGKe6/YN8JCDfUOl+0s0WdIvSkR1HgRxRLke25ZihY+X52OOP/0ReL5xnjgAAAAAAAAAAUPtU+1f7Wvte+2H7ZPto+2v7bvty+3X7ePt8+3/7gvuG+4n7jPuQ+5P7lvuZ+537oPuj+6f7qvut+7H7tPu3+7v7vvvB+8X7yPvL+8/70vvV+9n73Pvf++P75vvp++378Pvz+/b7+vv9+wD8BPwH/Ar8DvwR/BT8GPwb/B78Ivwl/Cj8LPwv/DL8Nvw5/Dz8QPxD/Eb8SvxN/FD8VPxX/Fr8Xfxh/GT8Z/xr/G78cfx1/Hj8e/x//IL8hfyJ/Iz8j/yT/Jb8mfyd/KD8o/yn/Kr8rfyx/LT8t/y6/L78wfzE/Mj8y/zO/NL81fzY/Nz83/zi/Ob86fzs/PD88/z2/Pr8/fwA/QT9B/0K/Q79Ef0U/Rj9G/0e/SH9Jf0o/Sv9L/0y/TX9Of08/T/9Q/1G/Un9Tf1Q/VP9V/1a/V39Yf1k/Wf9a/1u/XH9df14/Xv9fv2C/YX9iP2M/Y/9kv2W/Zn9nP2g/aP9pv2q/a39sP20/bf9uv2+/cH9xP3I/cv9zv3S/dX92P3b/d/94v3l/en97P3v/fP99v35/f39AP4D/gf+Cv4N/hH+FP4X/hv+Hv4h/iX+KP4r/i/+Mv41/jn+PP4//kL+Rv5J/kz+UP5T/lb+Wv5d/mD+ZP5n/mr+bv5x/nT+eP57/n7+gv6F/oj+jP6P/pL+lv6Z/pz+n/6j/qb+qf6t/rD+s/63/rr+vf7B/sT+x/7L/s7+0f7V/tj+2/7f/uL+5f7p/uz+7/7z/vb++f79/gD/A/8G/wr/Df8Q/xT/F/8a/x7/If8k/yj/K/8u/zL/Nf84/zz/P/9C/0b/Sf9M/1D/U/9W/1r/Xf9g/2P/Z/9q/23/cf90/3f/e/9+/4H/hf+I/4v/j/+S/5X/mf+c/5//o/+m/6n/rf+w/7P/t/+6/73/wf/E/8f/yv/O/9H/1P/Y/9v/3v/i/+X/6P/s/+//8v/2//n//P8AAAMABgAKAA0AEAAUABcAGgAeACEAJAAnACsALgAxADUAOAA7AD8AQgBFAEkATABPAFMAVgBZAF0AYABjAGcAagBtAHEAdAB3AHsAfgCBAIQAiACLAI4AkgCVAJgAnACfAKIApgCpAKwAsACzALYAugC9AMAAxADHAMoAzgDRANQA2ADbAN4A4gDlAOgA6wDvAPIA9QD5APwA/wADAQYBCQENARABEwEXARoBHQEhASQBJwErAS4BMQE1ATgBOwE/AUIBRQFIAUwBTwFSAVYBWQFcAWABYwFmAWoBbQFwAXQBdwF6AX4BgQGEAYgBiwGOAZIBlQGYAZwBnwGiAaYBqQGsAa8BswG2AbkBvQHAAcMBxwHKAc0B0QHUAdcB2wHeAeEB5QHoAesB7wHyAfUB+QH8Af8BAwIGAgkCDAIQAhMCFgIaAh0CIAIkAicCKgIuAjECNAI4AjsCPgJCAkUCSAJMAk8CUgJWAlkCXAJgAmMCZgJpAm0CcAJzAncCegJ9AoEChAKHAosCjgKRApUCmAKbAp8CogKlAqkCrAKvArMCtgK5Ar0CwALDAscCygLNAtAC1ALXAtoC3gLhAuQC6ALrAu4C8gL1AvgC/AL/AgIDBgMJAwwDEAMTAxYDGgMdAyADJAMnAyoDLQMxAzQDNwM7Az4DQQNFA0gDSwNPA1IDVQNZA1wDXwNjA2YDaQNtA3ADcwN3A3oDfQOBA4QDhwOLA44DkQOUA5gDmwOeA6IDpQOoA6wDrwOyA7YDuQO8A8ADAAAAAAAAAAAAAG8/EgDdPxIA3T8SAN0/EgDdPxIAvz8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIA3T8SAN0/EgDdPxIAbz8SAN0/EgDdPxIA3T8SAN0/EgC/PxIAAAAAAAAAAAD///////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0OD///////////////////////////////////CgsMDQ4P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AQAAAAUAAAAZAAAAfQAAAHECAAA1DAAACT0AAC0xAQDh9QUAZc0dAPkClQDdDukCUUqNDpVzwkgAAAAAAAAAAAEAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjsAAAAAAAAAAJ0HEPqTx2VnSfbZly0kZGYUm5MpEA/DKcUJ+MQq8vN7NK69ZxcFNK1fG502kxXeENFgspLH9/+exg7egVZduq6kZAZBenNAT2+E0yBzD9AGLRcb/xzXoRMXdqDvPS1of8CQjP/nMQE//rncP3cBe5GnB8QWnWvAAplxD5bsZ2YF2O964My58oDj9XOCSiGa6wWAs0DUekcO5gh9Jx6xKPqE1/fTW4McAdXZI/fz04Iy0VcI4CWdZWnPF/EsB23aJBcUTZXtjF0+ZreLeuZaeP3SNlRkNIvHQBcSFZT36XIAoWpBK6fFk3jUxn3j6iutK2yE/PBLrnV1FHtYYjR6toPbDBECVS+Z9yKw3gDsO6KkzcX1ik9lW7iL842B0mkuAL3LGDVfwbAgL2x1ON3DXfuULa0iUqk1vyoZmaYmM2Ga7ZwqrWiJ9NdU+33otl3wyDF19l5Jq8Exn6wC4rVXKZvT9kOhB78SAOkdl4vhoqshYkOUYzYjF1clQlTZZkFT++5jxQjiDmQUMQ3kJDdlsAIUf4gDM+WFAibvRLfEpuOLtHlpJuLsYWfkOcvZGeN95pbnOQ1QkgcA5bYOJpanFPSRdBru62iT21sQDPVQdxVZXPvSnott5fYjje7qdZ8xD9Y0oSrpCCmsmDJB1FUq8AJ6Wp2YhOHdcKdAgLqBCSADHLEDvhgqHDyhJwTW4A4DAHFtVs4lqsTxU8qTTtCDIqfqcxpV4jgFPT8wpI1g3lhqIQJmDqZhz0nBjwWNTKHRuX0Vq0syaVzInouMUdC4kpshDooN+V2FvaFZ6rOJkqKNBtWERQ/YUjfGaSW3MzwBAE01Dxn+XGmDx9Ck5ei3D7bEvFvuTAUiuYUNT7soQDlI21eJHRTbfg2HdcxOAp5eUGvzh0zWa+aZNe25RNQ3MHUnX/7lA8JCJyvtshMsXVLcmuX95o+x/3csdcUTzEuoCEBJmoW2fwAAOcuYT7zbDqYuh7WD/6wBpXhvx5xzTN26+onpQ4DPespPggwu/E+fsRzYLwlbZOvkwoT/obqDWorp+qGoCTa0HQvV/rC90tcN2Mx6fQ9k+pHFxtw31X9BHK1i1OSZM6TopfkbEylN9Y3BfVQ2lTMAAPUw01tnGdJ3t4HEGs734mupkkd/UixM6CgiWYQp+Mqd4Uy02hsxDD19KS5TtOgER74y3JydTeZBob4Xdw3AJKgnC/UId40ZD/D9u0lpbFwC01zl1Ctgg/DN/vC56kqGwIGGuZzpIPaqMN+2rGb+qk87PPGK1RQAAEG5K2iX8qmJe12ny7EXQkDpGeW0Kxa8oQqR9ff1WnGYVz71L4wR7+NDRQxJNBebvE2+/ypMy+1MnukU+xJC4zUknOPsszpnB90VMefnOF3RO+0+CcXq5/iAzKh4rHoiJVEFWT/LoT1BVTpk30StZavXIwvXds1yxmLqZDNqCAAA3WPxIqwHzyPC9iq+9vYS9B5U/8Pe9+pu4EdwpJLajEAI6w4PnbreVpCwxs8E37uLs80zOX22e541cCmfRGKUOLs3He50gYnenVXzY/tyW3DZJ40TeDpg+ETsXnPVhwnjcIDTxo5U/pwiFPCfqEpWfLpgzJFdVsPLC6VQda2uCWlFTCMTZgMAAIlJlRcJd3065S0EmEMUAanCI+dFb/2fJkYqhVgqBKGqU4HuLp7DtrJlW4Sv12XD9iv7z+QM6UDIu4rqq9L4WFw6+hlcCpFwRhzySUSzRabv7H1CzHM9PAgTtHxG5Arhb3L8rzxepY2fp45cXruUBUkLG4fwbIGJ3fgdk47J4VzopZCgzGuhX1dsEJ9rXwEAAAXYIO4HPLxXTmLqzS318NP0tCSZQIaWz2IZ1GFktH/ox1Gv6mCLTFYoQNrMuyiUUqgfOjGUD72WquuCeunnma3UjGbyXqQzvmm2Df2fNu6H7SDs07d9TZzY8NzeZMrSfHdlWuLUPwBhzFRv5UjHtxBeblJAh64Ac2GSQ1xp9A8sEj9yv2GbN7L1tFm/PxwbySdtBPCNAAAAEZ5cUkHr4PRdibLr+RKlXdQpm33cTi9FN7yQC8t3FzSvadJjKXmnHSYYXAqYGJl3ht/tWneoU/jMMYxT2pZI6AsBoLflTe8X3ioqpRzYnwIB53yYd/3+J2/GRtsAGTBdwJhpSbmYZbsHtuteSjVH5X4vSt9VSWzw+i8klif7dRfOWMy+O6Xy6yrYqj66NxH0um8+V7hmSPtIIQBUOQAAABkAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAA//////////8cAAAAAAAAAAEAAAAAAAAAAAEAAAAAAAAMAAAAAAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHuTwmUBAAAAe5PCZdIIowUAAAAA3QAAAN0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAHuTwmUBAAAAe5PCZdIIowUAAAAA3QAAAN0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAP////8AAAAAAwAAAAIAAAAFAAAAAAAAAAMAAAAFAAAAAQAAAAQAAAAGAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAD/////AAAAAB8AAAA7AAAAWgAAAHgAAACXAAAAtQAAANQAAADzAAAAEQEAADABAABOAQAAAAAAAAAAAAAAAAAA/////x8AAAAcAAAAHwAAAB4AAAAfAAAAHgAAAB8AAAAfAAAAHgAAAB8AAAAeAAAAHwAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAAATjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEwVGltZVpvbmVJZkUAAAAAAAAAAAAAAAAAAAAAAPgAjqRUAAAAAIDBhVYAAAAAgEZoWAAAAAAAeklaAAAAAICtKlwAAAAAAOELXgAAAAAAZu5fAAAAAICZz2EAAAAAAM2wYwAAAACAAJJlAAAAAICFdGcAAAAATjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEyVGltZVpvbmVJbmZvRQAAAAAAAAAAAP////8fAAAAHAAAAB8AAAAeAAAAHwAAAB4AAAAfAAAAHwAAAB4AAAAfAAAAHgAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAAAAAAAAAAAAAAAAAA//8AAB8AOwBaAHgAlwC1ANQA8wARATABTgFtAf//AAAfADwAWwB5AJgAtgDVAPQAEgExAU8BbgFOU3QzX18xMTBfX2Z1bmN0aW9uNl9fZnVuY0laTjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEyVGltZVpvbmVJbmZvNExvYWRFUktOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFRTMkXzFOU0FfSVNGX0VFRk5TXzEwdW5pcXVlX3B0cklOUzVfMTRab25lSW5mb1NvdXJjZUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFRUVTRV9FRUUATjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEyX0dMT0JBTF9fTl8xMThGaWxlWm9uZUluZm9Tb3VyY2VFAE40YWJzbDEybHRzXzIwMjEwMzI0MTN0aW1lX2ludGVybmFsNGNjdHoxMl9HTE9CQUxfX05fMTIxQW5kcm9pZFpvbmVJbmZvU291cmNlRQBaTjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEyVGltZVpvbmVJbmZvNExvYWRFUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNF8xMWNoYXJfdHJhaXRzSWNFRU5TNF85YWxsb2NhdG9ySWNFRUVFRTMkXzEATlN0M19fMTEwX19mdW5jdGlvbjZfX2Jhc2VJRk5TXzEwdW5pcXVlX3B0cklONGFic2wxMmx0c18yMDIxMDMyNDEzdGltZV9pbnRlcm5hbDRjY3R6MTRab25lSW5mb1NvdXJjZUVOU18xNGRlZmF1bHRfZGVsZXRlSVM3X0VFRUVSS05TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVFRUUAMDEyMzQ1Njc4OQAwMTIzNDU2Nzg5AE40YWJzbDEybHRzXzIwMjEwMzI0MTN0aW1lX2ludGVybmFsNGNjdHoxNFpvbmVJbmZvU291cmNlRQAAAAAAAAAAAAAAAAAATjRhYnNsMTJsdHNfMjAyMTAzMjQxM3RpbWVfaW50ZXJuYWw0Y2N0ejEyVGltZVpvbmVMaWJDRQAAAAAAAAAAAP////8fAAAAHAAAAB8AAAAeAAAAHwAAAB4AAAAfAAAAHwAAAB4AAAAfAAAAHgAAAB8AAAAAAAAAAAAAAAAAAAAkvxUAJL8VAPO+FQDsvhUAFL4VABS+FQD9ABYA7QAWAN0AFgDPABYAxAAWALYAFgCqABYAgwIWAHwCFgBwAhYAZAIWAF0CFgBWAhYASgIWAPcEFgDnBBYA1wQWAMkEFgC+BBYAsAQWAKQEFgCkBhYAnQYWAJEGFgCFBhYAfgYWAHcGFgBrBhYAGzkWAL85FgChOxYAoTsWAKE7FgBAOhYAoTsWAKE7FgChOxYAzjoWAAdQGAA9UBgARFAYAEtQGACe3xgA+uIYAPriGAD64hgA+uIYAPriGAD64hgA+uIYANLfGABH4BgA+uIYAPriGAD64hgA+uIYAPriGAD64hgAm+AYANngGAAR4RgAgeEYAPriGAD64hgA+uIYAPriGADe4RgApqampqampqamWVmmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAACAQAAAgAAABABAAAQAAAAEgEAABIAAIAAAQCAAAAAgAIBAIACAACAEAEAgBAAAIASAQCAEgIAAAADAAAAAgAAAgMAAAICAAAQAwAAEAIAABIDAAASAgCAAAMAgAACAIACAwCAAgIAgBADAIAQAgCAEgMAgBIAAACAAQAAgAAAAIIBAACCAAAAkAEAAJAAAACSAQAAkgAAgIABAICAAACAggEAgIIAAICQAQCAkAAAgJIBAICSAgAAgAMAAIACAACCAwAAggIAAJADAACQAgAAkgMAAJICAICAAwCAgAIAgIIDAICCAgCAkAMAgJACAICSAwCAkgAAAAAAAAAAIAIAAAACAAAgAAIAAAACACACAgAAAgIAIEAAAABAAAAgQgAAAEIAACBAAgAAQAIAIEICAABCAgAgAEAAAABAACACQAAAAkAAIABCAAAAQgAgAkIAAAJCACBAQAAAQEAAIEJAAABCQAAgQEIAAEBCACBCQgAAQkIAIAAAAQAAAAEgAgABAAIAASAAAgEAAAIBIAICAQACAgEgQAABAEAAASBCAAEAQgABIEACAQBAAgEgQgIBAEICASAAQAEAAEABIAJAAQACQAEgAEIBAABCASACQgEAAkIBIEBAAQBAQAEgQkABAEJAASBAQgEAQEIBIEJCAQBCQgEgAAAAABAAAAAAAEAAEABAAAAAABAQAAAQAABAEBAAQBAgAAAAMAAAACAAQAAwAEAAIAAAEDAAABAgAEAQMABAEAAgAAAQIAAAACBAABAgQAAAIAAQECAAEAAgQBAQIEAQICAAADAgAAAgIEAAMCBAACAgABAwIAAQICBAEDAgQBAAAACAEAAAgAAAQIAQAECAAAAAkBAAAJAAAECQEABAkCAAAIAwAACAIABAgDAAQIAgAACQMAAAkCAAQJAwAECQACAAgBAgAIAAIECAECBAgAAgAJAQIACQACBAkBAgQJAgIACAMCAAgCAgQIAwIECAICAAkDAgAJAgIECQMCBAkAAAAAAAAQAAABAAAAARAACAAAAAgAEAAIAQAACAEQAAAQAAAAEBAAABEAAAAREAAIEAAACBAQAAgRAAAIERAAAAAABAAAEAQAAQAEAAEQBAgAAAQIABAECAEABAgBEAQAEAAEABAQBAARAAQAERAECBAABAgQEAQIEQAECBEQBAAAAgAAABIAAAECAAABEgAIAAIACAASAAgBAgAIARIAABACAAAQEgAAEQIAABESAAgQAgAIEBIACBECAAgREgAAAAIEAAASBAABAgQAARIECAACBAgAEgQIAQIECAESBAAQAgQAEBIEABECBAAREgQIEAIECBASBAgRAgQIERIEAAAAAAAAABAAAAEAAAABEAQAAAAEAAAQBAABAAQAARAAAAAgAAAAMAAAASAAAAEwBAAAIAQAADAEAAEgBAABMAAAEAAAABAQAAARAAAAERAEABAABAAQEAQAEQAEABEQAAAQIAAAEDAAABEgAAARMAQAECAEABAwBAARIAQAETAAEAAAABAAEAAQAQAAEAEQBBAAAAQQABAEEAEABBABEAAQACAAEAAwABABIAAQATAEEAAgBBAAMAQQASAEEAEwABAQAAAQEBAAEBEAABAREAQQEAAEEBAQBBARAAQQERAAEBAgABAQMAAQESAAEBEwBBAQIAQQEDAEEBEgBBARMAAAAAAAAAAICAAAAAgAAAgABAAA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FQEZARsBJQEzATcBOQE9AUsBUQFbAV0BYQFnAW8BdQF7AX8BhQGNAZEBmQGjAaUBrwGxAbcBuwHBAckBzQHPAdMB3wHnAesB8wH3Af0BCQILAh0CIwItAjMCOQI7AkECSwJRAlcCWQJfAmUCaQJrAncCgQKDAocCjQKTApUCoQKlAqsCswK9AsUCzwLXAt0C4wLnAu8C9QL5AgEDBQMTAx0DKQMrAzUDNwM7Az0DRwNVA1kDWwNfA20DcQNzA3cDiwOPA5cDoQOpA60DswO5A8cDywPRA9cD3wPlA/ED9QP7A/0DBwQJBA8EGQQbBCUEJwQtBD8EQwRFBEkETwRVBF0EYwRpBH8EgQSLBJMEnQSjBKkEsQS9BMEExwTNBM8E1QThBOsE/QT/BAMFCQULBREFFQUXBRsFJwUpBS8FUQVXBV0FZQV3BYEFjwWTBZUFmQWfBacFqwWtBbMFvwXJBcsFzwXRBdUF2wXnBfMF+wUHBg0GEQYXBh8GIwYrBi8GPQZBBkcGSQZNBlMGVQZbBmUGeQZ/BoMGhQadBqEGowatBrkGuwbFBs0G0wbZBt8G8Qb3BvsG/QYJBxMHHwcnBzcHRQdLB08HUQdVB1cHYQdtB3MHeQeLB40HnQefB7UHuwfDB8kHzQfPB9MH2wfhB+sH7Qf3BwUIDwgVCCEIIwgnCCkIMwg/CEEIUQhTCFkIXQhfCGkIcQiDCJsInwilCK0IvQi/CMMIywjbCN0I4QjpCO8I9Qj5CAUJBwkdCSMJJQkrCS8JNQlDCUkJTQlPCVUJWQlfCWsJcQl3CYUJiQmPCZsJowmpCa0JxwnZCeMJ6wnvCfUJ9wn9CRMKHwohCjEKOQo9CkkKVwphCmMKZwpvCnUKewp/CoEKhQqLCpMKlwqZCp8KqQqrCrUKvQrBCs8K2QrlCucK7QrxCvMKAwsRCxULGwsjCykLLQs/C0cLUQtXC10LZQtvC3sLiQuNC5MLmQubC7cLuQvDC8sLzwvdC+EL6Qv1C/sLBwwLDBEMJQwvDDEMQQxbDF8MYQxtDHMMdwyDDIkMkQyVDJ0Mswy1DLkMuwzHDOMM5QzrDPEM9wz7DAENAw0PDRMNHw0hDSsNLQ09DT8NTw1VDWkNeQ2BDYUNhw2LDY0Now2rDbcNvQ3HDckNzQ3TDdUN2w3lDecN8w39Df8NCQ4XDh0OIQ4nDi8O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AAAAAAIICAIACAACAgAIAAAICAIAAAgAAggAAAAIAAICAAgCAAgAAAAICAACAAACAggIAAIAAAACAAACAAAIAgIICAIACAgAAAAIAgIIAAIAAAACAggAAAIACAAAAAAAAAAIAAAAAAICCAACAAgIAgIAAAACAAgCAAgAAAIICAAQgBBAAAAAAACAEAAAABBAEAAAQBCAAAAAgABAAIAQAACAAAAQABBAEAAAAACAAEAQABAAAIAQQAAAEEAQAAAAAAAQABCAAEAQABBAAIAAABCAEAAAAABAAAAAABAAEAAQgABAEIAQAACAEEAQAABAAAAAQAAAEAAQgAAAEIAQQBAAEAAAgBBAAIAAQBCAEAAQgBBAEAAQABAAAEAAAAAAAAAAQBCAAAAAABAAEAAQQACAAAAAAABAEIAQABCAAEAAgBBAAIAAAAAAAAAQAABAEAAAABCAEEAAgBAAAAAQQBAAEEAAABAAEIAAAACAAEAQgABAEAAAAAAAEEAAgBAAAQAABAABBAQAAQAAAQEABAEABAAAAAAEAQEABAABBAAAAQAEAAAEAAAABAQBAAAAAQEEBAEBAAABAAAAAQAEBAAAAAABAAQAAAEEBAABAAABAQAAAQEEBAAABAABAAAEAQAEBAABAAQBAQQAAAAEBAABBAAAAAAAAAAABAEBBAAAAQQEAAEAAAEAAAAAAAQAAQEAAAEABAAAAAQEAQEABAAAAAAAAQQEAAEEAAEABAQBAAQAAAAABAEBBAQBAAAAAQEEAAEAAAQAAAAEAQEEBAAABAAAAQAEAQEABAABBAAAAQAEAAAAAAEABAQBAQAAAQAABAEBBAAAAQAAAAAEBAgQQAAAEAAQCAAAAAgQQBAAAAAAAABAEAgQABAIAEAAABBAEAgAABAAAAAQCBAAAAgAABAIEEAAAABAAAAAABAIAEAQABBAAAAQAAAIAAAAABBAAAgQABAAAEAQABAAAAgQAAAAAAAACABAAAAQQBAAEAAQCABAEAgQQBAAAEAACABAEAgQAAAAAEAACAAAEAAQQAAAEAAQCAAAAAAAQBAIEAAQAAAAAAAQAAAIAEAAAAAAAAgAQBAAEEAQABAAAAAAABAIEEAQCBBAAAAAQAAIEEAQCAAAAAAQABAIEEAACABAAAAQQAAAAEAQCBAAEAgQAAAAAAAQCAAAEAAQQBAAAAAIAAABAAAEAAAgBAEIIAABCAAEAAggBAEAAAABCAAAAQAgAAAAIAAACAAEAQAgBAAIIAABCAAEAQgAAAAAAAQBAAAAAAggAAEAIAQAAAAEAAggBAEAAAAAACAAAAggAAAAIAQACCAEAQggAAEAAAABCAAEAAAgBAAAAAQBCAAEAQggBAAIIAABAAAAAQgAAAEAIAAAACAAAAgABAAIAAAACAAEAQAgBAEIAAAAACAEAQAAAAAIAAQAACAAAQAgBAAIAAQAAAAAAAAgBAEIIAABCAAEAQggBAAAAAABAAAEAQAgAAEIAAQACCAEAAAgAAAAIAQBAAAAAQggAAAIQAAAgEAAIAAAAAAAACAggEAAIAAAIAAAQCAAgAAAIABAIAAAQCAggAAgIAAAAACAACAAgEAAAIAAACCAQCAgAAAAIABAIACAQAAggAAAAAAAIAAAQAAAAAAgIIBAACCAQCAggAAAIIAAAACAQCAAAEAAAAAAICAAQCAgAAAgAIBAIAAAAAAAgAAgAIBAICAAACAggEAAIAAAAAAAACAAgAAAAIAAIAAAQAAggAAAIABAACAAQCAggAAgIABAAAAAQCAggAAgIAAAACAAQCAAgEAAAIAAACCAQCAgAAAAAAAAIAAAQAAAgEAgAIAAICCAAAAggEAgAABAAAAAQAAggABAAAAAAgAAAAIAAQQAAAEEQgABBEAAAABCAAAAAAAAAAAAAQQCAAEEAgAAAEAAAQQAAAAAQgABAEAAAQQCAAAEAgABAEAAAARAAAAEQgABAAAAAAACAAEEAAABAEIAAARAAAEEQgAAAEIAAQQAAAAEQgAABEAAAQACAAAAAAABBEIAAABAAAEEQAABBAIAAABAAAAAAgAAAAAAAQRAAAEEAgABBEIAAABCAAAAAAAAAAIAAAQAAAEEAAAAAAIAAQAAAAAEAgABAAIAAQBCAAAEAgAAAEAAAARCAAEAAAABAEIAAQQAAAAEQAAABEIAAQQAAAEAQgABAEAAAQRAAACAAIAgAACCIIAAAgAAAAAAAAACIIAAgAAAAIAggACCIIAAAAAAAAAgAACCAIAAAgCAAIIAgAACIIAAACAAAIAgAAACAIAAggCAAIAAAAACIIAAgiCAAAAgAAAAAAAAggAAAAAgAACAAIAAAiCAAIAgAACAAAAAAgAAAIIggAAAAAAAgAAAAAIAgAAAIIAAgiCAAAIAAAAAIAAAAAAAAIIAgACAIIAAAiAAAAIggACAAAAAgiCAAAAAgACAAAAAAiCAAIIgAACAAAAAgCCAAAAgAACCAIAAAgCAAAIgAACAIIAAAAAAAIIggACCAAAAAAAAAAAggACAIAAAAgCAAIIAK4EEACMAAAAAAAAAAAAAAAH//////////////////////////////////////////////////////////////////////////////////////wH//////////////////////////////////////////////////////////////////////////////////////ABRlT65YY4cmh+SmiGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR7H6TexZSwL07sb8HNXPfiD0sNPHvRR/Ua1A/AADGhY4GtwQE6c2ePstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQmQMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAH///////////////////////////////////////////pRhoeDvy+Wa3/MAUj3CaXQO7XJuImcR667b7cekThkCSuBBAAiAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////7/////AAAAAAAAAAD///////////////////////////////////////////////7/////AAAAAAAAAAD////8szEvp+I+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvqofKIr6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5f////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzKoZIzj0DAQcAAAAAAAAAAP////8AAAABAAAAAAAAAAAAAAAA/////////////////////wAAAAEAAAAAAAAAAAAAAAD///////////////xaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgS2sX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfX/////AAAAAP//////////vOb6racXnoTzucrC/GMlUSuBBAAhAAAAAAAAAAAAAAD/////////////////////AAAAAAAAAAAAAAAB/////////////////////v///////////////rQFCoUMBLOr9UEyVlBEsLfXv9i6Jws5QyNV/7S3Dgy9a7S/fzITkLlKA8HTVsIRIjQygNYRXB0hvTdjiLX3I/tMIt/mzUN1oFoHR2RE1YGZhQB+NP//////////////////FqLguPA+E90pRVxcKj0AAAAAAAAAADwUqRjUMOd5AbbtX/yVunUQJWJ3K3P7ecZVN6V2X5AYClaVzldT8t1c5Bm65LhKiyXzId2IhujShV2IJRj/cYW70qAWxS+ST5k0YhpswVwNiyzGVzrPQZJ/Zhv9YWleL5cXoPULxxVckmGVYE20ID1S2x8HNxuRBHsPb40W+Uj2vLs34UdoVp7sC2qKnkY05GM013lhJ8SxFQA9E4UCvlqrfUzAfIOqkgcMJkNMnz1XN8zmeGIVkwyDc29rW3K7lCUJ4r9EwqhiZ+jcj8OawZFjcDjd1aWWWvYk0yHUh9Vh6nNxo6Jzduhli3dTCICEIz60ugUeRPgQvu8hRhL+Efr9n7EsKx+JHCM8krFbjboBjsrFimc90LbcvhMfTLBuWAnt6CflxjUM4u0ZGDyjgR76UsZWwNaPJxFPhnAIrNUZ1TO10jR3V2LA3b2h9oo7Z5PCnqeafH5XsWayw1HmbbuzWVK2OjDp54B0OtDTr6DWJ/w8m9GDrMWbuRhdmmG0YByq5RrhOGq9WDbnSStlt7jth1/uFAATC83/666yJw+dVQpzejFGkso6yLvdL1uVnHGaAazg38EHjcRuNW1WSiRqsfj0DkH4Vmome8T+GiSXwYecbY5rQAobq0LNAj4/gGns2wSoCQN/X9C6O/eFO6h/GY6tc3IJxsGtZ1AORJfANKt5w/JWaoTR+B2EiwbuqO9obBdZRDEgMB9fkdUyr/FQvXVdMXXDmbxnL/e6/3yD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X1NVUFBPUlRFRABFTkNPREVfRVJST1IARVJST1JfR0VUVElOR19USU1FAEVYUEVDVElOR19BTl9BU04xX1NFUVVFTkNFAEVYUEVDVElOR19BTl9JTlRFR0VSAEVYUEVDVElOR19BTl9PQkpFQ1QARVhQRUNUSU5HX0FfQk9PTEVBTgBFWFBFQ1RJTkdfQV9USU1FAEVYUExJQ0lUX0xFTkdUSF9NSVNNQVRDSABFWFBMSUNJVF9UQUdfTk9UX0NPTlNUUlVDVEVEAEZJRUxEX01JU1NJTkcARklSU1RfTlVNX1RPT19MQVJHRQBIRUFERVJfVE9PX0xPTkcASUxMRUdBTF9CSVRTVFJJTkdfRk9STUFUAElMTEVHQUxfQk9PTEVBTgBJTExFR0FMX0NIQVJBQ1RFUlMASUxMRUdBTF9GT1JNQVQASUxMRUdBTF9IRVgASUxMRUdBTF9JTVBMSUNJVF9UQUcASUxMRUdBTF9JTlRFR0VSAElMTEVHQUxfTkVTVEVEX1RBR0dJTkcASUxMRUdBTF9OVUxMAElMTEVHQUxfTlVMTF9WQUxVRQBJTExFR0FMX09CSkVDVABJTExFR0FMX09QVElPTkFMX0FOWQBJTExFR0FMX09QVElPTlNfT05fSVRFTV9URU1QTEFURQBJTExFR0FMX1RBR0dFRF9BTlkASUxMRUdBTF9USU1FX1ZBTFVFAElOVEVHRVJfTk9UX0FTQ0lJX0ZPUk1BVABJTlRFR0VSX1RPT19MQVJHRV9GT1JfTE9ORwBJTlZBTElEX0JJVF9TVFJJTkdfQklUU19MRUZUAElOVkFMSURfQklUX1NUUklOR19QQURESU5HAElOVkFMSURfQk1QU1RSSU5HAElOVkFMSURfRElHSVQASU5WQUxJRF9NT0RJRklFUgBJTlZBTElEX05VTUJFUgBJTlZBTElEX09CSkVDVF9FTkNPRElORwBJTlZBTElEX1NFUEFSQVRPUgBJTlZBTElEX1RJTUVfRk9STUFUAElOVkFMSURfVU5JVkVSU0FMU1RSSU5HAElOVkFMSURfVVRGOFNUUklORwBMSVNUX0VSUk9SAE1JU1NJTkdfQVNOMV9FT1MATUlTU0lOR19FT0MATUlTU0lOR19TRUNPTkRfTlVNQkVSAE1JU1NJTkdfVkFMVUUATVNUUklOR19OT1RfVU5JVkVSU0FMAE1TVFJJTkdfV1JPTkdfVEFHAE5FU1RFRF9BU04xX0VSUk9SAE5FU1RFRF9BU04xX1NUUklORwBORVNURURfVE9PX0RFRVAATk9OX0hFWF9DSEFSQUNURVJTAE5PVF9BU0NJSV9GT1JNQVQATk9UX0VOT1VHSF9EQVRBAE5PX01BVENISU5HX0NIT0lDRV9UWVBFAE5VTExfSVNfV1JPTkdfTEVOR1RIAE9CSkVDVF9OT1RfQVNDSUlfRk9STUFUAE9ERF9OVU1CRVJfT0ZfQ0hBUlMAU0VDT05EX05VTUJFUl9UT09fTEFSR0UAU0VRVUVOQ0VfTEVOR1RIX01JU01BVENIAFNFUVVFTkNFX05PVF9DT05TVFJVQ1RFRABTRVFVRU5DRV9PUl9TRVRfTkVFRFNfQ09ORklHAFNIT1JUX0xJTkUAU1RSRUFNSU5HX05PVF9TVVBQT1JURUQAU1RSSU5HX1RPT19MT05HAFNUUklOR19UT09fU0hPUlQAVEFHX1ZBTFVFX1RPT19ISUdIAFRJTUVfTk9UX0FTQ0lJX0ZPUk1BVABUT09fTE9ORwBUWVBFX05PVF9DT05TVFJVQ1RFRABUWVBFX05PVF9QUklNSVRJVkUAVU5FWFBFQ1RFRF9FT0MAVU5JVkVSU0FMU1RSSU5HX0lTX1dST05HX0xFTkdUSABVTktOT1dOX0ZPUk1BVABVTktOT1dOX01FU1NBR0VfRElHRVNUX0FMR09SSVRITQBVTktOT1dOX1NJR05BVFVSRV9BTEdPUklUSE0AVU5LTk9XTl9UQUcAVU5TVVBQT1JURURfQU5ZX0RFRklORURfQllfVFlQRQBVTlNVUFBPUlRFRF9QVUJMSUNfS0VZX1RZUEUAVU5TVVBQT1JURURfVFlQRQBXUk9OR19QVUJMSUNfS0VZX1RZUEUAV1JPTkdfVEFHAFdST05HX1RZUEUAQkFEX0ZPUEVOX01PREUAQlJPS0VOX1BJUEUAQ09OTkVDVF9FUlJPUgBFUlJPUl9TRVRUSU5HX05CSU8ASU5WQUxJRF9BUkdVTUVOVABJTl9VU0UAS0VFUEFMSVZFAE5CSU9fQ09OTkVDVF9FUlJPUgBOT19IT1NUTkFNRV9TUEVDSUZJRUQATk9fUE9SVF9TUEVDSUZJRUQATk9fU1VDSF9GSUxFAE5VTExfUEFSQU1FVEVSAFNZU19MSUIAVU5BQkxFX1RPX0NSRUFURV9TT0NLRVQAVU5JTklUSUFMSVpFRABVTlNVUFBPUlRFRF9NRVRIT0QAV1JJVEVfVE9fUkVBRF9PTkxZX0JJTwBBUkcyX0xUX0FSRzMAQkFEX0VOQ09ESU5HAEJBRF9SRUNJUFJPQ0FMAEJJR05VTV9UT09fTE9ORwBCSVRTX1RPT19TTUFMTABDQUxMRURfV0lUSF9FVkVOX01PRFVMVVMARElWX0JZX1pFUk8ARVhQQU5EX09OX1NUQVRJQ19CSUdOVU1fREFUQQBJTlBVVF9OT1RfUkVEVUNFRABJTlZBTElEX0lOUFVUAElOVkFMSURfUkFOR0UATkVHQVRJVkVfTlVNQkVSAE5PVF9BX1NRVUFSRQBOT1RfSU5JVElBTElaRUQATk9fSU5WRVJTRQBQUklWQVRFX0tFWV9UT09fTEFSR0UAUF9JU19OT1RfUFJJTUUAVE9PX01BTllfSVRFUkFUSU9OUwBUT09fTUFOWV9URU1QT1JBUllfVkFSSUFCTEVTAEFFU19LRVlfU0VUVVBfRkFJTEVEAEJBRF9ERUNSWVBUAEJBRF9LRVlfTEVOR1RIAENUUkxfTk9UX0lNUExFTUVOVEVEAENUUkxfT1BFUkFUSU9OX05PVF9JTVBMRU1FTlRFRABEQVRBX05PVF9NVUxUSVBMRV9PRl9CTE9DS19MRU5HVEgASU5JVElBTElaQVRJT05fRVJST1IASU5QVVRfTk9UX0lOSVRJQUxJWkVEAElOVkFMSURfQURfU0laRQBJTlZBTElEX0tFWV9MRU5HVEgASU5WQUxJRF9OT05DRQBJTlZBTElEX05PTkNFX1NJWkUASU5WQUxJRF9PUEVSQVRJT04ASVZfVE9PX0xBUkdFAE5PX0NJUEhFUl9TRVQATk9fRElSRUNUSU9OX1NFVABPVVRQVVRfQUxJQVNFU19JTlBVVABUQUdfVE9PX0xBUkdFAFRPT19MQVJHRQBVTlNVUFBPUlRFRF9BRF9TSVpFAFVOU1VQUE9SVEVEX0lOUFVUX1NJWkUAVU5TVVBQT1JURURfS0VZX1NJWkUAVU5TVVBQT1JURURfTk9OQ0VfU0laRQBVTlNVUFBPUlRFRF9UQUdfU0laRQBXUk9OR19GSU5BTF9CTE9DS19MRU5HVEgATElTVF9DQU5OT1RfQkVfTlVMTABNSVNTSU5HX0NMT1NFX1NRVUFSRV9CUkFDS0VUAE1JU1NJTkdfRVFVQUxfU0lHTgBOT19DTE9TRV9CUkFDRQBVTkFCTEVfVE9fQ1JFQVRFX05FV19TRUNUSU9OAFZBUklBQkxFX0VYUEFOU0lPTl9UT09fTE9ORwBWQVJJQUJMRV9IQVNfTk9fVkFMVUUAQkFEX0dFTkVSQVRPUgBJTlZBTElEX1BVQktFWQBNT0RVTFVTX1RPT19MQVJHRQBOT19QUklWQVRFX1ZBTFVFAFVOS05PV05fSEFTSABCQURfUV9WQUxVRQBCQURfVkVSU0lPTgBJTlZBTElEX1BBUkFNRVRFUlMATUlTU0lOR19QQVJBTUVURVJTAE5FRURfTkVXX1NFVFVQX1ZBTFVFUwBCSUdOVU1fT1VUX09GX1JBTkdFAENPT1JESU5BVEVTX09VVF9PRl9SQU5HRQBEMklfRUNQS1BBUkFNRVRFUlNfRkFJTFVSRQBFQ19HUk9VUF9ORVdfQllfTkFNRV9GQUlMVVJFAEdST1VQMlBLUEFSQU1FVEVSU19GQUlMVVJFAEdST1VQX01JU01BVENIAEkyRF9FQ1BLUEFSQU1FVEVSU19GQUlMVVJFAElOQ09NUEFUSUJMRV9PQkpFQ1RTAElOVkFMSURfQ09GQUNUT1IASU5WQUxJRF9DT01QUkVTU0VEX1BPSU5UAElOVkFMSURfQ09NUFJFU1NJT05fQklUAElOVkFMSURfRU5DT0RJTkcASU5WQUxJRF9GSUVMRABJTlZBTElEX0ZPUk0ASU5WQUxJRF9HUk9VUF9PUkRFUgBJTlZBTElEX1BSSVZBVEVfS0VZAElOVkFMSURfU0NBTEFSAE1JU1NJTkdfUFJJVkFURV9LRVkATk9OX05BTUVEX0NVUlZFAFBLUEFSQU1FVEVSUzJHUk9VUF9GQUlMVVJFAFBPSU5UX0FUX0lORklOSVRZAFBPSU5UX0lTX05PVF9PTl9DVVJWRQBQVUJMSUNfS0VZX1ZBTElEQVRJT05fRkFJTEVEAFNMT1RfRlVMTABVTkRFRklORURfR0VORVJBVE9SAFVOS05PV05fR1JPVVAAVU5LTk9XTl9PUkRFUgBXUk9OR19DVVJWRV9QQVJBTUVURVJTAFdST05HX09SREVSAEtERl9GQUlMRUQAUE9JTlRfQVJJVEhNRVRJQ19GQUlMVVJFAFVOS05PV05fRElHRVNUX0xFTkdUSABCQURfU0lHTkFUVVJFAE5PVF9JTVBMRU1FTlRFRABSQU5ET01fTlVNQkVSX0dFTkVSQVRJT05fRkFJTEVEAE9QRVJBVElPTl9OT1RfU1VQUE9SVEVEAENPTU1BTkRfTk9UX1NVUFBPUlRFRABESUZGRVJFTlRfS0VZX1RZUEVTAERJRkZFUkVOVF9QQVJBTUVURVJTAEVNUFRZX1BTSwBFWFBFQ1RJTkdfQU5fRUNfS0VZX0tFWQBFWFBFQ1RJTkdfQU5fUlNBX0tFWQBFWFBFQ1RJTkdfQV9EU0FfS0VZAElMTEVHQUxfT1JfVU5TVVBQT1JURURfUEFERElOR19NT0RFAElOVkFMSURfQlVGRkVSX1NJWkUASU5WQUxJRF9ESUdFU1RfTEVOR1RIAElOVkFMSURfRElHRVNUX1RZUEUASU5WQUxJRF9LRVlCSVRTAElOVkFMSURfTUdGMV9NRABJTlZBTElEX1BBRERJTkdfTU9ERQBJTlZBTElEX1BFRVJfS0VZAElOVkFMSURfUFNTX1NBTFRMRU4ASU5WQUxJRF9TSUdOQVRVUkUAS0VZU19OT1RfU0VUAE1FTU9SWV9MSU1JVF9FWENFRURFRABOT1RfQV9QUklWQVRFX0tFWQBOT1RfWE9GX09SX0lOVkFMSURfTEVOR1RIAE5PX0RFRkFVTFRfRElHRVNUAE5PX0tFWV9TRVQATk9fTURDMl9TVVBQT1JUAE5PX05JRF9GT1JfQ1VSVkUATk9fT1BFUkFUSU9OX1NFVABOT19QQVJBTUVURVJTX1NFVABPUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1JfVEhJU19LRVlUWVBFAE9QRVJBVE9OX05PVF9JTklUSUFMSVpFRABVTktOT1dOX1BVQkxJQ19LRVlfVFlQRQBVTlNVUFBPUlRFRF9BTEdPUklUSE0AT1VUUFVUX1RPT19MQVJHRQBJTlZBTElEX09JRF9TVFJJTkcAVU5LTk9XTl9OSUQAQkFEX0JBU0U2NF9ERUNPREUAQkFEX0VORF9MSU5FAEJBRF9JVl9DSEFSUwBCQURfUEFTU1dPUkRfUkVBRABDSVBIRVJfSVNfTlVMTABFUlJPUl9DT05WRVJUSU5HX1BSSVZBVEVfS0VZAE5PVF9ERUtfSU5GTwBOT1RfRU5DUllQVEVEAE5PVF9QUk9DX1RZUEUATk9fU1RBUlRfTElORQBSRUFEX0tFWQBTSE9SVF9IRUFERVIAVU5TVVBQT1JURURfQ0lQSEVSAFVOU1VQUE9SVEVEX0VOQ1JZUFRJT04AQkFEX1BLQ1M3X1ZFUlNJT04ATk9UX1BLQ1M3X1NJR05FRF9EQVRBAE5PX0NFUlRJRklDQVRFU19JTkNMVURFRABOT19DUkxTX0lOQ0xVREVEAEJBRF9JVEVSQVRJT05fQ09VTlQAQkFEX1BLQ1MxMl9EQVRBAEJBRF9QS0NTMTJfVkVSU0lPTgBDSVBIRVJfSEFTX05PX09CSkVDVF9JREVOVElGSUVSAENSWVBUX0VSUk9SAEVOQ1JZUFRfRVJST1IARVJST1JfU0VUVElOR19DSVBIRVJfUEFSQU1TAElOQ09SUkVDVF9QQVNTV09SRABJTlZBTElEX0NIQVJBQ1RFUlMAS0VZR0VOX0ZBSUxVUkUAS0VZX0dFTl9FUlJPUgBNRVRIT0RfTk9UX1NVUFBPUlRFRABNSVNTSU5HX01BQwBNVUxUSVBMRV9QUklWQVRFX0tFWVNfSU5fUEtDUzEyAFBLQ1MxMl9QVUJMSUNfS0VZX0lOVEVHUklUWV9OT1RfU1VQUE9SVEVEAFBLQ1MxMl9UT09fREVFUExZX05FU1RFRABQUklWQVRFX0tFWV9ERUNPREVfRVJST1IAUFJJVkFURV9LRVlfRU5DT0RFX0VSUk9SAFVOS05PV05fQUxHT1JJVEhNAFVOS05PV05fQ0lQSEVSAFVOS05PV05fQ0lQSEVSX0FMR09SSVRITQBVTktOT1dOX0RJR0VTVABVTlNVUFBPUlRFRF9LRVlMRU5HVEgAVU5TVVBQT1JURURfS0VZX0RFUklWQVRJT05fRlVOQ1RJT04AVU5TVVBQT1JURURfT1BUSU9OUwBVTlNVUFBPUlRFRF9QUkYAVU5TVVBQT1JURURfUFJJVkFURV9LRVlfQUxHT1JJVEhNAFVOU1VQUE9SVEVEX1NBTFRfVFlQRQBCQURfRV9WQUxVRQBCQURfRklYRURfSEVBREVSX0RFQ1JZUFQAQkFEX1BBRF9CWVRFX0NPVU5UAEJBRF9SU0FfUEFSQU1FVEVSUwBCTE9DS19UWVBFX0lTX05PVF8wMQBCTE9DS19UWVBFX0lTX05PVF8wMgBCTl9OT1RfSU5JVElBTElaRUQAQ0FOTk9UX1JFQ09WRVJfTVVMVElfUFJJTUVfS0VZAENSVF9QQVJBTVNfQUxSRUFEWV9HSVZFTgBDUlRfVkFMVUVTX0lOQ09SUkVDVABEQVRBX0xFTl9OT1RfRVFVQUxfVE9fTU9EX0xFTgBEQVRBX1RPT19MQVJHRQBEQVRBX1RPT19MQVJHRV9GT1JfS0VZX1NJWkUAREFUQV9UT09fTEFSR0VfRk9SX01PRFVMVVMAREFUQV9UT09fU01BTEwAREFUQV9UT09fU01BTExfRk9SX0tFWV9TSVpFAERJR0VTVF9UT09fQklHX0ZPUl9SU0FfS0VZAERfRV9OT1RfQ09OR1JVRU5UX1RPXzEARF9PVVRfT0ZfUkFOR0UARU1QVFlfUFVCTElDX0tFWQBGSVJTVF9PQ1RFVF9JTlZBTElEAElOQ09OU0lTVEVOVF9TRVRfT0ZfQ1JUX1ZBTFVFUwBJTlRFUk5BTF9FUlJPUgBJTlZBTElEX01FU1NBR0VfTEVOR1RIAEtFWV9TSVpFX1RPT19TTUFMTABMQVNUX09DVEVUX0lOVkFMSUQATVVTVF9IQVZFX0FUX0xFQVNUX1RXT19QUklNRVMATk9fUFVCTElDX0VYUE9ORU5UAE5VTExfQkVGT1JFX0JMT0NLX01JU1NJTkcATl9OT1RfRVFVQUxfUF9RAE9BRVBfREVDT0RJTkdfRVJST1IAT05MWV9PTkVfT0ZfUF9RX0dJVkVOAE9VVFBVVF9CVUZGRVJfVE9PX1NNQUxMAFBBRERJTkdfQ0hFQ0tfRkFJTEVEAFBLQ1NfREVDT0RJTkdfRVJST1IAU0xFTl9DSEVDS19GQUlMRUQAU0xFTl9SRUNPVkVSWV9GQUlMRUQAVU5LTk9XTl9BTEdPUklUSE1fVFlQRQBVTktOT1dOX1BBRERJTkdfVFlQRQBWQUxVRV9NSVNTSU5HAFdST05HX1NJR05BVFVSRV9MRU5HVEgAQUxQTl9NSVNNQVRDSF9PTl9FQVJMWV9EQVRBAEFMUFNfTUlTTUFUQ0hfT05fRUFSTFlfREFUQQBBUFBMSUNBVElPTl9EQVRBX0lOU1RFQURfT0ZfSEFORFNIQUtFAEFQUExJQ0FUSU9OX0RBVEFfT05fU0hVVERPV04AQVBQX0RBVEFfSU5fSEFORFNIQUtFAEFUVEVNUFRfVE9fUkVVU0VfU0VTU0lPTl9JTl9ESUZGRVJFTlRfQ09OVEVYVABCQURfQUxFUlQAQkFEX0NIQU5HRV9DSVBIRVJfU1BFQwBCQURfREFUQV9SRVRVUk5FRF9CWV9DQUxMQkFDSwBCQURfREhfUF9MRU5HVEgAQkFEX0RJR0VTVF9MRU5HVEgAQkFEX0VDQ19DRVJUAEJBRF9FQ1BPSU5UAEJBRF9IQU5EU0hBS0VfUkVDT1JEAEJBRF9IRUxMT19SRVFVRVNUAEJBRF9MRU5HVEgAQkFEX1BBQ0tFVF9MRU5HVEgAQkFEX1JTQV9FTkNSWVBUAEJBRF9TUlRQX01LSV9WQUxVRQBCQURfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfTElTVABCQURfU1NMX0ZJTEVUWVBFAEJBRF9XUklURV9SRVRSWQBCSU9fTk9UX1NFVABCTE9DS19DSVBIRVJfUEFEX0lTX1dST05HAENBTk5PVF9IQVZFX0JPVEhfUFJJVktFWV9BTkRfTUVUSE9EAENBTk5PVF9QQVJTRV9MRUFGX0NFUlQAQ0FfRE5fTEVOR1RIX01JU01BVENIAENBX0ROX1RPT19MT05HAENDU19SRUNFSVZFRF9FQVJMWQBDRVJUSUZJQ0FURV9BTkRfUFJJVkFURV9LRVlfTUlTTUFUQ0gAQ0VSVElGSUNBVEVfVkVSSUZZX0ZBSUxFRABDRVJUX0NCX0VSUk9SAENFUlRfREVDT01QUkVTU0lPTl9GQUlMRUQAQ0VSVF9MRU5HVEhfTUlTTUFUQ0gAQ0hBTk5FTF9JRF9OT1RfUDI1NgBDSEFOTkVMX0lEX1NJR05BVFVSRV9JTlZBTElEAENJUEhFUl9NSVNNQVRDSF9PTl9FQVJMWV9EQVRBAENJUEhFUl9PUl9IQVNIX1VOQVZBSUxBQkxFAENMSUVOVEhFTExPX1BBUlNFX0ZBSUxFRABDTElFTlRIRUxMT19UTFNFWFQAQ09OTkVDVElPTl9SRUpFQ1RFRABDT05ORUNUSU9OX1RZUEVfTk9UX1NFVABDT1VMRF9OT1RfUEFSU0VfSElOVFMAQ1VTVE9NX0VYVEVOU0lPTl9FUlJPUgBEQVRBX0xFTkdUSF9UT09fTE9ORwBERUNSWVBUSU9OX0ZBSUxFRABERUNSWVBUSU9OX0ZBSUxFRF9PUl9CQURfUkVDT1JEX01BQwBESF9QVUJMSUNfVkFMVUVfTEVOR1RIX0lTX1dST05HAERIX1BfVE9PX0xPTkcARElHRVNUX0NIRUNLX0ZBSUxFRABET1dOR1JBREVfREVURUNURUQARFRMU19NRVNTQUdFX1RPT19CSUcARFVQTElDQVRFX0VYVEVOU0lPTgBEVVBMSUNBVEVfS0VZX1NIQVJFAERVUExJQ0FURV9TSUdOQVRVUkVfQUxHT1JJVEhNAEVBUkxZX0RBVEFfTk9UX0lOX1VTRQBFQ0NfQ0VSVF9OT1RfRk9SX1NJR05JTkcARUNIX1JFSkVDVEVEAEVDSF9TRVJWRVJfQ09ORklHX0FORF9QUklWQVRFX0tFWV9NSVNNQVRDSABFQ0hfU0VSVkVSX0NPTkZJR19VTlNVUFBPUlRFRF9FWFRFTlNJT04ARUNIX1NFUlZFUl9XT1VMRF9IQVZFX05PX1JFVFJZX0NPTkZJR1MARU1QVFlfSEVMTE9fUkVUUllfUkVRVUVTVABFTVNfU1RBVEVfSU5DT05TSVNURU5UAEVOQ1JZUFRFRF9MRU5HVEhfVE9PX0xPTkcARVJST1JfQURESU5HX0VYVEVOU0lPTgBFUlJPUl9JTl9SRUNFSVZFRF9DSVBIRVJfTElTVABFUlJPUl9QQVJTSU5HX0VYVEVOU0lPTgBFWENFU1NJVkVfTUVTU0FHRV9TSVpFAEVYQ0VTU19IQU5EU0hBS0VfREFUQQBFWFRSQV9EQVRBX0lOX01FU1NBR0UARlJBR01FTlRfTUlTTUFUQ0gAR09UX05FWFRfUFJPVE9fV0lUSE9VVF9FWFRFTlNJT04ASEFORFNIQUtFX0ZBSUxVUkVfT05fQ0xJRU5UX0hFTExPAEhBTkRTSEFLRV9OT1RfQ09NUExFVEUASFRUUFNfUFJPWFlfUkVRVUVTVABIVFRQX1JFUVVFU1QASU5BUFBST1BSSUFURV9GQUxMQkFDSwBJTkNPTlNJU1RFTlRfQ0xJRU5UX0hFTExPAElOQ09OU0lTVEVOVF9FQ0hfTkVHT1RJQVRJT04ASU5WQUxJRF9BTFBOX1BST1RPQ09MAElOVkFMSURfQUxQTl9QUk9UT0NPTF9MSVNUAElOVkFMSURfQ0xJRU5UX0hFTExPX0lOTkVSAElOVkFMSURfQ09NTUFORABJTlZBTElEX0NPTVBSRVNTSU9OX0xJU1QASU5WQUxJRF9ERUxFR0FURURfQ1JFREVOVElBTABJTlZBTElEX0VDSF9DT05GSUdfTElTVABJTlZBTElEX0VDSF9QVUJMSUNfTkFNRQBJTlZBTElEX01FU1NBR0UASU5WQUxJRF9PVVRFUl9SRUNPUkRfVFlQRQBJTlZBTElEX1NDVF9MSVNUAElOVkFMSURfU0lHTkFUVVJFX0FMR09SSVRITQBJTlZBTElEX1NTTF9TRVNTSU9OAElOVkFMSURfVElDS0VUX0tFWVNfTEVOR1RIAEtFWV9VU0FHRV9CSVRfSU5DT1JSRUNUAExFTkdUSF9NSVNNQVRDSABNSVNTSU5HX0VYVEVOU0lPTgBNSVNTSU5HX0tFWV9TSEFSRQBNSVNTSU5HX1JTQV9DRVJUSUZJQ0FURQBNSVNTSU5HX1RNUF9ESF9LRVkATUlTU0lOR19UTVBfRUNESF9LRVkATUlYRURfU1BFQ0lBTF9PUEVSQVRPUl9XSVRIX0dST1VQUwBNVFVfVE9PX1NNQUxMAE5FR09USUFURURfQUxQU19XSVRIT1VUX0FMUE4ATkVHT1RJQVRFRF9CT1RIX05QTl9BTkRfQUxQTgBORUdPVElBVEVEX1RCX1dJVEhPVVRfRU1TX09SX1JJAE5FU1RFRF9HUk9VUABOT19BUFBMSUNBVElPTl9QUk9UT0NPTABOT19DRVJUSUZJQ0FURVNfUkVUVVJORUQATk9fQ0VSVElGSUNBVEVfQVNTSUdORUQATk9fQ0VSVElGSUNBVEVfU0VUAE5PX0NJUEhFUlNfQVZBSUxBQkxFAE5PX0NJUEhFUlNfUEFTU0VEAE5PX0NJUEhFUlNfU1BFQ0lGSUVEAE5PX0NJUEhFUl9NQVRDSABOT19DT01NT05fU0lHTkFUVVJFX0FMR09SSVRITVMATk9fQ09NUFJFU1NJT05fU1BFQ0lGSUVEAE5PX0dST1VQU19TUEVDSUZJRUQATk9fTUVUSE9EX1NQRUNJRklFRABOT19QMjU2X1NVUFBPUlQATk9fUFJJVkFURV9LRVlfQVNTSUdORUQATk9fUkVORUdPVElBVElPTgBOT19SRVFVSVJFRF9ESUdFU1QATk9fU0hBUkVEX0NJUEhFUgBOT19TSEFSRURfR1JPVVAATk9fU1VQUE9SVEVEX1ZFUlNJT05TX0VOQUJMRUQATlVMTF9TU0xfQ1RYAE5VTExfU1NMX01FVEhPRF9QQVNTRUQAT0NTUF9DQl9FUlJPUgBPTERfU0VTU0lPTl9DSVBIRVJfTk9UX1JFVFVSTkVEAE9MRF9TRVNTSU9OX1BSRl9IQVNIX01JU01BVENIAE9MRF9TRVNTSU9OX1ZFUlNJT05fTk9UX1JFVFVSTkVEAE9VVEVSX0VYVEVOU0lPTl9OT1RfRk9VTkQAUEFSU0VfVExTRVhUAFBBVEhfVE9PX0xPTkcAUEVFUl9ESURfTk9UX1JFVFVSTl9BX0NFUlRJRklDQVRFAFBFRVJfRVJST1JfVU5TVVBQT1JURURfQ0VSVElGSUNBVEVfVFlQRQBQUkVfU0hBUkVEX0tFWV9NVVNUX0JFX0xBU1QAUFJJVkFURV9LRVlfT1BFUkFUSU9OX0ZBSUxFRABQUk9UT0NPTF9JU19TSFVURE9XTgBQU0tfSURFTlRJVFlfQklOREVSX0NPVU5UX01JU01BVENIAFBTS19JREVOVElUWV9OT1RfRk9VTkQAUFNLX05PX0NMSUVOVF9DQgBQU0tfTk9fU0VSVkVSX0NCAFFVSUNfSU5URVJOQUxfRVJST1IAUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSU19NSVNDT05GSUdVUkVEAFJFQURfVElNRU9VVF9FWFBJUkVEAFJFQ09SRF9MRU5HVEhfTUlTTUFUQ0gAUkVDT1JEX1RPT19MQVJHRQBSRU5FR09USUFUSU9OX0VNU19NSVNNQVRDSABSRU5FR09USUFUSU9OX0VOQ09ESU5HX0VSUgBSRU5FR09USUFUSU9OX01JU01BVENIAFJFUVVJUkVEX0NJUEhFUl9NSVNTSU5HAFJFU1VNRURfRU1TX1NFU1NJT05fV0lUSE9VVF9FTVNfRVhURU5TSU9OAFJFU1VNRURfTk9OX0VNU19TRVNTSU9OX1dJVEhfRU1TX0VYVEVOU0lPTgBTQ1NWX1JFQ0VJVkVEX1dIRU5fUkVORUdPVElBVElORwBTRUNPTkRfU0VSVkVSSEVMTE9fVkVSU0lPTl9NSVNNQVRDSABTRVJWRVJIRUxMT19UTFNFWFQAU0VSVkVSX0NFUlRfQ0hBTkdFRABTRVJWRVJfRUNIT0VEX0lOVkFMSURfU0VTU0lPTl9JRABTRVNTSU9OX0lEX0NPTlRFWFRfVU5JTklUSUFMSVpFRABTRVNTSU9OX01BWV9OT1RfQkVfQ1JFQVRFRABTSFVURE9XTl9XSElMRV9JTl9JTklUAFNJR05BVFVSRV9BTEdPUklUSE1TX0VYVEVOU0lPTl9TRU5UX0JZX1NFUlZFUgBTUlRQX0NPVUxEX05PVF9BTExPQ0FURV9QUk9GSUxFUwBTUlRQX1VOS05PV05fUFJPVEVDVElPTl9QUk9GSUxFAFNTTDNfRVhUX0lOVkFMSURfU0VSVkVSTkFNRQBTU0xWM19BTEVSVF9CQURfQ0VSVElGSUNBVEUAU1NMVjNfQUxFUlRfQkFEX1JFQ09SRF9NQUMAU1NMVjNfQUxFUlRfQ0VSVElGSUNBVEVfRVhQSVJFRABTU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9SRVZPS0VEAFNTTFYzX0FMRVJUX0NFUlRJRklDQVRFX1VOS05PV04AU1NMVjNfQUxFUlRfQ0xPU0VfTk9USUZZAFNTTFYzX0FMRVJUX0RFQ09NUFJFU1NJT05fRkFJTFVSRQBTU0xWM19BTEVSVF9IQU5EU0hBS0VfRkFJTFVSRQBTU0xWM19BTEVSVF9JTExFR0FMX1BBUkFNRVRFUgBTU0xWM19BTEVSVF9OT19DRVJUSUZJQ0FURQBTU0xWM19BTEVSVF9VTkVYUEVDVEVEX01FU1NBR0UAU1NMVjNfQUxFUlRfVU5TVVBQT1JURURfQ0VSVElGSUNBVEUAU1NMX0NUWF9IQVNfTk9fREVGQVVMVF9TU0xfVkVSU0lPTgBTU0xfSEFORFNIQUtFX0ZBSUxVUkUAU1NMX1NFU1NJT05fSURfQ09OVEVYVF9UT09fTE9ORwBTU0xfU0VTU0lPTl9JRF9UT09fTE9ORwBUSUNLRVRfRU5DUllQVElPTl9GQUlMRUQAVExTMTNfRE9XTkdSQURFAFRMU1YxX0FMRVJUX0FDQ0VTU19ERU5JRUQAVExTVjFfQUxFUlRfQkFEX0NFUlRJRklDQVRFX0hBU0hfVkFMVUUAVExTVjFfQUxFUlRfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRQBUTFNWMV9BTEVSVF9DRVJUSUZJQ0FURV9SRVFVSVJFRABUTFNWMV9BTEVSVF9DRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEUAVExTVjFfQUxFUlRfREVDT0RFX0VSUk9SAFRMU1YxX0FMRVJUX0RFQ1JZUFRJT05fRkFJTEVEAFRMU1YxX0FMRVJUX0RFQ1JZUFRfRVJST1IAVExTVjFfQUxFUlRfRUNIX1JFUVVJUkVEAFRMU1YxX0FMRVJUX0VYUE9SVF9SRVNUUklDVElPTgBUTFNWMV9BTEVSVF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLAFRMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWQBUTFNWMV9BTEVSVF9JTlRFUk5BTF9FUlJPUgBUTFNWMV9BTEVSVF9OT19BUFBMSUNBVElPTl9QUk9UT0NPTABUTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OAFRMU1YxX0FMRVJUX1BST1RPQ09MX1ZFUlNJT04AVExTVjFfQUxFUlRfUkVDT1JEX09WRVJGTE9XAFRMU1YxX0FMRVJUX1VOS05PV05fQ0EAVExTVjFfQUxFUlRfVU5LTk9XTl9QU0tfSURFTlRJVFkAVExTVjFfQUxFUlRfVU5SRUNPR05JWkVEX05BTUUAVExTVjFfQUxFUlRfVU5TVVBQT1JURURfRVhURU5TSU9OAFRMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVEAFRMU19QRUVSX0RJRF9OT1RfUkVTUE9ORF9XSVRIX0NFUlRJRklDQVRFX0xJU1QAVExTX1JTQV9FTkNSWVBURURfVkFMVUVfTEVOR1RIX0lTX1dST05HAFRPT19NQU5ZX0VNUFRZX0ZSQUdNRU5UUwBUT09fTUFOWV9LRVlfVVBEQVRFUwBUT09fTUFOWV9XQVJOSU5HX0FMRVJUUwBUT09fTVVDSF9SRUFEX0VBUkxZX0RBVEEAVE9PX01VQ0hfU0tJUFBFRF9FQVJMWV9EQVRBAFVOQUJMRV9UT19GSU5EX0VDREhfUEFSQU1FVEVSUwBVTkNPTVBSRVNTRURfQ0VSVF9UT09fTEFSR0UAVU5FWFBFQ1RFRF9DT01QQVRJQklMSVRZX01PREUAVU5FWFBFQ1RFRF9FWFRFTlNJT04AVU5FWFBFQ1RFRF9FWFRFTlNJT05fT05fRUFSTFlfREFUQQBVTkVYUEVDVEVEX01FU1NBR0UAVU5FWFBFQ1RFRF9PUEVSQVRPUl9JTl9HUk9VUABVTkVYUEVDVEVEX1JFQ09SRABVTktOT1dOX0FMRVJUX1RZUEUAVU5LTk9XTl9DRVJUSUZJQ0FURV9UWVBFAFVOS05PV05fQ0VSVF9DT01QUkVTU0lPTl9BTEcAVU5LTk9XTl9DSVBIRVJfUkVUVVJORUQAVU5LTk9XTl9DSVBIRVJfVFlQRQBVTktOT1dOX0tFWV9FWENIQU5HRV9UWVBFAFVOS05PV05fUFJPVE9DT0wAVU5LTk9XTl9TU0xfVkVSU0lPTgBVTktOT1dOX1NUQVRFAFVOU0FGRV9MRUdBQ1lfUkVORUdPVElBVElPTl9ESVNBQkxFRABVTlNVUFBPUlRFRF9DT01QUkVTU0lPTl9BTEdPUklUSE0AVU5TVVBQT1JURURfRUNIX1NFUlZFUl9DT05GSUcAVU5TVVBQT1JURURfRUxMSVBUSUNfQ1VSVkUAVU5TVVBQT1JURURfUFJPVE9DT0wAVU5TVVBQT1JURURfUFJPVE9DT0xfRk9SX0NVU1RPTV9LRVkAV1JPTkdfQ0VSVElGSUNBVEVfVFlQRQBXUk9OR19DSVBIRVJfUkVUVVJORUQAV1JPTkdfQ1VSVkUAV1JPTkdfRU5DUllQVElPTl9MRVZFTF9SRUNFSVZFRABXUk9OR19NRVNTQUdFX1RZUEUAV1JPTkdfU0lHTkFUVVJFX1RZUEUAV1JPTkdfU1NMX1ZFUlNJT04AV1JPTkdfVkVSU0lPTl9OVU1CRVIAV1JPTkdfVkVSU0lPTl9PTl9FQVJMWV9EQVRBAFg1MDlfTElCAFg1MDlfVkVSSUZJQ0FUSU9OX1NFVFVQX1BST0JMRU1TAEJBRF9WQUxJRElUWV9DSEVDSwBERUNPREVfRkFJTFVSRQBJTlZBTElEX0tFWV9JRABJTlZBTElEX01FVEFEQVRBAElOVkFMSURfTUVUQURBVEFfS0VZAElOVkFMSURfUFJPT0YASU5WQUxJRF9UT0tFTgBOT19LRVlTX0NPTkZJR1VSRUQATk9fU1JSX0tFWV9DT05GSUdVUkVEAE9WRVJfQkFUQ0hTSVpFAFNSUl9TSUdOQVRVUkVfRVJST1IAVE9PX01BTllfS0VZUwBBS0lEX01JU01BVENIAEJBRF9YNTA5X0ZJTEVUWVBFAEJBU0U2NF9ERUNPREVfRVJST1IAQ0FOVF9DSEVDS19ESF9LRVkAQ0VSVF9BTFJFQURZX0lOX0hBU0hfVEFCTEUAQ1JMX0FMUkVBRFlfREVMVEEAQ1JMX1ZFUklGWV9GQUlMVVJFAERFTFRBX0NSTF9XSVRIT1VUX0NSTF9OVU1CRVIASURQX01JU01BVENIAElOVkFMSURfRElSRUNUT1JZAElOVkFMSURfRklFTERfRk9SX1ZFUlNJT04ASU5WQUxJRF9GSUVMRF9OQU1FAElOVkFMSURfUEFSQU1FVEVSAElOVkFMSURfUFNTX1BBUkFNRVRFUlMASU5WQUxJRF9UUlVTVABJTlZBTElEX1ZFUlNJT04ASVNTVUVSX01JU01BVENIAEtFWV9UWVBFX01JU01BVENIAEtFWV9WQUxVRVNfTUlTTUFUQ0gATE9BRElOR19DRVJUX0RJUgBMT0FESU5HX0RFRkFVTFRTAE5BTUVfVE9PX0xPTkcATkVXRVJfQ1JMX05PVF9ORVdFUgBOT19DRVJUX1NFVF9GT1JfVVNfVE9fVkVSSUZZAE5PX0NSTF9OVU1CRVIAUFVCTElDX0tFWV9ERUNPREVfRVJST1IAUFVCTElDX0tFWV9FTkNPREVfRVJST1IAU0hPVUxEX1JFVFJZAFNJR05BVFVSRV9BTEdPUklUSE1fTUlTTUFUQ0gAVU5LTk9XTl9LRVlfVFlQRQBVTktOT1dOX1BVUlBPU0VfSUQAVU5LTk9XTl9UUlVTVF9JRABXUk9OR19MT09LVVBfVFlQRQBCQURfSVBfQUREUkVTUwBCQURfT0JKRUNUAEJOX0RFQzJCTl9FUlJPUgBCTl9UT19BU04xX0lOVEVHRVJfRVJST1IAQ0FOTk9UX0ZJTkRfRlJFRV9GVU5DVElPTgBESVJOQU1FX0VSUk9SAERJU1RQT0lOVF9BTFJFQURZX1NFVABEVVBMSUNBVEVfWk9ORV9JRABFUlJPUl9DT05WRVJUSU5HX1pPTkUARVJST1JfQ1JFQVRJTkdfRVhURU5TSU9OAEVSUk9SX0lOX0VYVEVOU0lPTgBFWFBFQ1RFRF9BX1NFQ1RJT05fTkFNRQBFWFRFTlNJT05fRVhJU1RTAEVYVEVOU0lPTl9OQU1FX0VSUk9SAEVYVEVOU0lPTl9OT1RfRk9VTkQARVhURU5TSU9OX1NFVFRJTkdfTk9UX1NVUFBPUlRFRABFWFRFTlNJT05fVkFMVUVfRVJST1IASUxMRUdBTF9FTVBUWV9FWFRFTlNJT04ASUxMRUdBTF9IRVhfRElHSVQASU5DT1JSRUNUX1BPTElDWV9TWU5UQVhfVEFHAElOVkFMSURfQk9PTEVBTl9TVFJJTkcASU5WQUxJRF9FWFRFTlNJT05fU1RSSU5HAElOVkFMSURfTVVMVElQTEVfUkROUwBJTlZBTElEX05BTUUASU5WQUxJRF9OVUxMX0FSR1VNRU5UAElOVkFMSURfTlVMTF9OQU1FAElOVkFMSURfTlVMTF9WQUxVRQBJTlZBTElEX05VTUJFUlMASU5WQUxJRF9PQkpFQ1RfSURFTlRJRklFUgBJTlZBTElEX09QVElPTgBJTlZBTElEX1BPTElDWV9JREVOVElGSUVSAElOVkFMSURfUFJPWFlfUE9MSUNZX1NFVFRJTkcASU5WQUxJRF9QVVJQT1NFAElOVkFMSURfU0VDVElPTgBJTlZBTElEX1NZTlRBWABJTlZBTElEX1ZBTFVFAElTU1VFUl9ERUNPREVfRVJST1IATkVFRF9PUkdBTklaQVRJT05fQU5EX05VTUJFUlMATk9fQ09ORklHX0RBVEFCQVNFAE5PX0lTU1VFUl9DRVJUSUZJQ0FURQBOT19JU1NVRVJfREVUQUlMUwBOT19QT0xJQ1lfSURFTlRJRklFUgBOT19QUk9YWV9DRVJUX1BPTElDWV9MQU5HVUFHRV9ERUZJTkVEAE5PX1BVQkxJQ19LRVkATk9fU1VCSkVDVF9ERVRBSUxTAE9ERF9OVU1CRVJfT0ZfRElHSVRTAE9QRVJBVElPTl9OT1RfREVGSU5FRABPVEhFUk5BTUVfRVJST1IAUE9MSUNZX0xBTkdVQUdFX0FMUkVBRFlfREVGSU5FRABQT0xJQ1lfUEFUSF9MRU5HVEgAUE9MSUNZX1BBVEhfTEVOR1RIX0FMUkVBRFlfREVGSU5FRABQT0xJQ1lfV0hFTl9QUk9YWV9MQU5HVUFHRV9SRVFVSVJFU19OT19QT0xJQ1kAU0VDVElPTl9OT1RfRk9VTkQAVFJBSUxJTkdfREFUQV9JTl9FWFRFTlNJT04AVU5BQkxFX1RPX0dFVF9JU1NVRVJfREVUQUlMUwBVTkFCTEVfVE9fR0VUX0lTU1VFUl9LRVlJRABVTktOT1dOX0JJVF9TVFJJTkdfQVJHVU1FTlQAVU5LTk9XTl9FWFRFTlNJT04AVU5LTk9XTl9FWFRFTlNJT05fTkFNRQBVTktOT1dOX09QVElPTgBVTlNVUFBPUlRFRF9PUFRJT04AVVNFUl9UT09fTE9ORwAAAAEbAzuolgAA1BIAADweBADElgAAbB8EAPSWAAD8HwQAFJcAAJwgBAA0lwAAHCEEAFSXAACcIQQAdJcAACwiBACUlwAADCMEALSXAACMIwQA1JcAACwkBAD0lwAAzCQEABSYAABMJQQANJgAALwlBABUmAAATCYEAHSYAAC8JgQAlJgAAJwnBAC0mAAADCgEAMyYAAAsKQQA7JgAAJwpBAAEmQAADCoEAByZAABcKgQANJkAAHwqBABMmQAAjCoEAGSZAACcKgQAfJkAAKwqBACUmQAA/CoEAMSZAABcKwQA5JkAAKwrBAAEmgAADC0EADSaAAB8LQQAlJoAAOwtBAC8mgAA/C0EANSaAAAMLgQA7JoAADwuBAAMmwAAHC8EADSbAAB8MgQAhJsAAMwzBAC8mwAAbDUEAPSbAAB8NgQAJJwAAOw2BABcnAAArDgEAJycAABsPgQA7JwAAOw+BAA0nQAAHD8EAGSdAAAsPwQAfJ0AAAxABAC8nQAALEAEANSdAAA8QAQA7J0AAExABAAEngAAnEAEADSeAADsQAQAVJ4AADxBBAB0ngAAnEIEALSeAABMQwQA3J4AAGxDBAD8ngAAfEMEABSfAACMQwQALJ8AALxDBABMnwAATEQEAHSfAAAsRgQAxJ8AAKxGBAD8nwAAXEcEABygAAB8SAQATKAAAOxIBACEoAAA7EkEAMSgAACcSgQA9KAAAJxLBAA8oQAATEwEAHShAABcTAQAjKEAAAxNBADMoQAALE0EAOShAAA8TQQA/KEAAIxNBAAcogAA3E0EADyiAAB8TgQAbKIAAAxPBACUogAALE8EALSiAAA8TwQAzKIAAExPBADkogAAfE8EAASjAADMTwQAHKMAAIxRBABsowAALFIEAKSjAAAMUwQA3KMAAIxTBAD8owAA/FMEADSkAAC8VAQAfKQAACxVBAC0pAAAPFUEAMykAADsVQQADKUAAAxWBAAkpQAALFYEADylAAA8VgQAVKUAAExWBABspQAAnFYEAJylAADcVgQAvKUAACxXBADspQAAfFcEACSmAADMVwQARKYAABxYBABkpgAAPFoEALSmAAAsWwQA7KYAAExbBAAMpwAAXFsEACSnAABsWwQAPKcAAJxbBABcpwAAnFwEAKynAAB8XwQA/KcAACxgBABMqAAAjGEEAJyoAAAMYwQA3KgAAHxjBAAUqQAAvGUEAHypAAC8ZgQAxKkAADxnBAAMqgAAbGcEADyqAAB8ZwQAVKoAAGxoBACUqgAAjGgEAKyqAACcaAQAxKoAAOxoBADkqgAAPGkEAASrAAAcagQARKsAANxqBABsqwAA/GoEAIyrAAAMawQApKsAABxrBAC8qwAATGsEANyrAAC8awQA9KsAAMxtBABErAAArG4EAHysAACMbwQAtKwAACxwBADUrAAAnHAEAAytAACccQQAVK0AAHxyBACcrQAADHMEANStAAAccwQA7K0AAMxzBAAsrgAA7HMEAESuAAD8cwQAXK4AAAx0BAB0rgAAXHQEAKSuAACsdAQAxK4AAPx0BAD8rgAAjHUEAByvAAAcdgQAPK8AANx7BACMrwAAbH0EAASwAACMfQQAJLAAAJx9BAA8sAAArH0EAFSwAADcfQQAdLAAADyBBADEsAAAvIkEABSxAACcjAQAfLEAAIyQBADMsQAA/JMEAByyAABslAQAVLIAAOyUBACcsgAAHJUEAMyyAAAslQQA5LIAADyXBAAkswAAXJcEADyzAABslwQAVLMAAIyXBABsswAArJcEAISzAAAMmAQAtLMAAHyYBADcswAA7JgEAAS0AAD8mAQAHLQAAAyZBAA0tAAAPJkEAFS0AABsmQQAbLQAAIyaBACstAAA3JoEAOS0AAA8mwQA/LQAAIybBAActQAATJwEAGy1AACcnAQAnLUAAOycBADMtQAAbJ0EAPy1AAB8nQQAFLYAAByeBABUtgAAPJ4EAGy2AABsngQAhLYAAJyeBACctgAArJ4EAPS2AADMngQA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LOMAADwwBQBc4wAA/DAFAIzjAACcMQUAvOMAADwyBQBcmgAA7DIFAMyvAACsMwUAtLYAAKw0BQBstwAArDUFAJy4AADsNQUAxLgAACw2BQAcuQAAjDYFAES5AADsNgUAPLoAAFw3BQB8ugAAzDcFAFy7AAD8OAUA3LsAAGw6BQBkvAAAHDsFANS9AABcOwUA/L0AAJw7BQCEvgAAXDwFAIy/AACcPAUA5L8AAPw8BQDkwAAAbD0FAMTBAACcPgUARMIAALw/BQAExAAA/D8FAOzjAAAMQAUABOQAABxABQAc5AAAPEAFADTkAABMQAUATOQAAFxABQBk5AAAbEAFAHzkAAB8QAUAlOQAAIxABQCs5AAArEAFAMTkAAC8QAUA3OQAAMxABQD05AAA3EAFAAzlAADsQAUAJOUAAAxBBQA85QAAHEEFAFTlAAAsQQUAbOUAADxBBQCE5QAATEEFAJzlAABsQQUAtOUAAHxBBQDM5QAAjEEFAOTlAACcQQUA/OUAAKxBBQAU5gAAzEEFACzmAADcQQUAROYAAOxBBQBc5gAA/EEFAHTmAAAMQgUAjOYAACxCBQCk5gAAPEIFALzmAABMQgUA1OYAAFxCBQDs5gAAbEIFAATnAACMQgUAHOcAAJxCBQA05wAArEIFAEznAAC8QgUAZOcAAMxCBQB85wAA7EIFAJTnAAD8QgUArOcAAAxDBQDE5wAAHEMFANznAAAsQwUA9OcAAExDBQAM6AAAXEMFACToAABsQwUAPOgAAHxDBQBU6AAAjEMFAGzoAACsQwUAhOgAALxDBQCc6AAAzEMFALToAADcQwUAzOgAAOxDBQDk6AAADEQFAPzoAAAcRAUAFOkAACxEBQAs6QAAPEQFAETpAABMRAUAXOkAAGxEBQB06QAAfEQFAIzpAACMRAUApOkAAJxEBQC86QAArEQFANTpAADMRAUA7OkAANxEBQAE6gAA7EQFABzqAAD8RAUANOoAAAxFBQBM6gAALEUFAGTqAAA8RQUAfOoAAExFBQCU6gAAXEUFAKzqAABsRQUAxOoAAIxFBQDc6gAAnEUFAPTqAACsRQUADOsAALxFBQAk6wAAzEUFADzrAADsRQUAVOsAAPxFBQBs6wAADEYFAITrAAAsRgUApOsAAExGBQC86wAAjEYFANTrAACcRgUA7OsAAKxGBQAE7AAAvEYFABzsAAAcRwUAPOwAACxHBQBU7AAAPEcFAGzsAADcSAUAvOwAAKxJBQDk7AAA/EkFAAztAACMSgUAPO0AAGxLBQB07QAAjEsFAIztAACcSwUApO0AALxLBQC87QAA3EsFANztAAD8SwUA9O0AADxMBQAM7gAATEwFACTuAABcTAUAPO4AALxMBQBc7gAAzEwFAHTuAADcTAUAjO4AAHxOBQDc7gAATE8FAATvAACcTwUALO8AACxQBQBc7wAADFEFAJTvAAAsUQUArO8AADxRBQDE7wAAXFEFANzvAAB8UQUA/O8AAJxRBQAU8AAA3FEFACzwAADsUQUARPAAAPxRBQBc8AAAPFIFAHzwAABMUgUAlPAAAFxSBQCs8AAA/FMFAPzwAACMVAUAJPEAANxUBQBM8QAAbFUFAHzxAAD8VQUArPEAABxWBQDE8QAALFYFANzxAABMVgUA9PEAALxWBQAk8gAAzFYFADzyAAA8VwUAZPIAALxXBQCU8gAA3FgFANzyAABcWQUADPMAAGxZBQAk8wAA/FkFAFTzAAAcWgUAdPMAADxaBQCU8wAAfFsFANTzAACMXgUAJPQAAIxgBQB09AAAvGAFAJT0AADMYAUArPQAAHxhBQDs9AAArGEFABT1AAC8YQUANPUAAOxhBQBc9QAAXGIFAIz1AACMYwUAxPUAAAxkBQD89QAAbGYFAEz2AAA8aAUAdPYAANxpBQDE9gAAPGsFABT3AABcawUANPcAAOxuBQBk9wAAPG8FAJz3AABccQUA7PcAAGxyBQAs+AAADHMFAFz4AADMcwUAjPgAAKx1BQDU+AAA3HYFABT5AABceAUAZPkAAJx5BQCs+QAALHsFAPz5AAAcfAUAPPoAAIx9BQCM+gAA/H4FAKT6AAAcfwUAvPoAAPx/BQDs+gAAbIAFACT7AABMgQUAZPsAAGyBBQB8+wAAfIEFAJT7AACMgQUArPsAAPyBBQDU+wAAfIIFAAT8AACcgwUATPwAAByEBQB8/AAAPIQFAJz8AAB8hQUA3PwAAIyIBQAs/QAAjIoFAHz9AACcigUAnP0AAMyKBQDE/QAAPIsFAPT9AAAcjAUANP4AADyMBQBM/gAATIwFAGT+AAC8jAUAjP4AADyNBQC8/gAAXI4FAAT/AADcjgUANP8AAOyOBQBM/wAAfI8FAHz/AACcjwUA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TO8KAAQLAgBc8AoALAsCAJzzCgB0CwIA7PMKAKQLAgA89AoA1AsCAKz0CgAMDAIAHPUKAEQMAgCM9QoAfAwCAPz1CgC0DAIATPYKAOQMAgCc9goAFA0CAOz2CgBEDQIAfPgKAJQNAgAc+QoAxA0CAFz5CgD8DQIAnPkKADQOAgBs+goAhA4CAKz6CgC8DgIAPPsKAAwPAgDs+woATA8CADz+CgCcDwIAjP4KAMwPAgDc/goABBACACz/CgA8EAIAvP8KAHQQAgAMAAsApBACAOwACwDkEAIAPAELABQRAgCMAQsARBECANwBCwB0EQIALAILAKQRAgB8AgsA1BECAMwCCwAEEgIAvAMLAFQSAgDsBAsA7BICADwFCwAUEwIAfAULADwTAgC8BQsAdBMCAFwGCwCsEwIA/AYLANwTAgA8BwsAFBQCAHwHCwBMFAIA3AcLAHwUAgAcCAsAtBQCAFwICwDsFAIA/AkLADwVAgBcCgsAdBUCAJwKCwCsFQIALAsLAOQVAgCcCwsABBYCAAwMCwAkFgIAXAwLAFQWAgAcDQsAjBYCAFwNCwDEFgIAbA4LAPwWAgDcDgsALBcCACwQCwBkFwIAHBULAKQXAgCcFQsA3BcCABwWCwAUGAIAnBYLAEwYAgDsFwsAjBgCADwZCwDMGAIAjBkLAAQZAgDcGQsAPBkCACwaCwB0GQIAfBoLAKwZAgCMGwsA7BkCANwbCwAkGgIALBwLAFwaAgBMHgsApBoCAAwgCwDkGgIAHCILACQbAgBsIgsAXBsCAJwjCwCcGwIA7CMLANQbAgA8JAsADBwCAIwkCwBEHAIA3CQLAHwcAgAsJQsAtBwCANwlCwDsHAIAjCgLADwdAgDcKAsAdB0CAMwqCwC8HQIAHCsLAPQdAgDsKwsARB4CAOwsCwCEHgIAzC0LABwfAgAMLgsAVB8CAEwuCwCMHwIArC4LAMQfAgAMLwsA/B8CAGwvCwA0IAIArC8LAFQgAgAMMAsAjCACAGwwCwDEIAIAzDALAPwgAgAsMQsANCECAGwxCwBsIQIArDELAKQhAgAsMgsA3CECAIwyCwAUIgIA/DMLAFQiAgBcNAsAjCICALw0CwDEIgIAPDULAPwiAgC8NQsAFCQCAAw3CwD0JAIATDgLAEQlAgBcPAsApPQBAEw9CwDU9AEAnD4LAAz1AQAsQAsA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DAUSAMQgAwAsBRIA3CADAEwFEgD0IAMAbAUSAAwhAwDMBRIAPCEDANwFEgBUIQMA7AUSAGwhAwAMBhIAhCEDACwGEgCcIQMA3AcSAAQiAwBsCBIAPCIDAOwJEgCMIgMA/AkSAKQiAwCsChIA3CIDALwKEgD0IgMALA0SABQjAwBcDhIAVCMDAHwOEgB0IwMAjA4SAIwjAwCcDhIApCMDACwPEgDsIwMAXA8SAAQkAwB8DxIAHCQDAFwQEgBsJAMAvBASAJwkAwAcEhIA7CQDADwSEgAEJQMAHBMSAFQlAwB8ExIAhCUDAOwTEgC8JQMA/BMSANQlAwD8FBIAFCYDAIwVEgBUJgMAbBYSAJwmAwCMFxIA1CYDAPwXEgBUJwMAvBwSALwnAwAMHRIA3CcDALwfEgA8KAMAPCESAFwoAwBsIRIAdCgDAJwhEgCMKAMALCISAMQoAwCMKBIAFCkDAJwoEgAsKQMAXCsSAJQpAwBsLBIAzCkDAPwsEgAEKgMAHC0SABwqAwAMLhIAVCoDALwvEgCkKgMAjDASAPQqAwDsMBIAJCsDAPwwEgA8KwMALDESAFQrAwBsMhIApCsDAJwzEgD0KwMAHDQSABQsAwAsNBIALCwDAEw0EgBELAMAXDQSAFwsAwCMNBIAdCwDAJw0EgDULAMAJjUSAMwjAwBmNRIA7CYDANw+EgCMLAMA7D4SAKQsAwD8PhIAvCwDAAw/EgAMLQMALD8SACwtAwBMPxIATC0DAHw/EgBsLQMAjD8SAIQtAwDMPxIAnC0DANw/EgC0LQMAXEASAOQtAwCMQRIAHC4DAKxBEgA0LgMAvEESAEwuAwDcQRIAZC4DAExCEgCcLgMAzEISALwuAwD8QxIA3C4DAAxEEgD0LgMAHEQSAAwvAwCsRRIAXC8DAAxGEgB8LwMAbEYSAKQvAwBcRxIAvC8DALxHEgAsMAMAi0gSANwvAwCVShIAfDADAJxMEgCsMAMAjFASAPwwAwAMURIAFDEDAJxREgAsMQMAnFMSAHwxAwCMVRIArDEDABxXEgDsMQMA/FgSABwyAwAcWRIAPDIDAIxZEgBUMgMAbFoSAIQyAwB8XBIAzDIDAGxeEgAUMwMAHF8SACwzAwDMXxIARDMDADxgEgBkMwMArGASAIQzAwAcYRIApDMDADxhEgC8MwMAfGESANQzAwC8YRIA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VNUDADwyGABs1QMAfDMYAJzVAwCMMxgAtNUDAPw6GAAE1gMAXEAYACzWAwB8QhgARNYDAIxCGABc1gMAnEsYAKzWAwBsURgA/NYDAPxWGABk1wMAXFcYAHzXAwBMWRgArNcDAKxZGADE1wMADFoYANzXAwBcWhgADNgDALxaGAAk2AMA7FoYADzYAwBcWxgAVNgDAGxcGACU2AMAzGAYAOTYAwAcYRgAHNkDAMxkGABc2QMALGUYAHTZAwCMZRgAjNkDAOxlGACk2QMAXGYYALzZAwC8ZhgA1NkDABxnGADs2QMAfGcYAATaAwDsZxgAHNoDAFxoGAA02gMAjGgYAEzaAwD8aBgAZNoDAFxpGACs2gMAzGkYAMTaAwA8ahgA3NoDAKxqGAD02gMAHGsYAAzbAwDcaxgANNsDAOxrGABM2wMAPGwYAGTbAwB8bBgAfNsDAGxxGADM2wMAHHYYABzcAwAcdxgARNwDAGx4GAC03AMA/HgYAOzcAwDMeRgAFN0DAIx6GABs3QMAXHsYAJTdAwA8fBgA7N0DAFx8GAAE3gMAjHwYABzeAwA8fRgAbN4DAIx9GACU3gMAzH0YALTeAwAcfhgA3N4DAJx+GAAk3wMAzH4YADzfAwD8fhgAXN8DAAx/GAB03wMAPH8YAIzfAwBMfxgApN8DAFx/GAC83wMAjH8YANTfAwCcfxgA7N8DAKx/GAAE4AMA7H8YABzgAwD8fxgANOADAAyAGABM4AMATIAYAGTgAwBcgBgAfOADAGyAGACU4AMAvIAYAKzgAwDMgBgAxOADANyAGADc4AMALIEYAPTgAwA8gRgADOEDAEyBGAAk4QMAnIEYADzhAwCsgRgAVOEDALyBGABs4QMADIIYAIThAwA8ghgAtOEDAGyCGADc4QMAHIUYACTiAwDMiRgAdOIDACyKGACc4gMATIoYALTiAwB8jxgA/OIDAIybGABM4wMArKAYALTjAwAspRgA9OMDACyvGAB05AMAjLgYAPTkAwA8wxgAFOYDAHzLGABk5gMAzNAYAKzmAwDM1RgA9OYDACzXGAAM5wMAHOcYAFznAwBM9BgArOcDAFz3GAD85wMAfPgYACzoAwCc+BgAROgDABz5GACE6AMAPAEZANzoAwC8BhkA9OgDAPwHGQAs6QMAfAkZAETpAwB8DhkAfOkDALwOGQCU6QMA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AAAAABQAAAAUKgEAOJAGAAcAAAAAAAAAAAAAABQAAAAsKgEAMJAGAAgAAAAAAAAAAAAAABQAAABEKgEAKJAGAAQAAAAAAAAAAAAAABQAAABcKgEAIJAGAAcAAAAAAAAAAAAAABQAAAB0KgEAGJAGAAgAAAAAAAAAAAAAABQAAACMKgEAEJAGAAQAAAAAAAAAAAAAABQAAACkKgEACJAGAAcAAAAAAAAAAAAAABQAAAC8KgEAAJAGAAgAAAAAAAAAAAAAABQAAADUKgEA+I8GAAQAAAAAAAAAAAAAABQAAADsKgEA8I8GAAcAAAAAAAAAAAAAABQAAAAEKwEA6I8GAAgAAAAAAAAAAAAAABQAAAAcKwEA4I8GAAQAAAAAAAAAAAAAABQAAAA0KwEA2I8GAAcAAAAAAAAAAAAAABQAAABMKwEA0I8GAAgAAAAAAAAAAAAAABQAAABkKwEAyI8GAAQAAAAAAAAAAAAAABQAAAB8KwEAwI8GAAcAAAAAAAAAAAAAABQAAACUKwEAuI8GAAgAAAAAAAAAAAAAABQAAACsKwEAsI8GAAQAAAAAAAAAAAAAABQAAADEKwEAqI8GAAcAAAAAAAAAAAAAABQAAADcKwEAoI8GAAgAAAAAAAAAAAAAABQAAAD0KwEAmI8GAAQAAAAAAAAAAAAAABQAAAAMLAEAkI8GAAcAAAAAAAAAAAAAABQAAAAkLAEAiI8GAAgAAAAAAAAAAAAAABQAAAA8LAEAgI8GAAQAAAAAAAAAAAAAABQAAABULAEAeI8GAAcAAAAAAAAAAAAAABQAAABsLAEAcI8GAAgAAAAAAAAAAAAAABQAAACELAEAaI8GAAQAAAAAAAAAAAAAABQAAACcLAEAYI8GAA4AAAAAAAAAAAAAABQAAAC0LAEAWI8GAA4AAAAAAAAAAAAAABQAAADMLAEAUI8GAA4AAAAAAAAAAAAAABQAAADkLAEASI8GAAUAAAAAAAAAAAAAABQAAAD8LAEAQI8GAAUAAAAAAAAAAAAAABQAAAAULQEAOI8GAAUAAAAAAAAAAAAAABQAAAAsLQEAMI8GAAUAAAAAAAAAAAAAABQAAABELQEAKI8GAAUAAAAAAAAAAAAAABQAAABcLQEAII8GAAUAAAAAAAAAAAAAABQAAAB0LQEAGI8GAAUAAAAAAAAAAAAAABQAAACMLQEAEI8GAAUAAAAAAAAAAAAAABQAAACkLQEACI8GAAUAAAAAAAAAAAAAABQAAAC8LQEAAI8GAAUAAAAAAAAAAAAAABQAAADULQEA+I4GAAUAAAAAAAAAAAAAABQAAADsLQEA8I4GAAUAAAAAAAAAAAAAABQAAAAELgEA6I4GAAUAAAAAAAAAAAAAABQAAAAcLgEA4I4GAAUAAAAAAAAAAAAAABQAAAA0LgEA2I4GAAwAAAAAAAAAAAAAAEwAAABMLgEA0I4GADEKAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QA4MHjAaNBY4EjwOGAgMQCg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAwAATAAAAJwuAQDAmAYAugIAAABBDhBCDhhCDiBCDihCDjBBDjhEDqABgweMBo0FjgSPA4YCA5QCDjhBDjBCDihCDiBCDhhCDhBBDghBDqABAAAkAAAA7C4BAKCrBgBTAAAAAEIOEEEOGEEOIIMDjgICSw4YQQ4QQg4IFAAAABQvAQAImwYAEQAAAABBDhBPDggARAAAACwvAQAQmwYABgMAAABCDhBCDhhCDiBCDihBDjBHDpACgwaMBY0EjgOPAgPnAg4wQQ4oQg4gQg4YQg4QQg4IQQ6QAgAATAAAAHQvAQDYnQYAzgEAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA7ABDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAABMAAAAxC8BAFifBgBmAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDSAEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAADQAAAAUMAEAeKAGAJ0AAAAAQg4QQg4YQQ4gRA5AgwSOA48CAokOIEEOGEIOEEIOCEEOQAAAAAAATAAAAEwwAQDgoAYA0QEAAABBDhBCDhhCDiBCDihCDjBBDjhHDuABgweMBo0FjgSPA4YCA7ABDjhBDjBCDihCDiBCDhhCDhBBDghBDuABAAA0AAAAnDABAHCiBgCdAAAAAEIOEEIOGEEOIEQOQIMEjgOPAgKJDiBBDhhCDhBCDghBDkAAAAAAADwAAADUMAEA2KIGAGcCAAAAQg4QQg4YQg4gQQ4oRw6wAYMFjASOA48CAxcCDihBDiBCDhhCDhBCDghBDrABAABEAAAAFDEBAAilBgBQAQAAAEIOEEIOGEIOIEIOKEEOMEcO0AGDBowFjQSOA48CAzEBDjBBDihCDiBCDhhCDhBCDghBDtABAABEAAAAXDEBABCmBgDSAQAAAEIOEEIOGEIOIEIOKEEOMEcO0AGDBowFjQSOA48CA6IBDjBBDihCDiBCDhhCDhBCDghBDtABAABEAAAApDEBAKinBgA5AQAAAEIOEEIOGEIOIEIOKEEOMEQOQIMGjAWNBI4DjwIDGAEOMEEOKEIOIEIOGEIOEEIOCEEOQAAAAABkAAAA7DEBAACpBgCJAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMkAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRw5AcQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABUMgEAKKoGAIYBAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIDJwEOKEEOIEIOGEIOEEIOCEoOMHEOKEEOIEIOGEIOEEIOCEEOMAAATAAAAKQyAQBoqwYACwQAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDxQMOOEEOMEIOKEIOIEIOGEIOEEEOCEMOYAAAAABkAAAA9DIBACivBgD7AAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLFDjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAEwAAABcMwEAwK8GABACAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA/oBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAKwzAQCAsQYAOgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDHAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABMAAAA/DMBAHCzBgC3BAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDzAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAABQAAABMNAEA4LcGACEAAAAAAAAAAAAAADwAAABkNAEA+LcGAIUAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICbQ4oQQ4gQg4YQg4QQg4IQQ4wAAAAAABMAAAApDQBAEi4BgCWAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAzQBDihBDiBCDhhCDhBCDghNDjBxDihBDiBCDhhCDhBCDghBDjAAAGQAAAD0NAEAmLkGAIkBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAxsBDjhBDjBCDihCDiBCDhhCDhBBDghQDkBxDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAZAAAAFw1AQDAugYAiQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDGwEOOEEOMEIOKEIOIEIOGEIOEEEOCFAOQHEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAxDUBAOi7BgCWAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAzQBDihBDiBCDhhCDhBCDghNDjBxDihBDiBCDhhCDhBCDghBDjAAAEwAAAAUNgEAOL0GACgBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCAwoBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAGQ2AQAYvgYAZwEAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDSQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAAAkAAAAtDYBADi/BgAtAAAAAEEOEEEOGEEOIIMDhgJnDhhBDhBBDggATAAAANw2AQBAvwYALQMAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA+UBDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAAA0AAAALDcBACDCBgBqAQAAAEEOEEIOGEEOIEQOgAGDBI4DhgIC5g4gQQ4YQg4QQQ4IQQ6AAQAAAEwAAABkNwEAWMMGAJMCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgOJAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAPAAAALQ3AQCoxQYAHwEAAABBDhBCDhhCDiBBDihEDkCDBY4EjwOGAgKhDihBDiBCDhhCDhBBDghBDkAAAAAAABwAAAD0NwEAiMYGABIAAAAAQQ4QgwJMDggAAAAAAAAAPAAAABQ4AQCIxgYADgEAAABBDhBCDhhCDiBBDihEDmCDBY4EjwOGAgKDDihBDiBCDhhCDhBBDghBDmAAAAAAACQAAABUOAEAWMcGAJIAAAAAQg4QQQ4YQQ4ggwOOAgKKDhhBDhBCDghMAAAAfDgBANDHBgB1BAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDYQMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAACwAAADMOAEAQIsHAPsAAAAAQg4QQg4YQQ4ggwSOA48CAvEOGEIOEEIOCAAAAAAAAEwAAAD8OAEA0MsGAPMGAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6wAYMHjAaNBY4EjwOGAgNNBg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAQAAJAAAAEw5AQDAiwcAnQAAAABCDhBBDhhBDiCDA44CApUOGEEOEEIOCEwAAAB0OQEAWNIGAKkQAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AA4MHjAaNBY4EjwOGAgPbCg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAwAAJAAAAMQ5AQC44gYAQwAAAABCDhBBDhhBDiCDA44Cew4YQQ4QQg4IABQAAADsOQEA4OIGAFoAAAAAAAAAAAAAADQAAAAEOgEAKOMGADkBAAAAQg4QQg4YQQ4gRA5QgwSOA48CArEOIEEOGEIOEEIOCEEOUAAAAAAATAAAADw6AQAw5AYAGgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgID/AEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAAjDoBAADmBgBtIAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AeDB4wGjQWOBI8DhgIDSh4OOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AcAAEwAAADcOgEA0IoHAMUDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgNZAw44QQ4wQg4oQg4gQg4YQg4QQQ4ITw6AAQAATAAAACw7AQBQjgcAJAQAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA/kDDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAAA8AAAAfDsBAIAFBwBUAQAAAEIOEEIOGEIOIEEOKEQOYIMFjASOA48CAzwBDihBDiBCDhhCDhBCDghBDmAAAAAATAAAALw7AQCgBgcA1gIAAABBDhBCDhhCDiBCDihCDjBBDjhHDrAKgweMBo0FjgSPA4YCA7UCDjhBDjBCDihCDiBCDhhCDhBBDghBDrAKAAA0AAAADDwBADAJBwAEAQAAAEIOEEIOGEEOIEQOQIMEjgOPAgLwDiBBDhhCDhBCDghBDkAAAAAAACwAAABEPAEACAoHAI4AAAAAQg4QQQ4YRA4wgwOOAgJ+DhhBDhBCDghBDjAAAAAAADQAAAB0PAEAaAoHAJ8AAAAAQg4QQg4YQQ4gRA5AgwSOA48CAlgOIEEOGEIOEEIOCEEOQAAAAAAAHAAAAKw8AQAAkQcAVwAAAABEDiACTQ4IQQ4gAAAAAABMAAAAzDwBALAKBwAfAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAlYOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAAADwAAAAcPQEAgAsHAFwEAAAAQg4QQg4YQg4gQQ4oRA5wgwWMBI4DjwIDRAQOKEEOIEIOGEIOEEIOCEEOcAAAAAA8AAAAXD0BALCQBwD9AAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwICyw4oQg4gQg4YQg4QQg4IRA4wAAAARAAAAJw9AQBgDwcAogUAAABCDhBCDhhCDiBCDihBDjBEDnCDBowFjQSOA48CAz4FDjBBDihCDiBCDhhCDhBCDghBDnAAAAAATAAAAOQ9AQDIFAcAQgQAAABBDhBCDhhCDiBCDihCDjBBDjhHDqACgweMBo0FjgSPA4YCAxcEDjhBDjBCDihCDiBCDhhCDhBBDghBDqACAABEAAAAND4BAMgYBwCyAQAAAEEOEEIOGEIOIEIOKEEOMEQOUIMGjAWOBI8DhgIDIAEOMEEOKEIOIEIOGEIOEEEOCEEOUAAAAAA8AAAAfD4BAJCQBwDMAAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwICug4oQg4gQg4YQg4QQg4IAAAAAAAAJAAAALw+AQAgkQcAjwAAAABCDhBBDhhBDiCDA44CAocOGEEOEEIOCCwAAADkPgEAiJEHAEIAAAAARw4QQQ4YQQ4ggwOOAnAOGEEOEEIOCEXDzgAAAAAAAEwAAAAUPwEAqJEHAHgBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6QAYMHjAaNBY4EjwOGAgNfAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAALAAAAGQ/AQDYkgcA3AAAAABCDhBBDhhBDiCDA44CArQOGEEOEEIOCEEOIAAAAAAANAAAAJQ/AQCIkwcAywAAAABCDhBBDhhBDiCDA44CArQOGEEOEEIOCEEOIEcOGEEOEEIOCAAAAAAUAAAAzD8BACCUBwBkAAAAAAAAAAAAAAAUAAAA5D8BAHiUBwA7AAAAAAAAAAAAAABkAAAA/D8BAKCUBwCvAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOGAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAABkQAEA6JUHAAkCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA+sBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAATAAAALRAAQColwcAYQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA0gBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAkAAAABEEBAMiYBwBnAAAAAEIOEEEOGEEOIIMDjgICXw4YQQ4QQg4IHAAAACxBAQAQmQcANgAAAABBDhCDAnAOCAAAAAAAAAAcAAAATEEBADCZBwA+AAAAAEEOEIMCeA4IAAAAAAAAADwAAABsQQEAUJkHALAAAAAAQg4QQg4YQg4gQQ4oRA5QgwWMBI4DjwICmA4oQQ4gQg4YQg4QQg4IQQ5QAAAAAAA8AAAArEEBAMCZBwDzAAAAAEIOEEIOGEIOIEEOKEQOUIMFjASOA48CAtsOKEEOIEIOGEIOEEIOCEEOUAAAAAAAHAAAAOxBAQCAmgcAEwAAAABBDhCDAlEOCAAAAAAAAAAUAAAADEIBAICaBwANAAAAAAAAAAAAAAAcAAAAJEIBAHiaBwATAAAAAEEOEIMCUQ4IAAAAAAAAAEwAAABEQgEAeJoHACQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAwMCDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAANAAAAJRCAQBYnAcAoAAAAABCDhBBDhhBDiCDA44CWg4YQQ4QQg4IRQ4gAnYOGEEOEEIOCAAAAAAkAAAAzEIBAMCcBwCVAAAAAEIOEEEOGEEOIIMDjgICjQ4YQQ4QQg4ITAAAAPRCAQA4nQcAHwEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDCQEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAREMBAAieBwBsAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgNTAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEQAAACUQwEAKJ8HAPAAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAtoOOEEOMEIOKEIOIEIOGEIOEEEOCGQAAADcQwEA0J8HAPABAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA6IBDjhBDjBCDihCDiBCDhhCDhBBDghFDlBZDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAPAAAAEREAQBYoQcAuQAAAABCDhBCDhhCDiBBDihEDkCDBYwEjgOPAgKhDihBDiBCDhhCDhBCDghBDkAAAAAAAEwAAACERAEA2KEHADACAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAxUCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAANREAQC4owcARgIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDKwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAJEUBAJgTBwC6BwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOoAGDB4wGjQWOBI8DhgIDnAcOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAEAAEwAAAB0RQEACBsHAAwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AAoMHjAaNBY4EjwOGAgLrDjhBDjBCDihCDiBCDhhCDhBBDghBDoACAAAATAAAAMRFAQDIGwcAowEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDjQEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAFEYBACgdBwBoAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNSAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAABkRgEASB4HANgBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA8IBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAALRGAQDYHwcAbgMAAABBDhBCDhhCDiBCDihCDjBBDjhEDqABgweMBo0FjgSPA4YCA1ADDjhBDjBCDihCDiBCDhhCDhBBDghBDqABAABMAAAABEcBAPgiBwCXAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgN+AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAABURwEAiKMHADMBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAxUBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAARAAAAKRHAQB4pAcAxgAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICsA44QQ4wQg4oQg4gQg4YQg4QQQ4ITAAAAOxHAQAApQcARQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDJwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABUAAAAPEgBAACnBwARBAAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAlcOMEIOKEIOIEIOGEIOEEEOCEUOOAPYAw4wQg4oQg4gQg4YQg4QQQ4IFAAAAJRIAQDIqgcA3gAAAAAAAAAAAAAAFAAAAKxIAQCQqwcAAwAAAAAAAAAAAAAAFAAAAMRIAQCIqwcAAwAAAAAAAAAAAAAAFAAAANxIAQCAqwcAAwAAAAAAAAAAAAAATAAAAPRIAQCoIgcAGAUAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgID8AQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABMAAAAREkBAHgnBwDVAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDsgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAABwAAACUSQEACCkHAIkAAAAAQQ4QgwICgw4IAAAAAAAAHAAAALRJAQB4KQcAkQAAAABBDhCDAgKLDggAAAAAAAAUAAAA1EkBAJiqBwADAAAAAAAAAAAAAAAUAAAA7EkBAJCqBwADAAAAAAAAAAAAAAAUAAAABEoBAIiqBwADAAAAAAAAAAAAAAAUAAAAHEoBAICqBwADAAAAAAAAAAAAAAAUAAAANEoBAHiqBwADAAAAAAAAAAAAAAAUAAAATEoBAHCqBwADAAAAAAAAAAAAAAAUAAAAZEoBAGiqBwADAAAAAAAAAAAAAABMAAAAfEoBAGCqBwD9AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgO7AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IUA5AAAAAADwAAADMSgEAEKwHAOsBAAAAQg4QQg4YQg4gQQ4oRA5AgwWMBI4DjwID0wEOKEEOIEIOGEIOEEIOCEEOQAAAAAAcAAAADEsBAMAoBwAvAAAAAEEOEIMCaQ4IAAAAAAAAABwAAAAsSwEA0CgHADcAAAAAQQ4QgwJxDggAAAAAAAAATAAAAExLAQDwKAcAjgQAAABBDhBCDhhCDiBCDihCDjBBDjhHDvABgweMBo0FjgSPA4YCA/IDDjhBDjBCDihCDiBCDhhCDhBBDghBDvABAAAUAAAAnEsBADCtBwABAAAAAAAAAAAAAAAUAAAAtEsBACitBwADAAAAAAAAAAAAAABMAAAAzEsBAAAtBwAqBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOoAGDB4wGjQWOBI8DhgIDbAEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAEAABQAAAAcTAEA0KwHAAEAAAAAAAAAAAAAABQAAAA0TAEAyKwHAAEAAAAAAAAAAAAAABQAAABMTAEAwKwHAAEAAAAAAAAAAAAAAEwAAABkTAEAmDAHADQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA4kBDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAFAAAALRMAQBorAcAAQAAAAAAAAAAAAAAFAAAAMxMAQBgrAcAAQAAAAAAAAAAAAAAFAAAAORMAQBYrAcAAQAAAAAAAAAAAAAAFAAAAPxMAQBQrAcAAQAAAAAAAAAAAAAAFAAAABRNAQBIrAcAAQAAAAAAAAAAAAAAFAAAACxNAQBArAcAAQAAAAAAAAAAAAAAFAAAAERNAQA4rAcAAQAAAAAAAAAAAAAAFAAAAFxNAQAwrAcAAQAAAAAAAAAAAAAAFAAAAHRNAQAorAcAAQAAAAAAAAAAAAAAFAAAAIxNAQAgrAcAAQAAAAAAAAAAAAAAFAAAAKRNAQAYrAcAAQAAAAAAAAAAAAAAFAAAALxNAQAQrAcAAQAAAAAAAAAAAAAAFAAAANRNAQAIrAcAAQAAAAAAAAAAAAAAFAAAAOxNAQAArAcAAQAAAAAAAAAAAAAAFAAAAAROAQD4qwcAAQAAAAAAAAAAAAAAFAAAABxOAQDwqwcAAQAAAAAAAAAAAAAAFAAAADROAQDoqwcAAQAAAAAAAAAAAAAAFAAAAExOAQDgqwcAAQAAAAAAAAAAAAAATAAAAGROAQDYMAcAyQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA5gBDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAABMAAAAtE4BAFgyBwBDAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgKhDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAAEwAAAAETwEAWDMHAIwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAuoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAATAAAAFRPAQCYNAcAWAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDOgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAUAAAApE8BAJiqBwABAAAAAAAAAAAAAABMAAAAvE8BAJA1BwCtAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgMRAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAAEwAAAAMUAEA8DYHAK0BAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCAxEBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAFxQAQBQOAcASgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDngEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAAAUAAAArFABAKCpBwABAAAAAAAAAAAAAAAUAAAAxFABAJipBwABAAAAAAAAAAAAAABMAAAA3FABACA6BwBPAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgOjAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAABQAAAAsUQEAQKkHAAEAAAAAAAAAAAAAABQAAABEUQEAOKkHAAEAAAAAAAAAAAAAABQAAABcUQEAMKkHAAEAAAAAAAAAAAAAABQAAAB0UQEAKKkHAAEAAAAAAAAAAAAAABwAAACMUQEAwDsHABIAAAAAQQ4QgwJMDggAAAAAAAAALAAAAKxRAQDAOwcA6AAAAABCDhBBDhhEDjCDA44CAnAOGEEOEEIOCEEOMAAAAAAAFAAAANxRAQDQqAcAAwAAAAAAAAAAAAAAHAAAAPRRAQBoPAcAEgAAAABBDhCDAkwOCAAAAAAAAABEAAAAFFIBAGg8BwDyAQAAAEIOEEIOGEIOIEIOKEEOMEcO4BmDBowFjQSOA48CA2wBDjBBDihCDiBCDhhCDhBCDghBDuAZAABMAAAAXFIBACA+BwC6BwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AqDB4wGjQWOBI8DhgIDWgYOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AoAADwAAACsUgEAEKgHAKAAAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKGDihCDiBCDhhCDhBCDghBDjAAAABMAAAA7FIBAFBFBwBSBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAODB4wGjQWOBI8DhgIDXAUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAMAAEQAAAA8UwEAYEsHAO8CAAAAQQ4QQg4YQg4gQg4oQQ4wRw6wAYMGjAWOBI8DhgID0gIOMEEOKEIOIEIOGEIOEEEOCEEOsAEAAEwAAACEUwEA2KcHAKsEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA40EDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAANAAAANRTAQA4rAcAPAEAAABCDhBCDhhBDiCDBI4DjwIDKAEOGEIOEEIOCEUOIEEOGEIOEEIOCABMAAAADFQBAECtBwCTAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgN1Aw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAACwAAABcVAEAkLAHAE8AAAAARw4QQQ4YQQ4ggwOOAn0OGEEOEEIOCEXDzgAAAAAAACwAAACMVAEAsLAHAEIAAAAARw4QQQ4YQQ4ggwOOAnAOGEEOEEIOCEXDzgAAAAAAAFwAAAC8VAEA0EwHALcBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA5IBDjhBDjBCDihCDiBCDhhCDhBBDghFDkAOOEEOMEIOKEIOIEIOGEIOEEEOCEwAAAAcVQEAME4HAJEKAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA24KDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAALAAAAGxVAQCAWAcA6gAAAABCDhBBDhhEDjCDA44CAnIOGEEOEEIOCEEOMAAAAAAATAAAAJxVAQBAWQcAFgcAAABBDhBCDhhCDiBCDihCDjBBDjhEDrABgweMBo0FjgSPA4YCA28FDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAABMAAAA7FUBABBgBwB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAAA8VgEAUK8HAEUCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAycCDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAPAAAAIxWAQBQsQcAIwEAAABCDhBCDhhCDiBBDihEDkCDBYwEjgOPAgMLAQ4oQQ4gQg4YQg4QQg4IQQ5AAAAAAEwAAADMVgEAQLIHAGwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA1MBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAPAAAABxXAQBgswcAygAAAABCDhBCDhhCDiBBDihEDkCDBYwEjgOPAgKyDihBDiBCDhhCDhBCDghBDkAAAAAAABQAAABcVwEA8LMHAJ4BAAAAAAAAAAAAADwAAAB0VwEAeLUHAHABAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDYgEOKEEOIEIOGEIOEEEOCAAAAAAAAABMAAAAtFcBAMhgBwDwAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgID/wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAABQAAAAEWAEAaGMHAFkBAAAAAAAAAAAAADwAAAAcWAEAQLYHAB4BAAAAQQ4QQg4YQQ4ggwSOA4YCAoMOGEIOEEEOCEUOIE0OGEIOEEEOCEEOIAAAAAAAAABMAAAAXFgBAHBkBwAaBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAKDB4wGjQWOBI8DhgIC+Q44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAgAAABQAAACsWAEA0LYHAAYAAAAAQQ4QAAAAADQAAADEWAEAyLYHAH8AAAAAQg4QQg4YQQ4ggwSOA48CXA4YQg4QQg4ISw4gAkoOGEIOEEIOCAAAFAAAAPxYAQDwaQcABQAAAAAAAAAAAAAAHAAAABRZAQDoaQcAKgAAAABBDhCDAmgOCAAAAAAAAAAUAAAANFkBAPhpBwAbAAAAAAAAAAAAAAAUAAAATFkBAABqBwABAAAAAAAAAAAAAAAUAAAAZFkBAPhpBwAFAAAAAAAAAAAAAABEAAAAfFkBAPBpBwCYAAAAAEIOEEIOGEEOIEQOMIMEjgOPAgJGDjhPDkBCDkhCDlBJDjBiDiBBDhhCDhBCDghBDjAAAAAAAAAUAAAAxFkBAEi2BwABAAAAAAAAAAAAAAAcAAAA3FkBAEC2BwAgAAAAAEEOEIMCWg4IAAAAAAAAABwAAAD8WQEAQLYHACgAAAAAQQ4QgwJiDggAAAAAAAAAFAAAABxaAQBQtgcACQAAAAAAAAAAAAAAFAAAADRaAQBItgcABQAAAAAAAAAAAAAAPAAAAExaAQBAtgcA7QAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAtcOKEIOIEIOGEIOEEIOCAAAAAAAAEwAAACMWgEA8LYHAGQDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7wBYMHjAaNBY4EjwOGAgMxAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7wBQAANAAAANxaAQAQugcAXwEAAABCDhBCDhhBDiCDBI4DjwIDSwEOGEIOEEIOCEUOIEEOGEIOEEIOCABMAAAAFFsBADi7BwCsAgAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CA4UCDihBDiBCDhhCDhBCDghBDjBLDihBDiBCDhhCDhBCDggAAAAAACQAAABkWwEAmL0HAG4AAAAAQQ4QgwJ6DghBDhBtDggAAAAAAAAAAAAUAAAAjFsBAOC9BwBAAAAAAAAAAAAAAABMAAAApFsBAAi+BwCXBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOsAuDB4wGjQWOBI8DhgIDPgYOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAsAADQAAAD0WwEAWMQHAKkAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICmQ4oQQ4gQg4YQg4QQg4IFAAAACxcAQDQxAcAOAAAAAAAAAAAAAAAJAAAAERcAQD4xAcAMAAAAABCDhBBDhhBDiCDA44CZA4YQQ4QQg4IABwAAABsXAEAAMUHAAIBAAAAQQ4QgwIDAAEOCAAAAAAAFAAAAIxcAQDwxQcAFQAAAAAAAAAAAAAAFAAAAKRcAQD4xQcAKQAAAAAAAAAAAAAAFAAAALxcAQAQxgcAWwAAAAAAAAAAAAAATAAAANRcAQBYxgcAgAEAAABBDhBCDhhCDiBCDihCDjBBDjhHDoAHgweMBo0FjgSPA4YCA18BDjhBDjBCDihCDiBCDhhCDhBBDghBDoAHAAA0AAAAJF0BAIjHBwBdAQAAAEIOEEIOGEEOIEQOMIMEjgOPAgLNDiBBDhhCDhBCDghBDjAAAAAAACQAAABcXQEAsMgHAKIAAAAAQg4QQQ4YQQ4ggwOOAgKaDhhBDhBCDghEAAAAhF0BADjJBwBCCwAAAEEOEEIOGEIOIEIOKEEOMEQOcIMGjAWOBI8DhgIDjwYOMEEOKEIOIEIOGEIOEEEOCEEOcAAAAAAsAAAAzF0BALBHCQDqAAAAAEIOEEEOGEEOIIMDjgICUA4YQQ4QQg4IQQ4gAAAAAAA0AAAA/F0BAHBICQBOAQAAAEIOEEIOGEEOIIMEjgOPAgKNDhhCDhBCDghFDiACrg4YQg4QQg4IACwAAAA0XgEAiEkJAIcBAAAAQg4QQg4YQQ4ggwSOA48CA30BDhhCDhBCDggAAAAAADwAAABkXgEAqNMHAA8BAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDAQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAApF4BAHjUBwAAAQAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICfw4oQg4gQg4YQg4QQQ4IQQ4wAAAAPAAAAOReAQA41QcAoAAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgJODihBDiBCDhhCDhBBDghBDjAAAAAAADwAAAAkXwEAmNUHAFsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDTQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAZF8BALjWBwAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAANAAAAKRfAQCI1wcA/wAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgLxDihBDiBCDhhCDhBBDgg0AAAA3F8BAFDYBwD/AAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAvEOKEEOIEIOGEIOEEEOCDwAAAAUYAEAGNkHABsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDDQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAVGABAPjZBwBOAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAz4BDihBDiBCDhhCDhBCDggAAAAAAAAATAAAAJRgAQAI2wcAwQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDqwEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAA8AAAA5GABAIjcBwAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAACRhAQBY3QcAGwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMNAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADQAAABkYQEAON4HAP8AAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIC8Q4oQQ4gQg4YQg4QQQ4IPAAAAJxhAQAA3wcAiAEAAABBDhBCDhhCDiBBDihEDmCDBY4EjwOGAgMJAQ4oQQ4gQg4YQg4QQQ4IQQ5gAAAAADwAAADcYQEAUOAHAA8BAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDAQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAHGIBACDhBwAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAANAAAAFxiAQDw4QcA/wAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgLxDihBDiBCDhhCDhBBDgg8AAAAlGIBALjiBwCQAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAkUOKEEOIEIOGEIOEEEOCEEOMAAAAAAAPAAAANRiAQAI4wcADwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMBAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAAAUYwEA2OMHADkBAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgMpAQ4oQg4gQg4YQg4QQQ4IAAAAAAA0AAAAVGMBANjkBwD/AAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAvEOKEEOIEIOGEIOEEEOCDQAAACMYwEAoOUHAP8AAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIC8Q4oQQ4gQg4YQg4QQQ4IPAAAAMRjAQBo5gcAAAIAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCA64BDihCDiBCDhhCDhBBDghBDjAAADQAAAAEZAEAKOgHAP8AAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIC8Q4oQQ4gQg4YQg4QQQ4IPAAAADxkAQDw6AcA8AAAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCAqQOKEIOIEIOGEIOEEEOCEEOMAAAADwAAAB8ZAEAoOkHALAAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgICYA4oQQ4gQg4YQg4QQQ4IQQ4wAAAAAABMAAAAvGQBABDqBwCPAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgN5AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAAAMZQEAUOsHAJ8BAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA4kBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAFxlAQCg7AcAxQMAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDXAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABMAAAArGUBACDwBwAVAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgO2Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAEwAAAD8ZQEA8PIHAI8BAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA3kBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAExmAQAw9AcABQMAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDqAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAAnGYBAPD2BwBVAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOYAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAADsZgEAAPkHAPEBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA3oBDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAADxnAQCw+gcAwQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDqwEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAA0AAAAjGcBADD8BwD7AAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAu0OKEEOIEIOGEIOEEEOCDwAAADEZwEA+PwHAEABAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgICzA4oQQ4gQg4YQg4QQQ4IQQ4wAAAAAAA8AAAABGgBAPj9BwBwAQAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIC+A4oQg4gQg4YQg4QQQ4IQQ4wAAAAPAAAAERoAQAo/wcAEAIAAABBDhBCDhhCDiBBDihEDkCDBY4EjwOGAgO8AQ4oQQ4gQg4YQg4QQQ4IQQ5AAAAAADwAAACEaAEA+AAIADsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDLQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAxGgBAPgBCAArAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAx0BDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAAARpAQDoAggAKwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMdAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAABEaQEA2AMIABsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDDQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAhGkBALgECAAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAAMRpAQCIBQgAGwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMNAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAAAEagEAaAYIAA8BAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDAQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAARGoBADgHCAAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAAIRqAQAICAgADwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMBAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAADEagEA2AgIABsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDDQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAABGsBALgJCABQAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAtwOKEEOIEIOGEIOEEEOCEEOMAAAAAAAPAAAAERrAQDICggASwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgM9AQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAACEawEA2AsIAEsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDPQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAxGsBAOgMCACQAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCfQ4oQQ4gQg4YQg4QQQ4IQQ4wAAAAAAAAPAAAAARsAQA4DQgAkAAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAn0OKEEOIEIOGEIOEEEOCEEOMAAAAAAAADwAAABEbAEAiA0IAJAAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgJ9DihBDiBCDhhCDhBBDghBDjAAAAAAAAA8AAAAhGwBANgNCACQAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCfQ4oQQ4gQg4YQg4QQQ4IQQ4wAAAAAAAAPAAAAMRsAQAoDggAkAAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAn0OKEEOIEIOGEIOEEEOCEEOMAAAAAAAADwAAAAEbQEAeA4IAJAAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgJ9DihBDiBCDhhCDhBBDghBDjAAAAAAAAA8AAAARG0BAMgOCAAbAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAw0BDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAAIRtAQCoDwgASwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgM9AQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAADEbQEAuBAIADsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDLQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAABG4BALgRCABwAQAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIC+A4oQg4gQg4YQg4QQQ4IQQ4wAAAAPAAAAERuAQDoEggAOwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMtAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAACEbgEA6BMIADsBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDLQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAxG4BAOgUCACwAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAzwBDihBDiBCDhhCDhBBDghBDjAAAAAAPAAAAARvAQBYFggAWwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgNNAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAABEbwEAeBcIAMABAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgNIAQ4oQg4gQg4YQg4QQQ4IQQ4wAAA8AAAAhG8BAPgYCAAbAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAw0BDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAAMRvAQDYGQgADwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMBAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAAAEcAEAqBoIAA8BAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDAQEOKEEOIEIOGEIOEEEOCAAAAAAAAABMAAAARHABAHgbCABqAAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwICSA4oQg4gQg4YQg4QQg4IRQ4wQw4oQg4gQg4YQg4QQg4IAAAAADQAAACUcAEAmBsIAE8AAAAAQg4QQQ4YQQ4ggwOOAnkOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAAPAAAAMxwAQCwGwgADwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMBAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAAAMcQEAgBwIAIgBAAAAQQ4QQg4YQg4gQQ4oRA5ggwWOBI8DhgIDCQEOKEEOIEIOGEIOEEEOCEEOYAAAAABMAAAATHEBANAdCACfAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOJAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAADwAAACccQEAIB8IAEkBAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgM5AQ4oQg4gQg4YQg4QQQ4IAAAAAAA8AAAA3HEBADAgCABbAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCA00BDihBDiBCDhhCDhBBDggAAAAAAAAAPAAAABxyAQBQIQgADwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgMBAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAADwAAABccgEAICIIAA8BAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDAQEOKEEOIEIOGEIOEEEOCAAAAAAAAAA8AAAAnHIBAPAiCAAPAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAwEBDihBDiBCDhhCDhBBDggAAAAAAAAANAAAANxyAQDAIwgA/wAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgLxDihBDiBCDhhCDhBBDgg8AAAAFHMBAIgkCAAwAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCArwOKEEOIEIOGEIOEEEOCEEOMAAAAAAATAAAAFRzAQB4JQgALQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDBwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAApHMBAFgnCADMvAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgID2rsOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAADQAAAD0cwEA2OMIAJYAAAAAQQ4QQg4YQQ4gRA5AgwSOA4YCAoQOIEEOGEIOEEEOCEEOQAAAAAAAJAAAACx0AQBA5AgADwEAAABBDhBEDjCDAgL9DhBBDghBDjAAAAAAAEQAAABUdAEAKOUIADQDAAAAQQ4QQg4YQg4gQg4oQQ4wRA5QgwaMBY4EjwOGAgMaAw4wQQ4oQg4gQg4YQg4QQQ4IQQ5QAAAAACwAAACcdAEAIOgIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAADMdAEAQOgIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAADQAAAD8dAEAYOgIAGsAAAAAQg4QQg4YQQ4ggwSOA48CAlUOGEIOEEIOCEUOIEMOGEIOEEIOCAAANAAAADR1AQCY6AgAawAAAABCDhBCDhhBDiCDBI4DjwICVQ4YQg4QQg4IRQ4gQw4YQg4QQg4IAAA0AAAAbHUBANDoCABrAAAAAEIOEEIOGEEOIIMEjgOPAgJVDhhCDhBCDghFDiBDDhhCDhBCDggAADQAAACkdQEACOkIAGsAAAAAQg4QQg4YQQ4ggwSOA48CAlUOGEIOEEIOCEUOIEMOGEIOEEIOCAAALAAAANx1AQBA6QgAUAAAAABCDhBCDhhBDiCDBI4DjwICQg4YQg4QQg4IAAAAAAAALAAAAAx2AQBg6QgAUAAAAABCDhBCDhhBDiCDBI4DjwICQg4YQg4QQg4IAAAAAAAALAAAADx2AQCA6QgAUAAAAABCDhBCDhhBDiCDBI4DjwICQg4YQg4QQg4IAAAAAAAATAAAAGx2AQCg6QgAgwEAAABBDhBCDhhCDiBCDihCDjBBDjhEDrABgweMBo0FjgSPA4YCA2UBDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAAAsAAAAvHYBAODqCACgAAAAAEIOEEEOGEQOMIMDjgICkA4YQQ4QQg4IQQ4wAAAAAAA0AAAA7HYBAFDrCAA3AAAAAEIOEEEOGEEOIIMDjgJhDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAAAkdwEAWOsIAD8AAAAAQg4QQQ4YQQ4ggwOOAmkOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAATAAAAFx3AQBg6wgAxQAAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgICpw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAA0AAAArHcBAODrCAA/AAAAAEIOEEEOGEEOIIMDjgJpDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAAEwAAADkdwEA6OsIAIQAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICUg4oQQ4gQg4YQg4QQg4IQQ4wVg4oQQ4gQg4YQg4QQg4IAAAAAAAAPAAAADR4AQAo7AgArgAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CApgOKEIOIEIOGEIOEEIOCAAAAAAAAEwAAAB0eAEAmOwIAE4CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAzgCDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAALAAAAMR4AQCY7ggAUAAAAABCDhBCDhhBDiCDBI4DjwICQg4YQg4QQg4IAAAAAAAANAAAAPR4AQC47ggASgAAAABCDhBCDhhBDiCDBI4DjwJ0DhhCDhBCDghFDiBDDhhCDhBCDggAAAA0AAAALHkBANDuCABKAAAAAEIOEEIOGEEOIIMEjgOPAnQOGEIOEEIOCEUOIEMOGEIOEEIOCAAAADQAAABkeQEA6O4IAIsAAAAAQg4QQg4YQQ4ggwSOA48CAmUOGEIOEEIOCEEOIFMOGEIOEEIOCAAALAAAAJx5AQBA7wgAUAAAAABCDhBCDhhBDiCDBI4DjwICQg4YQg4QQg4IAAAAAAAAPAAAAMx5AQBg7wgA1gAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAsQOKEIOIEIOGEIOEEIOCAAAAAAAACwAAAAMegEAAPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAAA8egEAIPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAABsegEAQPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAACcegEAYPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAADMegEAgPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAAD8egEAoPAIAFAAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAAEwAAAAsewEAwPAIAOUAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAscOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAAlAAAAHx7AQBg8QgAKwEAAABBDhCDAkkOCEEOEAJVDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBSDghFDhBIDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDghFDhBEDggkAAAAFHwBAPjxCABDAAAAAEIOEEEOGEEOIIMDjgJ7DhhBDhBCDggAJAAAADx8AQAg8ggAPQAAAABCDhBBDhhBDiCDA44CdQ4YQQ4QQg4IADQAAABkfAEAOPIIADcAAAAAQg4QQQ4YQQ4ggwOOAmEOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAANAAAAJx8AQBA8ggAlgAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgKGDihBDiBCDhhCDhBCDggsAAAA1HwBAKjyCACgAAAAAEIOEEEOGEQOMIMDjgICkA4YQQ4QQg4IQQ4wAAAAAAA0AAAABH0BABjzCAA3AAAAAEIOEEEOGEEOIIMDjgJhDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAAA8fQEAIPMIAD8AAAAAQg4QQQ4YQQ4ggwOOAmkOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAALAAAAHR9AQAo8wgAXAAAAABCDhBCDhhBDiCDBI4DjwICUg4YQg4QQg4IAAAAAAAANAAAAKR9AQBY8wgAPwAAAABCDhBBDhhBDiCDA44CaQ4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAA3H0BAGDzCAA8AAAAAEIOEEEOGEEOIIMDjgJmDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAAEwAAAAUfgEAaPMIAJQBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA34BDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAANAAAAGR+AQC49AgAVwAAAABCDhBBDhhBDiCDA44CAkEOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAA0AAAAnH4BAOD0CAA4AAAAAEIOEEEOGEEOIIMDjgJiDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAADUfgEA6PQIAIEAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICcQ4oQQ4gQg4YQg4QQg4IHAAAAAx/AQBA9QgAZQAAAABBDhCDAgJfDggAAAAAAAAcAAAALH8BAJD1CABlAAAAAEEOEIMCAl8OCAAAAAAAACwAAABMfwEA4PUIAE0AAAAAQg4QQQ4YRA5AgwOOAn0OGEEOEEIOCEEOQAAAAAAAADQAAAB8fwEAAPYIALUAAAAAQg4QQg4YQQ4gRA4wgwSOA48CAqEOIEEOGEIOEEIOCEEOMAAAAAAANAAAALR/AQCI9ggANAAAAABCDhBBDhhBDiCDA44CXg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAA7H8BAJD2CAABAQAAAEIOEEIOGEEOIEQOMIMEjgOPAgLtDiBBDhhCDhBCDghBDjAAAAAAACwAAAAkgAEAaPcIAGgAAAAAQQ4QQg4YQQ4ggwSOA4YCAmAOGEIOEEEOCAAAAAAAADQAAABUgAEAqPcIAEsBAAAAQg4QQg4YQQ4gRA4wgwSOA48CAzcBDiBBDhhCDhBCDghBDjAAAAAAPAAAAIyAAQDA+AgA7gQAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCAkMOKEIOIEIOGEIOEEEOCEEOMAAAADQAAADMgAEAcP0IAHQAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICZA4oQQ4gQg4YQg4QQg4INAAAAASBAQC4/QgAdAAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJkDihBDiBCDhhCDhBCDgg0AAAAPIEBAAD+CAB0AAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAmQOKEEOIEIOGEIOEEIOCDwAAAB0gQEASP4IAEEBAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgMrAQ4oQg4gQg4YQg4QQg4IQQ4wAAA8AAAAtIEBAFj/CABBAQAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwIDKwEOKEIOIEIOGEIOEEIOCEEOMAAANAAAAPSBAQBoAAkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAALIIBAIAACQBEAAAAAEIOEEEOGEEOIIMDjgJuDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAABkggEAmAAJAEQAAAAAQg4QQQ4YQQ4ggwOOAm4OGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAANAAAAJyCAQCwAAkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA8AAAA1IIBAMgACQABAQAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwIC6w4oQg4gQg4YQg4QQg4IQQ4wAAAANAAAABSDAQCYAQkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAATIMBALABCQBEAAAAAEIOEEEOGEEOIIMDjgJuDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAAEQAAACEgwEAyAEJABkCAAAAQg4QQg4YQg4gQg4oQQ4wRA5QgwaMBY0EjgOPAgP+AQ4wQQ4oQg4gQg4YQg4QQg4IQQ5QAAAAADwAAADMgwEAoAMJALEBAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgObAQ4oQg4gQg4YQg4QQg4IQQ4wAAA8AAAADIQBACAFCQABAgAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwID6wEOKEIOIEIOGEIOEEIOCEEOMAAANAAAAEyEAQDwBgkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA8AAAAhIQBAAgHCQAkAQAAAEEOEEIOGEIOIEEOKEQOUIMFjgSPA4YCAw4BDihBDiBCDhhCDhBBDghBDlAAAAAANAAAAMSEAQD4BwkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAA/IQBABAICQBEAAAAAEIOEEEOGEEOIIMDjgJuDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAAA0hQEAKAgJAEQAAAAAQg4QQQ4YQQ4ggwOOAm4OGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAANAAAAGyFAQBACAkARAAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAApIUBAFgICQBEAAAAAEIOEEEOGEEOIIMDjgJuDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAADchQEAcAgJAKQAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIClA4oQQ4gQg4YQg4QQg4ITAAAABSGAQDoCAkAqQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDkAIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAA0AAAAZIYBAEgLCQBEAAAAAEIOEEEOGEEOIIMDjgJuDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAAEQAAACchgEAYAsJAOUBAAAAQg4QQg4YQg4gQg4oQQ4wRA5QgwaMBY0EjgOPAgPKAQ4wQQ4oQg4gQg4YQg4QQg4IQQ5QAAAAADQAAADkhgEACA0JAEQAAAAAQg4QQQ4YQQ4ggwOOAm4OGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAATAAAAByHAQAgDQkAxwAAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgICqQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAA8AAAAbIcBAKANCQDxAAAAAEEOEEIOGEIOIEEOKEQOUIMFjgSPA4YCAtsOKEEOIEIOGEIOEEEOCEEOUAAAAAAAlAAAAKyHAQBgDgkA1wAAAABBDhCDAl4OCEEOEEgOCEUOEF4OCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEEEOCEUOEFwOCAAAAAAAAAA0AAAARIgBAKgOCQA6AAAAAEIOEEEOGEEOIIMDjgJkDhhBDhBCDghFDiBGDhhBDhBCDggAAAAAADQAAAB8iAEAsA4JADoAAAAAQg4QQQ4YQQ4ggwOOAmQOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAANAAAALSIAQC4DgkAXwAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJPDihBDiBCDhhCDhBCDgg0AAAA7IgBAOAOCQBfAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAk8OKEEOIEIOGEIOEEIOCDQAAAAkiQEACA8JAF8AAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICTw4oQQ4gQg4YQg4QQg4IHAAAAFyJAQAwDwkAOgAAAABBDhB0DghBDhBDDggAAAA0AAAAfIkBAFAPCQBfAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAk8OKEEOIEIOGEIOEEIOCDQAAAC0iQEAeA8JAF8AAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICTw4oQQ4gQg4YQg4QQg4INAAAAOyJAQCgDwkAXwAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJPDihBDiBCDhhCDhBCDgg0AAAAJIoBAMgPCQBfAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAk8OKEEOIEIOGEIOEEIOCDQAAABcigEA8A8JADoAAAAAQg4QQQ4YQQ4ggwOOAmQOGEEOEEIOCEUOIEYOGEEOEEIOCAAAAAAANAAAAJSKAQD4DwkAOgAAAABCDhBBDhhBDiCDA44CZA4YQQ4QQg4IRQ4gRg4YQQ4QQg4IAAAAAAA0AAAAzIoBAAAQCQBzAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAmMOKEEOIEIOGEIOEEIOCDQAAAAEiwEASBAJAF8AAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICTw4oQQ4gQg4YQg4QQg4IPAAAADyLAQBwEAkAYQEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CA0sBDihCDiBCDhhCDhBCDghBDjAAADQAAAB8iwEAoBEJAF8AAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICTw4oQQ4gQg4YQg4QQg4INAAAALSLAQDIEQkAXwAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJPDihBDiBCDhhCDhBCDgg0AAAA7IsBAPARCQBzAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAmMOKEEOIEIOGEIOEEIOCDQAAAAkjAEAOBIJAHMAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICYw4oQQ4gQg4YQg4QQg4ITAAAAFyMAQDwHAkAgQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDJQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAsAAAArIwBADAeCQDFAAAAAEIOEEIOGEEOIIMEjgOPAgK7DhhCDhBCDggAAAAAAAAsAAAA3IwBANAeCQDFAAAAAEIOEEIOGEEOIIMEjgOPAgK7DhhCDhBCDggAAAAAAAAsAAAADI0BAHAfCQDFAAAAAEIOEEIOGEEOIIMEjgOPAgK7DhhCDhBCDggAAAAAAABMAAAAPI0BAKARCQBNAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgM3AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAACMjQEAwB8JALAAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIClA4oQQ4gQg4YQg4QQg4IQQ4wDihBDiBCDhhCDhBCDggAAAAAAAAAPAAAANyNAQAgIAkArwAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAp0OKEIOIEIOGEIOEEIOCAAAAAAAAEwAAAAcjgEAEBIJADgBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAyIBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAGyOAQAAEwkACQQAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA+QDDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAABMAAAAvI4BAPAfCQBwAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgNKAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAEwAAAAMjwEAECEJALwHAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAYMHjAaNBY4EjwOGAgORBw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAQAALAAAAFyPAQCAKAkAZQAAAABCDhBBDhhEDkCDA44CAlUOGEEOEEIOCEEOQAAAAAAARAAAAIyPAQDAKAkARgEAAABCDhBCDhhCDiBCDihBDjBEDmCDBowFjQSOA48CAyIBDjBBDihCDiBCDhhCDhBCDghBDmAAAAAATAAAANSPAQDIKQkAwAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDlgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAsAAAAJJABADgrCQDqAAAAAEIOEEEOGEEOIIMDjgICUA4YQQ4QQg4IQQ4gAAAAAAA0AAAAVJABAPgrCQBOAQAAAEIOEEIOGEEOIIMEjgOPAgKNDhhCDhBCDghFDiACrg4YQg4QQg4IADwAAACMkAEAEC0JAAMCAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgPxAQ4oQg4gQg4YQg4QQg4IAAAAAAA0AAAAzJABAOAuCQDjAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAtMOKEEOIEIOGEIOEEIOCCwAAAAEkQEAmC8JADMAAAAARw4QQQ4YQQ4ggwOOAmEOGEEOEEIOCEXDzgAAAAAAABQAAAA0kQEAqC8JAAgAAAAAAAAAAAAAAEwAAABMkQEAoC8JAJUHAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAuoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAATAAAAJyRAQDwNgkALwQAAABBDhBCDhhCDiBCDihCDjBBDjhHDsABgweMBo0FjgSPA4YCAwQEDjhBDjBCDihCDiBCDhhCDhBBDghBDsABAAAsAAAA7JEBANA6CQBaAAAAAEIOEEIOGEEOIIMEjgOPAgJQDhhCDhBCDggAAAAAAABEAAAAHJIBAEBOCQAoAQAAAEIOEEIOGEIOIEIOKEEOMEQOUIMGjAWNBI4DjwIDBAEOMEEOKEIOIEIOGEIOEEIOCEEOUAAAAAAsAAAAZJIBALg6CQDsAAAAAEIOEEEOGEQOQIMDjgIC3A4YQQ4QQg4IQQ5AAAAAAABMAAAAlJIBAHg7CQA3CgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOsAODB4wGjQWOBI8DhgIDFgoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAMAAEwAAADkkgEAaEUJAAQIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7AAoMHjAaNBY4EjwOGAgOrBw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7AAgAANAAAADSTAQBYTgkAdgAAAABCDhBCDhhBDiCDBI4DjwICXA4YQg4QQg4IQQ4gRw4YQg4QQg4IAAAUAAAAbJMBAKBOCQAmAAAAAAAAAAAAAAA0AAAAhJMBALhOCQB8AAAAAEIOEEIOGEEOIIMEjgOPAgJoDhhCDhBCDghFDiBBDhhCDhBCDggAADQAAAC8kwEAAE8JAIMAAAAAQg4QQg4YQQ4gRA5QgwSOA48CAm8OIEEOGEIOEEIOCEEOUAAAAAAAFAAAAPSTAQBYTwkADwAAAAAAAAAAAAAATAAAAAyUAQBQTwkAHwEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDCQEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAkAAAAXJQBACBQCQD2AAAAAEEOEEQOYIMCAuoOEEEOCEEOYAAAAAAALAAAAISUAQD4UAkA7wAAAABCDhBCDhhBDiCDBI4DjwIC0g4YQg4QQg4IQQ4gAAAAdAAAALSUAQC4UQkALgEAAABCDhBBDhhBDiCDA44CcQ4YQQ4QQg4IRQ4gTg4YQQ4QQg4IRQ4gRw4YQQ4QQg4IRQ4gRw4YQQ4QQg4IRQ4gAnYOGEEOEEIOCEEOIEcOGEEOEEIOCEUOIEcOGEEOEEIOCEUOIAAAAAAAFAAAACyVAQBwUgkABwAAAAAAAAAAAAAAJAAAAESVAQBoUgkAsQAAAABBDhCDAgKHDghBDhBTDghBDhAAAAAAACQAAABslQEAAFMJAM0AAAAAQQ4QgwICow4IQQ4QUw4IQQ4QAAAAAABMAAAAlJUBAKhTCQAPBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgOqAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAAEwAAADklQEAaFcJAKEDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAsQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAATAAAADSWAQDIWgkArwIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICwQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAAhJYBAChdCQAgCgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgNhCQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAADQAAADUlgEA+GYJAJYAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIChg4oQQ4gQg4YQg4QQg4ITAAAAAyXAQBgZwkAvgEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDZQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAA0AAAAXJcBANBoCQBiAQAAAEEOEEIOGEIOIEEOKIMFjgSPA4YCA1YBDiBCDhhCDhBBDggAAAAAADwAAACUlwEACGoJANQBAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgNDAQ4oQg4gQg4YQg4QQQ4IQQ4wAAA0AAAA1JcBAKhrCQCSAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAoIOKEEOIEIOGEIOEEIOCBwAAAAMmAEAEGwJACQAAAAAQQ4QgwJeDggAAAAAAAAAHAAAACyYAQAgbAkALAAAAABBDhCDAmYOCAAAAAAAAAAUAAAATJgBADBsCQAJAAAAAAAAAAAAAAAUAAAAZJgBAChsCQAFAAAAAAAAAAAAAABkAAAAfJgBACBsCQD7AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgO1AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5AVA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAACQAAADkmAEAuG0JAGIAAAAAQQ4QRA4wgwICVg4QQQ4IQQ4wAAAAAAA0AAAADJkBAABuCQAmAQAAAEEOEEIOGEEOIEQOUIMEjgOGAgJvDiBBDhhCDhBBDghBDlAAAAAAAEwAAABEmQEA+G4JAAkCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6QAYMHjAaNBY4EjwOGAgPjAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6QAQAAJAAAAJSZAQC4cAkAngAAAABBDhBEDkCDAgKSDhBBDghBDkAAAAAAAEwAAAC8mQEAMHEJABQDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAYMHjAaNBY4EjwOGAgMGAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAQAAPAAAAAyaAQBAhgkAJwEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgK/DihBDiBCDhhCDhBBDghBDjAAAAAAAEwAAABMmgEAMIcJAC4DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA1gBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAPAAAAJyaAQAQigkAuAAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAm8OKEEOIEIOGEIOEEIOCEEOMAAAAAAAAEwAAADcmgEAMHMJAHAGAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6QA4MHjAaNBY4EjwOGAgOqBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6QAwAATAAAACybAQBAigkAQAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDIgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAA8AAAAfJsBADCLCQCVAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAn0OKEEOIEIOGEIOEEIOCEEOMAAAAAAARAAAALybAQDAeAkALAIAAABCDhBCDhhCDiBCDihBDjBHDsABgwaMBY0EjgOPAgOIAQ4wQQ4oQg4gQg4YQg4QQg4IQQ7AAQAANAAAAAScAQCoegkAHAEAAABCDhBCDhhBDiBEDkCDBI4DjwIClQ4gQQ4YQg4QQg4IQQ5AAAAAAAAkAAAAPJwBABCLCQBXAAAAAEIOEEEOGEEOIIMDjgICTw4YQQ4QQg4ILAAAAGScAQBoewkA0AAAAABCDhBBDhhEDkCDA44CAk0OGEEOEEIOCEEOQAAAAAAATAAAAJScAQAIfAkAZgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDrABgweMBo0FjgSPA4YCA/8BDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAAAkAAAA5JwBACh+CQBIAAAAAEEOEEQOIIMCfA4QQQ4IQQ4gAAAAAAAAPAAAAAydAQBQfgkAcwAAAABCDhBCDhhCDiBBDihEDlCDBYwEjgOPAgJbDihBDiBCDhhCDhBCDghBDlAAAAAAADQAAABMnQEAkH4JAHgAAAAAQg4QQg4YQQ4gRA5ggwSOA48CAmQOIEEOGEIOEEIOCEEOYAAAAAAANAAAAISdAQDYfgkAqQAAAABCDhBCDhhBDiBEDmCDBI4DjwIClQ4gQQ4YQg4QQg4IQQ5gAAAAAABEAAAAvJ0BAPCJCQAoAQAAAEIOEEIOGEIOIEIOKEEOMEQOUIMGjAWNBI4DjwIDBAEOMEEOKEIOIEIOGEIOEEIOCEEOUAAAAAA0AAAABJ4BAAh/CQD4AAAAAEIOEEIOGEEOIEcOoAGDBI4DjwIC4Q4gQQ4YQg4QQg4IQQ6gAQAAAOQAAAA8ngEAoIoJALcDAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAmgOKEIOIEIOGEIOEEEOCEUOMG4OKEIOIEIOGEIOEEEOCEUOMFAOKEIOIEIOGEIOEEEOCEUOMALCDihCDiBCDhhCDhBBDghFDjACeQ4oQg4gQg4YQg4QQQ4IRQ4wWw4oQg4gQg4YQg4QQQ4IRQ4wSA4oQg4gQg4YQg4QQQ4IRQ4wAvEOKEIOIEIOGEIOEEEOCEEOMEgOKEIOIEIOGEIOEEEOCEUOMEEOKEIOIEIOGEIOEEEOCEUOMAAAAAAAAABMAAAAJJ8BAHiNCQB8AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLgDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAEwAAAB0nwEAqI8JALYBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAoYOOEEOMEIOKEIOIEIOGEIOEEEOCEUOUAAAAAAATAAAAMSfAQAYkQkAxwEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgICjg44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5QAAAAAABMAAAAFKABAJiSCQC2AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgJ6DjhBDjBCDihCDiBCDhhCDhBBDghFDlAAAAAAAEwAAABkoAEACJQJAIACAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAtoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAATAAAALSgAQA4lgkAbgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgICxw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAABMAAAABKEBAFiYCQCHAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgLeDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAAEwAAABUoQEAmJoJAHQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAssOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAAPAAAAKShAQDInAkA1QEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CArcOKEIOIEIOGEIOEEIOCEEOMAAAADQAAADkoQEAaJ4JAJYAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIChg4oQQ4gQg4YQg4QQg4ITAAAAByiAQDQngkAswEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDGQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAbKIBAECgCQC9AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgMKAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAAEwAAAC8ogEAsKEJAJQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA3YCDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAAyjAQAApAkAiAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDcgIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABEAAAAXKMBAECmCQBEAwAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAgMwAw4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAUAAAApKMBAEipCQB4AgAAAAAAAAAAAAAsAAAAvKMBALCrCQAmBgAAAEIOEEIOGEEOIIMEjgOPAgMcBg4YQg4QQg4IAAAAAAAUAAAA7KMBACB6CQAlAAAAAAAAAAAAAAAcAAAABKQBADh6CQAuAAAAAEEOEIMCaA4IAAAAAAAAAEQAAAAkpAEASHoJAOcAAAAAQg4QQg4YQg4gQg4oQQ4wRw6wAYMGjAWNBI4DjwICyA4wQQ4oQg4gQg4YQg4QQg4IQQ6wAQAAAEQAAABspAEA8HoJAOcAAAAAQg4QQg4YQg4gQg4oQQ4wRw6wAYMGjAWNBI4DjwICyA4wQQ4oQg4gQg4YQg4QQg4IQQ6wAQAAADQAAAC0pAEA6LAJAJcBAAAAQg4QQg4YQQ4gRA5wgwSOA48CA2UBDiBBDhhCDhBCDghBDnAAAAAATAAAAOykAQBQsgkAygEAAABBDhCDAmUOCEUOEEsOCEUOEEQOCEUOEAJ1DghBDhACXg4IQQ4QAlQOCEEOEEQOCEUOEFAOCEEOEAAAAAAAAABMAAAAPKUBANCzCQCYAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDQwMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAAEwAAACMpQEAILcJABADAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCApAOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAATAAAANylAQDguQkAQgIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICjg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAALKYBAOC7CQBMCAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgMyBw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAADQAAAB8pgEA4MMJACkBAAAAQQ4QQg4YQg4gQQ4ogwWOBI8DhgIDHQEOIEIOGEIOEEEOCAAAAAAAFAAAALSmAQDYxAkAFAAAAAAAAAAAAAAAPAAAAMymAQDgxAkAkgAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAncOKEIOIEIOGEIOEEIOCEEOMAAAADQAAAAMpwEAQMUJAEQAAAAAQg4QQQ4YQQ4ggwOOAm0OGEEOEEIOCEEOIEcOGEEOEEIOCAAAAAAANAAAAESnAQBYxQkA7AAAAABCDhBBDhhBDiCDA44CAm8OGEEOEEIOCEEOIAJtDhhBDhBCDggAAAA8AAAAfKcBABDGCQATAQAAAEEOEEIOGEIOIEEOKEQOQIMFjgSPA4YCAuMOKEEOIEIOGEIOEEEOCEEOQAAAAAAAJAAAALynAQDwxgkAUgAAAABBDhBBDhhBDiCDA4YCAkwOGEEOEEEOCDQAAADkpwEAKMcJAAUBAAAAQg4QQg4YQQ4ggwSOA48CAvEOGEIOEEIOCEUOIEEOGEIOEEIOCAAAHAAAAByoAQAAyAkAEgAAAABBDhCDAkwOCAAAAAAAAABEAAAAPKgBAADICQDrBAAAAEEOEEIOGEIOIEIOKEEOMEcOkAKDBowFjgSPA4YCAowOMEEOKEIOIEIOGEIOEEEOCEEOkAIAAABMAAAAhKgBAKjMCQCCAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO8AGDB4wGjQWOBI8DhgIDVAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEO8AEAACwAAADUqAEA+NIJABABAAAAQg4QQg4YQQ4ggwSOA48CAqMOGEIOEEIOCEEOIAAAAEQAAAAEqQEAuM8JAEMBAAAAQg4QQg4YQg4gQg4oQQ4wRA6gAYMGjAWNBI4DjwIDJwEOMEEOKEIOIEIOGEIOEEIOCEEOoAEAACwAAABMqQEAwNAJAFsAAAAAQQ4QQg4YQQ4ggwSOA4YCAlMOGEIOEEEOCAAAAAAAAEwAAAB8qQEA8NAJAFUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAzcBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAATAAAAMypAQAQ0wkADAQAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgID7gMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAA0AAAAHKoBANDWCQA8AQAAAEIOEEIOGEEOIIMEjgOPAgMoAQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IAEwAAABUqgEA2NcJAJMDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA3UDDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAANAAAAKSqAQAo2wkA8AEAAABCDhBCDhhBDiCDBI4DjwIDrgEOGEIOEEIOCEEOIAAAAAAAAAAAAAAkAAAA3KoBAODcCQAMAQAAAEEOEEQOYIMCAwABDhBBDghBDmAAAAAANAAAAASrAQDI3QkADQIAAABCDhBCDhhBDiBHDoACgwSOA48CA/YBDiBBDhhCDhBCDghBDoACAABMAAAAPKsBAKDfCQAJAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgID4wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAADQAAACMqwEAYOEJAEYBAAAAQQ4QQg4YQQ4gRA5wgwSOA4YCAzQBDiBBDhhCDhBBDghBDnAAAAAARAAAAMSrAQB44gkApAEAAABCDhBCDhhCDiBCDihBDjBEDoABgwaMBY0EjgOPAgMsAQ4wQQ4oQg4gQg4YQg4QQg4IQQ6AAQAAHAAAAAysAQDg4wkANgAAAABBDhCDAnQOCAAAAAAAAAAcAAAALKwBAADkCQAOAAAAAEEOEIMCTA4IAAAAAAAAAEwAAABMrAEA8OMJADgEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAYMHjAaNBY4EjwOGAgMNBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAQAATAAAAJysAQDg5wkATgQAAABBDhBCDhhCDiBCDihCDjBBDjhHDoACgweMBo0FjgSPA4YCAygEDjhBDjBCDihCDiBCDhhCDhBBDghBDoACAABMAAAA7KwBAODrCQDABAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOoAKDB4wGjQWOBI8DhgIDhQQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAIAAEwAAAA8rQEAUPAJAIwCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA/QBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAIytAQCQ8gkAewEAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDXQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAAAUAAAA3K0BAMDzCQAPAAAAAAAAAAAAAAAsAAAA9K0BALjzCQDwAAAAAEIOEEIOGEEOIIMEjgOPAgLfDhhCDhBCDghBDiAAAAA0AAAAJK4BAHj0CQBLAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48Cew4oQQ4gQg4YQg4QQg4IAEQAAABcrgEAkPQJAF8BAAAAQQ4QQg4YQg4gQg4oQQ4wRA5AgwaMBY4EjwOGAgLfDjBBDihCDiBCDhhCDhBBDghBDkAAAAAAACQAAACkrgEAqPUJAK0AAAAAQQ4QRw6wAYMCAp4OEEEOCEEOsAEAAAA8AAAAzK4BADD2CQCxAQAAAEIOEEIOGEIOIEEOKEQOYIMFjASOA48CArYOKEEOIEIOGEIOEEIOCEEOYAAAAAAAFAAAAAyvAQCw9wkAQgAAAAAAAAAAAAAAFAAAACSvAQDo9wkATAAAAAAAAAAAAAAANAAAADyvAQAg+AkACwEAAABCDhBCDhhBDiBEDnCDBI4DjwIC5A4gQQ4YQg4QQg4IQQ5wAAAAAABMAAAAdK8BAPj4CQC8AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDowEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAEwAAADErwEAaPoJANAAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCArIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAALAAAABSwAQDo+gkA3AAAAABCDhBBDhhBDiCDA44CArQOGEEOEEIOCEEOIAAAAAAAFAAAAESwAQCY+wkAOwAAAAAAAAAAAAAAZAAAAFywAQDA+wkAmwIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDbwIOOEEOMEIOKEIOIEIOGEIOEEEOCEUOUEQOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAxLABAPj9CQCFAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDZwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAACQAAAAUsQEAOAAKAJQAAAAAQQ4QgwJ6DghBDhBFDghFDhAAAAAAAABkAAAAPLEBALAACgABAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLLDjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAEwAAACksQEAWAEKADABAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAxcBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAFAAAAPSxAQA4AgoAGAAAAAAAAAAAAAAAFAAAAAyyAQBAAgoADgAAAABBDhBIDggALAAAACSyAQA4AgoAPAAAAABBDhBCDhhBDiCDBI4DhgJ0DhhCDhBBDggAAAAAAAAALAAAAFSyAQBIAgoAQwAAAABBDhBCDhhBDiCDBI4DhgJ7DhhCDhBBDggAAAAAAAAAFAAAAISyAQBoAgoAAQAAAAAAAAAAAAAAFAAAAJyyAQBgAgoANgAAAAAAAAAAAAAAJAAAALSyAQCIAgoA5QAAAABBDhBEDkCDAgLZDhBBDghBDkAAAAAAAEwAAADcsgEAUAMKAOkIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7AA4MHjAaNBY4EjwOGAgO+CA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7AAwAAHAAAACyzAQDwCwoA6AAAAABEDkAC3g4IQQ5AAAAAAAAcAAAATLMBAMAMCgDAAAAAAEQOMAK2DghBDjAAAAAAABQAAABsswEAYA0KAGMAAAAAAAAAAAAAAEwAAACEswEAuA0KAFkCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAoMHjAaNBY4EjwOGAgM4Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAAPAAAANSzAQA4TQoA5QAAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCAtEOKEIOIEIOGEIOEEEOCAAAAAAAACwAAAAUtAEA6E0KAH4AAAAAQg4QQg4YQQ4ggwSOA48CAnAOGEIOEEIOCAAAAAAAADwAAABEtAEAOE4KAKAAAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKGDihCDiBCDhhCDhBCDghBDjAAAAAsAAAAhLQBABgPCgCwAAAAAEIOEEEOGEQOUIMDjgICoA4YQQ4QQg4IQQ5QAAAAAAAkAAAAtLQBAJgPCgB6AAAAAEEOEEQOQIMCAm4OEEEOCEEOQAAAAAAANAAAANy0AQDwDwoAIAEAAABCDhBBDhhBDiCDA44CAuYOGEEOEEIOCEEOIGoOGEEOEEIOCAAAAAAUAAAAFLUBANgQCgATAAAAAAAAAAAAAAAsAAAALLUBAOAQCgCVAAAAAEEOEEEOGEQOUIMDhgIChw4YQQ4QQQ4IQQ5QAAAAAAAUAAAAXLUBAFARCgARAAAAAAAAAAAAAABMAAAAdLUBAFgRCgBMAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDKQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAADQAAADEtQEAWBMKAKAAAAAAQQ4QQg4YQQ4gRA5QgwSOA4YCAo4OIEEOGEIOEEEOCEEOUAAAAAAAJAAAAPy1AQDAEwoAfQAAAABBDhBEDkCDAgJxDhBBDghBDkAAAAAAACQAAAAktgEAGBQKAH0AAAAAQQ4QRA5AgwICcQ4QQQ4IQQ5AAAAAAAAUAAAATLYBAHAUCgAbAAAAAAAAAAAAAABMAAAAZLYBAHgUCgAUAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAODB4wGjQWOBI8DhgID8wIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAMAABQAAAC0tgEASBcKABgAAAAAAAAAAAAAACQAAADMtgEAUBcKAGEAAAAAQQ4QRA4ggwICVQ4QQQ4IQQ4gAAAAAAAkAAAA9LYBAJgXCgBeAAAAAEEOEEQOIIMCAlIOEEEOCEEOIAAAAAAATAAAABy3AQDQFwoAvAEAAABBDhBCDhhCDiBCDihCDjBBDjhHDoADgweMBo0FjgSPA4YCA5sBDjhBDjBCDihCDiBCDhhCDhBBDghBDoADAAA0AAAAbLcBAEAZCgBwAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAmIOKEEOIEIOGEIOEEEOCJwAAACktwEAeBkKACsNAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QA4MHjAaNBY4EjwOGAgNDBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAwNKAg7YA0EO4ANJDtADAygBDtgDQQ7gA0kO0AMCQw7YA0EO4ANJDtADA1gBDtgDVw7gA0kO0AMCdA7YA1IO4ANJDtADApEO2ANSDuADSQ7QAwBMAAAARLgBAAgmCgA0BAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgIDEwQOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAAEwAAACUuAEA+CkKADsDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7AA4MHjAaNBY4EjwOGAgMaAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7AAwAATAAAAOS4AQDoLAoAPwEAAABBDhBCDhhCDiBCDihCDjBBDjhHDvACgweMBo0FjgSPA4YCAx4BDjhBDjBCDihCDiBCDhhCDhBBDghBDvACAAA0AAAANLkBANgtCgDKAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAroOKEEOIEIOGEIOEEIOCEwAAABsuQEAcC4KAEUCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMnAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAARAAAALy5AQBwMAoAwwAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICrQ44QQ4wQg4oQg4gQg4YQg4QQQ4IFAAAAAS6AQD4MAoABwAAAAAAAAAAAAAAFAAAABy6AQDwMAoAHgAAAABGDhBVDggAFAAAADS6AQD4MAoADwAAAAAAAAAAAAAAFAAAAEy6AQDwMAoAFQAAAAAAAAAAAAAAFAAAAGS6AQD4MAoAFQAAAAAAAAAAAAAAFAAAAHy6AQAAMQoAFQAAAAAAAAAAAAAATAAAAJS6AQAIMQoAZAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCAzMBDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAABMAAAA5LoBACgyCgBrAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDOgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAACQAAAA0uwEASDMKAGAAAAAAQQ4QRA4ggwICVA4QQQ4IQQ4gAAAAAAAkAAAAXLsBAIAzCgBgAAAAAEEOEEQOIIMCAlQOEEEOCEEOIAAAAAAAJAAAAIS7AQC4MwoAXgAAAABBDhBEDiCDAgJSDhBBDghBDiAAAAAAACQAAACsuwEA8DMKAF8AAAAAQQ4QRA4ggwICUw4QQQ4IQQ4gAAAAAABMAAAA1LsBACg0CgBkAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDMwEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAAEwAAAAkvAEASDUKAGsBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgM6AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAFAAAAHS8AQBoNgoABwAAAAAAAAAAAAAATAAAAIy8AQBgNgoAJAIAAABBDhBCDhhCDiBCDihCDjBBDjhHDqACgweMBo0FjgSPA4YCA+UBDjhBDjBCDihCDiBCDhhCDhBBDghBDqACAAAUAAAA3LwBAEA4CgANAAAAAAAAAAAAAAAkAAAA9LwBADg4CgBlAAAAAEEOEEQOIIMCAlkOEEEOCEEOIAAAAAAAJAAAABy9AQCAOAoAZQAAAABBDhBEDiCDAgJZDhBBDghBDiAAAAAAACQAAABEvQEAyDgKAGUAAAAAQQ4QRA4ggwICWQ4QQQ4IQQ4gAAAAAAAsAAAAbL0BABA5CgBvAAAAAEIOEEEOGEQOMIMDjgICXw4YQQ4QQg4IQQ4wAAAAAAAkAAAAnL0BAFA5CgBlAAAAAEEOEEQOIIMCAlkOEEEOCEEOIAAAAAAAJAAAAMS9AQCYOQoAZQAAAABBDhBEDiCDAgJZDhBBDghBDiAAAAAAACQAAADsvQEA4DkKAGUAAAAAQQ4QRA4ggwICWQ4QQQ4IQQ4gAAAAAAAsAAAAFL4BACg6CgBuAAAAAEIOEEEOGEQOMIMDjgICXg4YQQ4QQg4IQQ4wAAAAAAAkAAAARL4BAGg6CgBjAAAAAEEOEEQOIIMCAlcOEEEOCEEOIAAAAAAAJAAAAGy+AQCwOgoAYwAAAABBDhBEDiCDAgJXDhBBDghBDiAAAAAAACQAAACUvgEA+DoKAGMAAAAAQQ4QRA4ggwICVw4QQQ4IQQ4gAAAAAAAsAAAAvL4BAEA7CgBtAAAAAEIOEEEOGEQOMIMDjgICXQ4YQQ4QQg4IQQ4wAAAAAAAkAAAA7L4BAIA7CgBkAAAAAEEOEEQOIIMCAlgOEEEOCEEOIAAAAAAAJAAAABS/AQDIOwoAZAAAAABBDhBEDiCDAgJYDhBBDghBDiAAAAAAACQAAAA8vwEAEDwKAGQAAAAAQQ4QRA4ggwICWA4QQQ4IQQ4gAAAAAAAsAAAAZL8BAFg8CgBuAAAAAEIOEEEOGEQOMIMDjgICXg4YQQ4QQg4IQQ4wAAAAAAAUAAAAlL8BAJg8CgAKAAAAAAAAAAAAAAAUAAAArL8BAJA8CgAKAAAAAAAAAAAAAAAUAAAAxL8BAIg8CgAKAAAAAAAAAAAAAAAUAAAA3L8BAIA8CgAHAAAAAAAAAAAAAAAUAAAA9L8BAHg8CgAKAAAAAAAAAAAAAAAUAAAADMABAHA8CgAKAAAAAAAAAAAAAAAUAAAAJMABAGg8CgAKAAAAAAAAAAAAAAAUAAAAPMABAGA8CgAHAAAAAAAAAAAAAAAUAAAAVMABAFg8CgAKAAAAAAAAAAAAAAAUAAAAbMABAFA8CgAKAAAAAAAAAAAAAAAUAAAAhMABAEg8CgAKAAAAAAAAAAAAAAAUAAAAnMABAEA8CgAHAAAAAAAAAAAAAAAUAAAAtMABADg8CgAKAAAAAAAAAAAAAAAUAAAAzMABADA8CgAKAAAAAAAAAAAAAAAUAAAA5MABACg8CgAKAAAAAAAAAAAAAAAUAAAA/MABACA8CgAHAAAAAAAAAAAAAAAkAAAAFMEBAAhCCgBtAAAAAEIOEEEOGEEOIIMDjgICYQ4YQQ4QQg4IJAAAADzBAQBQQgoAcgAAAABCDhBBDhhBDiCDA44CAmYOGEEOEEIOCCwAAABkwQEAqEIKAIAAAAAAQg4QQg4YQQ4ggwSOA48CAnIOGEIOEEIOCAAAAAAAACwAAACUwQEA+EIKAIgAAAAAQg4QQg4YQQ4ggwSOA48CAnoOGEIOEEIOCAAAAAAAABwAAADEwQEAWEMKACoAAAAAQQ4QgwJkDggAAAAAAAAAHAAAAOTBAQBoQwoAMgAAAABBDhCDAmwOCAAAAAAAAAAcAAAABMIBAIhDCgDoAAAAAEEOEIMCAuYOCAAAAAAAABQAAAAkwgEAWEQKAA4AAAAAAAAAAAAAABQAAAA8wgEAUEQKADwAAAAAAAAAAAAAABQAAABUwgEAeEQKAFYAAAAAAAAAAAAAAFwAAABswgEAwEQKACkBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAvUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQFIOOEEOMEIOKEIOIEIOGEIOEEEOCCQAAADMwgEAkEUKAKYAAAAAQQ4QRA4wgwICmg4QQQ4IQQ4wAAAAAABMAAAA9MIBABhGCgCABAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNiBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAACwAAABEwwEASEoKAEIAAAAARw4QQQ4YQQ4ggwOOAnAOGEEOEEIOCEXDzgAAAAAAACwAAAB0wwEAaEoKAEIAAAAARw4QQQ4YQQ4ggwOOAnAOGEEOEEIOCEXDzgAAAAAAACwAAACkwwEAiEoKADMAAAAARw4QQQ4YQQ4ggwOOAmEOGEEOEEIOCEXDzgAAAAAAABQAAADUwwEAWDkKAGAAAAAAQQ4QAl4OCEwAAADswwEAoDkKAN4CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AA4MHjAaNBY4EjwOGAgO9Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAwAAHAAAADzEAQAwPAoAQwAAAABBDhCDAmUOCEEOEFsOCAAkAAAAXMQBAGA8CgBDAAAAAEEOEIMCZQ4IQQ4QWw4IAAAAAAAAAAAAFAAAAITEAQDoSQoAMQAAAAAAAAAAAAAALAAAAJzEAQAQSgoAWQAAAABCDhBCDhhBDiCDBI4DjwICTw4YQg4QQg4IAAAAAAAAJAAAAMzEAQBASgoAVgAAAABCDhBBDhhBDiCDA44CAk4OGEEOEEIOCCwAAAD0xAEAeEoKANoAAAAAQg4QQg4YQQ4ggwSOA48CAtAOGEIOEEIOCAAAAAAAAEQAAAAkxQEAKEsKAAwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAvYOOEEOMEIOKEIOIEIOGEIOEEEOCBQAAABsxQEA8EsKAAcAAAAAAAAAAAAAABwAAACExQEA6EsKAG8AAAAAQQ4QgwICVw4IQQ4QVQ4IFAAAAKTFAQA4TAoAYQAAAAAAAAAAAAAAFAAAALzFAQCQTAoA6QAAAAAAAAAAAAAAPAAAANTFAQBoTQoACQEAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCAocOKEIOIEIOGEIOEEEOCEEOMAAAADQAAAAUxgEAOE4KAEsAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgJ9DihBDiBCDhhCDhBBDggALAAAAEzGAQBQTgoANgAAAABBDhBCDhhBDiCDBI4DhgJuDhhCDhBBDggAAAAAAAAALAAAAHzGAQBgTgoAOgAAAABCDhBCDhhBDiCDBI4DjwJwDhhCDhBCDggAAAAAAAAANAAAAKzGAQBwTgoAfwAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgJxDihBDiBCDhhCDhBBDgg0AAAA5MYBALhOCgCeAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCApAOKEEOIEIOGEIOEEEOCDwAAAAcxwEAIE8KABMBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDBQEOKEEOIEIOGEIOEEEOCAAAAAAAAAAUAAAAXMcBAABQCgAfAAAAAAAAAAAAAAAUAAAAdMcBAAhQCgCTAQAAAAAAAAAAAABEAAAAjMcBAJBRCgCgAQAAAEIOEEIOGEIOIEIOKEEOMEcO0AKDBowFjQSOA48CA4EBDjBBDihCDiBCDhhCDhBCDghBDtACAABMAAAA1McBAOhSCgBfAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgKHDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAABwAAAAkyAEACJwKADMAAAAAQQ4QgwJrDghFDhBBDggATAAAAETIAQDYVAoA7wAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIC0Q44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAAAkAAAAlMgBAHhVCgBAAAAAAEIOEEEOGEEOIIMDjgJ4DhhBDhBCDggALAAAALzIAQCQVQoAAQEAAABCDhBCDhhBDiCDBI4DjwICzw4YQg4QQg4IQQ4gAAAAJAAAAOzIAQBwVgoAUAAAAABCDhBBDhhBDiCDA44CAkQOGEEOEEIOCDwAAAAUyQEAmFYKABYBAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIC1w4oQQ4gQg4YQg4QQg4IQQ4wAAAAAAAcAAAAVMkBAHhXCgAoAAAAAEEOEIMCYg4IAAAAAAAAACQAAAB0yQEAiFcKALUAAAAAQg4QQQ4YQQ4ggwOOAgKtDhhBDhBCDggUAAAAnMkBACBYCgAqAAAAAAAAAAAAAAAsAAAAtMkBADhYCgCfAAAAAEEOEEIOGEEOIIMEjgOGAgJ7DhhCDhBBDghBDiAAAAAUAAAA5MkBAKhYCgBkAAAAAAAAAAAAAABMAAAA/MkBAABZCgCZAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkAODB4wGjQWOBI8DhgIDeAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAMAAEwAAABMygEAUFwKALwGAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6wA4MHjAaNBY4EjwOGAgObBg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAwAATAAAAJzKAQDAYgoAnwIAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA4ECDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAABMAAAA7MoBABBlCgD0AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgPWAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAAEwAAAA8ywEAwGYKAJwEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6ABIMHjAaNBY4EjwOGAgN7BA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6ABAAARAAAAIzLAQAQawoAeAAAAABBDhBCDhhBDiCDBI4DhgICUA4YQg4QQQ4IRQ4gQw4YQg4QQQ4IRQ4gTQ4YQg4QQQ4IAAAAAAAAZAAAANTLAQBIawoASAIAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDEwIOOEEOMEIOKEIOIEIOGEIOEEEOCEUOYEQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAAPMwBADBtCgD3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgID1gIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAAEwAAACMzAEA4G8KAKQAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCWw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAAAATAAAANzMAQBAcAoAMAMAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA88CDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAAAsAAAALM0BACBzCgB8AAAAAEIOEEIOGEEOIIMEjgOPAgJmDhhCDhBCDghBDiAAAABEAAAAXM0BAHBzCgDJAAAAAEEOEEIOGEIOIEIOKEEOMEQOQIMGjAWOBI8DhgICrw4wQQ4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABEAAAApM0BAPhzCgA7AgAAAEEOEEIOGEIOIEIOKEEOMEQOYIMGjAWOBI8DhgIDIQIOMEEOKEIOIEIOGEIOEEEOCEEOYAAAAAA8AAAA7M0BAPB1CgCqAAAAAEIOEEIOGEEOIIMEjgOPAmoOGEIOEEIOCEIOIAJfDhhCDhBCDghBDiAAAAAAAAAATAAAACzOAQBgdgoAmQMAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgICXw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAABEAAAAfM4BALB5CgCiAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgKMDjhBDjBCDihCDiBCDhhCDhBBDghMAAAAxM4BABh6CgCkBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDzwQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAAEwAAAAUzwEAeH8KAP4EAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7wAoMHjAaNBY4EjwOGAgOjAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7wAgAAFAAAAGTPAQAohAoAZQAAAAAAAAAAAAAARAAAAHzPAQCAhAoAuAAAAABCDhBCDhhCDiBCDihBDjBEDkCDBowFjQSOA48CApwOMEEOKEIOIEIOGEIOEEIOCEEOQAAAAAAATAAAAMTPAQD4hAoA6wwAAABBDhBCDhhCDiBCDihCDjBBDjhHDvABgweMBo0FjgSPA4YCA3IMDjhBDjBCDihCDiBCDhhCDhBBDghBDvABAAAkAAAAFNABAFiUCgBCAAAAAEIOEEEOGEEOIIMDjgJ2DhhBDhBCDggAFAAAADzQAQCAlAoAAwAAAAAAAAAAAAAALAAAAFTQAQB4lAoAMwAAAABHDhBBDhhBDiCDA44CYQ4YQQ4QQg4IRcPOAAAAAAAAFAAAAITQAQCIlAoAAgAAAAAAAAAAAAAAFAAAAJzQAQCAlAoAAwAAAAAAAAAAAAAAFAAAALTQAQB4lAoAAwAAAAAAAAAAAAAATAAAAMzQAQBwlAoASwIAAABBDhBCDhhCDiBCDihCDjBBDjhHDtACgweMBo0FjgSPA4YCAyoCDjhBDjBCDihCDiBCDhhCDhBBDghBDtACAAA0AAAAHNEBAHCWCgDJAAAAAEIOEEIOGEEOIIMEjgOPAgK1DhhCDhBCDghFDiBBDhhCDhBCDggAAEwAAABU0QEAWJAKAMwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgOrAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAAPAAAAKTRAQDYkQoArAAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48Cbg4oQg4gQg4YQg4QQg4IQQ4wAAAAAEwAAADk0QEAeJYKACsFAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAoMHjAaNBY4EjwOGAgMKBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAANAAAADTSAQBYmwoA4gEAAABCDhBCDhhBDiBEDmCDBI4DjwIDyQEOIEEOGEIOEEIOCEEOYAAAAABMAAAAbNIBABCdCgB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAAC80gEAQJ8KAHcCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA1wCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAAzTAQBwoQoAZAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDSQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAXNMBAJCjCgB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAACs0wEAwKUKAGQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA0kCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAZAAAAPzTAQDgpwoAvAEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDVgEOOEEOMEIOKEIOIEIOGEIOEEEOCEUOQHQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABkAAAAZNQBADipCgAyAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgL5DjhBDjBCDihCDiBCDhhCDhBBDghFDlBEDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAABQAAADM1AEAEKoKALsAAAAAAAAAAAAAABQAAADk1AEAuKoKAJoAAAAAAAAAAAAAABQAAAD81AEAQKsKAC8AAAAAAAAAAAAAABQAAAAU1QEAWKsKAC4AAAAAAAAAAAAAABQAAAAs1QEAcKsKAMAAAAAAAAAAAAAAABQAAABE1QEAGKwKAOwAAAAAAAAAAAAAABQAAABc1QEA8KwKAAMAAAAAAAAAAAAAABQAAAB01QEA6KwKABYAAAAAAAAAAAAAABQAAACM1QEA8KwKAEYAAAAAAAAAAAAAABQAAACk1QEAKK0KAFQAAAAAAAAAAAAAACQAAAC81QEAcK0KAMUAAAAAQg4QQQ4YQQ4ggwOOAgK9DhhBDhBCDghMAAAA5NUBABiuCgDkAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAmoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAAADQAAAA01gEAuK4KALYAAAAAQg4QQg4YQQ4ggwSOA48CAqIOGEIOEEIOCEUOIEEOGEIOEEIOCAAAHAAAAGzWAQBArwoAEgAAAABBDhCDAkwOCAAAAAAAAAAUAAAAjNYBAECvCgADAAAAAAAAAAAAAAAUAAAApNYBADivCgBrAQAAAAAAAAAAAABEAAAAvNYBAJCwCgDMAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgK2DjhBDjBCDihCDiBCDhhCDhBBDghEAAAABNcBABixCgDiAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLMDjhBDjBCDihCDiBCDhhCDhBBDggcAAAATNcBAMCxCgAdAAAAAEEOEIMCWw4IAAAAAAAAADwAAABs1wEAwLEKAAEBAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgKKDihCDiBCDhhCDhBBDghBDjAAAAAsAAAArNcBAJCyCgBFAAAAAEIOEEIOGEEOIIMEjgOPAnsOGEIOEEIOCAAAAAAAAABEAAAA3NcBALCyCgBoAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgJSDjhBDjBCDihCDiBCDhhCDhBBDggsAAAAJNgBANiyCgA6AAAAAEEOEEIOGEEOIIMEjgOGAnIOGEIOEEEOCAAAAAAAAAA0AAAAVNgBAOiyCgBSAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAkQOKEEOIEIOGEIOEEEOCEQAAACM2AEAELMKANEAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCArsOOEEOMEIOKEIOIEIOGEIOEEEOCCQAAADU2AEAqLMKAN4AAAAAQg4QQQ4YQQ4ggwOOAgLWDhhBDhBCDghEAAAA/NgBAGC0CgASAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgL8DjhBDjBCDihCDiBCDhhCDhBBDghEAAAARNkBADi1CgDVAQAAAEIOEEIOGEIOIEIOKEEOMEQOUIMGjAWNBI4DjwIDtAEOMEEOKEIOIEIOGEIOEEIOCEEOUAAAAAAUAAAAjNkBANC2CgBuAQAAAAAAAAAAAAAsAAAApNkBACi4CgBhAAAAAEEOEEIOGEEOIIMEjgOGAgJZDhhCDhBBDggAAAAAAABMAAAA1NkBAGi4CgB+BAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNFBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEQAAAAk2gEAmLwKAKECAAAAQg4QQg4YQg4gQg4oQQ4wRw7QAoMGjAWNBI4DjwID5QEOMEEOKEIOIEIOGEIOEEIOCEEO0AIAABQAAABs2gEAAL8KAC0AAAAAAAAAAAAAABQAAACE2gEAGL8KAAUAAAAAAAAAAAAAABQAAACc2gEAEL8KABYAAAAAAAAAAAAAAEwAAAC02gEAGL8KAN4EAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA+4BDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAAPAAAAATbAQCowwoANAEAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCAyQBDihCDiBCDhhCDhBBDggAAAAAAEwAAABE2wEAqMQKABIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCAvQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAAAATAAAAJTbAQB4xQoAlwEAAABBDhBCDhhCDiBCDihCDjBBDjhHDtACgweMBo0FjgSPA4YCA3YBDjhBDjBCDihCDiBCDhhCDhBBDghBDtACAAAUAAAA5NsBAMjGCgAHAAAAAAAAAAAAAAAUAAAA/NsBAMDGCgAMAAAAAAAAAAAAAABMAAAAFNwBALjGCgCoAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgOKAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAEwAAABk3AEAGMgKAHYFAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7wAoMHjAaNBY4EjwOGAgP6BA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7wAgAAFAAAALTcAQBIzQoAVgAAAAAAAAAAAAAATAAAAMzcAQCQzQoAkwMAAABBDhBCDhhCDiBCDihCDjBBDjhHDtABgweMBo0FjgSPA4YCA8ECDjhBDjBCDihCDiBCDhhCDhBBDghBDtABAABEAAAAHN0BAODQCgCaAQAAAEEOEEIOGEIOIEIOKEEOMEQOQIMGjAWOBI8DhgIDXAEOMEEOKEIOIEIOGEIOEEEOCEEOQAAAAABEAAAAZN0BADjSCgCxAQAAAEEOEEIOGEIOIEIOKEEOMEQOQIMGjAWOBI8DhgIDcwEOMEEOKEIOIEIOGEIOEEEOCEEOQAAAAAA8AAAArN0BALDTCgDkAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIC1A4oQg4gQg4YQg4QQQ4IAAAAAAAAJAAAAOzdAQBg1AoAvwAAAABCDhBBDhhBDiCDA44CArcOGEEOEEIOCBQAAAAU3gEA+NQKAAoAAAAAAAAAAAAAABQAAAAs3gEA8NQKAA0AAAAAAAAAAAAAAEwAAABE3gEA6NQKAFIDAAAAQQ4QQg4YQg4gQQ4oRw7QAYMFjgSPA4YCA+8CDtgBQQ7gAUkO0AECQA4oQQ4gQg4YQg4QQQ4IQQ7QAQAAAAAAFAAAAJTeAQD41woABQAAAAAAAAAAAAAAHAAAAKzeAQDw1woAMwAAAABBDhCDAmsOCEUOEEEOCAAUAAAAzN4BABDYCgACAAAAAAAAAAAAAAAUAAAA5N4BAAjYCgAEAAAAAAAAAAAAAAAUAAAA/N4BAADYCgAEAAAAAAAAAAAAAAAUAAAAFN8BAPjXCgAEAAAAAAAAAAAAAABMAAAALN8BAPDXCgB8AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDWwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAADQAAAB83wEAINoKAMkAAAAAQg4QQg4YQQ4ggwSOA48CArUOGEIOEEIOCEUOIEEOGEIOEEIOCAAATAAAALTfAQC42goA0AIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDugIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAA0AAAABOABADjdCgA8AQAAAEIOEEIOGEEOIIMEjgOPAgMoAQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IACwAAAA84AEAQN4KAGICAAAAQg4QQQ4YQQ4ggwOOAgNVAg4YQQ4QQg4IQQ4gAAAAAEwAAABs4AEAgOAKAK8FAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAoMHjAaNBY4EjwOGAgOOBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAANAAAALzgAQDg5QoA4gEAAABCDhBCDhhBDiBEDmCDBI4DjwIDyQEOIEEOGEIOEEIOCEEOYAAAAABMAAAA9OABAJjnCgB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABE4QEAyOkKAHcCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA1wCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAJThAQD46woAZAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDSQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAA5OEBABjuCgB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAAA04gEASPAKAGQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA0kCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAFAAAAITiAQBo8goAegAAAAAAAAAAAAAAFAAAAJziAQDQ8goAEAAAAAAAAAAAAAAAFAAAALTiAQDI8goAHAAAAAAAAAAAAAAAFAAAAMziAQDQ8goAEwAAAAAAAAAAAAAAFAAAAOTiAQDY8goAEwAAAAAAAAAAAAAAFAAAAPziAQDg8goADgAAAAAAAAAAAAAAFAAAABTjAQDY8goACwAAAAAAAAAAAAAAFAAAACzjAQDQ8goABAAAAAAAAAAAAAAAHAAAAETjAQDI8goA5QAAAABBDhCDAgLjDggAAAAAAAAUAAAAZOMBAJjzCgBLAAAAAAAAAAAAAAAcAAAAfOMBANDzCgBAAAAAAEEOEIMCeA4IRQ4QQQ4IAEQAAACc4wEA8PMKAAgBAAAAQg4QQg4YQg4gQg4oQQ4wRA5ggwaMBY0EjgOPAgLnDjBBDihCDiBCDhhCDhBCDghBDmAAAAAAAEwAAADk4wEAuPQKABUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAvcOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAATAAAADTkAQCI9QoAqQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDiwEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABEAAAAhOQBAOj2CgAIAQAAAEIOEEIOGEIOIEIOKEEOMEQOYIMGjAWNBI4DjwIC5w4wQQ4oQg4gQg4YQg4QQg4IQQ5gAAAAAAA0AAAAzOQBALD3CgCZAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAokOKEEOIEIOGEIOEEIOCCQAAAAE5QEAGPgKAHkAAAAAQQ4QRA5AgwICbQ4QQQ4IQQ5AAAAAAABMAAAALOUBAHD4CgBJAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMqAw44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5AAAAAABQAAAB85QEAcPsKAAUBAAAAAAAAAAAAABwAAACU5QEAaPwKAG0AAAAARA4gAmMOCEEOIAAAAAAATAAAALTlAQC4/AoAkgMAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDdAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAcAAAABOYBAAgACwCiAAAAAEQOIAKYDghBDiAAAAAAAEwAAAAk5gEAmAALAPQBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA9YBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAATAAAAHTmAQBIAgsAhgUAAABBDhBCDhhCDiBCDihCDjBBDjhHDtABgweMBo0FjgSPA4YCA2UFDjhBDjBCDihCDiBCDhhCDhBBDghBDtABAABMAAAAxOYBAIgHCwAQBwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkAODB4wGjQWOBI8DhgID4AYOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAMAAEwAAAAU5wEASA4LAMEEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA6MEDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAAPAAAAGTnAQCoGAsAsQAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgKeDihBDiBCDhhCDhBBDghBDjAAAAAAABQAAACk5wEAKBkLAAgAAAAAAAAAAAAAAEwAAAC85wEAcBILANUCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA7cCDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAATAAAAAzoAQAAFQsA3AIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDiwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAABkAAAAXOgBAIAYCwDYAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgOfAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5QRA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAABwAAADE6AEAKBcLABgAAAAAQQ4QgwJWDggAAAAAAAAAZAAAAOToAQDYGQsAGQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIC4A44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5QRA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAAB8AAAATOkBAJAaCwD5BQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgPNBA44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5QApcOOEEOMEIOKEIOIEIOGEIOEEEOCEUOUAJeDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAEwAAADM6QEAECALADYBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAyABDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAABzqAQAAIQsAagEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDTAEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAAbOoBACAiCwBsAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgNOAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAGQAAAC86gEAQCULAPQAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAr4OOEEOMEIOKEIOIEIOGEIOEEEOCEUOQEQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAATAAAACTrAQDYJQsAhwEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAycBDihCDiBCDhhCDhBCDghIDjBxDihCDiBCDhhCDhBCDghBDjBkAAAAdOsBABgnCwD0AAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgK+DjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAGQAAADc6wEAsCcLAPQAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAr4OOEEOMEIOKEIOIEIOGEIOEEEOCEUOQEQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAAZAAAAETsAQBIKAsA/QAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICxw44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAArOwBAOAoCwC6AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOkAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAAD87AEAUCoLAJ4AAAAAAAAAAAAAACQAAAAU7QEA2CoLANkAAAAAQQ4QRw7gAYMCAsoOEEEOCEEO4AEAAABMAAAAPO0BAJArCwBiAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO8AiDB4wGjQWOBI8DhgIDQQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEO8AgAABwAAACM7QEAsCwLAOEAAAAARw7gAQLUDghBDuABAAAAHAAAAKztAQCALQsAxgAAAABHDuABArkOCEEO4AEAAABMAAAAzO0BADAuCwDbAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgO9Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAACwAAAAc7gEAwDALAPoBAAAAQg4QQg4YQQ4ggwSOA48CA+sBDhhCDhBCDghBDiAAACwAAABM7gEAkDILABwBAAAAQg4QQQ4YQQ4ggwOOAgMUAQ4YQQ4QQg4IAAAAAAAAAEQAAAB87gEAgDMLAKUAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAo8OOEEOMEIOKEIOIEIOGEIOEEEOCEwAAADE7gEA6DMLAF8BAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA0EBDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAATAAAABTvAQD4NAsA0wMAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA0IDDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAABMAAAAZO8BAIg4CwDNAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgOvAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAADQAAAC07wEACDoLALMAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICow4oQQ4gQg4YQg4QQg4ITAAAAOzvAQCQOgsArwMAAABBDhBCDhhCDiBCDihCDjBBDjhHDoADgweMBo0FjgSPA4YCA44DDjhBDjBCDihCDiBCDhhCDhBBDghBDoADAABEAAAAPPABAPA9CwB7AAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgJlDjhBDjBCDihCDiBCDhhCDhBBDghMAAAAhPABACg+CwCRAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkAODB4wGjQWOBI8DhgIDcAMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAMAADwAAADU8AEAeEELAFAAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgJ9DihBDiBCDhhCDhBBDghBDjAAAAAAAABMAAAAFPEBAIhBCwAmBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO8AKDB4wGjQWOBI8DhgIDBQYOOEEOMEIOKEIOIEIOGEIOEEEOCEEO8AIAABwAAABk8QEAaEcLABsAAAAAQQ4QVA4IQQ4QAAAAAAAAJAAAAITxAQBoRwsALwAAAABBDhCDAkcOCEEOEGAOCEEOEAAAAAAAABwAAACs8QEAcEcLABkAAAAAQQ4QgwJSDghBDhAAAAAALAAAAMzxAQBwRwsADQIAAABCDhBCDhhBDiCDBI4DjwID/gEOGEIOEEIOCEEOIAAALAAAAPzxAQBQSQsAdwAAAABCDhBCDhhBDiCDBI4DjwICbQ4YQg4QQg4IAAAAAAAAFAAAACzyAQCgSQsAFQAAAAAAAAAAAAAATAAAAETyAQCoSQsADQIAAABBDhBCDhhCDiBCDihCDjBBDjhHDuACgweMBo0FjgSPA4YCA+cBDjhBDjBCDihCDiBCDhhCDhBBDghBDuACAAAUAAAAlPIBAGhLCwAMAAAAAAAAAAAAAABMAAAArPIBABBoCwD1CgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOwASDB4wGjQWOBI8DhgIDwgoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOwAQAABQAAAD88gEAEEsLAA8AAAAAAAAAAAAAABQAAAAU8wEACEsLAA8AAAAAAAAAAAAAABQAAAAs8wEAAEsLABIAAAAAAAAAAAAAABQAAABE8wEACEsLAA8AAAAAAAAAAAAAABQAAABc8wEAAEsLABIAAAAAAAAAAAAAABQAAAB08wEACEsLABIAAAAAAAAAAAAAABQAAACM8wEAEEsLABUAAAAAAAAAAAAAABQAAACk8wEAGEsLABYAAAAAAAAAAAAAABQAAAC88wEAIEsLAC8AAAAAAAAAAAAAAEwAAADU8wEAOEsLAOcDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgOgAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAATAAAACT0AQDYTgsA+QAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIC3g44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAAdPQBAIhPCwDMAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDqQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAACQAAADE9AEACFELABIBAAAAQQ4QRA5AgwIDBgEOEEEOCEEOQAAAAAAcAAAA7PQBAABSCwAbAAAAAEYOEIMCTw4IRcMAAAAAAFwAAAAM9QEAAFILAPABAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCAo8OOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAKcDnhaDoABQg6IAUIOkAFJDnAAAEwAAABs9QEAkFMLAJAKAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6gA4MHjAaNBY4EjwOGAgNECg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6gAwAAHAAAALz1AQDQXQsAFQAAAABBDhCDAk8OCAAAAAAAAAAUAAAA3PUBANBdCwAIAAAAAAAAAAAAAABMAAAA9PUBAMhdCwBsBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkAKDB4wGjQWOBI8DhgIDjQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAIAADwAAABE9gEA6GILAJ4AAAAAQQ4QQg4YQg4gQQ4oRA5ggwWOBI8DhgICiA4oQQ4gQg4YQg4QQQ4IQQ5gAAAAAAA8AAAAhPYBADhvCwA9AgAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIDLQIOKEIOIEIOGEIOEEEOCAAAAAAATAAAAMT2AQA4cQsABwQAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgID8QMOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAA0AAAAFPcBAPh0CwA8AQAAAEIOEEIOGEEOIIMEjgOPAgMoAQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IAEwAAABM9wEAAHYLAAUDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA+cCDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAJAAAAJz3AQAwYgsARQAAAABCDhBBDhhBDiCDA44CfQ4YQQ4QQg4IACQAAADE9wEAWGILADsAAAAAQg4QQQ4YQQ4ggwOOAnMOGEEOEEIOCAAsAAAA7PcBAHBiCwBRAAAAAEEOEEIOGEEOIIMEjgOGAgJJDhhCDhBBDggAAAAAAABMAAAAHPgBAEB4CwDqAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgPUAg44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAADQAAABs+AEA4HoLADwBAAAAQg4QQg4YQQ4ggwSOA48CAygBDhhCDhBCDghFDiBBDhhCDhBCDggALAAAAKT4AQDoewsAYgIAAABCDhBBDhhBDiCDA44CA1UCDhhBDhBCDghBDiAAAAAANAAAANT4AQAofgsA4gEAAABCDhBCDhhBDiBEDmCDBI4DjwIDyQEOIEEOGEIOEEIOCEEOYAAAAABMAAAADPkBAOB/CwB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABc+QEAEIILAHcCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA1wCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAKz5AQBAhAsAZAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDSQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAA/PkBAGCGCwB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABM+gEAkIgLAGQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA0kCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAJz6AQCwigsA5AIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDzgIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAsAAAA7PoBAFCNCwD4AAAAAEEOEEIOGEEOIIMEjgOGAgLrDhhCDhBBDghBDiAAAABMAAAAHPsBAHCuCwDKAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgKvDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAADQAAABs+wEA0I0LAM0AAAAAQg4QQg4YQQ4ggwSOA48CAo4OGEIOEEIOCEkOIGgOGEIOEEIOCAAATAAAAKT7AQBojgsAmAUAAABBDhBCDhhCDiBCDihCDjBBDjhHDqADgweMBo0FjgSPA4YCA3cFDjhBDjBCDihCDiBCDhhCDhBBDghBDqADAABMAAAA9PsBALiTCwDtBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOsAODB4wGjQWOBI8DhgIDzAUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAMAAEQAAABE/AEAWJkLALUAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAp8OOEEOMEIOKEIOIEIOGEIOEEEOCEwAAACM/AEA0JkLALwIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AA4MHjAaNBY4EjwOGAgPmAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAwAATAAAANz8AQBAogsAMQQAAABBDhBCDhhCDiBCDihCDjBBDjhHDqADgweMBo0FjgSPA4YCAwsEDjhBDjBCDihCDiBCDhhCDhBBDghBDqADAABMAAAALP0BADCmCwBKAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAKDB4wGjQWOBI8DhgIDKQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAIAAEwAAAB8/QEAMKcLAN4EAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6gA4MHjAaNBY4EjwOGAgO4BA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6gAwAAFAAAAMz9AQCQrAsAAQAAAAAAAAAAAAAATAAAAOT9AQCIrAsAMQcAAABBDhBCDhhCDiBCDihCDjBBDjhHDoAEgweMBo0FjgSPA4YCA+gFDjhBDjBCDihCDiBCDhhCDhBBDghBDoAEAABMAAAANP4BAHizCwC1CQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkASDB4wGjQWOBI8DhgIClw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6QBAAAAEwAAACE/gEA6LwLAMEFAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA9oEDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAFAAAANT+AQBowgsAWQAAAAAAAAAAAAAAPAAAAOz+AQCwwgsAXAAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgJJDihBDiBCDhhCDhBBDghBDjAAAAAAAEwAAAAs/wEA0MILAAEDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAoMHjAaNBY4EjwOGAgPMAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAATAAAAHz/AQCQxQsAuggAAABBDhBCDhhCDiBCDihCDjBBDjhHDoADgweMBo0FjgSPA4YCA5kIDjhBDjBCDihCDiBCDhhCDhBBDghBDoADAABUAAAAzP8BAADOCwBaAgAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICWQ4oQg4gQg4YQg4QQQ4IQQ4wA1MBDihCDiBCDhhCDhBBDghFDjAAAAAAAAAATAAAACQAAgAI0AsAsgEAAABBDhBCDhhCDiBCDihCDjBBDjhHDuABgweMBo0FjgSPA4YCA5EBDjhBDjBCDihCDiBCDhhCDhBBDghBDuABAAAUAAAAdAACAHjRCwAjAAAAAAAAAAAAAABMAAAAjAACAJDRCwAEAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgID4wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAABQAAADcAAIAUNMLAAUAAAAAAAAAAAAAACQAAAD0AAIASNMLACkAAAAAQQ4QQQ4YQQ4ggwOGAmMOGEEOEEEOCABMAAAAHAECAFDTCwD5AAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLeDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAEwAAABsAQIAANQLAC8CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAwwCDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAZAAAALwBAgDg1QsAhAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgJjDjhBDjBCDihCDiBCDhhCDhBBDghFDkAD+wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAJAICAAjYCwAXAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO8AKDB4wGjQWOBI8DhgID9gIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO8AIAACwAAAB0AgIA2NoLANoAAAAAQQ4QQg4YQQ4ggwSOA4YCAtIOGEIOEEEOCAAAAAAAACQAAACkAgIAiNsLADsAAAAAQQ4QQQ4YQQ4ggwOGAnUOGEEOEEEOCAAsAAAAzAICAKDbCwDOAAAAAEEOEEIOGEEOIIMEjgOGAgKmDhhCDhBBDghBDiAAAAAUAAAA/AICAEDcCwAPAAAAAAAAAAAAAAAUAAAAFAMCADjcCwAPAAAAAAAAAAAAAAAUAAAALAMCADDcCwAPAAAAAAAAAAAAAABMAAAARAMCACjcCwCgAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgOHAw44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAACUAwIAeN8LABQAAAAAAAAAAAAAABQAAACsAwIAgN8LABcAAAAAAAAAAAAAABQAAADEAwIAiN8LABQAAAAAAAAAAAAAACwAAADcAwIAkN8LAEIAAAAAQQ4QQg4YQQ4ggwSOA4YCeg4YQg4QQQ4IAAAAAAAAADQAAAAMBAIAsN8LAFIAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgICRA4oQQ4gQg4YQg4QQQ4IJAAAAEQEAgDY3wsAOwAAAABBDhBBDhhBDiCDA4YCdQ4YQQ4QQQ4IAEwAAABsBAIA8N8LACcDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAw4DDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAJAAAALwEAgDQ4gsAPwAAAABCDhBBDhhBDiCDA44Cdw4YQQ4QQg4IABwAAADkBAIA6OILAHQAAAAARA5AAmoOCEEOQAAAAAAATAAAAAQFAgBI4wsAgwIAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDWwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABMAAAAVAUCAIjlCwCwAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDfQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAADwAAACkBQIA6OcLAKoAAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKQDihCDiBCDhhCDhBCDghBDjAAAABMAAAA5AUCAFjoCwATAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgID5QEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAABQAAAA0BgIAKOoLAA0AAAAAAAAAAAAAADQAAABMBgIAIOoLAMkAAAAAQQ4QQg4YQQ4gRA5QgwSOA4YCArcOIEEOGEIOEEEOCEEOUAAAAAAANAAAAIQGAgC46gsA3wAAAABCDhBCDhhBDiBEDlCDBI4DjwICyw4gQQ4YQg4QQg4IQQ5QAAAAAAA0AAAAvAYCAAD+CwBwAAAAAEIOEEEOGEEOIIMDjgICXA4YQQ4QQg4IRQ4gRA4YQQ4QQg4IAAAAADQAAAD0BgIAKOsLAN8AAAAAQg4QQg4YQQ4gRA5QgwSOA48CAssOIEEOGEIOEEIOCEEOUAAAAAAANAAAACwHAgAA/gsAcAAAAABCDhBBDhhBDiCDA44CAlwOGEEOEEIOCEUOIEQOGEEOEEIOCAAAAABMAAAAZAcCAJjrCwD1AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgMfAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAABQAAAC0BwIASO4LAB4AAAAAAAAAAAAAAEwAAADMBwIAUO4LAAoEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA7EDDjhBDjBCDihCDiBCDhhCDhBBDghKDkAAAAAALAAAABwIAgAQ8gsAeAAAAABCDhBCDhhBDiCDBI4DjwICbg4YQg4QQg4IAAAAAAAAFAAAAEwIAgBg8gsAOQAAAAAAAAAAAAAAFAAAAGQIAgCI8gsADgAAAAAAAAAAAAAATAAAAHwIAgCA8gsAmQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDgAEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAzAgCANDzCwAwAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgMXAg44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAAAcCQIAsPULAIwDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA1gDDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAAFAAAAGwJAgDw+AsALAAAAABBDhBqDggALAAAAIQJAgAI+QsAyAAAAABCDhBCDhhBDiCDBI4DjwICvg4YQg4QQg4IAAAAAAAAFAAAALQJAgCo+QsAOQAAAAAAAAAAAAAAJAAAAMwJAgDQ+QsAxAAAAABCDhBBDhhBDiCDA44CArwOGEEOEEIOCCQAAAD0CQIAqPsLAEIAAAAAQg4QQQ4YQQ4ggwOOAnYOGEEOEEIOCAAUAAAAHAoCAND7CwAMAAAAAAAAAAAAAABMAAAANAoCAMj7CwCTAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDcgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAACQAAACECgIAGP0LAHAAAAAAQg4QQQ4YQQ4ggwOOAgJkDhhBDhBCDghMAAAArAoCAGD9CwAsAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgMOAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAEwAAAD8CgIAQP4LAJMBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgNyAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAATAAAAEwLAgCQ/wsAHwEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDCQEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAnAsCAGAADABsAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgNTAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAACQAAADsCwIAgAEMAHAAAAAAQg4QQQ4YQQ4ggwOOAgJkDhhBDhBCDghMAAAAFAwCAMgBDAAgAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMKAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAABkDAIAmAIMAJMBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgNyAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAAHAAAALQMAgC49wsASQAAAABBDhCDAgJCDghBDhAAAABkAAAA1AwCAMgDDAD7AAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLFDjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAGQAAAA8DQIAYAQMANwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA6MBDjhBDjBCDihCDiBCDhhCDhBBDghFDlBEDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAZAAAAKQNAgDYBQwA+wAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICxQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAADA4CAHAGDABeAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgIDPQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAADQAAABcDgIAgAgMAG0BAAAAQg4QQg4YQQ4gRA5ggwSOA48CA1kBDiBBDhhCDhBCDghBDmAAAAAATAAAAJQOAgC4CQwAvwIAAABBDhBCDhhCDiBCDihCDjBBDjhHDuACgweMBo0FjgSPA4YCA54CDjhBDjBCDihCDiBCDhhCDhBBDghBDuACAAAUAAAA5A4CACgMDAAIAAAAAAAAAAAAAABMAAAA/A4CACAMDACYAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDdwEOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAAGQAAABMDwIAcA0MADsEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA8gCDjhBDjBCDihCDiBCDhhCDhBBDghFDkADTgEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAALAAAALQPAgBIEQwA4AAAAABCDhBCDhhBDiCDBI4DjwIC1g4YQg4QQg4IAAAAAAAATAAAAOQPAgD4EQwAwwQAAABBDhBCDhhCDiBCDihCDjBBDjhHDuACgweMBo0FjgSPA4YCA6IEDjhBDjBCDihCDiBCDhhCDhBBDghBDuACAAAUAAAANBACAHgWDAAIAAAAAAAAAAAAAABMAAAATBACAHAWDACYAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDdwEOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAABQAAACcEAIAwBcMABQAAAAAAAAAAAAAAEwAAAC0EAIAyBcMAMMEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgOiBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAATAAAAAQRAgBIHAwAJAUAAABBDhBCDhhCDiBCDihCDjBBDjhHDpADgweMBo0FjgSPA4YCA7wCDjhBDjBCDihCDiBCDhhCDhBBDghBDpADAAA0AAAAVBECACghDABsAAAAAEIOEEEOGEEOIIMDjgICVQ4YQQ4QQg4IQQ4gRw4YQQ4QQg4IAAAAADQAAACMEQIAYCEMAFQAAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgICRg4oQQ4gQg4YQg4QQQ4IJAAAAMQRAgCIIQwAQgAAAABCDhBBDhhBDiCDA44Cdg4YQQ4QQg4IABQAAADsEQIAsCEMAAQAAAAAAAAAAAAAACQAAAAEEgIAqCEMAEIAAAAAQg4QQQ4YQQ4ggwOOAnYOGEEOEEIOCAAcAAAALBICANAhDAAzAAAAAEEOEIMCaw4IRQ4QQQ4IABQAAABMEgIA8CEMAAIAAAAAAAAAAAAAABQAAABkEgIA6CEMAAQAAAAAAAAAAAAAABQAAAB8EgIA4CEMAAQAAAAAAAAAAAAAAEwAAACUEgIA2CEMAHwCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgNbAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAANAAAAOQSAgAIJAwAyQAAAABCDhBCDhhBDiCDBI4DjwICtQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IAABMAAAAHBMCAKAkDACPBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgIDbgUOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAADQAAABsEwIA4CkMAOIBAAAAQg4QQg4YQQ4gRA5ggwSOA48CA8kBDiBBDhhCDhBCDghBDmAAAAAATAAAAKQTAgCYKwwAdwIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDXAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAA9BMCAMgtDAB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABEFAIA+C8MAGQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA0kCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAJQUAgAYMgwAdwIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDXAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAA5BQCAEg0DABkAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNJAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAABwAAAA0FQIAaDYMACUAAAAAQQ4QgwJjDggAAAAAAAAAFAAAAFQVAgB4NgwAHAAAAAAAAAAAAAAAJAAAAGwVAgCANgwAogAAAABCDhBBDhiDA44CApwOEEIOCAAAAAAAABQAAACUFQIACDcMAFcAAAAAAAAAAAAAADQAAACsFQIAUDcMANgAAAAAQg4QQg4YQg4gQQ4ogwWMBI4DjwICyg4gQg4YQg4QQg4IAAAAAAAAFAAAAOQVAgD4NwwAOQAAAAAAAAAAAAAAHAAAAPwVAgAgOAwAGAAAAABBDhCDAlYOCAAAAAAAAAAsAAAAHBYCACA4DADpAAAAAEIOEEEOGEQOQIMDjgIC2Q4YQQ4QQg4IQQ5AAAAAAABMAAAATBYCAOA4DAB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgICfQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAAABQAAACcFgIAQEIMACEAAAAAAAAAAAAAAEwAAAC0FgIA+DoMAKIFAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAoMHjAaNBY4EjwOGAgMmBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAgAANAAAAAQXAgBYQAwAsAAAAABBDhBCDhhBDiCDBI4DhgICmQ4YQg4QQQ4IRQ4gRg4YQg4QQQ4IAAAkAAAAPBcCANBBDABCAAAAAEIOEEEOGEEOIIMDjgJ2DhhBDhBCDggAFAAAAGQXAgD4QQwAAwAAAAAAAAAAAAAARAAAAHwXAgCQQAwAwwAAAABCDhBBDhhBDiCDA44CAkMOGEEOEEIOCEUOIAJBDhhBDhBCDghFDiBjDhhBDhBCDggAAAAAAAAAHAAAAMQXAgCoQQwAVwAAAABBDhCDAgJVDggAAAAAAAAUAAAA5BcCAOhBDAD6AAAAAAAAAAAAAAAUAAAA/BcCANBCDACUAAAAAAAAAAAAAABMAAAAFBgCAFhDDAAjAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAKDB4wGjQWOBI8DhgIDAgIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAIAADwAAABkGAIAOEUMALUBAAAAQQ4QQg4YQg4gQQ4oRA5AgwWOBI8DhgIDnwEOKEEOIEIOGEIOEEEOCEEOQAAAAAAUAAAApBgCALhGDAAYAAAAAEEOEFIOCAA8AAAAvBgCAMBGDACeAQAAAEEOEEIOGEIOIEEOKEcOwAGDBY4EjwOGAgOFAQ4oQQ4gQg4YQg4QQQ4IQQ7AAQAALAAAAPwYAgAgSAwALAAAAABBDhBCDhhBDiCDBI4DhgJkDhhCDhBBDggAAAAAAAAAXAAAACwZAgAgSAwAZQEAAABBDhBCDhhCDiBCDihCDjBBDjhHDtADgweMBo0FjgSPA4YCAyABDtgDQQ7gA0kO0ANaDjhBDjBCDihCDiBCDhhCDhBBDghBDtADAAAAAAAAFAAAAIwZAgAwSQwAAgAAAAAAAAAAAAAAFAAAAKQZAgAoSQwAFwAAAAAAAAAAAAAATAAAALwZAgAwSQwAYAIAAABBDhBCDhhCDiBCDihCDjBBDjhHDuAZgweMBo0FjgSPA4YCAxgCDjhBDjBCDihCDiBCDhhCDhBBDghBDuAZAAAUAAAADBoCAEBLDAADAAAAAAAAAAAAAAAUAAAAJBoCADhLDAAsAAAAAAAAAAAAAAAUAAAAPBoCAFBLDAARAAAAAAAAAAAAAAAUAAAAVBoCAFhLDAARAAAAAAAAAAAAAAAUAAAAbBoCAGBLDAARAAAAAAAAAAAAAAAsAAAAhBoCAGhLDAD2AAAAAEIOEEEOGEcO8AGDA44CAuMOGEEOEEIOCEEO8AEAAAAUAAAAtBoCADhMDAADAAAAAAAAAAAAAAAUAAAAzBoCADBMDAABAAAAAAAAAAAAAAAcAAAA5BoCAChMDAAkAAAAAEEOEFQOCEEOEAAAAAAAABwAAAAEGwIAOEwMACYAAAAAQQ4QVg4IQQ4QAAAAAAAAFAAAACQbAgBITAwADAAAAAAAAAAAAAAAHAAAADwbAgBATAwARwAAAABBDhCDAmQOCEEOEAAAAAAcAAAAXBsCAHBMDABUAAAAAEEOEIMCAkwOCEUOEEEOCEwAAAB8GwIAsEwMAB8CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QCIMHjAaNBY4EjwOGAgP+AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QCAAATAAAAMwbAgCATgwACAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIC2Q44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAABEAAAAHBwCAEBPDAC3AAAAAEEOEEIOGEIOIEIOKEEOMEQOUIMGjAWOBI8DhgICnQ4wQQ4oQg4gQg4YQg4QQQ4IQQ5QAAAAAAAUAAAAZBwCALhPDAA9AAAAAAAAAAAAAAAUAAAAfBwCAOBPDAApAAAAAAAAAAAAAABMAAAAlBwCAPhPDACQAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgJ6DjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAABQAAADkHAIAOFAMAAoAAAAAAAAAAAAAABQAAAD8HAIAMFAMAAUAAAAAAAAAAAAAABQAAAAUHQIAKFAMABAAAAAAAAAAAAAAAFQAAAAsHQIAIFAMAFUDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7wEIMHjAaNBY4EjwOGAgM0Aw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7wEAAAAAAAAAAAAAAUAAAAhB0CAChTDAADAAAAAAAAAAAAAAAUAAAAnB0CACBTDAAkAAAAAEEOEGIOCAAUAAAAtB0CADhTDAAdAAAAAEEOEFsOCAAUAAAAzB0CAEBTDAArAAAAAEEOEGkOCAAUAAAA5B0CAFhTDAArAAAAAEEOEGkOCAAUAAAA/B0CAHBTDAAIAAAAAAAAAAAAAAAUAAAAFB4CAGhTDABSAAAAAEEOEAJQDggkAAAALB4CALBTDAC8AAAAAEEOEIYCQw0GQYMDArYMBwgAAAAAAAAAJAAAAFQeAgBIVAwAkwEAAABBDhCGAkMNBkeDBowFjgSPAwOHAQwHCCwAAAB8HgIAwFUMAFsBAAAAQQ4QhgJDDQZNgweMBo0FjgSPAwNJAQwHCAAAAAAAACwAAACsHgIA8FYMAFsBAAAAQQ4QhgJDDQZNgweMBo0FjgSPAwNJAQwHCAAAAAAAAEwAAADcHgIAIFgMAFwCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAz4CDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAHAAAACwfAgAwWgwAQAAAAABBDhCDAn4OCAAAAAAAAABMAAAATB8CAFBaDADzBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOgAODB4wGjQWOBI8DhgIDygMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAMAAEwAAACcHwIAAF8MANEDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7AAoMHjAaNBY4EjwOGAgN0Aw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7AAgAAHAAAAOwfAgCQYgwAUAAAAABBDhCDAgJODggAAAAAAAAcAAAADCACAMBiDAD7AAAAAEEOEIMCAusOCEEOEAAAABwAAAAsIAIAoGMMAIkAAAAAQQ4QgwICeQ4IQQ4QAAAATAAAAEwgAgAQZAwAVwEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDCgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAsAAAAnCACACBlDADKAAAAAEEOEEIOGEEOIIMEjgOGAgK0DhhCDhBBDghBDiAAAABMAAAAzCACAMBlDAAyEwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AmDB4wGjQWOBI8DhgID5BAOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AkAACwAAAAcIQIAsHgMAMoAAAAAQQ4QQg4YQQ4ggwSOA4YCArQOGEIOEEEOCEEOIAAAAEQAAABMIQIAUHkMAKoAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCApQOOEEOMEIOKEIOIEIOGEIOEEEOCEwAAACUIQIAuHkMAIoBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA28BDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAALAAAAOQhAgD4egwATAAAAABCDhBBDhhBDiCDA44Cfw4YQQ4QQg4IQQ4gAAAAAAAAbAAAABQiAgAYewwAFwgAAABBDhBCDhhCDiBCDihCDjBBDjhHDtABgweMBo0FjgSPA4YCAwoFDtgBQQ7gAUUO0AEDrAEO2AFCDuABTA7QAQMnAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAQAAAAAAAFwAAACEIgIAyIIMAMQBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAzoBDmhhDnBJDmBsDmhBDnBJDmBMDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAEwAAADkIgIAOIQMAJ8DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgNOAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAPAAAADQjAgCIhwwAdAAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAm4OKEEOIEIOGEIOEEIOCEIOMAAAAAAAABwAAAB0IwIAyIcMAC0AAAAAQQ4QgwJnDggAAAAAAAAANAAAAJQjAgDYhwwAoQEAAABCDhBCDhhBDiBEDpABgwSOA48CA3EBDiBBDhhCDhBCDghBDpABAAAUAAAAzCMCAFCJDAATAAAAAAAAAAAAAAAUAAAA5CMCAFiJDAAFAAAAAAAAAAAAAAAsAAAA/CMCAFCJDAB1AAAAAEIOEEIOGEEOIIMEjgOPAnwOGEIOEEIOCEEOIAAAAAAUAAAALCQCAKCJDAAFAAAAAAAAAAAAAAAcAAAARCQCAJiJDABRAAAAAEQOIAJHDghBDiAAAAAAACwAAABkJAIA2IkMAFQAAAAAQg4QQQ4YQQ4ggwOOAlkOGEEOEEIOCEUOIAAAAAAAADwAAACUJAIACIoMAAQCAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgPyAQ4oQg4gQg4YQg4QQg4IAAAAAAAUAAAA1CQCANiLDAAQAAAAAAAAAAAAAAAsAAAA7CQCANCLDABjAAAAAEEOEEEOGEEOIIMDhgJoDhhBDhBBDghBDiAAAAAAAAAsAAAAHCUCABCMDABeAAAAAEEOEEEOGEEOIIMDhgJjDhhBDhBBDghBDiAAAAAAAAAsAAAATCUCAECMDABgAAAAAEIOEEEOGEEOIIMDjgJjDhhBDhBCDghBDiAAAAAAAAAsAAAAfCUCAHCMDABNAAAAAEIOEEEOGEEOIIMDjgJWDhhBDhBCDghBDiAAAAAAAAAsAAAArCUCAJCMDABzAAAAAEIOEEEOGEEOIIMDjgJ0DhhBDhBCDghBDiAAAAAAAAAsAAAA3CUCAOCMDACWAAAAAEIOEEEOGEEOIIMDjgICXw4YQQ4QQg4IQQ4gAAAAAAAUAAAADCYCAFCNDAAFAAAAAAAAAAAAAAAsAAAAJCYCAEiNDABNAAAAAEIOEEEOGEEOIIMDjgJWDhhBDhBCDghBDiAAAAAAAABMAAAAVCYCAGiNDAAgAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIC4w44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAABwAAACkJgIAOI4MACYAAAAAQQ4QgwJkDggAAAAAAAAAFAAAAMQmAgBIjgwAGwAAAAAAAAAAAAAAFAAAANwmAgBQjgwAFwAAAAAAAAAAAAAAFAAAAPQmAgBYjgwABAAAAAAAAAAAAAAAHAAAAAwnAgBQjgwAEwAAAABBDhCDAlEOCAAAAAAAAABEAAAALCcCAFCODADrAAAAAEEOEEIOGEIOIEIOKEEOMEQOcIMGjAWOBI8DhgICzQ4wQQ4oQg4gQg4YQg4QQQ4IQQ5wAAAAAAAUAAAAdCcCAPiODAAIAAAAAAAAAAAAAAAUAAAAjCcCAPCODAAEAAAAAAAAAAAAAAAUAAAApCcCAOiODAAXAAAAAAAAAAAAAABMAAAAvCcCAPCODAAzBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgP+AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAABQAAAAMKAIA4JIMABEAAAAAAAAAAAAAABQAAAAkKAIA6JIMAA0AAAAAAAAAAAAAABwAAAA8KAIA4JIMAEAAAAAAQQ4QgwJwDghBDhAAAAAATAAAAFwoAgC0kwwA/gAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgJnDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAAAUAAAArCgCALCSDAAxAAAAAAAAAAAAAAA0AAAAxCgCAEqUDAA2AAAAAEEOEEEOGEEOIIMDhgJYDhhBDhBBDghBDiBUDhhBDhBBDggAAAAAABQAAAD8KAIAoJIMAAoAAAAAAAAAAAAAABQAAAAUKQIAOJQMAAEAAAAAAAAAAAAAABwAAAAsKQIAgJIMAGQAAAAAQQ4QgwICXA4IRQ4QQQ4IFAAAAEwpAgAQlAwAJwAAAABBDhBlDggAFAAAAGQpAgAolAwAEAAAAABBDhBODggAFAAAAHwpAgAglAwACAAAAAAAAAAAAAAAHAAAAJQpAgAYlAwALgAAAABBDhBVDghBDhAAAAAAAAAcAAAAtCkCACiUDACyAgAAAEEOEIMCA7ACDggAAAAAACQAAADUKQIAyJYMAM0AAAAAQQ4QQQ4YQQ4ggwOGAgLHDhhBDhBBDggsAAAA/CkCAHCXDABoAQAAAEEOEEEOGEEOIIMDhgIDSAEOGEEOEEEOCEEOIAAAAAAsAAAALCoCAJYhGABQAAAAAEIOEEEOGEEOIIMDjgJVDhhBDhBCDghFDiAAAAAAAABMAAAAXCoCAICYDAAVBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AKDB4wGjQWOBI8DhgIDLgQOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AIAADQAAACsKgIAZiEYAOkBAAAAQg4QQg4YQQ4gRw7AAoMEjgOPAgOCAQ4gQQ4YQg4QQg4IQQ7AAgAAPAAAAOQqAgAYnQwABAMAAABCDhBCDhhCDiBBDihHDqACgwWMBI4DjwID7QEOKEEOIEIOGEIOEEIOCE4OoAIAABwAAAAkKwIA2CIYADgAAAAAQQ4QgwJbDghFDhAAAAAATAAAAEQrAgDInwwACQcAAABBDhBCDhhCDiBCDihCDjBBDjhHDtADgweMBo0FjgSPA4YCAwEGDjhBDjBCDihCDiBCDhhCDhBBDghBDtADAAA8AAAAlCsCAIimDACbAgAAAEIOEEIOGEIOIEEOKEcOoAKDBYwEjgOPAgPvAQ4oQQ4gQg4YQg4QQg4ITA6gAgAALAAAANQrAgDoqAwAmwEAAABCDhBCDhhBDiCDBI4DjwIC5w4YQg4QQg4IUA4gAAAANAAAAAQsAgBYqgwAXgAAAABCDhBBDhhBDiCDA44CAkoOGEEOEEIOCEUOIEQOGEEOEEIOCAAAAAAcAAAAPCwCAICqDAD1AQAAAEQOQANxAQ4IQQ5AAAAAABQAAABcLAIAYKwMACcAAAAAAAAAAAAAABQAAAB0LAIAeKwMAE8AAAAAAAAAAAAAADwAAACMLAIAsKwMABkGAAAAQQ4QQg4YQg4gQQ4oRA5AgwWOBI8DhgIDAwYOKEEOIEIOGEIOEEEOCEEOQAAAAAAsAAAAzCwCAJCyDACpAgAAAEEOEEEOGEQOMIMDhgIDmwIOGEEOEEEOCEEOMAAAAAA0AAAA/CwCABC1DAD3AAAAAEEOEEIOGEEOIEQOQIMEjgOGAgLlDiBBDhhCDhBBDghBDkAAAAAAAEQAAAA0LQIA2LUMALYCAAAAQQ4QQg4YQg4gQg4oQQ4wRA5QgwaMBY4EjwOGAgOcAg4wQQ4oQg4gQg4YQg4QQQ4IQQ5QAAAAACwAAAB8LQIAULgMAGIBAAAAQQ4QQQ4YRA4wgwOGAgNUAQ4YQQ4QQQ4IQQ4wAAAAACQAAACsLQIAkLkMAPcAAAAAQQ4QRA4wgwIC6w4QQQ4IQQ4wAAAAAAAUAAAA1C0CAGi6DABDAAAAAAAAAAAAAAAUAAAA7C0CAKC6DADjAAAAAAAAAAAAAAAsAAAABC4CAHi7DABRAQAAAEEOEEIOGEEOIIMEjgOGAgNJAQ4YQg4QQQ4IAAAAAAAUAAAANC4CAKi8DABjAAAAAAAAAAAAAAAsAAAATC4CAAC9DADCAQAAAEEOEEEOGEQOMIMDhgIDCgEOGEEOEEEOCEEOMAAAAABMAAAAfC4CAKC+DAADBQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgOvBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAABwAAADMLgIAYMMMAOgAAAAAQQ4QgwIC5g4IAAAAAAAAHAAAAOwuAgAwxAwA5AAAAABEDjAC2g4IQQ4wAAAAAABMAAAADC8CAADFDABHCQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgLtDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAAACwAAABcLwIAAM4MAHwBAAAAQg4QQQ4YRA5AgwOOAgNTAQ4YQQ4QQg4IQQ5AAAAAABwAAACMLwIAUM8MADsAAAAAQQ4QgwJ5DggAAAAAAAAAJAAAAKwvAgBwzwwAFAEAAABBDhBEDjCDAgMIAQ4QQQ4IQQ4wAAAAABwAAADULwIAaNAMAEgAAAAAQQ4QgwICRg4IAAAAAAAAFAAAAPQvAgCY0AwA5wAAAAAAAAAAAAAARAAAAAwwAgBw0QwAmQgAAABBDhBCDhhCDiBCDihBDjBEDmCDBowFjgSPA4YCA38IDjBBDihCDiBCDhhCDhBBDghBDmAAAAAALAAAAFQwAgDI2QwAIwIAAABCDhBBDhhEDjCDA44CAxMCDhhBDhBCDghBDjAAAAAAPAAAAIQwAgDI2wwAnQIAAABBDhBCDhhCDiBBDihEDkCDBY4EjwOGAgM6Ag4oQQ4gQg4YQg4QQQ4IQQ5AAAAAACwAAADEMAIAKN4MANsBAAAAQg4QQQ4YRA4wgwOOAgPLAQ4YQQ4QQg4IQQ4wAAAAADQAAAD0MAIA2N8MAHIBAAAAQQ4QQg4YQQ4gRA5AgwSOA4YCA2ABDiBBDhhCDhBBDghBDkAAAAAAHAAAACwxAgAg4QwAMgAAAABBDhCDAmUOCEEOEEYOCAAkAAAATDECAEDhDAAAAwAAAEEOEEQOMIMCA+gBDhBBDghBDjAAAAAANAAAAHQxAgAY5AwA/gEAAABBDhBCDhhBDiBEDkCDBI4DhgID7AEOIEEOGEIOEEEOCEEOQAAAAAAsAAAArDECAODlDAC8AQAAAEIOEEEOGEQOQIMDjgIDMgEOGEEOEEIOCEEOQAAAAAA8AAAA3DECAHDnDABxAgAAAEEOEEIOGEIOIEEOKEQOQIMFjgSPA4YCAwcCDihBDiBCDhhCDhBBDghBDkAAAAAARAAAABwyAgCw6QwAowMAAABBDhBCDhhCDiBCDihBDjBEDlCDBowFjgSPA4YCAv0OMEEOKEIOIEIOGEIOEEEOCEEOUAAAAAAANAAAAGQyAgAY7QwA5AAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgLUDihBDiBCDhhCDhBCDghMAAAAnDICANDtDAA2AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMgAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAADsMgIAwO4MABMAAAAAAAAAAAAAACQAAAAEMwIAyO4MAGkEAAAAQQ4QgwIDpAIOCEEOEAPCAQ4IAAAAAABEAAAALDMCABDzDADHBAAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAgMtBA4wQg4oQg4gQg4YQg4QQQ4IQQ44AAAcAAAAdDMCAJj3DABIAAAAAEEOEIMCAkYOCAAAAAAAACQAAACUMwIAyPcMAE0AAAAAQg4QQQ4YQQ4ggwOOAgJFDhhBDhBCDghEAAAAvDMCAPD3DACSAQAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAgN+AQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAUAAAABDQCAEj5DABMAgAAAAAAAAAAAAAkAAAAHDQCAID7DABKAwAAAEEOEEQOMIMCAz4DDhBBDghBDjAAAAAAFAAAAEQ0AgCo/gwADAAAAAAAAAAAAAAATAAAAFw0AgCg/gwAMwEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIC2g44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAABMAAAArDQCAJD/DADlAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDnwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAAEwAAAD8NAIAMAINAH0CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgNVAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAATAAAAEw1AgBgBA0AqQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgICxQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAAAUAAAAnDUCAMAFDQAQAAAAAAAAAAAAAABMAAAAtDUCALgFDQAtAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgMKAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAABwAAAAENgIAmAYNAFEAAAAAQQ4QUg4IQQ4QAAAAAAAAHAAAACQ2AgDYBg0AVQAAAABBDhCDAlIOCEEOEAAAAAA0AAAARDYCABgHDQBmAAAAAEIOEEEOGEEOIIMDjgICUg4YQQ4QQg4IRQ4gRA4YQQ4QQg4IAAAAAEwAAAB8NgIAUAcNADEBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCAwkBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAMw2AgBACA0AIQEAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIC+Q44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAAAAUAAAAHDcCACAJDQAdAAAAAAAAAAAAAABMAAAANDcCACgJDQDzAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgICQQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6QAQAAAEQAAACENwIA2AwNAJMEAAAAQQ4QQg4YQg4gQg4oQQ4wRw7wAYMGjAWOBI8DhgIDdgQOMEEOKEIOIEIOGEIOEEEOCEEO8AEAACwAAADMNwIAMBENAK8AAAAAQg4QQQ4YRA5AgwOOAgKfDhhBDhBCDghBDkAAAAAAABwAAAD8NwIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAHAAAABw4AgCwEQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAcAAAAPDgCALARDQAZAAAAAEEOEIMCVw4IAAAAAAAAABwAAABcOAIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAHAAAAHw4AgCwEQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAcAAAAnDgCALARDQAZAAAAAEEOEIMCVw4IAAAAAAAAABwAAAC8OAIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAHAAAANw4AgCwEQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAcAAAA/DgCALARDQAZAAAAAEEOEIMCVw4IAAAAAAAAABwAAAAcOQIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAHAAAADw5AgCwEQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAcAAAAXDkCALARDQAZAAAAAEEOEIMCVw4IAAAAAAAAABwAAAB8OQIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAHAAAAJw5AgCwEQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAcAAAAvDkCALARDQAZAAAAAEEOEIMCVw4IAAAAAAAAABwAAADcOQIAsBENABkAAAAAQQ4QgwJXDggAAAAAAAAAFAAAAPw5AgCwEQ0AFwAAAAAAAAAAAAAAFAAAABQ6AgC4EQ0AFwAAAAAAAAAAAAAAFAAAACw6AgDAEQ0AFwAAAAAAAAAAAAAAFAAAAEQ6AgDIEQ0AFwAAAAAAAAAAAAAAFAAAAFw6AgDQEQ0AFwAAAAAAAAAAAAAAFAAAAHQ6AgDYEQ0AFwAAAAAAAAAAAAAAFAAAAIw6AgDgEQ0AFwAAAAAAAAAAAAAAFAAAAKQ6AgDoEQ0AFwAAAAAAAAAAAAAAFAAAALw6AgDwEQ0AFwAAAAAAAAAAAAAAFAAAANQ6AgD4EQ0AFwAAAAAAAAAAAAAAFAAAAOw6AgAAEg0AFwAAAAAAAAAAAAAAFAAAAAQ7AgAIEg0AFwAAAAAAAAAAAAAAFAAAABw7AgAQEg0AFwAAAAAAAAAAAAAAFAAAADQ7AgAYEg0AFwAAAAAAAAAAAAAAFAAAAEw7AgAgEg0AFwAAAAAAAAAAAAAAFAAAAGQ7AgAoEg0AHwAAAAAAAAAAAAAATAAAAHw7AgCgFA0AcQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDVgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAzDsCANAVDQCbAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgOCAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAAAcPAIAIBcNAO0AAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAoAOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAANAAAAGw8AgDAFw0AiwAAAABCDhBCDhhBDiCDBI4DjwICdw4YQg4QQg4IRQ4gQQ4YQg4QQg4IAAAUAAAApDwCAAgRDQAFAAAAAAAAAAAAAAAcAAAAvDwCAAARDQAiAAAAAEEOEIMCYA4IAAAAAAAAABQAAADcPAIAEBENABMAAAAAAAAAAAAAABQAAAD0PAIAGBENAAEAAAAAAAAAAAAAABQAAAAMPQIAEBENAAUAAAAAAAAAAAAAAEQAAAAkPQIACBENAL0BAAAAQg4QQg4YQg4gQg4oQQ4wRw7gAYMGjAWNBI4DjwIDngEOMEEOKEIOIEIOGEIOEEIOCEEO4AEAABQAAABsPQIAgBINABYAAAAAAAAAAAAAABQAAACEPQIAiBINAAgAAAAAAAAAAAAAABQAAACcPQIAIBcNAAEAAAAAAAAAAAAAABQAAAC0PQIAGBcNABEAAAAAAAAAAAAAABQAAADMPQIAIBcNABUAAAAAAAAAAAAAABQAAADkPQIAKBcNAAsAAAAAAAAAAAAAABQAAAD8PQIAIBcNAB0AAAAAAAAAAAAAABwAAAAUPgIAKBcNACoAAAAAQQ4QgwJkDggAAAAAAAAAHAAAADQ+AgA4Fw0AMgAAAABBDhCDAmwOCAAAAAAAAAAUAAAAVD4CAFgXDQAIAAAAAAAAAAAAAAAUAAAAbD4CAFAXDQAFAAAAAAAAAAAAAAAsAAAAhD4CAEgXDQDOAAAAAEIOEEEOGEQOQIMDjgICvg4YQQ4QQg4IQQ5AAAAAAABMAAAAtD4CAAgZDQAFAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgLdDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAAABwAAAAEPwIAmBcNAJAAAAAAQg4QQQ4YRw6wAYMDjgIAHAAAACQ/AgCoGQ0ANAAAAABBDhCDAnIOCAAAAAAAAAAcAAAARD8CAOgXDQCQAAAAAEIOEEEOGEcOsAGDA44CABQAAABkPwIAqBkNABwAAAAAAAAAAAAAADwAAAB8PwIA0FsNAN0BAAAAQg4QQg4YQg4gQQ4oRA5QgwWMBI4DjwIDxQEOKEEOIEIOGEIOEEIOCEEOUAAAAABMAAAAvD8CAHAZDQDAAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgIDCwMOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAACQAAAAMQAIAIF0NAJgAAAAAQQ4QRA4wgwIChQ4QQQ4IQQ4wAAAAAAAsAAAANEACALgcDQAVAQAAAEIOEEIOGEEOIIMEjgOPAgL4DhhCDhBCDghBDiAAAAAsAAAAZEACAGhdDQCiAAAAAEIOEEEOGEQOMIMDjgICkg4YQQ4QQg4IQQ4wAAAAAAAUAAAAlEACAHgdDQAFAAAAAAAAAAAAAAAsAAAArEACANBdDQDiAAAAAEIOEEEOGEQOMIMDjgICyw4YQQ4QQg4IQQ4wAAAAAAA8AAAA3EACAEAdDQCzAAAAAEIOEEIOGEIOIEEOKEQOQIMFjASOA48CApsOKEEOIEIOGEIOEEIOCEEOQAAAAAAAFAAAABxBAgDAHQ0AQQAAAAAAAAAAAAAAFAAAADRBAgD4HQ0ADAAAAAAAAAAAAAAAPAAAAExBAgDwHQ0A5wEAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgPXAQ4oQQ4gQg4YQg4QQg4IAAAAAAAAADwAAACMQQIAoB8NAIUBAAAAQg4QQg4YQg4gQQ4oRw7AA4MFjASOA48CA10BDihBDiBCDhhCDhBCDghBDsADAAA8AAAAzEECAPAgDQDnAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CA9cBDihBDiBCDhhCDhBCDggAAAAAAAAATAAAAAxCAgCgIg0AMQMAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgID+QIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAXEICAJAlDQDLAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOrAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAACwAAACsQgIAECgNAFYAAAAAQg4QQQ4YQQ4ggwOOAgJHDhhBDhBCDghBDiAAAAAAABwAAADcQgIAQCgNACMAAAAAQQ4QgwJaDghBDhAAAAAAHAAAAPxCAgBQKA0AsgAAAABBDhBEDiCDAgKrDhBBDggUAAAAHEMCAPAoDQAbAAAAAAAAAAAAAAAUAAAANEMCAPgoDQAkAAAAAAAAAAAAAABMAAAATEMCABApDQBdAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNHAw44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAACcQwIAICwNAAUAAAAAAAAAAAAAADwAAAC0QwIAuFsNAL8CAAAAQQ4QQg4YQg4gQQ4oRw7gA4MFjgSPA4YCA6YCDihBDiBCDhhCDhBBDghBDuADAAA8AAAA9EMCADheDQCRAgAAAEEOEEIOGEIOIEEOKEcO4AODBY4EjwOGAgLBDihBDiBCDhhCDhBBDghBDuADAAAATAAAADREAgCYKw0AhAMAAABBDhBCDhhCDiBCDihCDjBBDjhHDpAFgweMBo0FjgSPA4YCAw0CDjhBDjBCDihCDiBCDhhCDhBBDghIDpAFAAAUAAAAhEQCAEhgDQAVAAAAAAAAAAAAAAAkAAAAnEQCAFBgDQAoAAAAAEIOEEEOGEEOIIMDjgJgDhhBDhBCDggAFAAAAMREAgBYYA0AIQAAAAAAAAAAAAAAJAAAANxEAgBwYA0AsAAAAABCDhBBDhhEDjCDA44CAqUOGEEOEEIOCEwAAAAERQIAWC4NANwDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6QBYMHjAaNBY4EjwOGAgNwAg44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ6QBQAATAAAAFRFAgDoMQ0ArwgAAABBDhBCDhhCDiBCDihCDjBBDjhHDuAMgweMBo0FjgSPA4YCA2IDDjhBDjBCDihCDiBCDhhCDhBBDghBDuAMAAAUAAAApEUCAFhgDQChAAAAAAAAAAAAAAAcAAAAvEUCADA6DQBAAAAAAEQOIHYOCEEOIAAAAAAAADwAAADcRQIA0GANADsBAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgMpAQ4oQg4gQg4YQg4QQg4IAAAAAAAUAAAAHEYCABA6DQAFAAAAAAAAAAAAAAA8AAAANEYCALhhDQARAgAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAwECDihBDiBCDhhCDhBCDggAAAAAAAAAHAAAAHRGAgDIOQ0AgQAAAABEDiACdw4IQQ4gAAAAAAAkAAAAlEYCADg6DQBjAAAAAEEOEHoOCEEOEEwOCEUOEFUOCAAAAAAANAAAALxGAgCAOg0AyAAAAABCDhBCDhhBDiBEDlCDBI4DjwICtA4gQQ4YQg4QQg4IQQ5QAAAAAAA0AAAA9EYCABg7DQDPAAAAAEIOEEIOGEEOIEQOQIMEjgOPAgK7DiBBDhhCDhBCDghBDkAAAAAAABwAAAAsRwIAsDsNACIAAAAAQQ4QgwJgDggAAAAAAAAAPAAAAExHAgDAOw0AAQIAAABCDhBCDhhBDiBEDjCDBI4DjwIDsAEOIEEOGEIOEEIOCEUOMHQOIEEOGEIOEEIOCEQAAACMRwIAkD0NADoCAAAAQQ4QQg4YQg4gQg4oQQ4wRw7wA4MGjAWOBI8DhgIClg4wQQ4oQg4gQg4YQg4QQQ4IQQ7wAwAAABQAAADURwIAiD8NAFEAAAAAAAAAAAAAADwAAADsRwIA0D8NAOIAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICcw4oQQ4gQg4YQg4QQg4IQQ4wAAAAAABMAAAALEgCAIBADQARBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgPcBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAACQAAAB8SAIAkGENAH4BAAAAQQ4QgwICaA4IQQ4QAxMBDggAAAAAAABMAAAApEgCAChGDQBjAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNNAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAAD0SAIASEcNAHcAAAAAAAAAAAAAADwAAAAMSQIAsEcNAE8BAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgM2AQ4oQg4gQg4YQg4QQg4IQQ4wAABMAAAATEkCAMBIDQCUAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOwAiDB4wGjQWOBI8DhgIDcwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOwAgAAEwAAACcSQIAEEsNAB8DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QA4MHjAaNBY4EjwOGAgJ0DjhBDjBCDihCDiBCDhhCDhBBDghBDtADAAAARAAAAOxJAgDgTQ0A1wEAAABBDhBCDhhCDiBCDihBDjBHDvADgwaMBY4EjwOGAgO6AQ4wQQ4oQg4gQg4YQg4QQQ4IQQ7wAwAAFAAAADRKAgB4Tw0ABgAAAAAAAAAAAAAAFAAAAExKAgBwTw0ABgAAAAAAAAAAAAAAFAAAAGRKAgBoTw0AIAAAAAAAAAAAAAAANAAAAHxKAgBwTw0AAQEAAABCDhBCDhhBDiBHDsABgwSOA48CAlgOIEEOGEIOEEIOCEEOwAEAAAAUAAAAtEoCAEhQDQAGAAAAAAAAAAAAAAAUAAAAzEoCAEBQDQAGAAAAAAAAAAAAAAAUAAAA5EoCADhQDQAGAAAAAAAAAAAAAAA8AAAA/EoCAJBgDQCQAQAAAEIOEEIOGEIOIEEOKEQOUIMFjASOA48CA3gBDihBDiBCDhhCDhBCDghBDlAAAAAARAAAADxLAgDgYQ0AGAEAAABCDhBCDhhCDiBCDihBDjBEDnCDBowFjQSOA48CApAOMEEOKEIOIEIOGEIOEEIOCEEOcAAAAAAALAAAAIRLAgC4Yg0AGQIAAABCDhBBDhhEDmCDA44CAlkOGEEOEEIOCEEOYAAAAAAATAAAALRLAgCoZA0AGwEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICtg44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5AAAAAAAA8AAAABEwCAHhlDQDuAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAlcOKEEOIEIOGEIOEEIOCEEOMAAAAAAAZAAAAERMAgAoZg0A+wAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICxQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAAAkAAAArEwCAMBmDQDSAQAAAEEOEEQOIIMCA7UBDhBBDghBDiAAAAAATAAAANRMAgB4aA0AcAEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDVQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAJE0CAJhpDQAvAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMLAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAAB0TQIAeGsNAC8CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAwsCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAHAAAAMRNAgBYbQ0AIgAAAABGDhCDAlYOCEXDAAAAAABMAAAA5E0CAGhtDQCLAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkASDB4wGjQWOBI8DhgIDagIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAQAAEwAAAA0TgIAqG8NAEoEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6wB4MHjAaNBY4EjwOGAgMgBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wBwAAPAAAAIROAgCocw0AQgEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAzABDihCDiBCDhhCDhBCDggAAAAAADwAAADETgIAuHQNABgCAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIDCAIOKEEOIEIOGEIOEEIOCAAAAAAAAAAcAAAABE8CAChMDQAcAAAAAEYOEIMCUA4IRcMAAAAAAEwAAAAkTwIAeHYNAC8CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAwsCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAAHRPAgBYeA0Aqw0AAABBDhBCDhhCDiBCDihCDjBBDjhHDoACgweMBo0FjgSPA4YCA3YNDjhBDjBCDihCDiBCDhhCDhBBDghBDoACAAA8AAAAxE8CALiFDQBiAgAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAwcBDihBDiBCDhhCDhBCDghBDjAAAAAAHAAAAARQAgDohw0AFgAAAABBDhCDAlQOCAAAAAAAAABMAAAAJFACAOiHDQDRAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgO7AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABwAAAB0UAIAeIkNABYAAAAAQQ4QgwJUDggAAAAAAAAAHAAAAJRQAgB4iQ0AGQAAAABBDhCDAlcOCAAAAAAAAAAUAAAAtFACAHiJDQAJAAAAAAAAAAAAAABMAAAAzFACAHCJDQCoCQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgN5CQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAABQAAAAcUQIA0JINAAwAAAAAAAAAAAAAABQAAAA0UQIAyJINABEAAAAAAAAAAAAAAEQAAABMUQIAkJUNABUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAvsOOEEOMEIOKEIOIEIOGEIOEEEOCBQAAACUUQIAiJINAA4AAAAAAAAAAAAAABwAAACsUQIAgJINADEAAAAAQQ4QgwJvDggAAAAAAAAAHAAAAMxRAgCgkg0ALgAAAABBDhCDAmwOCAAAAAAAAAA8AAAA7FECALCSDQDOAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CdA4oQQ4gQg4YQg4QQg4IQQ4wAAAAAAAAJAAAACxSAgDQlQ0AvQAAAABCDhBBDhhBDiCDA44CArUOGEEOEEIOCDwAAABUUgIAGJMNAGYBAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIDVgEOKEEOIEIOGEIOEEIOCAAAAAAAAAAUAAAAlFICACiWDQC0AAAAAAAAAAAAAAAUAAAArFICANCWDQC0AAAAAAAAAAAAAAA0AAAAxFICAHiXDQBGAQAAAEIOEEEOGEEOIIMDjgIDFQEOGEEOEEIOCEUOIFwOGEEOEEIOCEEOIEwAAAD8UgIAkJgNALMBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QA4MHjAaNBY4EjwOGAgOSAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAwAATAAAAExTAgAAmg0AogIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDiAIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAUAAAAnFMCAGCcDQARAAAAAAAAAAAAAAAUAAAAtFMCAGicDQAIAAAAAAAAAAAAAABMAAAAzFMCAGCcDQCEAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNMAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAABwAAAAcVAIAoJ8NAEkAAAAAQQ4QgwJ7DghBDhAAAAAALAAAADxUAgDQnw0AigAAAABCDhBCDhhBDiCDBI4DjwICgA4YQg4QQg4IAAAAAAAAFAAAAGxUAgAwoA0ABQAAAAAAAAAAAAAAHAAAAIRUAgAooA0AGAAAAABBDhCDAlIOCAAAAAAAAAA8AAAApFQCACigDQDcAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICzA4oQg4gQg4YQg4QQQ4IAAAAAAAATAAAAORUAgDIoA0AzgIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDogIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABkAAAANFUCAEijDQCMBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgPdAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5wA18CDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAABwAAACcVQIAcKcNANcAAAAAQQ4QgwICzw4IQQ4QRQ4IFAAAALxVAgAwqA0AegAAAAAAAAAAAAAAPAAAANRVAgCYqA0AhwAAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAmkOKEIOIEIOGEIOEEIOCEEOMAAAAEwAAAAUVgIA6KgNABAEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QCIMHjAaNBY4EjwOGAgPjAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QCAAAXAAAAGRWAgCorA0AuQAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAmIOKEEOIEIOGEIOEEIOCEUOMAJjDihBDiBCDhhCDhBCDghBDjAOKEEOIEIOGEIOEEIOCEUOMAAATAAAAMRWAgAIrQ0A7AIAAABBDhBCDhhCDiBCDihCDjBBDjhHDqAIgweMBo0FjgSPA4YCA8sCDjhBDjBCDihCDiBCDhhCDhBBDghBDqAIAAAsAAAAFFcCAKivDQBbAAAAAEIOEEIOGEEOIIMEjgOPAgJRDhhCDhBCDggAAAAAAAA8AAAARFcCANivDQCLAAAAAEIOEEEOGEEOIIMDjgJhDhhBDhBCDghFDiACTg4YQQ4QQg4IQQ4gRA4YQQ4QQg4ITAAAAIRXAgBYww0ADwIAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA+UBDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAABMAAAA1FcCANivDQDzAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOoAiDB4wGjQWOBI8DhgID0gIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAgAACwAAAAkWAIAiLINAGMAAAAAQg4QQg4YQQ4ggwSOA48CAlkOGEIOEEIOCAAAAAAAADwAAABUWAIAyLINAJMAAAAAQg4QQQ4YQQ4ggwOOAmEOGEEOEEIOCEUOIAJWDhhBDhBCDghBDiBEDhhBDhBCDghMAAAAlFgCAFjEDQAjAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOoAGDB4wGjQWOBI8DhgID/gEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAEAAEwAAADkWAIA2LINALYCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA6ACDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAADRZAgBItQ0AwAIAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDpwIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAcAAAAhFkCALi3DQAUAQAAAEEOEIMCAxIBDggAAAAAACQAAACkWQIAuLgNAOoAAAAAQQ4QQQ4YgwOGAgLmDhBBDggAAAAAAAAcAAAAzFkCAIC5DQB4AAAAAEEOEIMCAnYOCAAAAAAAAEwAAADsWQIA4LkNAEIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAx0BDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAPAAAADxaAgDgug0ArQAAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCApEOKEIOIEIOGEIOEEEOCEEOMAAAADwAAAB8WgIAULsNALQAAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKWDihCDiBCDhhCDhBCDghBDjAAAAA0AAAAvFoCAGDEDQBPAQAAAEEOEEIOGEIOIEEOKIMFjgSPA4YCA0MBDiBCDhhCDhBBDggAAAAAADQAAAD0WgIAeMUNAGMBAAAAQQ4QQg4YQg4gQQ4ogwWOBI8DhgIDVwEOIEIOGEIOEEEOCAAAAAAATAAAACxbAgBguw0AcAEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDVQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAfFsCAIC8DQBwAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNVAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAADQAAADMWwIAEMYNAE8BAAAAQQ4QQg4YQg4gQQ4ogwWOBI8DhgIDQwEOIEIOGEIOEEEOCAAAAAAANAAAAARcAgAoxw0AYwEAAABBDhBCDhhCDiBBDiiDBY4EjwOGAgNXAQ4gQg4YQg4QQQ4IAAAAAABMAAAAPFwCADC9DQBwAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNVAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAABQAAACMXAIAEMgNADcAAAAAQQ4QAAAAABQAAACkXAIAOMgNACgAAAAAQQ4QAAAAABQAAAC8XAIAUMgNADcAAAAAQQ4QAAAAABQAAADUXAIAeMgNACgAAAAAQQ4QAAAAABQAAADsXAIAkMgNADcAAAAAQQ4QAAAAABQAAAAEXQIAuMgNACgAAAAAQQ4QAAAAABQAAAAcXQIA0MgNADcAAAAAQQ4QAAAAABQAAAA0XQIA+MgNACgAAAAAQQ4QAAAAABQAAABMXQIAEMkNADcAAAAAQQ4QAAAAABQAAABkXQIAOMkNACgAAAAAQQ4QAAAAABQAAAB8XQIAUMkNADcAAAAAQQ4QAAAAABQAAACUXQIAeMkNACgAAAAAQQ4QAAAAABQAAACsXQIAkMkNADcAAAAAQQ4QAAAAABQAAADEXQIAuMkNACgAAAAAQQ4QAAAAABQAAADcXQIA0MkNADcAAAAAQQ4QAAAAABQAAAD0XQIA+MkNACgAAAAAQQ4QAAAAABQAAAAMXgIAEMoNADcAAAAAQQ4QAAAAABQAAAAkXgIAOMoNACgAAAAAQQ4QAAAAABQAAAA8XgIAUMoNAAYAAAAAQQ4QAAAAABQAAABUXgIASMoNAAYAAAAAQQ4QAAAAABQAAABsXgIAQMoNAEMAAAAAAAAAAAAAACwAAACEXgIAeMoNAPEBAAAAQg4QQg4YQQ4ggwSOA48CA+cBDhhCDhBCDggAAAAAABQAAAC0XgIAyPYNAC0AAAAAWw4QTg4IADQAAADMXgIAMMwNAAsBAAAAQg4QQg4YQQ4gRA5wgwSOA48CAvcOIEEOGEIOEEIOCEEOcAAAAAAAJAAAAARfAgCo9g0ARAAAAABBDhBvDghBDhBODghBDhBDDggAAAAAACQAAAAsXwIA0PYNADoAAAAAQQ4QaQ4IQQ4QSg4IQQ4QQw4IAAAAAABMAAAAVF8CALjMDQBTAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDDwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAACkXwIAmPYNADoAAAAAQQ4QaQ4IQQ4QSg4IQQ4QQw4IAAAAAABMAAAAzF8CAKDODQBTAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDDwIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAAAcYAIAYPYNADoAAAAAQQ4QaQ4IQQ4QSg4IQQ4QQw4IAAAAAABMAAAARGACAIjQDQBDAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgID/wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAACUYAIAKPYNADgAAAAAQQ4QaA4IQQ4QSQ4IQQ4QQw4IAAAAAABMAAAAvGACAGDSDQBiAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDHgIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAAAMYQIA8PUNADgAAAAAQQ4QaA4IQQ4QSQ4IQQ4QQw4IAAAAAABMAAAANGECAFjUDQBSAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDDgIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAACEYQIAuPUNADIAAAAAQQ4QZQ4IQQ4QRg4IQQ4QQw4IAAAAAABMAAAArGECAEDWDQBgAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDHAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAAD8YQIAgPUNAEAAAAAAQQ4QZQ4IQQ4QVA4IQQ4QQw4IAAAAAABMAAAAJGICACjYDQBQAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDDAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAAB0YgIASPUNAFMAAAAAQQ4QZQ4IQQ4QZw4IQQ4QQw4IAAAAAABMAAAAnGICAADaDQCBAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDPQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAADsYgIAMPUNAEEAAAAAQQ4QZQ4IQQ4QVQ4IQQ4QQw4IAAAAAABMAAAAFGMCABjcDQCBAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDPQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAABkYwIACPUNAFMAAAAAQQ4QZQ4IQQ4QZw4IQQ4QQw4IAAAAAABMAAAAjGMCADDeDQCBAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDPQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAACQAAADcYwIA8PQNAEEAAAAAQQ4QZQ4IQQ4QVQ4IQQ4QQw4IAAAAAABMAAAABGQCAEjgDQCBAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOkAGDB4wGjQWOBI8DhgIDPQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAEAABQAAABUZAIAyPQNADwAAAAAXg4QWg4IAEwAAABsZAIAcOINAM4DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6wAYMHjAaNBY4EjwOGAgOLAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAQAAFAAAALxkAgCg9A0APAAAAABeDhBaDggATAAAANRkAgDY5Q0A7wMAAABBDhBCDhhCDiBCDihCDjBBDjhHDsABgweMBo0FjgSPA4YCA4EDDjhBDjBCDihCDiBCDhhCDhBBDghBDsABAAAcAAAAJGUCAHj0DQCAAAAAAEQOIAJyDghBDiAAAAAAABwAAABEZQIAWOkNAF4AAAAARA4gAlQOCEEOIAAAAAAAHAAAAGRlAgC49A0AgQAAAABEDiACcw4IQQ4gAAAAAAAcAAAAhGUCAHjpDQBeAAAAAEQOIAJUDghBDiAAAAAAABwAAACkZQIACPUNAIwAAAAARA4wAnoOCEEOMAAAAAAAHAAAAMRlAgCY6Q0AcAAAAABEDjACYg4IQQ4wAAAAAAAUAAAA5GUCAFj1DQAtAAAAAFsOEE4OCABMAAAA/GUCANDpDQAkAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgKkDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAABQAAABMZgIAIPUNACoAAAAAWA4QTg4IADwAAABkZgIAmOoNAMIAAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgKyDihCDiBCDhhCDhBBDggAAAAAAABMAAAApGYCAPj0DQDGAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICTA4oQg4gQg4YQg4QQQ4IRQ4wAlkOKEIOIEIOGEIOEEEOCEEOMDwAAAD0ZgIA2OoNAKIAAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgKSDihCDiBCDhhCDhBBDggAAAAAAABMAAAANGcCAEjrDQAAAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgPjAg44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEQAAACEZwIA6PQNANoAAAAASg4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgLBDihCDiBCDhhCDhBBDgjDzM7PxgAAAAAAAAAAADwAAADMZwIAgPUNABgBAAAASg4QQg4YQQ4ggwSOA48CAksOCMPOz0QOIIMEjgOPAgK3DhhCDhBCDgjDzs8AAAAUAAAADGgCAGD2DQAZAAAAAAAAAAAAAAAkAAAAJGgCAGj2DQDCAAAAAEIOEEEOGEQOMIMDjgICtw4YQQ4QQg4IJAAAAExoAgAQ9w0AzQAAAABCDhBBDhhEDjCDA44CAsIOGEEOEEIOCDwAAAB0aAIAuPcNADcBAAAAQg4QQg4YQg4gQQ4oRA5wgwWMBI4DjwIDJAEOKEEOIEIOGEIOEEIOCAAAAAAAAAAUAAAAtGgCALj4DQAIAAAAAEEOEEYOCAAUAAAAzGgCALD4DQAIAAAAAEEOEEYOCABEAAAA5GgCAKj4DQA4AgAAAEEOEEIOGEIOIEIOKEEOMEQOYIMGjAWOBI8DhgIDHgIOMEEOKEIOIEIOGEIOEEEOCEEOYAAAAABMAAAALGkCAKD6DQBrBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO4AKDB4wGjQWOBI8DhgIDSgQOOEEOMEIOKEIOIEIOGEIOEEEOCEEO4AIAAEQAAAB8aQIAwP4NAJcDAAAAQQ4QQg4YQg4gQg4oQQ4wRA5wgwaMBY4EjwOGAgPEAg4wQQ4oQg4gQg4YQg4QQQ4IQQ5wAAAAABQAAADEaQIAGAIOAAgAAAAAAAAAAAAAABQAAADcaQIAEAIOAAEBAAAAAAAAAAAAABQAAAD0aQIACAMOABoAAAAARA4gVQ4IAEwAAAAMagIAEAMOAGEBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAycBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAATAAAAFxqAgAwBA4AXgQAAABBDhBCDhhCDiBCDihCDjBBDjhHDsAJgweMBo0FjgSPA4YCAz0EDjhBDjBCDihCDiBCDhhCDhBBDghBDsAJAABMAAAArGoCAEAIDgA5BgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOsAmDB4wGjQWOBI8DhgIDGAYOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAkAABwAAAD8agIAMA4OAEUAAAAAQQ4QgwICQw4IAAAAAAAALAAAABxrAgBgDg4AVwAAAABCDhBCDhhBDiCDBI4DjwJrDhhCDhBCDghBDiAAAAAAHAAAAExrAgCQDg4AUAAAAABBDhCDAnEOCEEOEAAAAAAkAAAAbGsCAMAODgCcAAAAAEEOEEQOMIMCAnYOEEEOCEEOMAAAAAAANAAAAJRrAgA4Dw4AlgAAAABCDhBCDhhBDiBEDkCDBI4DjwICgg4gQQ4YQg4QQg4IQQ5AAAAAAAAUAAAAzGsCAGAVDgAFAAAAAAAAAAAAAABMAAAA5GsCAIgPDgDABQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOoASDB4wGjQWOBI8DhgIDggUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOoAQAABQAAAA0bAIACBUOAAUAAAAAAAAAAAAAABQAAABMbAIAABUOAAUAAAAAAAAAAAAAABQAAABkbAIA+BQOAAUAAAAAAAAAAAAAACwAAAB8bAIA8BQOAJgAAAAAQg4QQg4YQQ4ggwSOA48CAo4OGEIOEEIOCAAAAAAAADwAAACsbAIAYBUOABYBAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgMEAQ4oQg4gQg4YQg4QQg4IAAAAAABMAAAA7GwCAEAWDgCIEAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkASDB4wGjQWOBI8DhgIDHA8OOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAQAABQAAAA8bQIAgCYOAAYAAAAAAAAAAAAAAEwAAABUbQIAeCYOAIAMAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gA4MHjAaNBY4EjwOGAgP6Cw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAwAAFAAAAKRtAgCoMg4ABQAAAAAAAAAAAAAATAAAALxtAgCgMg4AnwcAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCAx8HDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAABMAAAADG4CAPA5DgB6AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDXAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAABQAAABcbgIAIDwOANQAAAAAAAAAAAAAAEQAAAB0bgIA6DwOAPsAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAuEOOEEOMEIOKEIOIEIOGEIOEEEOCBwAAAC8bgIAoD0OAAkBAAAARA5QAv8OCEEOUAAAAAAATAAAANxuAgCQPg4AKQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCAwsCDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAAA0AAAALG8CAHBADgBoAAAAAEIOEEIOGEEOIEcOsASDBI4DjwICUQ4gQQ4YQg4QQg4IQQ6wBAAAADQAAABkbwIAqEAOAGgAAAAAQg4QQg4YQQ4gRw6wCIMEjgOPAgJRDiBBDhhCDhBCDghBDrAIAAAANAAAAJxvAgDgQA4AaAAAAABCDhBCDhhBDiBHDrAMgwSOA48CAlEOIEEOGEIOEEIOCEEOsAwAAAA0AAAA1G8CABhBDgBoAAAAAEIOEEIOGEEOIEcOsBCDBI4DjwICUQ4gQQ4YQg4QQg4IQQ6wEAAAADQAAAAMcAIAUEEOAGgAAAAAQg4QQg4YQQ4gRw6wFIMEjgOPAgJRDiBBDhhCDhBCDghBDrAUAAAALAAAAERwAgCIQQ4AfAIAAABCDhBBDhhEDoABgwOOAgMTAg4YQQ4QQg4IQQ6AAQAATAAAAHRwAgDYQw4AcQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA1MCDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAAA8AAAAxHACAAhGDgB6AQAAAEEOEEIOGEIOIEEOKEQOUIMFjgSPA4YCA2QBDihBDiBCDhhCDhBBDghBDlAAAAAATAAAAARxAgBIRw4A2AIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDwgIOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAUAAAAVHECANhJDgBgAQAAAAAAAAAAAAB8AAAAbHECACBLDgBZAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgN/Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5gAnoOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYGcOOEEOMEIOKEIOIEIOGEIOEEEOCEIOYAAAAEwAAADscQIAAE4OAH4LAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA68KDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAATAAAADxyAgAwWQ4AaAIAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA0oCDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAAAsAAAAjHICAFBbDgAyAAAAAEIOEEIOGEEOIIMEjgOPAmgOGEIOEEIOCAAAAAAAAAA8AAAAvHICAGBbDgCgAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICkA4oQg4gQg4YQg4QQQ4IAAAAAAAAFAAAAPxyAgDAWw4ACgEAAAAAAAAAAAAAZAAAABRzAgC4XA4AsQIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDIAEOOEEOMEIOKEIOIEIOGEIOEEEOCEUOQAL+DjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAA8AAAAfHMCABBfDgAgBAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwIDtgIOKEIOIEIOGEIOEEIOCEEOMAAARAAAALxzAgDwYg4AfwAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICaQ44QQ4wQg4oQg4gQg4YQg4QQQ4ITAAAAAR0AgD4ZA4AuwMAAABBDhBCDhhCDiBCDihCDjBBDjhEDpABgweMBo0FjgSPA4YCA4QDDjhBDjBCDihCDiBCDhhCDhBBDghBDpABAABMAAAAVHQCANhiDgDOAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOgAGDB4wGjQWOBI8DhgIDsAEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAABQAAACkdAIAGGgOAJAAAAAAAAAAAAAAAEwAAAC8dAIAkGgOAMQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA64CDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAANAAAAAx1AgAQaw4APAEAAABCDhBCDhhBDiCDBI4DjwIDKAEOGEIOEEIOCEUOIEEOGEIOEEIOCAAsAAAARHUCABhsDgBgAgAAAEIOEEEOGEEOIIMDjgIDUwIOGEEOEEIOCEEOIAAAAABkAAAAdHUCAEhuDgALAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLVDjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAABQAAADcdQIA8G4OAIEAAAAAAAAAAAAAACwAAAD0dQIAaG8OAC0BAAAAQg4QQQ4YQQ4ggwOOAgMgAQ4YQQ4QQg4IQQ4gAAAAACwAAAAkdgIAaHAOAC8BAAAAQg4QQQ4YQQ4ggwOOAgMiAQ4YQQ4QQg4IQQ4gAAAAADwAAABUdgIAaHEOAIUBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDJgEOKEEOIEIOGEIOEEEOCEEOMAAAAAAUAAAAlHYCALhyDgCkAQAAAAAAAAAAAAAUAAAArHYCAFB0DgAXAAAAAAAAAAAAAAAsAAAAxHYCAFh0DgAUAQAAAE8OEEEOGEEOIIMDhgIDAAEOGEEOEEEOCAAAAAAAAAAUAAAA9HYCAEh1DgAZAAAAAAAAAAAAAABMAAAADHcCAFB1DgDuBwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgPQBw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAACQAAABcdwIA8HwOACICAAAAQQ4QgwIDHgEOCEEOEAMBAQ4IAAAAAAAkAAAAhHcCAPh+DgBOAgAAAEIOEEEOGIMDjgIDGQEOEEIOCEEOGAAATAAAAKx3AgAggQ4AlgMAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDPQEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAUAAAA/HcCAHCEDgC2AQAAAAAAAAAAAAAkAAAAFHgCABiGDgDPAQAAAEEOEIMCAz0BDghBDhACjw4IAAAAAAAARAAAADx4AgDAhw4AbQIAAABBDhBCDhhCDiBCDihCDjBBDjiDB4wGjQWOBI8DhgIDWQIOMEIOKEIOIEIOGEIOEEEOCAAAAAAAFAAAAIR4AgDoiQ4AbgEAAAAAAAAAAAAATAAAAJx4AgBAiw4AXQkAAABBDhBCDhhCDiBCDihCDjBBDjhHDvABgweMBo0FjgSPA4YCA30EDjhBDjBCDihCDiBCDhhCDhBBDghBDvABAABMAAAA7HgCAFCUDgAhCQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO8AGDB4wGjQWOBI8DhgIDfQQOOEEOMEIOKEIOIEIOGEIOEEEOCEEO8AEAACwAAAA8eQIAMJ0OAOEAAAAAQg4QQg4YQQ4ggwSOA48CAqEOGEIOEEIOCEEOIAAAAEwAAABseQIA8J0OAB0CAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7wBYMHjAaNBY4EjwOGAgP8AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7wBQAATAAAALx5AgDAoQ4AmAMAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDbwMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAA8AAAADHoCAHCfDgBMAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAqkOKEEOIEIOGEIOEEIOCEEOMAAAAAAAFAAAAEx6AgCAoA4ArgAAAAAAAAAAAAAATAAAAGR6AgC4pA4AlwMAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDbgMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAUAAAAtHoCAAioDgA0AAAAAAAAAAAAAAAsAAAAzHoCADCoDgAyAAAAAEIOEEIOGEEOIIMEjgOPAmgOGEIOEEIOCAAAAAAAAAAUAAAA/HoCAECoDgAoAAAAAAAAAAAAAAAUAAAAFHsCAFioDgA+AAAAAAAAAAAAAAAUAAAALHsCAICoDgBMAAAAAAAAAAAAAAAUAAAARHsCALioDgA9AAAAAAAAAAAAAAA8AAAAXHsCAOCoDgCMAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgICfA4oQg4gQg4YQg4QQQ4IAAAAAAAAFAAAAJx7AgAwqQ4ADgAAAAAAAAAAAAAAFAAAALR7AgAoqQ4AKwAAAAAAAAAAAAAAHAAAAMx7AgBAqQ4AYAAAAABBDhCDAgJYDghFDhBBDghMAAAA7HsCAICpDgAVBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgP/Aw44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAAA8fAIAUK0OAAYAAAAAAAAAAAAAACwAAABUfAIASK0OAEYCAAAAQg4QQQ4YgwOOAgPCAQ4QQg4IRQ4YAncOEEIOCAAAACwAAACEfAIAaK8OAIEAAAAAQQ4QQg4YQQ4ggwSOA4YCAnkOGEIOEEEOCAAAAAAAABwAAAC0fAIAyK8OADQAAAAAQQ4QgwJyDggAAAAAAAAAPAAAANR8AgDorw4AcAEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgNiAQ4oQQ4gQg4YQg4QQQ4IAAAAAAAAACQAAAAUfQIAGLEOAOMAAAAAQQ4QQQ4YQQ4ggwOGAgLdDhhBDhBBDghEAAAAPH0CAOCxDgAIAgAAAEEOEEIOGEIOIEIOKEEOMEQOQIMGjAWOBI8DhgID7gEOMEEOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAhH0CAKizDgAlAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgMMAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABwAAADUfQIAiLQOAHQBAAAAQQ4QgwIDcgEOCAAAAAAATAAAAPR9AgDotQ4AxgMAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDrQMOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAUAAAARH4CAGi5DgARAAAAAAAAAAAAAAA8AAAAXH4CAHC5DgCgAQAAAEIOEEIOGEIOIEEOKEQOUIMFjASOA48CA4gBDihBDiBCDhhCDhBCDghBDlAAAAAAFAAAAJx+AgDQug4AAwAAAAAAAAAAAAAAFAAAALR+AgDIug4ABQAAAAAAAAAAAAAAFAAAAMx+AgDAug4ARAAAAAAAAAAAAAAAPAAAAOR+AgD4ug4ApwAAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCApcOKEIOIEIOGEIOEEEOCAAAAAAAABQAAAAkfwIAaLsOALEAAAAAAAAAAAAAABQAAAA8fwIAELwOAA8AAAAAQQ4QTQ4IACQAAABUfwIACLwOAEIAAAAAQg4QQQ4YQQ4ggwOOAnoOGEEOEEIOCAA0AAAAfH8CADC8DgB7AAAAAEIOEEIOGEEOIIMEjgOPAgJnDhhCDhBCDghFDiBBDhhCDhBCDggAAEwAAAC0fwIAeLwOABUEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA/8DDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAFAAAAASAAgBIwA4ABgAAAAAAAAAAAAAALAAAAByAAgBAwA4ARgIAAABCDhBBDhiDA44CA8IBDhBCDghFDhgCdw4QQg4IAAAALAAAAEyAAgBgwg4AgQAAAABBDhBCDhhBDiCDBI4DhgICeQ4YQg4QQQ4IAAAAAAAAHAAAAHyAAgDAwg4ANAAAAABBDhCDAnIOCAAAAAAAAAA8AAAAnIACAODCDgBwAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCA2IBDihBDiBCDhhCDhBBDggAAAAAAAAAJAAAANyAAgAQxA4A4wAAAABBDhBBDhhBDiCDA4YCAt0OGEEOEEEOCEQAAAAEgQIA2MQOAAgCAAAAQQ4QQg4YQg4gQg4oQQ4wRA5AgwaMBY4EjwOGAgPuAQ4wQQ4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAABMgQIAoMYOACUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAwwBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAHAAAAJyBAgCAxw4AdAEAAABBDhCDAgNyAQ4IAAAAAABMAAAAvIECAODIDgDGAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgOtAw44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAAAMggIAYMwOABEAAAAAAAAAAAAAADwAAAAkggIAaMwOAKYBAAAAQg4QQg4YQg4gQQ4oRw6QA4MFjASOA48CA4sBDihBDiBCDhhCDhBCDghBDpADAAAUAAAAZIICANjNDgADAAAAAAAAAAAAAAAUAAAAfIICANDNDgAFAAAAAAAAAAAAAAAUAAAAlIICAMjNDgBEAAAAAAAAAAAAAAA8AAAArIICAADODgCnAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIClw4oQg4gQg4YQg4QQQ4IAAAAAAAAFAAAAOyCAgBwzg4AsQAAAAAAAAAAAAAAFAAAAASDAgAYzw4AIQAAAABGDhBXDggAFAAAAByDAgAwzw4AHgAAAABJDhBUDggAFAAAADSDAgA4zw4AIQAAAABJDhBXDggAJAAAAEyDAgBQzw4AYwAAAABCDhBBDhhEDjCDA44CAlgOGEEOEEIOCCwAAAB0gwIAmM8OAGkAAAAAQg4QQg4YQQ4ggwSOA48CAl8OGEIOEEIOCAAAAAAAABQAAACkgwIACNwOAK0AAAAAAAAAAAAAADQAAAC8gwIAwM8OAOAAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIC0A4oQQ4gQg4YQg4QQg4IPAAAAPSDAgBo0A4A5AAAAABCDhBCDhhCDiBCDihBDjBEDkCDBowFjQSOA48CAs0OMEEOKEIOIEIOGEIOEEIOCEQAAAA0hAIAGNEOAAgBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAvIOOEEOMEIOKEIOIEIOGEIOEEEOCEwAAAB8hAIA4NEOADUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAxwBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAMyEAgDQ0g4A0wEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDvQEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAHIUCAGDUDgAXAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgP+AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAABshQIAMNYOAA8AAAAAAAAAAAAAAEQAAACEhQIAKNYOACYBAAAAQg4QQg4YQg4gQg4oQQ4wRA5AgwaMBY0EjgOPAgMPAQ4wQQ4oQg4gQg4YQg4QQg4IAAAAAAAAAEwAAADMhQIAENcOAEIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAywBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAByGAgAQ2A4AfAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDYwEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAbIYCAPDZDgASAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AGDB4wGjQWOBI8DhgID8QIOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0AEAADwAAAC8hgIAwNwOAK4AAAAAQg4QQg4YQg4gQQ4oRA5ggwWMBI4DjwIClg4oQQ4gQg4YQg4QQg4IQQ5gAAAAAAAcAAAA/IYCADDdDgBAAAAAAEQOIHYOCEEOIAAAAAAAADQAAAAchwIAUN0OADwBAAAAQQ4QQg4YQQ4gRA6AAYMEjgOGAgMqAQ4gQQ4YQg4QQQ4IQQ6AAQAATAAAAFSHAgBY3g4AXQIAAABBDhBCDhhCDiBCDihCDjBBDjhEDrABgweMBo0FjgSPA4YCAz8CDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAABkAAAApIcCAGjgDgCvAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgKBDjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAAGQAAAAMiAIAsOAOACwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAvMOOEEOMEIOKEIOIEIOGEIOEEEOCEUOUEQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAAPAAAAHSIAgB44Q4AhQAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJtDihBDiBCDhhCDhBCDghBDjAAAAAAAEwAAAC0iAIAyOEOAHIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAssOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAALAAAAASJAgD44g4AUgAAAABCDhBBDhhBDiCDA44CAkUOGEEOEEIOCEEOIAAAAAAAPAAAADSJAgAo4w4AhQAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJtDihBDiBCDhhCDhBCDghBDjAAAAAAABQAAAB0iQIAeOMOAJIAAAAAAAAAAAAAABQAAACMiQIAAOQOADYAAAAAAAAAAAAAABQAAACkiQIAKOQOACIAAAAAAAAAAAAAABQAAAC8iQIAQOQOAAUAAAAAAAAAAAAAABQAAADUiQIAOOQOABEAAAAAAAAAAAAAABQAAADsiQIAQOQOABEAAAAAAAAAAAAAABQAAAAEigIASOQOABEAAAAAAAAAAAAAABQAAAAcigIAUOQOABEAAAAAAAAAAAAAACwAAAA0igIAWOQOAFoAAAAAQQ4QQQ4YQQ4ggwOGAgJGDhhBDhBBDghBDiAAAAAAABQAAABkigIAiOQOAAgAAAAAAAAAAAAAABQAAAB8igIAgOQOAAgAAAAAAAAAAAAAABQAAACUigIAeOQOABEAAAAAQQ4QTw4IABQAAACsigIAgOQOABQAAAAAAAAAAAAAAGQAAADEigIAiOQOAKMBAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgMEAQ4oQg4gQg4YQg4QQQ4IRQ4wAkkOKEIOIEIOGEIOEEEOCEEOMFkOKEIOIEIOGEIOEEEOCEUOMAAAAAAANAAAACyLAgDQ5Q4AhgAAAABBDhBBDhhBDiCDA4YCAlQOGEEOEEEOCEEOIGUOGEEOEEEOCAAAAABMAAAAZIsCACjmDgB2AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgM7AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAABQAAAC0iwIAWOcOAAgAAAAAAAAAAAAAADQAAADMiwIAUOcOAKMAAAAAQg4QQg4YQQ4ggwSOA48CAm4OGEIOEEIOCEEOIGIOGEIOEEIOCAAAFAAAAASMAgDI5w4AAQAAAAAAAAAAAAAAHAAAAByMAgDA5w4AZAIAAABBDhCDAgM6Ag4IQQ4QAAA8AAAAPIwCABDqDgAnAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAugOKEEOIEIOGEIOEEIOCEEOMAAAAAAAHAAAAHyMAgAA6w4AHwAAAABBDhCDAl0OCAAAAAAAAAAUAAAAnIwCAADrDgABAAAAAAAAAAAAAAAUAAAAtIwCAPjqDgABAAAAAAAAAAAAAAAkAAAAzIwCAPDqDgCFAAAAAEEOEIMCAmEOCEEOEE8OCEUOEAAAAAAAHAAAAPSMAgBSEQ8AQAAAAABBDhBPDghBDhBqDggAAAAUAAAAFI0CADjrDgAtAAAAAAAAAAAAAAAUAAAALI0CAFDrDgARAAAAAAAAAAAAAABMAAAARI0CAFjrDgDVAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgK3DjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAAACwAAACUjQIA6OsOAFwAAAAAQg4QQg4YQQ4ggwSOA48CAk4OGEIOEEIOCAAAAAAAAEwAAADEjQIAGOwOAFUBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMNAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAFAAAABSOAgAo7Q4AEQAAAAAAAAAAAAAATAAAACyOAgAw7Q4A1QAAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgICtw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAAsAAAAfI4CAMDtDgBcAAAAAEIOEEIOGEEOIIMEjgOPAgJODhhCDhBCDggAAAAAAAA0AAAArI4CAPDtDgBoAAAAAEIOEEEOGEEOIIMDjgJsDhhBDhBCDghBDiBsDhhBDhBCDggAAAAAABQAAADkjgIAKO4OAA0AAAAAAAAAAAAAADwAAAD8jgIAIO4OAPUAAAAAQQ4QQg4YQg4gQQ4oRA5wgwWOBI8DhgIC1Q4oQQ4gQg4YQg4QQQ4IQQ5wAAAAAAA8AAAAPI8CAODuDgCOAAAAAEEOEEIOGEIOIEEOKEQOUIMFjgSPA4YCAngOKEEOIEIOGEIOEEEOCEEOUAAAAAAARAAAAHyPAgAw7w4A1AAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICvg44QQ4wQg4oQg4gQg4YQg4QQQ4INAAAAMSPAgDI7w4AFAEAAABCDhBBDhhBDiCDA44CSw4YQQ4QQg4IQQ4gAtoOGEEOEEIOCEUOIAAUAAAA/I8CALDwDgBpAAAAAAAAAAAAAABkAAAAFJACAHIODwBsCQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgMhCA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wbA44QQ4wQg4oQg4gQg4YQg4QQQ4IQg5wAAAAAGQAAAB8kAIAoPAOALcEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAxQEDjhBDjBCDihCDiBCDhhCDhBBDghBDkACgQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAHAAAAOSQAgD49A4ASAAAAABBDhCDAgJGDggAAAAAAABcAAAABJECACj1DgClAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0AqDB4wGjQWOBI8DhgIDqgEO2ApBDuAKSQ7QCgKFDjhBDjBCDihCDiBCDhhCDhBBDghBDtAKAAAAAAAcAAAAZJECAHj3DgB0AQAAAEEOEIMCAxYBDghBDhAAABQAAACEkQIA2PgOAC0AAAAAAAAAAAAAABQAAACckQIA8PgOADAAAAAAAAAAAAAAADQAAAC0kQIACPkOAIcAAAAAQg4QQQ4YQQ4ggwOOAlcOGEEOEEIOCEEOIHkOGEEOEEIOCEUOIAAATAAAAOyRAgBg+Q4AXQYAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDqwUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAUAAAAPJICAHD/DgAMAAAAAAAAAAAAAABkAAAAVJICAGj/DgC4AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNrAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5AAkgOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAADQAAAC8kgIAwAEPAAwBAAAAQg4QQQ4YQQ4ggwOOAgKTDhhBDhBCDghBDiACSg4YQQ4QQg4IRQ4gNAAAAPSSAgCYAg8AhgAAAABBDhBBDhhBDiCDA4YCAlQOGEEOEEEOCEEOIGUOGEEOEEEOCAAAAAAUAAAALJMCAPACDwAXAAAAAAAAAAAAAAA0AAAARJMCAPgCDwDkAAAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAtQOKEEOIEIOGEIOEEIOCEwAAAB8kwIAsAMPAKIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgNDAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAATAAAAMyTAgAQBQ8AywAAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgICrQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAAsAAAAHJQCAJAFDwBSAAAAAEIOEEIOGEEOIIMEjgOPAgJEDhhCDhBCDggAAAAAAAAUAAAATJQCAMAFDwAHAAAAAAAAAAAAAAAUAAAAZJQCALgFDwAvAAAAAAAAAAAAAABMAAAAfJQCANAFDwBAAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAsYOKEEOIEIOGEIOEEIOCEEOMAJeDihBDiBCDhhCDhBCDggAAAAAAEwAAADMlAIAwAYPACgBAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgMAAQ4oQg4gQg4YQg4QQg4IQQ4wSQ4oQg4gQg4YQg4QQg4IAAAAHAAAAByVAgCgBw8AdQAAAABBDhCDAngOCEEOEAAAAAAUAAAAPJUCAAAIDwABAAAAAAAAAAAAAAAUAAAAVJUCAPgHDwAaAAAAAAAAAAAAAAAUAAAAbJUCAAAIDwAKAAAAAAAAAAAAAAAUAAAAhJUCAPgHDwAhAAAAAAAAAAAAAAAUAAAAnJUCABAIDwADAAAAAAAAAAAAAAAUAAAAtJUCAEgSDwABAAAAAAAAAAAAAAAUAAAAzJUCAEASDwABAAAAAAAAAAAAAAAUAAAA5JUCADgSDwABAAAAAAAAAAAAAAA0AAAA/JUCAMAHDwCJAAAAAEEOEEEOGEEOIIMDhgICeA4YQQ4QQQ4IRQ4gRA4YQQ4QQQ4IAAAAABwAAAA0lgIA+BEPAB4AAAAAQQ4QgwJVDghBDhAAAAAAHAAAAFSWAgD4EQ8AGwAAAABBDhBSDghBDhAAAAAAAAAcAAAAdJYCAPgRDwAqAAAAAEEOEIMCaA4IAAAAAAAAABQAAACUlgIACBIPAAkAAAAAAAAAAAAAABQAAACslgIAABIPADUAAAAAAAAAAAAAABQAAADElgIAKBIPAAkAAAAAAAAAAAAAACwAAADclgIAIBIPAIAAAAAAQg4QQQ4YQQ4ggwOOAgJuDhhBDhBCDghBDiAAAAAAADQAAAAMlwIAcBIPAC0BAAAAQg4QQg4YQQ4gRw7AAoMEjgOPAgL0DiBBDhhCDhBCDghBDsACAAAAFAAAAESXAgBoEw8AGQAAAABBDhBXDggAFAAAAFyXAgBwEw8AAQAAAAAAAAAAAAAAFAAAAHSXAgBoEw8AGAAAAAAAAAAAAAAANAAAAIyXAgBwEw8AYQAAAABCDhBCDhhBDiCDBI4DjwICTQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IAAAcAAAAxJcCAKgTDwCAAAAAAEEOEIMCAmMOCEEOEFYOCBwAAADklwIACBQPACgBAAAAQQ4QgwIC+w4IQQ4QAAAAFAAAAASYAgAYFQ8ABwAAAAAAAAAAAAAAFAAAAByYAgAQFQ8AAQAAAAAAAAAAAAAATAAAADSYAgAIFQ8AjgEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDbAEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAcAAAAhJgCAEgWDwBeAAAAAEEOEGsOCEEOEGwOCAAAACQAAACkmAIAiBYPAFEAAAAAQQ4QXg4IQQ4QbA4IAAAAAAAAAAAAAAAUAAAAzJgCAMAWDwDkAAAAAEEOEALiDggcAAAA5JgCAJgXDwBVAAAAAEEOEAJNDghBDhBBDggAAEwAAAAEmQIApxgPAAoCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA7MBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAATAAAAFSZAgCIFw8AzwAAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgICsQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAAsAAAApJkCABEaDwADAgAAAEIOEEIOGEEOIIMEjgOPAgJ+DhhCDhBCDghBDiAAAABMAAAA1JkCAOgbDwDqAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgOlAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAABQAAAAkmgIAiB8PAH4AAAAAAAAAAAAAABQAAAA8mgIA8B8PAIQAAAAAAAAAAAAAAEwAAABUmgIAaCAPAPMBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA8QBDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAALAAAAKSaAgAYIg8A7AEAAABBDhBBDhhEDkCDA4YCA94BDhhBDhBBDghBDkAAAAAAPAAAANSaAgDYIw8AgQEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CA28BDihCDiBCDhhCDhBCDggAAAAAACwAAAAUmwIAKCUPANwBAAAAQQ4QQQ4YRA5AgwOGAgPOAQ4YQQ4QQQ4IQQ5AAAAAABwAAABEmwIA2CYPAB8AAAAAQQ4QgwJdDggAAAAAAAAAFAAAAGSbAgDYJg8AZgAAAAAAAAAAAAAALAAAAHybAgAwJw8A1wAAAABCDhBBDhhEDjCDA44CAscOGEEOEEIOCEEOMAAAAAAARAAAAKybAgDgJw8ABQIAAABBDhBCDhhCDiBCDihBDjBEDlCDBowFjgSPA4YCA+sBDjBBDihCDiBCDhhCDhBBDghBDlAAAAAARAAAAPSbAgCoKQ8A7QEAAABBDhBCDhhCDiBCDihBDjBEDlCDBowFjgSPA4YCA9MBDjBBDihCDiBCDhhCDhBBDghBDlAAAAAAFAAAADycAgBQKw8ArgAAAAAAAAAAAAAAFAAAAFScAgDoKw8AqgAAAAAAAAAAAAAAHAAAAGycAgCALA8AaAAAAABEDiACXg4IQQ4gAAAAAAAcAAAAjJwCANAsDwBwAAAAAEQOIAJmDghBDiAAAAAAABwAAACsnAIAIC0PAHAAAAAARA4gAmYOCEEOIAAAAAAAFAAAAMycAgBwLQ8AHAAAAAAAAAAAAAAAFAAAAOScAgB4LQ8AQAAAAAAAAAAAAAAAFAAAAPycAgCgLQ8APQAAAAAAAAAAAAAAFAAAABSdAgDILQ8ANwAAAAAAAAAAAAAAFAAAACydAgDwLQ8ANwAAAAAAAAAAAAAAFAAAAESdAgAYLg8ANwAAAAAAAAAAAAAAFAAAAFydAgBALg8ANwAAAAAAAAAAAAAAFAAAAHSdAgBoLg8ANwAAAAAAAAAAAAAAFAAAAIydAgCQLg8ANwAAAAAAAAAAAAAAFAAAAKSdAgC4Lg8AUwAAAAAAAAAAAAAAFAAAALydAgAALw8AlQAAAAAAAAAAAAAAHAAAANSdAgCILw8AhAAAAABEDiACeg4IQQ4gAAAAAAAcAAAA9J0CAPgvDwCMAAAAAEQOIAKCDghBDiAAAAAAABwAAAAUngIAaDAPAIwAAAAARA4gAoIOCEEOIAAAAAAAFAAAADSeAgDYMA8ALwAAAAAAAAAAAAAAFAAAAEyeAgDwMA8AUwAAAAAAAAAAAAAAFAAAAGSeAgA4MQ8ATQAAAAAAAAAAAAAATAAAAHyeAgBwMQ8AzQQAAABBDhBCDhhCDiBCDihCDjBBDjhHDsABgweMBo0FjgSPA4YCA6wEDjhBDjBCDihCDiBCDhhCDhBBDghBDsABAABMAAAAzJ4CAPA1DwBAAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgMiAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAEwAAAAcnwIA4DcPAP4EAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgOlBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAFAAAAGyfAgCQPA8ABQAAAAAAAAAAAAAAHAAAAISfAgCIPA8ADgAAAABBDhCDAkwOCAAAAAAAAAAUAAAApJ8CAHg8DwAlAAAAAAAAAAAAAAAcAAAAvJ8CAJA8DwAOAAAAAEEOEIMCTA4IAAAAAAAAAEwAAADcnwIAgDwPAC8DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMRAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAAHAAAACygAgBgPw8ATQAAAABEDiACQw4IQQ4gAAAAAAAcAAAATKACAJA/DwCzAAAAAEQOIAKpDghBDiAAAAAAABwAAABsoAIAMEAPAI8AAAAARA4gAoUOCEEOIAAAAAAAHAAAAIygAgCgQA8AlwAAAABEDiACjQ4IQQ4gAAAAAAAcAAAArKACACBBDwCXAAAAAEQOIAKNDghBDiAAAAAAABQAAADMoAIAoEEPAAQAAAAAAAAAAAAAABQAAADkoAIAmEEPAB0AAAAAAAAAAAAAABQAAAD8oAIAoEEPADEAAAAAAAAAAAAAABQAAAAUoQIAyEEPAAwAAAAAAAAAAAAAABwAAAAsoQIAwEEPAJIAAAAARA4gAogOCEEOIAAAAAAAFAAAAEyhAgBAQg8ABQAAAAAAAAAAAAAAFAAAAGShAgA4Qg8ABQAAAAAAAAAAAAAAFAAAAHyhAgAwQg8APAAAAAAAAAAAAAAAHAAAAJShAgBYQg8AWgAAAABBDhCDAgJYDggAAAAAAAAsAAAAtKECAJhCDwBiAAAAAEEOEEIOGEEOIIMEjgOGAgJaDhhCDhBBDggAAAAAAABEAAAA5KECANhCDwBiAQAAAEEOEEIOGEIOIEIOKEEOMEQOcIMGjAWOBI8DhgIDSAEOMEEOKEIOIEIOGEIOEEEOCEEOcAAAAAA0AAAALKICAABEDwDMAAAAAEIOEEIOGEEOIEQOYIMEjgOPAgK4DiBBDhhCDhBCDghBDmAAAAAAAEwAAABkogIAmEQPAIkBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA2sBDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAANAAAALSiAgDYRQ8AzwAAAABCDhBCDhhBDiBEDmCDBI4DjwICuw4gQQ4YQg4QQg4IQQ5gAAAAAAA0AAAA7KICAHBGDwDPAAAAAEIOEEIOGEEOIEQOYIMEjgOPAgK7DiBBDhhCDhBCDghBDmAAAAAAAEwAAAAkowIACEcPADMCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6wAYMHjAaNBY4EjwOGAgMVAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAQAATAAAAHSjAgD4SA8A+QAAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCAtsOOEEOMEIOKEIOIEIOGEIOEEEOCEEOgAEAAAA0AAAAxKMCAKhJDwDHAgAAAEIOEEIOGEEOIEQOcIMEjgOPAgOzAg4gQQ4YQg4QQg4IQQ5wAAAAADwAAAD8owIAQEwPANAEAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgID+gMOKEEOIEIOGEIOEEEOCEEOMAAAAABEAAAAPKQCANBQDwBgBAAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAgNMBA4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAcAAAAhKQCAOhUDwAhAAAAAEEOEIMCXw4IAAAAAAAAABQAAACkpAIA+FQPAA4AAAAAAAAAAAAAACQAAAC8pAIA8FQPADIAAAAAQg4QQQ4YQQ4ggwOOAmoOGEEOEEIOCAAkAAAA5KQCAAhVDwAyAAAAAEIOEEEOGEEOIIMDjgJqDhhBDhBCDggAJAAAAAylAgAgVQ8AMQAAAABCDhBBDhhBDiCDA44CaA4YQQ4QQg4IACQAAAA0pQIAOFUPADEAAAAAQg4QQQ4YQQ4ggwOOAmgOGEEOEEIOCAAcAAAAXKUCAFBVDwAjAAAAAEEOEIMCYQ4IAAAAAAAAABwAAAB8pQIAYFUPACMAAAAAQQ4QgwJhDggAAAAAAAAAFAAAAJylAgBwVQ8ABQAAAAAAAAAAAAAAFAAAALSlAgBoVQ8ABQAAAAAAAAAAAAAAJAAAAMylAgBgVQ8AagAAAABBDhBEDkCDAgJeDhBBDghBDkAAAAAAADwAAAD0pQIAqFUPADoBAAAAQg4QQg4YQg4gQQ4oRA5QgwWMBI4DjwIDGgEOKEEOIEIOGEIOEEIOCEEOUAAAAAAUAAAANKYCAKhWDwAFAAAAAAAAAAAAAAAsAAAATKYCAKBWDwC0AAAAAEIOEEEOGEQOQIMDjgJzDhhBDhBCDghBDkAAAAAAAABMAAAAfKYCADBXDwBdAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgOvAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAADwAAADMpgIAQFkPAFwCAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwIDvAEOKEEOIEIOGEIOEEIOCEUOMAAAAAAcAAAADKcCAGBbDwAXAAAAAEEOEIMCVQ4IAAAAAAAAAEwAAAAspwIAYFsPAEUCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAycCDjhBDjBCDihCDiBCDhhCDhBBDghBDmAAAAAATAAAAHynAgBgXQ8AFQQAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgID9wMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAA0AAAAzKcCADBhDwA8AQAAAEIOEEIOGEEOIIMEjgOPAgMoAQ4YQg4QQg4IRQ4gQQ4YQg4QQg4IAEwAAAAEqAIAOGIPAJMDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA3UDDjhBDjBCDihCDiBCDhhCDhBBDghBDnAAAAAANAAAAFSoAgCIZQ8A4gEAAABCDhBCDhhBDiBEDmCDBI4DjwIDyQEOIEEOGEIOEEIOCEEOYAAAAABMAAAAjKgCAEBnDwB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAADcqAIAcGkPAHcCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA1wCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAATAAAACypAgCgaw8AZAIAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDSQIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAABMAAAAfKkCAMBtDwB3AgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNcAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAADMqQIA8G8PAGQCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA0kCDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAPAAAAByqAgAQcg8AEwEAAABCDhBCDhhCDiBBDihEDlCDBYwEjgOPAgL7DihBDiBCDhhCDhBCDghBDlAAAAAAABQAAABcqgIA8HIPAAEAAAAAAAAAAAAAABQAAAB0qgIA6HIPAAIAAAAAAAAAAAAAAEwAAACMqgIA4HIPAFUEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6wAYMHjAaNBY4EjwOGAgM3BA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAQAAFAAAANyqAgAgsQ8AOwAAAAAAAAAAAAAAZAAAAPSqAgBIsQ8ArwAAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICgQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABEAAAAXKsCAJCxDwD+AgAAAEIOEEIOGEIOIEIOKEEOMEQOYIMGjAWNBI4DjwID1QIOMEEOKEIOIEIOGEIOEEIOCEEOYAAAAAA0AAAApKsCACh2DwAEAQAAAEIOEEIOGEIOIEEOKEEOMIMFjASOA48CAvQOKEEOIEIOGEIOEEIOCCQAAADcqwIAELQPAP4AAAAAQg4QQQ4YQQ4ggwOOAgLyDhhBDhBCDghkAAAABKwCAOi0DwDsAAAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgK+DjhBDjBCDihCDiBCDhhCDhBBDghFDkBEDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAABQAAABsrAIAcHYPAIAAAAAAAAAAAAAAABQAAACErAIA2HYPAC0AAAAAAAAAAAAAABQAAACcrAIA8HYPAEMAAAAAAAAAAAAAAEwAAAC0rAIAKHcPABICAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5wgweMBo0FjgSPA4YCA/kBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAARAAAAAStAgDYtA8A8QIAAABCDhBCDhhCDiBCDihBDjBEDmCDBowFjQSOA48CA8gCDjBBDihCDiBCDhhCDhBCDghBDmAAAAAATAAAAEytAgCweA8AZwkAAABBDhBCDhhCDiBCDihCDjBBDjhHDrACgweMBo0FjgSPA4YCAzkJDjhBDjBCDihCDiBCDhhCDhBBDghBDrACAABMAAAAnK0CANCBDwB3CAAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOkAKDB4wGjQWOBI8DhgID+wEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOkAIAACwAAADsrQIA8LYPANUAAAAAQg4QQQ4YQQ4ggwOOAgLFDhhBDhBCDghBDiAAAAAAABQAAAAcrgIAoLcPADsAAAAAAAAAAAAAABQAAAA0rgIAuIkPAE0AAAAAAAAAAAAAAGQAAABMrgIAsLcPAK8AAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAoEOOEEOMEIOKEIOIEIOGEIOEEEOCEUOQEQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOQAAAAAAANAAAALSuAgCIiQ8A7gAAAABCDhBCDhhBDiBEDnCDBI4DjwIC2g4gQQ4YQg4QQg4IQQ5wAAAAAAA8AAAA7K4CAECKDwDbAAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwICyQ4oQg4gQg4YQg4QQg4IAAAAAAAALAAAACyvAgDgig8AlAAAAABCDhBCDhhBDiCDBI4DjwICig4YQg4QQg4IAAAAAAAARAAAAFyvAgBQiw8AWgQAAABCDhBCDhhCDiBCDihBDjBEDkCDBowFjQSOA48CAz4EDjBBDihCDiBCDhhCDhBCDghBDkAAAAAATAAAAKSvAgBojw8AZg8AAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDSA8OOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAAAUAAAA9K8CALi2DwBXAAAAAAAAAAAAAAAcAAAADLACAHCeDwASAAAAAEEOEIMCUA4IAAAAAAAAAEwAAAAssAIAcJ4PAGECAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgNAAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAATAAAAHywAgCQoA8AjgEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDeAEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABMAAAAzLACANChDwDuAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgPYAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABwAAAAcsQIA8LUPAH0AAAAAQQ4QgwICVA4IRQ4QAAAAHAAAADyxAgBQtg8AhQAAAABBDhCDAgJcDghFDhAAAABEAAAAXLECAMC2DwAfAgAAAEEOEEIOGEIOIEIOKEIOMEEOOIMHjAaNBY4EjwOGAgMLAg4wQg4oQg4gQg4YQg4QQQ4IAAAAAABkAAAApLECAJi4DwC8AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOGAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAEwAAAAMsgIA8LkPAJoBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA38BDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAJAAAAFyyAgBAuw8AYAAAAABCDhBBDhhBDiCDA44CAlgOGEEOEEIOCEwAAACEsgIAeLsPAJoBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA38BDjhBDjBCDihCDiBCDhhCDhBBDghBDkAAAAAAZAAAANSyAgDIvA8ALgEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIC+A44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABkAAAAPLMCAJC9DwC8AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgOGAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IRQ5ARA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAABQAAACkswIA6L4PAAEAAAAAAAAAAAAAABQAAAC8swIA0KAPAAUAAAAAAAAAAAAAABQAAADUswIAyKAPABcAAAAAQQ4QVQ4IABQAAADsswIA0KAPAAsAAAAAAAAAAAAAABQAAAAEtAIAyKAPAAEAAAAAAAAAAAAAABQAAAActAIAwKAPAAUAAAAAAAAAAAAAAEwAAAA0tAIAuKAPABQFAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7gAYMHjAaNBY4EjwOGAgOpBA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7gAQAAFAAAAIS0AgCIpQ8AFgAAAAAAAAAAAAAAFAAAAJy0AgCQpQ8ACAAAAAAAAAAAAAAAHAAAALS0AgCIpQ8AKwAAAABBDhCDAmUOCAAAAAAAAAAcAAAA1LQCAJilDwAzAAAAAEEOEIMCbQ4IAAAAAAAAABwAAAD0tAIAuKUPACkAAAAAQQ4QgwJnDggAAAAAAAAAJAAAABS1AgDIpQ8ANgAAAABCDhBBDhhBDiCDA44Cbg4YQQ4QQg4IABQAAAA8tQIA4KUPABIAAAAAAAAAAAAAABwAAABUtQIA6KUPAEQAAAAAQQ4QgwJ+DggAAAAAAAAAHAAAAHS1AgAYpg8ATAAAAABBDhCDAgJGDggAAAAAAAAcAAAAlLUCAEimDwASAAAAAEEOEIMCUA4IAAAAAAAAAEwAAAC0tQIA6LwPAKIBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA4wBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAJAAAAAS2AgBIvg8AXwAAAABCDhBBDhhBDiCDA44CAlcOGEEOEEIOCDwAAAAstgIAgL4PAJcCAAAAQg4QQg4YQg4gQQ4oRA5QgwWMBI4DjwIDdwIOKEEOIEIOGEIOEEIOCEEOUAAAAAAkAAAAbLYCAODADwDSAAAAAEIOEEEOGEEOIIMDjgICyg4YQQ4QQg4ILAAAAJS2AgCYwQ8A8gEAAABBDhBCDhhBDiCDBI4DhgID6gEOGEIOEEEOCAAAAAAATAAAAMS2AgBoww8AqgIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDawIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAABMAAAAFLcCAMjFDwDVAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgOtAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAEwAAABktwIAWMkPAMMAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAqoOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAAFAAAALS3AgDYyQ8AAQAAAAAAAAAAAAAAFAAAAMy3AgDQyQ8AAgAAAAAAAAAAAAAAFAAAAOS3AgDIyQ8AEgAAAAAAAAAAAAAAHAAAAPy3AgDQyQ8AIwAAAABBDhCDAlwOCEEOEAAAAAAcAAAAHLgCAODJDwBYAAAAAEEOEIMCAlYOCAAAAAAAADwAAAA8uAIAIMoPAJoBAAAAQg4QQg4YQg4gQQ4oRA6AAYMFjASOA48CA4IBDihBDiBCDhhCDhBCDghBDoABAABMAAAAfLgCAIDLDwARBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDLQMOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAABwAAADMuAIA8NIPAGsAAAAAQQ4QgwICZQ4IAAAAAAAALAAAAOy4AgAw0Q8A/gAAAABCDhBBDhhEDpABgwOOAgLuDhhBDhBCDghBDpABAAAAFAAAABy5AgAA0g8AAwAAAAAAAAAAAAAAFAAAADS5AgD40Q8AAwAAAAAAAAAAAAAAFAAAAEy5AgDw0Q8AEgAAAAAAAAAAAAAAJAAAAGS5AgD40Q8AYAAAAABCDhBBDhhBDiCDA44CAlgOGEEOEEIOCBwAAACMuQIAoNIPABIAAAAAQQ4QgwJMDggAAAAAAAAAFAAAAKy5AgCw0g8AJwAAAAAAAAAAAAAAPAAAAMS5AgDI0g8ASgQAAABCDhBCDhhCDiBBDihHDsARgwWMBI4DjwIDLwQOKEEOIEIOGEIOEEIOCEEOwBEAABQAAAAEugIA2NYPACcAAAAAAAAAAAAAADwAAAAcugIA8NYPAEoEAAAAQg4QQg4YQg4gQQ4oRw7AEYMFjASOA48CAy8EDihBDiBCDhhCDhBCDghBDsARAAAUAAAAXLoCAADbDwBFAAAAAAAAAAAAAABMAAAAdLoCADjbDwAgBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgPXAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5wAAAAABQAAADEugIACN8PAEUAAAAAAAAAAAAAABQAAADcugIAQN8PAAUAAAAAAAAAAAAAABwAAAD0ugIAON8PALMMAAAARA6AAQOuDA4IAAAAAAAAHAAAABS7AgDY6w8Apg4AAABEDmADoQ4OCAAAAAAAAABMAAAANLsCAGj6DwC5CwAAAEEOEEIOGEIOIEIOKEIOMEEOOEcO0BODB4wGjQWOBI8DhgIDmAsOOEEOMEIOKEIOIEIOGEIOEEEOCEEO0BMAAEwAAACEuwIA2AUQANYMAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AE4MHjAaNBY4EjwOGAgP1BA44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AEwAATAAAANS7AgBoEhAAsgEAAABBDhBCDhhCDiBCDihCDjBBDjhEDoABgweMBo0FjgSPA4YCA5QBDjhBDjBCDihCDiBCDhhCDhBBDghBDoABAAA0AAAAJLwCANgTEACCAAAAAEEOEEIOGEEOIEQOMIMEjgOGAgJwDiBBDhhCDhBBDghBDjAAAAAAAEwAAABcvAIAMBQQAI0BAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgNvAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAATAAAAKy8AgBwFRAAfAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDXgEOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAA8AAAA/LwCAKAWEACaAgAAAEIOEEIOGEIOIEEOKEQOUIMFjASOA48CA4ICDihBDiBCDhhCDhBCDghBDlAAAAAAVAAAADy9AgAAGRAAYggAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgJ6DmhBDnBJDjhFDmAD9wcOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYEwAAACUvQIAGCEQACgEAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAwIEDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAFAAAAOS9AgD4JBAASQAAAAAAAAAAAAAAFAAAAPy9AgAwJRAAPwAAAAAAAAAAAAAATAAAABS+AgBYJRAAeQQAAABKDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDVwQOOEEOMEIOKEIOIEIOGEIOEEEOCMPMzc7PxgBMAAAAZL4CAIgpEAB1BQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgNXBQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAACQAAAC0vgIAuC4QAFMAAAAAQQ4QRA4wgwICRw4QQQ4IQQ4wAAAAAABMAAAA3L4CAPAuEADfAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgO5Ag44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAACwAAAAsvwIAgDEQAFsAAAAAQQ4QRA4ggwJqDihCDjBJDiBaDhBBDghBDiAAAAAAAEwAAABcvwIAsDEQAKwGAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA4oGDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAPAAAAKy/AgAQOBAA/AAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgLqDihBDiBCDhhCDhBBDghBDjAAAAAAABQAAADsvwIA0DgQABkAAAAAAAAAAAAAACQAAAAEwAIA2DgQAFwAAAAAQQ4QgwICQQ4IQQ4QQw4IQQ4QVA4IAABMAAAALMACABA5EABoAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNSAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAAB8wAIAMDoQABwBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAwYBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAANAAAAMzAAgAAOxAA3QAAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgLPDihBDiBCDhhCDhBBDggUAAAABMECAKg7EAAvAAAAAAAAAAAAAAAUAAAAHMECAMA7EAA9AAAAAAAAAAAAAAA8AAAANMECAOg7EAA+AwAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAzADDihBDiBCDhhCDhBBDggAAAAAAAAAFAAAAHTBAgDoPhAAJgEAAAAAAAAAAAAAJAAAAIzBAgAAQBAAUQAAAABCDhBBDhhBDiCDA44CAkkOGEEOEEIOCDwAAAC0wQIAOEAQAHMCAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDZQIOKEEOIEIOGEIOEEEOCAAAAAAAAAA0AAAA9MECAHhCEAAMAQAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAv4OKEEOIEIOGEIOEEEOCDwAAAAswgIAUEMQAFECAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgNBAg4oQg4gQg4YQg4QQQ4IAAAAAAAUAAAAbMICAHBFEAA2AQAAAAAAAAAAAAAUAAAAhMICAJhGEAAvAAAAAAAAAAAAAAAUAAAAnMICALBGEABBAQAAAAAAAAAAAAAUAAAAtMICAOhHEAAsAAAAAAAAAAAAAAAUAAAAzMICAABIEAD1AAAAAAAAAAAAAAAUAAAA5MICAOhIEAAnAQAAAAAAAAAAAAAUAAAA/MICAABKEACpAAAAAAAAAAAAAAAcAAAAFMMCAJhKEADgBAAAAEEOEIMCA94EDggAAAAAABwAAAA0wwIAWE8QAFQBAAAAQQ4QgwIDUgEOCAAAAAAAFAAAAFTDAgCYUBAA/gMAAAAAAAAAAAAAFAAAAGzDAgCAVBAAIAEAAAAAAAAAAAAAHAAAAITDAgCIVRAATwAAAABBDhCDAgJNDggAAAAAAAAUAAAApMMCALhVEAAPAAAAAAAAAAAAAAAcAAAAvMMCALBVEAAxAAAAAEEOEIMCZg4IQQ4QRA4IABwAAADcwwIA0FUQADEAAAAAQQ4QgwJmDghBDhBEDggAJAAAAPzDAgDwVRAA1wAAAABCDhBBDhhBDiCDA44CAs8OGEEOEEIOCCQAAAAkxAIAqFYQAFgAAAAAQg4QQQ4YQQ4ggwOOAgJQDhhBDhBCDggcAAAATMQCAOBWEAAwAAAAAEEOEIMCbg4IAAAAAAAAABQAAABsxAIA8FYQAB0AAAAAQQ4QWw4IABQAAACExAIA+FYQAB0AAAAAAAAAAAAAABQAAACcxAIAAFcQANEAAAAAAAAAAAAAABQAAAC0xAIAyFcQAB4BAAAAAAAAAAAAABQAAADMxAIA0FgQAA4AAAAAQQ4QTA4IABQAAADkxAIAyFgQAA8AAAAAAAAAAAAAABwAAAD8xAIAwFgQADUAAAAAQQ4QgwJvDghBDhBDDggAJAAAABzFAgDgWBAAUQAAAABCDhBBDhhBDiCDA44CAkkOGEEOEEIOCCwAAABExQIAGFkQAEwAAAAAQg4QQg4YQQ4ggwSOA48CAkIOGEIOEEIOCAAAAAAAACwAAAB0xQIAOFkQAD4AAAAAQg4QQg4YQQ4ggwSOA48CdA4YQg4QQg4IAAAAAAAAADwAAACkxQIASFkQANYBAAAAQQ4QQg4YQg4gQQ4oQQ4wgwWOBI8DhgIDyAEOKEEOIEIOGEIOEEEOCAAAAAAAAAAUAAAA5MUCAOhaEAAKAAAAAAAAAAAAAAAUAAAA/MUCAOBaEAA2AAAAAEcOEGEOCAAsAAAAFMYCAAhbEAC1AQAAAEIOEEIOGEEOIIMEjgOPAgOrAQ4YQg4QQg4IAAAAAAAkAAAARMYCAJhcEAD7AQAAAEEOEEEOGIMDhgID7AEOEEEOCEEOGAAATAAAAGzGAgBwXhAAqQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDkwEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAABEAAAAvMYCANBfEAAFAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgLvDjhBDjBCDihCDiBCDhhCDhBBDggkAAAABMcCAJhgEAC/AAAAAEIOEEEOGEEOIIMDjgICtw4YQQ4QQg4IPAAAACzHAgAwYRAAmAEAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgNxAQ4oQQ4gQg4YQg4QQQ4IQQ4wAAAAACwAAABsxwIAkGIQAGwDAAAAQg4QQQ4YQQ4ggwOOAgMVAg4YQQ4QQg4IQQ4gAAAAABQAAACcxwIA0GUQAEYAAAAAAAAAAAAAABQAAAC0xwIACGYQAEgAAAAAAAAAAAAAACwAAADMxwIAQGYQABMDAAAAQg4QQg4YQQ4ggwSOA48CAwkDDhhCDhBCDggAAAAAACQAAAD8xwIAMGkQAFsAAAAAQQ4QgwJ1DghBDhBVDghBDhBNDggAAAAUAAAAJMgCAGhpEAAUAAAAAEEOEFIOCAAUAAAAPMgCAHBpEABGAQAAAAAAAAAAAAAcAAAAVMgCAKhqEABkAAAAAEQOIAJaDghBDiAAAAAAABQAAAB0yAIA+GoQAFYBAAAAAAAAAAAAABQAAACMyAIAQGwQAGoBAAAAAAAAAAAAABQAAACkyAIAmG0QABIAAAAAAAAAAAAAABQAAAC8yAIAoG0QAHQAAAAAAAAAAAAAACQAAADUyAIACG4QALsDAAAAQg4QQQ4YgwOOAgOjAw4QQg4IQQ4YAAAcAAAA/MgCAKBxEABIAAAAAEEOEIMCAkYOCAAAAAAAABwAAAAcyQIA0HEQADIAAAAARg4QgwJmDghFwwAAAAAALAAAADzJAgDwcRAAfQAAAABCDhBCDhhBDiCDBI4DjwICcw4YQg4QQg4IAAAAAAAALAAAAGzJAgBAchAAiwEAAABCDhBCDhhBDiCDBI4DjwIDgQEOGEIOEEIOCAAAAAAAFAAAAJzJAgCgcxAAIQAAAAAAAAAAAAAATAAAALTJAgC4cxAA7AgAAABBDhBCDhhCDiBCDihCDjBBDjhEDqABgweMBo0FjgSPA4YCA3EHDjhBDjBCDihCDiBCDhhCDhBBDghBDqABAABMAAAABMoCAFh8EABIBAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgMvBA44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAACwAAABUygIAWIAQALMAAAAAQQ4QQg4YQQ4ggwSOA4YCAqsOGEIOEEEOCAAAAAAAADQAAACEygIA6IAQAGEAAAAAQg4QQg4YQQ4ggwSOA48CAkAOGEIOEEIOCEEOIFEOGEIOEEIOCAAAHAAAALzKAgAggRAA5gEAAABBDhCDAgPWAQ4IQQ4QAAAcAAAA3MoCAPCCEAD5AQAAAEEOEIMCA+YBDghBDhAAABwAAAD8ygIA0IQQACkCAAAAQQ4QgwIDFgIOCEEOEAAAHAAAABzLAgDghhAAKQIAAABBDhCDAgMWAg4IQQ4QAABMAAAAPMsCAPCIEADUBgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAncOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAAAEwAAACMywIAgI8QAHwAAAAAQg4QQg4YQg4gQQ4oQQ4wgwWMBI4DjwICTw4oQQ4gQg4YQg4QQg4IQQ4wVA4oQQ4gQg4YQg4QQg4IAAAAAAAAPAAAANzLAgCwjxAApAAAAABBDhBCDhhCDiBCDihBDjCDBowFjgSPA4YCApQOKEIOIEIOGEIOEEEOCAAAAAAAAEwAAAAczAIAIJAQAAwIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA+sGDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAATAAAAGzMAgDglxAAfAAAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgJPDihBDiBCDhhCDhBCDghBDjBUDihBDiBCDhhCDhBCDggAAAAAAABMAAAAvMwCABCYEAAMCAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgPrBg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAADwAAAAMzQIA0J8QAKQAAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgKUDihCDiBCDhhCDhBBDggAAAAAAABMAAAATM0CAECgEADQAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgO6AQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAACQAAACczQIAwKEQAFwAAAAAQQ4QgwICQQ4IQQ4QQw4IQQ4QVA4IAAAkAAAAxM0CAPihEABcAAAAAEEOEIMCAkEOCEEOEEMOCEEOEFQOCAAANAAAAOzNAgAwohAAfAAAAABCDhBCDhhBDiCDBI4DjwICTA4YQg4QQg4IQQ4gXQ4YQg4QQg4IAABMAAAAJM4CAHiiEABCAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgMsAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAADwAAAB0zgIAeKMQAM4AAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgK+DihCDiBCDhhCDhBBDggAAAAAAAAUAAAAtM4CAAikEAAOAAAAAAAAAAAAAAA8AAAAzM4CAACkEACkAAAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIClA4oQg4gQg4YQg4QQQ4IAAAAAAAATAAAAAzPAgBwpBAABAEAAABCDhBCDhhCDiBCDihBDjCDBowFjQSOA48CAtcOKEIOIEIOGEIOEEIOCEEOMFEOKEIOIEIOGEIOEEIOCAAAAAAsAAAAXM8CADClEACcAAAAAEIOEEIOGEEOIIMEjgOPAgKSDhhCDhBCDggAAAAAAAA0AAAAjM8CAKClEACiAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCApQOKEEOIEIOGEIOEEEOCEQAAADEzwIAGKYQAMYBAAAAQg4QQg4YQg4gQg4oQQ4wRA5AgwaMBY0EjgOPAgOvAQ4wQQ4oQg4gQg4YQg4QQg4IAAAAAAAAADwAAAAM0AIAoKcQAKQAAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKSDihCDiBCDhhCDhBCDggAAAAAAAA8AAAATNACABCoEABbAQAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwIDSQEOKEIOIEIOGEIOEEIOCAAAAAAANAAAAIzQAgAwqRAAUQIAAABCDhBCDhhBDiCDBI4DjwIDDQIOGEIOEEIOCEEOIHEOGEIOEEIOCAAkAAAAxNACAFirEAC2AQAAAEEOEEEOGIMDhgIDsgEOEEEOCAAAAAAATAAAAOzQAgDwrBAAgwMAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDagMOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAUAAAAPNECADCwEAAkAAAAAAAAAAAAAABMAAAAVNECAEiwEAC/CQAAAEEOEEIOGEIOIEIOKEIOMEEOOEcOsAODB4wGjQWOBI8DhgICWQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6wAwAAAEwAAACk0QIAuLkQAIQIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw6AA4MHjAaNBY4EjwOGAgLdDjhBDjBCDihCDiBCDhhCDhBBDghBDoADAAAAPAAAAPTRAgD4wRAALgIAAABBDhBCDhhCDiBBDihBDjCDBY4EjwOGAgKuDihBDiBCDhhCDhBBDghBDjAAAAAAABQAAAA00gIA6MMQAAsAAAAAAAAAAAAAAEwAAABM0gIA4MMQABUCAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCdQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAAAATAAAAJzSAgCwxRAAJAEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDDgEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAkAAAA7NICAJDGEABjAAAAAEYOEIMCYg4Iw0EOEIMCdQ4IAAAAAAAATAAAABTTAgDYxhAA9QQAAABBDhBCDhhCDiBCDihCDjBBDjhHDtAKgweMBo0FjgSPA4YCA88EDjhBDjBCDihCDiBCDhhCDhBBDghBDtAKAAA8AAAAZNMCAIjLEADwAAAAAEIOEEIOGEIOIEEOKEcOwAGDBYwEjgOPAgLQDihBDiBCDhhCDhBCDghBDsABAAAAPAAAAKTTAgA4zBAAeQEAAABCDhBCDhhCDiBBDihHDtACgwWMBI4DjwIDWQEOKEEOIEIOGEIOEEIOCEEO0AIAABQAAADk0wIAeM0QABkAAAAAAAAAAAAAADwAAAD80wIAgM0QAOsAAAAAQg4QQg4YQg4gQQ4oRA6AAYMFjASOA48CAs4OKEEOIEIOGEIOEEIOCEEOgAEAAAAsAAAAPNQCADDOEAAJFgAAAEEOEIYCQw0GVIMHjAaNBY4EjwMDPgEMBwhBDAYQAABMAAAAbNQCABDkEAAWBwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOcIMHjAaNBY4EjwOGAgP5Bg44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAADQAAAC81AIA4OoQAJwAAAAAQg4QQQ4YQQ4ggwOOAmsOGEEOEEIOCEUOIAJhDhhBDhBCDggAAAAATAAAAPTUAgBI6xAADQEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICTQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAABMAAAARNUCAAjsEABNAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOYIMHjAaNBY4EjwOGAgMvAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAEwAAACU1QIACO0QAEoBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMmAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAALAAAAOTVAgAI7hAAbAAAAABCDhBCDhhBDiCDBI4DjwICYg4YQg4QQg4IAAAAAAAATAAAABTWAgBI7hAAdQcAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIChQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAAsAAAAZNYCAHj1EAAfAQAAAEIOEEIOGEEOIIMEjgOPAgMVAQ4YQg4QQg4IAAAAAABMAAAAlNYCAGj2EAAMAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgPuAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAEwAAADk1gIAKPgQAHQaAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7AAoMHjAaNBY4EjwOGAgKZDjhBDjBCDihCDiBCDhhCDhBBDghBDsACAAAATAAAADTXAgBYEhEAlAEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIChg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5gAAAAAAA0AAAAhNcCAKgTEQBdAAAAAEEOEEIOGEIOIEEOKEEOMIMFjgSPA4YCAk8OKEEOIEIOGEIOEEEOCEwAAAC81wIA0BMRAEQBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAy4BDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAATAAAAAzYAgDQFBEARAEAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgIDLgEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAkAAAAXNgCANAVEQBsAAAAAEEOEEQOIIMCAmAOEEEOCEEOIAAAAAAATAAAAITYAgAYFhEAKhEAAABBDhBCDhhCDiBCDihCDjBBDjhEDrABgweMBo0FjgSPA4YCA7UGDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAABMAAAA1NgCAPgmEQBzAgAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgNVAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAEwAAAAk2QIAKCkRAJsBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCAwoBDjhBDjBCDihCDiBCDhhCDhBBDghBDlAAAAAAHAAAAHTZAgB4KhEANQAAAABBDhBtDghBDhBBDggAAABMAAAAlNkCAJgqEQB+AwAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgNXAw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAACQAAADk2QIAyC0RAFwCAAAAQg4QQQ4YgwOOAgNLAg4QQg4IQQ4YAAA8AAAADNoCAAAwEQAAAgAAAEcOEEEOGIMDjgICXQ4Iw85FDhiDA44CA4ABDhBCDgjDzkMOGIMDjgIAAAAAAAAATAAAAEzaAgDAMREAawUAAABBDhBCDhhCDiBCDihCDjBBDjhBDkCDB4wGjQWOBI8DhgICWw44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5AAAAAAAAcAAAAnNoCAOA2EQA8AAAAAEEOEHYOCEEOEEMOCAAAACwAAAC82gIAADcRAKYAAAAAQg4QQg4YQQ4ggwSOA48CApwOGEIOEEIOCAAAAAAAAEwAAADs2gIAgDcRAGIDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5QgweMBo0FjgSPA4YCA0kDDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAPAAAADzbAgCgOhEA+QIAAABCDhBCDhhCDiBBDihBDjCDBYwEjgOPAgN2AQ4oQQ4gQg4YQg4QQg4IQQ4wAAAAADwAAAB82wIAYD0RAPQAAAAAQQ4QQg4YQg4gQg4oQQ4wgwaMBY4EjwOGAgLkDihCDiBCDhhCDhBBDggAAAAAAABMAAAAvNsCACA+EQCoAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgOPAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEQAAAAM3AIAgD8RAHQAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAl4OOEEOMEIOKEIOIEIOGEIOEEEOCEwAAABU3AIAuD8RADkCAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAmkOKEIOIEIOGEIOEEIOCEEOMAPqAQ4oQg4gQg4YQg4QQg4IRQ4wFAAAAKTcAgCoQREARgEAAAAAAAAAAAAAFAAAALzcAgDgQhEADgAAAAAAAAAAAAAATAAAANTcAgDYQhEA/wIAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgID1QIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAAAsAAAAJN0CAIhFEQDPAAAAAEIOEEEOGEcOsAGDA44CArcOGEEOEEIOCEEOsAEAAAAUAAAAVN0CAChGEQA3AAAAAHIOEAAAAAAcAAAAbN0CAFBGEQCFAAAAAEEOEIMCAoMOCAAAAAAAAEwAAACM3QIAwEYRAEQBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCAysBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAARAAAANzdAgDARxEApgQAAABBDhBCDhhCDiBCDihCDjBBDjiDB4wGjQWOBI8DhgIDiAQOMEIOKEIOIEIOGEIOEEEOCEEOOAAATAAAACTeAgAoTBEARgQAAABBDhBCDhhCDiBCDihCDjBBDjhEDnCDB4wGjQWOBI8DhgIDFQQOOEEOMEIOKEIOIEIOGEIOEEEOCEEOcAAAAABMAAAAdN4CAChQEQBaAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgNEAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAACwAAADE3gIAOFERAHAAAAAAQQ4QQg4YQQ4ggwSOA4YCAmgOGEIOEEEOCAAAAAAAAEwAAAD03gIAeFERANECAAAAQQ4QQg4YQg4gQg4oQg4wQQ44Rw7QAoMHjAaNBY4EjwOGAgOUAg44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ7QAgAATAAAAETfAgAIVBEA+QEAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgID4AEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAB8AAAAlN8CALhVEQBIAwAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAlYOOEEOMEIOKEIOIEIOGEIOEEEOCEUOQFwOOEEOMEIOKEIOIEIOGEIOEEEOCEUOQAPiAg44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAAAU4AIAiFgRAAgAAAAAAAAAAAAAABQAAAAs4AIAgFgRABsAAAAAAAAAAAAAAEwAAABE4AIAiFgRAFoOAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6gAYMHjAaNBY4EjwOGAgPEDQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6gAQAAHAAAAJTgAgCYZhEAWQAAAABEDiACTw4IQQ4gAAAAAABMAAAAtOACANhmEQD7AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgPlAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAAEwAAAAE4QIAiGgRAIkBAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCA3MBDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAALAAAAFThAgDIaREAbwEAAABBDhBCDhhBDiCDBI4DhgIDZwEOGEIOEEEOCAAAAAAATAAAAIThAgAIaxEA+BAAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgIDvhAOOEEOMEIOKEIOIEIOGEIOEEEOCEEOUAAAAABMAAAA1OECALh7EQDxCAAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOsAGDB4wGjQWOBI8DhgIDhAIOOEEOMEIOKEIOIEIOGEIOEEEOCEEOsAEAAEwAAAAk4gIAaIQRAH8DAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA5ggweMBo0FjgSPA4YCA2YDDjhBDjBCDihCDiBCDhhCDhBBDggAAAAAAAAAJAAAAHTiAgCYhxEAWwAAAABBDhBEDiCDAgJPDhBBDghBDiAAAAAAAEwAAACc4gIA0IcRANEIAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6wAYMHjAaNBY4EjwOGAgJuDjhBDjBCDihCDiBCDhhCDhBBDghBDrABAAAATAAAAOziAgBgkBEA6QEAAABBDhBCDhhCDiBCDihCDjBBDjhEDlCDB4wGjQWOBI8DhgID0AEOOEEOMEIOKEIOIEIOGEIOEEEOCAAAAAAAAAAUAAAAPOMCAACSEQAUAAAAAEEOEFIOCAAUAAAAVOMCAAiSEQAFAAAAAAAAAAAAAAAcAAAAbOMCAACSEQCKAQAAAEEOEIMCA4gBDggAAAAAAEwAAACM4wIAcJMRACsDAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMSAw44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAATAAAANzjAgBQlhEAcwQAAABBDhBCDhhCDiBCDihCDjBBDjhHDoAEgweMBo0FjgSPA4YCAw8DDjhBDjBCDihCDiBCDhhCDhBBDghBDoAEAAAsAAAALOQCAICaEQBaAAAAAEIOEEIOGEEOIIMEjgOPAgJQDhhCDhBCDggAAAAAAAAsAAAAXOQCALCaEQBaAAAAAEIOEEIOGEEOIIMEjgOPAgJQDhhCDhBCDggAAAAAAABMAAAAjOQCAOCaEQD9AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgPnAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IAAAAAAAAABQAAADc5AIAkJwRAIgAAAAAAAAAAAAAABQAAAD05AIACJ0RAHcAAAAAAAAAAAAAABQAAAAM5QIAcJ0RAI4AAAAAAAAAAAAAAEwAAAAk5QIA6J0RALoTAAAAQQ4QQg4YQg4gQg4oQg4wQQ44RA6AAYMHjAaNBY4EjwOGAgMRDQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ6AAQAATAAAAHTlAgBYsREAuAUAAABBDhBCDhhCDiBCDihCDjBBDjhEDmCDB4wGjQWOBI8DhgIDcgUOOEEOMEIOKEIOIEIOGEIOEEEOCEEOYAAAAAAUAAAAxOUCAMi2EQAEAAAAAAAAAAAAAAAUAAAA3OUCAMC2EQAFAAAAAAAAAAAAAAAUAAAA9OUCALi2EQAFAAAAAAAAAAAAAAAUAAAADOYCALC2EQAFAAAAAAAAAAAAAAAUAAAAJOYCAKi2EQAPAAAAAEEOEE0OCAA8AAAAPOYCAKC2EQDGAAAAAEIOEEIOGEIOIEIOKEEOMIMGjAWNBI4DjwICqA4oQg4gQg4YQg4QQg4IQQ4wAAAAHAAAAHzmAgAwtxEAhwAAAABBDhCDAgJ5DghBDhBLDggcAAAAnOYCAKC3EQAiAAAAAEEOEIMCXA4IAAAAAAAAABwAAAC85gIAsLcRABgAAAAAQQ4QgwJWDggAAAAAAAAALAAAANzmAgCwtxEAbQAAAABCDhBBDhhBDiCDA44CAlkOGEEOEEIOCEEOIAAAAAAAPAAAAAznAgDwtxEARwEAAABCDhBCDhhCDiBBDihEDnCDBYwEjgOPAgLQDihBDiBCDhhCDhBCDghBDnAAAAAAAFQAAABM5wIAALkRAA8BAAAAQg4QQg4YQg4gQg4oQQ4wgwaMBY0EjgOPAgKRDihCDiBCDhhCDhBCDghBDjBzDjhQDkBEDkhCDlBEDlhCDmBBDmhEDnBIDjBsAAAApOcCALi5EQCsAQAAAEEOEEIOGEIOIEIOKEIOMEEOOEEOQIMHjAaNBY4EjwOGAgJlDjhBDjBCDihCDiBCDhhCDhBBDghBDkBhDkhCDlBBDlhBDmBGDkACrg5IQg5QQg5YRA5gRg5AAAAAAAAAPAAAABToAgD4uhEAqAAAAABBDhBCDhhBDiCDBI4DhgICTg4oRA4wRA44RA5ARg4gAkAOGEIOEEEOCAAAAAAAABQAAABU6AIAaLsRAAQAAAAAAAAAAAAAABQAAABs6AIAYLsRABEAAAAAAAAAAAAAACQAAACE6AIAaLsRAGMAAAAAQg4QQQ4YQQ4ggwOOAgJbDhhBDhBCDggUAAAArOgCALC7EQAqAAAAAAAAAAAAAAAUAAAAxOgCAMi7EQA7AAAAAEEOEHkOCAAcAAAA3OgCAPC7EQBTAAAAAEEOEIMCAlEOCAAAAAAAABwAAAD86AIAMLwRAFsAAAAARg4QgwICTw4IRcMAAAAALAAAABzpAgBwvBEAJgEAAABBDhBCDhhBDiCDBI4DhgIC+g4YQg4QQQ4IQQ4gAAAAHAAAAEzpAgBwvREAUwAAAABBDhCDAgJRDggAAAAAAAA8AAAAbOkCALC9EQBnAgAAAEEOEEIOGEIOIEIOKEEOMIMGjAWOBI8DhgIDVwIOKEIOIEIOGEIOEEEOCAAAAAAAHAAAAKzpAgDgvxEAeQAAAABBDhCDAgJ3DggAAAAAAAAUAAAAzOkCAEDAEQAKAAAAAAAAAAAAAAAUAAAA5OkCADjAEQAKAAAAAAAAAAAAAAAUAAAA/OkCADDAEQAHAAAAAAAAAAAAAAAUAAAAFOoCACjAEQALAAAAAAAAAAAAAAAUAAAALOoCACDAEQAIAAAAAAAAAAAAAABMAAAAROoCABjAEQC4AQAAAEEOEEIOGEIOIEIOKEIOMEEOOEQOUIMHjAaNBY4EjwOGAgOUAQ44QQ4wQg4oQg4gQg4YQg4QQQ4IQQ5QAAAAAEQAAACU6gIAiMERANoAAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAsQOOEEOMEIOKEIOIEIOGEIOEEEOCFwAAADc6gIAIMIRAGABAAAAQQ4QQg4YQg4gQg4oQg4wQQ44QQ5AgweMBo0FjgSPA4YCAv4OOEEOMEIOKEIOIEIOGEIOEEEOCEUOQH0OOEEOMEIOKEIOIEIOGEIOEEEOCCwAAAA86wIAIMMRAOkCAAAAQg4QQQ4YQQ4ggwOOAgN9AQ4YQQ4QQg4IQQ4gAAAAABQAAABs6wIA4MURAAkAAAAAAAAAAAAAABQAAACE6wIA2MURABAAAAAAAAAAAAAAABQAAACc6wIA0MURABAAAAAAAAAAAAAAABQAAAC06wIAyMURAAQAAAAAAAAAAAAAABQAAADM6wIAwMURAAYAAAAAAAAAAAAAABQAAADk6wIAuMURAAQAAAAAAAAAAAAAABQAAAD86wIAsMURAAcAAAAAAAAAAAAAABQAAAAU7AIAqMURAAQAAAAAAAAAAAAAABQAAAAs7AIAoMURAAUAAAAAAAAAAAAAABQAAABE7AIAmMURAAUAAAAAAAAAAAAAABQAAABc7AIAkMURAB0AAAAAAAAAAAAAABwAAAB07AIAmMURAEEAAAAAQQ4QgwJ/DggAAAAAAAAAFAAAAJTsAgDIxREAAwAAAAAAAAAAAAAAFAAAAKzsAgDAxREABAAAAAAAAAAAAAAAFAAAAMTsAgC4xREABAAAAAAAAAAAAAAAFAAAANzsAgCwxREABAAAAAAAAAAAAAAAFAAAAPTsAgCoxREABwAAAAAAAAAAAAAAFAAAAAztAgCgxREABwAAAAAAAAAAAAAAFAAAACTtAgCYxREAPAAAAAAAAAAAAAAAFAAAADztAgDAxREAPwAAAAAAAAAAAAAAFAAAAFTtAgDoxREAPAAAAAAAAAAAAAAAFAAAAGztAgAQxhEABgAAAAAAAAAAAAAAFAAAAITtAgAIxhEAAQAAAAAAAAAAAAAAPAAAAJztAgAAxhEALwIAAABCDhBCDhhCDiBBDihEDlCDBYwEjgOPAgMXAg4oQQ4gQg4YQg4QQg4IQQ5QAAAAAEQAAADc7QIA8McRAL0AAAAAQQ4QQg4YQg4gQg4oQQ4wRA5ggwaMBY4EjwOGAgKjDjBBDihCDiBCDhhCDhBBDghBDmAAAAAAABQAAAAk7gIAaMgRAB0AAAAAQQ4QWw4IABQAAAA87gIAcMgRAB0AAAAAQQ4QWw4IABQAAABU7gIAeMgRAB0AAAAAQQ4QWw4IABQAAABs7gIAgMgRAB0AAAAAQQ4QWw4IABQAAACE7gIAiMgRAB0AAAAAQQ4QWw4IABQAAACc7gIAkMgRAB0AAAAAQQ4QWw4IABQAAAC07gIAmMgRAB0AAAAAQQ4QWw4IABQAAADM7gIAoMgRAB0AAAAAQQ4QWw4IABQAAADk7gIAqMgRAB0AAAAAQQ4QWw4IABQAAAD87gIAsMgRAB0AAAAAQQ4QWw4IABQAAAAU7wIAuMgRAB0AAAAAQQ4QWw4IABQAAAAs7wIAwMgRAB0AAAAAQQ4QWw4IABwAAABE7wIAyMgRAEYAAAAAQQ4QaA4IQQ4QWw4IAAAAHAAAAGTvAgD4yBEARgAAAABBDhBoDghBDhBbDggAAAAcAAAAhO8CACjJEQBGAAAAAEEOEGgOCEEOEFsOCAAAABQAAACk7wIAWMkRAB0AAAAAQQ4QWw4IABQAAAC87wIAYMkRAG0AAAAAAAAAAAAAABQAAADU7wIAuMkRAB0AAAAAQQ4QWw4IABQAAADs7wIAwMkRAG0AAAAAAAAAAAAAABQAAAAE8AIAGMoRAB0AAAAAQQ4QWw4IABQAAAAc8AIAIMoRAG0AAAAAAAAAAAAAABQAAAA08AIAeMoRAB0AAAAAQQ4QWw4IABQAAABM8AIAgMoRAG0AAAAAAAAAAAAAABQAAABk8AIA2MoRAB0AAAAAQQ4QWw4IABQAAAB88AIA4MoRAG0AAAAAAAAAAAAAABQAAACU8AIAOMsRAB0AAAAAQQ4QWw4IABQAAACs8AIAQMsRAG0AAAAAAAAAAAAAABQAAADE8AIAmMsRAB0AAAAAQQ4QWw4IABQAAADc8AIAoMsRAG0AAAAAAAAAAAAAABQAAAD08AIA+MsRAB0AAAAAQQ4QWw4IABQAAAAM8QIAAMwRAG0AAAAAAAAAAAAAABQAAAAk8QIAWMwRAB0AAAAAQQ4QWw4IABQAAAA88QIAYMwRAG0AAAAAAAAAAAAAABQAAABU8QIAuMwRACAAAAAAAAAAAAAAABQAAABs8QIAwMwRABcAAAAAAAAAAAAAABQAAACE8QIAyMwRAB0AAAAAQQ4QWw4IABQAAACc8QIA0MwRAFgAAAAAAAAAAAAAABQAAAC08QIAGM0RAB0AAAAAQQ4QWw4IABQAAADM8QIAIM0RAFgAAAAAAAAAAAAAABQAAADk8QIAaM0RAB0AAAAAQQ4QWw4IABQAAAD88QIAcM0RAFgAAAAAAAAAAAAAABQAAAAU8gIAuM0RAB0AAAAAQQ4QWw4IABQAAAAs8gIAwM0RAFgAAAAAAAAAAAAAABQAAABE8gIACM4RAB0AAAAAQQ4QWw4IABQAAABc8gIAEM4RAFgAAAAAAAAAAAAAABQAAAB08gIAWM4RAB0AAAAAQQ4QWw4IABQAAACM8gIAYM4RAFgAAAAAAAAAAAAAABQAAACk8gIAqM4RAB0AAAAAQQ4QWw4IACQAAAC88gIAsM4RAPUBAAAAQQ4QQQ4YgwOGAgPxAQ4QQQ4IAAAAAAAUAAAA5PICAIjQEQBWAAAAAAAAAAAAAAAsAAAA/PICANDQEQAMAQAAAEIOEEIOGEEOIIME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FvYDAXQJSIt7EOjxlRIASInf6OmVEgBJi14gSDsdDk4TAHQbSIXbdBb2AwF0CUiLexDoyZUSAEiJ3+jBlRIASI0FgoYTAEk5xnQWSYt+KEiF/3QNSIsHSIPECFtBXv9gCEiDxAhbQV7DzMzMzMzMzDH/6dn1///MzMzMzMzMzMxIiffpyPX//8zMzMzMzMzMi0c4w8zMzMzMzMzMzMzMzDH/6Vn2///MzMzMzMzMzMxIiffpSPb//8zMzMzMzMzMi0cYw8zMzMzMzMzMzMzMzDH/6bn2///MzMzMzMzMzMxIiffpqPb//8zMzMzMzMzMi0c4w8zMzMzMzMzMzMzMzDH/6Sn3///MzMzMzMzMzMxIiffpGPf//8zMzMzMzMzMi0cow8zMzMzMzMzMzMzMzDH/6Xn3///MzMzMzMzMzMxIiffpaPf//8zMzMzMzMzMi0cgw8zMzMzMzMzMzMzMzDH/6en3///MzMzMzMzMzMxIiffp2Pf//8zMzMzMzMzMi0cww8zMzMzMzMzMzMzMzDH/6Vn4///MzMzMzMzMzMxIiffpSPj//8zMzMzMzMzMi0cww8zMzMzMzMzMzMzMzDH/6bn4///MzMzMzMzMzMxIiffpqPj//8zMzMzMzMzMi0cQw8zMzMzMzMzMzMzMzDH/6fn4///MzMzMzMzMzMxIiffp6Pj//8zMzMzMzMzMi0cow8zMzMzMzMzMzMzMzDH/6Wn5///MzMzMzMzMzMxIiffpWPn//8zMzMzMzMzMi0cgw8zMzMzMzMzMzMzMzDH/6bn5///MzMzMzMzMzMxIiffpqPn//8zMzMzMzMzMi0cYw8zMzMzMzMzMzMzMzDH/6fn5///MzMzMzMzMzMxIiffp6Pn//8zMzMzMzMzMi0cgw8zMzMzMzMzMzMzMzDH/6Un6///MzMzMzMzMzMxIiffpOPr//8zMzMzMzMzMi0cgw8zMzMzMzMzMzMzMzDH/6bn6///MzMzMzMzMzMxIiffpqPr//8zMzMzMzMzMi0cow8zMzMzMzMzMzMzMzEiJ+EiJ90iJxulygv//zMxIifhIifdIicbpwqX//8zMSIn4SIn3SInG6VLl///MzEiLB/8gzMzMzMzMzMzMzMxIiwf/IMzMzMzMzMzMzMzMSIsH/yDMzMzMzMzMzMzMzEiLB/8gzMzMzMzMzMzMzMxIiwf/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XEFdQV5BX13DhcB4C0iBw7gAAACJxuskvv7///8pxonwwegGSIuL4AAAAEiLBMFID6PwcypIgcPIAAAASIsDSIXAdJuJ8UiNDElIjQTIgeX///9/uf///38jCCnN64JIjVQkMEiJ3+io3BEAgHwkMAAPhWj////r1ehm2REASYnFiwCJRCQsSI019YSf/kiNXCRISInfulIDAAC5AwAAAEUxwEG5/////+hG2REASInf6E7ZEQBIjTWIsqr+uhEAAABIicfoOnj//0iJw0iNbCQwSI10JFBIie/olX8AAEiJ30iJ7uj6cP//9kQkMAF0CkiLfCRA6KnTEQBIjXwkSOgP2REAi0QkLEGJRQDpBv7//+jN2BEASYnFiwCJRCQsSI01XISf/kiNXCRISInfulMDAAC5AwAAAEUxwEG5/////+it2BEASInf6LXYEQBIjTUBsqr+uhAAAABIicfooXf//0iJw0iNbCQwSInvTIn+6P5+AABIid9Iie7oY3D///ZEJDABdApIi3wkQOgS0xEASI18JEjoeNgRAItEJCxBiUUA6YP9///oNtgRAEmJx0SLKEiNNciDn/5IjVwkSEiJ37pUAwAAuQMAAABFMcBBuf/////oGdgRAEiJ3+gh2BEASI01TJik/7oSAAAASInH6A13//9IicNIjWwkMEiJ70yJ9uhqfgAASInfSInu6M9v///2RCQwAXQKSIt8JEDoftIRAEiNfCRI6OTXEQBFiS/pCP3//0yLtCTYAAAA6J/XEQBIicNEizhIjTUxg5/+SI1sJDBIie+6VQMAALkDAAAARTHAQbn/////6ILXEQBIie/oitcRAEiNNW+kVf+6FAAAAEiJx+h2dv//SInHTIn26KvaEQBIie/oc9cRAESJO+mr/P//6EbUEQBmDx9EAABVQVdBVkFVQVRTSIPsKEmJ/2RIiwQlKAAAAEiJRCQgSIt/CIu3WAEAAMYEJACNRgGD+AIPg2kBAABFMfZJi38Ii7dYAQAAxgQkAIX2eAlIgce4AAAA6yu4/v///0gp8InGicHB6QZIi5fgAAAASIsMykgPo8EPgzQBAABIgcfIAAAAifBIjQRASMHgA0gDB0iLQBBIg+D4SItACEyLYFhJixwkD1fADykEJEjHRCQQAAAAAEiD+/APg2oBAABIg/sXcxKNBBuIBCRMjWwkAUiF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SAHGSMHhBEgByEg5xnQJ9kYIBA+UwOsCMcBIg8QIW0Few2YuDx+EAAAAAAAPH0AAVUFXQVZBVFNIg+xAZEiLBCUoAAAASIlEJDhIhfYPhIcAAABJifZIifuDfyAAD4TaAAAATIk0JItDEIXAdHRIiwtEifbB7gREifLB6gkx8oPA/yHCSInWSMHmBEiNLDFIizwxTDn3dF1BuAEAAAAx9kiB/wDw//8PhJMKAABIgfcA4P//SAn3SA9E9UQBwkGDwAEhwkiJ10jB5wRIjSw5SIs8OUw593Qd68ZAtQHpzwUAADHtSIniSInfSInu6P59AQBIicVIg30IB3dBvzAAAADoOicRAEiLSxiLUyBIjRRSSMHiBA8QRBHQDxBMEeAPEFQR8A8RUCAPEUgQDxEASItNCIPhB0gJwUiJTQhEirsoAwAAD1fADylEJBAPKQQkSMdEJCAAAAAATIn36O8xEQCJBCRMiXQkCEjHRCQoAAAAAItLIDtLJA+DdgkAAEiJ5UiLQxiLSyBIjQxJSMHhBA8QRQAPEE0QDxBVIA8RVAggDxFMCBAPEQQIg0MgAcaDKAMAAABBi0Ycg+B/g/hSD4eZAwAASI0N6Ln0/0hjBIFIAcj/4EiJ30yJ9uigCQAAhMAPhXYDAADrE0iJ30yJ9ui7RQAAhMAPhWEDAAAx7YC7KAMAAAAPhaQDAADpWQMAAEiJ30yJ9uhkTQAAhMB03ek5AwAASInfTIn26ABjAACEwHTJ6SUDAABIid9MifbonGoAAITAdLXpEQMAAEiJ30yJ9uiobAAAhMB0oen9AgAASInfTIn26CQLAACEwHSN6ekCAABIid9MifboEA0AAITAD4R1////6dECAABIid9MifboeBIAAITAD4Rd////6bkCAABIid9MifboQBUAAITAD4RF////6aECAABIid9MifboSBYAAITAD4Qt////6YkCAABIid9MifbowBgAAITAD4QV////6XECAABIid9MifboyBoAAITAD4T9/v//6VkCAABIid9MifbokCMAAITAD4Tl/v//6UECAABIid9MifboaCQAAITAD4TN/v//6SkCAABIid9MifbokCYAAITAD4S1/v//6RECAABIid9MifboCDYAAITAD4Sd/v//6fkBAABIid9Mifbo8DcAAITAD4SF/v//6eEBAABIid9MifboqDkAAITAD4Rt/v//6ckBAABIid9MifbokDoAAITAD4RV/v//6bEBAABIid9MifbouDsAAITAD4Q9/v//6ZkBAABIid9MifboYEAAAITAD4Ql/v//6YEBAABIid9Mifbo2EQAAITAD4QN/v//6WkBAABIid9MifboAEgAAITAD4T1/f//6VEBAABIid9Mifbo+EgAAITAD4Td/f//6TkBAABIid9MifboAEoAAITAD4TF/f//6SEBAABIid9MifboaE4AAITAD4St/f//6QkBAABIid9MifboAFAAAITAD4SV/f//6fEAAABIid9MifboCFEAAITAD4R9/f//6dkAAABIid9MifboYFMAAITAD4Rl/f//6cEAAABIid9MifboeFgAAITAD4RN/f//6akAAABIid9MifbocFsAAITAD4Q1/f//6ZEAAABIid9MifboGF0AAITAD4Qd/f//63xIid9MifboM18AAITAD4QI/f//62dIid9MifbonmAAAITAD4Tz/P//61JIid9MifboGWUAAITAD4Te/P//6z1Iid9Mifbo5GoAAITAD4TJ/P//6yhIid9Mifboz2sAAITAD4S0/P//6xNIid9Mifbo6mwAAITAD4Sf/P//QLUBgLsoAwAAAHVGQYtOHInIg+B/jVC/g/oCciGD4X6D+SQPhb4AAABMiffooS0RAIPA/oP4AncZ6e8AAABMiffonC0RAIPA/oP4Aw+C2wAAAMaDKAMAAAFMiTQki0sQhcl0bUiLE0SJ8MHoBESJ9sHuCTHGg8H/Ic5IifdIwecESI0EOkiLPDpMOfd0U0G4AQAAAEUxyUiB/wDw//8PhDIFAABIgfcA4P//TAnPTA9EyEQBxkGDwAEhzkiJ90jB5wRIjQQ6SIs8Okw593QS68YxwEiJ4kiJ30iJxuixeAEAgEgIBOtNg8DMg/gFdz5MiffoCy0RAEiFwHQQiwCD4AaD+AIPhUj////rIUyJ9+iuLBEASIXAdBSLQBDR6IPgA4PA/4P4Aw+DJf///0SIuygDAACLQyCDwP+JQyB0FEiLSxiJwEiNBEBIweAESINEAfgBZEiLBCUoAAAASDtEJDgPhagEAACJ6EiDxEBbQVxBXkFfXcNIid9MifbosQUAAITAD4QW+///6XL+//9Iid9MifboOQcAAITAD4T++v//6Vr+//9Iid9MifbokQkAAITAD4Tm+v//6UL+//9Iid9MifboeQoAAITAD4TO+v//6Sr+//9Iid9MifboYQsAAITAD4S2+v//6RL+//9Iid9MifboaQwAAITAD4Se+v//6fr9//9Iid9MifbocQ8AAITAD4SG+v//6eL9//9Iid9MifboiRIAAITAD4Ru+v//6cr9//9Iid9MifboERUAAITAD4RW+v//6bL9//9Iid9MifboCRcAAITAD4Q++v//6Zr9//9Iid9MifbogRcAAITAD4Qm+v//6YL9//9Iid9MifboeRgAAITAD4QO+v//6Wr9//9Iid9MifbooRkAAITAD4T2+f//6VL9//9Iid9MifboiRoAAITAD4Te+f//6Tr9//9Iid9MifbocRsAAITAD4TG+f//6SL9//9Iid9MifboWR0AAITAD4Su+f//6Qr9//9Iid9Mifbo4R8AAITAD4SW+f//6fL8//9Iid9Mifbo+SIAAITAD4R++f//6dr8//9Iid9MifbosSYAAITAD4Rm+f//6cL8//9Iid9MifbouSkAAITAD4RO+f//6ar8//9Iid9MifboMSsAAITAD4Q2+f//6ZL8//9Iid9MifboKS4AAITAD4Qe+f//6Xr8//9Iid9Mifbo8TcAAITAD4QG+f//6WL8//9Iid9Mifbo6TkAAITAD4Tu+P//6Ur8//9Iid9MifboQTwAAITAD4TW+P//6TL8//9Iid9MifboWT0AAITAD4S++P//6Rr8//9Iid9MifbokUAAAITAD4Sm+P//6QL8//9Iid9Mifbo2UkAAITAD4SO+P//6er7//9Iid9MifbocUsAAITAD4R2+P//6dL7//9Iid9MifboCU0AAITAD4Re+P//6br7//9Iid9MifbogU8AAITAD4RG+P//6aL7//9Iid9Mifbo2VAAAITAD4Qu+P//6Yr7//9Iid9MifboAVIAAITAD4QW+P//6XL7//9Iid9Mifbo2VQAAITAD4T+9///6Vr7//9Iid9Mifbo4VsAAITAD4Tm9///6UL7//9Iid9MifboWWEAAITAD4TO9///6Sr7//9Iid9MifbosUAAAITAD4S29///6RL7//9Iid9MifboeUYAAITAD4Se9///6fr6//9Iid9MifbosUcAAITAD4SG9///6eL6//9Iid9MifboSUkAAITAD4Ru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hCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SKTQAA9sEDdApIjXwkcOhbUxAASIswTIn/TIn66B2T//+EwA+E400AAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoN1MQAOuj6EBTEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oFHEAAITAD4SKTQAASIPFCEk57nXiSI28JJAAAABMiebow1IQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SmTAAA9sEDdApIjXwkcOh3UhAASIswTIn/TIn66DmS//+EwA+E/0wAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoU1IQAOuj6FxSEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oMHAAAITAD4SmTAAASIPFCEk57nXiSI28JJAAAABMiebo31EQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TCSwAA9sEDdApIjXwkcOiTURAASIswTIn/TIn66FWR//+EwA+EG0wAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADob1EQAOuj6HhREADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oTG8AAITAD4TCSwAASIPFCEk57nXiSI28JJAAAABMiebo+1AQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TeSgAA9sEDdApIjXwkcOivUBAASIswTIn/TIn66HGQ//+EwA+EN0sAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoi1AQAOuj6JRQEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oaG4AAITAD4TeSgAASIPFCEk57nXiSI28JJAAAABMieboF1AQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4T6SQAA9sEDdApIjXwkcOjLTxAASIswTIn/TIn66I2P//+EwA+EU0oAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADop08QAOuj6LBPEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/ohG0AAITAD4T6SQAASIPFCEk57nXiSI28JJAAAABMieboM08QAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4QWSQAA9sEDdApIjXwkcOjnThAASIswTIn/TIn66KmO//+EwA+Eb0kAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADow04QAOuj6MxOEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/ooGwAAITAD4QWSQAASIPFCEk57nXiSI28JJAAAABMieboT04QAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4QySAAA9sEDdApIjXwkcOgDThAASIswTIn/TIn66MWN//+EwA+Ei0gAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADo300QAOuj6OhNEADrnEiNvCSQAAAATInm6KZNEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhJoeAADpnh4AAEiNvCSQAAAATInm6ExNEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhGQwAADpaDAAAEiNvCSQAAAATInm6PJMEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhP4yAADpAjMAAEiNvCSQAAAATInm6JhMEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhOgzAADp7DMAAEiNvCSQAAAATInm6D5MEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhII2AADphjYAAEiNvCSQAAAATInm6ORLEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhFQ9AADpWD0AAEiNvCSQAAAATInm6IpLEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhGY9AADpaj0AAEiNvCSQAAAATInm6DBLEAAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhDhEAADpPEQAAEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o7GgAAITAD4RiRQAASIPFCEk57nXiSI28JJAAAABMiebom0oQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4R+RAAA9sEDdApIjXwkcOhPShAASIswTIn/TIn66BGK//+EwA+E10QAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoK0oQAOuj6DRKEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oCGgAAITAD4R+RAAASIPFCEk57nXiSI28JJAAAABMiebot0kQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SaQwAA9sEDdApIjXwkcOhrSRAASIswTIn/TIn66C2J//+EwA+E80MAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoR0kQAOuj6FBJEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oJGcAAITAD4SaQwAASIPFCEk57nXiSI28JJAAAABMiebo00gQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4S2QgAA9sEDdApIjXwkcOiHSBAASIswTIn/TIn66EmI//+EwA+ED0MAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoY0gQAOuj6GxIEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oQGYAAITAD4S2QgAASIPFCEk57nXiSI28JJAAAABMiebo70cQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TSQQAA9sEDdApIjXwkcOijRxAASIswTIn/TIn66GWH//+EwA+EK0IAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADof0cQAOuj6IhHEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oXGUAAITAD4TSQQAASIPFCEk57nXiSI28JJAAAABMieboC0cQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TuQAAA9sEDdApIjXwkcOi/RhAASIswTIn/TIn66IGG//+EwA+ER0EAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADom0YQAOuj6KRGEADrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oeGQAAITAD4TuQAAASIPFCEk57nXiSI28JJAAAABMieboJ0YQAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4QKQAAA9sEDdApIjXwkcOjbRRAASIswTIn/TIn66J2F//+EwA+EY0AAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADot0UQAOuj6MBFEADrnEiNvCSQAAAATInm6H5F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AABIiUQkCIsOsAGDwf+D+QcPh+cAAABIifNJif5IjRUgcfP/SGMMikgB0f/hSItDGEiD4PxIizBIhfZ0EEiLUAhMiffod9///4TAdEZIi3MISInn6PfjDwBIiwQkSIkEJEiJ5+h34w8ASIXAdQ1IiefoeuMPAEiFwHQUSItwCEiD5vhMiffo9f7//4TAdASwAetrMcDrZ0iLUxhIg+L8dG9IizJIg8IITIn36MDg///rakiLcxhIg+b8TIn3TIny6Csi///rVUSLewRNhf90LkiLWwhJg8f/Dx+EAAAAAABMifdIid7ohf3//0mD7wEPksGEwHQISIPDGITJdOJkSIsMJSgAAABIO0wkCHUo6xxIi3MITIn36LTz//9kSIsMJSgAAABIO0wkCHUKSIPEEFtBXkFfw+j11w8ADx9EAABVQVdBVkFUU0G2AUiF9nQ3SIn1i0YIg8D+g/hRdylJifxIjQ38b/P/SGMEgUgByP/gSIt1EEyJ50yJ4uhwIf//hMB1A0Ux9kSJ8FtBXEFeQV9dw0iLdRjr3EyJ50iJ7uiMBAAA69pMiedIie7o/wQAAOvNTInnSInu6HIFAADrwEyJ50iJ7ujlBQAA67NMiedIie7oKAcAAOumRIt9EEnB5wNNhf90oDHbSIt0HShMiedMieLo9yD//4TAdIdIg8MISTnfdePpfP///0yJ50iJ7ug6CAAA6WX///9MiedIie7oeggAAOlV////RIt9EEnB5wNNhf8PhEv///8x20iLdB0YTInnTIni6KIg//+EwA+ELv///0iDwwhJOd913+kj////TInnSInu6IEIAADpDP///0yJ50iJ7ujBCAAA6fz+//9MiedIie7oAQkAAOns/v//RIt9EEnB5wNNhf8PhOL+//8x20iLdB0YTInnTIni6Dkg//+EwA+Exf7//0iDwwhJOd913+m6/v//RIt9EEnB5wNNhf8PhKn+//8x20iLdB1oTInnTIni6AAg//+EwA+EjP7//0iDwwhJOd913+mB/v//TInnSInu6I8JAADpav7//0yJ50iJ7ujPCQAA6Vr+//9MiedIie7oDwoAAOlK/v//RIt9EEnB5wNNhf8PhED+//8x20iLdB0YTInnTIni6Jcf//+EwA+EI/7//0iDwwhJOd913+kY/v//RIt9EEnB5wNNhf8PhAf+//8x20iLdB0gTInnTIni6F4f//+EwA+E6v3//0iDwwhJOd913+nf/f//RIt9EEnB5wNNhf8PhM79//8x20iLdB1QTInnTIni6CUf//+EwA+Esf3//0iDwwhJOd913+mm/f//TInnSInu6HQLAADpj/3//0yJ50iJ7ugkDQAA6X/9//9Ei30QScHnA02F/w+Edf3//zHbSIu0HYgAAABMiedMieLoyR7//4TAD4RV/f//SIPDCEk533Xc6Ur9//9MiedIie7o6A4AAOkz/f//TInnSInu6CgPAADpI/3//0yJ50iJ7uhIEAAA6RP9//9MiedIie7oiBAAAOkD/f//TInnSInu6MgQAADp8/z//0yJ50iJ7ugIEQAA6eP8//9MiedIie7oSBEAAOnT/P//TInnSInu6IgRAADpw/z//0yJ50iJ7ugoEgAA6bP8//9MiedIie7oyBQAAOmj/P//RIt9EEnB5wNNhf8PhJn8//8x20iLdB0YTInnTIni6PAd//+EwA+EfPz//0iDwwhJOd913+lx/P//RIt9EEnB5wNNhf8PhGD8//9Ig8UYMdtIi3QdAEyJ50yJ4uizHf//hMAPhD/8//9Ig8MISTnfdd/pNPz//0yJ50iJ7uiSFAAA6R38//9MiedIie7ochYAAOkN/P//RIt9EEnB5wNNhf8PhAP8//8x20iLdB1oTInnTIni6Fod//+EwA+E5vv//0iDwwhJOd913+nb+///RIt9EEnB5wNNhf8PhMr7//8x20iLdB1QTInnTIni6CEd//+EwA+Erfv//0iDwwhJOd913+mi+///RIt9EEnB5wNNhf8PhJH7//8x20iLdB1QTInnTIni6Ogc//+EwA+EdPv//0iDwwhJOd913+lp+///TInnSInu6AcWAADpUvv//2aQQVdBVkFUU1BJifZJifyLRhBIi3TGGEiJ+uiiHP//hMB0QEGLRhBIjQzFAAAAAEiFyXQzTI08xfj///8x2w8fAEmLdB4YTInnTIni6HAc//+EwHQUSI1LCEk530iJy3Xg6wYxwOsCsAFIg8QIW0FcQV5BX8NmLg8fhAAAAAAAZpBBV0FWQVRTUEmJ9kmJ/ItGEEiLdMYYSIn66CIc//+EwHRAQYtGEEiNDMUAAAAASIXJdDNMjTzF+P///zHbDx8ASYt0HhhMiedMieLo8Bv//4TAdBRIjUsI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JLgAAABIuQAAAAAAAP//SCHISI0NY7ix/0gJyEiJhCS4AAAAx4QksAAAAAcAAABNi3cISLn///////8AAEkhzki5AAAAAAAAABBIhciLRCQMQYnFuAcAAABED0ToQYsfTA9EZCQoSIXbdHJMifVIweMFSQHe6w8PH0QAAEiDxSBIg8PgdFcPt0UOqQAQAAB1C4tNAEE5zXXj6xGQD75VDbkNAAAAKdFBOc110EiLdQhIuf///////wAASCHOqQAQAABID0X1STn0dA9MiedMieroloEPAIXAdaJJie5Ji0cISLn///////8AAEghyEGLD0jB4QVIAcFJOc4PhPUGAABB9kYfBA+E6gYAAEmNRhAPV8APKYQk8AAAAA8phCTgAAAADymEJNAAAAAPKYQkwAAAAA8phCSwAAAASMeEJAABAAAAAAAAQQ+3Th5Ji14YSLr///////8AAEgh0/fBABAAAEgPRdi/4AAAAOhrfQ8ASInFD1fADxFACEiLRCQgSIlFAEyNdRhMifdIid7oueMAAEyJtCSwAAAASIucJLgAAABIiawkuAAAAEiF23QjSMfA//////BID8FDCEiFwHURSIsDSInf/1AQSInf6NmEDwBMi6wksAAAAEGDvYAAAAAAdCdJi3V4D7YW9sIBD4QnAQAASItWCEiLdhDpIQEAAGYuDx+EAAAAAAAPV8APKYQkQAEAAGbHhCROAQAABQRIi4QkSAEAAEi5AAAAAAAA//9IIchMjSUZ7vL/TAngSImEJEgBAADHhCRAAQAABQAAAEmLbwhIuv///////wAASCHVTInhSMHpEMH5GEG+DQAAAEEpzkkh1Ei5AAAAAAAAABBIhci4BQAAAEQPRPBBix9IjYQkQAEAAEwPReBIhdsPhJQAAABIiehIweMFSAHYSIlEJBjrDQ8fAEiDxSBIg8PgdHEPt0UOqQAQAAB1C4tNAEE5znXj6xGQD75VDbkNAAAAKdFBOc510EiLdQhIuf///////wAASCHOqQAQAABID0X1STn0dDFMiedMifLoVn8PAIXAdaLrIEiDxgFI0epMizQkTI2kJLAAAABMiffpqQAAAEiLbCQYSYtHCEi5////////AABIIchBiw9IweEFSAHBSDnNTIs0JEyNpCSwAAAAdGlmg30eA3ViSIPFEA9XwA8phCRQAQAADymEJEAB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/0yJ9ona6Nny//+D+/90REiLDCSLdCQIg/7/dEFMifBIKcgx/zneQA+Xx42TAChr7g9G00gp+CnySIXJeDxMOfB+S7r/////SLgAAAAAAAAAgOs6uv////9MifDrMDHSSIXJD5nCSLj/////////f0gB0Lr/////6xRMOfB9D7r/////SLj/////////f2RIiwwlKAAAAEg7TCQQdQhIg8QYW0Few+i5jQgAZg8fhAAAAAAAVUFXQVZBVFNIg+wgQYnPSYnWifVIiftkSIsEJSgAAABIiUQkGEm8AAAAAAAAAIBIiXwkCIl0JBBMjUwkCDH/SIneiepMifFFifjo4fH//4P9/3RFSItMJAiLdCQQg/7/dElIidhIKcgx/znuQA+Xx42VAChr7g9G1Ugp+CnySIXJeERIOdh+U7r/////SLgAAAAAAAAAgOtCuv////9IidhMOeN0P+k4AQAAMdJIhckPmcJIuP////////9/SAHQuv/////rFEg52H0Puv////9IuP////////9/SDnYdRdMOeN1HIPFAY1KAUyJ4znNchfp7AAAAEiJw38N6eIAAAA56g+G2gAAAE2F9nQ3eTi4/////0i5/////////39Bg///D4SjAAAARYX/D4WMAAAATTnmD4SRAAAASffeMcDphAAAAEUx9oP6/w+EigAAAEGD//90NY2KAChr7kQ5+kiJ2EwZ8EQ5+g9DyonKRCn6TYX2eDJIOdh+aLr/////SLgAAAAAAAAAgOtXMclNhfYPmcFIuP////////9/SAHIuv/////rO0g52H02uv////9IuP////////9/6yVJ99a4AChr7kQp+EyJ8UmJzkGJx4P6/w+Fdv///7r/////SInYZEiLDCUoAAAASDtMJBh1DUiDxCBbQVxBXkFfXcPoq4sIAGYuDx+EAAAAAACQVUFXQVZBVFNIg+wgQYnPSYnWifVIiftkSIsEJSgAAABIiUQkGEm8AAAAAAAAAIBIiXwkCIl0JBBMjUwkCDH/SIneiepMifFFifjo0e///4P9/3RFSItUJAiLdCQQg/7/dE5IidhIKdAx/znuQA+Xx42NAChr7g9GzUgp+CnxSIXSeElIOdh+WLn/////SLgAAAAAAAAAgOtHuf////9Iidi6/////0w543Q/6RsBAAAxyUiF0g+ZwUi4/////////39IAci5/////+sUSDnYfQ+5/////0i4/////////39IOdh1GUw543UgjXEBg8UBTInjico57nIb6c0AAABIicOJynwP6cEAAACJyjnpD4O3AAAATYX2dCh5P7j/////SLr/////////f0GD//90JEWF/3URTTnmdBpJ994xwOsQRTH26xRJ99a4AChr7kQp+EyJ8kmJ1kGJx7r/////g/n/dElBg///dEhJjTQeic9Eifi9AChr7kgpxY2RANiUETHASDn9D0/RD57ASAHwRAH6TYX2eCBIOdh9L7r/////SLj/////////f+seSInY6xlMifDrFEg52H4Puv////9IuAAAAAAAAACAZEiLDCUoAAAASDtMJBh1DUiDxCBbQVxBXkFfXcPos4kIAA8fAEiB/v/Jmjt3CcHmAkiJ+Inyw0i5s5TWJugLLhFIifBI9+lIidBIweg/SMH6GkgBwkhpwgDKmjtIKcZJifBJwfg9SQHQjQS1AAAAAEiF9roAKGvujRSyD0nQSY0EOInRwekLgfllzR0ASIPY/42yANiUEYH5Zc0dAA9C8k2FwHgXSDn4fQ++/////0i4/////////3+J8sNIOfh++L7/////SLgAAAAAAAAAgInyw2aQSIH+P0IPAHcKadagDwAASIn4w0i52zS214LeG0NIifBI9+lIidBIweg/SMH6EkgBwkhpwkBCDwBIKcZIacagDwAAuQAoa+4BwUmJwEnB+D9JAdBIhfYPSchJjQQ4ic7B7guB/mXNHQBIg9j/jZEA2JQRgf5lzR0AD0LRTYXAeBVIOfh9D7r/////SLj/////////f8NIOfh++rr/////SLgAAAAAAAAAgMNmDx9EAABIg+wYifBIif5kSIsMJSgAAABIiUwkEEiJ+UjB6SF1D0hpzgDKmjvB6AJIAcjrH0iJNCSJRCQISYnhvwEAAACJwjHJQbgEAAAA6ILs//9kSIsMJSgAAABIO0wkEHUFSIPEGMPo6IcIAA8fhAAAAAAASIPsGInySIn+ZEiLBCUoAAAASIlEJBBIifhIwegrdRlIac5AQg8AidBIacDTTWIQSMHoKEgByOsdSIk0JIlUJAhJieG/AQAAADHJQbigDwAA6Ars//9kSIsMJSgAAABIO0wkEHUFSIPEGMPocIcIAEiD7BiJ8kiJ/mRIiwQlKAAAAEiJ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OgAASInvSInu6O46AABIie9Iie7o4zoAAEiJ70iJ7ujYOgAASInvSInu6M06AABIie9Iie7owjoAAEiJ70iJ7ui3OgAASInvSInu6Kw6AABIie9Iie7ooToAAEiJ70iJ7uiWOgAASInvSInu6Is6AABIie9Iie7ogDoAAEiJ70iJ7uh1OgAASInvSInu6Go6AABIie9Iie7oXzoAAEiJ70iJ7uhUOgAASInvSInu6Ek6AABIie9Iie7oPjoAAEiJ70iJ7ugzOgAASInvSInu6Cg6AABIie9Iie5MifLoyjQAAEiJ70iJ7ugPOgAASInvSInu6AQ6AABIie9Iie7o+TkAAEiJ70iJ7ujuOQAASInvSInu6OM5AABIie9Iie7o2DkAAEiJ70iJ7ujNOQAASInvSInu6MI5AABIie9Iie7otzkAAEiJ70iJ7uisOQAASInvSInu6KE5AABIie9Iie7oljkAAEiJ70iJ7uiLOQAASInvSInu6IA5AABIie9Iie7odTkAAEiJ70iJ7uhqOQAASInvSInu6F85AABIie9Iie7oVDkAAEiJ70iJ7uhJOQAASInvSInu6D45AABIie9Iie7oMzkAAEiJ70iJ7ugoOQAASInvSInu6B05AABIie9Iie7oEjkAAEiJ70iJ7ugHOQAASInvSInu6Pw4AABIie9Iie7o8TgAAEiJ70iJ7ujmOAAASInvSInu6Ns4AABIie9Iie7o0DgAAEiNlCSQAAAASInvSInu6G0zAABIie9Iie7osjgAAEiNfCQQSInu6KU4AABIixwkSIXbD4RpAQAAZg/vwGYPf4QkQAEAAGYPf4QkMAEAAEiNrCQwAQAASInvTIn+6G89AABIjVQkEEiJ70iJ7ugPMwAATIuUJEgBAABIi4wkQAEAAEiLlCQwAQAASYnQSYnRSInVSInWSInXSInYSIucJDgBAACIEIhwAUjB6hCIUAJJwegYScHpIEjB7ShIwe4wSMHvOESIQANIidpEiEgESYnYQIhoBUiJ3UCIcAZIid5AiHgHSInfiFgIiHgJSMHrEIhYCkjB6hhJweggSMHtKEjB7jBIwe84iFALSInKRIhADEiJy0CIaA1Iic1AiHAOSInOQIh4D0iJz4hIEIhoEUjB6RCISBJIweoYSMHrIEjB7ShIwe4wSMHvOIhQE0yJ0U2J0IhYFEyJ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D6TGAUiLaBhJD6zpP0jB7T9IifJMAfJIx8D/////FAD22A+2wDHbTInfSCnHuAAAAABIGcD22EQPttBNie5Nic24/////0kBxUjHwf////9Ig9EATSnVSIPZAPbZD7bJSDnNSBnbS40MAPbbSBntS40cAEiDwwFIiehIIcFI99VIIetICctIIcZIIepICfJJIcNIIe9MCd9MIchMIe1Nif1ICcVIiZwkcAEAAEiJlCR4AQAASIm8JIABAABIiawkiAEAAEyLfCQIQQ8QBg8phCSQAQAA80EPb0YQZg9/hCSgAQAASLsBAAAA/////+nxAgAAZg9/hCRgAQAAZg9/hCRQAQAATI20JFABAABMifdIid7oGPf//0iNvCSwAQAASInuTIny6LXx//9MiwtMi2MQSIsMJEwDCUiLaQhIg9UAD5LARTHATANhEEEPksBIi1MYRTHbSANRGA+2wEEPksNIA2sISRHESRHQSYPTAEUx/0yJz0iDxwG4AAAAABT/9tgPtsBIiepIKcK4AAAAAEgZwEm+AQAAAP////9MAfIU//bYD7bwTIngSCnwvgAAAABIGfZA9t5ED7bWTInGuf////9IAc5Ix8P/////SIPTAEwp1kiD2wD22w+220k527sAAAAASBnb9ttIGdtIidlJIclI99NIId9MCc9IIc1IIdpICepJIcxIIdhMCeBMIcFIIfNICctIibwkcAEAAEiJlCR4AQAASImEJIABAABIiZwkiAEAAEiNvCRwAQAASIn+6Oj1//9Ii4QkcAEAAEiLvCR4AQAASCuEJNABAAC5AAAAAEgZyfbZD7bJMdJIA4wk2AEAAA+Swkgpz74AAAAASBnWQPbeSIuMJIABAABAD7bWMfZIA5Qk4AEAAEAPksZIKdG6AAAAAEgZ8vbaSIusJIgBAAAPttIx9kgDlCToAQAAQA+Sxkgp1boAAAAASBnyD7bSSPfaSBn2SInyTCHySAHwifZIEf5Ig9EASBHqSCuEJFABAAC/AAAAAEgZ/0D230APtv8x7UgDvCRYAQAAQA+SxUgp/r8AAAAASBnvQPbfQA+2/zHtSAO8JGABAABAD5LFSCn5vwAAAABIGe9A9t9AD7b/Me1IA7wkaAEAAEAPksVIKfpJGe9BD7b/SPffSBn/SIn9TCH1SAH4if9IEfdIg9EASBHVSImEJHABAABI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AUiDwCBmDzjc0GYPONzYZg843OBmDzjc6A8QRAHwdclmDzjc0WYPONzZZg843OFmDzjc6WYPON3QZg843dhmDzjd4GYPON3o88NmDx9EAAAPEAHB4AQPEEkQD1fQD1fYD1fgD1foDxBBIEiNTAEgSPfYDx8ASIPAEGYPON7RZg843tlmDzje4WYPON7pDxAMAUiDwCBmDzje0GYPON7YZg843uBmDzje6A8QRAHwdclmDzje0WYPON7ZZg843uFmDzje6WYPON/QZg8439hmDzjf4GYPON/o88NmDx9EAAAPEAHB4AQPEEkQD1fQZg/v2GYP7+BmDzjc0UiNTAEgSPfYZg843NlmD+/oZg/v8GYPONzhZg/v+A8QBAFIg8AQ6x1mLg8fhAAAAAAADx9AAGYPONzRZg843NlmDzjc4WYPONzpZg843PFmDzjc+Q8QDAFIg8AgZg843NBmDzjc2GYPONzgZg843OhmDzjc8GYPONz4DxBEAfB1tWYPONzRZg843NlmDzjc4WYPONzpZg843PFmDzjc+WYPON3QZg843dhmDzjd4GYPON3oZg843fBmDzjd+PPDDx+AAAAAAA8QAcHgBA8QSRAPV9BmD+/YZg/v4GYPON7RSI1MASBI99hmDzje2WYP7+hmD+/wZg843uFmD+/4DxAEAUiDwBDrHWYuDx+EAAAAAAAPH0AAZg843tFmDzje2WYPON7hZg843ulmDzje8WYPON75DxAMAUiDwCBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vgPEEQB8HW1Zg843tFmDzje2WYPON7hZg843ulmDzje8WYPON75Zg8439BmDzjf2GYPON/gZg843+hmDzjf8GYPON/488MPH4AAAAAADxABweAEDxBJEA9X0A9X2GYP7+BmD+/oZg/v8EiNTAEgSPfYZg843NFmD+/4ZkQP78BmDzjc2WZED+/IDxAEAUiDwBDrFGYuDx+EAAAAAABmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmRA843MFmRA843MkPEAwBSIPAIGYPONzQZg843NhmDzjc4GYPONzoZg843PBmDzjc+GZEDzjcwGZEDzjcyA8QRAHwdZ1mDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmRA843MFmRA843MlmDzjd0GYP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6ESJTCQ8TY1IBGYPONzwZg843PhmRA843MBmRA843MgPEEHgQQ/JZg843NFmDzjc2UEx6WaQZg843OFmDzjc6USJTCRMTY1IBWYPONzxZg843PlmRA843MFmRA843MkPEEnwQQ/JZg843NBmDzjc2EEx6WaQZg843OBmDzjc6ESJTCRcTY1IBmYPONzwZg843PhmRA843MBmRA843MgPEAFBD8lmDzjc0WYPONzZQTHpZpBmDzjc4WYPONzpRIlMJGxNjUgHZg843PFmDzjc+WZEDzjcwWZEDzjcyQ8QSRBBD8lmDzjc0GYPONzYZg843OBBMenzRA9vF2YPONzoRIlMJHyD+AtmDzjc8GYPONz4ZkQPONzAZkQPONzIDxBBIA+CyQAAAGYPONzRZg843NlmDzjc4WYPONzpZg843PFmDzjc+WZEDzjcwWZEDzjcyQ8QSTBmDzjc0GYPONzYZg843OBmDzjc6GYPONzwZg843PhmRA843MBmRA843MgPEEFAdGtmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmRA843MFmRA843MkPEElQZg843NBmDzjc2GYPONzgZg843OhmDzjc8GYPONz4ZkQPONzAZkQPONzIDxBBYOsNZi4PH4QAAAAAAA8fAPNED29fEGZED+/Q80QPb2cgZkQP79jzRA9vbzBmRA/v4PNED293QGZED+/o80QPb39QZkQP7/BmRA/v+GYPONzRZg843NlmDzjc4WYPONzpZg843PFmDzjc+WZEDzjcwWZEDzjcyfMPb09gSI2/gAAAAGZBDzjd0mYP78jzRA9vV/BmQQ843dtmRA/v0GZED28cJGZBDzjd5GZBDzjd7WZED29kJBBmRA9vbCQgZkEPON32ZkEPON3/ZkQPb3QkMGZED298JEBmRA843cFmD29EJFAPEEmQZkUPON3KDxEWZkEPb9MPEV4QZkEPb9wPEWYgZkEPb+UPEW4wZkEPb+4PEXZAZkEPb/cPEX5QZg9v+EQPEUZgRA8RTnBIjbaAAAAASIPqCA+D9Pv//0iDwggPhMABAABIjUmASI1JEEiD+gQPglgBAAAPhNIAAADB4ARmRA9vRCRgZkUP78kPEEEQZg843NFmDzjc2UiNTAEQSPfYZg843OFIg8AQRA8QF2YPONzpZg843PFEDxBfEEQPEGcgZg843PlmRA843MHodvH///NED29vMGZBD+/S80QPb1dAZkEP79vzD38WZkEP7+TzD39eEGZBD+/t8w9/ZiBmQQ/v8vMPf24w8w9/dkBIg/oGD4ILAQAARA8QX1BBD1f7DxF+UA+E+AAAAEQPEGdgRQ9XxEQPEUZg6eUAAABmLg8fhAAAAAAADx9EAABmDzjc0UiNSRD/yGYPONzZZg843OFmDzjc6Q8QCXXhZg843dFmDzjd2UQPEBdEDxBfEGYPON3hZg843elEDxBnIEQPEG8wQQ9X0g8RFkEPV9sPEV4QZkEP7+TzD39mIGZBD+/t8w9/bjDra2YuDx+EAAAAAABmLg8fhAAAAAAAkGYPONzRSI1JEP/IZg843NlmDzjc4Q8QCXXmZg843dFmDzjd2WYPON3hRA8QF0EPV9IPERZIg/oCchxEDxBfEEEPV9sPEV4QdA1EDxBnIEEPV+QPEWYgD1fAMe1mD+/JZg/v0mYP79tmD+/kZg/v7WYP7/ZmD+//DykEJGZFD+/ADylEJBBmRQ/vyQ8pRCQgZkUP79IPKUQkMGZFD+/bDylEJEBmRQ/v5A8pRCRQZkUP7+0PKUQkYGZFD+/2DylEJHBmRQ/v/0mLa/hJjSPzw5BIhdIPhFcJAABEi5HwAAAASYnLRYXJD4SkAAAAQQ8QEESJ0EiD+hByZkiD6hDrAZAPEB9IjX8QDxABDxBJEA9X2EiNSSAPV9NmDzjc0f/IDxAJSI1JEHXwZg843dFEidBMidkPERZIjXYQSIPqEHPASIPCEHUZZg/vwGYP78lBDxEQZg/v0mYP79vp0QgAAEiJ0UiH9/OkZpC5EAAAAEgp0THA86pmkEiNf/BEidBIif5MidlIMdLpdP///w8fQABIg/oQdVrzD28X80EPbxhmD2/iDxABDxBJEEiNSSAPV9BmDzje0UH/yg8QCUiNSRB172YPON/RZg/vwGYP78nzQQ9/IA9X02YP79sPERZmD+/S6UkIAABmDx+EAAAAAABMjRwkVUiD7BBIg+TwSInNRQ8QEESJ0EiD+lAPhv4FAAAPEAHzD28X8w9vXxBmRA9v2vMPb2cgZkQPb+PzD29vMGZED2/s8w9vd0BmRA9v9fMPb39QZkQPb/5MjQ0v7AIARYtJBEiD+nAPhgcEAABBgeEAAEAESIPqUEGB+QAAQAAPhCYFAABIg+ogSI1JcOsXZi4PH4QAAAAAAA8fRAAARA8RDkiNdhDzRA9vR2BmD+/Q80QPb09wZg/v2A8QSaBmD+/gSMfF/////0iD+nBmD+/oZg/v8GYP7/hmRA/vwGYPON7RZkQP78gPEEGwZg843tlmDzje4WYPON7pZg843vFmDzje+WZEDzjewUiD1QBIgeWAAAAAZkQPON7JSAH9DxBJwGYPON7QZg843thmDzje4GYPON7oZg843vBmDzje+GZEDzjewGZEDzjeyA8QQdCQZg843tFmDzje2WYPON7hZg843ulmDzje8WYPON75ZkQPON7BZkQPON7JDxBJ4JBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEHwkGYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+WZEDzjewWZEDzjeyQ8QCZBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEEQkGYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+WZEDzjewWZEDzjeyQ8QSSCD+AtmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEEwD4LMAAAAZg843tFmDzje2WYPON7hZg843ulmDzje8WYPON75ZkQPON7BZkQPON7JDxBJQJBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEFQdG1mDzje0WYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFmRA843skPEElgkGYPON7QZg843thmDzje4GYPON7oZg843vBmDzje+GZEDzjewGZEDzjeyA8QQXDrDmYuDx+EAAAAAAAPH0AAZg843tFmDzje2WZED+/QZkQP79hmDzje4WYPON7pZkQP7+BmRA/v6GYPON7xZg843vlmRA/v8GZED+/4ZkQPON7BZkQPON7J8w9vT1BmQQ8439LzRA9vV2BmD+/IZkEPON/bZkQP79DzD29HcGZBDzjf5EiNv4AAAADzRA9vXQBmQQ843+1mQQ843/bzRA9vZRDzRA9vbSBmQQ843/9mRA8438HzRA9vdTDzRA9vfUBmRQ8438pmRA9v0PMPb01QDxBBkA8RFmZBD2/T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U/dBCdtBMctEAdhEi1YsQbv/////wcAGQTHLAdhCjZQSNfI6vUEJw0Ex20QB2kSLVghBu//////BwgpBMdsBwkKNjBG70tcqQQnTQTHDRAHZRItWJEG7/////8HBD0ExwwHRQo2cE5HThutBCctBMdNEAdtEixZBu//////BwxVBMdMBy0QBwEQBy0QB8UQB+kiDxkBIOf4Pgl73//+JRQCJXQSJTQiJVQxMizwkTIt0JAhMi2QkEEiLXCQYSItsJCBIg8Qo88PMzMzMzMzMzMzMzMz///////////////8AAAAAAAAAAAAAAAABAAAA/////wEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAEAAAAAAAAAAAAAAP////////////////7///8AAAAAUSVj/MLKufOEnhenrfrmvP//////////AAAAAP////9PvADuqsjRzGYuDx+EAAAAAABmLg8fhAAAAAAADx9AAEFUQVVNMcBNMclNMdJNMdtNMe1MKwZMG04ITBtWEEyJwEwbXhhIjTX0/v//TInKSYPdAEwDBkyJ0UwTTghME1YQTYncTBNeGE2F7UwPRMBMD0TKTIkHTA9E0UyJTwhND0TcTIlXEEyJXxhMiywkTItkJAhIjWQkEPPDZg8fRAAASI0NGbwCAEiLSQiB4QABCACB+QABCAAPhEMGAABVU0FUQVVBVkFXSIsCSInTTI01DP///0yLPSX///9IicFI9yZJicBIichJidFI92YISQHBSInISIPSAEmJ0kj3ZhBJAcJIichIg9IATYnFTQ+vx0mJ00j3ZhhJAcNMicBIg9IASYnUSfcmTInFSQHFTInASIPSAEiJ0U0pwkmD2ABJ92YISQHJSIPSAEkBwUiJ6EkR0kiJ6kmD0ABIweAgSMHqIEkpw0iLQwhIGdVNAcNJEexJg9UASInBSPcmSQHBSInISIPSAEiJ1Uj3ZghJAepIg9IASQHCSInISIPSAEiJ1Uj3ZhBJAetIg9IASQHDSInISIPSAEyJyU0Pr89IidVI92YYSQHsSIPSAE0xwEkBxEyJyEkR1UmD0ABJ9yZMic1IAcFMichIEdFNKctJg9kASfdmCEkBykiD0gBJAcJIiehJEdNIiepJg9EASMHgIEjB6iBJKcRIi0MQSBnVTQHMSRHtSYPQAEiJwUj3JkkBwkiJyEiD0gBIidVI92YISQHrSIPSAEkBw0iJyEiD0gBIidVI92YQSQHsSIPSAEkBxEiJyEiD0gBMidFND6/XSInVSPdmGEkB7UiD0gBNMclJAcVMidBJEdBJg9EASfcmTInVSAHBTInQSBHRTSnUSYPaAEn3ZghJActIg9IASQHDSInoSRHUSInqSYPSAEjB4CBIweogSSnFSItDGEgZ1U0B1UkR6EmD0QBIicFI9yZJAcNIichIg9IASInVSPdmCEkB7EiD0gBJAcRIichIg9IASInVSPdmEEkB7UiD0gBJAcVIichIg9IATInZTQ+v30iJ1Uj3ZhhJAehIg9IATTHSSQHATInYSRHRSYPSAEn3JkyJ3UgBwUyJ2EgR0U0p3UmD2wBJ92YISQHMSIPSAEkBxEiJ6EkR1UiJ6kmD0wBIweAgSMHqIEkpwEgZ1U0B2EkR6UmD0gBMieZNKyZNietNG24ITInBTRtGEEyJzU0bThhJg9oATA9C5k0PQutMD0LBTA9CzUyJJ0yJbwhMiUcQTIlPGEyLPCRMi3QkCEyLbCQQTItkJBhIi1wkIEiLbCQoSI1kJDDzw2YuDx+EAAAAAABmLg8fhAAAAAAADx8ASI0NubgCAEiLSQiB4QABCACB+QABCAAPhKMGAABVU0FUQVVBVkFXTIsGSItGCEyLdhBMi34YSI01o/v//0iJ0+seZi4PH4QAAAAAAGYuDx+EAAAAAABmLg8fhAAAAAAASInFSffgSYnBZkgPbs1MifBJidJJ9+BJAcJMifhmSQ9u1kiD0gBJidNJ9+BJAcNMifhmSQ9u30iD0gBJidRJ9+ZJicVMifBJidZI9+VJAcNMifhIg9IASYnXSPflSQHESIPSAE0B/EkR1UmD1gBNMf9MicBNAclNEdJNEdtNEeRNEe1NEfZJg9cASPfgSYnAZkgPfshIidVI9+BJAelJEcJmSA9+0EiD0gBIidVI9+BJAetJEcRmSA9+2EiD0gBIidVMicFMD69GIEj34EkB7UkRxkiLBkkR10n34EyJxUgBwUiLRghIEdFNKcJIg90ASffgSQHJSIPSAEkBwUyJwEkR0kyJwkiD1QBMiclMD69OIEjB4CBIweogSSnDSIsGSRnQSQHrSYPQAEn34UyJzUgBwUiLRghIEdFNKctIg90ASffhSQHKSIPSAEkBwkyJyEkR00yJykiD1QBMidFMD69WIEjB4CBIweogSSnASIsGSRnRSQHoSYPRAEn34kyJ1UgBwUiLRghIEdFNKdBIg90ASffiSQHLSIPSAEkBw0yJ0EkR0EyJ0kiD1QBMidlMD69eIEjB4CBIweogSSnBSIsGSRnSSQHpSYPSAEn340yJ3UgBwUiLRghIEdFNKdlIg90ASffjSQHISIPSAEkBwEyJ2EkR0UyJ2kiD1QBIweAgSMHqIEkpwkkZ00kB6kmD0wBIMdJNAeBNEelNicRNEfJNEftMichIg9IATCsGTYnWTBtOCEwbVhBNid9MG14YSIPaAE0PQsRJD0PBTQ9D8k0PQ/tI/8sPhaP9//9MiQdIiUcIZg/vyUyJdxBmD+/STIl/GGYP79tMizwkTIt0JAhMi2wkEEyLZCQYSItcJCBIi2wkKEiNZCQw88MPH0AAVVNBVEFVQVZBV0iJ00iLEkyLDkyLVghMi14QTItmGEiNdoBMjTU2+P//TIs9z/j//8RCu/bJxELz9tLEQtP220kBycRC8/bkTInCxMLr9sdJEepJEctJg9QATTHtxMLz9q6AAAAAZkwPOPbB80wPOPbNxMLz9q6IAAAAZkwPOPbJ80wPOPbVxMLz9q6QAAAAZkwPOPbR80wPOPbdxMLz9q6YAAAASItTCGZMDzj22fNMDzj25WZNDzj24PNNDzj26EmD1QDE4vP2roAAAABmTA849snzTA849tXE4vP2rogAAABmTA849tHzTA849t3E4vP2rpAAAABmTA849tnzTA849uXE4vP2rpgAAABMicrEwuv2x2ZMDzj24fNMDzj27WZNDzj26PNNDzj2wEmD0ADEwvP2roAAAABmTA849snzTA849tXEwvP2rogAAABmTA849tHzTA849t3EwvP2rpAAAABmTA849tnzTA849uXEwvP2rpgAAABIi1MQZkwPOPbh80wPOPbtZk0POPbp800POPbBSYPQAMTi8/augAAAAGZMDzj20fNMDzj23cTi8/auiAAAAGZMDzj22fNMDzj25cTi8/aukAAAAGZMDzj24fNMDzj27cTi8/aumAAAAEyJ0sTC6/bHZkwPOPbp80wPOPbFZk0POPbB800POPbJSYPRAMTC8/augAAAAGZMDzj20fNMDzj23cTC8/auiAAAAGZMDzj22fNMDzj25cTC8/aukAAAAGZMDzj24fNMDzj27cTC8/aumAAAAEiLUxhmTA849unzTA849sVmTQ849sLzTQ849spJg9EAxOLz9q6AAAAAZkwPOPbZ80wPOPblxOLz9q6IAAAAZkwPOPbh80wPOPbtxOLz9q6QAAAAZkwPOPbp80wPOPbFxOLz9q6YAAAATInaxMLr9sdmTA849sHzTA849s1mTQ849srzTQ849tJJg9IAxMLz9q6AAAAAZkwPOPbZ80wPOPblxMLz9q6IAAAAZkwPOPbh80wPOPbtxMLz9q6QAAAAZkwPOPbp80wPOPbFxMLz9q6YAAAATY22gAAAAEyJ42ZMDzj2wfNMDzj2zUyJ6mZNDzj2y/NNDzj200mD0gBMicFNKyZNG24ITRtGEEyJzU0bThhJg9oATA9C40wPQupMD0LBTA9CzUyJJ0yJbwhMiUcQTIlPGEyLPCRMi3QkCEyLbCQQTItkJBhIi1wkIEiLbCQoSI1kJDDzw2YuDx+EAAAAAABmLg8fhAAAAAAAZg8fRAAAVVNBVEFVQVZBV0iJ00iLFkyLdghMi34QTItGGEiNNf30///rG2YuDx+EAAAAAABmLg8fhAAAAAAADx+AAAAAAMRCs/bWxELz9t9IidBmSQ9uzsRC0/bgTInySQHKZkkPbtdJEetJg9QATTHtxMLz9u9mTA849tnzTA849uXEwvP26EyJ+mZMDzj24fNMDzj27UmD1QDEQvP28EiJwmZJD27YTTH/Zk0POPbJ80wPOPbpZk0POPbS800POPb3xOK79upmSA9+ymZNDzj22/NMDzj2zWZNDzj25MTi8/bCZkgPftJmTQ849u3zTA849tFmTQ849vbE4vP26mdmSA9+2vNMDzj22GZNDzj2//NMDzj24fNMDzj27cTi8/bC80wPOPbx80wPOPb4TInCxOLr9k4gSDHAxOLz9i5mTA849sHzTA849s3E4vP2bghmTA849snzTA849tXE4vP2bhBmTA849tHzTA849t3E4vP2bhhmTA849tnzTA849sVmTA849sBMicrE4uv2TiDE4vP2LvNMDzj2yWZMDzj21cTi8/ZuCPNMDzj20WZMDzj23cTi8/ZuEPNMDzj22WZM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//9IjZwk4AAAAEiNfCRA6GT5//9NCexmD2/UTQnETQnMZg/r1WZJD27cSIuUJIABAABIjZwkgAEAAEyLTCRgTItUJGhIjXQk4EyLXCRwTItkJHhIjbwkoAAAAOh43///SIuUJOABAABIjZwk4AEAAEyLTCQgTItUJChIjXQkoEyLXCQwTItkJDhIjbwkwAAAAOhC3///SI2cJKAAAABIjTwk6NH4//9NCexNCcRNCcxmSQ9+0GZJD37ZTQnEPnVYTYXJdDNmSA9+x2YP78DzD38H8w9/RxDzD39HIPMPf0cw8w9/R0DzD39HUOnvAwAADx+EAAAAAABmSA9+zmZID37HSIHEoAEAAOmb+f//Zi4PH4QAAAAAAEiLVCRATIt0JEhIjXQkwEyLfCRQTItEJFhIjXwkYOj94P//SIuUJMABAABIjZwkwAEAAEyLDCRMi1QkCEiNdCSATItcJBBMi2QkGEiNvCRgAQAA6Gje//9IixQkTIt0JAhIjXQkgEyLfCQQTItEJBhIjXwkIOim4P//SIuUJCACAABIjZwkIAIAAEyLjCRgAQAATIuUJGgBAABIjbQk4AAAAEyLnCRwAQAATIukJHgBAABIjbwkYAEAAOgB3v//SIsUJEiNHCRMi0wkIEyLVCQoSI10JKBMi1wkMEyLZCQ4SI28JIAAAADo093//0iLlCSgAAAASI2cJKAAAABMi0wkIEyLVCQoSI10JKBMi1wkMEyLZCQ4SI28JMAAAADond3//00x200B5EiNdCRgTRHtTIngTRHATRHJTIntSYPTAEmD7P9MicFNGfVJg9gATYnKTRn5SYPbAEwPQuBIiwZMD0LtSItuCEwPQsFIi04QTQ9CykyLVhjoQ/f//0iNnCSAAAAASI28JCABAADozvb//0iLhCTAAAAASIusJMgAAABIi4wk0AAAAEyLlCTYAAAASI28JEABAADoAff//0yJJ0yJbwhMiUcQTIlPGEiLlCSAAAAASI2cJIAAAABMi4wk4AAAAEyLlCToAAAASI10JGBMi5wk8AAAAEyLpCT4AAAASI28JAABAADosNz//0iLlCRAAQAASI2cJEABAABMi0wkQEyLVCRISI10JMBMi1wkUEyLZCRYSI28JEABAADoetz//0iNnCQAAQAASI28JEABAADoBfb//2ZID37HZg9vxWYPb81mD9+E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ZkwPOPbFSItMJCBmTA849s1IixZJg9IATIkHSYPTAEmD1ABJg9UASYPWAEmD1wBIOc8PhMD7//9MiU8ITItJCEyJVxBMi1EQTIlfGEyLWRhMiWcgTIthIEyJbyhMi2koTIl3MEyLcTBMiX84TIt5OEiJz+mA+///TIlPSGZID37ZTIlXUEyJX1hMiWdgTIlvaEyJd3BIjXwkOEiLFA5Mi18ITTHSTItMJAjzTQ849ttMi2cQTItvGMTi+/ba800POPbkZkkPOPbCSIuUDggAAABMi5cgAAAA800POPbtZkkPOPbbTItfKEiJB0iJXwjE4vv22vNNDzj20mZJDzj2xEiLVA4QTItnMPNNDzj222ZJDzj23UyLbzhIiUcQSIlfGMTi+/ba800POPbkZkkPOPbCSItUDhhIjUkgTItXQPNNDzj27WZJDzj220yLX0hIiUcgSIlfKMTi+/ba800POPbSZkkPOPbE4y5Ii5QOAAAAAPNNDzj222ZJDzj23UyLZ1BMi29YSIlHMEiJXzhIjX9AkOkg////ZkkPOPbdSIlHMEiJXzhIjX9AZkgPftUxwEiLXCQoSItUJDhKjUwNwEiJTCQISIl8JBBIjXwkOOsHDx+AAAAAAEyLTwhMi1cQTItfGEyLZyBJidBID6/TTItvKEyLdzBMi384SIlEJCBIjX9ASDH2SMfB+P///+sIDx+EAAAAAABMicPEYvv2RQBmSA849sPzTQ849sHEYuP2TQhmTA849sPzTQ849srEYuP2VRBmTA849svzTQ849tPEYuP2XRhmTA849tPzTQ849tzEYuP2pSAAAABIidBMicJmTA849tvzTQ849uXE4uP2VCQoSInCSIlEzHjEYvv2bShmTA849uDzTQ849u7EYvv2dTBmTA849ujzTQ849vfEYvv2fThIidpmTA849vDzTA849v5mTA849v5nZ2dI/8EPhUD///9IifBIO2wkCA+DfwEAAEiLVCQ4TAMHSI1tQEjHwfj///9mTA849k8IZkwPOPZXEEwTXxhME2cgTBNvKEwTdzBME384SI1/QEgZwEgx9kiJRCQY6wxmLg8fhAAAAAAAZpBMicPEYvv2RQBmSA849tjzTQ849sHEYvv2TQhmTA849sDzTQ849srEYvv2VRBmTA849sjzTQ849tPEYvv2XRhmTA849tDzTQ849tzE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O4QkGAEAAHVdSIHEIAEAAFtBXkFfw+hlbvT/6WL////oWW/0/4B8JAEAdZPryEiNNZBpqP5IjQ2e/qP+TI0FgT6j/kyNDVrhsv+/AwAAALoEAgAAMcDoARX0/4uDIAEAAOk1////6EEDAACQU0iJ+4sFbvgAAD3dAAAAdRBIjTUY9wAASInfW+nvfPT/SI09UPgAAEiNFbFv9P8x9ugqiPT/69kAAAAAAAAAAP81grkAAP8lhLkAAA8fQAD/JYK5AABoAAAAAOng/////yV6uQAAaAEAAADp0P////8lcrkAAGgCAAAA6cD/////JWq5AABoAwAAAOmw/////yViuQAAaAQAAADpoP////8lWrkAAGgFAAAA6ZD/////JVK5AABoBgAAAOmA/////yVKuQAAaAcAAADpcP////8lQrkAAGgIAAAA6WD/////JTq5AABoCQAAAOlQ/////yUyuQAAaAoAAADpQP////8lKrkAAGgLAAAA6TD/////JSK5AABoDAAAAOkg/////yUauQAAaA0AAADpEP////8lErkAAGgOAAAA6QD/////JQq5AABoDwAAAOnw/v///yUCuQAAaBAAAADp4P7///8l+rgAAGgRAAAA6dD+////JfK4AABoEgAAAOnA/v///yXquAAAaBMAAADpsP7///8l4rgAAGgUAAAA6aD+////Jdq4AABoFQAAAOmQ/v///yXSuAAAaBYAAADpgP7///8lyrgAAGgXAAAA6XD+////JcK4AABoGAAAAOlg/v///yW6uAAAaBkAAADpUP7///8lsrgAAGgaAAAA6UD+////Jaq4AABoGwAAAOkw/v///yWiuAAAaBwAAADpIP7///8lmrgAAGgdAAAA6RD+////JZK4AABoHgAAAOkA/v///yWKuAAAaB8AAADp8P3///8lgrgAAGggAAAA6eD9////JXq4AABoIQAAAOnQ/f///yVyuAAAaCIAAADpwP3///8largAAGgjAAAA6bD9////JWK4AABoJAAAAOmg/f///yVauAAAaCUAAADpkP3///8lUrgAAGgmAAAA6YD9////JUq4AABoJwAAAOlw/f///yVCuAAAaCgAAADpYP3///8lOrgAAGgpAAAA6VD9////JTK4AABoKgAAAOlA/f///yUquAAAaCsAAADpMP3///8lIrgAAGgsAAAA6SD9////JRq4AABoLQAAAOkQ/f///yUSuAAAaC4AAADpAP3///8lCrgAAGgvAAAA6fD8////JQK4AABoMAAAAOng/P///yX6twAAaDEAAADp0Pz///8l8rcAAGgyAAAA6cD8////Jeq3AABoMwAAAOmw/P///yXitwAAaDQAAADpoPz///8l2rcAAGg1AAAA6ZD8////JdK3AABoNgAAAOmA/P///yXKtwAAaDcAAADpcPz///8lwrcAAGg4AAAA6WD8////Jbq3AABoOQAAAOlQ/P///yWytwAAaDoAAADpQPz///8lqrcAAGg7AAAA6TD8////JaK3AABoPAAAAOkg/P///yWatwAAaD0AAADpEPz///8lkrcAAGg+AAAA6QD8////JYq3AABoPwAAAOnw+////yWCtwAAaEAAAADp4Pv///8lercAAGhBAAAA6dD7////JXK3AABoQgAAAOnA+////yVqtwAAaEMAAADpsPv///8lYrcAAGhEAAAA6aD7////JVq3AABoRQAAAOmQ+////yVStwAAaEYAAADpgPv///8lSrcAAGhHAAAA6XD7////JUK3AABoSAAAAOlg+////yU6twAAaEkAAADpUPv///8lMrcAAGhKAAAA6UD7////JSq3AABoSwAAAOkw+////yUitwAAaEwAAADpIPv///8lGrcAAGhNAAAA6RD7////JRK3AABoTgAAAOkA+////yUKtwAAaE8AAADp8Pr///8lArcAAGhQAAAA6eD6////Jfq2AABoUQAAAOnQ+v///yXytgAAaFIAAADpwPr///8l6rYAAGhTAAAA6bD6////JeK2AABoVAAAAOmg+v///yXatgAAaFUAAADpkPr///8l0rYAAGhWAAAA6YD6////Jcq2AABoVwAAAOlw+v///yXCtgAAaFgAAADpYPr///8lurYAAGhZAAAA6VD6////JbK2AABoWgAAAOlA+v///yWqtgAAaFsAAADpMPr///8lorYAAGhcAAAA6SD6////JZq2AABoXQAAAOkQ+v///yWStgAAaF4AAADpAPr///8lirYAAGhfAAAA6fD5////JYK2AABoYAAAAOng+f///yV6tgAAaGEAAADp0Pn///8lcrYAAGhiAAAA6cD5////JWq2AABoYwAAAOmw+f///yVitgAAaGQAAADpoPn///8lWrYAAGhlAAAA6ZD5////JVK2AABoZgAAAOmA+f///yVKtgAAaGcAAADpcPn///8lQrYAAGhoAAAA6WD5////JTq2AABoaQAAAOlQ+f///yUytgAAaGoAAADpQPn///8lKrYAAGhrAAAA6TD5////JSK2AABobAAAAOkg+f///yUatgAAaG0AAADpEPn///8lErYAAGhuAAAA6QD5////JQq2AABobwAAAOnw+P///yUCtgAAaHAAAADp4Pj///8l+rUAAGhxAAAA6dD4////JfK1AABocgAAAOnA+P///yXqtQAAaHMAAADpsPj///8l4rUAAGh0AAAA6aD4////Jdq1AABodQAAAOmQ+P///yXStQAAaHYAAADpgPj///8lyrUAAGh3AAAA6XD4////JcK1AABoeAAAAOlg+P///yW6tQAAaHkAAADpUPj///8lsrUAAGh6AAAA6UD4////Jaq1AABoewAAAOkw+P///yWitQAAaHwAAADpIPj///8lmrUAAGh9AAAA6RD4////JZK1AABofgAAAOkA+P///yWKtQAAaH8AAADp8Pf///8lgrUAAGiAAAAA6eD3////JXq1AABogQAAAOnQ9////yVytQAAaIIAAADpwPf///8larUAAGiDAAAA6bD3////JWK1AABohAAAAOmg9////yVatQAAaIUAAADpkPf///8lUrUAAGiGAAAA6YD3////JUq1AABohwAAAOlw9////yVCtQAAaIgAAADpYPf///8lOrUAAGiJAAAA6VD3////JTK1AABoigAAAOlA9////yUqtQAAaIsAAADpMPf///8lIrUAAGiMAAAA6SD3////JRq1AABojQAAAOkQ9////yUStQAAaI4AAADpAPf///8lCrUAAGiPAAAA6fD2////JQK1AABokAAAAOng9v///yX6tAAAaJEAAADp0Pb///8l8rQAAGiSAAAA6cD2////Jeq0AABokwAAAOmw9v///yXitAAAaJQAAADpoPb///8l2rQAAGiVAAAA6ZD2////JdK0AABolgAAAOmA9v///yXKtAAAaJcAAADpcPb///8lwrQAAGiYAAAA6WD2////Jbq0AABomQAAAOlQ9v///yWytAAAaJoAAADpQPb///8lqrQAAGibAAAA6TD2////JaK0AABonAAAAOkg9v///yWatAAAaJ0AAADpEPb///8lkrQAAGieAAAA6QD2////JYq0AABonwAAAOnw9f///yWCtAAAaKAAAADp4PX///8lerQAAGihAAAA6dD1////JXK0AABoogAAAOnA9f///yVqtAAAaKMAAADpsPX///8lYrQAAGikAAAA6aD1////JVq0AABopQAAAOmQ9f///yVStAAAaKYAAADpgPX///8lSrQAAGinAAAA6XD1////JUK0AABoqAAAAOlg9f///yU6tAAAaKkAAADpUPX///8lMrQAAGiqAAAA6UD1////JSq0AABoqwAAAOkw9f///yUitAAAaKwAAADpIPX///8lGrQAAGitAAAA6RD1////JRK0AABorgAAAOkA9f///yUKtAAAaK8AAADp8PT///8lArQAAGiwAAAA6eD0////JfqzAABosQAAAOnQ9P///yXyswAAaLIAAADpwPT///8l6rMAAGizAAAA6bD0////JeKzAABotAAAAOmg9P///yXaswAAaLUAAADpkPT///8l0rMAAGi2AAAA6YD0////JcqzAABotwAAAOlw9P///yXCswAAaLgAAADpYPT///8lurMAAGi5AAAA6VD0////JbKzAABougAAAOlA9P///yWqswAAaLsAAADpMPT///8lorMAAGi8AAAA6SD0////JZqzAABovQAAAOkQ9P///yWSswAAaL4AAADpAPT///8lirMAAGi/AAAA6fDz////JYKzAABowAAAAOng8////yV6swAAaMEAAADp0PP///8lcrMAAGjCAAAA6cDz////JWqzAABowwAAAOmw8////yViswAAaMQAAADpoPP///8lWrMAAGjFAAAA6ZDz////JVKzAABoxgAAAOmA8////yVKswAAaMcAAADpcPP///8lQrMAAGjIAAAA6WDz////JTqzAABoyQAAAOlQ8////yUyswAAaMoAAADpQPP///8lKrMAAGjLAAAA6TDz////JSKzAABozAAAAOkg8////yUaswAAaM0AAADpEPP///8lErMAAGjOAAAA6QDz////JQqzAABozwAAAOnw8v///yUCswAAaNAAAADp4PL///8l+rIAAGjRAAAA6dDy////JfKyAABo0gAAAOnA8v///yXqsgAAaNMAAADpsPL///8l4rIAAGjUAAAA6aDy////JdqyAABo1QAAAOmQ8v///yXSsgAAaNYAAADpgPL///8lyrIAAGjXAAAA6XDy////JcKyAABo2AAAAOlg8v///yW6sgAAaNkAAADpUPL///8lsrIAAGjaAAAA6UDy////JaqyAABo2wAAAOkw8v///yWisgAAaNwAAADpIPL///8lmrIAAGjdAAAA6RDy////JZKyAABo3gAAAOkA8v///yWKsgAAaN8AAADp8PH///8lgrIAAGjgAAAA6eDx////JXqyAABo4QAAAOnQ8f///yVysgAAaOIAAADpwPH///8larIAAGjjAAAA6bDx////JWKyAABo5AAAAOmg8f///yVasgAAaOUAAADpkPH///8lUrIAAGjmAAAA6YDx////JUqyAABo5wAAAOlw8f///yVCsgAAaOgAAADpYPH///8lOrIAAGjpAAAA6VDx////JTKyAABo6gAAAOlA8f///yUqsgAAaOsAAADpMPH///8lIrIAAGjsAAAA6SDx////JRqyAABo7QAAAOkQ8f///yUSsgAAaO4AAADpAPH///8lCrIAAGjvAAAA6fDw////JQKyAABo8AAAAOng8P///yX6sQAAaPEAAADp0PD///8l8rEAAGjyAAAA6cDw////JeqxAABo8wAAAOmw8P///yXisQAAaPQAAADpoPD///8l2rEAAGj1AAAA6ZDw////JdKxAABo9gAAAOmA8P///yXKsQAAaPcAAADpcPD///8lwrEAAGj4AAAA6WDw////JbqxAABo+QAAAOlQ8P///yWysQAAaPoAAADpQPD///8lqrEAAGj7AAAA6TDw////JaKxAABo/AAAAOkg8P///yWasQAAaP0AAADpEPD///8lkrEAAGj+AAAA6QDw////JYqxAABo/wAAAOnw7////yWCsQAAaAABAADp4O////8lerEAAGgBAQAA6dDv////JXKxAABoAgEAAOnA7////yVqsQAAaAMBAADpsO////8lYrEAAGgEAQAA6aDv////JVqxAABoBQEAAOmQ7////yVSsQAAaAYBAADpgO////8lSrEAAGgHAQAA6XDv////JUKxAABoCAEAAOlg7////yU6sQAAaAkBAADpUO////8lMrEAAGgKAQAA6UDv////JSqxAABoCwEAAOkw7////yUisQAAaAwBAADpIO////8lGrEAAGgNAQAA6RDv////JRKxAABoDgEAAOkA7////yUKsQAAaA8BAADp8O7///8lArEAAGgQAQAA6eDu////JfqwAABoEQEAAOnQ7v///yXysAAAaBIBAADpwO7///8l6rAAAGgTAQAA6bDu////JeKwAABoFAEAAOmg7v///yXasAAAaBUBAADpkO7///8l0rAAAGgWAQAA6YDu////JcqwAABoFwEAAOlw7v///yXCsAAAaBgBAADpYO7///8lurAAAGgZAQAA6VDu////JbKwAABoGgEAAOlA7v///yWqsAAAaBsBAADpMO7///8lorAAAGgcAQAA6SDu////JZqwAABoHQEAAOkQ7v///yWSsAAAaB4BAADpAO7///8lirAAAGgfAQAA6fDt////JYKwAABoIAEAAOng7f///yV6sAAAaCEBAADp0O3///8lcrAAAGgiAQAA6cDt////JWqwAABoIwEAAOmw7f///yVisAAAaCQBAADpoO3///8lWrAAAGglAQAA6ZDt////JVKwAABoJgEAAOmA7f///yVKsAAAaCcBAADpcO3///8lQrAAAGgoAQAA6WDt////JTqwAABoKQEAAOlQ7f///yUysAAAaCoBAADpQO3///8lKrAAAGgrAQAA6TDt////JSKwAABoLAEAAOkg7f///yUasAAAaC0BAADpEO3///8lErAAAGguAQAA6QDt////JQqwAABoLwEAAOnw7P///yUCsAAAaDABAADp4Oz///8l+q8AAGgxAQAA6dDs////JfKvAABoMgEAAOnA7P///yXqrwAAaDMBAADpsOz///8l4q8AAGg0AQAA6aDs////JdqvAABoNQEAAOmQ7P///yXSrwAAaDYBAADpgOz///8lyq8AAGg3AQAA6XDs////JcKvAABoOAEAAOlg7P///yW6rwAAaDkBAADpUOz///8lsq8AAGg6AQAA6UDs////JaqvAABoOwEAAOkw7P///yWirwAAaDwBAADpIOz///8lmq8AAGg9AQAA6RDs////JZKvAABoPgEAAOkA7P///yWKrwAAaD8BAADp8Ov///8lgq8AAGhAAQAA6eDr////JXqvAABoQQEAAOnQ6////yVyrwAAaEIBAADpwOv///8laq8AAGhDAQAA6bDr////JWKvAABoRAEAAOmg6////yVarwAAaEUBAADpkOv///8lUq8AAGhGAQAA6YDr////JUqvAABoRwEAAOlw6////yVCrwAAaEgBAADpYOv///8lOq8AAGhJAQAA6VDr////JTKvAABoSgEAAOlA6////yUqrwAAaEsBAADpMOv///8lIq8AAGhMAQAA6SDr////JRqvAABoTQEAAOkQ6////yUSrwAAaE4BAADpAOv///8lCq8AAGhPAQAA6fDq////JQKvAABoUAEAAOng6v///yX6rgAAaFEBAADp0Or///8l8q4AAGhSAQAA6cDq////JequAABoUwEAAOmw6v///yXirgAAaFQBAADpoOr///8l2q4AAGhVAQAA6ZDq////JdKuAABoVgEAAOmA6v///yXKrgAAaFcBAADpcOr///8lwq4AAGhYAQAA6WDq////JbquAABoWQEAAOlQ6v///yWyrgAAaFoBAADpQOr///8lqq4AAGhbAQAA6TDq////JaKuAABoXAEAAOkg6v///yWargAAaF0BAADpEOr///8lkq4AAGheAQAA6QDq////JYquAABoXwEAAOnw6f///yWCrgAAaGABAADp4On///8leq4AAGhhAQAA6dDp////JXKuAABoYgEAAOnA6f///yVqrgAAaGMBAADpsOn///8lYq4AAGhkAQAA6aDp////JVquAABoZQEAAOmQ6f///yVSrgAAaGYBAADpgOn///8lSq4AAGhnAQAA6XDp////JUKuAABoaAEAAOlg6f///yU6rgAAaGkBAADpUOn///8lMq4AAGhqAQAA6UDp////JSquAABoawEAAOkw6f///yUirgAAaGwBAADpIOn///8lGq4AAGhtAQAA6RDp////JRKuAABobgEAAOkA6f///yUKrgAAaG8BAADp8Oj///8lAq4AAGhwAQAA6eDo////JfqtAABocQEAAOnQ6P///yXyrQAAaHIBAADpwOj///8l6q0AAGhzAQAA6bDo////JeKtAABodAEAAOmg6P///yXarQAAaHUBAADpkOj///8l0q0AAGh2AQAA6YDo////JcqtAABodwEAAOlw6P///yXCrQAAaHgBAADpYOj///8luq0AAGh5AQAA6VDo////JbKtAABoegEAAOlA6P///yWqrQAAaHsBAADpMOj///8loq0AAGh8AQAA6SDo////JZqtAABofQEAAOkQ6P///yWSrQAAaH4BAADpAOj///8liq0AAGh/AQAA6fDn////JYKtAABogAEAAOng5////yV6rQAAaIEBAADp0Of///8lcq0AAGiCAQAA6cDn////JWqtAABogwEAAOmw5////yVirQAAaIQBAADpoOf///8lWq0AAGiFAQAA6ZDn////JVKtAABohgEAAOmA5////yVKrQAAaIcBAADpcOf///8lQq0AAGiIAQAA6WDn////JTqtAABoiQEAAOlQ5////yUyrQAAaIoBAADpQOf///8lKq0AAGiLAQAA6TDn////JSKtAABojAEAAOkg5/////////////8AAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIsGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkP////////+Q/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJD/////////kP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAFoAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAIABAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAFwCAAAAAAAAAAAAAAAAAAAiAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACcBAAAAAAAAAAAAAAAAAACvAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAFICAAAAAAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAALsAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAG4AAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAABpAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEMAAAAAAAAAAAAAAAAAAAA6AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACUAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAAmAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAIIAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAJMAAAAAAAAAAAAAAAAAAABJAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAADUAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAABZQAAAAAAAAAAAAgAAAAAAAAAFAAAAAAAAAAAAAAAAavhAAAAAAAAAAAACAAAAAAAAAAgAAAAAAAAAAAAAAITXl0EAAAAAAAAAAAEAAAAAAAAACwAAAAAAAAAAAADodkg3QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAP//AAABAP//EAABAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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